基本的分词算法调研
2018-02-07 15:43
176 查看
NLP领域基本技术之一,分词(word segmentation)
功能是将一句话用最合理的方式划分成词集合,符合语言特点和语义连贯。
基于字典词库匹配的分词方法(机械分词法)
应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单高效,但汉语语言复杂丰富,词典完备性、规则一致性等问题使其难以适应大规模文本的分词处理。
MM 最大匹配算法
假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理…… 如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
基于此的算法:MMSEG、IKAnalyzer
RMM 逆向最大匹配算法
RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。
最少切分法
使每一句中切出的词数最小。
双向匹配法
将正向最大匹配法与逆向最大匹配法组合。先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。
基于词频统计的分词方法
基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过统计真实语料取得的,因而基于统计的分词方法具有较好的实用性。
HMM 隐马尔可夫模型
利用隐马尔可夫模型进行中文分词
CRF 条件随机场
利用条件随机场模型进行中文分词
N-gram N元文法模型
认为一个词的出现仅依赖于它前面有限的一个或几个词。如果仅依赖于它前面出现的一个词,就称之为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。设w1,w2,w3,...,wn是长度为n的字符串,规定任意词wi只与它的前两个相关,得到三元概率模型。
在实践中用的最多的就是bigram和trigram了,而且效果很不错。高于四元的用的很少,因为训练它需要更庞大的语料,而且数据稀疏严重,时间复杂度高,精度却提高的不多。
以此类推,N元模型就是假设当前词的出现概率只同它前面的N-1个词有关。
4000
功能是将一句话用最合理的方式划分成词集合,符合语言特点和语义连贯。
基于字典词库匹配的分词方法(机械分词法)
应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单高效,但汉语语言复杂丰富,词典完备性、规则一致性等问题使其难以适应大规模文本的分词处理。
MM 最大匹配算法
假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理…… 如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
基于此的算法:MMSEG、IKAnalyzer
RMM 逆向最大匹配算法
RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。
最少切分法
使每一句中切出的词数最小。
双向匹配法
将正向最大匹配法与逆向最大匹配法组合。先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。
基于词频统计的分词方法
基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过统计真实语料取得的,因而基于统计的分词方法具有较好的实用性。
HMM 隐马尔可夫模型
利用隐马尔可夫模型进行中文分词
CRF 条件随机场
利用条件随机场模型进行中文分词
N-gram N元文法模型
认为一个词的出现仅依赖于它前面有限的一个或几个词。如果仅依赖于它前面出现的一个词,就称之为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。设w1,w2,w3,...,wn是长度为n的字符串,规定任意词wi只与它的前两个相关,得到三元概率模型。
在实践中用的最多的就是bigram和trigram了,而且效果很不错。高于四元的用的很少,因为训练它需要更庞大的语料,而且数据稀疏严重,时间复杂度高,精度却提高的不多。
以此类推,N元模型就是假设当前词的出现概率只同它前面的N-1个词有关。
4000
相关文章推荐
- 中文分词基本算法主要分类
- 中文分词基本算法介绍
- 中文分词基本算法主要分类
- 中文分词基本算法主要分类
- 基本算法思想之递推算法思想(C++语言描述)
- 【数据结构与算法】【排序】基本概念
- 分词算法介绍
- [翻译]C#数据结构与算法 – 第三章基本排序算法
- 总结STL的通用算法基本形式
- 数据检索---分词算法
- 基本算法和数据结构回顾(1)–排序
- 算法导论——lec 10 图的基本算法及应用
- 【算法·基本概念】master theorem 主定理
- Java算法基础----数据结构基本概念
- 图像基本处理算法的简单实现(三)
- 基本算法——排序算法
- 自然语言处理 最大逆向匹配分词算法
- 基本算法之二分法查找
- JVM调优总结(三)-基本垃圾回收算法
- 几何的基本算法常见问题及答案收集(转)