我正在尝试从给定的一段文本构建一个 n-gram 马尔可夫模型,然后访问它的转换表,以便我可以计算每个长度为 n 的单词序列(克)的条件熵。例如,在一个 2-gram 模型中,在阅读了一个文本语料库之后
“狗追猫 狗追猫 狗追猫 狗追猫 狗追猫 狗追猫 狗追猫 狗追猫 狗追猫 狗追人”
并建立一个内部转换表,状态“狗追”可能以0.9的概率转换为“追猫”的状态,以0.1的概率转换为“追人”的状态。如果我知道可能的转换,我可以计算条件熵。
有没有什么好的python库可以做到这一点?我检查了 NLTK、SRILM 和其他,但没有找到太多。