智能应答引擎的AIML

时间:2013-04-14 08:00:22

标签: python xml web artificial-intelligence aiml

我听说过一种名为 AIML 的编程语言,可用于编程智能机器人。 我是一名Web开发人员,使用Python 2.7构建了一个Web爬虫,并为Wikipedia编制索引......

所以我想用python构建一个应答引擎,它会使用一个字符串变量 (这是一个包含整个维基百科的巨大变量)作为信息来源并使用AI来回答...

最后,我想把它放在学校的网站上......

我可以在 AIML 中完成吗?

稍后我也想修改它,以便给出我的实时分数答案,如:

"What is the age of ~someperson~?"等 为此,我将发送我的网络抓取工具来索引某些分数页等。

我可以在 AIML 中编程这种应答代理吗?

如果是,请提供教程链接,告诉我该怎么做? (使用字符串变量作为信息来源来解析查询并像人类一样回答)

此外, AIML 使用如下语法:

<category>
    <pattern>WHAT ARE YOU</pattern>
    <template>
        <think><set name="topic">Me</set></think> 
        I am the latest result in artificial intelligence,
        which can reproduce the capabilities of the human brain
        with greater speed and accuracy.
    </template>
</category>

如果模式是查询而模板是答案,那么这是否意味着我必须坐下来为所有可能的查询编写这些标记?

或者我可以利用它的大脑来弄清楚这个人想要什么并给他们答案 使用字符串变量作为其信息来源。

谢谢。

1 个答案:

答案 0 :(得分:13)

AIML

看起来AIML是一种模式匹配形式。而且,看起来这主要是针对dialog based agents。因此,要使用AIML,您可能需要手动生成每个问题和正确的响应(答案)。

回答问题

你真正想要的是我们所谓的question answering系统。简而言之,QA系统通常具有以下组件:

  • 问题分析。
    • 提取关键字。
    • (有时)确定预期答案类型(地点,人物,颜色,数量等)。
  • 候选文件选择---使用information retrieval系统搜索您的知识库。
  • 候选文件分析。
  • 答案提取---选择文件的某些部分(句子,段落)。
  • 响应生成。
    • 对每个答案进行评分和排名。
    • 显示最自信的答案。

研究

如果您真的想深入挖掘这个领域,我建议您使用Google Scholar并搜索我提到的一些术语,这些术语将为您提供一些详细的研究论文许多这些主题。一些文章可以帮助您入门:

无耻插头

我最近参加了natural language processing的课程,并开发了一个基本的QA系统,该系统使用维基百科作为知识库。 (实际上,我使用Simple English Wikipedia因为它更容易使用;虽然系统确实可以使用完整版本更慢。)

如果您有兴趣查看某些Python代码作为参考,您可以在项目的GitHub页面上执行此操作:bwbaugh/causeofwhy。此外,还有一些更详细的文档,介绍system components的每个步骤中发生的事情。

还有一个非常基本working demo的QA系统正在运行(目前)可用,但请记住,系统是一个概念验证,可能需要超过30秒才能响应一个问题(取决于问题)。