Utiliser la liaison MeCab de Python natto-py

Qu'est-ce que le natto-py?

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.

Version Python correspondante

natto-py peut utiliser Python 2 et 3 ci-dessous. Les versions suivantes ont fait leurs preuves.

Installez MeCab

Tout d'abord, installez MeCab 0.996.

Installez natto-py

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.

Utilisons-le pour le moment

déclaration d'importation

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>

Analyse à la sortie standard

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

Sortie MeCabNode

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

référence

Recommended Posts

Utiliser la liaison MeCab de Python natto-py
Utiliser mecab avec Python 3
Utiliser l'analyse contrainte MeCab (analyse partielle) en Python via natto-py
Utilisons le wordcloud de python facilement!
Utilisez MeCab pour récupérer les lectures
Comment utiliser le module de journalisation de Python
Tirez pleinement parti de str.format de Python
■ [Google Colaboratory] Utiliser l'analyse morphologique (MeCab)
Comment utiliser le gestionnaire de contexte de Python