Python数据分析之PMI数据图形展示

非常感谢你对Python数据分析之PMI数据图形展示的关注。下面是完整攻略:

Python数据分析之PMI数据图形展示

1. 介绍

PMI(Pointwise Mutual Information)指的是一种用来衡量两个事件的相关性的指标,它广泛应用于NLP(自然语言处理)和文本挖掘领域。PMI可用于计算两个单词之间的相似度,以及衡量一个单词在某个上下文中的重要性等。本篇攻略将介绍如何通过Python对PMI数据进行图形展示。

2. 准备工作

在进行图形展示前,需要先进行一些准备工作。具体包括:

2.1 安装Python包

需要安装以下Python包:

  • jieba
  • numpy
  • pandas
  • matplotlib

可以通过以下命令安装这些包:

pip install jieba numpy pandas matplotlib

2.2 准备文本数据

需要准备一份文本数据,可以使用示例数据,在此示例中,我们将使用《红楼梦》全文作为示例数据。

2.3 分词

使用_jieba_对文本进行分词,得到文本的分词结果,可以参考以下代码示例:

import jieba

# 读取文本数据
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 对文本进行分词
seg_list = jieba.lcut(text)

2.4 构建词频统计表

对分词结果进行词频统计,可以使用_Pandas_包中的_value_counts()_方法,代码示例如下:

import pandas as pd

# 将分词结果转换为数据框
word_counts = pd.DataFrame(seg_list, columns=['word'])

# 构建词频统计表
word_count_table = word_counts['word'].value_counts()

2.5 构建PMI相关数据

构建PMI相关的数据,可以参考以下代码示例:

import numpy as np

# 计算每个单词的PMI
word_pmi = pd.DataFrame(columns=['word_1', 'word_2', 'pmi'])

for i in range(len(word_counts)):
    for j in range(i+1,len(word_counts)):
        w1 = word_counts['word'][i]
        w2 = word_counts['word'][j]
        if w1 != w2:
            count_w1 = word_counts['word'].value_counts()[w1]
            count_w2 = word_counts['word'].value_counts()[w2]
            count_w1_w2 = np.sum([(seg_list[k] == w1 and seg_list[k+1] == w2) or (seg_list[k] == w2 and seg_list[k+1] == w1) for k in range(len(seg_list)-1)])
            pmi = np.log2(count_w1_w2) + np.log2(len(seg_list)) - np.log2(count_w1) - np.log2(count_w2)
            word_pmi = word_pmi.append({'word_1':w1, 'word_2':w2, 'pmi':pmi}, ignore_index=True)

3. 图形展示

使用_matplotlib_包进行图形展示,可以使用以下代码示例进行绘图:

3.1 词云展示

使用_WordCloud_包对文本分词结果进行词云展示,代码示例如下:

from wordcloud import WordCloud

# 将分词结果转换为字符串
seg_str = ' '.join(seg_list)

# 构建词云对象
wordcloud = WordCloud(width=800, height=600, background_color='white').generate(seg_str)

# 在matplotlib中展示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

3.2 PMI矩阵展示

使用_matplotlib_中的imshow()函数对PMI相关数据进行热力图展示,代码示例如下:

# 构建PMI相关数据矩阵
pmi_matrix = np.zeros((len(word_counts),len(word_counts)))

for i in range(len(word_counts)):
    for j in range(i+1,len(word_counts)):
        w1 = word_counts['word'][i]
        w2 = word_counts['word'][j]
        if w1 != w2:
            pmi = word_pmi.loc[(word_pmi['word_1'] == w1) & (word_pmi['word_2'] == w2)]['pmi']
            if len(pmi) > 0:
                pmi_matrix[i][j] = pmi
                pmi_matrix[j][i] = pmi

# 绘制PMI矩阵热力图
plt.imshow(pmi_matrix, cmap='RdPu')
plt.colorbar()
plt.show()

以上就是Python数据分析之PMI数据图形展示的完整攻略及两个示例说明。希望能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数据分析之PMI数据图形展示 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Apache中配置支持CORS(跨域资源共享)实例

    下面是关于“Apache中配置支持CORS(跨域资源共享)实例”的完整攻略,包含两个示例说明。 简介 CORS(跨域资源共享)是一种Web浏览器的安全机制,它允许Web应用程序从不同的域名访问其资源。在Apache中,我们可以通过配置来支持CORS,以便我们的Web应用程序可以跨域访问资源。在本攻略中,我们将介绍如何在Apache中配置支持CORS,包括设置…

    云计算 2023年5月16日
    00
  • 使用 Istio CNI 支持强安全 TKE Stack 集群的服务网格流量捕获

    作者 陈计节,企业应用云原生架构师,在腾讯企业 IT 负责云原生应用治理产品的设计与研发工作,主要研究利用容器集群和服务网格等云原生实践模式降低微服务开发与治理门槛并提升运营效率。 摘要 给需要快速解决问题的集群管理员:在 TKE Stack 中正确安装 Istio CNI 有两种方式:如果你的 TKE Stack 集群所使用 Galaxy 版本可以支持 c…

    云计算 2023年4月11日
    00
  • 揭秘《虚拟化与云计算》

      本文选自《虚拟化与云计算》一书作者序       当我们写作者序时,本书的撰写已接近尾声,整个写作历程耐人回味。本书的作者大多是长期从事分布式计算和数据中心管理的研究人员,随着对虚拟化技术认识的逐渐加深,我们更加相信虚拟化技术将会在不远的将来给数据中心管理带来深刻的变革。怀着这样一份对未来的憧憬,我们于2005年在 IBM中国研究院正式成立了虚拟化技术研…

    云计算 2023年4月12日
    00
  • vue使用stompjs实现mqtt消息推送通知

    讲解“vue使用stompjs实现mqtt消息推送通知”的攻略,可以分为以下几个步骤: 引入stompjs和mqtt.js包 在Vue项目中的命令行界面输入以下命令来安装: npm install stompjs mqtt –save 创建Vue组件 在Vue项目中的src目录下创建一个components文件夹,并在该文件夹下创建一个Message.vu…

    云计算 2023年5月17日
    00
  • Python实现数据库编程方法详解

    Python实现数据库编程方法详解 在Python中,有很多数据库编程模块可以使用。本文将主要介绍Python中的三种数据库编程模块:sqlite3、MySQLdb和pymysql。 1. sqlite3模块 sqlite3是Python内置的数据库编程模块,它可以轻松地与SQLite数据库进行交互。 使用sqlite3模块,需要导入模块并创建数据库连接。下…

    云计算 2023年5月18日
    00
  • MXC交易所正规吗?MXC抹茶交易所安全吗?

    MXC交易所是一个数字资产交易平台,成立于2018年,总部位于新加坡。该交易所提供了多种数字资产的交易服务,包括比特币、以太坊、莱特币等。在选择数字资产交易平台时,安全性是一个非常重要的考虑因素。下面将对MXC交易所的正规性和安全性进行详细介绍。 1. MXC交易所的正规性 MXC交易所是一家合法注册的数字资产交易平台,拥有新加坡的法律许可证。此外,MXC交…

    云计算 2023年5月16日
    00
  • python数据库操作常用功能使用详解(创建表/插入数据/获取数据)

    Python数据库操作是比较常见的需求,因此学习它的使用方法非常有必要。 创建表 创建表是关系数据库设计中的一个非常重要的步骤,下面是一个基本的创建表的SQL语句: CREATE TABLE tablename ( column1 datatype, column2 datatype, column3 datatype, ….. ); 其中,表名为tab…

    云计算 2023年5月18日
    00
  • “创新雷神号”卫星成功发射,华为云分布式云原生“天地一体”首次组网成功

    2022年2月27日,我国在文昌发射场使用长征八号运载火箭,以“1箭22星”方式,成功将“创新雷神号”卫星等共22颗卫星发射升空。卫星主要用于提供商业遥感信息、海洋环境监测、森林防火减灾等服务。其中“创新雷神号” 作为“天算星座”计划的第二颗先导试验星,主要基于由北京邮电大学、华为云、北京大学联合研制的星地融合分布式网络验证平台开展试验验证。 “天算星座”计…

    云计算 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部