Jieba分词包(三)——基于词频最大切分组合

本文介绍了Jieba分词包如何基于词频和DAG图,运用动态规划方法从后往前遍历,选择得分最高的切分组合。这种方法考虑了汉语句子的重心常在后面的特性,提高了正确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jieba分词包(三)——基于词频最大切分组合

    

    在前面,我们已经知道dict中所有的单词和词频信息已经存在了一个trie树中,并且需要分词的句子已经构建成了一个DAG图,构建的过程也运用了dict。那么这次我们来说如何基于每句话的DAG图,找到一个组合路径,使得该组合最合理(即打分最高)?


    我们直接针对Jieba分词的源代码来解释,其中已经有了很多注释:


def calc(sentence,DAG,idx,route):  #动态规划,计算最大概率的切分组合
	#输入sentence是句子,DAG句子的有向无环图
    N = len(sentence)  #句子长度
    route[N] = (0.0,'')
    for idx in xrange(N-1,-1,-1):  #和range用法一样,不过还是建议使用xrange
		#可以看出是从后往前遍历每个分词方式的

		#下面的FREQ保存的是每个词在dict中的频度得分,打分的公式是 log(float(v)/total),其中v就是被打分词语的频数
		 #FREQ.get(sentence[idx:x+1],min_freq)表示,如果字典get没有找到这个k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值