Python n-gram马尔可夫链转移表

Python n-gram马尔可夫链转移表,python,nlp,nltk,entropy,markov-models,Python,Nlp,Nltk,Entropy,Markov Models,我试图从给定的文本片段构建一个n-gram马尔可夫模型,然后访问它的转换表,这样我就可以计算长度为n(gram)的每个单词序列的条件熵。 例如,在2-gram模型中,在阅读文本语料库后 狗追猫狗追猫狗追猫 狗追猫狗追猫狗追猫 狗追猫狗追猫狗追猫 狗追人” 并且建立一个内部转换表,状态“狗追逐”可能以0.9的概率转换为状态“追逐猫”,并以0.1的概率转换为状态“追逐人”。如果我知道可能的跃迁,我可以计算条件熵 有什么好的python库可以做这件事吗?我已经检查了NLTK、SRILM和其他内容,但没

我试图从给定的文本片段构建一个n-gram马尔可夫模型,然后访问它的转换表,这样我就可以计算长度为n(gram)的每个单词序列的条件熵。 例如,在2-gram模型中,在阅读文本语料库后

狗追猫狗追猫狗追猫 狗追猫狗追猫狗追猫 狗追猫狗追猫狗追猫 狗追人”

并且建立一个内部转换表,状态“狗追逐”可能以0.9的概率转换为状态“追逐猫”,并以0.1的概率转换为状态“追逐人”。如果我知道可能的跃迁,我可以计算条件熵


有什么好的python库可以做这件事吗?我已经检查了NLTK、SRILM和其他内容,但没有发现太多内容。

这篇文章创建仅4年多一点,我发现自己也有同样的问题。虽然可以手动执行此操作,但我已经创建了,它提供了更多的功能

您不仅可以访问转换表,还可以对任何N-gram组合执行此操作


随着时间的推移,我将继续构建这个工具包,请随时为我提供关于未来功能的建议

我认为手动操作应该不会太难。。。也许迭代所有对并做一个简单的计数矩阵,而不是规范化每一行以得到一个转移矩阵。