Remarques sur l'utilisation de MeCab depuis Python

Une note personnelle lors de l'utilisation de MeCab de Python.

mecab.py


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import MeCab
m = MeCab.Tagger()

print m.parse("Si un chien marche, il frappe un bâton.")
$ ./mecab.py
Chien substantif,Général,*,*,*,*,chien,Chien,Chien
Aussi assistant,Assistance,*,*,*,*,Aussi,Mo,Mo
Verbe de marche,Indépendance,*,*,Ligne Five-Dan / Ka,Forme assumée,marcher,Arche,Arche
Assistant BA,Assistant de connexion,*,*,*,*,Si,Ba,Ba
Bâton substantif,Général,*,*,*,*,barre,Arc,baud
Auxiliaire,Assistant de cas,Général,*,*,*,À,ré,ré
Hit verbe,Indépendance,*,*,Cinq étapes, La ligne,Forme basique,Frappé,Atal,Atal
.. symbole,Phrase,*,*,*,*,。,。,。
EOS

Lire à partir d'un fichier

mecab_from_file.py


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
param = sys.argv
infile = param[1]

f = open(infile)
line = f.readline() 

import MeCab
m = MeCab.Tagger()

while line:
	res = m.parseToNode(line)

	while res:
		print res.feature
		#nom,Général,*,*,*,*,chien,Chien,Chien

		res = res.next

	line = f.readline()

Compter la fréquence des parties lues du fichier

Il est plus facile d'utiliser collections.defaultdict lors du comptage des éléments.

mecab_class_count.py


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
param = sys.argv
infile = param[1]

f = open(infile)
line = f.readline() 

import MeCab
m = MeCab.Tagger()

from collections import defaultdict
frequency = defaultdict(int)

while line:
	res = m.parseToNode(line)

	while res:
		# print res.feature
		#nom,Général,*,*,*,*,chien,Chien,Chien
		
		arr = res.feature.split(",")
		class_1 = arr[0]
		frequency[class_1] += 1
		
		res = res.next

	line = f.readline()

# print frequency
# defaultdict(<type 'int'>, {'...

for k, v in frequency.iteritems():
    print k, v
$ ./mecab_morph_count.py input.txt
Verbe 4
BOS/EOS 8
Nom 9
Auxiliaire 7
Verbe auxiliaire 1

option

Spécifiez un dictionnaire

#Instance MeCab
m = MeCab.Tagger(' -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd')

Spécifiez mecabrc

m = MeCab.Tagger('-r my_mecabrc')

Recommended Posts

Remarques sur l'utilisation de MeCab depuis Python
Remarques sur l'installation de Python à l'aide de PyEnv
MeCab de Python
Notes sur l'utilisation de rstrip avec python.
Remarques sur l'accès à dashDB à partir de python
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
De Python à l'utilisation de MeCab (et CaboCha)
Notes sur l'utilisation de sous-processus Python
Remarques sur l'utilisation d'Alembic
Remarques sur l'installation de Python3 et l'utilisation de pip sous Windows7
Remarques sur l'utilisation de dict avec python [Competition Pro]
[Python] Remarques sur l'accélération des algorithmes génétiques à l'aide du multitraitement
Remarque pour oct2py appelant le script Octave depuis Python
mémo python utilisant l'opérateur perl-ternaire
notes python pour l'utilisation de variables spéciales perl
[Django] Remarques sur l'utilisation de django-debug-toolbar
[Python] Notes sur l'analyse des données
Remarques sur l'optimisation à l'aide de Pytorch
Remarques sur l'installation de Python sur votre Mac
Diffusion sur LINE en utilisant python
Remarques sur l'installation de Python sur CentOS
Notes minimales lors de l'utilisation de Python sur Mac (édition Homebrew)
Notes sur Python et les types de dictionnaire
Utilisation de Rstan de Python avec PypeR
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
Remarques sur l'utilisation de la post-réception et de la post-fusion
python + django + scikit-learn + mecab (1) avec heroku
python + django + scikit-learn + mecab (2) avec heroku
Étude sur Tokyo Rent en utilisant Python (3-2)
Utiliser Cloud Storage depuis Python3 (Introduction)
Mecab / Cabocha / KNP sur Python + Windows
Installer Python sur CentOS à l'aide de Pyenv
Étude sur Tokyo Rent en utilisant Python (3-3)
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
Remarques sur l'utilisation de matplotlib sur le serveur
Lors de l'utilisation de MeCab avec python dans virtualenv
Installez Python sur CentOS en utilisant pyenv
(Débutant) Remarques sur l'utilisation de pyenv sur Mac
Appeler C / C ++ depuis Python sur Mac
Essayez d'utiliser Amazon DynamoDB à partir de Python
Mettre à jour Mac Python de 2 à 3
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Installez mecab sur le serveur partagé Sakura et appelez-le depuis python
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Exécuter du code Python sur C ++ (en utilisant Boost.Python)
Note de nfc.ContactlessFrontend () de nfcpy de python
Utilisation de Python et MeCab avec Azure Databricks
Notes d'apprentissage depuis le début de Python 1
Installez la bibliothèque python sur Lambda à l'aide de [/ tmp]
Remarques sur la réalisation de l'OCR japonais avec Python
Connexion de python à MySQL sur CentOS 6.4
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
Remarques sur la construction de Python et pyenv sur Mac
Remarques sur la mise en œuvre des tests APN à l'aide de Pytest
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3