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