Keyword-Extraktion mit MeCab (Python)

Hier ist die Excel-Datei. Es wird von einer bestimmten Datenbank ausgegeben, und jede Zeile enthält einen Datensatz und ein Feld enthält Sätze. Dieses Mal geht es darum, häufig verwendete Schlüsselwörter aus den Sätzen in diesem Feld zu extrahieren, die Anzahl der Auftritte für jedes Schlüsselwort zu zählen und sie zu ordnen.

Der Ein- und Ausgang sind Windows Excel-Dateien, und die Mitte erfolgt auf dem Mac.

Was vorzubereiten?

Mach es in deiner gewohnten Umgebung.

Ich habe vor, die Daten später mit Pandas zu verarbeiten, also verwende ich utf-8 oder Pandas.

Ausgabe der entsprechenden XLS-Datei an CSV

Dies ist aus dem Excel-Menü. test.xls -> test.csv

Ändern Sie den Zeichencode von sjis in utf-8

$ nkf -g test.csv
Shift_JIS
$ nkf -w test.csv > test_utf8.csv
$ nkf -g test_utf8.csv
UTF-8

Laden Sie csv mit Python

import pandas as pd 

csv_file = 'test.csv'
df = pd.read_csv(csv_file, encoding='utf-8', header=1)

Zerlegen und zählen Sie nach Nomenklatur und Verb

Mecab installieren

brew search mecab

pip search mecab
pip install mecab-python 

... Successfully installed mecab-python-0.996 Es ist in Ordnung herauszukommen. Jetzt können Sie es mit Python (2.x-Serie) verwenden.

import MeCab

def count_word(df):
	e = df[u'Kommentar']
	dic_n = {}
	dic_v = {}
	m = MeCab.Tagger('-Ochasen')	#Versetzen Sie den Ausgang in den Chasen-Modus
	
	for s in e:
		if type(s) != unicode:
			continue
		s8 = s.encode('utf-8')
		print s8
		node = m.parseToNode(s8)
		while node:
			word=node.feature.split(',')[0]
			key = node.surface
			if word=='Substantiv':
				dic = dic_n
				print "<", key, "> (n)"
			elif word=='Verb':
				dic = dic_v
				print "<", key, "> (v)"
			else:
				node = node.next
				continue
			if dic.has_key(key):
				dic[key] += 1
			else:
				dic[key] = 1
			node = node.next
	return dic_n, dic_v

Schreiben Sie in absteigender Reihenfolge an csv (utf-8)

import csv

def write_to_csv(dic, csv_file):
	f = open(csv_file, 'w')
	writer = csv.writer(f, lineterminator='\n')
	
	#Nach Wert sortieren
	for k,v in sorted(dic.items(), key=lambda x:x[1], reverse=True):
		print k, v
		writer.writerow([k, v])
	f.close()

write_to_csv(dic_n, 'test_dic_n_utf8.csv')
write_to_csv(dic_v, 'test_dic_v_utf8.csv')

In sjis konvertieren

$ nkf -g test_dic_n_utf8.csv 
UTF-8
$ nkf -s test_dic_n_utf8.csv > test_dic_n_sjis.csv
$ nkf -g test_dic_n_sjis.csv 
Shift_JIS

In das XLS-Format konvertieren

Öffnen Sie test_dic_n_sjis.csv in Excel und speichern Sie es in xls.

Ende.

Referenzseite

http://qiita.com/tstomoki/items/f17c04bd18699a6465be http://qiita.com/ysk_1031/items/7f0cfb7e9e4c4b9129c9 http://salinger.github.io/blog/2013/01/17/1/ [^1]

[^ 1]: Beachten Sie, dass auf dieser Site ein Hinweis vorhanden war. `Wenn Sie mit Unicode-Zeichenfolgen in MeCab arbeiten, müssen Sie diese einmal codieren. Wenn zu diesem Zeitpunkt node = tagger.parseToNode (string.encode ("utf-8")) ist, beachten Sie, dass die Zeichenfolge möglicherweise während des Parsens erfasst wird und sich seltsam verhält. Es ist kein Problem, wenn Sie es auf diese Weise einmal einer Variablen zuweisen. `` `

Recommended Posts

Keyword-Extraktion mit MeCab (Python)
Einfache Schlüsselwortextraktion mit TermExtract für Python
MeCab von Python
Memorandum der Extraktion durch Python BS4-Anfrage
Primzahlbeurteilung durch Python
Visualisierungsnotiz von Python
Kommunikationsverarbeitung durch Python
Verwenden Sie Mecab mit Python 3
Beamformer-Antwort von Python
[Python] Morphologische Analyse mit MeCab
EXE Web API von Python
Stellen Sie MeCab in Python 3 zur Verfügung
Newcomer Trainingsprogramm von Python
Pin Python von Conda verwaltet
Zahlen durch 3 Ziffern trennen (Python)
Markov-Schaltmodell von Python
Bildverarbeitung mit Python (Pillow)
Python wurde von C-Programmierern gestartet
Schlüsselwortargumente für Python-Funktionen
[Python] Numpy Referenz, Extraktion, Kombination
Plattform (OS) Beurteilung durch Python
Sortieren nach Datum in Python
Objektextraktion im Bild durch Mustervergleich mit OpenCV mit Python
[Python] Sortierbar nach mehreren Bedingungen sortieren
Erweiterung des Python-Wörterbuchs um Argumente
Setzen Sie MeCab in "Windows 10; Python3.5 (64bit)"
Textextraktion mit AWS Textract (Python3.6)
Hinweise zur Verwendung von MeCab aus Python
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Lerne Python durch Zeichnen (Turtle Graphics)
Primzahlgenerator von Python
Python + Django + Scikit-Learn + Mecab (1) mit Heroku
Windows 10: Installieren der MeCab-Bibliothek für Python
Python + Django + Scikit-Learn + Mecab (2) mit Heroku
Attributzugriff auf Python dict zulassen
Betriebssystembestimmung durch Makefile mit Python
Typisierungsautomatisierungsnotiz von Python-Anfängern
Mecab / Cabocha / KNP unter Python + Windows
Abschnittsplanung Lernnotiz ~ von Python ~
10 Auswahlen der Datenextraktion durch pandas.DataFrame.query
Verhalten von Python3 durch Sakuras Server
100 Sprachverarbeitung Knock Kapitel 1 von Python
Bei Verwendung von MeCab mit virtualenv python
Geschichte der Potenznäherung von Python
Sortieren von Dateien nach Namenskonvention mit Python