質問編集履歴

2

誤字

2018/09/14 02:32

投稿

pippip
pippip

スコア30

test CHANGED
@@ -1 +1 @@
1
- UnicodeDecodeErrorの直し方知りたい
1
+ UnicodeDecodeErrorの直し方知りたい
test CHANGED
File without changes

1

コード内容の変更

2018/09/14 02:32

投稿

pippip
pippip

スコア30

test CHANGED
File without changes
test CHANGED
@@ -1,36 +1,108 @@
1
1
  #知りたいこと
2
2
 
3
- PythonでKNPを使って構文解析をやりたいのですが、以下のコードでエラーが出ます。参考にした[サイト](https://qiita.com/yusanish/items/04fd77b0382df7dfce41)通りなのですが、何が悪いのでしょうか。
3
+ PythonでKNPを使って構文解析をやりたいのですが、以下のコードでエラーが出ます。参考にした[サイト](https://www.trifields.jp/how-to-select-dependency-structure-by-knp-in-ubuntu-1404-and-python-3-1393)通りなのですが、何が悪いのでしょうか。
4
4
 
5
5
  ```python
6
6
 
7
- import pyknp
7
+ from pyknp import KNP
8
8
 
9
- knp = pyknp.KNP()
10
9
 
11
- knp = pyknp.KNP(jumanpp=True)
12
10
 
13
- result = knp.parse("今日の晩御飯はカレーだった。")
11
+ def select_normalization_representative_notation(fstring):
14
12
 
13
+ """ 正規化代表表記を抽出します
14
+
15
+ """
16
+
17
+ begin = fstring.find('正規化代表表記:')
18
+
19
+ end = fstring.find('/', begin + 1)
20
+
21
+ return fstring[begin + len('正規化代表表記:') : end]
22
+
23
+
24
+
25
+ def select_dependency_structure(line):
26
+
27
+ """係り受け構造を抽出します
28
+
29
+ """
30
+
31
+
32
+
33
+ # KNP
34
+
35
+ knp = KNP(option = '-tab -anaphora')
36
+
37
+
38
+
39
+ # 解析
40
+
15
- result.draw_bnst_tree()
41
+ result = knp.parse(line)
42
+
43
+
44
+
45
+ # 文節リスト
46
+
47
+ bnst_list = result.bnst_list()
48
+
49
+
50
+
51
+ # 文節リストをidによるディクショナリ化する
52
+
53
+ bnst_dic = dict((x.bnst_id, x) for x in bnst_list)
54
+
55
+
56
+
57
+ tuples = []
58
+
59
+ for bnst in bnst_list:
60
+
61
+ if bnst.parent_id != -1:
62
+
63
+ # (from, to)
64
+
65
+ tuples.append((select_normalization_representative_notation(bnst.fstring), select_normalization_representative_notation(bnst_dic[bnst.parent_id].fstring)))
66
+
67
+
68
+
69
+ return tuples
70
+
71
+
72
+
73
+
74
+
75
+ if __name__ == '__main__' :
76
+
77
+ line = '太郎は花子が読んでいる本を次郎に渡した'
78
+
79
+ tuples = select_dependency_structure(line)
80
+
81
+ for t in tuples:
82
+
83
+ print(t[0] + ' => ' + t[1])
16
84
 
17
85
 
18
86
 
19
87
  エラー内容
20
88
 
21
- File "C:/Users/proto/PycharmProjects/cutyasai_1/koubun.py", line 4, in <module>
89
+ File "C:/Users/proto/PycharmProjects/cutyasai_1/koubun.py", line 37, in <module>
22
90
 
23
- result = knp.parse("今日の晩御飯はカレーだった。")
91
+ tuples = select_dependency_structure(line)
24
92
 
93
+ File "C:/Users/proto/PycharmProjects/cutyasai_1/koubun.py", line 18, in select_dependency_structure
94
+
95
+ result = knp.parse(line)
96
+
25
- File "C:\Users\proto\venv\lib\site-packages\pyknp\knp\knp.py", line 63, in parse
97
+ File "C:\Users\proto\venv\lib\site-packages\pyknp\knp\knp.py", line 63, in parse
26
98
 
27
99
  juman_lines = self.juman.juman_lines(sentence)
28
100
 
29
- File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\juman.py", line 70, in juman_lines
101
+ File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\juman.py", line 70, in juman_lines
30
102
 
31
103
  return self.subprocess.query(input_str, pattern=self.pattern)
32
104
 
33
- File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\process.py", line 71, in query
105
+ File "C:\Users\proto\venv\lib\site-packages\pyknp\juman\process.py", line 71, in query
34
106
 
35
107
  line = self.stdouterr.readline()[:-1].decode('utf-8')
36
108