`
sungang_1120
  • 浏览: 323668 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

中文分词算法笔记(转载)

 
阅读更多

 

转载:http://www.cnblogs.com/lvpei/archive/2010/08/04/1792409.html

 

中文分词基本算法主要分类

基于词典的方法、基于统计的方法、基于规则的方法、(传说中还有基于理解的-神经网络-专家系统,按下不表)

1、基于词典的方法(字符串匹配,机械分词方法)

定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。

按照扫描方向的不同:正向匹配和逆向匹配

按照长度的不同:最大匹配和最小匹配

1.1正向最大匹配思想MM

1》从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数。

2》查找大机器词典并进行匹配。若匹配成功,则将这个匹配字段作为一个词切分出来。

若匹配不成功,则将这个匹配字段的最后一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复以上过程,直到切分出所有词为止。

wps_clip_image-18766

1.2逆向最大匹配算法RMM

该算法是正向最大匹配的逆向思维,匹配不成功,将匹配字段的最前一个字去掉,实验表明,逆向最大匹配算法要优于正向最大匹配算法。

1.3 双向最大匹配法(Bi-directction Matching method,BM)

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

1.3设立切分标志法

收集切分标志,在自动分词前处理切分标志,再用MM、RMM进行细加工。

1.4最佳匹配(OM,分正向和逆向)

对分词词典按词频大小顺序排列,并注明长度,降低时间复杂度。

优点:易于实现

缺点:匹配速度慢。对于未登录词的补充较难实现。缺乏自学习。

1.2基于统计的分词(无字典分词)

主要思想:上下文中,相邻的字同时出现的次数越多,就越可能构成一个词。因此字与字相邻出现的概率或频率能较好的反映词的可信度。

主要统计模型为:N元文法模型(N-gram)、隐马尔科夫模型(Hidden Markov Model, HMM)

1.2.1N-gram模型思想

模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积 .

我们给定一个词,然后猜测下一个词是什么。当我说“艳照门”这个词时,你想到下一个词是什么呢?我想大家很有可能会想到“***”,基本上不会有人会想到“陈志杰”吧。N-gram模型的主要思想就是这样的。

   对于一个句子T,我们怎么算它出现的概率呢?假设T是由词序列W1,W2,W3,…Wn组成的,那么P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)

   但是这种方法存在两个致命的缺陷:一个缺陷是参数空间过大,不可能实用化;另外一个缺陷是数据稀疏严重。

   为了解决这个问题,我们引入了马尔科夫假设:一个词的出现仅仅依赖于它前面出现的有限的一个或者几个词。

   如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为bigram。即
   P(T) = P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)
          ≈P(W1)P(W2|W1)P(W3|W2)…P(Wn|Wn-1)

   如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为trigram。

   在实践中用的最多的就是bigram和trigram了,而且效果很不错。高于四元的用的很少,因为训练它需要更庞大的语料,而且数据稀疏严重,时间复杂度高,精度却提高的不多。

设w1,w2,w3,...,wn是长度为n的字符串,规定任意词wi 只与它的前两个相关,得到三元概率模型

wps_clip_image-20787

以此类推,N元模型就是假设当前词的出现概率只同它前面的N-1个词有关。

1.2.2隐马尔科夫模型思想

1.3基于规则的分词(基于语义)

通过模拟人对句子的理解,达到识别词的效果,基本思想是语义分析,句法分析,利用句法信息和语义信息对文本进行分词。自动推理,并完成对未登录词的补充是其优点。不成熟.

具体概念:有限状态机\语法约束矩阵\特征词库

1.4基于字标注的中文分词方法

以往的分词方法,无论是基于规则的还是基于统计的,一般都依赖于一个事先编制的词表(词典)。自动分词过程就是通过词表和相关信息来做出词语切分的 决策。与此相反,基于字标注的分词方法实际上是构词方法。即把分词过程视为字在字串中的标注问题。由于每个字在构造一个特定的词语时都占据着一个确定的构 词位置(即词位),假如规定每个字最多只有四个构词位置:即B(词首),M (词中),E(词尾)和S(单独成词),那么下面句子(甲)的分词结果就可以直接表示成如(乙)所示的逐字标注形式:

(甲)分词结果:/上海/计划/N/本/世纪/末/实现/人均/国内/生产/总值/五千美元/
(乙)字标注形式:上/B海/E计/B划/E N/S 本/s世/B 纪/E 末/S 实/B 现/E 人/B 均/E 国/B 内/E生/B产/E总/B值/E 五/B千/M 美/M 元/E 。/S

    首先需要说明,这里说到的“字”不只限于汉字。考虑到中文真实文本中不可避免地会包含一定数量的非汉字字符,本文所说的“字”,也包括外文字母、阿拉伯数 字和标点符号等字符。所有这些字符都是构词的基本单元。当然,汉字依然是这个单元集合中数量最多的一类字符。
把分词过程视为字的标注问题的一个重要优势在于,它能够平衡地看待词表词和未登录词的识别问题。在这种分词技术中,文本中的词表词和未登录词都是用统一的 字标注过程来实现的。在学习架构上,既可以不必专门强调词表词信息,也不用专门设计特定的未登录词(如人名、地名、机构名)识别模块。这使得分词系统的设 计大大简化。在字标注过程中,所有的字根据预定义的特征进行词位特性的学习,获得一个概率模型。然后,在待分字串上,根据字与字之间的结合紧密程度,得到 一个词位的标注结果。最后,根据词位定义直接获得最终的分词结果。总而言之,在这样一个分词过程中,分词成为字重组的简单过程。然而这一简单处理带来的分 词结果却是令人满意的。

2.1中文分词的难点

1\歧义问题

最困难\最核心的问题:只用机械匹配进行分词,其精度不可能高,不能满足高标准要求.

交集型歧义\组合型歧义\真歧义

依靠上下文\语义来解决.

分享到:
评论

相关推荐

    最新逆向最大匹配分词算法 盘古分词 分词算法 中文分词 源码

    在提供的压缩包文件中,包含了各种与分词相关的源码,例如"zt_逆向最大匹配分词算法"可能是实现逆向最大匹配算法的具体代码,"秒盘古分词"可能是指快速版本的盘古分词程序,"中文分词"和"英文分词"源码分别针对中文...

    中文分词算法研究

    中文分词算法研究,中文分词算法研究,中文分词算法研究

    中文分词算法研究整理资料

    中文分词是自然语言处理(NLP)领域中的基础任务,它是将连续的汉字序列切分成具有语义的单个词汇的过程。在这个“中文分词算法研究整理资料”中,我们可以期待找到关于如何处理中文文本,尤其是如何进行有效分词的...

    分语算法,分词算法介绍

    分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 ...

    中文自动分词算法

    中文自动分词算法 中文自动分词算法是自然语言处理中的一项基本技术,旨在将中文文本切分成单个词语,以便更好地进行信息检索、自动标引、自动文摘、机器翻译、语言学研究、搜索引擎研究和自然语言理解等领域的应用...

    我自己设计的中文分词算法

    中文分词算法设计 在本文中,我们将讨论中文分词算法的设计和实现。中文分词算法是自然语言处理和信息检索领域中的一个重要问题。本文将从最大匹配法的缺陷开始,讨论中文分词算法的设计目标和实现方法。 1. 最大...

    中文词库-分词算法必备

    分词算法是中文自然语言处理的基础,其目标是将连续的汉字序列切分成有意义的词语单元。常见的分词算法包括基于规则的方法、基于统计的方法和基于深度学习的方法。例如,最大匹配法(Maximal Matching)、HMM(隐...

    java 实现的中文分词算法(代码)

    Java实现的中文分词算法是自然语言处理领域中的重要技术,尤其在文本挖掘、搜索引擎、信息检索等场景中发挥着关键作用。FMM(Fast Mapping Model)和BMM(Bigram Mapping Model)是两种常见的中文分词算法,它们都是...

    基于逆向匹配的中文分词算法

    ### 基于逆向匹配的中文分词算法 #### 概述 中文分词作为自然语言处理(NLP)的基础任务之一,在信息检索、文本挖掘、机器翻译等领域发挥着至关重要的作用。与英文等西方语言相比,中文没有明确的单词边界标识,...

    分词算法介分词算法介

    词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语分词介绍分词算法 汉语...

    中文分词算法程序

    中文分词是自然语言处理(NLP)领域中的基础任务,它是将连续的汉字序列切分成具有语义的单个词汇。在这个“中文分词算法程序”中,开发者使用C++编程语言实现了一种方法来处理这个任务。C++是一种高效、灵活且强大...

    中文分词算法详解.pptx

    中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 PPT中详细的描述了现有中文分词算法

    中文分词算法

    中文分词算法

    贝叶斯网络概率中文分词算法

    中文分词是中文信息处理的基础步骤,其目的是将连续的汉字序列切分成具有语义的词汇单元,对于后续的词性标注、句法分析、情感分析等任务至关重要。 首先,我们要理解贝叶斯网络(Bayesian Network)的基本概念。...

    分词算法设计思想

    在中文文本处理中,由于汉字的组合多样性,分词显得尤为重要。本文将围绕"分词算法设计思想"这一主题,详细探讨其核心概念和实现策略。 首先,一个完整的分词系统通常包括词库和分词算法两个关键组成部分。词库是...

    java实现中文分词simhash算法

    中文不同于英文,单词之间没有明显的分隔符,因此在处理中文文本时,我们需要先进行分词,即将连续的汉字序列切分成有意义的词汇单元。Sanford中文分词库是一种常用的分词工具,它基于统计模型,能够根据语料库学习...

    最大匹配分词算法概述

    最大匹配分词算法最大匹配分词算法最大匹配分词算法最大匹配分词算法最大匹配分词算法最大匹配分词算法

    正向最大匹配中文分词算法

    但不管实现如何,目前而言的分词系统绝大多数都是基于中文词典的匹配算法。其中最为常见的是最大匹配算法 (Maximum Matching,以下简称MM算法) 。MM算法有三种:一种正向最大匹配,一种逆向最大匹配和双向匹配。本...

Global site tag (gtag.js) - Google Analytics