Depuis la sortie de Pokemon GO, je veux vraiment voir les informations Twitter de manière efficace. Essayez word2vec avec Python3 pour rechercher des données de bouche à oreille et atteindre les informations souhaitées.
Cliquez ici pour Installation de Python Cliquez ici pour Installation de Mecab + neologd
[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 #Je n'en ai pas besoin en japonais
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 "nom" in fields[3]:
found = fields[2]
if "verbe" in fields[3]:
if "Verbe auxiliaire" 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"])
Pour le moment, vérifions si les données peuvent être obtenues correctement sur la ligne de commande.
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), ('Montre Youkai', 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), ('Art tardif', 0.6864794492721558), ('EjPbfZEhIS', 0.6781727075576782), ('Soudure', 0.6571916341781616), ('latteart', 0.6411304473876953)]
>>>
>>> model.most_similar(positive=u'Pikachu')
[('le tabac', 0.9689614176750183), ('Créer', 0.9548219442367554), ('Shibuya', 0.9207605123519897), ('EXCJ', 0.9159889221191406), ('Désinvolte', 0.8906601667404175), ('Obtenez la poubelle', 0.7719830274581909), ('Il y a', 0.6942187547683716), ('Je vous remercie', 0.6873651742935181), ('S'il vous plaît', 0.6714405417442322), ('GET', 0.6686745285987854)]
>>>
>>> model.most_similar(positive=u'Pokémon rare')
[('table', 0.8076062202453613), ('Hayami', 0.8065655827522278), ('Habitat', 0.7529213428497314), ('obtenir', 0.7382372617721558), ('dernier', 0.7039971351623535), ('Version japonnaise', 0.6925774216651917), ('base', 0.6455932855606079), ('300', 0.6433809995651245), ('YosukeYou', 0.6330702900886536), ('Enoshima', 0.6322115659713745)]
>>>
>>> model.most_similar(positive=u'Génération de masse')
[('Zone', 0.9162761569023132), ('le chaos', 0.8581807613372803), ('Gare de Sakuragicho', 0.7103563547134399), ('EjPbfZEhIS', 0.702730655670166), ('Okura', 0.6720583438873291), ('Tonomachi', 0.6632444858551025), ('Librairie Imai', 0.6514744758605957), ('丿', 0.6451742649078369), ('Paris', 0.6437439918518066), ('entrée', 0.640221893787384)]
Je suis curieux de connaître la base et Enoshima avec des Pokémon rares! Qu'en est-il de la gare de Sakuragicho, Okura, Tonomachi, Imai Shoten, etc. en raison de l'épidémie?
J'ai commencé à traiter des données avec Deploy to EC2. Si vous n'avez pas d'argent, vous ne pouvez pas le publier en tant qu'API w
Remarque:La précision est encore faible, veuillez donc vérifier vos véritables intentions.!!!!
▼ Pokemon "Spot" Review Classement des mots-clés par Twitter& word2vec
1.Parc Kinshi
2.Préfecture d'Aichi
3. gamespark
4.Nagoya
5.parc
6.Rue commerçante
7.Trois lieux
8.Parc Ohori
▼ Classement des mots-clés de bouche à oreille Pokemon "Mass Flush" par Twitter& word2vec
1.Collaboration d'événements Pokemon
2.Gare de Sakuragicho
3.Okura
4.Nishi Shinjuku
5.Rue commerçante
6.Paris
7.Parc central
8.Fukushima
9.Librairie Imai
▼ Pokemon "Rare Pokemon" Review Classement des mots-clés par twitter& word2vec
1.Légende
2.Fausse rumeur
3.Habitat
4.Minuit
5.Maison privée
6.est
7.Miu deux
8.Informations sur le canular
9.mise à jour
10.Évaluation
11.Ville de Mamitsuka, ville d'Isezaki, préfecture de Gunma
https://github.com/neologd/mecab-ipadic-neologd Si vous lisez attentivement, il semble que vous puissiez installer la dernière version avec install-mecab-ipadic-neologd comme indiqué ci-dessous.
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
Ajoutez un dictionnaire utilisateur en vous référant à here. Entrez la liste des noms de stations, les parcs de Tokyo et les noms de monstres.
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/
J'ajouterai le résultat d'essayer avec le modèle de données de wikipedia en 2018.
La vie d'une femme est "amour"
Ajouter le "mariage" à la vie d'une femme est une "affaire"
Soustraire le «mariage» de la vie d'une femme est une «sagesse»
La réponse du vénérable modèle de données WikiPedia
Au fait, si vous cherchez par recherche d'emploi, succès, cas, vous trouverez six usines de retraitement ...
Recommended Posts