我在互联网上寻找聊天机器人。这只是乐趣。但是现在,我非常喜欢这个主题,所以我想开发自己的聊天机器人。
但第一件事是寻找一种管理我的聊天机器人“大脑”的好方法。我认为将所有内容保存在 XML 文件中是最好的解决方案,不是吗?
所以文件类型一目了然。谈到不同名词之间的关系等。当我有一个名词时,例如一颗树。一棵树有叶、有枝、有根,我怎么保存最好。一棵树需要水和阳光才能生存吗?
我应该这样保存还是以其他方式保存?
对于这棵树,这将是我的 XML - 示例:
<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 结构。对于刚刚开始的人来说,我认为这很好,尤其是对于 AI 支持聊天类机器人(if userMsg.contains('lega') then print('TOS & Copyright...'
) .
当然,切换到任何新格式都需要时间和开销。
学习,复杂的机器人:数据库!
如果你想做一些更大的事情,特别是如果你有 CleverBot请记住,我认为您将需要一个数据库。这是因为当您的文件 .. 是一个文件并且很大并且试图将其全部保留在内存中时会占用大量资源。对于这种项目,我会推荐一个数据库。
为什么?英语很复杂
前阵子我写了一个 nieve bayes 垃圾邮件分类器。大约需要 10,000 条垃圾邮件才能以 7% 的准确率“训练”它,这需要大约 6 个小时和 1.5GB 的 RAM 来将数据保存在内存中。这是很多数据。英语非常难,不能真正分解为 if 'pony' then 'saddle'
,因此对于要“学习”最佳响应的机器人来说,您的数据库将变得庞大且非常快.
关于xml - 如何最好地为聊天机器人存储数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450560/