Python实用库 ( 2 ) - 结巴分词

安装方式

pip install jieba

基本使用

分词模式

功能说明

示例

# encoding=utf-8
import jieba
import jieba.posseg as pseg

wd = "我想要带你去浪漫的土耳其,然后一起去北京清华大学。"

# 精确模式
print(" / ".join(jieba.cut(wd)))
# 我 / 想要 / 带你去 / 浪漫 / 的 / 土耳其 / , / 然后 / 一起 / 去 / 北京 / 清华大学 / 。

# 全模式
print(" / ".join(jieba.cut(wd, cut_all=True)))
# 我 / 想要 / 带你去 / 浪漫 / 的 / 土耳其 /  /  / 然后 / 一起 / 去 / 北京 / 清华 / 清华大学 / 华大 / 大学 /  /

# 搜索引擎模式
print(" / ".join(jieba.cut_for_search(wd)))
# 我 / 想要 / 带你去 / 浪漫 / 的 / 土耳其 / , / 然后 / 一起 / 去 / 北京 / 清华 / 华大 / 大学 / 清华大学 / 。

自定义词典

开发者可以指定自己自定义的词典,以便包含jieba词库里没有的词。虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率

jieba.load_userdict("./dict.txt") # 添加一行 北京清华大学
print(" / ".join(jieba.lcut(wd)))
# 我 / 想要 / 带你去 / 浪漫 / 的 / 土耳其 / , / 然后 / 一起 / 去 / 北京清华大学 / 。

# 动态修改词典
jieba.add_word("浪漫的土耳其", freq=None, tag=None)
jieba.del_word("北京清华大学")
print(" / ".join(jieba.lcut(wd)))
# 我 / 想要 / 带你去 / 浪漫的土耳其 / , / 然后 / 一起 / 去 / 北京 / 清华大学 / 。

词性标注

words = pseg.cut(wd)
for word, flag in words:
    print("%s %s" % (word, flag))

我 r
想要 v
带你去 n
浪漫的土耳其 x
, x
然后 c
一起 m
去 v
北京 ns
清华大学 nt
。 x

词性对照表

- a 形容词  
	- ad 副形词  
	- ag 形容词性语素  
	- an 名形词  
- b 区别词  
- c 连词  
- d 副词  
	- df   
	- dg 副语素  
- e 叹词  
- f 方位词  
- g 语素  
- h 前接成分  
- i 成语 
- j 简称略称  
- k 后接成分  
- l 习用语  
- m 数词  
	- mg 
	- mq 数量词  
- n 名词  
	- ng 名词性语素  
	- nr 人名  
	- nrfg    
	- nrt  
	- ns 地名  
	- nt 机构团体名  
	- nz 其他专名  
- o 拟声词  
- p 介词  
- q 量词  
- r 代词  
	- rg 代词性语素  
	- rr 人称代词  
	- rz 指示代词  
- s 处所词  
- t 时间词  
	- tg 时语素  
- u 助词  
	- ud 结构助词 得
	- ug 时态助词
	- uj 结构助词 的
	- ul 时态助词 了
	- uv 结构助词 地
	- uz 时态助词 着
- v 动词  
	- vd 副动词
	- vg 动词性语素  
	- vi 不及物动词  
	- vn 名动词  
	- vq 
- x 非语素词  
- y 语气词  
- z 状态词  
	- zg 

看起来效果还不错,更多用法参考:https://github.com/fxsjy/jieba

-- EOF --
最后更新于: 2024-08-17 14:44
发表于: 2017-01-06 20:46
标签: Python