De Python à l'utilisation de MeCab (et CaboCha)

environnement

Mac OS 10.9.4 Python 2.7

Installation de Cabocha

MeCab est requis pour utiliser CaboCha

Installation de CRF ++

La dernière version au moment de la rédaction est la 0.58 http://crfpp.googlecode.com/svn/trunk/doc/index.html#download

Décompressez

$ cd CRF++-0.58
$ ./configure
$ make
$ make install

$ cd python
$ sudo python setup.py install

Installez MeCab

La dernière version au moment de la rédaction est la 0.996 https://code.google.com/p/mecab/

À partir des téléchargements

--mecab-0.996.tar.gz (corps mecab)

Téléchargez et décompressez.

$ cd mecab-0.996
$ ./configure
$ make
$ sudo make install

$ cd ..
$ cd mecab-python-0.996
$ sudo python setup.py install

$ cd ..
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure
$ make
$ sudo make install

Il n'y a pas de tel fichier ou répertoire


 Si on vous dit

#### **`sudo apt-get install python2.7-dev`**
```7-dev


 Essayez de bouger

```bash
$ mecab
Je suis Sakamoto et
Sakamoto?	????,????,*,*,*,*,*
??	̾??,??ͭ̾??,?ȿ?,*,*,*,*
??Mais????,????,*,*,*,*,*
EOS

Les caractères sont déformés. Il semble que ce ne soit pas utf-8 si le code de caractère du dictionnaire est la valeur par défaut.

Accédez au répertoire mecab-ipadic et reconfigurez en UTF-8. Nettoyer puis reconfigurer

$ make clean
$ ./configure --with-charset=utf8
$ make 
$ sudo make install

Ubuntu

libmecab.so.2: cannot open shared object file: No such file or directory


 Si on vous dit
```sudo ldconfig ```
 CA a l'air d etre bon

 Essayez de l'utiliser.

```bash
$ mecab
Je suis Sakamoto et
Sakamoto substantif,Nomenclature propriétaire,Nom d'une personne,Nom de famille,*,*,Sakamoto,Sakamoto,Sakamoto
Est un verbe auxiliaire,*,*,*,Mort spéciale,Forme basique,est,mort,mort
Est un assistant,Assistant de connexion,*,*,*,*,Mais,Géorgie,Géorgie
EOS

fixé.

Au fait, le paramétrage de mecab est écrit en mecabrc.

$ sudo find / -name "mecabrc"
/usr/local/etc/mecabrc
$ sudo emacs /usr/local/etc/mecabrc

C'était comme ça par défaut

;
; Configuration file of MeCab
;
; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $;
;
dicdir =  /usr/local/lib/mecab/dic/ipadic

; userdic = /home/foo/bar/user.dic

; output-format-type = wakati
; input-buffer-size = 8192

; node-format = %m\n
; bos-format = %S\n
; eos-format = EOS\n

Il semble que dicdir soit un répertoire de données de dictionnaire.

Installation de CaboCha

La dernière version au moment de la rédaction est la 0.68 https://code.google.com/p/cabocha/

Téléchargez et décompressez cabocha-0.68.tar.bz2 depuis Téléchargements

$ cd cabocha-0.68
$ ./configure
$ make
$ sudo make install

$ cd pythin
$ sudo python setup.py install

Essayez l'analyse morphologique avec MeCab

Vérification de fonctionnement avec python

import MeCab
mt = MeCab.Tagger("-Ochasen")
print mt.parse("Je suis Sakamoto et")
Sakamoto Sakamoto Sakamoto Noun-Nomenclature propriétaire-Nom d'une personne-Nom de famille
C'est la mort. Verbe auxiliaire spécial / forme de base de la mort
Gaga est un assistant-Assistant de connexion
EOS

Voir les paroles de la partie

C'est ennuyeux de ne pas pouvoir y aller à moins que je fasse très attention au code des caractères.

# coding: utf-8
import MeCab

mt = MeCab.Tagger("mecabrc")
res = mt.parseToNode("Je suis Sakamoto et")

while res:
	print res.surface
	print res.feature
	res = res.next

BOS/EOS,*,*,*,*,*,*,*,*
Sakamoto
nom,固有nom,Nom d'une personne,Nom de famille,*,*,Sakamoto,Sakamoto,Sakamoto
est
Verbe auxiliaire,*,*,*,Mort spéciale,Forme basique,est,mort,mort
Mais
Particule,接続Particule,*,*,*,*,Mais,Géorgie,Géorgie

BOS/EOS,*,*,*,*,*,*,*,*

Il y avait de nombreuses implémentations qui séparaient res.feature avec ",", mais je me demande s'il n'y a pas d'autre choix que de le faire. Eh bien, cela ne semble pas être un problème, alors je vais essayer.

# coding: utf-8
import MeCab

mt = MeCab.Tagger("mecabrc")
res = mt.parseToNode("Je suis Sakamoto et")

while res:
	print res.surface
	arr = res.feature.split(",")
	print "Partie: " + arr[0]
	res = res.next

Partie: BOS/EOS
Sakamoto
Partie:nom
est
Partie:Verbe auxiliaire
Mais
Partie:Particule

Partie: BOS/EOS

Si vous ne définissez pas res = res.next au lieu de res.next, vous bouclerez naturellement indéfiniment. Je suis accro à l'utilisation de Java.

Essayez d'utiliser CaboCha

Je l'écrirai à nouveau si j'essaye d'utiliser.

Recommended Posts

De Python à l'utilisation de MeCab (et CaboCha)
Remarques sur l'utilisation de MeCab depuis Python
MeCab de Python
Utilisation de Python et MeCab avec Azure Databricks
Portage et modification du solveur de doublets de python2 vers python3.
Analyse des tweets avec Python, Mecab et CaboCha
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
Créez un outil qui secoue automatiquement furigana avec html en utilisant Mecab de Python3
Aplatir à l'aide du rendement Python de
Publier de Python vers Slack
Flirter de PHP à Python
Rendre MeCab disponible à partir de Python 3
Notification PUSH de Python vers Android à l'aide de l'API de Google
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Publier sur Twitter en utilisant Python
Méthodes MessagePack-Call Python (ou Python vers Ruby) à partir de Ruby à l'aide de RPC
Commencez à Selenium en utilisant python
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Copier les fichiers S3 de Python vers GCS à l'aide de GSUtil
Récupérer des fichiers depuis Linux en utilisant paramiko et scp [Python]
Requête de Python vers Amazon Athena (à l'aide du profil nommé)
Essayez de le faire avec GUI, PyQt en Python
Conversion de Pandas DataFrame en System.Data.DataTable à l'aide de Python pour .NET
Visualisez l'activité des plantes depuis l'espace à l'aide de données satellites et de Python
Apprenez les bases et les astuces des expressions canoniques Python à partir de zéro
Comment se connecter à diverses bases de données à partir de Python (PEP 249) et SQL Alchemy
Prédire le sexe à partir du nom à l'aide de l'API Gender et de Pykakasi en Python
[Python] Extraction / combinaison de données aléatoires à partir de DataFrame en utilisant random et pandas
Tirez en accéléré à partir d'une caméra PC en utilisant Python, OpenCV
Aller au langage pour voir et se souvenir de la partie 8 Appeler le langage GO à partir de Python
Appelez Matlab depuis Python pour optimiser
Comment installer Python à l'aide d'Anaconda
Python 3.6 sous Windows ... et vers Xamarin.
[Introduction à Python3 Jour 1] Programmation et Python
Utilisation de Rstan de Python avec PypeR
Authentification à l'aide de l'authentification des utilisateurs tweepy et de l'authentification d'application (Python)
Python, rendement, retour et parfois rendement de
Publication de Python sur la chronologie Facebook
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Lire et utiliser des fichiers Python à partir de Python
À propos de Python, à partir et à l'importation, comme
Connectez-vous à la base de données utf8mb4 à partir de python
Utiliser Cloud Storage depuis Python3 (Introduction)
Python (de la première fois à l'exécution)
Mecab / Cabocha / KNP sur Python + Windows
Publier une image de Python sur Tumblr
Clustering et visualisation à l'aide de Python et CytoScape
Journalisation Python et vidage vers json
Comment accéder à wikipedia depuis python
Python pour passer d'une autre langue
Sélénium et python pour ouvrir Google
Exécutez Ansible à partir de Python à l'aide de l'API
Précautions lors de l'utilisation de phantomjs de python
Accéder aux feuilles de calcul à partir de Python à l'aide d'OAuth 2.0