JAVA中文分词流程图_中文分词4:Jieba DAG有向无环图分词

jieba分词用到了DAG分词法。在此介绍其原理:jieba分词流程图第一步:分句通过正则表达式,将文章内容切分,形成一个句子数组,这个比较好理解第二步:构建DAG词图下述程序其实是找以每个字为开头的成词位置,即构造出句子的有向无环图(DAG),就是一个字典。构建DAG对句子中的每个字进行分析,从该字右边一位开始,看sentence[k:i+1]这个词语是否在预设的字典中,这个字典保存了常用的词语...
摘要由CSDN通过智能技术生成

jieba分词用到了DAG分词法。在此介绍其原理:

c25abdad31a7

jieba分词流程图

第一步:分句

通过正则表达式,将文章内容切分,形成一个句子数组,这个比较好理解

第二步:构建DAG词图

下述程序其实是找以每个字为开头的成词位置,即构造出句子的有向无环图(DAG),就是一个字典。

c25abdad31a7

构建DAG

对句子中的每个字进行分析,从该字右边一位开始,看sentence[k:i+1]这个词语是否在预设的字典中,这个字典保存了常用的词语(和词语的一部分,但权重为0)和其权重。如果有,并且如果字典中的这个词的权值不等于0,那么就将i放到tmplist里,然后i+=1,继续往右看一个字。如果没有这个词,那就停下来,然后移动k,让k=k+1,找下一个字的成词位置。

比如有这样一个句::'我从海淀区搬到了朝阳区'。一共11个字,通过上面的计算,得到一个字典:::{0: [0], 1: [1], 2: [2, 3, 4], 3: [3, 4], 4: [4], 5: [5, 6], 6: [6], 7: [7], 8: [8, 9, 10], 9: [9], 10: [10]}。这个字典就是DAG。字典的key代表每个字在字符串中的位置,比如,0代表'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值