Python——jieba优秀的中文分词库(基础知识+实例)上

简介: Python——jieba优秀的中文分词库(基础知识+实例)上

Hello,World!

从去年开始学习Python,在长久的学习过程中,发现了许多有趣的知识,不断充实自己。今天我所写的内容也是极具趣味性,关于优秀的中文分词库——jieba库

🏔关于Jieba

🐒什么是jieba?

1、jieba 是目前表现较为不错的 Python 中文分词组件,它主要有以下特性:

中文文本需要通过分词获得单个的词语

jieba需要额外安装

jieba库提供三种分词模式

2、jieba库的分词原理:利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果。除了分词,用户还可以添加自定义的词组。【这一点是很有趣的😄!】

3、jieba库支持四种分词模式:精确模式、全模式、搜索引擎模式、paddle模式,并且支持繁体分词,以及自定义词典。具体介绍:

精确模式,试图将句子最精确地切开,适合文本分析;

全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

       算法

基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)

采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合

对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

正文来了!!!

🏔一、安装jieba库

       🐒1.  此次内容创作,我主要使用的软件有Anaconda,Jupyter Notebook,Pycharm等,看过我之前文章的大佬们,相信对Anaconda都有一个简单的了解,这里就不一一叙述了,直接安装🙂。

因为jieba库不是Anaconda中自带的,所以需要我们自己下载,首先进入jieba库官网:

image.png

如下图:

点击官网中文件下载即可(如果下载速度比较慢,可以私聊我!💪)

       🐒2.  将压缩包解压到anaconda的pkgs目录。

       🐒3.  打开anaconda prompt,切换目录至比如我的D:/anaconda/pkgs/jieba-0.42,输入cmd进入命令行模式

执行  python setup.py install   即可。


 🐒4.  再次打开jupyter notebook 测试

import jieba,正常。pycharm中 import jieba ,正常。由此,我们的第一步安装完成!

1. pip install jieba
2. 
3. import jieba

🏔二、jieba库的使用

🐒1.  精确模式

       将语句最精确的切分,不存在冗余数据,适合做文本分析。

       #精确模式

       jieba.cut(text, cut_all=False)

       案例分析:

       精确模式分析是不存在冗余数据的,把完整的text文本按照中文词库的标准完成拆分。如图所示:

import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

🐒 2.  全模式

将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据。

       #全模式

       jieba.cut(text, cut_all=True)

       案例分析:

       全模式与精确模式的不同在于,全模式存在冗余数据,是将存在可能的词语全部切分出来,从第一个字到最后一个字遍历作为词语第一个字。例如:以“吉”开头的词语包括“吉林”,“吉林省”,以“长”开头的名词包括“长春”“长春市”等等。如图所示:

不难看出,输出的内容存在冗余数据。

seg_list = jieba.cut("我来到吉林省长春市高新技术产业开发区光谷大街1188号", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

🐒 3、搜索引擎模式

在精确模式的基础上,对长词再次进行切分,提高召回率,适合用于搜索引擎分词。

       #搜索引擎模式

       jieba.lcut_for_search(text)

       案例分析:

       搜索引擎模式是将精确模式中的长词,再次按照全模式切分。如图所示:

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

🐒4、Viterbi算法

此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了。

🐒5、自定义词典

在jieba自定义字典方面,目前我所了解到的常见的应用环境是各网络平台对违禁词的查询搜索处理,以及网站也对用户个人信息的处理,对购物方面评价信息的处理等等。因此,我同样也使用了jupyter notebook尝试了自定义词典的使用,text文本文件及运行结果如下图所示:

//自定义词典使用
import jieba
test_sent = "李小福是创新办主任也是云计算方面的专家"
jieba.load_userdict("E://userdict.txt")
words = jieba.cut(test_sent)
print(list(words))

可以看出,我的自定义词典在运行过程中,起到了具体的作用。可想而知,当我们在对一篇文章进行内容的分析处理是,也是可以使用jieba库的!可以通过用户自定义词典来增强歧义纠错能力!

部分文本解析语法:

def getext():
    fname=input("请输入要打开的文件路径及名称,以txt结尾:")
    fo=open(fname)      #打开该文件,默认是文本文件,文本文件其实就是一个字符串
    txt=fo.read()       #<文件名>.read()  默认是读取文件全部内容
    txt=txt.lower()     #将文本所有字母小写
    for ch in '!"#$%()*+<_>/:;<>=?@[\]\^_{}|~':
        txt=txt.replace(ch,'')       #将文本中含有的所有上述字符都变为空格
    return txt
hamlettxt=getext()
words=hamlettxt.split()      #默认值,是将文本中单词按照空格分成一个一个的单词,并将结果保存成列表类型
counts={}                    #定义一个空字典类型,因为我们希望单词和该单词出现的次数作为一个键值对
for word in words:           #遍历words列表的每一个值
    counts[word]=counts.get(word,0)+1
items=list(counts.items())      #将该字典转化成一个列表,其中的键值对是以元组的形式存在
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    word,count=items[i]       #items[i] 是个元组,元组可以带括号,可以不带括号;赋值
    print("{:<10}{:>5}".format(word,count))
相关文章
|
9天前
|
XML JSON 数据库
Python的标准库
Python的标准库
121 77
|
1天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
16 5
|
23天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
71 4
数据分析的 10 个最佳 Python 库
|
10天前
|
XML JSON 数据库
Python的标准库
Python的标准库
38 11
|
23天前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
90 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
10天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
50 8
|
17天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
29 4
|
26天前
|
测试技术 Python
Python中的异步编程与`asyncio`库
Python中的异步编程与`asyncio`库
|
2月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
156 3
|
6月前
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串&#39;2a&#39;。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
129 1
下一篇
DataWorks