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日

相关文章

  • Selenium元素的常用操作方法分析

    Selenium元素的常用操作方法分析 介绍 Selenium是一个功能强大的自动化测试工具,可以用于模拟用户在浏览器内的操作以及对浏览器进行自动化测试。Selenium既可以用于Web应用程序的功能测试,还可以用于Web应用程序的性能测试。 在Selenium中,一些基本的操作方法用于与网页的元素进行交互,如点击、输入、选择等。掌握这些操作方法对自动化测试…

    云计算 2023年5月18日
    00
  • 深入浅析Python数据分析的过程记录

    深入浅析Python数据分析的过程记录 1. 搜集数据 数据分析的第一步是搜集数据,数据可以来自各种来源,比如公共数据集、爬虫抓取、用户上传等。在搜集之前需要明确自己的目标,需要分析什么样的数据,才能有的放矢地进行搜集,避免浪费时间和精力。 示例1:使用爬虫抓取数据如果我们想要分析某个电商网站的商品信息和评论,可以使用Python的爬虫技术进行数据抓取。可以…

    云计算 2023年5月18日
    00
  • [文章摘录] 云计算:系统实例与研究现状 (软件学报, 2009)

    Time: 3 hours陈康(清华大学),郑纬民.云计算:系统实例与研究现状.软件学报,2009,20(5):1337-1348 新鲜出炉的软件学报关于云计算的综述.该文作者的单位是清华信息科学与技术国家实验室(筹).国家实验室可比国家重点实验室要NB多了, 从数量上来看, 目前已经建成的国家实验室才4个, 包括        北京正负电子对撞机国家实验室…

    云计算 2023年4月11日
    00
  • 解析Instagram网站的图片存储架构

    解析Instagram网站的图片存储架构 背景介绍 Instagram是一个为用户分享照片和短视频的社交媒体平台,拥有数亿的用户。每天,数以百万计的照片和视频被上传到该平台并被存储在该平台的服务器上。了解Instagram的图片存储架构是非常有趣的,因为它可以让我们更好地了解它的性能和可扩展性。 总体架构 Instagram的存储架构主要包括两部分:Web服…

    云计算 2023年5月18日
    00
  • 云计算openstack共享组件(1)——时间同步服务ntp

    地球分为东西十二个区域,共计 24 个时区 格林威治作为全球标准时间即 (GMT 时间 ),东时区以格林威治时区进行加,而西时区则为减。 地球的轨道并非正圆,在加上自转速度逐年递减,因此时间就会有误差在计算时间的时,最准确是使用“原子震荡周期”所计算的物理时钟。这种时钟被称为标准时间即— Coordinated Universal Time(UTC) UTC…

    云计算 2023年4月10日
    00
  • 详解.NET Core中的Worker Service

    下面是关于“.NET Core中的Worker Service”的完整攻略,包含两个示例说明。 简介 Worker Service是.NET Core中的一种轻量级后台服务,可以在Windows、Linux和macOS等操作系统上运行。Worker Service可以作为Windows服务、Linux守护进程或控制台应用程序运行。Worker Service…

    云计算 2023年5月16日
    00
  • ABP框架的基础配置及依赖注入讲解

    下面是关于“ABP框架的基础配置及依赖注入讲解”的完整攻略,包含两个示例说明。 简介 ABP框架是一个开源的ASP.NET Core应用程序框架,它提供了一系列的基础设施和最佳实践,帮助我们更快地开发高质量的Web应用程序。在本攻略中,我们将介绍ABP框架的基础配置及依赖注入讲解。 基础配置 ABP框架的基础配置包括以下几个方面: 配置文件: ABP框架使用…

    云计算 2023年5月16日
    00
  • DTCC大会归来,为何云计算厂商都在搞数据库?

    几乎每一年,我们都能从数据库大会参展企业中发现新的面孔,不仅专注数据库领域的创新企业越来越多,更有越来越多的云计算厂商开始重视数据库应用服务,并选择研发自己的数据库?这其中到底有何奥妙?作为八届数据库大会的全程亲历者,老鱼这里就跟大家扯一扯其中的缘由。 文 | 老鱼 第八届中国数据库技术大会(DTCC 2017)上周末在北京国际会议中心完美闭幕,也许还有很多…

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