宗成庆《自然语言理解》第二章作业

2-1.任意摘录一段文字,统计这段文字中所有字符的相对频率。假设这些相对频率就是这些字符的频率,请计算其分布的熵:

摘录的话:AAABBBBAABBCBDBDFDFFFDCDCDE

total:27

A:5 B:8 C:3 D:6 E:1 F:4 

现在可得到字符的概率为:5/27,8/27,1/9,2/9,1/27,4/27

熵的计算公式为H(X) = -\sum_{x\epsilon X}^{}.p(x)log_{2}p(x)  注意0log2(0) = 0

 

H(X) = 2.389172576943942

import numpy as  np
def ComputEntropy(probX):
    sum = 0.0
    for i in probX:
        sum += i*np.log2(i)

    return abs(sum)


def main():
    probX = [5/27,8/27,1/9,2/9,1/27,4/27]
    print(ComputEntropy(probX))
    pass

if __name__ == '__main__':
    main()

2-2.任意取另外一段文字,按上述同样的方法计算字符分布概率,然后计算两段文字中字符分布的KL距离。

摘录的话:AAAACCCCDDDDEEEBDDDFFF

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值