[PYTHON] J'ai joué avec Mecab (analyse morphologique)!

introduction

Depuis la sortie de la scène utilisant MeCab, je l'ai postée sous forme de mémorandum

J'ai essayé de résumer de la méthode d'installation de MeCab à la sortie

La description de l'article est la suivante

Qu'est-ce que MeCab (analyse morphologique)?

MeCab [MeCab] 1 est un moteur d'analyse morphologique open source développé par la Graduate School of Informatics de l'Université de Kyoto. Peut être utilisé avec perl, ruby, python, java, C #

Analyse morphologique

Analyse qui décompose les phrases en éléments morphologiques en fonction de la grammaire de la langue cible et des informations sur les paroles des mots Méthode utilisée comme prétraitement dans le domaine du traitement du langage naturel *** Élément morphologique **… La plus petite unité d'un élément d'expression significatif

Par exemple "J'étudie la programmation avec python." Est sortie comme suit

mot Partie Partie細分類 mot Partie Partie細分類
je nom 代nom la programmation nom Changer de connexion
Est Particule 係Particule À Particule 格Particule
python nom Général étude nom Changer de connexion
À Particule 格Particule Shi verbe Indépendance
utilisation nom Changer de connexion main Particule 接続Particule
Shi verbe Indépendance je verbe 非Indépendance
main Particule 接続Particule Masu Verbe auxiliaire -
symbole Point de lecture symbole Phrase

Comment installer MeCab

1 Installez mecab-64-0.996.2.exe depuis [ici] 2

2 Exécutez mecab-64-0.996.2.exe et installez MeCab avec ** UTF-8 **

セットアップ1.png セットアップ2.png

Une fois l'installation terminée, "Créer un dictionnaire" apparaîtra, alors exécutez-le tel quel

3 Vérifiez avec CMD si MeCab peut être utilisé correctement

mecab.png

Si MeCab ne répond pas dans CMD, peut-être que le chemin ne fonctionne pas? Ajoutez le \ Mecab \ bin installé à la variable d'environnement Path.

環境変数.png

4 Installez mecab pour python afin qu'il puisse être utilisé avec python

pip install mecab-python-windows

スタート.png

5 Enregistrez libmecab.dll dans le dossier Mecab en l'écrasant dans le dossier python.

L'emplacement du dossier est le suivant

(Nom de fichier à copier):libmecab.dll
(Original):C:\Program Files\MeCab\bin
(Copier):C:\Users\(Nom d'utilisateur)\AppData\Local\Programs\Python\Python37\Lib\site-packages

Si vous recherchez avec cmd, vous devriez trouver quelque chose de similaire.
(Original):where mecab
(Copier):where python

Je l'ai déplacé

L'analyse morphologique avec MeCab est la suivante

  1. Spécifiez un dictionnaire pour l'analyse morphologique avec MeCab.Tagger ()
  2. Utilisez tagger.parse pour analyser morphologiquement les chaînes de caractères et les fichiers texte à l'aide du dictionnaire spécifié.

C'est très simple

J'ai essayé de créer un programme simple qui effectue réellement une analyse morphologique à partir d'une chaîne de caractères ou d'un fichier texte

programme

mecab_string.py


import MeCab

CONTENT = "J'étudie la programmation en utilisant python."

tagger = MeCab.Tagger()
parse = tagger.parse(CONTENT)

print(parse)

N'oubliez pas d'obtenir l'erreur suivante si vous ne spécifiez pas l'encodage lors de l'ouverture du fichier!

UnicodeDecodeError: 'cp932' codec can't decode byte 0x81 in position 4: illegal multibyte sequence

sample.txt


J'étudie la programmation en utilisant python.

mecab_read.py


import MeCab

FILE_NAME = "sample.txt"

with open(FILE_NAME, "r", encoding="utf-8") as f:
    CONTENT = f.read()

tagger = MeCab.Tagger()
parse = tagger.parse(CONTENT)

print(parse)

Résultat de sortie

Mon nom,Synonyme,Général,*,*,*,je,je,je
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
python substantif,Général,*,*,*,*,*
Auxiliaire,Assistant de cas,Général,*,*,*,À,Wo,Wo
Nomenclature utilisée,Changer de connexion,*,*,*,*,utilisation,Shiyo,Shiyo
Verbe shi,Indépendance,*,*,Sahen / Suru,Type continu,Faire,Shi,Shi
Te assistant,Verbe de connexion,*,*,*,*,main,Te,Te
, Symbole,Point de lecture,*,*,*,*,、,、,、
Nomenclature de programmation,Changer de connexion,*,*,*,*,la programmation,la programmation,la programmation
Auxiliaire,Assistant de cas,Général,*,*,*,À,Wo,Wo
Nomenclature d'étude,Changer de connexion,*,*,*,*,étude,Benkyo,Benkyo
Verbe shi,Indépendance,*,*,Sahen / Suru,Type continu,Faire,Shi,Shi
Te assistant,Verbe de connexion,*,*,*,*,main,Te,Te
Je verbe,Non indépendant,*,*,Un pas,Type continu,Est,je,je
Masu verbe auxiliaire,*,*,*,Spécial / masse,Forme basique,Masu,truite,truite
.. symbole,Phrase,*,*,*,*,。,。,。
EOS

Oh, j'ai pu sortir correctement!

À propos du format de sortie

Plus tôt, MeCab.Tagger () a écrit "un endroit pour spécifier un dictionnaire pour l'analyse morphologique".

Cela signifie qu'il existe plusieurs dictionnaires, je vais donc en présenter quelques-uns.

Il n'y a rien à installer récemment, il peut donc être intéressant d'essayer de changer le programme ci-dessus, etc.

J'ai essayé de saisir toutes les ** analyses morphologiques **

MeCab.Tagger() Analyse morphologique compatible MeCab Définir par défaut

Nomenclature morphologique,Général,*,*,*,*,morphème,Keitaiso,Keitaiso
Nom analytique,Changer de connexion,*,*,*,*,une analyse,Kaiseki,Kaiseki
EOS

MeCab.Tagger("-Ochasen") Analyse morphologique compatible ChaSen

Elément morphologique Keitaiso Nomenclature des éléments morphologiques-Général
Analyse Nomenclature d'analyse Kaiseki-Changer de connexion
EOS

MeCab.Tagger("-Owakati") Séparer l'analyse morphologique Faites une pause pour chaque mot comme en anglais

Analyse morphologique

MeCab.Tagger("-Oyomi") Comment lire l'analyse morphologique Sortie en katakana et mots anglais

Keitaisokaiseki

MeCab.Tagger("-Odump") Analyse morphologique qui produit toutes les informations

0 BOS BOS/EOS,*,*,*,*,*,*,*,* 0 0 0 0 0 0 2 1 0.000000 0.000000 0.000000 0
7 Nomenclature morphologique,Général,*,*,*,*,morphème,Keitaiso,Keitaiso 0 9 1285 1285 38 2 0 1 0.000000 0.000000 0.000000 5338
13 Nomenclature analytique,Changer de connexion,*,*,*,*,une analyse,Kaiseki,Kaiseki 9 15 1283 1283 36 2 0 1 0.000000 0.000000 0.000000 9241
20 EOS BOS/EOS,*,*,*,*,*,*,*,* 15 15 0 0 0 0 3 1 0.000000 0.000000 0.000000 8505

MeCab.Tagger("-Osimple") Analyse morphologique simple

Nomenclature morphologique-Général
Nom analytique-Changer de connexion
EOS

Il y en a beaucoup d'autres, donc si vous êtes intéressé, veuillez consulter [Officiel] 1!

en conclusion

Vous pouvez maintenant effectuer une analyse morphologique à l'aide de MeCab On dit qu'il sera également utilisé pour le traitement du langage naturel avec l'IA, donc je veux maîtriser comment l'utiliser ... (˘ω˘)

Recommended Posts

J'ai joué avec Mecab (analyse morphologique)!
[Python] Analyse morphologique avec MeCab
J'ai joué avec wordcloud!
Analyse morphologique japonaise avec Python
[PowerShell] Analyse morphologique avec SudachiPy
Collecte d'informations sur Twitter avec Python (analyse morphologique avec MeCab)
Text mining avec Python ① Analyse morphologique
■ [Google Colaboratory] Utiliser l'analyse morphologique (MeCab)
J'ai joué avec PyQt5 et Python3
J'ai joué avec DragonRuby GTK (Game Toolkit)
J'ai essayé l'analyse factorielle avec des données Titanic!
[Scikit-learn] J'ai joué avec la courbe ROC
[Introduction à Pytorch] J'ai joué avec sinGAN ♬
Analyse des tweets avec Python, Mecab et CaboCha
Python: analyse morphologique simplifiée avec des expressions régulières
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
J'ai joué avec Floydhub pour le moment
J'ai essayé d'utiliser mecab avec python2.7, ruby2.3, php7
Différence dans les résultats de l'analyse morphologique selon le dictionnaire Mecab
J'ai joué avec Diamond, un outil de collecte de métriques
J'ai essayé l'analyse morphologique et la vectorisation de mots
Installation d'outils d'analyse morphologique (MeCab, Human ++, Janome, GiNZA)
Analyse de données avec python 2
Text mining avec Python ① Analyse morphologique (re: version Linux)
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
Analyse du panier avec Spark (1)
J'ai fait une analyse émotionnelle d'Amazon Comprehend avec l'AWS CLI.
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
Utiliser mecab avec Python 3
Analyse de dépendance avec CaboCha
Analyse vocale par python
La première intelligence artificielle. Je voulais essayer le traitement du langage naturel, donc je vais essayer l'analyse morphologique en utilisant MeCab avec python3.
J'ai essayé différentes choses avec Python: le grattage (Beautiful Soup + Selenium + PhantomJS) et l'analyse morphologique
Analyse vocale par python
Analyse dynamique par Valgrind
Effectuer une analyse de régression avec NumPy
Analyse de données avec Python
Créez un bot qui ne renvoie que le résultat de l'analyse morphologique avec MeCab avec Discord
J'ai créé une classe pour obtenir le résultat de l'analyse par MeCab dans ndarray avec python
J'ai essayé l'analyse morphologique du commentaire général du putain de jeu de l'année
Analyse morphologique avec Igo + mecab-ipadic-neologd en Python (avec bonus Ruby)
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
[Note] WordCloud à partir de l'analyse morphologique
J'ai écrit GP avec numpy
Analyse morphologique japonaise avec Janome
Python: texte japonais: analyse morphologique
Analyse de régression multiple avec Keras
J'ai essayé Learning-to-Rank avec Elasticsearch!
J'ai fait un blackjack avec du python!
Analyse des émotions par Python (word2vec)
J'ai essayé le clustering avec PyCaret
Analyse de texture apprise avec la pyradiomique
Traitement du langage naturel 1 Analyse morphologique
Analyse de squelette planaire avec Python
Je ne peux pas effectuer de recherche avec # google-map. ..
J'ai mesuré l'IMC avec tkinter
J'ai essayé gRPC avec Python
J'ai créé COVID19_simulator avec JupyterLab