分词的前向最大匹配和后向最大匹配

写在前面:常用的分词工具

  1. 结巴分词 结巴分词入口 https://github.com/fxsjy/jieba
  2. SnowNLP SnowNLP入口https://github.com/isnowfy/snownlp
  3. LTP LTP入口http://www.ltp-cloud.com/
  4. HanNLP HanNLP入口http://github.com/hankcs/Hanlp/

分词的最大匹配(Segmentation Method 1:Max Matching)

前向最大匹配(forward-max matching)

  • 定义:从前往后匹配字典中的词典,只要在词典中找到对应的词就不在细分。
  • max_len:通常都会设置一个max_len的参数,这个参数用来表示匹配时单词的最大长度。
    例子
    max_len=5
    句子:我们经常有意见分歧
    词典:[“我们”,“经常”,“有”,“有意见”,“意见”,“分歧”]
    开始匹配:
    ①【我们经常有】 ×
    【我们经常】 ×
    【我们经】 ×
    【我们】 √
    ②【经常有意见】 ×
    【经常有意】 ×
    【经常有】 ×
    【经常】 √
    ③【有意见分歧】 ×
    【有意见分】 ×
    【有意见】 √
    ④【分歧】 √

分词成功!!!!
注意:对于max_len的确定,通过观察或统计词典里词的整体分布,再结合需求确定最大长度max_len。

后向最大匹配(backward-max matching)

  • 具体思路和前向基本一致,只不过是从后往前开始匹配
  • 例子:
    句子:我们经常有意见分歧
    词典:[“我们”,“经常”,“有”,“有意见”,“意见”,“分歧”]
    开始匹配:
    ①【有意见分歧】 ×
    【意见分歧】 ×
    【见分歧】 ×
    【分歧】 √
    ②【经常有意见】 ×
    【常有意见】 ×
    【有意见】 √
    ③【我们经常】 ×
    【们经常】 ×
    【经常】 √
    ④【我们】 √
    成功!!!

双向最大匹配(backward-max matching)

  • 就是把前向和后向的结果相结合

最大匹配的缺点

  • 细分(有可能是更好)
  • 局部最优(贪心算法)
  • 效率(通常max_len越大,效率越低)
  • 歧义(不能考虑语义)

码字不易,希望有帮助!!!!!!!!!!!!!!!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值