• NLP之机械分词(四)


    1、正向最大匹配算法:MaximumMatching

    正:北京大学生前来应聘
    反:研究生命的起源
    1)从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数。
    2)查找大机器词典并进行匹配。若匹配成功,则将这个匹配字段作为一个词切分出来。
    若匹配不成功,则将这个匹配字段的最后一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复以上过程,直到切分出所有词为止。

    参考 <http://dsqiu.iteye.com/blog/1704960>

    2、邻近匹配算法

    邻近匹配算法是正向最大匹配算法的改进,因为正向正向最大匹配算法对每个不存在的长字符串都要进行一次二分搜索,算法复杂度太高,可以利用同一个首字符下的词条按升序排列这一条件,在找到某个字符串后,在其后增加一个字得到一个新字串,如果新字串在词典中出现,那么新词一定在原字串的后面,且相隔位置不会太远。这样就可以加快匹配进程。

    参考  <http://dsqiu.iteye.com/blog/1704960>


    3、逆向最大匹配算法:ReverseMaximumMatching

    该算法是正向最大匹配的逆向思维(最大匹配的顺序不是从首字母开始,而是从末尾开始),匹配不成功,将匹配字段的最前一个字去掉。

    由于汉语中偏正结构较多,若从后向前匹配,可以适当提高精确度。所以,逆向最大匹配法比正向最大匹配法的误差要小。统计结果表明 ,单纯使用正向最大匹配的错误率为 1/16 9,单纯使用逆向最大匹配的错误率为 1/245。例如切分字段“硕士研究生产”,正向最大匹配法的结果会是“硕士研究生 / 产”,而逆向最大匹配法利用逆向扫描,可得到正确的分词结果“硕士 / 研究 / 生产”。

    4、正向最小匹配算法:MinimumMatching

    使用正向最小匹配算法,必须注意的一点是:词典中不能有单字词,词的长度至少为2!

    参考 <http://yangshangchuan.iteye.com/blog/2040423>

    5、逆向最小匹配算法:ReverseMinimumMatching

    使用逆向最小匹配算法,必须注意的一点是:词典中不能有单字词,词的长度至少为2!

    参考 <http://yangshangchuan.iteye.com/blog/2040431>


    6、双向最大匹配算法:BidirectionalMaximumMatching

    将正向最大匹配法与逆向最大匹配法组合。先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。

    双向最大匹配法是将正向最大匹配法得到的分词结果和逆向最大匹配法的到的结果进行比较,从而决定正确的分词方法。据SunM.S. 和 Benjamin K.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正确,只有大概9.0%的句子两种切分方法得到的结果不一样,但其中必有一个是正确的(歧义检测成功),只有不到1.0%的句子,或者正向最大匹配法和逆向最大匹配法的切分虽重合却是错的,或者正向最大匹配法和逆向最大匹配法切分不同但两个都不对(歧义检测失败)。这正是双向最大匹配法在实用中文信息处理系统中得以广泛使用的原因所在。

    参考 <http://dsqiu.iteye.com/blog/1704960>

    参考 <http://www.cnblogs.com/flish/archive/2011/08/08/2131031.html>


    7、双向最小匹配算法:BidirectionalMinimumMatching

    参考 6

    8、双向最大最小匹配算法:BidirectionalMaximumMinimumMatching

    参考 1 3 4 5 6 7

    9、全切分算法:FullSegmentation

    全切分,就是把一句话中的所有词都找出来,只要是字典中有的就找出来。例如,“提高中国人生活水平”包含的词有:提高、高中、中国、国人、人生、生活、活水、水平。

    1)全切分算法只是能获得正确分词的前提,因为全切分不具有歧义检测功能,最终分词结果的正确性和完全性依赖于独立的歧义处理方法,如果评测有误,也会造成错误的结果。
    2)全切分的切分结果个数随句子长度的增长呈指数增长,一方面将导致庞大的无用数据充斥于存储数据库;另一方面当句长达到一定长度后,由于切分形式过多,造成分词效率严重下降。


    参考  <http://www.cnblogs.com/flish/archive/2011/08/08/2131031.html>
    参考  <http://www.cnblogs.com/royhoo/p/6642141.html?utm_source=itdadao&utm_medium=referral>

    全切分通常结合统计进行消歧。

    10、最少词数算法:MinimalWordCount

    使每一句中切出的词数最小,也叫最少切分法。我觉得把这个当作一个原则即可,比如我可以在全切分后,采用最少词数原则;也可以双向最大最小匹配后,采用最少词数原则。


    11、索引分词

    返回所有分词词组,主要用于搜索

    北京大学生毕业容易找工作
    [北京/ns, 大学生/nnt, 大学/nis, 学生/nnt, 毕业/v, 容易/ad, 找/v, 工作/vn]

    积累,沉淀
  • 相关阅读:
    编译器优化 → C关键字volatile → memory破坏描述符zz
    Mybatis 控制台打出SqlLog的设置
    J2EE ssm框架服务启动项内存加载数据及读取。
    Oracle 同步表权限分配(同义词)
    iOS开发雕虫小技之傻瓜式定位神器超简单方式解决iOS后台定时定位
    Oracle分页查询SQL实现
    iOS新建项目基本配置
    DP之子序列问题
    图论之最小生成树
    基础数论算法
  • 原文地址:https://www.cnblogs.com/hx78/p/7307401.html
Copyright © 2020-2023  润新知