清华大学thulac分词和词性标注代码理解

     清华大学的thulac中分分词词法包,包含有中文分词和词性标注,从测试精度和速度看,效果还不错,github上有提供c++和python代码,c++代码包含有训练和测试代码,python代码只有测试代码,速度也较慢,github地址为:https://github.com/thunlp/THULAC。

     根据github上提出的参考文献,完全无法看懂代码和文章有什么关系,代码也比较难以理解,因此在记录一下自己对于代码分词原理的理解,希望对于后续研究的人有些帮助。

      认真的研究了一下c++代码,发现thulac代码与基于压缩感知机原理的中文分词类似,同样采用来7个特征,首先对于输入文本,生成所有字的特征,同时初始化一个dat数组,一个特征权重数组fl_weights,fl_weights大小语总的特征数目相等,即每个特征对于于fl_weights的一个权重值,dat为特征在fl_weights中对于的权重的索引,即我们要查找某个特征featurefl_weights对于的权重,首先需要查找datfeature对于的索引index,得到index后我们便可以得到feature对于的权重为fl_weights[index]。那么dat是怎么索引的呢,如果总的features个数为N,那么dat的大小也要为N,当通常随着训练数据的增大,生成的特征数目也会很大,这dat就需要花费很大的内存,那么thulac中是怎么做的呢?

       首先说一下压缩感知机算法中特征的生成,对于输入句子s中的每个字wi,会根据其前后2个字生成7个特征,这7个特征分别为wi-2wi-1,wi-1wi-1wi,wi,wiwi+1wi+1,wi+1wi+2Thulac中在这7个特征后面添加了一个separator=’ ’即空格;对于分词,我们需要预测每个字属于B

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值