Le modèle le plus courant de collecte et d'utilisation des Tweets de divers utilisateurs est C'est un modèle qui extrait et utilise un mot spécifique contenu dans Tweet.
Cette fois, nous utiliserons MeCab, un analyseur morphologique, pour extraire la nomenclature, les verbes et les adjectifs en les divisant en mots.
Le format de sortie dépend de l'option.
Par défaut
Forme de surface \ t paroles de partie, sous-classification de paroles de partie 1, sous-classification de partie de partie 2, sous-classification de partie de partie 3, formulaire d'utilisation, type d'utilisation, prototype, lecture, prononciation
La sortie sera.
Divisez une phrase en unités de mots (tel quel en surface)
Un programme qui prend 4 voies.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import MeCab
### Constants
MECAB_MODE = 'mecabrc'
PARSE_TEXT_ENCODING = 'utf-8'
### Functions
def main():
sample_u = u"Je veux être le receveur du champ de seigle. Je sais que c'est ridicule. Mais c'est la seule chose que je veux vraiment être."
words_dict = parse(sample_u)
print "All:", ",".join(words_dict['all'])
print "Nouns:", ",".join(words_dict['nouns'])
print "Verbs:", ",".join(words_dict['verbs'])
print "Adjs:", ",".join(words_dict['adjs'])
return
def parse(unicode_string):
tagger = MeCab.Tagger(MECAB_MODE)
#S'il ne s'agit pas de type str, l'opération sera étrange, alors convertissez-la en type str
text = unicode_string.encode(PARSE_TEXT_ENCODING)
node = tagger.parseToNode(text)
words = []
nouns = []
verbs = []
adjs = []
while node:
pos = node.feature.split(",")[0]
#Revenir au type unicode
word = node.surface.decode("utf-8")
if pos == "nom":
nouns.append(word)
elif pos == "verbe":
verbs.append(word)
elif pos == "adjectif":
adjs.append(word)
words.append(word)
node = node.next
parsed_words_dict = {
"all": words[1:-1], #Supprimé car des chaînes de caractères vides sont entrées au début et à la fin
"nouns": nouns,
"verbs": verbs,
"adjs": adjs
}
return parsed_words_dict
### Execute
if __name__ == "__main__":
main()
(twi-py)$ python tweet_parser.py
All:Blé de seigle,champ,de,Capture,Rôle,、,Tel,もde,À,je,Est,Nari,Vouloir,Hmm,Est,Yo,。,Stupide,Teru,chose,Est,Connaître,Teru,Yo,。,Mais,、,ほHmmQuandう,À,Nari,Vouloir,もde,Quand,Ichi,Tara,Il,Shika,Absent,Hey,。
Nouns:Blé de seigle,champ,Rôle,chose,je,Hmm,chose,ほHmmとう,chose,Il
Verbs:Capture,Nari,Stupide,Teru,Connaître,Teru,Nari,Ichi
Adjs:Absent
Vous pouvez maintenant extraire des mots en alimentant parse () avec le Tweet récupéré.
Cet exemple de code a utilisé le type de surface dans node.surface, Si vous souhaitez normaliser des mots qui changent de fin, tels que les verbes Vous pouvez utiliser le formulaire d'origine inclus dans node.feature.
Recommended Posts