[PYTHON] [Analyse morphologique] Comment ajouter un nouveau dictionnaire à Mecab

environnement

Mac Mecab installé

procédure

1 Téléchargez le fichier de mots-clés et créez un fichier CSV

1-1 Téléchargement du fichier de mots-clés

#Mot-clé Hatena
curl -L http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv | iconv -f euc-jp -t utf-8 > keywordlist_furigana.csv
# Wikipedia
curl -L http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz | gunzip > jawiki-latest-all-titles-in-ns0

1-2 Extraire la nomenclature dans un fichier CSV

sample.rb


require 'csv'

original_data = {
  wikipedia: 'jawiki-latest-all-titles-in-ns0',
  hatena: 'keywordlist_furigana.csv'
}

CSV.open("custom.csv", 'w') do |csv|
  original_data.each do |type, filename|
    next unless File.file? filename
    open(filename).each do |title|
      title.strip!

      next if title =~ %r(^[+-.$()?*/&%!"'_,]+)
      next if title =~ /^[-.0-9]+$/
      next if title =~ /Désambiguïsation/
      next if title =~ /_\(/
      next if title =~ /^PJ:/
      next if title =~ /Personnages/
      next if title =~ /liste/

      title_length = title.length

      if title_length > 3
        score = [-36000.0, -400 * (title_length ** 1.5)].max.to_i
        csv << [title, nil, nil, score, 'nom', 'Général', '*', '*', '*', '*', title, '*', '*', type]
      end
    end
  end
end

Après cela, exécutez sample.rb

ruby sample.rb

2 Créer et ajouter un dictionnaire utilisateur

Créez un dictionnaire utilisateur custom.dic avec la commande mecab-dict-index basée sur le fichier CSV ainsi créé.

/usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u custom.dic -f utf-8 -t utf-8 custom.csv

Assurez-vous que vous avez custom.dic ici.

Après cela, dans le terminal, accédez à / usr / local / lib / mecab / dic / ipadic et

$ sudo vi dicrc

Et

Enfin, créez un répertoire custom.dic.

userdic ="Emplacement du répertoire du dictionnaire créé"

Mettez dedans.

résultat

Implémentons le code suivant.

sample01.py


#coding:utf-8
import MeCab
tagger = MeCab.Tagger("-Ochasen")
result = tagger.parse("Nuage")
print result

Au début, lorsque vous n'ajoutez pas de dictionnaire, "cloud"

Kura Kura Kura Noun-Nom propre-Général
Udo Udo Noun-Général

Alors que c'était

Nuage de nuage-Général

devenu.

Si vous pouvez faire cela, vous avez terminé. Je vous remercie pour votre travail acharné.

Recommended Posts

[Analyse morphologique] Comment ajouter un nouveau dictionnaire à Mecab
Ajouter un dictionnaire à MeCab
MeCab: ajouter de nouveaux mots au dictionnaire défini par l'utilisateur (Windows)
Ajouter un dictionnaire utilisateur à MeCab
Différence dans les résultats de l'analyse morphologique selon le dictionnaire Mecab
Comment utiliser le dictionnaire {}
Comment créer rapidement un environnement d'analyse morphologique à l'aide d'Elasticsearch sur macOS Sierra
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Comment écrire un type liste / dictionnaire de Python3
[NNabla] Comment ajouter une nouvelle couche entre les couches intermédiaires d'un réseau pré-construit
[Python] Analyse morphologique avec MeCab
Comment appeler une fonction
Comment pirater un terminal
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Comment convertir un tableau en dictionnaire avec Python [Application]
Comment faire une traduction japonais-anglais
Comment mettre un lien symbolique
Pour ajouter un module C à MicroPython ...
[Python] Comment ajouter des lignes et des colonnes à une table (pandas DataFrame)
Comment créer un bot slack
Comment créer un package Conda
Comment créer un robot - Avancé
Comment créer une fonction récursive
Comment ajouter sudo lors de l'exécution du débogage
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
■ [Google Colaboratory] Utiliser l'analyse morphologique (MeCab)
Comment créer un Dockerfile (basique)
[Blender] Comment créer un plug-in Blender
Comment supprimer un conteneur Docker
Metaclass (wip) pour générer un dictionnaire
Comment ajouter un volume AWS EBS
J'ai joué avec Mecab (analyse morphologique)!
Comment créer un robot - Basic
Comment créer un fichier de configuration
[Python] Comment créer une liste de types de dictionnaire, ajouter / modifier / supprimer des éléments et extraire avec une instruction for
Comment générer un nouveau groupe de journaux dans CloudWatch à l'aide de python dans Lambda
[Django 2.2] Ajouter un nouveau badge aux nouveaux messages avec une date à l'aide d'un filtre de modèle
[NNabla] Comment ajouter une couche de quantification à la couche intermédiaire d'un modèle entraîné
Ajouter un nouveau problème à GitHub par e-mail (version d'utilisation d'Amazon SES)
Ajoutez une carte GPIO à votre ordinateur. (1)
Comment créer un clone depuis Github
Comment créer un environnement de traduction sphinx
Comment créer un dossier git clone
Qiita (1) Comment écrire un nom de code
Comment dessiner un graphique avec Matplotlib
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment utiliser mecab, neologd-ipadic sur colab
[Colab] Comment copier un vaste ensemble de données
Comment installer un package à l'aide d'un référentiel
[Ubuntu] Comment exécuter un script shell
Comment obtenir stacktrace en python
Différentes façons de créer un dictionnaire (mémoires)
Comment créer un référentiel à partir d'un média
Script pour créer un fichier de dictionnaire Mac
Comment créer un indicateur personnalisé Backtrader
Comment ajouter un module python à l'environnement anaconda
Comment choisir une palette de couleurs Seaborn
Comment tester sur une page authentifiée par Django
Comment créer un plan de site Pelican