【发布时间】:2012-11-04 05:37:33
【问题描述】:
我正在为 C# 软件工程课程编写聊天机器人。
我使用马尔可夫链生成文本,使用维基百科文章作为语料库。我希望它根据用户的输入以(至少稍微)智能的方式响应用户输入,但我不知道该怎么做。
我目前的想法是尝试从用户输入中提取关键字,然后使用这些关键字来指导句子生成。但是由于马尔可夫属性,关键字必须是句子中的第一个单词,这可能看起来很傻。同样,对于n 订单链,我每次都必须完全从用户那里提取n 关键字。
生成器的数据是一个字典,其中的键是单词列表,值是单词列表,权重取决于单词在键中单词之后出现的频率。比如:
{[word1, word2, ..., wordn]: [(word, weight), (word,重量),...]}
它在命令行测试程序中工作,但我只是为它生成的每一位文本提供一个n 单词种子。
我希望有某种方法可以使链更喜欢用户使用的附近单词,而不是使用输入中的第一个/最后一个 n 单词或 n 关键字来播种它,或者任何。有没有办法做到这一点?
【问题讨论】:
标签: c# algorithm artificial-intelligence markov-chains