智能应答引擎的AIML

use*_*116 5 python xml artificial-intelligence aiml web

我听说过一种名为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>
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

Wes*_*ugh 13

AIML

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

问题回答

你真正想要的就是我们称之为问答系统.简而言之,QA系统通常具有以下组件:

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

研究

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

无耻的插头

我最近参加了自然语言处理课程,并开发了一个基本的QA系统,该系统使用维基百科作为知识库.(实际上,我使用简单英语维基百科,因为它更容易使用;虽然系统确实可以使用完整版本更慢.)

如果您有兴趣查看一些Python代码作为参考,您可以在项目的GitHub页面上执行此操作:bwbaugh/causeofwhy.此外,还有一些更详细的文档,说明系统组件的每个步骤中发生了什么.

还有(目前)可用的QA系统的基本工作演示,但请记住,系统是概念验证,并且可能需要超过30秒来回答问题(取决于题).