赞
踩
示例代码:
- /**
- *g为邻接表
- *i为当前节点
- */
- Iterator<CnToken> it1 = g.getPrev(i);//得到一级前驱词集合
- double maxProb = Double.NEGATIVE_INFINITY;
- int maxPrev1 = -1;
- int maxPrev2 = -1;
-
- while(it1.hasNext()) {
- CnToken t1 = it1.next();
- Iterator<CnToken> it2 = g.getPrev(t1.start);//得到一级前驱词对应的二级前驱词集合
- while(it2.hasNext()){
- CnToken t2 = it1.next();
-
- int bigramFreq=getBigramFreq(t1,t2);//从二元词典找二元频率
- double biProb = lambda1*t1.freq + lambda2*(bigramFreq/t2.freq);//平滑后的二元概率
- double nodeProb = prob[t2.start]+(Math.log(biProb));//二元模型
-
- if (nodeProb > maxProb)//概率最大的算作最佳前趋
- {
- maxPrev1 = t1.start;
- maxPrev2 = t2.start;
- maxProb = nodeProb;
- }
- }
- }
- prob[i] = maxProb;

示例结果:
text:end start:8 end:9 cost:0.0
data = 天:WordId:Freq[28:502][19:84]
data = 天下:WordId:Freq[25:0][11:0][19:21]
data = 下:WordId:Freq[20:1][11:951][19:0][29:0][28:16][40:332]
data = 的:WordId:Freq[36:54477]
data = 事:WordId:Freq[19:233][42:1][40:0]
data = 事情:WordId:Freq[19:95]
data = 情:WordId:Freq[20:7][19:101]
data = 天:WordId:Freq[28:502][19:84]
data = 天下:WordId:Freq[25:0][11:0][19:21]
data = 下:WordId:Freq[20:1][11:951][19:0][29:0][28:16][40:332]
data = 管:WordId:Freq[21:0][7:0][20:5][40:87][28:0][27:0][42:0]
天下 的 事情 天下 管
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。