Verwenden Sie Pythons MeCab-Bindungs-Natto-Py

Was ist Natto-Py?

natto-py ist ein Python-Paket, das die Bindung mit Python-MeCabs Foreign Function Interface (FFI) ermöglicht. Es unterstützt Python 2 und 3 und hat den Vorteil, dass der Compiler es nicht benötigt. * Verfügbar unter nix, OS X und Windows.

Entsprechende Python-Version

natto-py kann unten Python 2 und 3 verwenden. Die folgenden Versionen wurden bewiesen.

Installieren Sie MeCab

Installieren Sie zunächst MeCab 0.996.

Installieren Sie natto-py

Installieren Sie natto-py über pip wie ein normales Python-Paket.

$ pip install natto-py

Das Paket cffi ist ebenfalls erforderlich, aber der obige Befehl installiert cffi bei Bedarf automatisch.

Lassen Sie es uns vorerst verwenden

Importanweisung

Importieren Sie die MeCab-Klasse aus natto, um eine Instanz abzurufen.

from natto import MeCab

nm = MeCab()

print(nm)

<natto.mecab.MeCab model=<cdata 'mecab_model_t *' 0x802016640>,
    tagger=<cdata 'mecab_t *' 0x8020a44c0>, 
    lattice=<cdata 'mecab_lattice_t *' 0x802079600>, 
    libpath="/opt/mecab/lib/libmecab.so", 
    options={}, 
    dicts=[<natto.dictionary.DictionaryInfo 
        dictionary=<cdata 'mecab_dictionary_info_t *' 0x802079480>,
        filepath="/opt/mecab/lib/mecab/dic/ipadic/sys.dic", 
        charset=utf-8, 
        type=0>], 
 version=0.996>

Analyse auf Standardausgabe

Der Satz wird vorerst analysiert und das Ergebnis als Zeichenfolge an die Standardausgabe gesendet.

text = "Ein Held erscheint immer zur Not."

print(nm.parse(text))

Prise Nomen,Allgemeines,*,*,*,*,Prise,Prise,Prise
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
Zeit Nomen,Nicht unabhängig,Anwalt möglich,*,*,*,Zeit,Toki,Toki
Hilfs,Fallassistent,Allgemeines,*,*,*,Zu,D.,D.
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Immer ein Zusatz,Hilfsanschluss,*,*,*,*,Sie müssen,Canaras,Canaras
Heldennomenklatur,Allgemeines,*,*,*,*,Held,Held,Held
Ist ein Assistent,Fallassistent,Allgemeines,*,*,*,Aber,Ga,Ga
Erscheinendes Verb,Unabhängigkeit,*,*,Ein Schritt,Grundform,erscheinen,Allawarel,Allawarel
.. Symbol,Phrase,*,*,*,*,。,。,。
EOS

MeCabNode-Ausgabe

Holen Sie sich das Analyseergebnis mit MeCabNode und geben Sie detailliertere Informationen zu jeder Morphologie aus.

# -F / --node-Geben Sie das Ausgabeformat des Knotens mit der Formatoption an
#
# %m    ...Oberflächentext der Morphologie
# %f[0] ...Teil
# %h    ...Teilwort ID(IPADIC)
# %f[8] ...Aussprache
#  
with MeCab('-F%m,%f[0],%h,%f[8]') as nm:
    for n in nm.parse(text, as_nodes=True):
        print(n.feature)

Prise,Substantiv,38,Prise
von,Partikel,24,Nein
Zeit,Substantiv,66,Toki
Zu,Partikel,13,D.
Ist,Partikel,16,Beeindruckend
Sie müssen,Adverb,35,Canaras
Held,Substantiv,38,Held
Aber,Partikel,13,Ga
erscheinen,Verb,31,Allawarel
。,Symbol,7,。
EOS

Wenn Sie [Python mit Anweisung] verwenden (http://docs.python.jp/3/reference/compound_stmts.html#the-with-statement), lebt MeCab auch dann, wenn der Kontext normal endet oder eine Ausnahme auftritt. Es wird empfohlen, da die Rallye-Referenz automatisch zerstört wird.

das ist alles

Referenz

Recommended Posts

Verwenden Sie Pythons MeCab-Bindungs-Natto-Py
Verwenden Sie Mecab mit Python 3
Verwenden Sie die eingeschränkte MeCab-Analyse (Teilanalyse) in Python über natto-py
Verwenden wir einfach die Wortwolke von Python!
Verwenden Sie MeCab, um Messwerte abzurufen
Verwendung des Python-Protokollierungsmoduls
Nutzen Sie das str.format von Python in vollem Umfang
■ [Google Colaboratory] Verwenden Sie die morphologische Analyse (MeCab)
Verwendung des Python-Kontextmanagers