1、中文分词简介
难点:分词歧义
方法:
1)规则分词:人工建立词库,按一定方式匹配切分。缺点:对新词很难进行处理。
2)统计分词:利用机器学习技术。缺点:过于依赖语料的质量。
3)混合分词:上述两种方法的结合。(用得较多)
2、规则分词
主要是通过维护词典,在切分语句时,将语句的每个字符串与词表中的词进行逐一匹配,找到则切分,否则不予切分。
主要方法有:正向最大匹配法;逆向最大匹配法;双向最大匹配法。
(1)正向最大匹配法
算法描述:
1)从左向右取待切分汉语句的m个字符串作为匹配字段,m为机器词典中最长词条的字符数。
2)查找机器词典并进行匹配。若成功,则将这个匹配字段作为一个词切分出来。若不成功,则将这个匹配字段的最后一个词去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复以上过程,直到切分出所有词。
例子:
# -*- coding: utf-8 -*
class MM(object):
def __init__(self):
self.window_size = 3
def cut(self, text):
result = []
index = 0
text_length = len(text)
dic = ['研究', '研究生', '生命', '命', '的', '起源']
while text_length > index:
for size in range(self.window_size+index, index, -1): # 3,0,1
piece = text[index:size]
if piece in dic:
index = size-1
break # 打破最小封闭的for或者while循环
i