文档章节

分词算法

将将将
 将将将
发布于 2016/04/20 15:44
字数 1571
阅读 185
收藏 2

由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少

一、最大正向匹配算法

通常简称为MM法。其基本思想为:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理……  如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。

例子:“今天来了许多新同事’”
假设:正向最大匹配方式,最大长度为5 (即词库词典中最长的词长度为5)
今天来了许 
今天来了 
今天来 
今天  >>>>>>> 得到一个词:今天 
来了许多新 
来了许多 
来了许 
来了 
来  >>>>>>>>> 得到一个词:来 
了许多新同 
了许多新 
了许多 
了许 
了 >>>>>>>>> 得到一个词: (在实际生产环境 “了”会被作为停用词过滤掉)
许多新同事 
许多新同 
许多新 
许多  >>>>>>>>> 得到一个词:许多 
新同事 
新同 
新  >>>>>>>>> 得到一个词:新 
同事  >>>>>>>>> 得到一个词:同事 

最后正向最大匹配的结果是: 
/今天/来/了/许多/新/同事/ 

二、逆向最大匹配

通常简称为RMM法。RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。

例子:“今天来了许多新同事’”
假设:正向最大匹配方式,最大长度为5 (即词库词典中最长的词长度为5)

许多新同事 
多新同事 
新同事 
同事 ====》得到一个词:同事 
来了许多新 
了许多新 
许多新 
多新 
新 ====》得到一个词:新 
天来了许多 
来了许多 
了许多 
许多 ====》得到一个词:许多 
今天来了 
天来了 
来了 
了 ====》得到一个词:了 
今天来 
天来 
来 ====》得到一个词:来 
今天 ====》得到一个词:今天 

最后反向最大匹配的结果是: 
/今天/来/了/许多/新/同事/ 

正向最大匹配和反向最大匹配的结果并不一定都相同 
例子:’我一个人吃饭’ 
1.正向最大匹配方式,最大长度为5 
我一个人吃 
我一个人 
我一个 
我一 
我 ====》得到一个词: 我 
一个人吃饭 
一个人吃 
一个人 
一个 ====》得到一个词:一个 
人吃饭 
人吃 
人 ====》得到一个词:人 
吃饭 ====》得到一个词:吃饭 

最后正向最大匹配的结果是: 
/我/一个/人/吃饭/ 

2.反向最大匹配方式,最大长度为5 
一个人吃饭 
个人吃饭 
人吃饭 
吃饭 ====》得到一个词:吃饭 
我一个人 
一个人 
个人 ====》得到一个词:个人 
我一 
一 ====》得到一个词:一 
我 ====》得到一个词:我 

最后反向最大匹配的结果是: 
/我/一/个人/吃饭/ 
这次两种方式的结果就不一致了。 

三、双向匹配

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

四、最少切分法

使每一句中切出的词数最少

五、全切分

全切分要求获得输入序列的所有可接受的切分形式,而部分切分只取得一种或几种可接受的切分形式,由于部分切分忽略了可能的其他切分形式,所以建立在部分切分基础上的分词方法不管采取何种歧义纠正策略,都可能会遗漏正确的切分,造成分词错误或失败。而建立在全切分基础上的分词方法,由于全切分取得了所有可能的切分形式,因而从根本上避免了可能切分形式的遗漏,克服了部分切分方法的缺陷。

全切分算法能取得所有可能的切分形式,它的句子覆盖率和分词覆盖率均为100%,但全切分分词并没有在文本处理中广泛地采用,原因有以下几点:

1)全切分算法只是能获得正确分词的前提,因为全切分不具有歧义检测功能,最终分词结果的正确性和完全性依赖于独立的歧义处理方法,如果评测有误,也会造成错误的结果。

2)全切分的切分结果个数随句子长度的增长呈指数增长,一方面将导致庞大的无用数据充斥于存储数据库;另一方面当句长达到一定长度后,由于切分形式过多,造成分词效率严重下降。



© 著作权归作者所有

共有 人打赏支持
将将将
粉丝 22
博文 30
码字总数 13288
作品 0
深圳
程序员
Java中文分词组件 - word分词

Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数...

杨尚川
2014/04/29
0
47
word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估

word分词是一个Java实现的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。 能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录...

杨尚川
2014/04/29
0
1
word v1.3 发布,Java 分布式中文分词组件

word 分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2015/08/29
4.4K
0
干货 | 自然语言处理(1)之聊一聊分词原理

前言 在做文本挖掘时,首先要做的预处理就是分词。英文单词天然有空格隔开容易按照空格分词,但有时也需要把多个单词做为一个分词,比如一些名词如“New York”,需要做为一个词看待。而中文...

sfm06sqvw55dft1
2017/12/08
0
0
R语言中文分词 --jiebaR

"结巴"中文分词的R语言版本,支持最大概率法(Maximum Probability),隐式马尔科夫模型(Hidden Markov Model),索引模型(QuerySegment),混合模型(MixSegment),共四种分词模式,同时...

yestr
2014/11/04
6.7K
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部