jieba是Python中的一个强大的分词库,可以完美的对中文进行分词。
简单用法及模式
jieba分词有3种分词模式,分别为 精确模式、全模式、搜索引擎模式,下面来分别介绍一下这3种模式。
- 精确模式:试图将句子最精确的分开,适合文本分析。
- 全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但不能解决歧义。
- 搜索引擎模式:在精确模式的基础上,对长词再次进行切分。
代码示例:
import jieba
text = '你是我生命中最美好的相遇,我不知道我还能够看你多久'
cut1 = jieba.cut(text) #精确模式
cut2 = jieba.cut(text,cut_all=True) #全模式
cut3 = jieba.cut_for_search(text) #搜索引擎模式
word1 = ' '.join(cut1)
word2 = ' '.join(cut2)
word3 = ' '.join(cut3)
print("精确模式分词结果:")
print(cut1)
print(word1)
print("全模式分词结果:")
print(cut2)
print(word2)
print("搜索引擎模式:")
print(cut3)
print(word3)
输出样例:
精确模式分词结果:
<generator object Tokenizer.cut at 0x0000026B21D78360>
你 是 我 生命 中 最 美好 的 相遇 , 我 不 知道 我 还 能够 看 你 多久
全模式分词结果:
<generator object Tokenizer.cut at 0x0000026B228DBFC0>
你 是 我 生命 命中 最美 美好 的 相遇 我 不知 知道 我 还 能够 看 你 多久
搜索引擎模式:
<generator object Tokenizer.cut_for_search at 0x0000026B22918990>
你 是 我 生命 中 最 美好 的 相遇 , 我 不 知道 我 还 能够 看 你 多久
由以上示例可见分词的结果返回的是一个生成器(generator)
词性标记
标记分词之后每个词的词性
import jieba
import jieba.posseg as psg
text = '你是我生命中最美好的相遇,我不知道我还能够看你多久'
for x in psg.cut(text):
print(x.word,x.flag)
输出样例:
你 r
是 v
我 r
生命 vn
中 f
最 d
美好 a
的 uj
相遇 v
, x
我 r
不 d
知道 v
我 r
还 d
能够 v
看 v
你 r
多久 m
Tokenize:返回词语在原文中的位置
- 注意:参数只接受 Unicode
- 默认模式
text = '永和服装饰品有限公司'
result = jieba.tokenize(text)
for tk in result:
print("word:"+str(tk[0])," start: "+str(tk[0])," end: "+str(tk[0]))
输出样例:
word:永和 start: 0 end: 2
word:服装 start: 2 end: 4
word:饰品 start: 4 end: 6
word:有限公司 start: 6 end: 10
- 搜索模式
text = '永和服装饰品有限公司'
result = jieba.tokenize(text,mode='search')
for tk in result:
print("word:"+str(tk[0])," start: "+str(tk[1])," end: "+str(tk[2]))
输出样例:
word:永和 start: 0 end: 2
word:服装 start: 2 end: 4
word:饰品 start: 4 end: 6
word:有限 start: 6 end: 8
word:公司 start: 8 end: 10
word:有限公司 start: 6 end: 10
可承接各种项目,有意者加QQ:1217898975