<相談したい事>
pythonで日本語で記載されたテキストファイルを読み込ませて、処理結果を出力しようと
すると文字化けしていしまいます。
open関数で読み込むときにencoding = 'utf8'と変換をした後で読み込んで文字化けなどを
しないようにしているつもりなのですが、原因が分からなくて困っています。
python
1import nltk 2from nltk import ngrams 3from pyknp import KNP 4import jctconv 5import re 6 7# knpで形態素解析を行ったあとの結果をリストで返す 8def separate(text,option = '-tab'): 9 number_word = [] 10 tokens = [] 11 knp = KNP(option = option) 12 result = knp.parse(jctconv.h2z(text,digit = True)) 13 14 for mrph in result.mrph_list(): 15 tokens.append(mrph.midasi) 16 return tokens 17 18 19# 形態素解析を行った結果から、共起の結果を得る 20def word_cooccurrence(list): 21 bigrams = nltk.bigrams(list) # バイグラムを作成 22 fd = nltk.FreqDist(bigrams) # バイグラムの出現頻度分布 23 return fd.items() 24 25 26if __name__ == '__main__': 27 with open('text.txt','r', encoding = 'utf8') as f: 28 text = f.read() 29 result = word_cooccurrence(separate(text)) 30 print(result) 31 32<text.txtの中身> 33ポット内の温度が100℃より低い場合、水が沸騰しない。 34 35<実行結果> 36dict_items([(('�|�b�g', '��'), 1), (('��', '��'), 1), (('��', '���x'), 1), (('���x', '��'), 1), (('��', '�P�O�O'), 1), (('�P�O�O', '��'), 1), (('��', '���'), 1), (('���', '�Ⴂ'), 1), (('�Ⴂ', '�ꍇ'), 1), (('�ꍇ', '�A'), 1), (('�A', '��'), 1), (('��', '��'), 1), (('��', '����'), 1), (('����', '��'), 1), (('��', '�Ȃ�'), 1), (('�Ȃ�', '�B'), 1)])
<試したこと>
文字コードを宣言したり、文字コードを指定してファイルを開くなどの方法は
行ったが結果は変わらなかった。
pythonのバージョンはpython3.6.1
OSはWindows10です。