【自然语言处理系列】掌握jieba分词器:从基础到实战,深入文本分析与词云图展示

 本文旨在全面介绍jieba分词器的功能与应用,从分词器的基本情况入手,逐步解析全模式与精确模式的不同应用场景。文章进一步指导读者如何通过添加自定义词典优化分词效果,以及如何利用jieba分词器进行关键词抽取和词性标注,为后续的文本分析打下坚实基础。以十九大报告为例,我们将展示如何将分析结果以词云图的形式直观展现,使读者能够更加深入理解和掌握文本分析的实际操作,进而提升处理中文文本数据的能力。此博客适合NLP初学者及对文本分析感兴趣的专业人士。

目录

 

一、jieba分词器介绍

二、 jieba分词器的全模式和精确模式

三、jieba分词器添加自定义词典

四、 jieba分词器实现关键词抽取

五、jieba分词器进行词性标注

六、文本分析之词云图展示------以十九大报告为例

 


一、jieba分词器介绍

结巴分词器,全称为jieba分词器,是一个广泛应用于中文自然语言处理的开源库,由Python语言编写。它主要功能是将连续的中文文本切分成单个词语,也就是进行中文词语的词法分析。jieba分词器采用了基于词频统计和HMM(隐马尔可夫模型)的混合算法,能够处理大量的中文文本,支持用户自定义词典,对于网络语言、口语、外来词等有较好的处理能力。它提供了多种分词模式,如精确模式、全模式和搜索引擎模式,以适应不同的应用场景需求。

二、 jieba分词器的全模式和精确模式

下方代码演示了使用jieba分词库对中文文本进行分词的两种主要模式:全模式和精确模式。首先,通过全模式(cut_all=True)对句子‘我来到北京清华大学’进行分词,该模式会尽可能地切分出所有可能的词汇,全模式会生成较多的分词结果,包括一些较短的词汇。接着,使用精确模式(cut_all=False),该模式会尝试将句子最精确地切开,这时的分词更加符合实际的词语使用习惯。最后,对于句子‘他来到了网易杭研大厦’,默认使用精确模式进行分词,得到的结果为‘他/ 来到/ 了/ 网易/ 杭研/ 大厦’,这一结果同样体现了精确模式在中文分词中的有效性。

import jiebaseg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("全模式: " + "/ ".join(seg_list))  # 全模式seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("精确模式: " + "/ ".join(seg_list))  # 精确模式seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

三、jieba分词器添加自定义词典

在自然语言处理领域,分词是基础且关键的一步。为了确保分词的准确性和适应性,jieba分词器不仅提供了内置的词典,还允许用户添加自定义词典,以适应特定的分词需求。自定义词典的用途包括提高分词准确性、增强模型适应性、处理专业术语等。例如,在金融领域,有许多专业术语和名称无法被默认词典所覆盖,此时添加自定义词典可以提高分词的准确率。在文本分析和挖掘中,通过简单的文本文件或数据库等形式来构建自定义词典,并将其导入到jieba分词器中,可以让分词器更好地理解和处理特定的文本内容,从而帮助用户更好地识别和处理实体、事件和情感等语言实体。 

text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"
# 全模式
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]: ", "/ ".join(seg_list))
# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]: ", "/ ".join(seg_list))

在处理句子“故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等”时,jieba分词器未能将“乾清宫”和“黄琉璃瓦”识别为独立的整体。鉴于这两个词汇实际上应被视作单独的实体,我们考虑通过引入自定义词典来改进分词结果,确保这些专有名词能够被正确分辨和处理。 

jieba.load_userdict("./data/mydict.txt") #需UTF-8,可以在另存为里面设置
#这是用户自定义的一个词典#也可以用jieba.add_word("乾清宫")
text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"
# 全模式
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]: ", "/ ".join(seg_list))
# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]: ", "/ ".join(seg_list))

为解决jieba分词器在处理“乾清宫”和“黄琉璃瓦”时的问题,创建了一个包含这两个词汇的自定义词典(txt格式)。通过将此词典导入jieba分词器,同时对句子“故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等”进行全模式和精确模式下的分词,结果显示“乾清宫”和“黄琉璃瓦”被成功识别为独立的实体。这一改进显著提升了分词的准确性,确保了专有名词的恰当识别。

创建的自定义字典是一个txt格式,如下,主要要将其保存为utf-8格式。

四、 jieba分词器实现关键词抽取

下方代码通过使用jieba库的分词功能(jieba.cut)将文本分解成如'故宫'、'著名景点'、'乾清宫'等有意义的词语(分词结果)。然后运用关键词提取技术(jieba.analyse.extract_tags),选取了文本中最具代表性的五个词(关键词),这些关键词有助于读者快速理解文本的主题和关键内容。结果显示,前五个关键词中分为是”著名景点”、”乾清宫”、”黄琉璃瓦”、”太和殿”、”故宫”。同时输出了这五个关键词在文本中的重要程度。

权重的定义:权重在这里指的是每个关键词在文本中的TF-IDF值,即词频-逆文档频率。这是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中的一个文件的重要程度。
权重的计算:TF-IDF值由两部分组成。第一部分是词频(TF),即词语在文本中出现的次数;第二部分是逆文档频率(IDF),这部分衡量的是词语的罕见程度,即如果一个词语在许多文档中都出现,则其IDF值会较低。这两部分的乘积形成了最终的权重值。
权重的应用:通过这种方式计算得出的权重有助于我们了解每个关键词在文本中的重要性。权重越高,表明该词在文本中越重要,这可以用于文本摘要、信息检索等多种NLP任务。
权重的应用场景:关键词提取的结果可以用在很多场景,比如自动摘要、搜索引擎优化、舆情分析等。在这些应用中,准确地了解关键词的重要性是非常关键的一点。
权重的优劣势:虽然TF-IDF是一种有效的关键词权重计算方法,但它也有局限性,比如无法捕捉词语之间的语义关系。因此,在使用这种方法时,通常需要根据具体任务调整或结合其他方法使用。

import jieba.analyse
text = "故宫的著名景点包括乾清宫、太和殿和黄琉璃瓦等"
seg_list = jieba.cut(text, cut_all=False)
# print (u"分词结果:")
# print ("/".join(seg_list))
#获取关键词
tags = jieba.analyse.extract_tags(text, topK=5)
print (u"关键词:")
print (" ".join(tags))
tags = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
for word, weight in tags:print(word, weight)

五、jieba分词器进行词性标注

下方是使用jieba库的posseg模块对中文句子进行分词和词性标注的示例。

import jieba.posseg as pseg
words = pseg.cut("我爱北京天安门")
for word, flag in words:print("%s %s" % (word, flag))

六、文本分析之词云图展示------以十九大报告为例

import jieba
from wordcloud import WordCloud
import imageio
from collections import Counter
import matplotlib.pyplot as pltdata={}#读入数据
text_file = open('./data/19Congress.txt','r',encoding='utf-8')#文本数据是十九大报告
text = text_file.read()
#加载停用词表
with open('./data/stopwords.txt',encoding='utf-8') as file:stopwords = {line.strip() for line in file}#分词
seg_list = jieba.cut(text, cut_all=False)
for word in seg_list:if len(word)>=2:if not data.__contains__(word):data[word]=0data[word]+=1
#这个词在词典之中,每出现一次就加1;如果没有出现在词典中,则置为0
#print(data)      my_wordcloud = WordCloud(  background_color='white',  #设置背景颜色max_words=400,  #设置最大实现的字数#font_path=None,font_path=r'./data/SimHei.ttf',  #设置字体格式,如不设置显示不了中文mask=imageio.imread('./data/mapofChina.jpg'), #指定在什么图片上画width=1000,height=1000,stopwords = stopwords
).generate_from_frequencies(data)plt.figure(figsize=(18,16))
plt.imshow(my_wordcloud)
plt.axis('off')
plt.show()  # 展示词云
# my_wordcloud.to_file('result.jpg')
text_file.close()

上述Python代码实现了基于“十九大报告”文本数据的中文词云可视化。具体而言,步骤如下:step1:从“./data/19Congress.txt”文件中读入文本数据;step2: “./data/stopwords.txt”文件中加载停用词表;step3:对文本数据进行分词,这里使用了jieba分词工具;step4:对分词后的数据进行词频统计,统计每个词在文本数据中出现的次数,并存储在字典data中;step5:基于词频统计数据,使用WordCloud工具生成词云图片,词云图片中单词的大小与其词频成正比;Step6:展示词云:使用matplotlib工具将生成的词云图片展示出来。同时根据实际需求,调整背景图片这个参数,将词云图的背景设为白色,形状为中国地图,以生成更符合需求的词云图片。  

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

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

相关文章

美创携手浙江长征职业技术学院,共建智云数据安全大师工作室

6月24日,“美创科技浙江长征职业技术学院智云数据安全大师工作室揭牌暨中国特色学徒制第四期云数据安全和智能运维人才选拔培养启动仪式”在长征职业技术学院隆重举行。 浙江长征职业技术学院计算机与信息技术学院院长梅灿华、计算机与信息技术学院学工办副主任华春…

使用 frida hook Android app

Frida: 一种基于动态插装(dynamic instrumentation)技术的工具包,它主要是为测试人员、开发人员和逆向工程爱好者创建,在目标程序运行时,允许用户将 JavaScript代码注入其中,实现动态修改和调试…

ONLYOFFICE8.1版本桌面编辑器的测评

首先我们先出示一下我们所测评官网的链接: ONLYOFFICE官网链接:ONLYOFFICE - 企业在线办公应用软件 | ONLYOFFICE 我们这款ONLYOFFICE8.1版本有这一下优点 1.解决PDF痛点 ONLYOFFICE在PDF编辑方面支持高亮显示、下划线和删除线、添加批注等功能&#…

【2024最新版】Eclipse安装配置全攻略:图文详解

目录 1. Eclipse介绍1.1 背景1.2 主要特点和功能1.3 版本发布1.4 优势与劣势 2. 下载Eclipse3. 安装Eclipse4. 启动Eclipse 1. Eclipse介绍 Eclipse是一个开源的、基于Java的可扩展开发平台,主要用于Java开发者,但也支持其他语言如C/C、PHP、Python等。…

【PWN · TcachebinAttack | UAF】[2024CISCN · 华中赛区] note

一道简单的tcache劫持 一、题目 二、思路 存在UAF,libc版本2.31,经典菜单题 1.通过unsorted-bin-attack来leak-libc 2.通过uaf打tcache-bin-attack劫持__free_hook实现getshell 三、EXP from pwn import * context(archamd64,log_leveldebug)ioproce…

ansible自动化运维,(2)ansible-playbook

三种常见的数据格式: XML:可扩展标记语言,用于数据交换和配置 JSON:对象标记法,主要用来数据交换或配置,不支持注释 YAML:不是一种标记语言,主要用来配置,大小写敏感&…

科技未来·无限可能“2024世亚智博会”

随着科技的飞速发展,人类社会正以前所未有的速度迈向一个全新的时代。科学技术作为第一生产力,不仅极大地推动了经济和社会的发展,更在不断地改变着我们的生活方式和思维方式。特别是在人工智能、物联网等前沿科技领域,其创新和应…

【ZYNQ】VDMA 的介绍

AXI VDMA 是 Xilinx 官方提供的高带宽视频 DMA IP,用于实现 AXI4-Stream 视频数据流与 AXI4 接口数据的转换,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的基本结构与原理,并简要介绍 VDMA 的配置与使用方法。 目录 1 VDMA 简介…

egg代码生成器

今天给大家分享一下egg的代码生成器,这个其实原理很简单,说白了就是用到了nodejs的一个文件io的操作,通过一系列配置参数解析然后生成一个很长的字符串,写入到文件中,最后导出到我们指定的文件夹。 前提概要 为什么我…

web前端——VUE

1.什么是框架? ①概述 框架结构就是基本功能,把很多基础功能已经实现了、封装了。在基础语言之上,对各种基础功能进行封装,方便开发者,提高开发效率 ②前端框架 javaScript是原生的 vue.js: 是一个js框架&…

最新解决docker镜像无法下载问题

1.增加或修改daemon.json文件 ​ cd /etc/dockervi daemon.json{ "registry-mirrors": [ "https://docker.m.daocloud.io" ] }2.重启docker服务 sudo systemctl daemon-reload sudo systemctl restart docker 3.验证 下载https://txodoo.cn/blog/11/d…

双指针dd d df f

像二分这样的算法,我们甚至可以不用管,直接在问题空间之内搜索,但是双指针也非常好用,帮助我们来减少枚举对象,我们来总结一下这经典的三个题目: 最长上升不重复子序列活动 - AcWings 首先一定要写…

LabVIEW电路板故障诊断系统

基于LabVIEW软件开发的电路板故障诊断系统,涵盖功能测试、性能测试和通讯测试等多个方面。系统集成了多种硬件设备,包括NI PXI-1033机箱、NI PXI-4071数字万用表、NI PXI-4130电源模块、NI PXI-8512 CAN模块等,通过模块化设计实现了对电路板的…

shell中的函数

统计家目录下.c文件的个数 终端输入一个.sh文件,判断文件是否由可执行权限,如果有可执行权限运行脚本,没有可执行权限添加可执行权限后,再运行脚本 写一个函数,输出当前用户uid和gid,并使用变量接收结果 终…

【LLM Transparency Tool】用于深入分析和理解大型语言模型(LLM)工作原理的工具

背景 LLM Transparency Tool 是一个用于深入分析和理解大型语言模型(LLM)工作原理的工具,旨在增加这些复杂系统的透明度。它提供了一个交互式界面,用户可以通过它观察、分析模型对特定输入(prompts)的反应…

加速科技Flash存储测试解决方案 全面保障数据存储可靠性

Flash存储芯片 现代电子设备的核心数据存储守护者 Flash存储芯片是一种关键的非易失性存储器,作为现代电子设备中不可或缺的核心组件,承载着数据的存取重任。这种小巧而强大的芯片,以其低功耗、可靠性、高速的读写能力和巨大的存储容量&…

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成,共6个面,所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示,三维坐标…

【目标检测】Yolov8 完整教程 | 检测 | 计算机视觉

学习资源:https://www.youtube.com/watch?vZ-65nqxUdl4 努力的小巴掌 记录计算机视觉学习道路上的所思所得。 1、准备图片images 收集数据网站:OPEN IMAGES 2、准备标签labels 网站:CVAT 有点是:支持直接导出yolo格式的标…

搜索引擎的妙用:掌握这些技巧,让你的搜索更高效!

搜索引擎是我们日常生活中不可或缺的工具,它帮助我们快速找到所需的信息。但是,你真的知道如何高效地使用搜索引擎吗?下面,我将分享一些高级搜索技巧,让你的搜索更加精准和高效。 1. 完全匹配搜索 当你想要搜索一个特…

第三十三篇——互联网广告:为什么Google搜索的广告效果好?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 对于信息的利用,再广告这个维度中去洞察,你又能发…