Python jieba库分词模式实例用法

1. Python jieba库简介

Python jieba库是一个开源的中文分词工具包,采用了基于前缀词典实现高效的中文分词算法。该工具包提供了多种分词模式供用户选择,既可以用于中文分词,也可以用于关键词提取等任务。

2. Python jieba库安装方法

2.1 使用pip直接安装

可以在命令行窗口中使用以下命令安装jieba库:

pip install jieba

如果需要升级jieba库,可以使用以下命令:

pip install --upgrade jieba

2.2 源代码安装

如果直接安装不成功,可以从jieba的github网站上下载源代码,然后使用以下命令进行安装:

tar zxvf jieba-x.x.tar.gz

cd jieba-x.x

python setup.py install

3. Python jieba库分词模式

jieba库提供了三种不同的分词模式:

3.1 精确模式

精确模式是最常用的分词模式,它将句子精确地切分成词语,适合文本分析和索引建立等任务。使用方法如下:

import jieba

sentence = "我来到北京清华大学"

words = jieba.cut(sentence, cut_all=False)

print("|".join(words))

运行以上代码后,会输出以下结果:

我|来到|北京|清华大学

在精确模式下,jieba库会将句子切分成最精确的词语,并且去除停用词。为了实现更细致的分词粒度,可以将cut_all参数设置为True,这时会在精确模式的基础上再加上分数较低的词语,但是不推荐这样做。

3.2 全模式

全模式是将句子中所有可能的词语都扫描出来,速度非常快,但是分词结果可能会存在冗余。使用方法如下:

import jieba

sentence = "我来到北京清华大学"

words = jieba.cut(sentence, cut_all=True)

print("|".join(words))

运行以上代码后,会输出以下结果:

我|来到|北京|清华|清华大学|华大|大学

可以看到,在全模式下,jieba库切分出来的词语相对精确模式更多,但其中还包含了一些冗余的词语,因此不建议在实际应用中使用。

3.3 搜索引擎模式

搜索引擎模式在精确模式的基础上,对长词语再次切分,以提高召回率,适合用于搜索引擎分词。使用方法如下:

import jieba

sentence = "今天天气真好,适合出门游玩"

words = jieba.cut_for_search(sentence)

print("|".join(words))

运行上述代码,会输出以下结果:

今天|天气|真好|,|适合|出门|游玩

与精确模式相比,搜索引擎模式会将长词语再次进行切分,这里切分出了“今天天气”、“适合出门”等词语。 适用于搜索引擎分词、自然语言处理等方向的应用,也可以用于结巴分词的高级功能。

4. 自定义词典

除了提供多种分词模式外,jieba库还提供了用户自定义词典的功能,可以在分词过程中优先使用自定义词典中的词语,提高分词的准确性。

将自定义词典与jieba库集成的方法如下:

import jieba

# 指定自定义词典文件位置

jieba.load_userdict("userdict.txt")

sentence = "我喜欢去北京天安门附近的草地散步"

words = jieba.cut(sentence)

print("|".join(words))

上述代码中,我们指定了一个名为“userdict.txt”的自定义词典文件。在使用jieba库分词时,系统会优先使用自定义词典中的词语,并且可以通过自定义词典来添加一些特定领域的专业词汇。

下面是一个自定义词典文件的样例:

清华大学 5 n

北京大学 5 n

草地散步 10 n

文件每行包含三个元素,分别为词语、词频和词性。其中,词频可省略,默认为5,词性也可省略,默认为n。

5. jieba库的其他功能

5.1 获取词语位置

在分词过程中,有时需要知道某个词语在句子中的位置。jieba库提供了一个可获取词语在句子中位置的方法:

import jieba

sentence = "我爱北京天安门"

words = jieba.tokenize(sentence)

for tk in words:

print("[%d,%d]: %s" % (tk[1], tk[2], tk[0]))

运行以上代码,会输出以下结果:

[0,1]: 我

[1,3]: 爱

[3,5]: 北京

[5,8]: 天安门

在输出结果中,每行包含三个元素,分别为词语、起始位置和终止位置(不包括终止位置本身)。

5.2 关键词提取

jieba还提供了一种关键词提取的功能,能够从一段文本中自动提取出若干个关键词。其方法如下:

import jieba

import jieba.analyse

sentence = "我爱北京天安门,天安门上太阳升"

keywords = jieba.analyse.extract_tags(sentence, topK=4, withWeight=True)

for word, weight in keywords:

print("%s %s" % (word, weight))

运行以上代码,会输出以下结果:

天安门 1.4657341845526315

北京 0.8367278761999999

升 0.7328670925063158

爱 0.4972322976

其中,jieba库的extract_tags方法包含了多个参数,其中topK表示返回关键词的数量,withWeight表示是否返回权重值。

结语

以上便是Python jieba库分词模式实例用法的相关内容。在实际应用中,我们可以根据需要选择不同的分词模式,优先使用自定义词典中的词语,或者通过关键词提取来获取文本的核心信息。希望我们的介绍能够对大家在中文自然语言处理方面有所帮助。

后端开发标签