103.jieba库解析

文摘   教育   2024-01-23 23:45   云南  


【目录】


  • 1. jieba库常用的分词函数

  • 2. jieba库的引用

  • 3. jieba.cut函数练习

  • 4.jieba.add_word(w) 向分词词典中增加新词w

  • 5. jieba.add_word(w)练习题


【正文】

学习时间30分钟。

1. jieba库常用的分词函数

1-jieba库常用的分词函数(7个)

2. jieba库的引用

如何在程序中引用jieba库?

【代码示例】

# 导入jieba库
import jieba

【语法】

import + 模块名

import [ˈɪmpɔːt]:导入。

jieba就是要引用的模块名。

3. jieba.cut函数练习

【jieba.lcut(s)语法回顾】

  • jieba是库名。
  • .英文小圆点。
  • luct是函数名。
  • ( )英文圆括号。
  • s 要操作的字符串对象。

jieba.lcut(s)-精准模式-将句子最精准的切分。

返回的是一个字符串列表。

【cut和lcut的区别】

jieba.cut(s)和jieba.lcut(s)都是精确模式,但返回值不一样。

  • jieba.cut(s) -精确模式-返回可迭代的数据类型
  • jieba.lcut(s)-精确模式-返回字符串列表

【jieba.lcut(s)示例】

import jieba

# 输入待分词的字符串
s = '中华人民共和国是一个伟大的国家'

# 使用jieba.cut()进行分词
word_list = jieba.lcut(s)

print("输出word_list:")
print(word_list)
print("输出word_list的数据类型:")
print(type(word_list))

【终端输出】

输出word_list:
['中华人民共和国', '是', '一个', '伟大', '的', '国家']
输出word_list的数据类型:
<class 'list'>

jieba.lcut(s)-精确模式-返回字符串列表

【jieba.cut(s)示例】

使用jieba.cut()对“中华人民共和国是一个伟大的国家”进行分词。

import jieba

# 输入待分词的字符串
s = '中华人民共和国是一个伟大的国家'

# 使用jieba.cut()进行分词
word_list = jieba.cut(s)

print("输出word_list:")
print(word_list)
print("输出word_list的数据类型:")
print(type(word_list))

【终端输出】

输出word_list:
<generator object Tokenizer.cut at 0x0000024004C9A510>
输出word_list的数据类型:
<class 'generator'>

jieba.cut(s) -精确模式-返回可迭代的数据类型

打印输出word_list,<generator object Tokenizer.cut at 0x000001AEEFE23510>表示word_list是一个可迭代对象。

type函数打印输出word_list的数据类型,class 'generator'表示类型为生成器。

class[klɑːs]:类型。

generator [ˈdʒenəreɪtə]:生成器。

【练习】

将迭代器转换为列表类型。

【list代码示例】

import jieba

# 输入待分词的字符串
s = '中华人民共和国是一个伟大的国家'

# 使用jieba.cut()进行分词
word_list = jieba.cut(s)

print(list(word_list))

【终端输出】

['中华人民共和国', '是', '一个', '伟大', '的', '国家']

list()函数可以将迭代器转换为列表类型

如果只要求输出迭代器内容,对数据类型没有要求,我们可以使用for循环来遍历迭代器里的内容。

【for循环代码示例】

import jieba

# 输入待分词的字符串
s = '中华人民共和国是一个伟大的国家'

# 使用jieba.cut()进行分词
word_list = jieba.cut(s)

# 使用for循环遍历迭代器
for word in word_list:
    print(word)
print(type(word))

【终端输出】

中华人民共和国

一个
伟大

国家
<class 'str'>
  • 使用for循环遍历和list函数得到的内容是一样的,但是返回的数据类型不一样。
  • for循环返回值类型为字符串。
  • list函数返回值类型为列表。

4.jieba.add_word(w) 向分词词典中增加新词w

【语法】

jieba.add_word(w)

  • jieba是库名。
  • .英文小圆点。
  • add_word是函数名。
  • ( )英文圆括号。
  • w要添加的自定义词语。

【作用】

调用jieba.add_word(w),可以将自定义词语w添加到jieba分词的词典中。

作用是在分词时能够正确识别和切分这些自定义词语。

5. jieba.add_word(w)练习题

【任务】

向分词词典中加入一些新的网络用语,并编写例子观察分词效果。

【代码示例:无jieba.add_word()】

import jieba

# 要分词的字符串对象
text= '我的公主请上车'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】

['我', '的', '公主', '请', '上车']

【代码示例:有jieba.add_word()】

import jieba

# 自定义一个新词:公主请上车
# 将网络词语【公主请上车】添加到分词字典中
# 【公主请上车】作为一个词组,将不会在被分开
jieba.add_word("公主请上车")

# 要分词的字符串对象
text= '我的公主请上车'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】

['我', '的', '公主请上车']

【返回结果对比】

  • ['我', '的', '公主','请' '上车']
  • ['我', '的', '公主请上车']

jieba.add_word("公主请上车")将公主请上车作为一个分词中的固定搭配词语,分词时不会把这个词语拆分开。

【代码示例:无jieba.add_word()】

import jieba

# 要分词的字符串对象
text = '公主请上车公主请上班公主请下单'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】

['公主', '请', '上车', 
'公主', '请', '上班',
'公主', '请', '下单']

【代码示例:有jieba.add_word()】

【添加词语:公主请】

import jieba

# 自定义一个新词:公主请
jieba.add_word("公主请")

# 要分词的字符串对象
text = '公主请上车公主请上班公主请下单'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】


['公主请''上车''公主请''上班''公主请''下单']

【添加词语:公主请上】

import jieba

# 自定义一个新词:公主请上
jieba.add_word("公主请上")

# 要分词的字符串对象
text = '公主请上车公主请上班公主请下单'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】

['公主请上', '车', '公主请上', '班', '公主', '请', '下单']

【添加词语:公主请上车】

import jieba

# 自定义一个新词:公主请上车
jieba.add_word("公主请上车")

# 要分词的字符串对象
text = '公主请上车公主请上班公主请下单'

# 进行精准模式分词
seg_list = jieba.lcut(text)
# 输出分词结果
print(seg_list)

【终端输出】

['公主请上车', '公主', '请', '上班', '公主', '请', '下单']


安迪python学习笔记
python学习笔记,适合初学者。
 最新文章