关于智能聊天机器人讨论收集:
(1)首先要有个词库,记录那几个汉字是一个词。 得到句子后,就要把句子分成若干个词。 同时你有准备好的很多回答的句子,每个句子对应几个问题关键词。 得到问题后,把问题分解成问题关键词。 然后在答案数据库里找,当然不一定能找到正好关键词是一致的,但总能找一个尽量匹配的。然后就回答他对应的答案。大概是这么个想法,还有待优化。
(2)QQ小强,基本原理就是有一个对照表。 例如,你说:“去死吧”,他就会在对照表中找到与“死”有关的记录,然后对比“去死”,确认与“去死”相关的记录,随机找出一条(这样对话就不会重复)。 如果句子过长,例如,“我今天很不开心”,找出句子中的“主谓宾”,这将语句分为:“我”,“不”,“开心”,逐一组合与答复对应表进行匹配,再将初步筛选的记录针对“我不开心”进行最近似比较,最终确认回复的记录。 如果是短语/词汇就相对简单,只需要最多2层筛选就可确认。
(3)补充一点,从一个句子中,确认主语是非常关键的,这样,可以决定回复的对象,例如:“你”,那么,回复是,一定会有“我”,如果主语为“我”,那么回复中,则确定对象为“你”。 其次,是逻辑判断,即“是”、“否”、“不是”、“可能”、“不”、“肯定”等,来确定后面附带的名词或动词的含义(即相应动词或名词所关联的对应表)。 例子分析:“你去死吧”,提取关键字:“你”(主语)、“死”(动词) 主语对应表: 主语“你” 关联回复:我 主语“你” 关联回复:那么你 动词对应表: 动词“死” 关联回复:不要死 动词“死” 关联回复:想死吗 动词“死” 关联回复:为什么想死 动词“死” 关联回复:死是很可怕的 经过筛选后,按照主谓宾格式输出: 我不要死 那么你想死吗 那么你为什么想死 我为什么想死 我死是很可怕的 。。。。。。。。。 等组合。
(4)例子二: 输入语句:我今天非常不开心,提取关键字:“我”,“不”,“开心” 主语对应表: 主语“我” 关联回复:你 主语“我” 关联回复:那么我 动词与逻辑对应表: 1 动词“开心” 逻辑:不 关联回复:想想忧伤的事情 2 动词“开心” 逻辑:不 关联回复:世界上还有很多人更不幸 3 动词“开心” 逻辑:不 关联回复:感到难过 4 动词“开心” 逻辑:是 关联回复:也很开心 5 动词“开心” 逻辑:是 关联回复:值得庆贺 经过主语、逻辑、动词筛选后,按照主谓宾格式输出只会输入:1-3(逻辑字段为: 不): 你想想忧伤的事情 你世界上还有很多人更不幸 你感到难过 上面的回复就太勉强了,如果想让句子生动,那么就需要加入形容词的分析和相应的回复对应表。我感觉如果要开发小强,需要大量的动词表和行为解释表,这样才能使句子更加流畅,否则,就会答非所问。
载自 Friecin(雪客)