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.
Mach es in deiner gewohnten Umgebung.
Ich habe vor, die Daten später mit Pandas zu verarbeiten, also verwende ich utf-8 oder Pandas.
Dies ist aus dem Excel-Menü. test.xls -> test.csv
$ nkf -g test.csv
Shift_JIS
$ nkf -w test.csv > test_utf8.csv
$ nkf -g test_utf8.csv
UTF-8
import pandas as pd
csv_file = 'test.csv'
df = pd.read_csv(csv_file, encoding='utf-8', header=1)
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
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')
$ 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
Öffnen Sie test_dic_n_sjis.csv in Excel und speichern Sie es in xls.
Ende.
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