当前位置:   article > 正文

中文分词笔记之三:示例代码及测试结果_中文分词结果在线测试

中文分词结果在线测试

示例代码:

  1. /**
  2. *g为邻接表
  3. *i为当前节点
  4. */
  5. Iterator<CnToken> it1 = g.getPrev(i);//得到一级前驱词集合
  6. double maxProb = Double.NEGATIVE_INFINITY;
  7. int maxPrev1 = -1;
  8. int maxPrev2 = -1;
  9. while(it1.hasNext()) {
  10. CnToken t1 = it1.next();
  11. Iterator<CnToken> it2 = g.getPrev(t1.start);//得到一级前驱词对应的二级前驱词集合
  12. while(it2.hasNext()){
  13. CnToken t2 = it1.next();
  14. int bigramFreq=getBigramFreq(t1,t2);//从二元词典找二元频率
  15. double biProb = lambda1*t1.freq + lambda2*(bigramFreq/t2.freq);//平滑后的二元概率
  16. double nodeProb = prob[t2.start]+(Math.log(biProb));//二元模型
  17. if (nodeProb > maxProb)//概率最大的算作最佳前趋
  18. {
  19. maxPrev1 = t1.start;
  20. maxPrev2 = t2.start;
  21. maxProb = nodeProb;
  22. }
  23. }
  24. }
  25. 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]
天下  的  事情  天下  管 


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/361460
推荐阅读
相关标签
  

闽ICP备14008679号