信息熵:信息熵越大,信息越多,与以前的消息相比,措辞越独特。

参考:
信息熵求解部分:https://www.jianshu.com/p/468e2af86d59

导入包

import numpy as np
import pandas as pd
import nltk
import re
import string
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.stem.porter import PorterStemmer

计算信息熵的方法

def calc_ent(x):"""calculate shanno ent of x"""x_value_list = set([x[i] for i in range(x.shape[0])])ent = 0.0for x_value in x_value_list:p = float(x[x == x_value].shape[0]) / x.shape[0]logp = np.log2(p)ent -= p * logpreturn entprint(ent)

文本预处理

urls=pd.read_csv(r"E:\IdeasTest.csv",encoding="utf-8")
m=len(urls)
print(m)
texts=[]def removePunctuation(text):text = re.sub(r'[{}]+'.format(punctuation),'',text)return text.strip().lower()#create English stop words list
en_stop = stopwords.words('english')
#英文词干提取
p_stemmer = PorterStemmer()for j in range(0,m):print(urls['Ideas'][j])csvfile=urls['Ideas'][j]punctuation = '.!,;:?"\'"&/()+*=~@#$%^_{}[]|`°...、——【】‘’“”?《》,。·!……:;-<>'lower = csvfile.lower()#str.maketrans创建转化表remove = str.maketrans('','',string.punctuation) without_punctuation = lower.translate(remove)without_punctuation1=removePunctuation(without_punctuation)for c in string.digits: #去数字without_punctuation1 = without_punctuation1.replace(c, '')tokens=word_tokenize(without_punctuation1)length1=len(tokens)x1=0while x1 < length1:if tokens[x1] in ['...','°','—','_','?','。',',','》','《','”','“',';',':','、','【','】','=','-','——','……','!','·','~','‘','’','/','^','-','+','<','>','{','}','*','//',',','.',':',';','?','(',')','[',']','&','!','$','%','*','@','|','`','#']:del tokens[x1]x1 -= 1length1 -= 1x1 += 1print(tokens)stopped_tokens = [w for w in tokens if not w in en_stop]print(stopped_tokens)# stem token词干化stemmed_tokens = [p_stemmer.stem(i) for i in stopped_tokens]print(stemmed_tokens)# add tokens to listtexts.append(stemmed_tokens)
print(texts)

文档信息熵计算

content=[]
for x in range(0,m):#将生成的text由list转化为dtype类型textnp = np.array(texts[x])entropy=calc_ent(textnp) content.append([entropy])dd=pd.DataFrame(content,columns=['entropy'])dd.to_csv(r"E:\entropy.csv")

python信息熵的计算相关推荐

  1. Python深度学习:机器学习理论知识,包含信息熵的计算(读书笔记)

    今天这一篇,我们正式接触深度学习的理论基础-机器学习 第二篇 一.机器学习分类 二.机器学习的基本算法 三.算法的理论基础 1.机器学习的基础理论-----函数逼近 2.回归算法 3.其他算法---- ...

  2. 深度学习与自然语言处理实验——中文信息熵的计算

    深度学习与自然语言处理实验--中文信息熵的计算 问题描述 实验原理 信息熵 语言模型的参数估计 实验过程 实验数据的预处理 一元模型 二元模型 三元模型 实验结果 语料信息统计 不同模型下的实验结果 ...

  3. python矩阵计算_python计算矩阵

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 鉴于最近复习线性代数计算量较大,且1800答案常常忽略一些逆阵.行列式的计算答案 ...

  4. 使用Python、OpenCV计算轮廓的中心

    1. 使用Python.OpenCV计算轮廓的中心并标记 2. 使用Python.OpenCV检测轮廓的形状并标记 3. 使用颜色通道统计信息来标记形状的实际颜色并标记 本博客的目标:(1)检测图像中 ...

  5. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

  6. python使用pandas计算dataframe中每个分组的分位数极差、分组数据的分位数极差(range)、使用groupby函数和agg函数计算分组的两个分位数

    python使用pandas计算dataframe中每个分组的分位数极差.分组数据的分位数极差(range).使用groupby函数和agg函数计算分组的两个分位数 目录

  7. python使用pandas计算dataframe中每个分组的极差、分组数据的极差(range)、使用groupby函数和agg函数计算分组的最大值和最小值

    python使用pandas计算dataframe中每个分组的极差.分组数据的极差(range).使用groupby函数和agg函数计算分组的最大值和最小值 目录

  8. python题目关于企业利润_【每日一练】巧用python实现利润计算

    原标题:[每日一练]巧用python实现利润计算 相信很多小伙伴都遇到过阶梯利率的问题,比如说银行的利息计算,不同阶段的本金有不同的利率:税务的税费计算,不同的营收有不同的缴纳率:个人的提成,不同的销 ...

  9. python输入数字翻译成星期几-Python练习笔记——计算输入日期为改年的第几天、星期几...

    # 输入年月日,如:1995年12月10日,计算是该年的第几天? # 同时计算出当天是星期几? print("请依据提示依次输入您想查询的年 月 日") # 第一段代码块(年月日输 ...

最新文章

  1. angularjs源码笔记(3)--injector
  2. 几种典型的软件自动化测试框架
  3. SendMessage、PostMessage原理
  4. php弱类型变量是什么,php弱类型变量如何实现?
  5. 多线程生产者和消费者
  6. 老是担心数学学不好?是因为你的数学老师不是爱因斯坦!
  7. java 多表格处理工具,表单工具十一大标准
  8. CentOS7 编译安装golang和rpm安装golang
  9. JAVA多线程和并发基础面试题
  10. But Wang Xing, who is concerned about long-term
  11. mysql修改默认的存储引擎
  12. Binaural Microphone
  13. Windows 程序设计应用开发(上部)
  14. java抓包WIFI包_教你手机应用如何通过wifi上网抓包
  15. CF949D Curfew
  16. 计算机视觉 图像处理_通过图像处理找到计算机视觉通道
  17. 神经网络学习4【误差传递与权重更新】
  18. 武汉创业者声讨网易:占用我们LOGO 还大张旗鼓做起销售
  19. win7如何进入计算机配置,教您win7怎么进入设置bios
  20. android系统重力感应传感器 方向控制与方向切换,android sensor orientation 方向传感器 重力感应...

热门文章

  1. 智能家居的目前阶段技术难点
  2. AmazeUI实战(HTML5,Jquery,React,Touch)-姜威-专题视频课程
  3. pdf怎么转换成word?三种方法教会你
  4. 惠普6520S笔记本电脑进水故障维修实例
  5. 【VC++游戏开发#二】2D篇 —— 平滑的幻灯片放映效果
  6. 计算机毕业设计(附源码)python智慧校园系统
  7. 什么是虚拟内存?与实际物理内存的关系?
  8. python中image什么意思_浅谈python图片处理Image和skimage的区别
  9. 十几年的学海生涯,我还不会提问_提问的智慧(转)
  10. 持续绩效管理最佳闭环