我制作了一个函数make_rule(text, scope=1)
,它简单地遍历一个字符串并生成一个字典,作为马尔可夫文本生成器的规则(其作用域是链接字符的数量,而不是单词)。
>>> rule = make_rule("abbcad", 1)
>>> rule
{'a': ['b', 'd'], 'b': ['b', 'c'], 'c': ['a']}
我的任务是计算这个系统的熵。为了做到这一点,我想我需要知道:
对于字典中的每个值,有没有一种快速获取这两个数字的方法?
对于上面的示例,我需要以下输出:
'a' total: 1, 'a'|'a': 0, 'a'|'b': 0, 'a'|'c': 1
'b' total: 2, 'b'|'a': 1, 'b'|'b': 1, 'b'|'c': 0
'c' total: 1, 'c'|'a': 0, 'c'|'b': 1, 'c'|'c': 0
'd' total: 1, 'd'|'a': 1, 'a'|'b': 1, 'a'|'c': 1
我猜'a'
总数很容易推断,所以可能只需要为字典中出现的每个唯一项输出一个三元组列表:
[[('a', 'a', 0), ('a', 'b', 0), ('a', 'c', 1)], [('b', 'a', 1), ('b', 'b', 1), ('b', 'c', 0)], ...]
https://stackoverflow.com/questions/55693682
复制相似问题