質問編集履歴
1
再度、全てのコードを記載いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,42 +3,52 @@
|
|
3
3
|
参考にしているサイトが名詞のみですが、動詞、形容詞、形容動詞についても頻出カウントしたいと思っています。
|
4
4
|
参考サイト:https://www.codexa.net/mecab-python/
|
5
5
|
|
6
|
-
尚、テキストデータは喋り言葉の書き起こしを利用しているため、かなり長い文章を使っています。
|
7
|
-
|
8
|
-
|
6
|
+
参考にしているコード
|
9
|
-
|
10
7
|
```
|
8
|
+
# 小池百合子氏の政策ページ解析
|
9
|
+
# ファイル読み込み
|
10
|
+
Koike = r'Yuriko_Koike_Policy.txt'
|
11
|
+
with open(Koike) as K:
|
12
|
+
K_text = K.read()
|
13
|
+
#テキストデータの確認
|
14
|
+
print(K_text)
|
15
|
+
# Mecab で形態素解析
|
16
|
+
K_parsed = mecab.parse(K_text)
|
17
|
+
#解析結果の確認
|
18
|
+
K_parsed
|
19
|
+
#行単位に分割
|
20
|
+
K_parsed_lines = K_parsed.split('\n')
|
11
21
|
#処理に使うリストを作成
|
12
22
|
K_parsed_words = []
|
13
23
|
K_words = []
|
14
|
-
|
24
|
+
#各行のタブ(\t)を除去
|
25
|
+
for K_parsed_line in K_parsed_lines:
|
26
|
+
K_parsed_words.append(re.split('[\t,]', K_parsed_line))
|
27
|
+
|
15
|
-
#
|
28
|
+
#名詞・一般に該当する単語をリストに格納
|
16
29
|
for K_parsed_word in K_parsed_words:
|
17
|
-
|
30
|
+
if ( K_parsed_word[0] not in ('EOS', '')
|
18
|
-
and K_parsed_word[1]
|
31
|
+
and K_parsed_word[1] == '名詞'
|
19
32
|
and K_parsed_word[2] == '一般'):
|
20
33
|
|
21
34
|
K_words.append(K_parsed_word[0])
|
22
|
-
|
35
|
+
|
23
36
|
# 出現頻度上位15語を抽出して表示
|
24
37
|
K_counter = Counter(K_words)
|
25
38
|
for K_word, K_count in K_counter.most_common(15):
|
26
39
|
print('%s : %s' % (K_word, K_count))
|
40
|
+
```
|
41
|
+
本来やりたいこと:名詞以外も、動詞・形容詞・形容動詞をカウントしたい。過去質問に似たようなコードを下記のように編集するも、元コードと結果が変わりません。
|
27
42
|
|
28
43
|
```
|
29
|
-
エラー:下記コードと結果が変わりません。
|
30
|
-
```
|
31
|
-
#処理に使うリストを作成
|
32
|
-
K_parsed_words = []
|
33
|
-
K_words = []
|
34
|
-
|
35
|
-
#名詞・一般に該当する単語をリストに格納
|
44
|
+
#名詞・動詞・形容詞・形容動詞・一般に該当する単語をリストに格納
|
36
45
|
for K_parsed_word in K_parsed_words:
|
37
46
|
if ( K_parsed_word[0] not in ('EOS', '')
|
38
|
-
and K_parsed_word[1] in ('名詞')
|
47
|
+
and K_parsed_word[1] in ('名詞','動詞','形容詞','形容動詞')
|
39
48
|
and K_parsed_word[2] == '一般'):
|
49
|
+
|
40
|
-
|
50
|
+
K_words.append(K_parsed_word[0])
|
41
|
-
|
51
|
+
|
42
52
|
# 出現頻度上位15語を抽出して表示
|
43
53
|
K_counter = Counter(K_words)
|
44
54
|
for K_word, K_count in K_counter.most_common(15):
|