回答編集履歴

6

些細

2021/05/14 09:53

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
  あと辞書が違うので品詞の取り方は変えないといけないですね。
152
152
 
153
- 大雑把には`\t-'で分解して5番目を取るんでしょうかね??
153
+ 大雑把には`\t`と`-`で分解して5番目を取るんでしょうかね??
154
154
 
155
155
 
156
156
 

5

追記

2021/05/14 09:52

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -141,3 +141,41 @@
141
141
  1度コメントに書きましたが、他人のコードがどう動いているのか確認せずに自分のコードに入れているのが、真の問題じゃないですか?
142
142
 
143
143
  うまく動かないなら、1行ずつ動かしたりして何が起きるのか、何を意図しているのかを試して調べていく必要があります。
144
+
145
+
146
+
147
+ ----
148
+
149
+ よくみたら引数のtextを使ってなくて常に空文を解析してます。
150
+
151
+ あと辞書が違うので品詞の取り方は変えないといけないですね。
152
+
153
+ 大雑把には`\t-'で分解して5番目を取るんでしょうかね??
154
+
155
+
156
+
157
+ ```python
158
+
159
+ def mec(text):
160
+
161
+ parse = tagger.parse(text)
162
+
163
+ word_class = []
164
+
165
+ for line in lines:
166
+
167
+ items = re.split('[\t-]',line)
168
+
169
+ if len(items) >= 5 and items[4] == '助詞':
170
+
171
+ continue
172
+
173
+ words.append(items[0])
174
+
175
+ return ' '.join(words)
176
+
177
+ ```
178
+
179
+ という感じかと。
180
+
181
+ あとは必要な処理をちゃんと書いてください、としか。

4

追記

2021/05/14 09:52

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -77,3 +77,67 @@
77
77
 
78
78
 
79
79
  taggerはグローバルに確保していいと思います。
80
+
81
+
82
+
83
+ ----
84
+
85
+
86
+
87
+ ```python
88
+
89
+ tagger = MeCab.Tagger()
90
+
91
+ print(tagger.parse('文字を綺麗に書きたいと思ったので習い始めました。'))
92
+
93
+ ```
94
+
95
+ すると
96
+
97
+ ```plain
98
+
99
+ 文字 モジ モジ 文字 名詞-普通名詞-一般 1
100
+
101
+ を オ ヲ を 助詞-格助詞
102
+
103
+ 綺麗 キレー キレイ 奇麗 形状詞-一般 1
104
+
105
+ に ニ ダ だ 助動詞 助動詞-ダ 連用形-ニ
106
+
107
+ 書き カキ カク 書く 動詞-一般 五段-カ行 連用形-一般 1
108
+
109
+ たい タイ タイ たい 助動詞 助動詞-タイ 終止形-一般
110
+
111
+ と ト ト と 助詞-格助詞
112
+
113
+ 思っ オモッ オモウ 思う 動詞-一般 五段-ワア行 連用形-促音便 2
114
+
115
+ た タ タ た 助動詞 助動詞-タ 連体形-一般
116
+
117
+ の ノ ノ の 助詞-準体助詞
118
+
119
+ で デ ダ だ 助動詞 助動詞-ダ 連用形-一般
120
+
121
+ 習い ナライ ナラウ 習う 動詞-一般 五段-ワア行 連用形-一般 2
122
+
123
+ 始め ハジメ ハジメル 始める 動詞-非自立可能 下一段-マ行 連用形-一般 0
124
+
125
+ まし マシ マス ます 助動詞 助動詞-マス 連用形-一般
126
+
127
+ た タ タ た 助動詞 助動詞-タ 終止形-一般
128
+
129
+ 。 。 補助記号-句点
130
+
131
+ EOS
132
+
133
+ ```
134
+
135
+ になりませんか? (Teratailだとタブが空白に置換されていて見え方は違うと思いますが)
136
+
137
+ 素性の区切りが`-`で、品詞情報が5番目の項目になるのでそのあたりを直していく必要があるかと。
138
+
139
+
140
+
141
+ 1度コメントに書きましたが、他人のコードがどう動いているのか確認せずに自分のコードに入れているのが、真の問題じゃないですか?
142
+
143
+ うまく動かないなら、1行ずつ動かしたりして何が起きるのか、何を意図しているのかを試して調べていく必要があります。

3

些細

2021/05/14 00:58

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  ```
68
68
 
69
- 1. if と words.append のインデントがずれている(元のコードと比べたらわかるはず)
69
+ 1. if と words.append のインデントがずれている
70
70
 
71
71
  1. returnしてない
72
72
 

2

追記

2021/05/13 10:10

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -33,3 +33,47 @@
33
33
  「やりたいこと」に対しては [https://teratail.com/questions/171703](https://teratail.com/questions/171703) に書いてあるコードの方が近く、`-Owakati`オプションで解析する理由がありません。
34
34
 
35
35
  今の1つ目のループの中に、[https://teratail.com/questions/171703](https://teratail.com/questions/171703) でやっている処理を入れるイメージの方がいいでしょう。
36
+
37
+
38
+
39
+ ----
40
+
41
+
42
+
43
+ ```python
44
+
45
+ tagger = MeCab.Tagger()
46
+
47
+
48
+
49
+ def mec(text):
50
+
51
+ parse = tagger.parse('')
52
+
53
+ word_class = []
54
+
55
+ for line in lines:
56
+
57
+ items = re.split('[\t,]',line)
58
+
59
+ if len(items) >= 2 and items[1] == '助詞':
60
+
61
+ continue
62
+
63
+ words.append(items[0])
64
+
65
+ return ' '.join(words)
66
+
67
+ ```
68
+
69
+ 1. if と words.append のインデントがずれている(元のコードと比べたらわかるはず)
70
+
71
+ 1. returnしてない
72
+
73
+
74
+
75
+ でしょうか。動かしてはないですが。
76
+
77
+
78
+
79
+ taggerはグローバルに確保していいと思います。

1

些細

2021/05/13 10:09

投稿

quickquip
quickquip

スコア11040

test CHANGED
@@ -16,13 +16,13 @@
16
16
 
17
17
 
18
18
 
19
+ ----
20
+
21
+
22
+
19
23
 
20
24
 
21
25
  `m0 = MeCab.Tagger('-Owakati')`と`mecab = MeCab.Tagger()`の間にあるコードは必要ありません(正直、コードの意図がよくわかってないんですが後述の理由から不要だということははっきり言えます)。
22
-
23
-
24
-
25
- ----
26
26
 
27
27
 
28
28