Python:中文分词库jieba安装使用

434 阅读2分钟

本人已参与【新人创作礼】活动,一起开启掘金创作之路。 本文首发于CSDN

hello,大家好,我是wangzirui32,今天我们来学习jieba中文分词库如何安装使用。
开始学习吧!

1. pip安装

命令:

pip install jieba

没有报错即为安装成功。

2. 使用方法

2.1 精确模式

开启“精确模式”,jieba会把文本分词,输出最有可能正确的结果,这也是jieba库的基本操作,代码如下:

import jieba
my_text = "我正在学习Python"
# 分词 使用lcut函数
words = jieba.lcut(my_text)
print(words)

运行代码,输出:

Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache
Loading model cost 1.792 seconds.
Prefix dict has been built successfully.
['我', '正在', '学习', 'Python']

上面的全是jieba的分词提示,我们不需要管,只看结果就OK了。

2.2 全模式分词

开启“全模式分词”模式,jieba就会解析在句子中所有可能出现的词汇,代码如下:

import jieba
my_text = "好好学习Python"
words = jieba.lcut(my_text, cut_all=True)
print(words)

输出:

['好好', '好好学', '好好学习', '好学', '学习', 'Python']

如上输出,“好好学习”被jieba解析成了5个可能出现的词语。

2.3 搜索模式

“搜索模式”是在“精确模式”的基础上,对长词再次切分,代码:

import jieba
my_text = "我喜欢Python 写代码时“津津有味”的"
words = jieba.lcut_for_search(my_text)
print(words)

输出:

['我', '喜欢', 'Python', ' ', '写', '代码', '时', '“', '津津', '有味', '津津有味', '”', '的']

2.4 添加新词汇

jieba还提供了添加新词汇的功能,这使得分词时可以将某些新词归纳成一个词语,代码:

import jieba
jieba.add_word("人生苦短")
my_text = "人生苦短 我用Python"
words = jieba.lcut_for_search(my_text)
print(words)

输出:

['人生苦短', ' ', '我用', 'Python']

2.5 从文件中加载新词汇

创建一个txt文本文件,命名为dict.txt,输入:(每一行为一个新词汇)

人生苦短

再输入代码:

import jieba
jieba.load_userdict("dict.txt")
my_text = "人生苦短 我用Python"
words = jieba.lcut(my_text)
print(words)

与上一个代码输出相同,不再展示。

2.6 分词后返回词语类别

常见的词语类别有形容词,数词,名词,动词等,代码如下:

import jieba.posseg
my_text = """
Python是一门很好的编程语言,
我喜欢使用它。
"""
# posseg.lcut函数不仅返回分词结果 还返回各个词语的类别
words = jieba.posseg.lcut(my_text)
print(words)

运行代码,输出:(由于太长,每一项单独列出讲解)

[pair('\n', 'x'),
pair('Python', 'eng'),  - eng 英文标识 
pair('是', 'v'),        - v 动词标识
pair('一门', 'm'),		- m 数词标识
pair('很好', 'a'),      - a 形容词标识
pair('的', 'uj'),       - uj 单独的“的”字标识
pair('编程语言', 'n'), 	- n 名词标识
pair(',', 'x'),        - x 未知词汇
pair('\n', 'x'), 
pair('我', 'r'),        - r 代词
pair('喜欢', 'v'), 
pair('使用', 'v'), 
pair('它', 'r'), 
pair('。', 'x'), 
pair('\n', 'x')]

再补充2个:

  1. nr 人名标识
  2. d 副词标识

好了,今天的课程就到这里,喜欢的可以点个收藏,我是wangzirui32,我们下次再见!