Sie müssen MeCab zuerst installieren.
Aber ich denke, die vorverarbeitenden Handwerker sind bereits bereit, also werde ich es weglassen.
Es unterstützt auch das Aufrufen des Mecab-neologd-Wörterbuchs, daher ist es eine gute Idee, es installieren zu lassen.
Machen Sie git clone [email protected]: Kensuke-Mitsuzawa / JapaneseTokenizers.git
und Sie können es mit python setup.py install
verwenden.
Oder Sie können dies mit pip install git + https: // github.com / Kensuke-Mitsuzawa / JapaneseTokenizers
tun.
Der gleiche Inhalt ist in Beispiel geschrieben, daher werde ich ihn kurz schreiben.
Bereiten Sie die Eingabeanweisung vor
`satz = u'Teheran (persisch: تهران; Teheran Teheran.ogg Aussprache [help / file] / teɦˈrɔːn /, Englisch: Teheran) ist die Hauptstadt von Westasien, Iran und die Hauptstadt von Teheran. Bevölkerung 12.223.598. Die Stadtbevölkerung erreicht 13.413.348. '``
python2x gibt nur "Unicode" ein.
Es spielt keine Rolle, welche Sie für python3x verwenden.
Gibt den Betriebssystemtyp an.
Anders als "centOS" ist "osType =" generic "" in Ordnung.
Nur centOS sollte osType =" Centos "
haben.
(Da die Systembefehle von Mecab nur für centOS unterschiedlich sind. Möglicherweise gibt es andere solche Betriebssysteme ... Ich habe bestätigt, dass es unter Ubuntu und Mac funktioniert.)
Gibt den Typ des Wörterbuchs an.
dictType =" "
oder dictType =" ipadic "
Initialisieren Sie die Instanz
mecab_wrapper = MecabWrapper(dictType=dictType, osType=osType)
Geteilte Wörter.
tokenized_obj = mecab_wrapper.tokenize(sentence=sentence)
Standardmäßig werden Wörter und Teile in einem Tapple-Paar zurückgegeben.
tokenized_obj = mecab_wrapper.tokenize(sentence=sentence, return_list=False)
Anschließend wird dieses Klassenobjekt zurückgegeben. Wenn Sie es also für eine andere Verarbeitung verwenden möchten, wird dies verwendet Es ist besser, das Flag anzugeben.
Filtern
Das Stoppwort ist
stopwords = [u'Teheran ']
Fügen Sie eine solche Zeichenfolge in die Liste ein. (Sowohl str
als auch unicode
sind akzeptabel)
Um nach Teilen anzugeben, geben Sie als "[(Teil des Teiletupels)]" an.
Teilwörter können bis zu 3 Ebenen angegeben werden. Zum Beispiel in IPADIC Part-Lyrics, wenn Sie "Nomen-proprietäre Nomenklatur-persönlicher Name" möchten, "(u'noun", Schreiben Sie eine proprietäre Nomenklatur, einen persönlichen Namen.
Wenn Sie bis zu "Substantiv-proprietäres Substantiv" angeben möchten, verwenden Sie "(u'noun ', u'proprietary noun)".
Auch hier können Sie sowohl "str" als auch "unicode" eingeben.
Platzieren Sie den Teil, den Sie erwerben möchten, in der Liste.
pos_condition = [(u'noun ', u'proprietary noun'), (u'verb ', u'independence')]
Führen Sie die Filterung durch.
filtered_obj = mecab_wrapper.filter(
parsed_sentence=tokenized_obj,
pos_condition=pos_condition
)
Der Rückgabewert ist dieses Klassenobjekt
Kurz zusammengefasst
Es ist eine Motivation.
Ich bin seit langer Zeit ein Sachbearbeiter für die Verarbeitung natürlicher Sprache ... Ich bin ein Heiliger, der Tag für Tag Vorverarbeitungen durchführt, manchmal sogar die Nachforschungen anderer vorverarbeitet. .. .. ..
Irgendwann bemerkte ich jedoch plötzlich __ "Schreibt der morphologische Teilungsteil nicht jedes Mal den gleichen Prozess?" __
Während ich also immer wieder dasselbe mache, habe ich nur die Prozesse gepackt, die ich am häufigsten verwendet habe (und wahrscheinlich verwenden werde).
Ein Paket, das in Python ähnlich sein kann, ist natto.
Ich fühlte mich jedoch unpraktisch, weil ich den Filterprozess in Natto schreiben musste und das Wörterbuch nicht hinzufügen konnte, also habe ich ein neues erstellt.
Egal, ob Sie ein Vorverarbeitungshandwerker oder ein aktiver Vorverarbeitungshandwerker sind! Ich hoffe, dass Sie Ihre Arbeit so weit wie möglich reduzieren und NLP genießen können.