[PYTHON] Generieren Sie ein MeCab-Wörterbuch aus Nico Nico Encyclopedia-Daten

Überblick

Aus "Niko Niko Encyclopedia Data" (von Future Search Brazil Co., Ltd.) in Website des Nationalen Instituts für Informatik Generieren Sie das Wörterbuch von [MeCab] und wenden Sie es an (http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html). Diese Methode steht möglicherweise für Text Mining zu Forschungszwecken zur Verfügung.

Methode

01. Nico Nico Encyclopedia-Daten abrufen.

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

02. Platzieren Sie den folgenden Python-Code in derselben Hierarchie wie der entpackte Kopfordner.

nc2mecab.py


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

import os
import csv
import re

def main():
  #Ordnernamen eingeben
  pth = 'head'
  #Name der Ausgabedatei
  wtnme = 'ncnc.csv'
  #Zeichenfolgenmuster für die Wortformatierung gelöscht
  rmvptn = re.compile(r'(^\d[1,2]Mond\d[1,2]Tag$)|((\(|().+(\)|))$)') #MondTagタグとタグ後ろのジャンル名は削除

  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)))),'Substantiv','Allgemeines','*','*','*','*',wrd,row[2],row[2],'Nico Nico Enzyklopädie']
              )

if __name__ == '__main__':
  main()

03. Python-Code ausführen.

python nc2mecab.py

04. Generieren Sie das MeCab-Wörterbuch und wenden Sie es an.

Unter Verwendung der Ausgabe-CSV wurde "Zum Benutzerwörterbuch hinzufügen" von MeCab: Hinzufügen von Wörtern ausgeführt. Der Befehl zur Wörterbuchgenerierung lautet jedoch wie folgt.

/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

Ergebnis

Vocaloid und Liebe leben! Ist der Geschmack von Nico Kitchen.

Vocaloid-Nomenklatur, allgemein, *, *, *, *, Vocaloid, Vocaloid, Vocaloid, Nico Nico Encyclopedia Und Füller, *, *, *, *, * und zu Liebesleben! Nomenklatur, Allgemein, *, *, *, *, Love Live! , Liebe leben, Liebe leben, Nico Nico Enzyklopädie Ist ein Assistent, ein Assistent, *, *, *, *, ist, ha, wa Nico Kitchen Nomenklatur, Allgemein, *, *, *, *, Nico Kitchen, Nicochu, Nicochu, Niconico Encyclopedia Auxiliary, Unionization, *, *, *, *, von, nein, nein Geschmacksnomenklatur, allgemein, *, *, *, *, Geschmack, Tashinami, Tashinami .. Symbole, Satzzeichen, *, *, *, * ,. ,. ,. EOS

Recommended Posts

Generieren Sie ein MeCab-Wörterbuch aus Nico Nico Encyclopedia-Daten
Empfangen Sie Wörterbuchdaten von Python-Programmen mit AppleScript
Generieren Sie aus Textdaten ein vertikales Bild eines Romans
Metaklasse (delete) zum Generieren eines Wörterbuchs
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
So generieren Sie ein Python-Objekt aus JSON
Extrahieren Sie mit Python Daten von einer Webseite
Ein Memo zum Generieren dynamischer Klassenvariablen aus Wörterbuchdaten (dict), die in Python3 nur Standardtypdaten enthalten
MeCab von Python
Generieren Sie automatisch ein Polarwörterbuch für die Emotionsanalyse
Python - Lesen Sie Daten aus einer numerischen Datendatei und berechnen Sie die Kovarianz
Generieren Sie zufällige Sätze aus Ihren Tweets mit Trigramm
Ich habe versucht, mit Scrapy Daten von einer Website zu sammeln
[Morphologische Analyse] So fügen Sie Mecab ein neues Wörterbuch hinzu
Ich habe versucht, Daten aus einer Datei mit Node.js zu lesen.
Generieren Sie Word Cloud aus Testfalldaten mit Python3