栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

简单文本处理+词云图制作学习记录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单文本处理+词云图制作学习记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、数据概览

二、文本处理

1、引入库

2、读入数据

3、处理数据

三、词云图绘制


前言

在上一章节进行简单爬虫学习后,继续拓展爬虫能力,并尝试抓取了一些文本数据。因此,本章节对这些文本数据进行简单分析、制作词云图。

词云:通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。


一、数据概览

本文的数据处理基础是一份文件名为 danmus_data 的csv文件,共有1922行文本数据。简单观察这些数据,可以发现其中有长、短句,包含各种符号、空格,因此后续处理需要考虑这些情况。

二、文本处理

安装 wordcloud 、 jieba 包

1、引入库
import pandas as pd
import csv # 打开csv文件
import jieba # 中文分词
import wordcloud # 词云图绘制
from PIL import Image # 用于打开词云背景图片
import numpy as np # 用于将图片转化为数组

2、读入数据

以csv格式打开文件,并使用其数据创建一个列表。

with open('danmus_data.csv','r',encoding='utf-8-sig') as f:
    danmus_list=list(csv.reader(f))
# print(type(danmus_list))

3、处理数据

首先,文本中存在空格,需要对其进行清除。

danmus_clean1=[str(danmus_list).replace(' ','')]
# print(danmus_clean1)

其次,利用jieba对文本进行分词。

此处需要拓展jieba库的相关知识,来源:jieba分词的最详细解读_qq_45288176的博客-CSDN博客_jieba库为什么叫结巴

danmus_seg=''.join(danmus_clean1) # 将文本数据转换为字符串格式
words=list(jieba.lcut(danmus_seg)) # 利用jieba库进行分词
# print(type(words),words)

分词结果展示:其中有不少标点符号

再次,去掉分词结果中的单字

danmus_clean2 = [word for word in words if len(word)>1] # 保留长度>1的变量
# print(danmus_clean2)

最后,导入停用词库,对文本中的停用词进行过滤。

此处需要拓展停用词的相关知识,停用词:停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词),停用词主要包括英文字符、数字、数学字符、标点符号及使用频率特高的单汉字等。来源:百度百科

由于停用词过滤输出结果为字符串,还需要将字符串转化为列表的数据格式,便于下一步进行词语图绘制。

停用词

with open('stopwords.txt','r',encoding='utf-8') as sw:
    stopwords_list=list(csv.reader(sw)) # 打开停用词表并转换为列表格式
outstr='' # 设置空字符串,用于储存停用词表过滤后的分词
for word in danmus_clean2: # 遍历分词后列表中的每一个单词
    if word not in stopwords_list: # 如果单词不在停用词表中
        if word != 't': # 如果单词不为制表符
            outstr += word # 将该单词加入字符串中
            outstr += ' ' # 将结果以空格隔开
danmus_clean3=outstr.split() # 将结果转换为list格式
# print(type(danmus_clean3),danmus_clean3)

三、词云图绘制
image = numpy.array(Image.open('background.png')) # 打开图片文件并转换为数字格式,图片为文件需要存储在工作目录中
wordCloud = wordcloud.WordCloud(
        width = 1600,  #词云的高度
        height = 1200, #词云的宽度
        font_path = "HGBTH_CNKI.TTF", # 字体路径  在C:WindowsFonts目录下找一个中文样式的字体复制到工作目录
        background_color = "white", # 背景颜色 
        mask = image  # 图片的轮廓 #可选属性,不选择默认是矩形词云
    ).generate(" ".join(danmus_clean3))
wordCloud.to_file("词云图.png")
print('词云图已生成')

词语图背景选用了策导的照片(抠图后)

最后呈现的词云图效果~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/829293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号