Python3 - MeCabで日本語をエンコードする方法
環境:Python 3.5.2, MacOS Sierra
エクセルのデータを読み込んで文字列を作り、ReCabを使って名詞と出現回数を出すコードが以下にあります。
import pandas as pd
import MeCab
import sys
df = pd.read_excel("filename.xls", sheetname=0)
df = df.dropna()
m = MeCab.Tagger()
noun_list = []
for i in df:
for l in m.parse (i).splitlines():
if l != 'EOS' and l.split('\t')[1].split(',')[0] == '名詞':
noun_list.append(l.split('\t')[0])
noun_cnt = collections.Counter(noun_list)
noun = pd.DataFrame(list(noun_cnt.items()), columns=['名詞', '出現回数'])
noun = noun.sort_values('出現回数', axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
noun = noun[noun['出現回数'] > 10] # 10回以上出現したもののみ
print(noun.tail())
[Out]
word 出現回数
51 心配 18
199 そう 23
171 セキュリティ 31
156 不安 40
154 便利 81
手持ちのファイルではコードは走ったのですが、違った日本語データを使いコードを走らせてみると、以下のエラーが出てくるためエンコードの問題であると考えています。
NotImplementedError: Wrong number or type of arguments for overloaded function 'Tagger_parse'.
utf-8
へのencodeとdecodeをコードに入れる必要があると思うのですが、どなたか教えて頂けませんでしょうか?