带有歧义的递归假设 - 它叫什么?

时间:2012-07-17 09:17:00

标签: recursion artificial-intelligence reasoning

我遇到了很多问题(在数据分析或AI的广泛领域)。但是我无法命名,可能是因为我没有正式的CS背景。请耐心等待,我举两个例子:

想象一下自然语言解析:

The flower eats the cow.

你有一个程序可以接受每个单词,并确定它的类型和它们之间的关系。有两种方法可以解释这句话:

1) flower (substantive) -- eats (verb) --> cow (object)

使用通常的SVO单词顺序,或

2) cow (substantive) -- eats (verb) --> flower (object)

使用更具诗意的世界秩序。该计划将排除其他可能性,例如“花”作为动词,因为它遵循“the”。然后它将对剩余的可能性进行排名:1)具有比2)更自然的单词顺序,因此它获得更多的分数。但包括世界知识,花不能吃奶牛,2)仍然获胜。所以它可能会返回两个假设,并给出1)得分为30,以及2)得分为70。

然后,它会记住这两个假设并继续解析文本,分支。一个分支假设1),一个2)。如果分支达到矛盾,或者排名为~0,则将其丢弃。最后,它再次提出了排名假设,但对于整个文本。


对于另一个例子,想象一下光学字符识别:

   **      **
   **      **  *****
   **   *******
 *******   **
*  **      **
   **      **

我可以看一下笔画并说,确定这是一个“H”。在识别出H之后,我注意到它周围有污迹,并给它一个稍差的分数。

或者,我可以先进行涂抹识别,并注意水平线看起来像是一件神器。移除后,我发现这是llIl,并给它一些排名。

处理完整张图片后,可以是HluminationllluminationIllumination。使用字典和总排名,我认为它是最后一个。


  • 一般问题总是某种解析/理解。例子:
    • 自然语言或含糊不清的语言
    • OCR
    • 路径寻找
    • 处理模糊或不完整的用户输入 - 哪种解释有意义,哪种方式最合理?
  • 我是递归的。
  • 它可以提前纾困(当分支/解释没有意义时,或者最终得分为0)。所以它可能是某种回溯。
  • 考虑到歧义,它会考虑所有选项。
  • 它基于底部can_eat(cow, flower) = true的简单规则。
  • 它保持了解释的合理性排名。
  • 它在元级别上是递归的:它可以分叉/分支到不同的“世界”,在处理下一部分数据时它会采用不同的假设。
  • 它会将个人排名(可能使用贝叶斯概率)转发给依赖假设。
  • 在实践中,会有训练这个东西的方法,确定排名系数,如果树变得太大,就会有截止。

我不知道这叫什么。人们可能会猜测“决策树”或“递归下降”,但我知道这些术语意味着不同的东西。

我知道Prolog可以解决这个问题的简单案例,比如家谱,并找出谁是谁的叔叔。但是你必须在代码中提供所有数据,而且对于我的真实案例而言,它似乎不够简单或强大。

我想知道,这个问题叫做什么,有没有共同的策略来解决这个问题?关于这个话题有很好的文献吗?是否存在理想的C(++),Python库,你可以定义一堆规则,它可以解决所有的排名和假设吗?

1 个答案:

答案 0 :(得分:0)

我认为没有一个答案符合你的所有要点。但是我希望我的链接会让你更接近答案,或者可能会给你一个不同的问题。

我认为最接近的答案是Bayesian network,因为根据我的理解,你有相互影响的概率,它也与Conditional probabilityFuzzy Logic

有关

您还描述了一些遗传编程以及人工神经网络

我可以删除一些可能相关的主题:

http://en.wikipedia.org/wiki/Rule-based_programming

http://en.wikipedia.org/wiki/Expert_system

http://en.wikipedia.org/wiki/Knowledge_engineering

http://en.wikipedia.org/wiki/Fuzzy_system

http://en.wikipedia.org/wiki/Bayesian_inference