jieba 是一个非常流行的中文分词库,广泛应用于中文文本处理领域。它支持基于词典的精确模式、全模式和搜索引擎模式分词,能够有效地进行中文文本的分词、关键词提取、词性标注等任务。jieba 的实现简单易用,适合中文文本的快速分词需求。

安装

首先,你需要安装 jieba 库。你可以通过 pip 安装:

pip install jieba

基本用法

1. 精确模式

精确模式是 jieba 的默认分词模式,它会尽可能地精确切分文本,不会过度拆分。

import jieba

text = "我爱自然语言处理"
# 使用精确模式分词
segments = jieba.cut(text, cut_all=False)
print(" / ".join(segments))

输出

我 / 爱 / 自然语言 / 处理
2. 全模式

全模式会把句子中所有可能的词语都找出来。它适用于搜索引擎中的分词,速度较快,但不能保证是最精确的切分。

text = "我爱自然语言处理"
# 使用全模式分词
segments = jieba.cut(text, cut_all=True)
print(" / ".join(segments))

输出

我 / 爱 / 自然 / 自然语言 / 语言 / 处理
3. 搜索引擎模式

搜索引擎模式是优化过的切分模式,它会对长词进行更细粒度的切分,适用于搜索引擎构建倒排索引。

text = "我爱自然语言处理"
# 使用搜索引擎模式分词
segments = jieba.cut_for_search(text)
print(" / ".join(segments))

输出

我 / 爱 / 自然 / 语言 / 处理 / 自然语言

关键词提取

jieba 还提供了关键词提取功能,可以通过 TF-IDF 或者 TextRank 算法来提取文本中的关键词。

1. TF-IDF 关键词提取
import jieba.analyse

text = "我爱自然语言处理。自然语言处理是人工智能的一个重要方向。"
# 使用 TF-IDF 提取关键词
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
for word, weight in keywords:
    print(f"{word}: {weight}")

输出

自然语言: 0.4733096112781681
语言处理: 0.3886193225339725
人工智能: 0.3572054303254704
处理: 0.319069397160854
爱: 0.3075163547927739
2. TextRank 关键词提取

TextRank 是另一种关键词提取算法,基于图模型来计算关键词的权重。

keywords = jieba.analyse.textrank(text, topK=5, withWeight=True)
for word, weight in keywords:
    print(f"{word}: {weight}")

自定义词典

jieba 支持用户自定义词典,增加分词的准确性。例如,如果你有一些在一般词典中不存在的词,或者某些特定的领域词汇,可以通过添加自定义词典来优化分词效果。

1. 加载自定义词典

你可以通过 jieba.load_userdict() 方法加载一个自定义的词典。词典文件应该是每行一个词语,每个词语与它的词频用空格或制表符分隔。

# 加载自定义词典
jieba.load_userdict("userdict.txt")

text = "苹果公司推出了新款iPhone"
segments = jieba.cut(text)
print(" / ".join(segments))
2. 添加单个词语

你还可以动态添加单个词语,并设置词频。词频较高的词语会被优先分割。

# 添加自定义词语,设置词频
jieba.add_word("iPhone", freq=2000)

text = "苹果公司推出了新款iPhone"
segments = jieba.cut(text)
print(" / ".join(segments))

词性标注

jieba 还提供了词性标注的功能,可以给每个分词分配一个词性标签。

import jieba.posseg as pseg

text = "我爱自然语言处理"
# 使用词性标注分词
words = pseg.cut(text)
for word, flag in words:
    print(f"{word}: {flag}")

输出

我: r
爱: v
自然语言: n
处理: n

总结

  • jieba 是一个非常强大的中文分词库,提供了多种分词模式(精确模式、全模式、搜索引擎模式)。
  • 它支持中文文本的关键词提取,常用算法包括 TF-IDF 和 TextRank。
  • 可以自定义词典,提高分词准确性,特别是在处理领域特定词汇时。
  • 还可以进行词性标注,适用于更复杂的文本分析任务。

jieba 库的简洁易用性使其成为中文文本处理中的常用工具,非常适合自然语言处理(NLP)任务中的文本预处理部分。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐