Da Pokemon GO veröffentlicht wurde, möchte ich auf jeden Fall Twitter-Informationen effizient sehen. Versuchen Sie word2vec mit Python3, um Mundpropaganda-Daten zu suchen und die gewünschten Informationen zu erhalten.
Klicken Sie hier für Python-Installation Klicken Sie hier für Mecab + neologd Installation
[murotanimari]$ python3 --version
Python 3.5.2
[murotanimari]$ pip3 --version
pip 8.1.2 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)
http://pydev.org/updates/からPyDevをインストールすると、PyDevProjectが作成可能になるので、新規に作成します。
pip3 install gensim
pip3 install argparse
pip3 install prettyprint
pip3 install word2vec
pip3 install print
pip3 install pp
pip3 install nltk #Ich brauche es nicht auf Japanisch
pip3 install tweepy
pip3 install scipy
# for japanese
brew install mecab
brew install mecab-ipadic
pip3 install mecab-python3
HelloWorld.py
import nltk
nltk.download('all');
import argparse
from gensim.models import word2vec
print("Hello, World!")
ParseJP.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import nltk
import sys
import tweepy
import json
import subprocess
import datetime
import MeCab
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from numpy.core.multiarray import empty
#Variables that contains the user credentials to access Twitter API
access_token = "*****************"
access_token_secret = "*****************"
consumer_key = "*****************"
consumer_secret = "*****************"
#This is a basic listener that just prints received tweets to stdout.
class StdOutListener(StreamListener):
def on_data(self, data):
jsondata = json.loads(data)
sentence = jsondata["text"]
try:
#print(sentence)
t = MeCab.Tagger("-Ochasen")
tagged = t.parse(sentence)
#print(tagged)
out = "";
for item in tagged.split('\n'):
item = str(item).strip()
if item is '':
continue
fields = item.split("\t")
#print(fields)
found = ""
if 'EOS' not in item:
if "Substantiv" in fields[3]:
found = fields[2]
if "Verb" in fields[3]:
if "Hilfsverb" not in fields[3]:
found = fields[2]
if("//" not in str(found).lower()):
if(found.lower() not in ["rt","@","sex","fuck","https","http","#",".",",","/"]):
if(len(found.strip()) != 0):
found = found.replace("'", "/'");
out += found + " "
today = datetime.date.today()
cmd = "echo '"+ out + "' >> /tmp/JP" + today.isoformat() +".txt"
#print(cmd)
subprocess.check_output(cmd, shell=True)
return True
except:
print("Unexpected error:",found, sys.exc_info()[0])
return True
def on_error(self, status):
print(status)
#### main method
if __name__ == '__main__':
#This handles Twitter authetification and the connection to Twitter Streaming API
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
#This line filter Twitter Streams to capture data by the keywords: 'python', 'javascript', 'ruby'
#stream.filter(track=['#pokemongo','#PokemonGo', '#PokémonGo', '#Pokémon' ,'#Pokemon', '#pokemon'], languages=["en"])
stream.filter(track=['#Pokémon','#pokemongo','#PokemonGo', '#PokémonGo', '#Pokémon' ,'#Pokemon', '#pokemon'], languages=["ja"])
#stream.filter(track=['#pokemon'], languages=["en"])
Lassen Sie uns vorerst prüfen, ob die Daten in der Befehlszeile ordnungsgemäß abgerufen werden können.
python
>>> # !/usr/bin/env python
... # -*- coding:utf-8 -*-
... from gensim.models import word2vec
>>>
>>> data = word2vec.Text8Corpus('/tmp/JP2016-07-23.txt')
>>> model = word2vec.Word2Vec(data, size=200)
>>> model.most_similar(positive=u'Pokemon')
[('Pokémon', 0.49616560339927673), ('ND', 0.47942256927490234), ('Youkai Uhr', 0.4783376455307007), ('I', 0.44967448711395264), ('9', 0.4415249824523926), ('j', 0.4309641122817993), ('B', 0.4284788966178894), ('CX', 0.42728638648986816), ('l', 0.42639225721359253), ('bvRxC', 0.41929835081100464)]
>>>
>>> model.most_similar(positive=u'Pikachu')
[('SolderingArt', 0.7791135311126709), ('61', 0.7604312896728516), ('Pokémon', 0.7314165830612183), ('suki', 0.7087007761001587), ('Chu', 0.6967192888259888), ('docchi', 0.6937340497970581), ('Späte Kunst', 0.6864794492721558), ('EjPbfZEhIS', 0.6781727075576782), ('Löten', 0.6571916341781616), ('latteart', 0.6411304473876953)]
>>>
>>> model.most_similar(positive=u'Pikachu')
[('Tabak', 0.9689614176750183), ('Erstellen', 0.9548219442367554), ('Shibuya', 0.9207605123519897), ('EXCJ', 0.9159889221191406), ('Wegschmeißen', 0.8906601667404175), ('Holen Sie sich Müll', 0.7719830274581909), ('Da ist da', 0.6942187547683716), ('Vielen Dank', 0.6873651742935181), ('Bitte', 0.6714405417442322), ('GET', 0.6686745285987854)]
>>>
>>> model.most_similar(positive=u'Seltenes Pokémon')
[('Tabelle', 0.8076062202453613), ('Hayami', 0.8065655827522278), ('Lebensraum', 0.7529213428497314), ('erhalten', 0.7382372617721558), ('neueste', 0.7039971351623535), ('japanische Version', 0.6925774216651917), ('Base', 0.6455932855606079), ('300', 0.6433809995651245), ('YosukeYou', 0.6330702900886536), ('Enoshima', 0.6322115659713745)]
>>>
>>> model.most_similar(positive=u'Massenerzeugung')
[('Bereich', 0.9162761569023132), ('Chaos', 0.8581807613372803), ('Sakuragicho Station', 0.7103563547134399), ('EjPbfZEhIS', 0.702730655670166), ('Okura', 0.6720583438873291), ('Tonomachi', 0.6632444858551025), ('Imai Buchhandlung', 0.6514744758605957), ('丿', 0.6451742649078369), ('Paris', 0.6437439918518066), ('Eingang', 0.640221893787384)]
Ich bin neugierig auf die Basis und Enoshima mit seltenen Pokémon! Was ist mit der Sakuragicho Station, Okura, Tonomachi, Imai Shoten usw. aufgrund des Ausbruchs?
Ich habe mit Deploy to EC2 begonnen, Daten zu verarbeiten. Wenn Sie kein Geld haben, können Sie es nicht als API w veröffentlichen
Hinweis:Die Genauigkeit ist immer noch gering. Überprüfen Sie daher bitte Ihre wahren Absichten.!!!!
▼ Pokemon "Spot" Bewertung Keyword-Ranking von Twitter& word2vec
1.Kinshi Park
2.Präfektur Aichi
3. gamespark
4.Nagoya
5.Park
6.Einkaufsstraße
7.Drei Plätze
8.Ohori Park
▼ Pokemon "Massenausbruch" Mundpropaganda-Keyword-Ranking von Twitter& word2vec
1.Pokemon Event Zusammenarbeit
2.Sakuragicho Station
3.Okura
4.Nishi Shinjuku
5.Einkaufsstraße
6.Paris
7.Zentralpark
8.Fukushima
9.Imai Buchhandlung
▼ Pokemon "Rare Pokemon" Bewertung Keyword-Ranking von Twitter& word2vec
1.Legende
2.Falsches Gerücht
3.Lebensraum
4.Mitternacht
5.Privates Haus
6.Osten
7.Miu Zwei
8.Scherzinformationen
9.aktualisieren
10.Auswertung
11.Mamitsuka Stadt, Isezaki Stadt, Präfektur Gunma
https://github.com/neologd/mecab-ipadic-neologd Wenn Sie sorgfältig lesen, können Sie anscheinend die neueste Version mit install-mecab-ipadic-neologd wie unten gezeigt installieren.
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
/usr/local/lib/mecab/dic/mecab-ipadic-neologd
./bin/install-mecab-ipadic-neologd -n
echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
vi /usr/local/etc/mecabrc
dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd
Fügen Sie ein Benutzerwörterbuch hinzu, indem Sie auf hier verweisen. Geben Sie die Stationsnamenliste, die Parks in Tokio und die Monsternamen ein.
cd /usr/local/lib/mecab/dic/ipadic
# add pokemon list
/usr/local/libexec/mecab/mecab-dict-index -u pokemon.dic -f utf-8 -t utf-8 /mnt/s3/resources/pokemons.csv
# add station list
/usr/local/libexec/mecab/mecab-dict-index -u station.dic -f utf-8 -t utf-8 /mnt/s3/resources/stations.csv
/usr/local/libexec/mecab/mecab-dict-index -u park.dic -f utf-8 -t utf-8 /mnt/s3/resources/park.csv
# copy into dict folder
cp pokemon.dic /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
cp station.dic /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
cp park.dic /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
Ich werde das Ergebnis des Versuchs mit dem Datenmodell von Wikipedia im Jahr 2018 hinzufügen.
Das Leben einer Frau ist "Liebe"
Das Hinzufügen von "Ehe" zum Leben einer Frau ist "Affäre"
"Ehe" vom Leben einer Frau abzuziehen ist "Weisheit"
Die Antwort aus dem ehrwürdigen WikiPedia-Datenmodell
Übrigens, wenn Sie nach Jobsuche, Erfolg, Fall suchen, finden Sie sechs Wiederaufbereitungsanlagen ...
Recommended Posts