Ajouter des mots au dictionnaire utilisateur de MeCab sur Ubuntu pour une utilisation en Python

introduction

Récemment, j'ai commencé à analyser en utilisant python et MeCab dans mes recherches, mais j'ai eu du mal à ajouter des mots au dictionnaire utilisateur, alors je l'ai résumé pour moi-même.

environnement

1. Préparez un dictionnaire

Créez le dictionnaire sous forme de fichier csv. Le format du dictionnaire est Forme de surface, ID de contexte gauche, ID de contexte droit, coût, paroles de partie, sous-classification de paroles de partie 1, sous-classification de partie de partie 2, sous-classification de partie de partie 3, type d'utilisation, formulaire d'utilisation, prototype, lecture, prononciation Organisez dans l'ordre de.

vim add_term.csv
Congelé,,,1,nom,Général,*,*,*,*,Congelé,Anato Yukinojoou,Anato Yukino Jooh

Si vous laissez l'ID de contexte gauche et l'ID de contexte droit vides, ils seront saisis automatiquement. En outre, le coût indique la probabilité d'apparition du mot, et plus il est petit, plus il est susceptible d'apparaître. Il semble y avoir une méthode d'estimation des coûts, mais cette fois je la mets à 1. Les éléments inutiles sont OK avec "*".

2. Créez un dictionnaire utilisateur

Créez un dictionnaire utilisateur à partir du fichier csv créé. Pour créer un dictionnaire, utilisez le mecab-dict-index fourni avec MeCab lorsque vous l'avez installé.

#Création d'un répertoire de destination de sauvegarde du dictionnaire utilisateur
mkdir /usr/local/lib/mecab/dic/userdic

#Créer un dictionnaire
sudo /usr/lib/mecab/mecab-dict-index \
-d /usr/local/mecab/dic/ipadic \
-u /usr/local/lib/mecab/dic/userdic/add.dic \
-f utf-8 \
-t utf-8 \
add_term.csv

Les options sont: -d Répertoire contenant les dictionnaires système -u Où enregistrer le dictionnaire utilisateur -f csv Code de caractère du fichier -t Code de caractère du dictionnaire utilisateur fichier csv

exécutez mecab-dict-index avec le chemin complet. À ce stade également, spécifiez UTF-8 comme code de caractère.

reading add_term.csv ... 1
emitting double-array: 100% |###########################################|

done!

S'affiche, c'est réussi.

3. Ajoutez le dictionnaire utilisateur créé au fichier de paramètres MeCab

Ajoutez l'instruction suivante au fichier de paramètres.

sudo vim /etc/mecabrc
userdic = /usr/local/lib/mecab/dic/userdic/add.dic

Sur le site officiel /usr/local/lib/mecab/dic/ipadic/dicrc /usr/local/etc/mecabrc Il est écrit pour s'ajouter à l'un ou l'autre, mais cela n'a pas fonctionné dans mon environnement, et comme il y avait mecabrc à l'emplacement ci-dessus, je l'ai ajouté et cela a fonctionné correctement. Si vous souhaitez enregistrer plusieurs dictionnaires

userdic = AAA.dic,BBB.dic

Si oui, j'ai pu m'inscrire.

Contrôle de fonctionnement

--Vérifier depuis la ligne de commande

#Avant l'ajout
mecab
Congelé
Ana substantif,Général,*,*,*,*,Anna,Anna,Anna
Et des mots auxiliaires,Assistants parallèles,*,*,*,*,Quand,À,À
Neige substantif,Général,*,*,*,*,neige,Neige,Neige
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Reine substantif,Général,*,*,*,*,Reine,Joou,Jooh
EOS

#Après l'addition
Congelé
Anna et la reine des neiges Noun,Général,*,*,*,*,Congelé,Anato Yukinojoou,Anato Yukino Jooh
EOS

--Utilisé avec MeCab de python

python3


>>> import MeCab
>>> m_t = MeCab.Tagger('-Ochasen \
                        -u /usr/local/lib/mecab/dic/userdic/add.dic')
>>> txt = 'Allons voir Anna et la reine des neiges.'
>>> print(m_t.parse(txt))
Allons voir Anna et la reine des neiges.

Si vous souhaitez l'utiliser avec le mecab-ipadic-neologd installé

python3


>>> import MeCab
>>> m_t = MeCab.Tagger('-Ochasen \
                        -d /usr/lib/mecab/dic/mecab-ipadic-neologd \
                        -u /usr/local/lib/mecab/dic/userdic/add.dic')

Si vous le modifiez, il sera lu en même temps.

Conclusion

Après quelques essais et erreurs, j'ai pu confirmer que cela fonctionne bien sur python. Je vous serais reconnaissant si vous pouviez signaler des erreurs.

Site de référence

Comment ajouter des mots Ajout de mots au dictionnaire utilisateur MeCab

Recommended Posts

Ajouter des mots au dictionnaire utilisateur de MeCab sur Ubuntu pour une utilisation en Python
[Version japonaise] Jugement de la similitude des mots pour les mots polynomiaux utilisant ELMo et BERT
Détecter les anomalies dans les phrases en utilisant ELMo, BERT, USE
Comment installer et utiliser Tesseract-OCR
Comment utiliser .bash_profile et .bashrc
Comment installer et utiliser Graphviz
Ajouter des mots au dictionnaire utilisateur de MeCab sur Ubuntu pour une utilisation en Python
Ajouter un dictionnaire utilisateur à MeCab
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser PubChem avec Python
Installez confluent-kafka pour Python sur Ubuntu
Pour utiliser python, mettez pyenv sur macOS avec PyCall
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
[Introduction à Python] Comment utiliser la classe en Python?
Note de nfc.ContactlessFrontend () de nfcpy de python
Étapes pour installer l'environnement Python sur Ubuntu
Un moyen simple d'utiliser Wikipedia avec Python
[Python] Organisation de l'utilisation des instructions
Mémorandum sur l'utilisation du python gremlin
Python / dictionary> setdefault ()> Ajouter si pas dans le dictionnaire
Comment utiliser __slots__ dans la classe Python
Installez python sur xserver pour utiliser pip
Comment utiliser "deque" pour les données Python
Utilisez pathlib dans Maya (Python2.7) en préparation du prochain Python3.7
Comment utiliser les expressions régulières en Python
Comment utiliser is et == en Python
Ajouter des points forts de la syntaxe du langage Kv à Spyder dans Python IDE
Si vous souhaitez compter les mots en Python, il est pratique d'utiliser Counter.
Un mémorandum parce que j'ai trébuché en essayant d'utiliser MeCab avec Python
Ajouter des mots au dictionnaire utilisateur de MeCab sur Ubuntu pour une utilisation en Python
N'y a-t-il pas une valeur par défaut dans le dictionnaire?
Changer les mots réservés du moteur de modèle Flask
[AWS IoT] Enregistrer des éléments dans AWS IoT à l'aide du SDK AWS IoT Python
Enregistrer une tâche dans cron pour la première fois
Implémentez l'extension utilisateur Django et enregistrez les informations jointes
Comment utiliser la bibliothèque C en Python
Un moyen simple d'utiliser Python 2.7 sur Cent OS 6
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Conseils pour ceux qui ne savent pas comment utiliser is et == en Python
Comment utiliser Python Kivy ④ ~ Exécution sur Android ~
Comment exécuter MeCab sur Ubuntu 18.04 LTS Python
Résumé de l'utilisation de MNIST avec Python
MeCab: ajouter de nouveaux mots au dictionnaire défini par l'utilisateur (Windows)
Utilisez un module de cryptographie qui gère OpenSSL en Python
Points à garder à l'esprit lors de l'utilisation de Python pour ceux qui utilisent MATLAB
Pour ajouter un module à python que vous mettez dans Julialang
N'utilisez pas readlines () dans votre instruction Python for!
Comment utiliser tkinter avec python dans pyenv
Pour écrire dans Error Repoting en Python sur GAE
Utilisez l'application LibreOffice en Python (3) Ajouter une bibliothèque
Quand j'ai essayé d'utiliser Python sur WSL (sous-système Windows pour Linux), il est resté bloqué dans Jupyter (résolu)
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Utilisez le SDK API kintone pour Python avec Raspberry Pi (stockez facilement des données dans kintone à partir de Raspberry Pi)
Remarques sur l'utilisation de StatsModels qui peuvent utiliser la régression linéaire et GLM en python
Un outil pour créer des images de masque pour ETC en Python
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
[Python] [Django] Comment utiliser le champ de choix et comment ajouter des options
Comment exécuter python dans l'espace virtuel (pour MacOS)
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment ajouter des numéros de page à un fichier PDF (en Python)
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Pratique pour utiliser les sous-graphiques matplotlib dans l'instruction for
J'ai essayé de résumer comment utiliser les pandas de python
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Comment utiliser Django avec Google App Engine / Python
Comment utiliser le modèle appris dans Lobe en Python
Je veux utiliser le jeu de données R avec python
Scraping Web pour débutants avec Python (4) --2 Scraping sur Cloud Shell
Utilisez config.ini avec Python