我在网上寻找chatbots。这只是有趣。但现在,我非常喜欢这个主题,所以我想开发自己的聊天机器人。
但第一件事是寻找一种好方法来管理我的聊天机器人的“大脑”。我认为将所有内容保存在 XML 文件中是最好的解决方案,不是吗?
这样文件类型就清楚了。涉及不同名词之间的关系等。当我有一个名词时,例如一颗树。我怎样才能最好地保存一棵树有叶子、树枝和根。一棵树需要水和阳光才能生存吗?
我应该这样保存还是以其他方式保存?
这就是我的 XMLtree-例子:
<nouns>
<noun id="noun_0">
<name>tree</name>
<relationship>
<has>noun_1</has>
<has>noun_2</has>
<has>noun_3</has>
<need>noun_4</need>
<need>noun_5</need>
</relationship>
</noun>
<noun id="noun_1">
<name>root</name>
</noun>
<noun id="noun_2">
<name>branch</name>
<relationship>
<has>noun_3</has>
</relationship>
</noun>
<noun id="noun_3">
<name>leaf</name>
</noun>
<noun id="noun_4">
<name>water</name>
</noun>
<noun id="noun_5">
<name>light</name>
</noun>
. . .
</nouns>
数据存储选择:这取决于
简单的非学习机器人:XML 就可以
看起来您已经制定了基本的 XML 结构。对于刚开始的人来说,我认为这很好,特别是对于人工智能支持聊天机器人(if userMsg.contains('lega') then print('TOS & Copyright...'
).
当然,切换到任何新格式都需要时间和开销。
学习,复杂的机器人:数据库!
如果您想做更大的事情,尤其是如果您有聪明机器人 http://cleverbot.com/记住,我认为你将需要一个数据库。这是因为,当您的文件 .. 是一个文件并且非常大时,尝试将其全部保留在内存中会占用大量资源。对于此类项目,我推荐一个数据库。
为什么?英语很复杂
不久前,我写了一个尼夫贝叶斯垃圾邮件分类器。大约需要 10,000 条垃圾邮件才能以 7% 的准确率“训练”它,这需要大约 6 小时和 1.5GB RAM 来将数据保存在内存中。这是很多数据。英语很难,真正突破不了if 'pony' then 'saddle'
,因此对于机器人来说,要“学习”最佳响应,您的数据库将变得非常庞大且非常快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)