[PYTHON] Générer un dictionnaire MeCab à partir des données de l'Encyclopédie Nico Nico

Aperçu

Extrait de "Niko Niko Encyclopedia Data" (par Future Search Brazil Co., Ltd.) sur Site Web de l'Institut national d'informatique Générez et appliquez le dictionnaire de MeCab. Cette méthode peut être disponible pour l'exploration de texte à des fins de recherche.

Méthode

01. Obtenez les données de l'Encyclopédie Nico Nico.

http://www.nii.ac.jp/cscenter/idr/nico/nicopedia-apply.html

02. Placez le code Python suivant dans la même hiérarchie que le dossier principal décompressé.

nc2mecab.py


# -*- encoding: utf-8 -*-

import os
import csv
import re

def main():
  #Nom du dossier d'entrée
  pth = 'head'
  #Nom du fichier de sortie
  wtnme = 'ncnc.csv'
  #Modèle de chaîne supprimé pour le formatage des mots
  rmvptn = re.compile(r'(^\d[1,2]Mois\d[1,2]journée$)|((\(|().+(\)|))$)') #Moisjournéeタグとタグ後ろのジャンル名は削除

  with open(wtnme,'wb') as wtfh:
    wt = csv.writer(wtfh)
    fnmes = os.listdir(pth)
    for fnme in fnmes:
      with open(os.path.join(pth,fnme),'rb') as rdfh:
        rd = csv.reader(rdfh)
        for row in rd:
          if row[3]=='a':
            wrd = rmvptn.sub('',row[1]).lower()
            if(0 < len(wrd)):
              wt.writerow(
                [wrd,'0','0',int(max(-32768.0, (6000 - 200 *(len(wrd)**1.3)))),'nom','Général','*','*','*','*',wrd,row[2],row[2],'Encyclopédie Nico Nico']
              )

if __name__ == '__main__':
  main()

03. Exécutez du code Python.

python nc2mecab.py

04. Générez et appliquez le dictionnaire MeCab.

En utilisant le CSV de sortie, "Ajouter au dictionnaire utilisateur" de MeCab: Comment ajouter des mots a été exécuté. Cependant, la commande de génération de dictionnaire est la suivante.

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

résultat

vocaloid et l'amour en direct! C'est le goût de Nico Kitchen.

nomenclature vocaloïde, général, *, *, *, *, vocaloïde, vocaloïde, vocaloïde, Encyclopédie Nico Nico Et remplisseur, *, *, *, *, *, et, à, à lovelive! Nomenclature, Général, *, *, *, *, Love Live! , Love Live, Love Live, Encyclopédie Nico Nico Est un assistant, un assistant, *, *, *, *, est, ha, wa Nico Kitchen Nomenclature, Général, *, *, *, *, Nico Kitchen, Nicochu, Nicochu, Niconico Encyclopedia Auxiliaire, syndicalisation, *, *, *, *, de, non, non Nomenclature du goût, général, *, *, *, *, goût, tashinami, tashinami .. Symboles, signes de ponctuation, *, *, *, *,. ,. ,. EOS

Recommended Posts

Générer un dictionnaire MeCab à partir des données de l'Encyclopédie Nico Nico
Recevez des données de dictionnaire à partir de programmes Python avec AppleScript
Générer une image verticale d'un roman à partir de données textuelles
Metaclass (wip) pour générer un dictionnaire
Générer une classe à partir d'une chaîne en Python
Comment générer un objet Python à partir de JSON
Extraire des données d'une page Web avec Python
Un mémo pour générer des variables dynamiques de classe à partir de données de dictionnaire (dict) qui n'ont que des données de type standard en Python3
MeCab de Python
Générer automatiquement un dictionnaire polaire utilisé pour l'analyse des émotions
Python --Lire les données d'un fichier de données numériques et calculer la covariance
Générez des phrases aléatoires à partir de vos tweets avec trigramme
J'ai essayé de collecter des données sur un site Web avec Scrapy
[Analyse morphologique] Comment ajouter un nouveau dictionnaire à Mecab
J'ai essayé de lire les données d'un fichier en utilisant Node.js.
Générez Word Cloud à partir de données de cas d'essai avec python3