文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

python中jieba模块怎么使用

2023-07-02 11:32

关注

这篇文章主要介绍“python中jieba模块怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中jieba模块怎么使用”文章能帮助大家解决问题。

一、前言        

英语单词之间是通过空格分隔的,但是中文却不存在空格的概念,因此需要一个模块来解决中文的分词问题。jieba模块是一个python第三方中文分词模块,可以用于将语句中的中文词语分离出来

二、模块的安装

 jieba模块作为python的一个第三方模块,是需要我们自行下载安装后才能使用的,我们主要采用pip安装工具进行jieba的安装,具体步骤如下:

在windows操作系统中,快捷键win+R

python中jieba模块怎么使用

然后输入cmd,点击确定,打开

python中jieba模块怎么使用

输入:

pip install jieba 

即可安装成功。

三、jieba模块具体讲解

3.1分词模式

jieba模块支持三种分词模式:全模式、精准模式以及搜索引擎模式。

①全模式:全模式可以将句子中所有可能的词语全部提取出来,该模式提取速度快,但可能会出现冗余词汇

python中jieba模块怎么使用

如图,第一行出现了冗余词汇,其采用的就是全模式,而第二行采用精准模式。

②精准模式:精准模式通过优化的智能算法将语句精准的分隔,适用于文本分析

③搜索引擎模式:搜索引擎模式在精准模式的基础上对词语进行再次划分,提高召回率,适用于搜索引擎分词。 

3.2cut()、lcut()

3.2.1cut(sentence, cut_all=False, HMM=True, use_paddle=False)

参数解析:

  sentence:要分割的str(unicode)。

  cut_all:模型类型。True 表示全模式,False 表示精准模式。其默认为精准模式。

  HMM:是否使用隐马尔可夫模型。

函数功能: 

The main function that segments an entire sentence that contains Chinese characters into separated words.

将包含汉字的整个句子分割成单独的单词的主要功能。

import jiebasentence = 'python是世界上最好的编程语言'ls = jieba.cut(sentence, cut_all=False)print(ls)# <generator object Tokenizer.cut at 0x000001966B14EA98>

python中jieba模块怎么使用

print(type(ls))# <class 'generator'>

python中jieba模块怎么使用

如图,其是迭代器类型,可以用以下三种方式显示结果

①' '.join()

# ①''.joinls_1 = ' '.join(ls)print(ls_1)# python 是 世界 上 最好 的 编程 编程语言 语言

python中jieba模块怎么使用

②for循环遍历 

# ②for循环遍历for i in ls:    print(i)'''python是世界上最好的编程语言'''

python中jieba模块怎么使用

③列表推导式

# ③列表推导式ls_2 = [i for i in ls]print(ls_2)# ['python', '是', '世界', '上', '最好', '的', '编程语言']

python中jieba模块怎么使用

3.2.2lcut(sentence,cut_all=False)
    def lcut(self, *args, **kwargs):        return list(self.cut(*args, **kwargs))

查看jieba模块,其定义lcut()函数如上,可以发现lcut()函数最终返回的是list(cut())

import jiebasentence = 'python是世界上最好的编程语言'ls = jieba.cut(sentence, cut_all=False)print(ls)print(list(ls))ls1 = jieba.lcut(sentence, cut_all=True)print(ls1)ls2 = jieba.lcut(sentence)print(ls2)

结果如下 :

python中jieba模块怎么使用

注意:cut_all=False是精准模式,也是其默认的类型。

3.3cut_for_search()、lcut_for_search()

cut_for_search(sentence, HMM=True)和lcut_for_search(sentence, HMM=True)和上面所讲的类似。其都是对搜索引擎进行更精细的细分,即采用搜索引擎模式。

import jiebasentence = 'python是世界上最好的编程语言'ls3 = jieba.cut_for_search(sentence)print(ls3)# <generator object Tokenizer.cut_for_search at 0x00000199C7A3D9A8>print(list(ls3))# ['python', '是', '世界', '上', '最好', '的', '编程', '语言', '编程语言']ls4 = jieba.lcut_for_search(sentence)print(ls4)# ['python', '是', '世界', '上', '最好', '的', '编程', '语言', '编程语言']

python中jieba模块怎么使用

3.4add_word(self, word, freq=None, tag=None)
Add a word to dictionary.freq and tag can be omitted, freq defaults to be a calculated value that ensures the word can be cut out.
import jiebasentence = 'python是世界上最好的编程语言'ls2 = jieba.lcut(sentence)print(ls2)ls5 = jieba.add_word('最好的')ls6 = jieba.lcut(sentence)print(ls6)

结果如上,最终最好的就没有被切掉。

3.5del_word(word)

函数功能:分词词典中删除词word

import jiebasentence = 'python是世界上最好的编程语言'ls2 = jieba.lcut(sentence)print(ls2)ls7 = jieba.del_word('世界')ls8 = jieba.lcut(sentence)print(ls8)

python中jieba模块怎么使用

不过经过笔者更改word,发现word是编程语言时,最后就分割成了编程和语言;当word是编程时,结果没变化;当word是python时,结果也没变化。因此有些需要笔者自己去尝试。

3.6suggest_freq(segment, tune=False)

 """        Suggest word frequency to force the characters in a word to be        joined or splitted.        Parameter:            - segment : The segments that the word is expected to be cut into,                        If the word should be treated as a whole, use a str.            - tune : If True, tune the word frequency.        Note that HMM may affect the final result. If the result doesn't change,        set HMM=False.        """

注意:HMM可能会影响最终结果。如果结果不变,设置HMM=False。 

3.7tokenize(unicode_sentence, mode="default", HMM=True)

  """        Tokenize a sentence and yields tuples of (word, start, end)        Parameter:            - sentence: the str(unicode) to be segmented.            - mode: "default" or "search", "search" is for finer segmentation.            - HMM: whether to use the Hidden Markov Model.        """

四、所需代码展示

# -*- coding: utf-8-*-import jiebasentence = 'python是世界上最好的编程语言'ls = jieba.cut(sentence, cut_all=False)# print(ls)# print(list(ls))# # <generator object Tokenizer.cut at 0x0000019F5E44DA98># print(type(ls))# # <class 'generator'> # # ①''.join# ls_1 = ' '.join(ls)# print(ls_1)# # python 是 世界 上 最好 的 编程语言# ②for循环遍历# for i in ls:#     print(i)# '''# python# 是# 世界# 上# 最好# 的# 编程语言# '''# # ③列表推导式# ls_2 = [i for i in ls]# print(ls_2)# # ['python', '是', '世界', '上', '最好', '的', '编程语言']# ls1 = jieba.lcut(sentence, cut_all=True)# print(ls1)ls2 = jieba.lcut(sentence)print(ls2) # ls3 = jieba.cut_for_search(sentence)# print(ls3)# # <generator object Tokenizer.cut_for_search at 0x00000199C7A3D9A8># print(list(ls3))# # ['python', '是', '世界', '上', '最好', '的', '编程', '语言', '编程语言']# ls4 = jieba.lcut_for_search(sentence)# print(ls4)# ['python', '是', '世界', '上', '最好', '的', '编程', '语言', '编程语言'] # ls5 = jieba.load_userdict('文案.txt')# ls6 = jieba.lcut(sentence)# print(ls6)# ls5 = jieba.add_word('最好的')# ls6 = jieba.lcut(sentence)# print(ls6)ls7 = jieba.del_word('世界')ls8 = jieba.lcut(sentence)print(ls8)

关于“python中jieba模块怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯