赞
踩
jieba.posseg.cut(sentence)是initialize操作之后分词程序的入口
__cut_internal(sentence)函数内部定义了四个正则表达式
re_han = re.compile(ur"([\u4E00-\u9FA5a-zA-Z0-9+#&\._]+)")
re_skip = re.compile(ur"(\r\n|\s)")
re_eng = re.compile(ur"[a-zA-Z0-9]+")
re_num = re.compile(ur"[\.0-9]+")
函数内部语句blocks = re_han.split(sentence)把整个句子多个部分blk,若blk满足re_han模式,说明是有汉字的字符串,然后调用__cut_DAG(blk),构建字符串DAG和route
1、get_DAG(sentence)函数
DAG是有向无环图,结巴分词中的DAG的数据结构是dict,元素的key是int,value是int列表
下面部分内容引用自http://www.xuebuyuan.com/1547637.html
举一个例子,比如sentence 是 "国庆节我在研究结巴分词",对应生成的DAG是这样的&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。