中文分词算法

本文详细介绍了中文分词算法,包括基于词表的分词算法(正向最大匹配法、逆向最大匹配法、双向最大匹配法)、基于统计模型的分析算法(N-gram语言模型)以及基于序列标注的分词算法(HMM、MEMM、CRF和深度学习的端到端方法)。这些算法在中文信息处理中起着关键作用。
摘要由CSDN通过智能技术生成

写在最前面:

由于我们chinese language的特殊性,不和英文中有天然空格符一样,我们需要将汉字序列切分成单独的词。

分词算法是文本挖掘的基础,通常对整个模型的效果起着较大的决定作用。中文分词算法主要分为基于词表的分词算法、基于统计模型的分词算法、基于序列标注的分析算法。下面我们来一一剖析吧

准备好了吗!迎接疾风吧,数学能让人清醒!!!

目录

1.基于词表的分词算法

    1.1正向最大匹配法(FMM)

    1.2逆向最大匹配法(BMM)

    1.3双向最大匹配法

2.基于统计模型的分析算法

    2.1基于N-gram语言模型的分词方法

3.基于序列标注的分词算法

    3.1基于HMM的分词方法

    3.2基于MEMM的分词方法

    3.3基于CRF的分词方法

    3.4基于深度学习的端对端的分词方法

1.基于词表的分词算法

    1.1正向最大匹配法(FMM)

概念:对于输入的一个文本序列从左至右,以贪心的算法切分出当前位置上长度最大的词

分词原理:单词的颗粒度越大,所能表示的含义越确切

分词步骤:

  • 首先我们有一个词库word_dict还一个待分词的字符串s,首先我们计算得到词库中最长词语的长度假设为m,从字符串第一个位置开始,选择一个最大长度的词长片段,如果该字符串的长度不足最大词长,则选择该全部字符串;
  • 判断选择出来的字符串片段是否在词库中,若在,则将此词分离出来,若不在,则从右边开始,逐一减少一个字符,直到这个片段存在在词典中结束,或者以只剩下最后一个字结束;
  • 字符串变为上一步截取分词后剩下的部分序列,直到序列完全被分割。

哈哈哈,上面肯定看的迷迷糊糊的,大家都这么过来的,文字太多容易视觉疲劳,那我们来举个小小的栗子吧。

比如说待分割的序列s=‘我爱长沙理工大学’,然后我们的word_dict={'喜欢',‘长沙’,‘长沙理工大学’,...}假设其中最长词语的长度是6,接下来步骤就是

 

  • ‘我爱长沙理工’(不在)-->'我爱长沙理‘(不在)-->'我爱长沙’(不在)-->'我爱长'(不在)-->'我爱'(不在)-->'我' ====剩余一个字,加入词典
  • ‘爱长沙理工大’(不在) -->'爱长沙理工'(不在)-->’爱长沙理‘(不在)-->'爱长沙'(不在)-->'爱长'(不在)-->'爱'====剩余一个字,加入词典
  • '长沙理工大学'====在词典中,加入,遂分割完毕

于是"我爱长沙理工大学"就分割成了"我/爱/长沙理工大学"

 

    1.2逆向最大匹配法(BMM)

    如果比较深入的理解啦1.1中所说的正向最大匹配,那么只要将正向从左至右筛选的顺序换成从右至左筛选就好了。

    其实90%(这个数字我乱编的,你可以理解成为大部分的意思)的情况下正向最大匹配法和逆向最大匹配法分词的结果都是一样的,但是也存在不一样的哟,比如说'结婚的和尚未结婚的'通过FMM可能会被分割成'结婚/的/和尚/未/结婚的/',但是通过BMM可能就会被分割成'结婚/的/和/尚未/结婚/的'

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值