信息熵计算及代码

实验目的:了解离散信源数学模型和信息熵
实验内容:以附件中英文文本文件中的内容为来源,构建26个英文字母(区分大小写)为信源符号的数学模型,要求输出字母的概率和该模型的信息熵。
要求:请使用自己熟悉的编程语言,完成信源建模,输出英文字母的概率和信源的信息熵。

使用python编写,最后输出相应柱状图,展示出字母的输出概率。

  • 等消息个数信源,消息概率分布差异大,信源熵小,不确定程度小;消息等概分布,信源熵大,不确定程度大。
  • 消息等概分布,消息个数多,信源熵大,不确定程度大。

信源熵有三种物理含义:

  • 信源熵H(X)表示信源输出后,离散消息所提供的平均信息量。
  • 信源熵H(X)表示信源输出前,信源的平均不确定度。
  • 信源熵H(X)反映了变量X的随机性。
     

信息熵计算过程为:

for i in dict3:if dict3[i] != 0:sum1 += dict3[i] * (math.log(1 / (dict3[i]), 2))

全部代码如下所示:

import string
import matplotlib.pyplot as plt
import mathdef draw_from_dict(dicdata, RANGE, heng=0):# dicdata:字典的数据。# RANGE:截取显示的字典的长度。# heng=0,代表条状图的柱子是竖直向上的。heng=1,代表柱子是横向的。考虑到文字是从左到右的,让柱子横向排列更容易观察坐标轴。by_value = sorted(dicdata.items(), key=lambda item: item[0], reverse=False)x = []y = []plt.xlabel("Sequential letters")plt.ylabel("Probability of occurrence of each letter")plt.title("Character probability statistics")for xx, yy in zip(dicdata.keys(), dicdata.values()):# plt.text(xx, yy + 0.1, str(yy), ha='center')if yy != 0:plt.text(xx, yy, '%.3f' % yy, ha='center', va='bottom', fontsize=5)for d in by_value:x.append(d[0])y.append(d[1])if heng == 0:plt.bar(x[0:RANGE], y[0:RANGE])plt.show()returnelif heng == 1:plt.barh(x[0:RANGE], y[0:RANGE])plt.show()returnelse:return "heng的值仅为0或1!"def countLetters(string):s_count = 0for i in s:if i.isalpha():s_count += 1print('字母的个数有:', s_count, '个')return s_counts = 'Love is a set of emotions and behaviors characterized by intimacy, passion, and commitment. It involves care, ' \'closeness, protectiveness, attraction, affection, and trust. Love can vary in intensity and can change over ' \'time. It is associated with a range of positive emotions, including happiness, excitement, life satisfaction, ' \'and euphoria, but it can also result in negative emotions such as jealousy and stress. '
letterSum = countLetters(s)
print(letterSum)
asciiAll = string.ascii_lowercase + string.ascii_uppercase
dict3 = {key: 0.0 for key in asciiAll}
for x in s:if x.isalpha():dict3[x] = round(s.count(x) / letterSum, 6)for i in sorted(dict3):print((i, dict3[i]), end="\n")
sum1 = 0
for i in dict3:if dict3[i] != 0:sum1 += dict3[i] * (math.log(1 / (dict3[i]), 2))print('计算出的熵是', round(sum1, 4))draw_from_dict(dict3, 52, 0)

通过matplotlib包输出可视化图形,输出的柱状图如下

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33413.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息熵的计算与分析

信息熵的计算与分析 一、[实验目的]二、[实验环境]三、[实验原理]四、[实验内容]五、[实验过程]1、二元信源熵函数曲线2、求解离散单符号信源熵3、计算图像一维图像熵 一、[实验目的] 1、掌握离散信源熵的原理和计算方法。 2、熟悉matlab 软件的基本操作,练习使 用…

【chatgpt】解除PDF的password

无论是Adobe Acrobat Pro还是Pdf xchange editor都是一样的,更改安全性就可以了。 把该加密Pdf导入软件,然后点文件,属性,安全性,改成无安全后确定就行了。 pdf是可携带文件格式,亦称“PDF(portable docum…

免费好用的聊天机器人上线,原Openai前员工们创立的Claude

1.下载slack,注册登录。 2.在claude网站上同意Al与你的slack账号相联接。 3.在slack里就可以直接与AI对话了。 4.网页端Mac、苹果手机、安卓都可以,win没试过,应该也可以。 具体的细致操作网上有,也可以留言讨论。 Anthropic是一家总部位…

国内又款智能AI聊天软件-科大讯飞星火模型

介绍 介绍 中国科大讯飞星火GPT聊天软件是一款基于自然语言处理技术的人工智能聊天机器人。它利用了大量的文本数据,通过深度学习模型进行训练,从而实现与用户的智能对话。讯飞星火GPT聊天软件能够理解用户输入的问题或指令,并根据预设的回答…

启英泰伦推出多种智能语音识别照明解决方案,改装简单,成本低

随着人工智能技术的普及,智能家居设备开始走进千家万户。而智能照明系统成为其不可或缺的一部分,占据着举足轻重的地位。 但是照明系统和其他家居设备不一样的是,开发商交房时已布好电路,或用户直接购买精装房,导致改…

让 ChatGPT 更智能,Tauri 带你实现 AI 对话应用

背景 Tauri 和 Electron 都是用于开发跨平台桌面应用程序的工具,因为最近使用ChatGPT在国内环境的确不够友好,又没有一个比较轻量简洁的工具可用,如是想自己造个轻量点的轮子,力争做到代码轻量,界面美观简洁&#xff…

[AI达人特训营第三期] 使用Lora技术用Dreambooth训练国潮风格模型

★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>> DreamBooth 介绍 DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation是一种新的文本生成图像(text2image)的“个性化”(可适应用…

【社群运营】AI智能对话,打造自动化社群

人工智能大背景下,各行各业都在往智能化发展,无论是办公产品,还是生产器械都选择接入了更加智能的AI来提高生产效率。那么,在日常的社群管理工作中,我们又能否跟上这一波热度,让社群自动化高效运营&#xf…

夏杰语音麦克精灵:智能语音交互升级新体验

对于很多人来说,通过语音声控电视、空调等家电已经不再陌生。 “你好小智,我想听音乐”、“你好小智,播放深圳卫视”……近几年,“小智”逐渐被人认识。是的,它是夏杰语音旗下的一款智能精灵——麦克精灵。它不仅可以…

跟着我学 AI丨ChatGPT 详解

随着人工智能的发展,聊天机器人成为了一个备受关注的领域。而ChatGPT作为其中的佼佼者,其功能和技术水平也越来越受到人们的关注。那么,什么是ChatGPT?它又有哪些优点和限制呢? ChatGPT是一款基于自然语言处理技术开发…

小红书内容种草,曝光渠道分析总结

这是一个内容为王的时代,也是一个内容爆炸的时代。想要在以分享特色的小红书平台,实现内容种草,迅速出圈。今天来马文化传媒就从实操的角度,为大家带来小红书内容种草,曝光渠道分析总结的各种干货! 一、什…

小红书达人账号数据分析

文章目录 一、项目背景二、数据预处理1、查看数据2、数据清洗2.1对达人列表进行清洗2.2对涨分榜进行清洗2.3对MCN列表进行清洗2.4对定性变量(分类变量)进行处理 3、表格处理3.1合并达人列表和涨粉榜 三、分析与数据可视化1、对达人列表进行相关性分析2、…

小红书账号分析丨千瓜指数高的小红书账号是否真的优质?

关键词:千瓜指数、小红书数据、小红书账号分析 达人账号质量是否优质从多个维度衡量,千瓜指数能够客观综合评价达人账号的质量,给到小红书达人一定的参考价值。 那么千瓜指数能够帮助达人什么? 品牌筛选达人会选择更优质的&#x…

GPT逆向:高效解读小红书文案生成器的内部逻辑

文章目录 前言一、什么是小红书文案生成器二、具体步骤总结 前言 关注我的很多同学都会写爬虫。但如果想把爬虫写得好,那一定要掌握一些逆向技术,对网页的JavaScript和安卓App进行逆向,从而突破签名或者绕过反爬虫限制。 最近半年&#xff…

小红书爆款笔记运营攻略

小红书爆款笔记运营攻略 2020-04-14 挖塘人 来源 审核中 修改 现在可以看到很多人手机里有款叫小红书的软件,它致力于打造聚焦生活方式的内容社区,并且凭借“万物皆可种草”红极一时,吸引着一大批年轻用户。 根据官方数据,截…

小红书近期发展动态---预言专家

总结为5件大事情: 事件1:为期三个月打击侵权行动----6月持续到9月 双月计划----清扫爬虫 事件2:APP接口风控提高-----持续 事件3:web端进行摸排升级改版-----7月 事件4:APP增加unidbg|unicorn检测对抗 ----最近一个月内…

教培行业如何在小红书推广 教育机构红书推广上海氖天

品牌打造在教育机构营销中占有重要地位。提升小红书中品牌知名度,需尽量彰显教育机构独特魅力与卓越实力。小红书给教育行业带来新的推广途径,可以把品牌打造的更形象、更简洁,另外用户粘性大、转化率高。接下来,这篇文章就来具体…

小红书4大主要人群的消费特征,你占了几个?

数据显示90%的小红书用户在购买前有过搜索小红书的行为。社交媒体时代,人货场被重新定义,更加多元的消费需求涌现,通过洞察“人”,我们找到了小红书4大主要人群的消费特征,供大家参考。 TA洞察 重塑“人货场” 传统…

小红书话题笔记是什么意思?小红书话题的形式有哪些?

相信很多小红书用户总会看到别人发布小红书话题笔记,或者自己也经常参与其中,但究竟小红书话题笔记是什么意思?今天让我们为大家分享一下。 一.小红书话题笔记是什么意思 小红书话题笔记是平台开发的一种内容创作功能&#xff0c…

小红书账号分析丨小红书kol速成干货分享

导语:很多萌新小白在刚运营小红书时动力满满,坚持一段时间后,开始愁选题愁数据,最后不了了之。普通人和专业博主,差距真的很大吗?NO!只要持续不断地努力输出专业运营知识的学习,从素…