jieba词频统计、关键词提取、词云图制作
1、jieba分词及词频统计
import jieba
import pandas as pd# 加载自定义分词词典(txt内容格式:自定义关键词+空格+空格 ----->换行继续)
jieba.load_userdict("./dict.txt")content = open('./测试.txt',encoding='utf-8').read()
#分词
words = jieba.cut(content)
word_list = list(word for word in words)#使用pandas统计并降序排列
df = pd.DataFrame(word_list,columns=['word'])
# result = df.groupby(['word']).size()
result = df.groupby(['word']).size().sort_values(ascending=False)# print(result.sort_values(ascending=False))result.to_excel('./分词词频统计结果.xlsx')
2、TextRank和TF-IDF关键词提取(包括权重,词云图)
import jieba.analyse
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np#准备语料
corpus = "《知否知否应是绿肥红瘦》是由东阳正午阳光影视有限公司出品,侯鸿亮担任制片人,张开宙执导,曾璐、吴桐编剧,赵丽颖、冯绍峰领衔主演,朱一龙、施诗、张佳宁、曹翠芬、刘钧、刘琳、高露、王仁君、李依晓、王鹤润、张晓谦、李洪涛主演,王一楠、陈瑾特别出演的古代社会家庭题材电视剧"#TextRank关键词提取
keywords_textrank = jieba.analyse.textrank(corpus,topK=10,withWeight=True)
print(keywords_textrank) #['有限公司', '出品', '社会', '家庭', '制片人', '担任', '影视', '题材', '电视剧', '知否', '东阳', '出演', '执导']#TF-IDF关键词提取
keywords_tfidf = jieba.analyse.extract_tags(corpus,topK=10,withWeight=True)
print(keywords_tfidf) # ['知否', '领衔主演', '刘钧', '刘琳', '侯鸿亮', '张晓谦', '王一楠', '张佳宁', '李依晓', '冯绍峰', '王鹤润', '施诗', '陈瑾', '赵丽颖', '吴桐', '朱一龙', '曹翠芬', '王仁君', '曾璐', '高露']#提取关键词及权重
freq = {i[0]: i[1] for i in keywords_tfidf}
# 生成对象(自定义背景图片)
# mask = np.array(Image.open("color_mask.png"))wc = WordCloud( font_path='SIMLI.ttf',width=800, height=600, mode='RGBA', background_color='white').generate_from_frequencies(freq)# 显示词云
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()# 保存到文件
wc.to_file('wordcloud3.png')
3、jieba 借助停用词、自定义字典词频统计(针对excel的某列数据做词频统计)
import jieba
import pandas as pd
import time# 导入数据
df = pd.read_excel('51job.com销售岗位(未去重).xlsx',encoding = 'utf-8')
df = df.dropna() #去除空值
content = df.values.tolist() #将数据内容按行转换成列表
# print(content)
# print(len(content))# 加载自定义分词词典(txt内容格式:自定义关键词+空格+空格 ----->换行继续)
jieba.load_userdict("./jieba_userdict.txt")base_text = [] #取目标字段的文本内容
for i in range(len(content)):base_text.append(content[i][0])words_ = [] #存放目标文本的分词结果
for words_row in base_text:try:words = jieba.cut(words_row)for word in words:if len(word) >1 and word !='/r/n':words_.append(word)except:print('抛出异常:\n',words_row)continueprint('1.目标文本初步分词结果:\n',words_)#加载停用词
stopwords=[]
for word in open('stopwords.txt','r',encoding='utf-8'):stopwords.append(word.strip())
print('2.停用词列表:\n',stopwords)
#存放已去除停用词的文本数据
res = []
#存放被禁用的词
res_no = []#筛选分词结果使其不包含停用词
for word in words_:if word in stopwords:res_no.append(word)else:res.append(word)
res_no_ = set(res_no)
print('3.存放已去除停用词的文本数据列表:\n',res)
print('4.存放被禁用的词:\n',res_no_)# 将分词结果转换为df对象,使用pandas统计词频并降序排列
df = pd.DataFrame(res, columns=['word'])
print('5.word_df对象:\n',df)
# result = df.groupby(['word']).size()
result = df.groupby(['word']).size().sort_values(ascending=False)
print('6.词频统计结果:\n',result)
# print(result.sort_values(ascending=False))result.to_excel('./分词词频统计结果'+time.strftime('%Y%m%d%H%M%S')+'.xlsx')
4、jieba pandas做词频统计并制作词云
import warnings
warnings.filterwarnings("ignore")
import jieba
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
from wordcloud import WordCloud #制作词云的包
import timematplotlib.rcParams['figure.figsize'] = (10.0,5.0) #指定画布的大小尺寸# 导入数据
df = pd.read_excel('51job.com销售岗位(未去重).xlsx',encoding = 'utf-8')
df = df.dropna() #去除空值
content = df.values.tolist() #将数据内容按行转换成列表
# print(content)
# print(len(content))# 加载自定义分词词典(txt内容格式:自定义关键词+空格+空格 ----->换行继续)
jieba.load_userdict("./jieba_userdict.txt")base_text = [] #取目标字段的文本内容
for i in range(len(content)):base_text.append(content[i][0])words_ = [] #存放目标文本的分词结果
for words_row in base_text:try:words = jieba.cut(words_row)for word in words:if len(word) >1 and word !='/r/n':words_.append(word)except:print('抛出异常:\n',words_row)continueprint('1.目标文本初步分词结果:\n',words_)#加载停用词
stopwords=[]
for word in open('stopwords.txt','r',encoding='utf-8'):stopwords.append(word.strip())
print('2.停用词列表:\n',stopwords)
#存放已去除停用词的文本数据
res = []
#存放被禁用的词
res_no = []#筛选分词结果使其不包含停用词
for word in words_:if word in stopwords:res_no.append(word)else:res.append(word)
res_no_ = set(res_no)
# print('3.存放已去除停用词的文本数据列表:\n',res)
# print('4.存放被禁用的词:\n',res_no_)# 将分词结果转换为df对象,使用pandas统计词频并降序排列
df = pd.DataFrame(res, columns=['word'])
# print('5.word_df对象:\n',df)
# result = df.groupby(['word']).size()
result = df.groupby(['word']).size().sort_values(ascending=False)
print('6.词频统计结果:\n',result)
# print(result.sort_values(ascending=False))
file_name = './分词词频统计结果'+time.strftime('%Y%m%d%H%M%S')+'.xlsx'
result.to_excel(file_name)# 导入词频数据
cs_data =pd.read_excel(file_name,encoding = 'utf-8')
word_counts = cs_data.values.tolist() #将数据内容按行转换成列表
# print(word_counts)
word_frequence = {x[0]:x[1] for x in word_counts[:20]} #取前20行数据做词云
# 生成对象(自定义背景图片)
# mask = np.array(Image.open("color_mask.png"))
#初始化词云对象
wordCloudObj = WordCloud( font_path='SIMLI.ttf',width=800, height=600, mode='RGBA', background_color='white').generate_from_frequencies(word_frequence)plt.imshow(wordCloudObj)
plt.axis('off')
plt.show()png_file_name = 'wordcloud'+time.strftime('%m%d%H%M%S')+'.png'
wordCloudObj.to_file(png_file_name)
5.简易词云图生成(不适合中文直接生成词云,需要分词处理)
import wordcloud# 创建词云对象,赋值给w,现在w就表示了一个词云对象
w = wordcloud.WordCloud( font_path='SIMLI.ttf',width=800, height=600, mode='RGBA', background_color='white')# 生成背景对象(自定义背景图片)
# mask = np.array(Image.open("color_mask.png"))# 调用词云对象的generate方法,将文本传入
w.generate('今天天气不错,and that government of the people, by the people, for the people, shall not perish from the earth.')# 将生成的词云保存为output1.png图片文件,保存出到当前文件夹中
w.to_file('output1.png')
jieba词频统计、关键词提取、词云图制作相关推荐
- 利用jieba库和wordcloud库,进行中文词频统计并利用词云图进行数据可视化
目录 利用jieba库和wordcloud库,进行中文词频统计并利用词云图进行数据可视化 安装jieba库 安装wordcloud 打开pycharm 编写代码 利用jieba库和wordcloud库 ...
- 中英文分词后进行词频统计(包含词云制作)
文章目录 1.英文词频统计和词云制作 2.中文词频统计和词云制作 2.1 错误发现 2.2 错误改正 在之前的分词学习后,开始处理提取的词语进行词频统计,因为依据词频是进行关键词提取的最简单方法: ...
- 下载哈姆雷特英文版并实现文本词频统计以及生成词云图
hamlet.txt全文下载链接如下: https://python123.io/resources/pye/hamlet.txt 下面展示 代码: # 哈姆雷特文本词频统计from wordclou ...
- jieba读取txt文档并进行分词、词频统计,输出词云图
代码实现 # 库的引用 import jieba import matplotlib as mpl import matplotlib.pyplot as plt from wordcloud imp ...
- 【实战】词频统计及词云图制作
写在开头 最近对词云有些兴趣,就自己瞎琢磨研究一些这方面的知识,期间也遇到一些小问题,写下此篇文章留作备注吧. 研究对象 金庸老先生的<天龙八部> 正式开始(微笑脸) 统计字频 (1)先统 ...
- 利用Python分析文章词频,并生成词云图
利用Python分析文章词频,并生成词云图 使用request模块获取文章数据 import jieba import requests import csv from bs4 import Beau ...
- THE9爱奇艺扫楼 弹幕热度排名及词云图制作
目录 1. 简介 2. 弹幕数据的获取 2.1 导包 2.2 获取数据 3. 分析数据 3.1 统计每个Id的弹幕数,看是否有恶意刷屏 4. 热度统计 4.1 涉及每名成员的弹幕数量 4.2 涉及每名 ...
- 《说英雄谁是英雄》首播,50000条弹幕词云图制作
昨天期待已久的江湖武侠剧<说英雄谁是英雄>上线了,其实我是超越妹妹的粉丝,就去看了看,感觉打戏还不错:就想着看看首播情况咋样,弹幕友不友好,就有了这篇博客,我只爬取了第一二集的将近5万条弹 ...
- 【Python成长之路】词云图制作
[写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...
- python生成词云图个人技术报告_【Python成长之路】词云图制作
[写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...
最新文章
- 关于Iframe在IE6下不显示的bug
- 不限制内存用桶排序PHP
- 数据结构和算法解:第九章 算法设计技巧
- Selenium WebDriver的TestNG注释完整指南
- 澳大利亚超市巨头考虑设专门网站 方便代购买奶粉
- python数据科学手册_数据科学的Python
- C语言之pthread_cond_wait()和pthread_cond_timedwait()区别(十五)
- JAVA IO中的设计模式
- 在SQL Server中建立主键外键的关系
- 32款图片处理软件介绍
- 雷赛acc68c说明书_深圳雷赛科技有限公司官网 雷赛智能公司怎么样 雷赛运动控制卡教程 雷赛步进电机说明书 雷赛m542c说明书 雷赛智能官网...
- u-boot 之配置分析 (2)
- 【51单片机】74HC595串转并 使用
- 算法设计与分析递归概念之Fibonacci数列
- cf 936B Sleepy Game
- 电信卡 LTE 无法短信发送
- 数组的c语言代码带注释,C语言之数组
- 宠物诊所java项目_任务一宠物诊所项目概述.PDF
- Howler.js音频播放终极解决方案
- html怎么用chrome测试,html5 – 如何测试触摸事件现在Chrome无法进行标准测试?
热门文章
- 软文创意18招之三:用数字
- 如何让6自由度双足机器人实现翻跟头的动作?
- 2022-2028全球在线团购行业调研及趋势分析报告
- 森林资源调查 |基于无人机平台应用激光雷达技术获取树木信息 (包含位置、树高、树冠直径、树冠面积和树冠体积等)
- Katy Perry的音乐
- (2)mifare卡读写器开发心得『转』--整理重发贴
- 11,装饰模式-孙悟空的六神装
- Cannot find module ‘@umijs/preset-react‘ from ‘D:\ideawork\code\reactjs04‘
- B\S备忘录01——此吧神兽“焰正马 ”
- 如何向Hyper-V拷贝文件