深入解析jieba分词器:Python中最佳中文分词工具及其应用指南

jieba 分词器在 Python 领域是最为出色的中文分词组件。本文将对 jieba 分词器及其应用进行讲解。

深入解析jieba分词器:Python中最佳中文分词工具及其应用指南

1、jieba分词器的分词模式

jieba分词器提供了三种常用的分词模式

精确模式下,句子会按照最精确的方法进行切分,这种切分方式适合用于进行文本分析。

全模式会扫描句子中所有可以成词的词语,分词速度较快,但容易产生歧义。

搜索引擎模式是在精确模式分词的基础之上,把长句子再次进行切分,这样做能够提高召回率,并且这种模式适用于搜索引擎的分词。

注:jieba也支持对繁体字进行分词。

在 jieba 里,我们能够使用 jieba.cut 以及 jieba.cut_for_search 去进行中文分词。我们可以通过使用 for 循环,从而获得分词之后所得到的每一个词语。

下面通过代码来实现以下jieba的使用。

import jieba
ex = '南京市长江大桥'
# 全分词模式
jieba 对 ex 进行全模式切割,切割结果为 all_cut 。
# 精确分词模式
精确切割 = jieba.cut(ex, 精确=False)
当省略掉 cut_all 参数时,cut_all 的默认值是 False。在这种情况下,分词模式为精确分词。
jieba 对 ex 进行切割操作,切割结果为 default_precise_cut 。
# 搜索引擎模式
使用 jieba 库的 cut_for_search 方法对 ex 进行切割操作,切割后的结果赋值给 search_cut 。
打印("全分词: ", 将所有切分结果用"/"连接起来)
打印“精确分词: ”,然后使用斜杠“/”将精确切分的结果连接起来,即把精确切分的结果中的每个元素用斜杠“/”连接起来。
打印出“默认精确分词:”,然后将 default_precise_cut 用“/”进行连接并输出。
打印("搜索分词: ", 将 search_cut 用"/"连接起来)

分词后的结果如下:

2、jieba分词器字典的补充

jieba 分词器存在两种补充字典的方式。其一为通过自定义文件进行导入的静态补充方式。其二为借助其内置函数来实现的动态补充方式。

我们能够自定义词典,目的是包含 jieba 词典里没有的词。虽然 jieba 具备新词识别能力,但是添加自定义词典能够提升准确率。

词语 词频(可省略) 词性(可省略)

我们能够依据上面的三个属性来增添新的词语,各个属性之间用一个空格进行分隔就可以了。

jieba 加载用户词典,其路径为 file_name ,这里的 file_name 是我们要添加的词典的路径。

举例子来说明一下这种添加形式

假设现在有一个文件名为 add_words.txt 的要添加的词典,该词典中设定了相关内容,我们使用全分词模式来对结果进行验证。

长江大 5
江大桥 3 nz
南京市长江 2

import jieba
ex = '南京市长江大桥'
打印出“更新前的全分词结果: ”,然后将 jieba 对 ex 进行全模式分词后的结果用“/”连接起来并输出。
加载名为“add_words.txt”的用户词典。
打印出“更新词典后的全分词结果: ”,并将 jieba 对 ex 进行全模式分词后的结果用“/”连接起来并输出。

输出结果如下:

由结果可见,我们新添加的词语出现在了全分词的结果当中。

我们能够运用 jieba.add_word()以及 jieba.del_word()这两种函数去实现动态地添加或者删除词语。在这当中,add_word()能够添加词频和词性这两种参数。示例情况如下:

import jieba
ex = '南京市长江大桥'
print("更新前的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))
jieba.add_word("南京市长江")
jieba 为“南京市长江”这个词添加了频率为 5 且标签为'nz'的信息。
jieba.del_word("南京")
print("更新词典后的全分词结果: ", "/".join(jieba.cut(ex, cut_all=True)))

输出结果如下:

以上便是jieba分词器的词典添加方式。

3、高频词提取

高频词通常是指在文档里出现次数较为频繁且具有用处的词语,它在一定程度上体现了文档的关键所在;在高频词提取过程中,我们主要运用了自然语言处理(NLP)中的词频(TF)策略。

我们不需要统计像“的”“了”这种没有意义的词语。

TF 指的是某个词语在文章中出现的总次数。我们把文章进行分词处理,接着去掉停用词(其中包含标点符号),之后就可以统计每个词在文章中出现的次数了。

下面给出示例代码

# -*- coding: utf-8 -*-
import glob
import random
import jieba
# 读取文章的函数
获取内容的函数是 get_content,其参数为 content_path。
打开(content_path, 'r', 编码="gbk", 错误="忽略")作为 f 。
        content = ''
        for i in f:
            i = i.strip()
            content += i
    return content
# 提取topK个高频词的函数
# TF:计算某个词在文章中出现的总次数
def get_TF(k,words):
    tf_dic = {}
    for i in words:
tf_dic 中获取键 i 对应的值,如果不存在则默认为 0,然后将其加 1 赋值给 tf_dic[i]
使用 sorted 函数对 tf_dic.items()进行排序,排序的依据是每个元素的第二个值(即 x[1]),并且是降序排列。然后截取排序后的结果的前 k 个元素并返回。
# 去掉停用词(包括标点)
def stop_words(path):
打开路径为 path 且编码为“UTF-8”的文件,将其以文件对象 f 的形式打开。
        return [l.strip() for l in f]
# 主函数
if __name__ == "__main__":
    files = glob.glob("*.txt")
对于 files 中的每个 x,都通过 get_content(x) 获取内容,这些获取到的内容组成了 corpus。
从 0 到 corpus 的长度范围内随机生成一个整数赋值给 sample_inx 。
使用 jieba 对 corpus 中的 sample_inx 进行分词,将分词结果存储在 split_words 中,只保留不在 stop_words("stop_words.utf8") 中的词。
打印出“top(k)个词为:”加上通过 get_TF(10, split_words)得到的结果

我们所选的文章为:

主持人:刚才提及了治疗方法。在进行放疗和化疗时,在杀伤肿瘤细胞的过程中会有其他伤害。那么在治疗过程中应该注意些什么呢?张频认为头颈部肿瘤较为特殊,因此在进行手术化疗时,可能会对病人有一些限制。这部分病人与其他部位病人的肿瘤情况不同。当然,药物治疗是普遍的,接受药物治疗后,常见的是胃肠道会出现恶心、呕吐,其次病人会出现白细胞、血小板减少,甚至会出现贫血。这两个不良反应出现的情况比较多,同时还有一些让人感觉不舒服的情况,会出现一些其他的症状,像头颈部肿瘤相关的、口腔方面的,以及头面部做过放射治疗的,这些病人通常都会对口腔和黏膜产生影响。张频表示:当然使用一些药物的话,还会出现一些神经毒素,以及一些其他的肝肾损害情况,这些情况是否会出现取决于病人的肝肾功能状况。头颈部肿瘤化疗的最大问题之一是胃肠道反应较大,同时口腔粘膜反应也较大。在胃肠道反应方面,无论国内还是国外,目前都有一些较好的药物,这些药物在临床应用十分广泛,与过去的其他药物相比,能更好地控制不良反应。张频表示:尽管如此,仍有约 30%的病人在用药后可能会出现这种情况。

这样的病人或许比较畏惧使用化疗。目前我们有针对骨髓病的较好治疗药物,像白细胞介素以及一些能增长白细胞的药物,经皮下注射后,能够提升白细胞的数量。对于血小板的减少情况,我们可以借助药物来增加血小板的数量。倘若出现了肝功能和肾功能的损害等异常情况,我们可以进行一些保护性的治疗。张频说,总体而言,对于头颈部的肿瘤病人,倘若需要进行化疗,那就得看具体的部位。治疗所用到的药物有很多很多,所以经过对症的治疗,大部分情况下是会有一定疗效的。徐震纲称:头颈部肿瘤病人通常需进行放疗。首先,射线要经过腮腺。通常会有一个共同症状,即口干,这通常是因为唾液腺受到照射后会出现这种情况。所以这些人无论走到哪里都会带着一杯水。现在的治疗手段是实行调强治疗,而常规的照射手段是从体外进行照射。调强放疗可以强调对一个部位进行集中照射。这样能让肿瘤在该部位接受的治疗剂量达到最高。常规照射通常是全部通过腮腺的。经过调强照射后,原先的照射量会降低。病人做过治疗后,就能减轻或避免放疗的副作用。徐震纲:第二个方面是皮肤和黏膜存在炎症,以及有干性反应。因为病人的皮肤在放射线下极为脆弱,会出现糜烂反应。家属平常给病人穿衣服时要薄一些,由于经过照射的组织比较脆弱,容易引发损伤,并且这些损伤恢复起来较为困难。主持人:那么经过放疗之后的这种皮肤损伤能否修复呢?徐震纲:通常情况下,损伤会持续一段时间。有的人恢复时间较长。因为不同的部位,照射的部位不一样,反应的轻重程度也有差异。照射四个周期和照射六个周期的反应明显不同。医生会针对照射的副作用采取一些保护性措施。

进行高频词提取后的结果为(列出了词频最高的十个词语):

本文讲解了 jieba 分词器的用法,也讲解了它在高频词汇提取时的应用。下文还将讲到它在 NLP 其他领域的应用。

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读