中文分词:采用二元词图以及viterbi算法(四)

主程序:

 

 

ExpandedBlockStart.gif 主程序
#  -*- coding: cp936 -*-
result = []
delimiter
= '   '
delimiter2
= ' | '
from   Bigramwordsegemtation2  import  BygramViterbi
work
= BygramViterbi.Viterbi()
import  re
p1
= re.compile( ' \d+ ' )
f
= file(r ' c:\python26\Bigramwordsegemtation2\corpus-test\corpus-test-digit.utf-8.txt ' )
# sentence=['18038','374','30876','20854','12188','7055','4486','58016','27036','42155','37638','36507','49792','47264','10658','12188','60327']
#
sentence=['38622','40887','49847','49847','40119','60327','57002','5047','38814','38583','57002','40887','31388','38406']
#
sentence=['45751','61096','45751','45472','42137','63927','12146','40649','25363','10658','42167','45735','49301','25237','36501']
#
result=work.Segment(sentence)
#
print result

for  line  in  f:
    sentence
= p1.findall(line)
    
    
if  len(sentence) > 0:
        result_single
= work.Segment(sentence)
        result
= result + result_single
        
print  result_single
        
# s=raw_input('enter this')
     else :
         
continue
s
= []

for  m  in  result:
    m
= '   ' + m + '   '
    s.append(m)
finalresult
= delimiter2.join(s)
finalresult
= finalresult + ' | ' # 得到了和老师给的数据一致的格式类型
fresult = file(r ' c:\python26\Bigramwordsegemtation2\corpus-test\result.txt ' , ' w ' )
fresult.write(finalresult)
fresult.close()

print ' final finish congratulations! '
    

 

注:数据以及计算准确率的程序来源于刘群老师。只供学习交流使用。

一些资源下载地址

评测工具

数据(包括测试集和训练集)

我的分词程序(正向最大匹配,两种O概率平滑框架下的二元词图Viterbi分词方法)

附几张关于二元词图以及Viterbi分词的PPT,做作业的时候,我就是从这几张图中悟出拓扑图的含义的。记得交完作业后,有同学和我交流说Viterbi算法没有什么难得,确实哈,就像图的宽度优先,深度优先等的遍历算法一样,没什么稀奇的。关键点是在于如何给图建立一个拓扑序。当时在课上很多同学都采用了二元词图viterbi算法分词。大家的不同之处也就是在于图的拓扑序的定义。在(一)中,我已经给出了我的拓扑序建立方式,相信还有很多方式,欢迎大家一起交流。

 

 

 

 

 未完,见中文分词:采用二元词图以及viterbi算法(五)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值