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')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/51290.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

textrank提取关键词与关键句

最近在用pg进行全文检索,如果检索全文则速度会慢,考虑可以检索关键句以提高速度。测试了一下textrank提取关键句,目前的思想是用全文提取关键词和关键句提取关键词进行比较,以评估关键句的提取。(提取关键词的方法现在…

中文文本中的关键字提取

关键词提取就是从文本里面把跟这篇文章意义最相关的一些词语抽取出来。这个可以追溯到文献检索初期,关键词是为了文献标引工作,从报告、论文中选取出来用以表示全文主题内容信息的单词或术语,在现在的报告和论文中,我们依然可以看…

关键词提取-TFIDF(一)

系列文章 ✓ 词向量 ✗Adam,sgd ✗ 梯度消失和梯度爆炸 ✗初始化的方法 ✗ 过拟合&欠拟合 ✗ 评价&损失函数的说明 ✗ 深度学习模型及常用任务说明 ✗ RNN的时间复杂度 ✗ neo4j图数据库 分词、词向量 TfidfVectorizer 基本介绍 TF-IDF是一种统计方法,用…

hanlp关键词提取算法TextRank

欢迎关注鄙人公众号,技术干货随时看! 技术交流qq群: 659201069 鄙人的新书《elasticsearch7完全开发指南》,欢迎订阅! https://wenku.baidu.com/view/8ff2ce94591b6bd97f192279168884868762b8e7 《kibana权威指南…

Jieba进行词频统计与关键词提取

文章目录 1 词频统计1.1 简单词频统计1.2 加入停用词 2 关键词提取2.1 关键词提取原理2.2 关键词提取代码 1 词频统计 1.1 简单词频统计 导入jieba库并定义文本 import jieba text "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域…

关键词提取(keyword extraction)技术

目录 1 统计方法(Statistical Method)1.1 TF1.2 TFIDF1.3 YAKE 2 图方法(Graph Based Approaches)2.1 PageRank2.2 TextRank2.2 SingleRank2.3 TopicRank2.4 PositionRank 3 语义模型(Semantic Models) 1 统…

TextRank关键词提取算法

参考:百度AI Studio课程_学习成就梦想,AI遇见未来_AI课程 - 百度AI Studio - 人工智能学习与实训社区 (baidu.com) 1.关键词提取算法分类 1.有监督 将关键词提取问题转换成二分类问题,判断每个候选关键词是否为关键词该类算法,需…

全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门关键词提取应用——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门关键词提取应用场景 Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例 其它资料下载 ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字&a…

马斯克的Starship,除了“大”还有什么呢?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 种种迹象表明,由ChatGPT引发的算力军备竞赛已经悄然而至了。 终于,到了检验人类最大火箭发射的时候了。 2023年4月17日,SpaceX将其大型深空火箭Starship发射升空,发射地点为Sp…

细思极恐!GPT-4太强,发明者们也不懂!智能到底是怎么突然「涌现」的?

本文来源 新智元 编辑:LRS 【新智元导读】不可解释的智能,未来该如何发展? 2023年至今,ChatGPT和GPT-4始终霸占在热搜榜上,一方面外行人都在惊叹于AI怎么突然如此强大,会不会革了「打工人」的命&#xf…

ChatGPT真的像说的那么神,什么都能做吗?

神到不至于,但确实给我的工作生活带来不少便利! 我用的是LintCode刷题网里面自带的这个ChatGPT,不花钱就能直接用! 像用它来解决不会的LeetCode题,动动手指解析秒出,对于我这种经常刷题的人来说就比较方便…

textarea输入换行字符提交给后台后,前台获取数据没有换行

解决方案&#xff1a; 需要提交数据库之前把textarea中的换行字符转换为<br>存储到数据库。 当读取的时候在把<br> 替换成textarea的换行符\n就好了 注意&#xff1a;使用replace 方法的时候需要用正则表达式&#xff0c;否则只能替换第一个换行 例如&#xff…

input按回车换行

需求描述&#xff1a;页面是table里面嵌入input,用户要求按回车去下一个input 之前由于用到elementUI的,用于改变许多类型&#xff0c;之后就自己用原生的input去实现 具体代码&#xff1a; <inputtype"number":ref"ipt index":class"ipt index…

enter无法换行

第一种方法&#xff1a;按住window Insert第二种方法&#xff1a;按住Fn Insert

Notepad++显示所有字符:空格换行

因项目需要&#xff0c;写了一个脚本&#xff0c;在windows下&#xff0c;可以正常运行。Push到设备后&#xff0c;报错。 经过Debug, 发现将脚本中的CRLF&#xff0c;改为LF, OK notepad 显示全字符&#xff0c;设置方法&#xff1a; 英文版&#xff1a;View -> Show Sy…

天猫精灵,还缺点啥?

我也是99买的天猫精灵&#xff0c;马大侠在下一盘大棋。也用了京东的叮咚&#xff08;感觉应该是合作开发而已&#xff0c;纯是为了应景&#xff0c;你有我有全都有而已&#xff09;&#xff0c;体验感不行&#xff0c;而且居然这个青春版还不能语音控制了&#xff0c;只能手机…

天猫精灵打开电脑 语音控制电脑

“天猫精灵” “哎&#xff0c;我在&#xff01;” “打开电脑” 上了一天班&#xff0c;回到家就想静静的玩会游戏&#xff0c;吼一句天猫精灵&#xff0c;立马帮你开机&#xff0c;多么舒服装x的体验。然而现实是骨感的&#xff0c;精灵无此功能&#xff0c;网上有人让弄个智…

亲测超好用的一款流程图制作软件(内含制图技巧分享)

什么是流程图&#xff1f;流程图是思维导图的一种图形模式&#xff0c;通过固定的流程和图形组合而成&#xff0c;通常应用于IT业、建筑业、数字统计行业中。因为思维导图慢慢热门起来&#xff0c;所以其他领域也都开始慢慢学习这款思维工具&#xff0c;并通过思维导图工具整理…

7款流程图制作软件大盘点!轻松绘制流程图

流程图可能是我们使用最广泛的一种图形图表&#xff0c;几乎在各个领域都会用到&#xff0c;诸如系统流程图、产品流程图、数据流程图……借助流程图&#xff0c;我们可以将事物的结构、任务的进程、甚至是算法的思路都有效视觉化。 流程图的广泛应用&#xff0c;也直接催生出…

如何做流程图?这几个实用的制作流程图方法分享给你

说到流程图的制作&#xff0c;相信大家都并不陌生&#xff0c;在日常的工作和学习中&#xff0c;我们都会根据需求接触到各种各样的流程图&#xff0c;有时还要自己动手绘制流程图并使用&#xff0c;但你是否会因为不会绘制流程图而感到苦恼呢&#xff1f;没关系&#xff0c;今…