jieba 库
jieba(中文意思是“结巴”)库是 Python 中最流行、最强大的中文分词工具。
它的核心用途就是将连续的中文文本,切分成一个个独立的、有意义的词语。
核心用途:中文分词
这是 jieba 最根本的用途。由于中文句子中的词与词之间没有像英文那样的空格分隔,计算机在处理中文文本之前,必须先进行分词。
示例:
输入句子:
"我爱北京天安门"
分词结果:
["我", "爱", "北京", "天安门"]
如果没有分词,计算机看到的只是一个长字符串,无法理解其含义。分词是中文自然语言处理的第一步,也是至关重要的一步。
jieba 库的主要功能和特点
除了基础的分词,jieba 还提供了多种强大的功能:
1. 三种分词模式
精确模式(最常用): 试图将句子最精确地切开,适合文本分析。
jieba.cut("我来到北京清华大学", cut_all=False)
结果:
["我", "来到", "北京", "清华大学"]
全模式: 把句子中所有可以成词的词语都扫描出来,速度非常快,但不能解决歧义。
jieba.cut("我来到北京清华大学", cut_all=True)
结果:
["我", "来到", "北京", "清华", "清华大学", "华大", "大学"]
搜索引擎模式: 在精确模式的基础上,对长词再次切分,提高召回率,适合搜索引擎分词。
jieba.cut_for_search("小明硕士毕业于中国科学院计算所")
结果:
["小明", "硕士", "毕业", "于", "中国", "科学", "学院", "科学院", "中国科学院", "计算", "计算所"]
2. 自定义词典
你可以加载自定义词典,以便识别特定领域的词汇(如人名、专业术语、新词等),从而提高分词的准确性。
用途:
保证特定名称(如“王建国”、“深度学习”)不被切分开。
添加新词(如“yyds”、“元宇宙”)。
方法:
jieba.load_userdict("user_dict.txt")
或使用add_word(word, freq=None, tag=None)
方法。
3. 关键词提取
可以从一段文本中自动提取出关键信息的词语。
基于 TF-IDF 算法的提取:
jieba.analyse.extract_tags(text, topK=20)
基于 TextRank 算法的提取:
jieba.analyse.textrank(text, topK=20)
4. 词性标注
在分词的同时,为每个词语标注其词性(如名词、动词、形容词等)。
方法:
jieba.posseg.cut("我爱自然语言处理")
结果:
[("我", "r"), ("爱", "v"), ("自然语言", "l"), ("处理", "v")]
(r=代词,v=动词,l=习语)
5. 令牌化(返回生成器或列表)
分词结果可以返回一个可迭代的生成器(节省内存),也可以直接返回一个列表(方便查看)。
jieba.cut(...)
:返回生成器jieba.lcut(...)
:返回列表
应用场景
jieba 库是以下领域的基础工具:
搜索引擎: 建立倒排索引,进行关键词匹配。
情感分析: 分析评论、微博等文本的情感倾向(正面/负面)。
文本分类: 将新闻、邮件等自动分类到不同的类别(如体育、财经)。
智能客服与聊天机器人: 理解用户提问的意图。
语音合成与识别: 将文字转换成语音或反之,需要知道词的边界。
信息检索与文本挖掘: 从大量文本中提取有价值的信息和模式。
简单代码示例
import jieba# 1. 精确模式分词
text = "jieba是一个优秀的中文分词第三方库"
seg_list = jieba.lcut(text) # 返回列表
print("精确模式: " + "/ ".join(seg_list))
# 输出:精确模式: jieba/ 是/ 一个/ 优秀/ 的/ 中文/ 分词/ 第三方/ 库# 2. 添加自定义词典
jieba.add_word("第三方库") # 将“第三方库”视为一个词
seg_list2 = jieba.lcut(text)
print("添加词典后: " + "/ ".join(seg_list2))
# 输出:添加词典后: jieba/ 是/ 一个/ 优秀/ 的/ 中文/ 分词/ 第三方库# 3. 关键词提取
import jieba.analyse
text_for_keywords = "人工智能是当今科技发展的最重要方向之一,深度学习是其中的一个分支。"
keywords = jieba.analyse.extract_tags(text_for_keywords, topK=3)
print("关键词: " + ", ".join(keywords))
# 输出:关键词:人工智能, 深度学习, 分支
总结来说,jieba 库的用途是作为中文自然语言处理的基石,它将连续的中文文本转化为结构化的、计算机可以理解和处理的词语单元,为后续更复杂的文本分析任务奠定基础。