6

我听说过一种叫做AIML的编程语言,它可以用来编写智能机器人。我是一名网络开发人员,拥有一个使用 Python 2.7 构建的网络爬虫,并已将维基百科编入索引...

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

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

那么我可以在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>

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

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

谢谢你。

4

1 回答 1

14

人工智能

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

问答

看起来你真正追求的是我们所说的问答系统。简而言之,QA 系统通常具有以下组件:

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

研究

如果你真的想深入研究这个领域,我建议使用谷歌学术并搜索我提到的一些术语,这将为你提供一些关于这些主题的详细研究论文。一些可以帮助您入门的论文:

无耻的插头

我最近参加了自然语言处理课程,并开发了一个基本的 QA 系统,它使用 Wikipedia 作为知识库。(实际上,我使用了Simple English Wikipedia,因为它更易于使用;尽管该系统在完整版本上的运行速度要慢得多。)

如果您有兴趣查看一些 Python 代码作为参考,您可以在项目的 GitHub 页面上这样做:bwbaugh/causeofwhy。此外,还有一些更详细的文档,介绍了系统组件的每个步骤中发生的情况。

还有一个非常基本的 QA 系统运行演示(当前)可用,但请记住,该系统是一个概念验证系统,可能需要 30 秒以上的时间来回答问题(取决于问题)。

于 2013-04-14T10:39:03.860 回答