#知りたいこと
PythonでKNPを使って構文解析をやりたいのですが、以下のコードでエラーが出ます。参考にしたサイト通りなのですが、何が悪いのでしょうか。
python
1from pyknp import KNP 2 3def select_normalization_representative_notation(fstring): 4 """ 正規化代表表記を抽出します 5 """ 6 begin = fstring.find('正規化代表表記:') 7 end = fstring.find('/', begin + 1) 8 return fstring[begin + len('正規化代表表記:') : end] 9 10def select_dependency_structure(line): 11 """係り受け構造を抽出します 12 """ 13 14 # KNP 15 knp = KNP(option = '-tab -anaphora') 16 17 # 解析 18 result = knp.parse(line) 19 20 # 文節リスト 21 bnst_list = result.bnst_list() 22 23 # 文節リストをidによるディクショナリ化する 24 bnst_dic = dict((x.bnst_id, x) for x in bnst_list) 25 26 tuples = [] 27 for bnst in bnst_list: 28 if bnst.parent_id != -1: 29 # (from, to) 30 tuples.append((select_normalization_representative_notation(bnst.fstring), select_normalization_representative_notation(bnst_dic[bnst.parent_id].fstring))) 31 32 return tuples 33 34 35if __name__ == '__main__' : 36 line = '太郎は花子が読んでいる本を次郎に渡した' 37 tuples = select_dependency_structure(line) 38 for t in tuples: 39 print(t[0] + ' => ' + t[1]) 40 41エラー内容 42 File "C:/Users/proto/PycharmProjects/cutyasai_1/koubun.py", line 37, in <module> 43 tuples = select_dependency_structure(line) 44 File "C:/Users/proto/PycharmProjects/cutyasai_1/koubun.py", line 18, in select_dependency_structure 45 result = knp.parse(line) 46 File "C:\Users\proto\venv\lib\site-packages\pyknp\knp\knp.py", line 63, in parse 47 juman_lines = self.juman.juman_lines(sentence) 48 File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\juman.py", line 70, in juman_lines 49 return self.subprocess.query(input_str, pattern=self.pattern) 50 File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\process.py", line 71, in query 51 line = self.stdouterr.readline()[:-1].decode('utf-8') 52UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 7: invalid start byte
回答2件
あなたの回答
tips
プレビュー