natto-py est un package Python qui fournit une liaison avec l '[Foreign Function Interface] de Python-MeCab (http://en.wikipedia.org/wiki/Foreign_function_interface) (FFI). Il prend en charge Python 2 et 3 et présente l'avantage que le compilateur n'en a pas besoin. * Disponible sur nix, OS X et Windows.
natto-py peut utiliser Python 2 et 3 ci-dessous. Les versions suivantes ont fait leurs preuves.
Tout d'abord, installez MeCab 0.996.
Installez natto-py via pip comme vous le feriez avec un package Python normal.
$ pip install natto-py
Le package cffi est également requis, mais la commande ci-dessus installera automatiquement cffi si nécessaire.
Importez la classe MeCab de natto pour obtenir une instance.
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>
La phrase est analysée pour le moment et le résultat est envoyé à la sortie standard sous forme de chaîne de caractères.
text = "Un héros apparaît toujours à la rigueur."
print(nm.parse(text))
Pinch substantif,Général,*,*,*,*,pincer,pincer,pincer
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Temps substantif,Non indépendant,Avocat possible,*,*,*,Temps,Toki,Toki
Auxiliaire,Assistant de cas,Général,*,*,*,À,ré,ré
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
Toujours un complément,Connexion auxiliaire,*,*,*,*,vous devez,Canaras,Canaras
Nomenclature des héros,Général,*,*,*,*,héros,héros,héros
Est un assistant,Assistant de cas,Général,*,*,*,Mais,Géorgie,Géorgie
Verbe apparaissant,Indépendance,*,*,Un pas,Forme basique,apparaître,Allawarel,Allawarel
.. symbole,Phrase,*,*,*,*,。,。,。
EOS
Obtenez le résultat de l'analyse avec MeCabNode
et affichez des informations plus détaillées sur chaque morphologie.
# -F / --node-Spécifiez le format de sortie du nœud avec l'option format
#
# %m ...Texte de surface de la morphologie
# %f[0] ...Partie
# %h ...ID de mot de pièce(IPADIC)
# %f[8] ...prononciation
#
with MeCab('-F%m,%f[0],%h,%f[8]') as nm:
for n in nm.parse(text, as_nodes=True):
print(n.feature)
pincer,nom,38,pincer
de,Particule,24,Non
Temps,nom,66,Toki
À,Particule,13,ré
Est,Particule,16,sensationnel
vous devez,adverbe,35,Canaras
héros,nom,38,héros
Mais,Particule,13,Géorgie
apparaître,verbe,31,Allawarel
。,symbole,7,。
EOS
Si vous utilisez Python avec instruction, MeCab vit même si le contexte se termine normalement ou qu'une exception se produit. Il est recommandé car la référence du rallye sera automatiquement détruite.
c'est tout
Recommended Posts