Text mining avec Python ① Analyse morphologique (re: version Linux)

Défiez le text mining avec Python. (Pour la série Python3) Suivez les étapes ci-dessous.

① Analyse morphologique (cet article) ② Visualisez avec Word Cloud (la prochaine fois)

La dernière fois, j'ai essayé d'utiliser MeCab sous Windows et je suis tombé sur l'installation de liaisons Python et j'ai abandonné, alors je suis passé à Linux et j'ai redémarré.



Installez MeCab

(la revue) Pour rendre MeCab disponible en Python ・ Installation de l'unité principale MeCab ・ Installation du dictionnaire · Installation de liaison Python Est nécessaire.

La version Windows est livrée avec un dictionnaire attaché à MeCab lui-même, mais la version Linux doit être installée séparément. Cependant, vous pouvez l'installer avec le package.

Installation de MeCab et du dictionnaire

Installez simplement avec apt. Pour le dictionnaire, sélectionnez la version UTF-8 d'IPA (recommandé).

sudo apt-get install mecab mecab-ipadic-utf8

Comme d'habitude, vérifiez le fonctionnement avec "Momo no Uchi".

$ mecab
Des cuisses et des cuisses
Sumomo substantif,Général,*,*,*,*,Sumomo,Sumomo,Sumomo
Aussi assistant,Assistance,*,*,*,*,Aussi,Mo,Mo
Cuisse substantif,Général,*,*,*,*,Les pêches,pêche,pêche
Aussi assistant,Assistance,*,*,*,*,Aussi,Mo,Mo
Cuisse substantif,Général,*,*,*,*,Les pêches,pêche,pêche
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Dont nomenclature,Non indépendant,Avocat possible,*,*,*,domicile,Uchi,Uchi
EOS

Installer les liaisons MeCab Python

Installez-le simplement avec apt.

sudo apt-get install python-mecab

Analysons "Sumomo ..." de Python.

mecab_sample.py


# coding: utf-8
import sys
import MeCab

mecab = MeCab.Tagger("-Ochasen")

print(mecab.parse("Des cuisses et des cuisses"))
$ python3 mecab_sample.py
Traceback (most recent call last):
  File "mecab_sample.py", line 3, in <module>
    import MeCab
ImportError: No module named 'MeCab'

On dit qu'il n'y a pas de MeCab ... Essayez de l'exécuter avec python 2.x.

$ python mecab_sample.py
Sumomo Sumomo substantif-Général
Les deux mo et mo-Assistance
Nomenclature de la pêche de la cuisse-Général
Les deux mo et mo-Assistance
Nomenclature de la pêche de la cuisse-Général
L'assistant de Nono-syndicat
Uchi Uchi Noun-Non indépendant-Avocat possible
EOS

Celui-ci fonctionne très bien. Lorsque j'ai cherché sur Google, il semble que ce que j'ai mis avec apt ne fonctionne qu'avec la série Python 2.x. Pour l'utiliser dans la série Python3, il semble nécessaire d'apporter le source et de le construire avec setup.py comme je l'ai fait dans la version Windows, mais il est également basé sur la série Python2 et un correctif est nécessaire pour l'exécuter dans la série Python3 Il semble que vous deviez le frapper, il semble donc que ce ne soit pas simple.

Euh, c'est un problème ... J'ai trouvé un article qui dit que c'est OK pour mettre une bibliothèque pour Python3 avec pip, donc je vais l'essayer.

$ pip3 install mecab-python3
Collecting mecab-python3
  Using cached mecab-python3-0.7.tar.gz
    Complete output from command python setup.py egg_info:
    /bin/sh: 1: mecab-config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-gsw8fi5f/mecab-python3/setup.py", line 41, in <module>
        include_dirs=cmd2("mecab-config --inc-dir"),
      File "/tmp/pip-build-gsw8fi5f/mecab-python3/setup.py", line 21, in cmd2
        return cmd1(strings).split()
      File "/tmp/pip-build-gsw8fi5f/mecab-python3/setup.py", line 18, in cmd1
        return os.popen(strings).readlines()[0][:-1]
    IndexError: list index out of range
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-gsw8fi5f/mecab-python3/

J'obtiens une erreur car il n'y a pas de mecab-config comme dans Windows. Je n'ai pas spécifié libmecab-dev parce que je n'en avais pas besoin lorsque j'ai installé MeCab pour la première fois, il semble donc qu'il ne soit pas inclus. Entrez avec apt.

sudo apt-get install libmecab-dev

Ensuite, utilisez pip pour insérer la liaison pour la série Python3.

sudo pip3 install mecab-python3

Ensuite, exécutez l'exemple en Python3.

$ python3 mecab_sample.py 
Sumomo Sumomo substantif-Général
Les deux mo et mo-Assistance
Nomenclature de la pêche de la cuisse-Général
Les deux mo et mo-Assistance
Nomenclature de la pêche de la cuisse-Général
L'assistant de Nono-syndicat
Uchi Uchi Noun-Non indépendant-Avocat possible
EOS

J'ai finalement pu le faire.

Site référencé

Recommended Posts

Text mining avec Python ① Analyse morphologique (re: version Linux)
Text mining avec Python ① Analyse morphologique
[Python] Analyse morphologique avec MeCab
Python: texte japonais: analyse morphologique
Analyse morphologique japonaise avec Python
Text mining avec Python ② Visualisation avec Word Cloud
Python: analyse morphologique simplifiée avec des expressions régulières
Analyse de données avec python 2
Analyse vocale par python
Text mining avec Python-Scraping-
Analyse vocale par python
Analyse de données avec Python
Vérifier la version avec python
Collecte d'informations sur Twitter avec Python (analyse morphologique avec MeCab)
Défiez l'analyse des composants principaux des données textuelles avec Python
Outil d'analyse morphologique en ligne version Pure Python Rakuten MA
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Analyse des émotions par Python (word2vec)
Analyse de squelette planaire avec Python
Spécifiez la version python avec virtualenv
Analyse des secousses musculaires avec Python
[PowerShell] Analyse morphologique avec SudachiPy
Analyse des émotions par SMS avec ML-Ask
Analyse morphologique avec Igo + mecab-ipadic-neologd en Python (avec bonus Ruby)
Analyse de la structure du squelette en trois dimensions avec Python
GOTO en Python avec Sublime Text 3
Analyse d'impédance (EIS) avec python [impedance.py]
Extraction de texte avec AWS Textract (Python3.6)
Activer le moteur d'analyse morphologique MeCab en Python3 (version mars 2016)
Activer Python raw_input avec Sublime Text 3
Python: analyse négative / positive: application d'analyse de texte
Parlez du texte japonais avec OpenJTalk + python
Gérez chaque version de Python avec Homebrew
J'ai joué avec Mecab (analyse morphologique)!
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Analyse de données à partir de python (visualisation de données 1)
Analyse de régression logistique Self-made avec python
Analyse de données à partir de python (visualisation de données 2)
De la préparation à l'analyse morphologique avec python en utilisant polyglotte au marquage des mots partiels
[Jouons avec Python] Viser la génération automatique de phrases ~ Effectuer une analyse morphologique ~
Reconnaissance vocale en anglais avec python [speech to text]
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
Analyse bidimensionnelle du flux de perméation saturée-insaturée avec Python
Apprentissage automatique avec python (2) Analyse de régression simple
Programme d'analyse des contraintes FEM 2D par Python
[C] [python] Lire avec AquesTalk sous Linux
Analyse des tweets avec Python, Mecab et CaboCha
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Analyse de conduction thermique bidimensionnelle non stationnaire avec Python
Essayez de fouiller votre journal avec Python
Lire des caractères dans des images avec Python OCR
Extraction de texte avec l'API GCP Cloud Vision (Python3.6)
[Diverses analyses d'images avec plotly] Visualisation dynamique avec plotly [python, image]
Classer les publications Qiita sans analyse morphologique avec Tweet2Vec
Écrivons FizzBuzz avec une erreur: Version Python
Analyse d'images médicales avec Python 1 (Lire une image IRM avec SimpleITK)