我有我的个人C++项目,目前我被卡住了.似乎很多人都对这个话题提出了问题,如果这是一个重复的问题我现在要道歉.
无论如何,这个项目是一个聊天机器人,将根据用户输入回答.目前,它采用整个查询并使用长而低效的if语句行查找匹配.如果找到匹配,它将以特定答案回复.
我来到这里的原因是因为我厌倦了编写非常耗费时间和效率低下的if陈述,这些陈述甚至没有捕捉到同一问题的所有变化.我不是在寻找从维基百科或类似的东西中获取数据的代码或解决方案.我想要的是聊天机器人只是回答一些简单的问题.
在我用if语句告别的时候,我提出了一个想法.为什么我不像搜索引擎排名网页那样使用关键字?
我编写的代码到目前为止计算查询中存在关键字(或几个不同的关键字)的次数.问题是如何对它们进行排名以找到最佳答案?我认为答案和关键词需要以特殊的方式存储.
到目前为止,我对主要问题的答案清单是:
1. 收到查询后,通过ini文件对其进行排名,其中密钥中包含关键字,答案为其值.如果有多个答案,请使用另一个关键字并搜索该关键字以及原始关键字(缩小范围).这样做足够的时间应该得到正确的答案.
优点:适合我需要做的事情,这是我可以用C++掌握的东西.
缺点:看起来冗长而低效,几乎就像再次潜入if语句一样......
2.使用SQL数据库,告诉它找到适用的答案.不知道如何做到这一点.
优点:这将是轻量级的,因为数据库计算机将处理搜索并且可能非常详细.
缺点:可能会给我带来相当大的痛苦,因为我已经用C++踩着相当高的水域.但是,我开始认为它最终会像if语句一样.
3.最好的答案,有人可能会认为这里是AIML(这是这里讨论).
优点:用于开发智能聊天机器人,功能非常强大.
缺点:对于我的简单项目来说,似乎太"沉重"了,我无法确定一个搜索,这个搜索找到了一个易于理解的代码,用于需要AIML的机器人.
我希望有人可以建议一条明智的路线,因为我不是C++的忠实粉丝,我觉得我已经在这个项目中深入探索.然而,在今年夏天,我感觉自己咬着舌头,走出了我的舒适区,并且曾经在C++中创造了一些有用的东西.我本可以在PHP中快速完成此操作,但为了发送消息,我必须使用C++.