Python8 使用结巴(jieba)分词并展示词云

Python的结巴(jieba)库是一个中文分词工具,主要用于对中文文本进行分词处理。它可以将输入的中文文本切分成一个个独立的词语,为后续的文本处理、分析、挖掘等任务提供基础支持。结巴库具有以下功能和特点:

  1. 中文分词: 将中文文本按照一定的规则和算法切分成独立的词语,方便后续的文本处理和分析。

  2. 支持不同分词模式: 结巴库支持精确模式、全模式和搜索引擎模式等不同的分词模式,满足不同场景下的需求。

  3. 支持自定义词典: 用户可以根据实际需求自定义词典,增加、删除或修改词语,提高分词的准确性。

  4. 高效处理: 结巴库采用了基于前缀词典的分词算法,具有较高的分词速度和效率。

  5. 开源免费: 结巴库是一个开源项目,可以免费获取并在各种应用中使用,广泛应用于文本处理、自然语言处理等领域。

本次将展示一个使用jieba库生成16首歌曲歌词文本关键词词云的示例,演示的形象化表达如下:

图片

1.用jieba库进行不同模式的分词

示例代码:

import jieba  # 导入结巴模块
seg_list=jieba.cut('我来到北京清华大学',cut_all=True)  # 使用全模式分词将文本"我来到北京清华大学"进行分词
# (cut_all=True)将使用全模式将句子中所有可能的词语都进行分词,可能会产生大量的冗余词语,这种模式适用于对文本进行初步分析或者处理速度要求较高的场景
print("全模式:"+"/".join(seg_list))seg_list = jieba.cut("我来到北京清华大学", cut_all=False) # (cut_all=False或者不指定参数)将使用精准模式分词将文本"我来到北京清华大学"进行分词
print("精准模式:"+"/".join(seg_list))
seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精准模式
print(','.join(seg_list))seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
# 搜索引擎模式是在精准模式的基础上,对长词再次切分,以适应搜索引擎的需求,这种模式适用于对文本进行搜索引擎优化或者需要更多精准匹配的场景
print(','.join(seg_list))

运行结果:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\26320\AppData\Local\Temp\jieba.cache
Loading model cost 0.398 seconds.
Prefix dict has been built successfully.全模式:我/来到/北京/清华/清华大学/华大/大学
精准模式:我/来到/北京/清华大学
他,来到,了,网易,杭研,大厦
小明,硕士,毕业,于,中国,科学,学院,科学院,中国科学院,计算,计算所,,,后,在,日本,京都,大学,日本京都大学,深造

2.根据歌词文本文件使用jieba库分析功能生成词云

将指定文件夹‘lyric’中的所有文本文件的内容合并到一个字符串中,并打印出这个字符串。该文件夹中共有16首歌曲的歌词文本文件和两张图片。

图片

import os  # os模块用于处理文件路径
content=''  #  定义空字符串content用于存储所有文本文件的内容
content_path=r'F:\桌面\python100\files\lyric'  # 设置变量content_path为指定的文件夹路径
files=os.listdir(content_path)  # 使用os.listdir()函数列出指定文件夹中的所有文件和子文件夹,将结果存储在列表files中
for file in files:  # 遍历files列表中的每一个文件或子文件夹full_path=os.path.join(content_path,file)  # 使用os.path.join()函数将文件夹路径和文件名拼接成完整的文件路径,存储在变量full_path中print(full_path)if full_path.endswith('.txt'):  # 如果文件路径以.txt结尾f=open(full_path,'r',encoding='utf-8')  # 使用open()函数以只读模式打开文本文件,指定编码为UTF-8,返回文件对象fcontent+=f.read()  # 读取文件对象f的内容,并将其追加到content字符串中else:  # 如果文件不是文本文件(不以.txt结尾),则跳过pass
print(content)  # 打印合并后的所有文本文件的内容字符串
F:\桌面\python100\files\lyric\qiaoba.jpg
F:\桌面\python100\files\lyric\xiong.jpg
F:\桌面\python100\files\lyric\《林中鸟》.txt
F:\桌面\python100\files\lyric\《逐世行》.txt
F:\桌面\python100\files\lyric\三生三世.txt
···
F:\桌面\python100\files\lyric\灵主不悔.txt
F:\桌面\python100\files\lyric\盗心贼.txt
《林中鸟》
词曲:高进
演唱:葛林
编曲:张亮
混音:侯春阳
来不及祈祷就开始奔跑
总觉得外面世界有多美好
···
盗心的贼
我的一腔热血就化作眼泪
不要再让我悲伤 如痴如醉
再爱一回

将上面的读取指定文件夹中的所有文本文件(.txt)并将它们的内容读取并合并到一个字符串中的操作完整地封装成一个 read_content()函数。

import os
# 读取指定路径下的所有文件,返回所文件接起来的内容
def read_content(content_path):# 初始化内容为空content=''# print(os.listdir(file_path))files=os.listdir(content_path)  # 使用os.listdir()函数列出‘content_path’中的所有文件和子文件夹,将结果存储在列表files中for file in files:  # 列表中的每一个文件或子文件夹# 拼接完整路径full_path=os.path.join(content_path,file)  # 使用os.path.join()函数将文件夹路径和文件名拼接成完整的文件路径,存储在变量full_path中if os.path.isfile(full_path): # 判断full_path是否是一个文件,而非目录if full_path.endswith('.txt'):  # 进一步判断文件是否以.txt结尾print('正在加载歌词文本{}'.format(full_path))  # 打印正在加载的文件名content+=open(full_path,'r',encoding='utf8').read()  # 读取文件内容并追加到content变量中content += '\n'  # 在每个文件内容后添加换行符以便区分不同文件的内容else:  # 对于非.txt文件print('{}不是歌词文本\n'.format(full_path))  # 打印文件不是歌词文本的信息print('加载歌词完毕\n')return content  # 函数返回最终拼接的内容
content=read_content(r'F:\桌面\python100\files\lyric')
print(content)

图片

在得到所有文本组合成的字符串后,利用TextRank算法提取歌词字符串中的关键词。这是一种基于图的排序算法,用于从文本中提取关键词,根据词与词之间的共现关系来确定每个词的重要性。这种方法适用于自动提取文本关键信息,常用于文本摘要、关键词提取等自然语言处理任务。下面的代码示例使用结巴(jieba)库的 analyse 模块来提取文本中的关键词,并计算它们的重要性。

import jieba.analyse  # 专门用于文本关键词提取的模块#使用jieba的textrank提取出1000个关键词及其比重
result=jieba.analyse.textrank(content,topK=1000,withWeight=True)  # 使用 textrank 方法从变量 content(应该包含所有文本内容的字符串)中提取前1000个关键词。参数 withWeight=True 表示返回关键词及其相应的权重(重要性)
print(result)
keywords = dict()  # 初始化一个空字典 keywords,用于存储关键词及其权重
for i in result:  # 每个元素i是一个元组,其中i[0]是关键词i[1]是该关键词的权重keywords[i[0]] = i[1]  # 将关键词和其权重添加到字典 keywords 中
#   print(i[0])
print(keywords)

运行结果(部分):

图片

结果可视化,生成一个基于文本关键词频率的词云,其中还结合了一个指定的图片形状‘熊大’和图片颜色。

图片

from PIL import Image, ImageSequence  # 导入图像处理模块
import numpy as np  # np库常用于处理大型多维数组和矩阵
import matplotlib.pyplot as plt  # 绘图模块
from wordcloud import WordCloud, ImageColorGenerator  # 用于生成词云# 初始化图片
image = Image.open(r'F:\桌面\python100\files\lyric\xiong.jpg')
graph = np.array(image)  # 图片转换为数组# 生成云图,指定字体路径,因为WordCloud默认不支持中文,所以需要指定中文字体
# 指定字体路径,因为WordCloud默认不支持中文,所以需要指定中文字体。background_color: 设置词云的背景颜色。max_words: 设置最多显示的词数。mask: 设置词云形状的掩模图像,此处使用之前转换的图片数组。
wc = WordCloud(font_path='‪C:/Windows/Fonts/STFANGSO.TTF',background_color='white', max_words=100, mask=graph) # 生成词云
wc.generate_from_frequencies(keywords)
# 创建一个颜色生成器,它会基于提供的图片数组来为词云生成颜色
image_color = ImageColorGenerator(graph)
# 显示图片
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off") # 关闭图像坐标系
plt.show()

图片


以上内容总结自网络,如有帮助欢迎转发,我们下次再见!

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

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

相关文章

大文件上传实现

分片上传 将大文件分割成多个小片(chunk),逐个上传。每个片上传成功后,服务器可以返回确认信息。所有片上传完成后,服务器端将这些片重新组合成原始文件。 以下是一个简单的分片上传的前端实现示例: func…

C#——文件读取StreamRead和StreamWriter类详情

文件读取StreamRead和StreamWriter类 StreamReader 用于从字节流中读取字符StreamWriter 用于向一个流中写入字符 使用 读取 // using 使用,语句可以省去关闭StreamReader读写流 using (StreamReader sr new StreamReader("1.txt", Encoding.UTF8)) …

LVGL开发教程-Label文本

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 ​编辑 1. 文本显示 2. 使用字体 总结 前言 在嵌入式系统开发中,文本显示是一项基本而重要的功能。使用 LittlevGL(LVGL)库,我们可以轻松地创建…

程序人生 - iPhone 关机后,华为手表非凡大师居然还可以正常微信支付?

昨天,地铁上手机没电了,当时还担心出闸门和买晚饭的问题,虽然手表已经开通了 NFC 微信支付,但是我一开始的理解需要手机保持蓝牙开启的前提下才能正常使用,毕竟有时候手机离开手表,手表就会提示断线了。 但…

bms SRP引脚什么意思

SRP引脚通常是指电池管理系统(BMS)或相关电子设备中的一个专用引脚,它代表“Sense Resistor Positive”(正采样电阻),用于电流检测和电流感测功能。在电池充放电过程中,通过监测连接到SRP引脚的…

Linux应急响应:清理系统日志后的日志恢复与分析

在系统安全事件的响应中,攻击者清理日志的行为给追踪和分析带来了巨大挑战。本文将介绍在日志被清理后,如何利用Linux的systemd-journald服务进行日志恢复与分析,以及如何通过GScan工具进行自动化后门排查。 系统日志的重要性 系统日志是安…

lspci总结

lspci总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨一个在 Linux 系统中常用的命令:lspci。lspci 命令用于列出当前系统中的 P…

Folx Mac版软件下载-Folx 2024最新版-下载工具附加详细安装步骤

​根据大数据调查表明从网络下载视频:用Folx从网页上下载视频,能够设置下载视频的格式,你也能够下载年龄限制和私人视频,当你不需要视频,只想要一个音轨的时候,Folx是非常有用的!这个互联网下载器所有的视频…

微服务该如何划分?

微服务的划分应考虑业务逻辑、服务粒度、团队规模等因素。合理的微服务划分可以带来系统的可维护性、可扩展性和独立性,从而提高整体研发效率和系统稳定性。在现代软件架构中,微服务划分已成为确保系统灵活性和高效性的重要步骤。以下是微服务如何划分的…

java智慧工地系统源码 智慧工地标准之一:环境监测 告别灰头土脸、智慧工地环境监测系统都包括哪些功能?

java智慧工地系统源码 智慧工地标准之一:环境监测 告别灰头土脸、智慧工地环境监测系统都包括哪些功能? 智慧工地环境监测系统是一套集成了物联网、大数据和云计算技术的系统,主要用于实时监测和管理建筑工地的环境状况。以下是该系统的一些核…

VS2022打开.netcore2.2 问题解决

1.vs2022运行时一直提示异常 2.解决方法,双击当前的项目修改xxxx.csproj文件 把当前的版本修改为2.2.0即可重新编译运行

oracle将字符串中的字符和数字拆分开等功能

将字符串中的字符和数字拆分开 create or replace procedure F_GetNumber1( inString IN VARCHAR2,n_return1 out varchar2, n_return2 out varchar2) ISDCHAR VARCHAR2(1024); OUTCHAR VARCHAR2(1024); j number default 0; ulen number; BEGINOUTCHAR:;DCHAR:TRIM(inStr…

山东大学面向对象技术——设计原则、工厂模式、单例模式

目录 前言 设计模式和原则作用 面向对象的设计原则 开闭原则OCP: Open-Closed Principle 题目举例 里氏代换原则LSP: Liskov Subtitution 依赖倒置原则DIP: Dependency Inversion Principle 接口隔离原则ISP: Interface Segregation Principle 组合优先原则CRP: Compo…

vue+webpack子应用嵌入乾坤框架

首先!不建议用vite,改了两天,无果。 乾坤本就不支持vite,后续要改插件改配置追加前缀,乾坤只能挂载基础节点,但是静态资源以及接口都挂载不上,或许有实现办法,但时间节点很紧&#…

【AI学习】LLaMA 系列模型的进化(一)

一直对LLaMA 名下的各个模型关系搞不清楚,什么羊驼、考拉的,不知所以。幸好看到两篇综述,有个大致了解,以及SEBASTIAN RASCHKA对LLaMa 3的介绍。做一个记录。 一、文章《Large Language Models: A Survey》中对LLaMa的介绍 论文…

❤【纯干货】Matplotlib总结,任何项目都用得到❤

. . . . . . . . . . . 纯 干 货 . . . . . . . . .Matplotlib 在很多人眼里是无敌的存在,而且可以说是无敌的存在。 走过数据科学的路,路上必然有Matplotlib 的风景在你周围。 如果同一个项目,你的用了matplotlib …

vue脚手架 笔记08

目录 01 vuex的四大辅助函数的使用 mapState使用方式: mapMutations的使用方式: mapGetters的使用方式: mapActions的使用方式: 02 vuex中的模块化 vuex的modules模块化的使用: modules模块化的使用: 01 vuex的四大辅助函数的使用 帮助我们把vuex里面的数据映射到当前组件里…

资料合集|SmartX 虚拟化特性解读、迁移实践与用户案例

面对 VMware 的种种变动,不少用户开始探索新的出路。但对于虚拟化平台这一核心组件的替换,一些用户仍处于观望状态,主要是出于以下担忧: 新的虚拟化平台是否具备与 VMware 虚拟化相当的能力?替代 VMware 虚拟化平台涉…

【微服务网关——负载均衡】

1. 四大负载均衡策略 随机负载 随机挑选目标服务器IP 轮询负载 ABC三台服务器,ABCABC依次轮询 加权负载 给目标设置访问权重,按照权重轮询 一致性hash负载 请求固定URL访问指定IP 2.随机负载均衡 可以通过random函数来随机选择一个ip 2.1 代码实现 …

陶建辉入选 2023 年度“中国物联网行业卓越人物榜”

在这个技术飞速发展的时代,物联网行业作为推动社会进步的重要力量,正在不断地演化和革新。近日,中国智联网生态大会暨“2023 物联之星”年度榜单颁奖典礼在上海浦东举行。现场公布了拥有物联网行业奥斯卡奖之称的 ——“物联之星 2023 中国物…