我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python中jieba库(中文分词库)使用安装教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python中jieba库(中文分词库)使用安装教程

python中jieba库(中文分词库)使用安装教程

介绍

jieba是优秀的中文分词第三方库。由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个单词,这种手段就叫分词。而jieba是Python计算生态中非常优秀的中文分词第三方库,需要通过安装来使用它。

jieba库提供了三种分词模式,但实际上要达到分词效果只要掌握一个函数就足够了,非常的简单有效。

安装第三方库需要使用pip工具,在命令行下运行安装命令(不是IDLE)。注意:需要将Python目录和其目录下的Scripts目录加到环境变量中。

使用命令pip install jieba安装第三方库,安装之后会提示successfully installed,告知是否安装成功。

分词原理:简单来说,jieba库是通过中文词库的方式来识别分词的。它首先利用一个中文词库,通过词库计算汉字之间构成词语的关联概率,所以通过计算汉字之间的概率,就可以形成分词的结果。当然,除了jieba自带的中文词库,用户也可以向其中增加自定义的词组,从而使jieba的分词更接近某些具体领域的使用。

jieba是python的一个中文分词库,下面介绍它的使用方法。

安装

方式1:
pip install jieba
 
方式2:
先下载 http://pypi.python.org/pypi/jieba/
然后解压,运行 python setup.py install

功能

下面介绍下jieba的主要功能,具体信息可参考github文档:https://github.com/fxsjy/jieba

分词

jieba常用的三种模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

可使用 jieba.cut 和 jieba.cut_for_search 方法进行分词,两者所返回的结构都是一个可迭代的 generator,可使用 for 循环来获得分词后得到的每一个词语(unicode),或者直接使用 jieba.lcut 以及 jieba.lcut_for_search 返回 list。

jieba.Tokenizer(dictionary=DEFAULT_DICT) :使用该方法可以自定义分词器,可以同时使用不同的词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

jieba.cut 和 jieba.lcut 可接受的参数如下:

  • 需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
  • cut_all:是否使用全模式,默认值为 False
  • HMM:用来控制是否使用 HMM 模型,默认值为 True

jieba.cut_for_search 和 jieba.lcut_for_search 接受 2 个参数:

  • 需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
  • HMM:用来控制是否使用 HMM 模型,默认值为 True

需要注意的是,尽量不要使用 GBK 字符串,可能无法预料地错误解码成 UTF-8。

三种分词模式的比较:

# 全匹配
seg_list = jieba.cut("今天哪里都没去,在家里睡了一天", cut_all=True)
print(list(seg_list))  # ['今天', '哪里', '都', '没去', '', '', '在家', '家里', '睡', '了', '一天']
 
# 精确匹配 默认模式
seg_list = jieba.cut("今天哪里都没去,在家里睡了一天", cut_all=False)
print(list(seg_list))  # ['今天', '哪里', '都', '没', '去', ',', '在', '家里', '睡', '了', '一天']
 
# 精确匹配
seg_list = jieba.cut_for_search("今天哪里都没去,在家里睡了一天")
print(list(seg_list))  # ['今天', '哪里', '都', '没', '去', ',', '在', '家里', '睡', '了', '一天']

自定义词典

开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。
用法: jieba.load_userdict(dict_path)

dict_path:为自定义词典文件的路径

词典格式如下:

一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。

下面使用一个例子说明一下:

自定义字典 user_dict.txt:

大学课程
深度学习

下面比较下精确匹配、全匹配和使用自定义词典的区别:

import jieba
 
 
test_sent = """
数学是一门基础性的大学课程,深度学习是基于数学的,尤其是线性代数课程
"""
 
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '数学', '是', '一门', '基础性', '的', '大学', '课程', ',', '深度',
# '学习', '是', '基于', '数学', '的', ',', '尤其', '是', '线性代数', '课程', '\n']
 
words = jieba.cut(test_sent, cut_all=True)
print(list(words))
# ['\n', '数学', '是', '一门', '基础', '基础性', '的', '大学', '课程', '', '', '深度',
# '学习', '是', '基于', '数学', '的', '', '', '尤其', '是', '线性', '线性代数', '代数', '课程', '\n']
 
jieba.load_userdict("userdict.txt")
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '数学', '是', '一门', '基础性', '的', '大学课程', ',', '深度学习', '是',
# '基于', '数学', '的', ',', '尤其', '是', '线性代数', '课程', '\n']
 
jieba.add_word("尤其是")
jieba.add_word("线性代数课程")
 
words = jieba.cut(test_sent)
print(list(words))
# ['\n', '数学', '是', '一门', '基础性', '的', '大学课程', ',', '深度学习', '是',
# '基于', '数学', '的', ',', '尤其是', '线性代数课程', '\n']

从上面的例子中可以看出,使用自定义词典与使用默认词典的区别。

jieba.add_word():向自定义字典中添加词语

关键词提取

可以基于 TF-IDF 算法进行关键词提取,也可以基于TextRank 算法。 TF-IDF 算法与 elasticsearch 中使用的算法是一样的。

使用 jieba.analyse.extract_tags() 函数进行关键词提取,其参数如下:

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

  • sentence 为待提取的文本
  • topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
  • withWeight 为是否一并返回关键词权重值,默认值为 False
  • allowPOS 仅包括指定词性的词,默认值为空,即不筛选
  • jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件

也可以使用 jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,idf_path 为 IDF 频率文件。

基于 TF-IDF 算法和TextRank算法的关键词抽取:

import jieba.analyse
 
file = "sanguo.txt"
topK = 12
content = open(file, 'rb').read()
 
# 使用tf-idf算法提取关键词
tags = jieba.analyse.extract_tags(content, topK=topK)
print(tags)
# ['玄德', '程远志', '张角', '云长', '张飞', '黄巾', '封谞', '刘焉', '邓茂', '邹靖', '姓名', '招军']
# 使用textrank算法提取关键词
tags2 = jieba.analyse.textrank(content, topK=topK)
 
# withWeight=True:将权重值一起返回
tags = jieba.analyse.extract_tags(content, topK=topK, withWeight=True)
print(tags)
# [('玄德', 0.1038549799467099), ('程远志', 0.07787459004363208), ('张角', 0.0722532891360849),
# ('云长', 0.07048801593691037), ('张飞', 0.060972692853113214), ('黄巾', 0.058227157790330185),
# ('封谞', 0.0563904127495283), ('刘焉', 0.05470798376886792), ('邓茂', 0.04917692565566038),
# ('邹靖', 0.04427258239705188), ('姓名', 0.04219704283997642), ('招军', 0.04182041076757075)]

上面的代码是读取文件,提取出现频率最高的前12个词。

词性标注

词性标注主要是标记文本分词后每个词的词性,使用例子如下:

import jieba
import jieba.posseg as pseg
 
# 默认模式
seg_list = pseg.cut("今天哪里都没去,在家里睡了一天")
for word, flag in seg_list:
    print(word + " " + flag)
   
"""
使用 jieba 默认模式的输出结果是:
我 r
Prefix dict has been built successfully.
今天 t
吃 v
早饭 n
了 ul
"""
 
# paddle 模式
words = pseg.cut("我今天吃早饭了",use_paddle=True)
"""
使用 paddle 模式的输出结果是:
我 r
今天 TIME
吃 v
早饭 n
了 xc
"""

paddle模式的词性对照表如下:

补充:Python中文分词库——jieba的用法

.使用说明

jieba分词有三种模式:精确模式、全模式和搜索引擎模式。

简单说,精确模式就是把一段文本精确的切分成若干个中文单词,若干个中文单词之间经过组合就精确的还原为之前的文本,其中不存在冗余单词。精确模式是最常用的分词模式。

进一步jieba又提供了全模式,全模式是把一段中文文本中所有可能的词语都扫描出来,可能有一段文本它可以切分成不同的模式或者有不同的角度来切分变成不同的词语,那么jieba在全模式下把这样的不同的组合都挖掘出来,所以如果用全模式来进行分词,分词的信息组合起来并不是精确的原有文本,会有很多的冗余。

而搜索引擎模式更加智能,它是在精确模式的基础上对长词进行再次切分,将长的词语变成更短的词语,进而适合搜索引擎对短词语的索引和搜索,在一些特定场合用的比较多。

jieba库提供的常用函数:

  • jieba.lcut(s)

精确模式,能够对一个字符串精确地返回分词结果,而分词的结果使用列表形式来组织。例如:

>>> import jieba
>>> jieba.lcut("中国是一个伟大的国家")
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache
Loading model cost 2.489 seconds.
Prefix dict has been built successfully.
['中国', '是', '一个', '伟大', '的', '国家']
  • jieba.lcut(s,cut_all=True)

全模式,能够返回一个列表类型的分词结果,但结果存在冗余。例如:

>>> import jieba 
>>> jieba.lcut("中国是一个伟大的国家",cut_all=True)
['中国', '国是', '一个', '伟大', '的', '国家']

jieba.lcut_for_search(s)

搜索引擎模式,能够返回一个列表类型的分词结果,也存在冗余。例如:

>>> import jieba
>>> jieba.lcut_for_search("中华人民共和国是伟大的")
['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '伟大', '的']
  • jieba.add_word(w)

向分词词库添加新词w

最重要的就是jieba.lcut(s)函数,完成精确的中文分词。

到此这篇关于python中jieba库(中文分词库)使用安装教程的文章就介绍到这了,更多相关python中jieba库使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python中jieba库(中文分词库)使用安装教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中jieba库(中文分词库)使用安装教程

这篇文章主要介绍了python中jieba库(中文分词库)使用安装教程,jieba库是通过中文词库的方式来识别分词的。它首先利用一个中文词库,通过词库计算汉字之间构成词语的关联概率,所以通过计算汉字之间的概率,就可以形成分词的结果,需要的朋友可以参考下
2023-05-17

python中怎么安装及使用matplotlib库

要安装matplotlib库,可以使用pip命令,在命令行中输入以下命令:pip install matplotlib安装完成后,就可以在Python脚本中使用matplotlib库了。首先,需要在脚本中导入matplotlib模块:
2023-10-21

python中怎么安装和使用pandas库

要安装和使用pandas库,可以按照以下步骤进行操作:1. 安装pandas库:- 使用pip安装:在终端或命令提示符中运行以下命令:`pip install pandas`- 使用conda安装:在Anaconda Prompt中运行以下
2023-10-11

怎么安装使用Python中的Faker库

这篇文章主要介绍“怎么安装使用Python中的Faker库”,在日常操作中,相信很多人在怎么安装使用Python中的Faker库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装使用Python中的Fak
2023-06-16

python中turtle库的简单使用教程

Turtle库是Python中的一个绘图库,它可以在画布上绘制各种形状和图案。下面是一个简单的使用教程:1. 导入turtle库:在Python代码中,首先需要导入turtle库,可以使用以下代码进行导入:```pythonimport t
2023-08-17

python中的pandas库怎么安装及使用

要安装pandas库,可以使用pip命令。在命令行中输入以下命令来安装pandas:```pip install pandas```安装完成后,可以在Python脚本中使用以下代码来导入pandas库:```pythonimport pan
2023-09-25

如何在python中安装与使用selenium库

如何在python中安装与使用selenium库?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一步:python中安装selenium库和其他所有Python库一样,se
2023-06-15

怎么在python中使用pip安装matplotlib库

本篇文章为大家展示了怎么在python中使用pip安装matplotlib库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.首先在python里安装pip,打开安装python的文件夹,找到pyt
2023-06-06

Python中的pandas库简介及其使用教程

pandas是用于数据挖掘的Python库,Pandas中常见的数据结构有Series和DateFrame两种方式,今天通过本文给大家讲解Python中的pandas库简介及其使用,感兴趣你跟随小编一起学习吧
2022-11-13

Python中使用pip安装Pandas库的步骤解析

标题:详解Python中使用pip安装Pandas库的步骤Pandas是一个常用的数据分析和数据处理工具,并且在数据科学领域中广泛应用。为了使用Pandas库,我们需要先将其安装到Python的环境中。本文将详细介绍使用pip安装Pand
Python中使用pip安装Pandas库的步骤解析
2024-01-24

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录