Mecab est un moteur d'analyse morphologique open source. Il peut être utilisé pour diviser des phrases japonaises comme préparation à l'apprentissage automatique. Le but de cet article est d'installer Mecab et de le rendre disponible depuis Python.
J'ai fait référence à cet article.
$ sudo apt-get install mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8
(Je ne sais pas si j'ai besoin à la fois de mecab-ipadic et de mecab-ipadic-utf8, mais cela semble fonctionner pour le moment)
Vous pouvez voir le résultat de l'analyse morphologique en exécutant la commande mecab
et en saisissant des phrases japonaises. Par exemple, le résultat de l'entrée "Premier ministre Shinzo Abe" est le suivant.
$ mecab
Premier ministre Shinzo Abe
Abe substantif,Nomenclature propriétaire,Nom d'une personne,Nom de famille,*,*,Abe,Abe,Abe
Jin substantif,Nomenclature propriétaire,Nom d'une personne,Nom,*,*,Jin,Susumu,Susumu
Trois nomenclature,nombre,*,*,*,*,Trois,Soleil,Soleil
Nomenclature du premier ministre,Général,*,*,*,*,premier ministre,Shusho,Shusho
EOS
"Shinzo" n'a pas été analysé correctement.
Le dictionnaire IPA par défaut semble vulnérable à une analyse de nomenclature appropriée, nous avons donc considérablement amélioré la nomenclature appropriée et d'autres nouveaux mots [mecab-ipadic-NEologd](https://github.com/neologd/mecab-ipadic-neologd/ Entrez un dictionnaire appelé blob / master / README.ja.md).
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a
Editez / etc / mecabrc
pour le spécifier comme dictionnaire par défaut
dicdir = /usr/lib/mecab/dic/mecab-ipadic-neologd
ça ira.
Consultez la documentation officielle (https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md) pour plus d'informations.
De même, analysons le "Premier ministre Shinzo Abe".
$ mecab -d
Premier ministre Shinzo Abe
Nominal du Premier ministre Shinzo Abe,Nomenclature propriétaire,Général,*,*,*,Shinzo Abe,Abe Shinzo Shusho,Spectacle Abe Shinzosh
EOS
Cette fois, il est correctement reconnu comme une nomenclature appropriée.
mecab-python3
Incluez la liaison Mecab pour Python 3.
$ pip install mecab-python3
C'est acceptable.
mecab-test3
import sys
import MeCab
m = MeCab.Tagger("-Ochasen")
print(m.parse("Le Premier ministre Shinzo Abe a prononcé un discours politique à la Diète."))
Quand tu cours
$ python mecab-test.py
Premier ministre Shinzo Abe Shinzo Abe Shinzo Abe Shinzo Nominal-Nomenclature propriétaire-Général
Ha ha est un assistant-Assistance
,,, symbole-Point de lecture
Parlement Kokkai Nomenclature du Parlement-Général
De de assistant-Assistant de cas-Général
Discours politique Shisei Houshin Enzetsu Discours politique Nominal-Nomenclature propriétaire-Général
Wo wo auxiliaire-Assistant de cas-Général
Go Okonatsu Do verbe-Ligne indépendante à cinq étages / wa permettant une connexion continue du service sonore
Ta ta ta verbe auxiliaire special ta ta forme de base
.. .. .. symbole-Phrase
EOS
Ce sera.
Si vous souhaitez écrire séparément
m = MeCab.Tagger("-Owakati")
Tu peux le faire.
mecab-wakati-test.py
import sys
import MeCab
m = MeCab.Tagger("-Owakati")
items = m.parse("Le Premier ministre Shinzo Abe a prononcé un discours politique à la Diète.")
print(items)
print(type(items))
Quand tu cours
$ python mecab-wakati-test.py
Le Premier ministre Shinzo Abe a prononcé un discours politique à la Diète.
<class 'str'>
Le résultat est renvoyé sous forme de chaîne, donc si vous voulez en faire une liste, vous pouvez faire split ()
.
Recommended Posts