Bonjour, voici un autre nouveau venu. Ceci est une continuation de Dernière fois.
Si je n'utilisais que mecab la dernière fois, cela ne fonctionnerait pas, et quand je l'ai dévoilé au monde tel qu'il était, de toutes les directions (qiita, twitter et presque toutes les directions), "je pense que vous ne pouvez utiliser que le dictionnaire IPA en japonais, utilisez NEologd". Merci d'avoir volé ~~ Visage ~~ Je l'ai pris par l'avant.
J'ai également essayé d'utiliser ʻelasticsearch-analysis-kuromoji`, qui peut analyser le japonais avec le plugin Elasticsearch.
――NEologd semble prendre en charge les langues modernes, mais dans quelle mesure cela fonctionnera-t-il sur Twitter, où les nouveaux mots qui commencent tout juste à devenir populaires sont monnaie courante? ――Il semble que le kuromoji puisse être divisé en japonais, mais à quel point est-il moderne? Je ne sais pas comment me débarrasser des déchirures et des balises de hachage.
Veuillez vous référer à Dernière fois.
-Installation de NEologd
Je vais le retirer de github.
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
Pour obtenir la mise à jour:
$ ./bin/install-mecab-ipadic-neologd -n
Trouvez l'emplacement où NEologd est installé avec la commande suivante:
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
Comment utiliser est introduit dans le code python.
-Installer elasticsearch-analysis-kuromoji
À l'emplacement où Elasticsearch est installé ($ ES_HOME
), procédez comme suit:
$ sudo bin/elasticsearch-plugin install analysis-kuromoji
Cette fois, nous analyserons le champ texte
, alors soumettez le modèle suivant. (Bien sûr, après avoir démarré Elasticsearch.)
curl -XPUT --user elastic:changeme localhost:9200/_template/text_analysis?pretty -d '{
"template": "twitter-*",
"settings": {
"analysis": {
"tokenizer": {
"kuromoji_user_dict": {
"type": "kuromoji_tokenizer",
"mode": "normal"
}
}
}
},
"mappings": {
"twitter": {
"properties": {
"text": {
"type": "text",
"fielddata": true,
"analyzer": "kuromoji",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}
}'
--user elastique: changeme
est comment lancer curl après l'installation de x-pack. Au fait, ʻusername = élastique,
password = changeme`. (Je suis désolé, je n'ai pas encore changé mon mot de passe)
Veuillez consulter Dernière fois pour savoir comment utiliser l'API Twitter.
search.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session
import json
import MeCab
CK = '***********'
CS = '***********'
AT = '***********'
AS = '***********'
url = "https://api.twitter.com/1.1/search/tweets.json"
#here can be set ID of tweet (ordered by time), and number of tweets (default is 20, max 200)
params = {'q':'#Échapper à la honte', 'count':'200'}
# GET request
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.get(url, params = params)
f = open("json/search_nigehaji.json","a")
if req.status_code == 200:
timeline = json.loads(req.text)
print(timeline)
for tweet in timeline["statuses"]:
word_array = []
mecab_combo = [[] for j in range(3)]
word_combo = []
print(tweet)
for word in tweet["text"].split(" "):
word_array.append(word)
print(word)
if (not word.startswith('http')) and (not word.startswith('@')) and (word != 'RT'):
tagger = MeCab.Tagger(' -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
text_str = word.encode('utf-8')
node = tagger.parseToNode(text_str)
mecab_array_noun = [];mecab_array_verb = []
while node:
mecab_word = node.surface.decode("utf-8")
pos = node.feature.split(",")[0]
mecab_combo[0].append(pos)
mecab_combo[1].append(mecab_word)
mecab_combo[2].append(node.feature.split(",")[6])
if pos == "nom":
mecab_array_noun.append(mecab_word)
print(pos)
print(mecab_word)
elif pos == "verbe":
mecab_array_verb.append(mecab_word)
print(pos)
print(mecab_word)
print(node.feature.split(",")[6])
node = node.next
print(mecab_combo)
print("###########")
print(len(mecab_combo[0]))
for i in xrange(0, len(mecab_combo[0])):
print("########################################")
print(mecab_combo[0][i])
stage_count = 0
if mecab_combo[0][i] == "nom":
print("start for")
l = []
for j in xrange(i, len(mecab_combo[0])):
print(mecab_combo[1][j])
if mecab_combo[0][j] == "nom":
l.append(mecab_combo[1][j])
word_combo.append(''.join(l))
print(''.join(l))
elif mecab_combo[0][j] in ["Particule", "Verbe auxiliaire", "verbe"]:
if stage_count != 0:
break
l.append(mecab_combo[1][j])
word_combo.append(''.join(l))
stage_count += 1
print(''.join(l))
else:
print(''.join(l))
print("end")
break
if mecab_combo[0][i] == "verbe":
print("start for")
l = []
for j in xrange(i, len(mecab_combo[0])):
print(mecab_combo[1][j])
if mecab_combo[0][j] == "verbe":
l.append(mecab_combo[1][j])
word_combo.append(''.join(l))
print(''.join(l))
elif mecab_combo[0][j] in ["adjectif", "Particule"]:
l.append(mecab_combo[1][j])
word_combo.append(''.join(l))
print(''.join(l))
print("end")
break
else:
print(''.join(l))
print("end")
break
print("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
#injection
tweet['words']=word_array;tweet['mecab_noun']=mecab_array_noun;tweet['mecab_verb']=mecab_array_verb;tweet['word_combo']=word_combo
json.dump(tweet, f)
f.write('\n')
else:
print("Error: %d" % req.status_codea)
La différence avec Dernière fois est que NEologd a été appliqué en premier.
search.py
tagger = MeCab.Tagger(' -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
Après cela, profitant du reflet de précédent, j'ai également supprimé les liens URL (commençant par http), les réponses (commençant par @) et «RT». Mais
La plus grande partie est le recueil de nomenclature + nomenclature + ... et nomenclature + assistants + nomenclature! J'ai essayé de saisir les mots clés. Vous pouvez ajouter autant de motifs que vous le souhaitez. Avec cela, par exemple ...
Hoshino Gen
«Wow du lundi»
Je suis dans mes bras dans la meilleure scène de l'épisode final en ce moment ... laissez-le tranquille. ..
Je pense que les résultats sont plutôt bons!
Pour les graphiques d'analyse de honte d'échappement autres que les balises de hachage, passez à Axe X
ʻAvancé-> ʻExclude Pattern
.*https.*|\#.*|Échapper à la honte|.|..
Est spécifié. En ce qui concerne l'analyse japonaise, vous pouvez imaginer des personnages, des acteurs et des scènes à la fois en kuromoji et en mecab (analyse de nom). Si vous ne voulez pas en faire assez pour mordre python, c'est kuromoji.
Et dans l'analyse des mots clés, tout le monde semble marmonner les lignes telles qu'elles sont ...
La meilleure jolie
Et
Travail gratuit
Et
Les bonnes intentions des gens
Et
Expansion de 15 minutes
Quelque chose est classé.
Je ne l'ai pas vu depuis que je n'ai vu que 2 épisodes, et je n'ai vu que les 5 premières et 5 dernières minutes de l'épisode final, donc Je ne sais pas quels sont ces mots clés, mais je suis sûr qu'il y avait une telle ligne (une personne)
Eh bien, allons au lit. Cette scène était trop forte pour moi ...