python处理数据集并制作词云图

  1. 处理数据
  2. 使用自定义词典
  3. 去掉停用词
  4. 词频统计
  5. 绘制词云图+美化

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处理数据集并制作词云图相关推荐

  1. Python爬虫入门-python之jieba库制作词云图

    在简书上看了很多人分享高大上的词云图的制作,在研究了一番之后,决定自己也动手试一试,奈何小白一个,中间碰到问题老是卡壳老半天,写一写制作过程,啥什么忘了我再来看看. 在看了 向右奔跑大哥的文章后,知道 ...

  2. 数据可视化之利用Python制作词云图

    制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...

  3. e分钟带你利用Python制作词云图

    随着大数据时代的来临,数据分析与可视化,显得越来越重要,今天给小伙伴们带来一种最常见的数据可视化图形-词云图的制作方法. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  4. Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import jsonfrom PIL import Image from pyque ...

  5. python爬取豆瓣小组_Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import json from PIL import Image from pyqu ...

  6. python画统计图代码_python读取excel某列内容制作词云图并用条形图统计词频

    有的时候我们把数据整理收集整理到excel中,那么要把excel中的某列文本数据制作词云图怎么做呢? 从最简单的说起. 最简单的词云图就是这种,英文的,不读取文件,不指定背景形状图片,不指定字体. # ...

  7. Python数据分析---回力评论关键字统计并制作词云图

    背景 想起前天爬虫拿回来的数据好像没怎么用,看了一下1000条评论有3w4千多字,然后今天决定对爬回来的回力帆布鞋的评论进行数据分析,把评论里面的关键字关键词统计出来并且制作词云图 一.思路 既然要统 ...

  8. python用selenium爬取b站评论并制作词云图

    文章目录 前言 一.爬取b站评论 1.selenium配置 2.代码 二.制作词云图 1.下载停用词 2.代码 3.注意事项 三.制作成品 1.初期成品 2.成品 前言 b站视频下的评论是下拉加载的. ...

  9. 利用python制作词云图,分词,提取关键词

    利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...

最新文章

  1. linux那个11命令是什么意思,11个有用的Linux命令
  2. 刷题 - 基础数学/数论问题
  3. python【数据结构与算法】循环赛日程表(分治)
  4. 浅析微软的网关项目 -- ReverseProxy
  5. gcp devops_将GCP AI平台笔记本用作可重现的数据科学环境
  6. Dom4j下载及使用Dom4j读写XML简介
  7. JavaScript实现碰撞检测(分离轴定理)
  8. centos telnet提示No route to host
  9. flex的简介(来自百度百科)
  10. 基于SpringBoot的社区物业管理系统(设计与实现详解)
  11. Springboot接入阿里云物联网SDK实现控制网络继电器通断
  12. 保姆级的接口自动化教程,不会写代码也能2小时学会
  13. VMware虚拟机安装Ubuntu20.04详细图文教程
  14. Machine Learning-L13-频繁模式挖掘
  15. 车规电阻AEC-Q200测试项目及元器件检测设备
  16. 达梦数据库DM8的DM管理工具manger命令行启动时出错Manager:10369的处理方法
  17. hive编程指南笔记
  18. C++17 文件与目录操作 <filesystem>
  19. MATLAB中对矩阵元素操作的for循环优化方法
  20. go语言基础(三)切片,map

热门文章

  1. This关键字的一些更新的理解
  2. 前端 CSS的选择器 伪类选择器
  3. NOIP2018 游记
  4. Java方法及构造方法
  5. 【Java多线程系列七】ExecutorService
  6. 成为顶尖架构师必须要面对的面试题
  7. JSon转化为DaTable
  8. js的左右滑动触屏事件
  9. java的第一个程序 ----Hello World
  10. windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放...