Mecab ist eine Open-Source-Engine für morphologische Analysen. Es kann verwendet werden, um japanische Sätze als Vorbereitung für maschinelles Lernen zu teilen. Ziel dieses Artikels ist es, Mecab zu installieren und in Python verfügbar zu machen.
Ich habe auf [diesen Artikel] verwiesen (https://gist.github.com/YoshihitoAso/9048005).
$ sudo apt-get install mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8
(Ich bin nicht sicher, ob ich sowohl mecab-ipadic als auch mecab-ipadic-utf8 brauche, aber es scheint vorerst zu funktionieren)
Sie können das Ergebnis der morphologischen Analyse sehen, indem Sie den Befehl mecab
ausführen und japanische Sätze eingeben. Zum Beispiel ist das Ergebnis der Einreise von "Premierminister Shinzo Abe" wie folgt.
$ mecab
Premierminister Shinzo Abe
Abe Substantiv,Proprietäre Nomenklatur,Name der Person,Nachname,*,*,Abe,Abe,Abe
Jin Nomen,Proprietäre Nomenklatur,Name der Person,Name,*,*,Jin,Susumu,Susumu
Drei Nomenklatur,Nummer,*,*,*,*,drei,Sonne,Sonne
Nomenklatur des Premierministers,Allgemeines,*,*,*,*,Premierminister,Shusho,Shusho
EOS
"Shinzo" wurde nicht richtig analysiert.
Das Standard-IPA-Wörterbuch scheint anfällig für die Analyse der richtigen Nomenklatur zu sein. Daher haben wir die korrekte Nomenklatur und andere neue Wörter mecab-ipadic-NEologd erheblich verbessert. Geben Sie ein Wörterbuch mit dem Namen blob / master / README.ja.md ein.
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a
Bearbeiten Sie / etc / mecabrc
, um dies als Standardwörterbuch anzugeben
dicdir = /usr/lib/mecab/dic/mecab-ipadic-neologd
Wird besorgt.
Weitere Informationen finden Sie in der offiziellen Dokumentation (https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md).
In ähnlicher Weise analysieren wir "Premierminister Shinzo Abe".
$ mecab -d
Premierminister Shinzo Abe
Premierminister Shinzo Abe Nominal,Proprietäre Nomenklatur,Allgemeines,*,*,*,Shinzo Abe,Abe Shinzo Shusho,Abe Shinzosh Show
EOS
Dieses Mal wird es korrekt als richtige Nomenklatur erkannt.
mecab-python3
Fügen Sie die Mecab-Bindung für Python 3 hinzu.
$ pip install mecab-python3
Das ist in Ordnung.
mecab-test3
import sys
import MeCab
m = MeCab.Tagger("-Ochasen")
print(m.parse("Premierminister Shinzo Abe hielt auf dem Landtag eine Grundsatzrede."))
Wenn du rennst
$ python mecab-test.py
Premierminister Shinzo Abe Shinzo Abe Shinzo Abe Shinzo Nominal-Proprietäre Nomenklatur-Allgemeines
Ha ha ist ein Assistent-Hilfe
,,, Symbol-Lesepunkt
Parlament Kokkai Parlamentsnomenklatur-Allgemeines
De de de Assistent-Fallassistent-Allgemeines
Grundsatzrede Shisei Houshin Enzetsu Grundsatzrede Nominal-Proprietäre Nomenklatur-Allgemeines
Wo wo Auxiliary-Fallassistent-Allgemeines
Go Okonatsu Do verb-Unabhängige fünfstufige / wa-Leitung, die eine kontinuierliche Verbindung zum Sounddienst anfordert
Ta ta ta Hilfsverb spezielle ta ta Grundform
.. .. .. Symbol-Phrase
EOS
Es wird sein.
Wenn Sie separat schreiben möchten
m = MeCab.Tagger("-Owakati")
Du kannst es schaffen.
mecab-wakati-test.py
import sys
import MeCab
m = MeCab.Tagger("-Owakati")
items = m.parse("Premierminister Shinzo Abe hielt auf dem Landtag eine Grundsatzrede.")
print(items)
print(type(items))
Wenn du rennst
$ python mecab-wakati-test.py
Premierminister Shinzo Abe hielt auf dem Landtag eine Grundsatzrede.
<class 'str'>
Das Ergebnis wird als Zeichenfolge zurückgegeben. Wenn Sie also eine Liste erstellen möchten, können Sie "split ()" ausführen.