我在互联网上寻找聊天机器人。这只是有趣。但现在,我非常喜欢这个主题,所以我想开发自己的聊天机器人。
但第一件事是寻找一种好方法来管理我的聊天机器人的“大脑”。我认为将所有内容保存在 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>
Run Code Online (Sandbox Code Playgroud)
数据存储选择:视情况而定
简单的非学习机器人:XML 就可以
看起来您已经制定了基本的 XML 结构。对于刚开始的人来说,我认为这很好,特别是对于人工智能支持聊天机器人 ( if userMsg.contains('lega') then print('TOS & Copyright...')。
当然,切换到任何新格式都需要时间和开销。
学习,复杂的机器人:数据库!
如果您想做一些更大的事情,特别是如果您想到了CleverBot,我认为您将需要一个数据库。这是因为,当您的文件 .. 是一个文件并且非常大时,尝试将其全部保留在内存中会占用大量资源。对于此类项目,我推荐一个数据库。
为什么?英语很复杂
不久前,我写了一个尼夫贝叶斯垃圾邮件分类器。大约需要 10,000 条垃圾邮件才能以 7% 的准确率“训练”它,这需要大约 6 小时和 1.5GB RAM 来将数据保存在内存中。这是很多数据。英语非常难,无法真正破解if 'pony' then 'saddle',因此对于机器人来说,要“学习”最佳响应,您的数据库将变得庞大且很快。
| 归档时间: |
|
| 查看次数: |
5035 次 |
| 最近记录: |