2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python的jieba分词词性标注

python的jieba分词词性标注

时间:2019-11-23 15:29:28

相关推荐

python的jieba分词词性标注

jieba分词的词性标注

在明哥的严厉催促下,我终于注册了我自己的博客,并且这是我写的第一篇博客,写得不好还请大家多多指出,以帮助小弟在编程之路上走得更远。

好了,废话就不多说了,直接进入主题吧。

号称“做最好的Python中文分词组件”的jieba分词是python语言的一个中文分词包。它的特点有:

支持三种分词模式:

◾ 精确模式,试图将句子最精确地切开,适合文本分析;

◾ 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

◾ 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

支持繁体分词

支持自定义词典

Python 2.x 下的安装

全自动安装:easy_install jieba或者pip install jieba

半自动安装:先下载/pypi/jieba/,解压后运行python setup.py install

手动安装:将jieba目录放置于当前目录或者site-packages目录

通过import jieba 来引用 (第一次import时需要构建Trie树,需要几秒时间)

Python 3.x 下的安装

目前master分支是只支持Python2.x 的

Python3.x 版本的分支也已经基本可用:

/fxsjy/jieba/tree/jieba3k

git clone /fxsjy/jieba.gitgit checkout jieba3kpython setup.py install<h1 style="font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 28px;"><a target=_blank name="-1" href="/fxsjy/jieba/blob/master/README.md#-1"></a>功能 1):分词</h1><ul class=" list-paddingleft-2" style="color: rgb(51, 51, 51); font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px;"><li><p>jieba.cut方法接受两个输入参数: 1) 第一个参数为需要分词的字符串 2)cut_all参数用来控制是否采用全模式 </p></li><li><p>jieba.cut_for_search方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细 </p></li><li><p> 注意:待分词的字符串可以是gbk字符串、utf-8字符串或者unicode </p></li><li><p> jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list </p></li></ul><p style="color: rgb(51, 51, 51); font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px;">代码示例( 分词 )</p><pre>#encoding=utf-8importjiebaseg_list=jieba.cut("我来到北京清华大学",cut_all=True)print"FullMode:","/".join(seg_list)#全模式seg_list=jieba.cut("我来到北京清华大学",cut_all=False)print"DefaultMode:","/".join(seg_list)#精确模式seg_list=jieba.cut("他来到了网易杭研大厦")#默认是精确模式print",".join(seg_list)seg_list=jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")#搜索引擎模式print",".join(seg_list)

Output:

【全模式】:我/来到/北京/清华/清华大学/华大/大学【精确模式】:我/来到/北京/清华大学【新词识别】:他,来到,了,网易,杭研,大厦(此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)【搜索引擎模式】:小明,硕士,毕业,于,中国,科学,学院,科学院,中国科学院,计算,计算所,后,在,日本,京都,大学,日本京都大学,深造

功能 2) :添加自定义词典

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

用法: jieba.load_userdict(file_name) # file_name为自定义词典的路径

词典格式和dict.txt一样,一个词占一行;每一行分三部分,一部分为词语,另一部分为词频,最后为词性(可省略),用空格隔开

范例:

之前: 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /

加载自定义词库后:李小福 / 是 / 创新办 / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /

自定义词典:/fxsjy/jieba/blob/master/test/userdict.txt

用法示例:/fxsjy/jieba/blob/master/test/test_userdict.py

"通过用户自定义词典来增强歧义纠错能力" ---/fxsjy/jieba/issues/14

功能 3) :关键词提取

jieba.analyse.extract_tags(sentence,topK) #需要先import jieba.analyse

setence为待提取的文本

topK为返回几个TF/IDF权重最大的关键词,默认值为20

代码示例 (关键词提取)

/fxsjy/jieba/blob/master/test/extract_tags.py

功能 4) : 词性标注(这是重点)

标注句子分词后每个词的词性,采用和ictclas兼容的标记法

用法示例

>>>importjieba.possegaspseg>>>words=pseg.cut("我爱北京天安门")>>>forwinwords:...printw.word,w.flag...我r爱v北京ns天安门ns

功能 5) : 并行分词

原理:将目标文本按行分隔后,把各行文本分配到多个python进程并行分词,然后归并结果,从而获得分词速度的可观提升

基于python自带的multiprocessing模块,目前暂不支持windows

用法:

jieba.enable_parallel(4)# 开启并行分词模式,参数为并行进程数

jieba.disable_parallel()# 关闭并行分词模式

例子:/fxsjy/jieba/blob/master/test/parallel/test_file.py

实验结果:在4核3.4GHz Linux机器上,对金庸全集进行精确分词,获得了1MB/s的速度,是单进程版的3.3倍。

功能 6) : Tokenize:返回词语在原文的起始位置

注意,输入参数只接受unicode

默认模式

result=jieba.tokenize(u'永和服装饰品有限公司')

fortkinresult:

print"word%s\t\tstart:%d\t\tend:%d"%(tk[0],tk[1],tk[2])

word永和start:0end:2word服装start:2end:4word饰品start:4end:6word有限公司start:6end:10

搜索模式

result=jieba.tokenize(u'永和服装饰品有限公司',mode='search')

fortkinresult:

print"word%s\t\tstart:%d\t\tend:%d"%(tk[0],tk[1],tk[2])

word永和start:0end:2word服装start:2end:4word饰品start:4end:6word有限start:6end:8word公司start:8end:10word有限公司start:6end:10

功能 7) : ChineseAnalyzer for Whoosh搜索引擎

引用:from jieba.analyse import ChineseAnalyzer

用法示例:/fxsjy/jieba/blob/master/test/test_whoosh.py

另附词性标注表如下:

1. 名词 (1个一类,7个二类,5个三类)

名词分为以下子类:

n 名词

nr 人名

nr1 汉语姓氏

nr2 汉语名字

nrj 日语人名

nrf 音译人名

ns 地名

nsf 音译地名

nt 机构团体名

nz 其它专名

nl 名词性惯用语

ng 名词性语素

2. 时间词(1个一类,1个二类)

t 时间词

tg 时间词性语素

3. 处所词(1个一类)

s 处所词

4. 方位词(1个一类)

f 方位词

5. 动词(1个一类,9个二类)

v 动词

vd 副动词

vn 名动词

vshi 动词“是”

vyou 动词“有”

vf 趋向动词

vx 形式动词

vi 不及物动词(内动词)

vl 动词性惯用语

vg 动词性语素

6. 形容词(1个一类,4个二类)

a 形容词

ad 副形词

an 名形词

ag 形容词性语素

al 形容词性惯用语

7. 区别词(1个一类,2个二类)

b 区别词

bl 区别词性惯用语

8. 状态词(1个一类)

z 状态词

9. 代词(1个一类,4个二类,6个三类)

r 代词

rr 人称代词

rz 指示代词

rzt 时间指示代词

rzs 处所指示代词

rzv 谓词性指示代词

ry 疑问代词

ryt 时间疑问代词

rys 处所疑问代词

ryv 谓词性疑问代词

rg 代词性语素

10. 数词(1个一类,1个二类)

m 数词

mq 数量词

11. 量词(1个一类,2个二类)

q 量词

qv 动量词

qt 时量词

12. 副词(1个一类)

d 副词

13. 介词(1个一类,2个二类)

p 介词

pba 介词“把”

pbei 介词“被”

14. 连词(1个一类,1个二类)

c 连词

cc 并列连词

15. 助词(1个一类,15个二类)

u 助词

uzhe 着

ule 了 喽

uguo 过

ude1 的 底

ude2 地

ude3 得

usuo 所

udeng 等 等等 云云

uyy 一样 一般 似的 般

udh 的话

uls 来讲 来说 而言 说来

uzhi 之

ulian 连 (“连小学生都会”)

16. 叹词(1个一类)

e 叹词

17. 语气词(1个一类)

y 语气词(delete yg)

18. 拟声词(1个一类)

o 拟声词

19. 前缀(1个一类)

h 前缀

20. 后缀(1个一类)

k 后缀

21. 字符串(1个一类,2个二类)

x 字符串

xx 非语素字

xu 网址URL

22. 标点符号(1个一类,16个二类)

w 标点符号

wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <

wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >

wyz 左引号,全角:“ ‘ 『

wyy 右引号,全角:” ’ 』

wj 句号,全角:。

ww 问号,全角:? 半角:?

wt 叹号,全角:! 半角:!

wd 逗号,全角:, 半角:,

wf 分号,全角:; 半角: ;

wn 顿号,全角:、

wm 冒号,全角:: 半角: :

ws 省略号,全角:…… …

wp 破折号,全角:—— -- ——- 半角:--- ----

wb 百分号千分号,全角:% ‰ 半角:%

wh 单位符号,全角:¥ $ £ ° ℃ 半角:$

由于是第一次写博客,很多还不知道怎么用,就只能写成这样了,还请大家多多包涵。

 

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。