【问题标题】:Making a deductive program制作演绎程序
【发布时间】:2011-02-09 03:03:09
【问题描述】:

我正在考虑编写一个程序,让用户思考一个对象(一个物理对象),然后询问有关该对象的问题并试图弄清楚用户在想什么。 (类似于http://20q.net

我尝试在 Python 中执行此操作,但认为我的方法很幼稚并且效率非常低。你们会怎么做呢?

【问题讨论】:

    标签: artificial-intelligence


    【解决方案1】:

    要有效地做到这一点,需要一种称为Kullback-Liebler Divergence 的更高级的概率方法。应用于决策树(这是您想要做的)它通常称为 Information Gain

    但不要让这阻止你!对决策树的实现样本进行一些搜索,然后从那里开始。在你解决 20 个问题之前,我会编写一个更简单的程序。

    另外,看看http://www.20q.net/。单击“用英语思考”,然后单击“经典 20Q”。有时候,这很可怕。

    【讨论】:

      【解决方案2】:

      听起来你想制作一个计算机化的 21 题游戏。我会用问题和答案树来做。

      这是一篇关于在 python 中实现树的不错的 stackoverflow 文章 How can I implement a tree in Python? Are there any built in data structures in Python like in Java?

      【讨论】:

      • 当然,这确实需要将2^21 - 1 问题和2^21 答案保存在内存中,更重要的是写在某个地方。
      • Chrisian,是的,我知道它不限于 21 个问题,我只是指一个流行的游戏来说明这一点。
      • 实现树形数据结构不是挑战。那是微不足道的。挑战在于实现算法以学习并自动构建最优树结构。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2016-08-12
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多