Python中文文本处理利器--jieba分词库详解

目录

一、什么是jieba?

二、jieba库的使用

1、jieba库的模式

2、jieba库常用函数

三、jieba库实际案例分析

1、简单分词使用

2、统计红楼梦中出现的词语数量

四、总结


一、什么是jieba?

jieba(结巴分词)是一个开源的中文分词工具,用于将中文文本切分成词语或词汇单位。它是一个 Python 库,广泛用于自然语言处理(NLP)和文本分析领域。jieba 有以下主要特点和功能:

  • 中文分词:jieba 可以将中文文本按照词语切分,使得文本可以更容易地被处理和分析。分词是中文文本处理的基础步骤,对于词频统计、文本分类、情感分析等任务非常重要。
  • 多种分词模式:jieba 支持不同的分词模式,包括精确模式、全模式和搜索引擎模式。用户可以根据具体任务需求选择不同的模式。
  • 自定义词典:用户可以创建自定义词典,以确保特定词汇被正确切分。这对于处理特定行业或领域的文本非常有用。
  • 高效快速:jieba 实现了基于前缀词典和动态规划的分词算法,因此在速度上表现出色。
  • 关键词提取:jieba 还提供了关键词提取功能,可以帮助用户识别文本中的关键词,有助于文本摘要和信息检索等任务。

二、jieba库的使用

1、jieba库的模式

①精确模式(精确分词模式):

  • 概述:精确模式试图将文本切分成最精确的词汇单位,通常用于需要高精度分词的任务。
  • 使用方法:jieba.cut(text, cut_all=False)

全模式(全切分模式):

  • 概述:全模式会尽可能多地切分文本,将文本中的所有可能的词语都提取出来,通常用于信息检索等任务。
  • 使用方法:jieba.cut(text, cut_all=True)

搜索引擎模式:

  • 概述:搜索引擎模式在精确模式的基础上,对长词再次进行切分,增加了文本中词语的召回率,通常用于搜索引擎等应用。
  • 使用方法:jieba.cut_for_search(text)
2、jieba库常用函数
函数描述
jieba.cut可以按照指定的分词模式切分文本
jieba.load_userdict用于加载用户自定义的词典,以确保特定词汇被正确切分。
jieba.add_word手动添加一个新词汇到词典中,临时生效。
jieba.del_word从词典中删除一个词汇
jieba.enable_parallel启用并行分词,提高分词速度
jieba.sent_tokenize将文本拆分成句子
jieba.cut_for_search搜索引擎模式的分词函数,适用于搜索引擎相关任务
jieba.analyse.extract_tags用于关键词提取,提取文本中的关键词

三、jieba库实际案例分析

1、简单分词使用
import jieba
text = "今天是个好日子"
cut = jieba.cut(text)
string = ' '.join(cut)
print(string)

结果展示:

可以看到,使用jieba分词器将一句完整的话分成数个单独的词语,并且输出了分词所用的时间。jieba还可以对一个字符串进行分词,并且使用任意符号进行连接。

2、统计红楼梦中出现的词语数量
import jieba

txt = open("red.txt", "r", encoding='utf-8').read()
word = jieba.lcut(txt)
count = {}

for word in word:
    if len(word) == 1:
        continue
    else:
        count[word] = count.get(word, 0) + 1

items = list(count.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(10):
    word, count = items[i]
    print("{0:<3}{1:>3}".format(word, count))

统计结果展示:

相关参数解释:

  • txt = open("red.txt", "r", encoding='utf-8').read():打开名为 "red.txt" 的文本文件,并以UTF-8编码方式读取文件内容,将内容存储在变量 txt
  • word = jieba.lcut(txt):使用jieba库的 lcut 函数对文本进行分词,将分词结果存储在变量 word 中,lcut 函数返回一个分词结果的列表
  • items.sort(key=lambda x: x[1], reverse=True):对词频统计结果进行排序,按词频降序排列
  • {0:<3}{1:>3}: 分别表示词语和词频的占位符,<> 分别表示左对齐和右对齐,数字 3 表示占用的字符宽度。这将输出前15个词汇和它们的词频,按照词频降序排列。
  • for i in range(10):遍历排序后的词频统计列表的前10个元素。

四、总结

jieba库是处理中文文本的重要工具,具有强大的分词和关键词提取功能,学习它可以帮助我们更好地处理和分析中文文本数据,从而支持各种自然语言处理应用。

如有不足,请在下方评论区留言指正!

  • 13
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值