我试过google,发现我无法理解。
我理解Markov chains到一个非常基本的层次:这是一个数学模型,它只依赖于以前的输入来改变状态......那么一个加权随机机会而不是不同标准的FSM呢?
我听说你可以用它们来产生半智能废话,给出现有单词的句子用作种类词典。
我无法想到搜索条件来找到这个,所以有人可以链接我或解释我如何能够产生一些半智能答案吗? (如果你问过关于馅饼的问题,它就不会开始谈论它听过的越南战争)
我计划:
答案 0 :(得分:32)
是的,马尔可夫链是具有概率状态转换的有限状态机。使用简单的一阶马尔可夫链生成随机文本:
如果你想从中获得一些半智能的东西,那么你最好的方法是在很多精心收集的文本上进行训练。 “批次”部分使其产生适当的句子(或合理的IRC说话),概率很高; “精心收集”部分意味着你可以控制它所谈论的内容。引入高阶马尔可夫链也有助于这两个领域,但需要更多存储来存储必要的统计数据。您还可以查看统计平滑等内容。
然而,让你的IRC机器人实际上对所说的内容做出响应需要比马尔科夫链更多批次。可以通过对所说的内容进行text categorization(又称主题定位),然后选择特定于域的马尔可夫链来生成文本来完成。 NaïveBayes是主题定位的流行模型。
The Practice of Programming中的Kernighan和Pike探讨了马尔可夫链算法的各种实现策略。 Jurafsky和Martin,Speech and Language Processing深入介绍了这些以及自然语言生成。
答案 1 :(得分:0)
你想寻找Ian Barber Text Generation(phpir.com)。不幸的是,该网站已关闭或离线。我有他的文本副本,我想发给你。
答案 2 :(得分:0)
在我看来,你正在尝试同时做多件事:
这些基本上是完全不同的任务。马尔可夫模型通常用于机器学习。虽然我在你的任务中没有多少学习。
larsmans回答显示了如何从基于单词的马尔可夫模型生成句子。您还可以训练权重以支持其他IRC用户使用的字对。但是,这不会生成与关键字相关的句子,因为构建/改进马尔可夫模型与“驱动”它不同。
您可以尝试使用隐藏的马尔可夫模型(HMM),其中可见输出是关键字,隐藏状态是从这些字对中产生的。然后,您可以动态地使用更适合特定关键字的句子。