Das häufigste Muster zum Sammeln und Verwenden von Tweets von verschiedenen Benutzern ist Es ist ein Muster, das ein bestimmtes Wort in Tweet extrahiert und verwendet.
Dieses Mal werden wir MeCab, einen morphologischen Analysator, verwenden, um Nomenklaturen, Verben und Adjektive zu extrahieren, indem wir sie in Wörter unterteilen.
Das Ausgabeformat hängt von der Option ab.
Standardmäßig
Oberflächenform \ t Teiltexte, Teiltexte Unterklassifizierung 1, Teilteilunterklassifizierung 2, Teilteilunterklassifizierung 3, Verwendungsform, Verwendungsart, Originalform, Lesen, Aussprache
Die Ausgabe wird sein.
Teilen Sie einen Satz in Worteinheiten (wie auf der Oberfläche)
Ein Programm, das vier Möglichkeiten bietet.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import MeCab
### Constants
MECAB_MODE = 'mecabrc'
PARSE_TEXT_ENCODING = 'utf-8'
### Functions
def main():
sample_u = u"Ich möchte der Fänger des Roggenfeldes sein. Ich weiß, dass es lächerlich ist. Aber das ist das Einzige, was ich wirklich sein möchte."
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)
#Wenn es sich nicht um einen str-Typ handelt, ist die Operation seltsam. Konvertieren Sie sie daher in einen str-Typ
text = unicode_string.encode(PARSE_TEXT_ENCODING)
node = tagger.parseToNode(text)
words = []
nouns = []
verbs = []
adjs = []
while node:
pos = node.feature.split(",")[0]
#Zum Unicode-Typ zurückkehren
word = node.surface.decode("utf-8")
if pos == "Substantiv":
nouns.append(word)
elif pos == "Verb":
verbs.append(word)
elif pos == "Adjektiv":
adjs.append(word)
words.append(word)
node = node.next
parsed_words_dict = {
"all": words[1:-1], #Entfernt, da am Anfang und am Ende leere Zeichenfolgen eingegeben werden
"nouns": nouns,
"verbs": verbs,
"adjs": adjs
}
return parsed_words_dict
### Execute
if __name__ == "__main__":
main()
(twi-py)$ python tweet_parser.py
All:Roggenweizen,Feld,von,Fang,Rolle,、,Eine solche,もvon,Zu,ich,Ist,Nari,Wollen,Hmm,Ist,Yo,。,Blöd,Teru,Ding,Ist,Kennt,Teru,Yo,。,Aber,、,ほHmmWannう,Zu,Nari,Wollen,もvon,Wann,Ichi,Tara,Es,Shika,Abwesend,Hallo,。
Nouns:Roggenweizen,Feld,Rolle,Ding,ich,Hmm,Ding,ほHmmとう,Ding,Es
Verbs:Fang,Nari,Blöd,Teru,Kennt,Teru,Nari,Ichi
Adjs:Abwesend
Jetzt können Sie Wörter extrahieren, indem Sie parse () mit dem abgerufenen Tweet füttern.
Dieser Beispielcode verwendete den Oberflächentyp in node.surface, Wenn Sie Wörter normalisieren möchten, deren Endungen sich ändern, z. B. Verben Sie können das in node.feature enthaltene Originalformular verwenden.
Recommended Posts