python处理数据集并制作词云图
python处理数据集并制作词云图
- 处理数据
- 使用自定义词典
- 去掉停用词
- 词频统计
- 绘制词云图+美化
1.处理数据
这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例。
将csv格式的数据文件转换为txt格式,具体步骤格式转换。
以下代码只是提示一下raw的具体内涵,完整代码最后附上。
raw = pd.read_csv("D:/download/文本挖掘/newsdata/cars_source.txt", names=['txt'], sep='aaa', encoding="GBK")print(len(raw)) # 查看整个cars_source.txt文档共有几行
2.使用自定义词典
由于数据集内没有给定的词典,我就自己写了一个dictwords.txt(没有涵盖所有的特定短语),将一些特定的词汇比如“道路运输”写入词典内,在分词后,“道路运输”将不会被分成“道路/运输”。
def dict_words(raw):dict = 'D:/download/文本挖掘/newsdata/dictwords.txt' #自定义词典的路径jieba.load_userdict(dict) # 增加词典(自己写的)for i in range(len(raw)): # 分词时不是对整个文档进行操作,而是一行一行地分词,所以需要遍历每一行进行分词print('/'.join(jieba.cut(raw.txt[i]))) # 用“/”作为词与词的分隔符
3.去掉停用词
def dele_words(raw):ana.set_stop_words('D:/download/文本挖掘/newsdata/stopwords.txt') # 添加停用词文档words_list = [] # 定义一个空列表for i in range(len(raw)):#print(ana.extract_tags(raw.txt[i]))lists = ana.extract_tags(raw.txt[i]) #print(lists)words_list.extend(lists) # 将每一行的分词结果加入一个大列表中return words_list
4.词频统计
def cal_words(words_list):df = pd.DataFrame(words_list, columns=['word']) # 这一列叫 wordresult =df.groupby(['word']).size() freqlist = result.sort_values(ascending=False) # 降序排列print(freqlist[:20]) # 取出现次数最多的前20个词
5.词云图绘制及美化
def pic_words(words_list):fdist = FreqDist(words_list) # 将列表转化为字典类型,生成完整的词条频数字典pic = imageio.imread('D:/pyhomework/0516/dig1/timg.jpg') # 读取背景图片(背景颜色必须为纯白色)pic_color = wordcloud.ImageColorGenerator(pic) # ImageColorGenerator函数将词云的颜色参数设置为根据图片颜色确定cloudobj = wordcloud.WordCloud(font_path = "simkai.ttf", #这里不能为None,否则词云图全是方块height = 1000, width = 2000,mode = "RGBA",background_color = 'white',mask = pic,color_func = pic_color, # 我导入图片主色调为蓝灰色).fit_words(fdist) # 基于频数的绘制函数plt.imshow(cloudobj)plt.axis("off") # 关闭坐标轴plt.show()cloudobj.to_file("D:/pyhomework/0516/dig1/pic_final.png") # 保存为高精度图形
import pandas as pd
import wordcloud
import matplotlib.pyplot as plt #绘制图片
import jieba
import jieba.analyse as ana
import imageio
from nltk import FreqDist#使用自定义词典
def dict_words(raw):dict = 'D:/download/文本挖掘/newsdata/dictwords.txt'jieba.load_userdict(dict) #增加词典(自己写的)for i in range(len(raw)):print('/'.join(jieba.cut(raw.txt[i])))#停用词
def dele_words(raw):ana.set_stop_words('D:/download/文本挖掘/newsdata/stopwords.txt')words_list = []for i in range(len(raw)):#print(ana.extract_tags(raw.txt[i]))lists = ana.extract_tags(raw.txt[i])#print(lists)words_list.extend(lists)return words_list#词频统计
def cal_words(words_list):df = pd.DataFrame(words_list, columns=['word'])result =df.groupby(['word']).size()#print(type(result))freqlist = result.sort_values(ascending=False) #降序print(freqlist[:20])#绘制词云图
def pic_words(words_list):fdist = FreqDist(words_list)#pic_address = path.abspath('timg.jpg'),pic = imageio.imread('D:/pyhomework/0516/dig1/timg.jpg') # 读取图片pic_color = wordcloud.ImageColorGenerator(pic) # ImageColorGenerator函数将词云的颜色参数设置为根据图片颜色确定cloudobj = wordcloud.WordCloud(font_path = "simkai.ttf",height = 1000, width = 2000,mode = "RGBA",background_color = 'white',mask = pic,color_func = pic_color, #图片主色调为蓝灰色).fit_words(fdist)plt.imshow(cloudobj)plt.axis("off")plt.show()#cloudobj.to_file("D:/pyhomework/0516/dig1/pic1.png") 保存的图片为1:20行cloudobj.to_file("D:/pyhomework/0516/dig1/pic_final.png")if __name__ == '__main__':raw = pd.read_csv("D:/download/文本挖掘/newsdata/cars_source.txt", names=['txt'], sep='aaa', encoding="GBK")print(len(raw))dict_words(raw)words_list = dele_words(raw)cal_words(words_list)pic_words(words_list)
python处理数据集并制作词云图相关推荐
- Python爬虫入门-python之jieba库制作词云图
在简书上看了很多人分享高大上的词云图的制作,在研究了一番之后,决定自己也动手试一试,奈何小白一个,中间碰到问题老是卡壳老半天,写一写制作过程,啥什么忘了我再来看看. 在看了 向右奔跑大哥的文章后,知道 ...
- 数据可视化之利用Python制作词云图
制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...
- e分钟带你利用Python制作词云图
随着大数据时代的来临,数据分析与可视化,显得越来越重要,今天给小伙伴们带来一种最常见的数据可视化图形-词云图的制作方法. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...
- Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图
目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import jsonfrom PIL import Image from pyque ...
- python爬取豆瓣小组_Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图
目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import json from PIL import Image from pyqu ...
- python画统计图代码_python读取excel某列内容制作词云图并用条形图统计词频
有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起. 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体. # ...
- Python数据分析---回力评论关键字统计并制作词云图
背景 想起前天爬虫拿回来的数据好像没怎么用,看了一下1000条评论有3w4千多字,然后今天决定对爬回来的回力帆布鞋的评论进行数据分析,把评论里面的关键字关键词统计出来并且制作词云图 一.思路 既然要统 ...
- python用selenium爬取b站评论并制作词云图
文章目录 前言 一.爬取b站评论 1.selenium配置 2.代码 二.制作词云图 1.下载停用词 2.代码 3.注意事项 三.制作成品 1.初期成品 2.成品 前言 b站视频下的评论是下拉加载的. ...
- 利用python制作词云图,分词,提取关键词
利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...
最新文章
- linux那个11命令是什么意思,11个有用的Linux命令
- 刷题 - 基础数学/数论问题
- python【数据结构与算法】循环赛日程表(分治)
- 浅析微软的网关项目 -- ReverseProxy
- gcp devops_将GCP AI平台笔记本用作可重现的数据科学环境
- Dom4j下载及使用Dom4j读写XML简介
- JavaScript实现碰撞检测(分离轴定理)
- centos telnet提示No route to host
- flex的简介(来自百度百科)
- 基于SpringBoot的社区物业管理系统(设计与实现详解)
- Springboot接入阿里云物联网SDK实现控制网络继电器通断
- 保姆级的接口自动化教程,不会写代码也能2小时学会
- VMware虚拟机安装Ubuntu20.04详细图文教程
- Machine Learning-L13-频繁模式挖掘
- 车规电阻AEC-Q200测试项目及元器件检测设备
- 达梦数据库DM8的DM管理工具manger命令行启动时出错Manager:10369的处理方法
- hive编程指南笔记
- C++17 文件与目录操作 <filesystem>
- MATLAB中对矩阵元素操作的for循环优化方法
- go语言基础(三)切片,map