首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >计算表示马尔可夫链规则的字典中值的总频率和相对频率

计算表示马尔可夫链规则的字典中值的总频率和相对频率
EN

Stack Overflow用户
提问于 2019-04-16 00:37:18
回答 2查看 187关注 0票数 0

我制作了一个函数make_rule(text, scope=1),它简单地遍历一个字符串并生成一个字典,作为马尔可夫文本生成器的规则(其作用域是链接字符的数量,而不是单词)。

代码语言:javascript
复制
>>> rule = make_rule("abbcad", 1)
>>> rule
{'a': ['b', 'd'], 'b': ['b', 'c'], 'c': ['a']}

我的任务是计算这个系统的熵。为了做到这一点,我想我需要知道:

  1. 值在字典中出现的总频率,即其总频率。
  2. 在字典中给定关键字的情况下,值出现的频率,即其相对频率。

对于字典中的每个值,有没有一种快速获取这两个数字的方法?

对于上面的示例,我需要以下输出:

代码语言:javascript
复制
'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'总数很容易推断,所以可能只需要为字典中出现的每个唯一项输出一个三元组列表:

代码语言:javascript
复制
[[('a', 'a', 0), ('a', 'b', 0), ('a', 'c', 1)], [('b', 'a', 1), ('b', 'b', 1), ('b', 'c', 0)], ...]
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55693682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档