teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

条件の付与について、追記します。

2019/08/15 05:16

投稿

m3yrin
m3yrin

スコア132

answer CHANGED
@@ -15,4 +15,33 @@
15
15
  doc = ' '.join(doc)
16
16
  docs.append(doc)
17
17
  corpus = docs
18
+ ```
19
+
20
+ ### 追記
21
+
22
+ > あとすみません、重ねて恐縮なんですが、本来ならfor w in words以降で名詞のみを選んで並べ替えをしたいのですが、このコードだと名詞を表示させることしかできておらず、tfidfのスコアを出す上で必要のない他の品詞も混ざってしまっているように見受けられます。
23
+ この場合、どのように書き直せば宜しいでしょうか?
24
+
25
+
26
+ ご質問のコードに含まれていた条件分岐のloopを再利用して、次のようにかけるかと思います。
27
+ 条件はif文を追加・削除して調整してみてください。
28
+
29
+ ```python
30
+ # corpus = [mecab.parse(txt, as_nodes=True) for line in corpus]
31
+
32
+ rm_list = ["RT","https","co"]
33
+ docs = []
34
+ for txt in corpus:
35
+ words = mecab.parse(txt, as_nodes=True)
36
+ doc = []
37
+
38
+ for w in words:
39
+ if w.feature.split(",")[0] == "名詞":
40
+ if len(w.surface) >= 2:
41
+ if not any(rm in w.surface for rm in rm_list):
42
+ doc.append(str(w.surface))
43
+
44
+ doc = ' '.join(doc)
45
+ docs.append(doc)
46
+ corpus = docs
18
47
  ```