回答編集履歴
2
test
CHANGED
@@ -15,3 +15,8 @@
|
|
15
15
|
ビルゲイツ(ID:0)
|
16
16
|
|
17
17
|
みたいな感じです。
|
18
|
+
|
19
|
+
githubで見つけた、なう
|
20
|
+
---
|
21
|
+
githubに[Pythonの実装例](https://github.com/topics/akinator?l=python)がたくさんありますね。
|
22
|
+
特に[tanacchiさん](https://github.com/tanacchi/line_akinator)は日本人っぽいので、ソースコードを見やすいと思います。
|
1
test
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
> 言語はPythonを使うという情報は入手している
|
2
|
-
対象の人ごとにID(integer)を割り振って、IDごとにYES/NOで割れる条件を割り振るところから始まると思います。具体的な方法で行くと、決定木系の方法が相性が良いと思います。
|
2
|
+
対象の人ごとにID(integer)を割り振って、IDごとにYES/NOで割れる条件を割り振るところから始まると思います。具体的な方法で行くと、決定木系の方法が相性が良いと思います。
|
3
|
+
|
4
|
+
Pythonで決定木、というとScikit-learnが一番とっつきやすいです。[Scikit-learnの決定木](https://scikit-learn.org/stable/modules/tree.html)
|
3
5
|
派生方法でアンサンブル(スタッキング、バギング、ブースティング…いずれもゆるく言えば「決定木を束ねて使う」です)なアプローチがありますが、方法が違うとはいえ、使い方としては基本的に決定木の使い方と同じなので、まずはシンプルな決定木で行くのがいいと思います。
|
4
6
|
|
5
7
|
あとは、走らせながらデータを集めて、「正解データが登録されていなければ、ユーザーのお願いして入力してもらう」を繰り返す感じと思います。
|
@@ -10,6 +12,6 @@
|
|
10
12
|
アメリカ人:True
|
11
13
|
OSを作った:True
|
12
14
|
窓な人:True
|
13
|
-
ビルゲイツ
|
15
|
+
ビルゲイツ(ID:0)
|
14
16
|
|
15
17
|
みたいな感じです。
|