[PYTHON] Generieren Sie mithilfe von Cabocha automatisch "IOB2-Tag-Corpus" -Lerndaten

https://gist.github.com/jpena930/0753edfd27e010503755ccfdaeb965bf

#coding: utf-8
from __future__ import print_function  # Only needed for Python 2
import MeCab
import CaboCha
import sys
import os


cabocha = CaboCha.Parser("-f1 -n1")
m = MeCab.Tagger ("-Ochasen")

# For reading from file
class getWords():
    def readText(self, filename):
        ###Datei extrahieren
        with open(filename, 'r', encoding='utf-8') as f:
            tText = f.read()
            f.close()
        return tText

#Usage: python training_generator <text file>
with open(sys.argv[1], 'r') as my_file:
    text = my_file.read()


getText = getWords()
#file_output = '<Filename>'

file_output = sys.argv[1]

text = getText.readText(file_output)

cabocha_text = cabocha.parseToString(text)
cabocha_text = cabocha_text.replace("B-ORGANIZATION", "B-ORG")
cabocha_text = cabocha_text.replace("I-ORGANIZATION", "I-ORG")
cabocha_text = cabocha_text.replace("B-ARTIFACT", "B-ART")
cabocha_text = cabocha_text.replace("I-ARTIFACT", "I-ART")
cabocha_text = cabocha_text.replace("B-LOCATION", "B-LOC")
cabocha_text = cabocha_text.replace("I-LOCATION", "I-LOC")
cabocha_text = cabocha_text.replace("B-DATE", "B-DAT")
cabocha_text = cabocha_text.replace("I-DATE", "I-DAT")
cabocha_text = cabocha_text.replace("B-TIME", "B-TIM")
cabocha_text = cabocha_text.replace("I-TIME", "I-TIM")
cabocha_text = cabocha_text.replace("B-PERSON", "B-PSN")
cabocha_text = cabocha_text.replace("I-PERSON", "I-PSN")
cabocha_text = cabocha_text.replace("B-MONEY", "B-MNY")
cabocha_text = cabocha_text.replace("I-MONEY", "I-MNY")
cabocha_text = cabocha_text.replace("B-PERCENT", "B-PNT")
cabocha_text = cabocha_text.replace("I-PERCENT", "I-PNT")


#Remove commas and replace with tab
cabocha_text = cabocha_text.replace(",", "\t")

filename = file_output + '_generated.txt'

if os.path.exists(filename):
    os.remove(filename)

# Remove * and add line space
for line in cabocha_text.splitlines():
    if not line.startswith('*'):
        with open(filename, 'a') as f:
            print(line, file=f)
    if line.startswith('。'):
        with open(filename, 'a') as f:
            print("", file=f)

readFile = open(filename)

lines = readFile.readlines()
lines = lines[:-1]

readFile.close()

w = open(filename,'w')
w.writelines([item for item in lines[:-1]])
w.close()

Next Step: Fix tags to suit your needs

Reference: http://qiita.com/Hironsan/items/326b66711eb4196aa9d4 https://github.com/Hironsan/IOB2Corpus

Recommended Posts

Generieren Sie mithilfe von Cabocha automatisch "IOB2-Tag-Corpus" -Lerndaten
[Evangelion] Versuchen Sie, mit Deep Learning automatisch Asuka-ähnliche Linien zu erzeugen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Verwendung von xgboost: Mehrklassenklassifizierung mit Irisdaten
Erstellen einer Umgebung für die Verwendung von CaboCha mit Google Colaboratory
Einführung in das maschinelle Lernen mit scikit-learn-Von der Datenerfassung bis zur Parameteroptimierung
Die Verwendung von icrawler zum Sammeln von Daten zum maschinellen Lernen wurde vereinfacht
Generiere Pokemon mit Deep Learning
Generieren Sie einen Fehlerkorrekturcode, um die Datenbeschädigung mit der zfec-Bibliothek wiederherzustellen
Die stärkste Möglichkeit, MeCab und CaboCha mit Google Colab zu verwenden
Python: So verwenden Sie Async mit
So verwenden Sie virtualenv mit PowerShell
Umgang mit unausgeglichenen Daten
Generieren Sie automatisch ein Modellbeziehungsdiagramm mit Django
Aufblasen von Daten (Datenerweiterung) mit PyTorch
Generieren Sie gefälschte Tabellendaten mit GAN
Verwenden Sie boto3, um zu S3 zu gelangen
Sammeln von Daten zum maschinellen Lernen
PPLM: Eine einfache Deep-Learning-Technik zum Generieren von Sätzen mit bestimmten Attributen
Ich habe mit Python mit dem maschinellen Lernen begonnen (ich habe auch angefangen, in Qiita zu posten). Datenvorbereitung