我尝试了google,却发现一点我听不懂的东西。

我对Markov chains有一个非常基本的了解:这是一个仅依赖于先前输入来更改状态的数学模型。所以,某种带有加权随机机会而不是不同标准的FSM?

我听说您可以使用它们来生成半智能的废话,将现有单词的句子用作种类的字典。

我想不出搜寻字词就能找到答案,所以有人可以连结我或解释我如何制作出能提供半智能答案的东西吗? (如果您询问有关派的问题,它将不会继续讲述它所听说的越南 war )

我计划:

  • 让此漫游器在IRC通道中闲置一段时间
  • 从字符串中删除所有用户名,并存储为句子或任何
  • 随着时间的流逝,请以此为基础。
  • 最佳答案

    是的,马尔可夫链是具有概率状态转移的有限状态机。要使用简单的一阶马尔可夫链生成随机文本:

  • 从语料库(文本集合)收集bigram(相邻单词对)统计信息。
  • 使每个单词具有一个状态的马尔可夫链。为文本结尾保留特殊状态。
  • 从状态/单词x跳到y的概率是紧随x的单词y的概率,它是根据训练语料库中的相对二元组频率估计的。
  • 以随机词x开头(可能由该词作为语料库中句子的第一个词出现的频率决定)。然后考虑到跟随x的y的概率(状态转移概率),选择一个状态/词y随机跳转。重复直到您到达文本结尾。

  • 如果您想从中得到一些半智能的东西,那么最好的选择就是将其训练在大量精心收集的文本上。 “很多”部分使其很有可能产生适当的句子(或合理的IRC说话); “精心收集”部分意味着您可以控制所谈论的内容。引入高阶马尔可夫链在这两个方面也有帮助,但是需要更多的存储空间来存储必要的统计信息。您可能还会研究统计平滑等问题。

    但是,让您的IRC机器人真正响应所说的内容所花费的时间远远超过Markov链。可以通过对所说的内容执行text categorization(又名主题发现),然后选择特定 Realm 的马尔可夫链来生成文本来完成。朴素贝叶斯(NaïveBayes)是用于主题发现的流行模型。

    The Practice of Programming中的Kernighan和Pike探索了马尔可夫链算法的各种实现策略。 Jurafsky和Martin Speech and Language Processing对这些以及自然语言的生成进行了深入的介绍。

    10-02 04:05