我试图理解AIML模式匹配是如何工作的._
和之间有什么区别*
?我应该如何使用它们来获得最佳匹配?
我只有这个文件,但它缺少一些很好的例子.
artificial-intelligence aiml pattern-matching neural-network
我有我的个人C++项目,目前我被卡住了.似乎很多人都对这个话题提出了问题,如果这是一个重复的问题我现在要道歉.
无论如何,这个项目是一个聊天机器人,将根据用户输入回答.目前,它采用整个查询并使用长而低效的if
语句行查找匹配.如果找到匹配,它将以特定答案回复.
我来到这里的原因是因为我厌倦了编写非常耗费时间和效率低下的if
陈述,这些陈述甚至没有捕捉到同一问题的所有变化.我不是在寻找从维基百科或类似的东西中获取数据的代码或解决方案.我想要的是聊天机器人只是回答一些简单的问题.
在我用if语句告别的时候,我提出了一个想法.为什么我不像搜索引擎排名网页那样使用关键字?
我编写的代码到目前为止计算查询中存在关键字(或几个不同的关键字)的次数.问题是如何对它们进行排名以找到最佳答案?我认为答案和关键词需要以特殊的方式存储.
到目前为止,我对主要问题的答案清单是:
1. 收到查询后,通过ini文件对其进行排名,其中密钥中包含关键字,答案为其值.如果有多个答案,请使用另一个关键字并搜索该关键字以及原始关键字(缩小范围).这样做足够的时间应该得到正确的答案.
优点:适合我需要做的事情,这是我可以用C++掌握的东西.
缺点:看起来冗长而低效,几乎就像再次潜入if语句一样......
2.使用SQL数据库,告诉它找到适用的答案.不知道如何做到这一点.
优点:这将是轻量级的,因为数据库计算机将处理搜索并且可能非常详细.
缺点:可能会给我带来相当大的痛苦,因为我已经用C++踩着相当高的水域.但是,我开始认为它最终会像if语句一样.
3.最好的答案,有人可能会认为这里是AIML(这是这里讨论).
优点:用于开发智能聊天机器人,功能非常强大.
缺点:对于我的简单项目来说,似乎太"沉重"了,我无法确定一个搜索,这个搜索找到了一个易于理解的代码,用于需要AIML的机器人.
我希望有人可以建议一条明智的路线,因为我不是C++的忠实粉丝,我觉得我已经在这个项目中深入探索.然而,在今年夏天,我感觉自己咬着舌头,走出了我的舒适区,并且曾经在C++中创造了一些有用的东西.我本可以在PHP中快速完成此操作,但为了发送消息,我必须使用C++.
我有一个网页,我只在其中使用 HTML、CSS 和 Javascript。我决定在那里创建一个聊天机器人。
AIML 似乎是可行的方法,而且我已经知道如何编写它。
问题是:获得 bot.aiml 文件后,我该如何处理它?我假设我需要某种 javascript 函数来与其交互。
我听说过一种名为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)
如果模式是查询而模板是答案,那么这是否意味着我必须坐下来为所有可能的查询编写这些标签?
或者我可以使用它的大脑来弄清楚这个人想要什么,并使用字符串变量作为其信息来源给他们答案.
谢谢.
我打算把聊天机器人作为我的项目.我理解基本的aiml标签,但我没有得到如何实现aiml标签.另外,我们如何为这个聊天机器人创建GUI
每当我尝试加载Alice aiml文件时,我会得到关于未找到的标签的各种错误,但是当我修复错误时,我得到一个错误,我不知道如何修复.目标事物没有被实现,但是我看看它正在强制它的目标类:我的代码:
public static String input()
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("you say>");
String input = "";
try
{
input = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return input;
}
public static void main(String[] args) throws Exception
{
Chat ch=new Chat();
AliceBotMother mother = new AliceBotMother();
mother.setUp();
AliceBot bot = mother.newInstance();
System.err.println(bot.respond("welcome"));
while(true)
{
String input = Chat.input();
// while the user saying 'bye'
if(Chat.END.equalsIgnoreCase(input))
break;
// do some respond..
System.err.println("Alice>" …
Run Code Online (Sandbox Code Playgroud)