pip install Japanese Tokenizer
Datei erstellen wurde im Github-Repository eingerichtet.
Wenn Sie es schaffen, installieren Sie es manuell. Informationen zur Installation finden Sie in diesem Abschnitt.
Ein Beispiel wird in python3.x gezeigt. Wenn Sie ein Beispiel für python2.x sehen möchten, [Beispielcode](https://github.com/Kensuke- Siehe Mitsuzawa / JapaneseTokenizers / blob / master / examples / examples.py).
Das Teil-der-Sprache-System ist auf dieser Seite ausführlich zusammengefasst. Das Teil-der-Sprache-System von Juman / Human ++ wird ebenfalls beschrieben. Wenn Sie also eine Teil-der-Sprache-Filterung mit Juman / Human ++ durchführen möchten, wechseln Sie zur Verwendung.
Sie können übrigens auch das neologd-Wörterbuch in Human / Human ++ verwenden. Bitte lesen Sie diesen Artikel. Ich habe ein Skript erstellt, um das neologd-Wörterbuch in juman / juman ++ verwendbar zu machen
Der einzige Unterschied zwischen Mecab, Juman / Human ++ und Kytea ist die Klasse, die sie nennen. Es erbt dieselbe gemeinsame Klasse.
Einführung in die Verwendung von Version 1.3.1.
import JapaneseTokenizer
#Wählen Sie einen Wörterbuchtyp."neologd", "all", "ipadic", "user", ""Kann ausgewählt werden.
mecab_wrapper = JapaneseTokenizer.MecabWrapper(dictType='neologd')
#Definieren Sie den Teil des Wortes, den Sie erwerben möchten.
pos_condition = [('Substantiv', '固有Substantiv'), ('Adjektiv', 'Unabhängigkeit')]
sentence = "Die Islamische Republik Iran, allgemein bekannt als Iran, ist eine islamische Republik in Westasien und im Nahen Osten. Auch als Persien oder Persien bekannt."
#Morphologische Unterteilung,Teilwortfilterung,Vollständige Auflistung in einer Zeile
print(mecab_wrapper.tokenize(sentence).filter(pos_condition).convert_list_object())
Dann sieht das Ergebnis so aus:
['Islamische Republik Iran', 'Iran', 'Westasien', 'Mittlerer Osten', 'Islamische Republik', 'Persien', 'Persien']
Es ist im Grunde das gleiche wie Mecab. Nur die anzurufende Klasse ist unterschiedlich.
Für Juman
from JapaneseTokenizer import JumanWrapper
tokenizer_obj = JumanWrapper()
#Definieren Sie den Teil des Wortes, den Sie erwerben möchten.
pos_condition = [('Substantiv', '固有Substantiv'), ('Substantiv', 'Ortsname'), ('Substantiv', 'Name der Organisation'), ('Substantiv', '普通Substantiv')]
sentence = "Die Islamische Republik Iran, allgemein bekannt als Iran, ist eine islamische Republik in Westasien und im Nahen Osten. Auch als Persien oder Persien bekannt."
#Morphologische Unterteilung,Teilwortfilterung,Vollständige Auflistung in einer Zeile
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
['Iran', 'Islam', 'Kyowa', 'Land', 'Bekannt als', 'Iran', 'Westen', 'Asien', 'Mittlerer Osten', 'Islam', 'Kyowa', 'System', 'Land家', 'Persien', 'Persien']
Für Juman ++
from JapaneseTokenizer import JumanppWrapper
tokenizer_obj = JumanppWrapper()
#Definieren Sie den Teil des Wortes, den Sie erwerben möchten.
pos_condition = [('Substantiv', '固有Substantiv'), ('Substantiv', 'Ortsname'), ('Substantiv', 'Name der Organisation'), ('Substantiv', '普通Substantiv')]
sentence = "Die Islamische Republik Iran, allgemein bekannt als Iran, ist eine islamische Republik in Westasien und im Nahen Osten. Auch als Persien oder Persien bekannt."
#Morphologische Unterteilung,Teilwortfilterung,Vollständige Auflistung in einer Zeile
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
['Iran', 'Islam', 'Republik', 'Bekannt als', 'Iran', 'Westen', 'Asien', 'Mittlerer Osten', 'Islam', 'Republikanisches System', 'Nation', 'Persien', 'Persien']
In der Tat, wenn der Text so anständig wie Wikipedia ist, werden sich Human und Juman ++ nicht so sehr ändern. Wenn Sie Juman ++ verwenden, ist es nur beim ersten Aufruf etwas langsam. Dies liegt daran, dass das Speichern der Modelldatei einige Zeit in Anspruch nimmt. Ab dem zweiten Mal wird der Prozess aufgerufen, der weiterläuft, sodass diese Langsamkeit verschwindet.
Bis auf Mecab, Juman und den Klassennamen ist alles gleich.
from JapaneseTokenizer import KyteaWrapper
tokenizer_obj = KyteaWrapper()
#Definieren Sie den Teil des Wortes, den Sie erwerben möchten.
pos_condition = [('Substantiv',)]
sentence = "Die Islamische Republik Iran, allgemein bekannt als Iran, ist eine islamische Republik in Westasien und im Nahen Osten. Auch als Persien oder Persien bekannt."
#Morphologische Unterteilung,Teilwortfilterung,Vollständige Auflistung in einer Zeile
print(tokenizer_obj.tokenize(sentence).filter(pos_condition).convert_list_object())
Zuvor habe ich Mecabs [Artikel, der so etwas wie einen verbindlichen Wrapper macht und selbstzufrieden ist] veröffentlicht (http://qiita.com/Kensuke-Mitsuzawa/items/50d613952d5a4e3c58e0). Zu diesem Zeitpunkt habe ich es selbst geschafft, also ist das in Ordnung. Danach kam ich jedoch zu dem Gedanken, dass __ "Ich möchte, dass Sie den Vergleich von morphologischen Analysegeräten leicht versuchen" __, und ich kam, um es zu machen.
Es ist nur um mich herum, aber ich fühle eine Atmosphäre wie "morphologische Analyse? Vorerst mit Mecab. Oder etwas anderes?"
Wenn ich mit Qiita suche, gibt es 347 Treffer für "Mecab", aber nur 17 für "Juman". Es gibt 3 Fälle für "Kytea".
Natürlich denke ich, dass Mecab als Software sehr gut ist. Aber: "Ich weiß nichts anderes, aber es gibt nur Mecab, richtig?" Ist etwas anderes, nicht wahr? Ich denke.
Aus diesem Grund war die erste Motivation, einen Appell einzureichen, der __ "Es gibt andere als Mecab" __.
Vor kurzem war ich in der ausländischen Python-Community, die in Japan lebt.
Obwohl sie an der japanischen Verarbeitung interessiert sind, wissen sie nicht, welcher morphologische Analysator besser ist.
Sie schauen nach, aber sie verstehen den Unterschied nicht wirklich, also sagen sie, dass etwas durcheinander ist.
Unten die mysteriöse Logik, die ich bisher gehört habe
Ich dachte, der Grund, warum eine solche mysteriöse Logik herauskam, war, dass die Informationen nicht vorbereitet waren und nicht verglichen werden konnten.
Es ist schwierig, die Informationen zu organisieren, aber es kann Vergleiche erleichtern. Deshalb habe ich es geschafft. Außerdem habe ich versucht, alle Dokumente auf Englisch zu schreiben. Ich dachte, es wäre schön, wenn die Informationen so weit wie möglich gesammelt werden könnten.
Ich habe es so entworfen, dass es die gleiche Struktur wie möglich hat, einschließlich der Schnittstelle. Die Klasse, die die Verarbeitung ausführt, und die Datenklasse sind alle gemeinsam.
Wir haben die Syntax so konzipiert, dass "Codierungsvorverarbeitung mit der schnellsten Geschwindigkeit" realisiert wird. Infolgedessen ist es zu einer Schnittstelle geworden, die die morphologische Unterteilung und Teilwortfilterung in einer Zeile handhabt.
Wenn es Ihnen gefällt, geben Sie Star ☆ an Github Repository: bow_tone1:
Wir suchen auch Menschen, die sich gemeinsam verbessern können. Ich möchte hier auch einen Analysator vorstellen. RakutenMA, Chansen ...
Recommended Posts