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.
natto-py kann unten Python 2 und 3 verwenden. Die folgenden Versionen wurden bewiesen.
Installieren Sie zunächst MeCab 0.996.
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.
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>
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
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
Recommended Posts