回答編集履歴

3

追記

2017/12/22 10:19

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -16,12 +16,100 @@
16
16
 
17
17
 
18
18
 
19
+ ひょっとして
20
+
19
21
  ---
20
22
 
21
- ろいろ簡潔に書けそな点が多いのですが、
23
+ こううこでしょか?
22
24
 
23
- 言語処理門外漢なせでななか改善策をご提案ません。
25
+ このデータ何ぞや、とう段階ら考え直しているの、外していたらすみません。
26
+
27
+ ```Python
28
+
29
+ from collections import Counter
24
30
 
25
31
 
26
32
 
27
- 思い付き次第追記するかもしれません。
33
+ # トピックごとのカテゴリ番号
34
+
35
+ topic_category_list = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
36
+
37
+
38
+
39
+ # 各学習データの最大トピック
40
+
41
+ teacher_topic_list = [
42
+
43
+ [11, 13, 26, 34, 37, 41, 46],
44
+
45
+ [7, 30],
46
+
47
+ [61],
48
+
49
+ [8, 10, 19, 27, 39, 48, 55, 62, 71],
50
+
51
+ [3, 14, 17, 24, 32, 51, 56, 60, 70],
52
+
53
+ [1, 9, 23, 25, 33, 38, 43, 44, 49, 57, 63],
54
+
55
+ [2, 6, 12, 21, 31, 32, 35, 50, 52, 58, 65],
56
+
57
+ [5, 16, 22, 42, 45, 59, 66, 67],
58
+
59
+ [18, 29, 53, 68],
60
+
61
+ [0, 4, 15, 20, 28, 36, 40, 47, 54, 64, 69]
62
+
63
+ ]
64
+
65
+
66
+
67
+ # 入力データと類似した学習データ
68
+
69
+ similar_teacher_data_indice = [9, 6, 4]
70
+
71
+
72
+
73
+ def get_category_list_by_topics(topic_category_list, topic_list):
74
+
75
+ return [topic_category_list[i] for i in topic_list]
76
+
77
+
78
+
79
+ def decide_category(topic_category_list, teacher_topic_list, similar_teacher_data_indice):
80
+
81
+ topic_list = []
82
+
83
+ for index in similar_teacher_data_indice:
84
+
85
+ topic_list.extend(
86
+
87
+ get_category_list_by_topics(topic_category_list, teacher_topic_list[index])
88
+
89
+ )
90
+
91
+
92
+
93
+ return Counter(topic_list).most_common(1)[0][0]
94
+
95
+
96
+
97
+ print(
98
+
99
+ decide_category(
100
+
101
+ topic_category_list,
102
+
103
+ teacher_topic_list,
104
+
105
+ similar_teacher_data_indice
106
+
107
+ )
108
+
109
+ )
110
+
111
+ ```
112
+
113
+
114
+
115
+ 同率一位が複数あるときはどうすんだろな、という思いもあります。

2

修正

2017/12/22 10:19

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```python
6
6
 
7
- a = [0] * len(category_list)
7
+ a = [0] * 10
8
8
 
9
9
  ```
10
10
 
@@ -13,3 +13,15 @@
13
13
  **リストのままでなくても良い場合**
14
14
 
15
15
  辞書として扱ってよいなら、[collections.defaultdict](https://docs.python.jp/3/library/collections.html#collections.defaultdict)が便利でしょう。
16
+
17
+
18
+
19
+ ---
20
+
21
+ いろいろと簡潔に書けそうな点が多いのですが、
22
+
23
+ 言語処理は門外漢なせいでなかなか改善策をご提案できません。
24
+
25
+
26
+
27
+ 思い付き次第追記するかもしれません。

1

リンクの追加

2017/12/22 10:01

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -12,4 +12,4 @@
12
12
 
13
13
  **リストのままでなくても良い場合**
14
14
 
15
- 辞書として扱ってよいなら、collections.defaultdictdict.setdefaultが便利でしょう。
15
+ 辞書として扱ってよいなら、[collections.defaultdict](https://docs.python.jp/3/library/collections.html#collections.defaultdict)が便利でしょう。