分词"/>
jieba分词
# -*- coding: utf-8 -*-#正向最大匹配法text='研究生命的最初起源'#即将被分词的文本
dic=['研究','研究生','生命','命','的','最','初','起源'] #在这个字典进行匹配
ww=7 #每次取七个字符来匹配
MMresult=[]
index=0
text_length=len(text)while text_length>index:for size in range(ww+index,index,-1):print(size,':',ww+index,index,-1)#输出遍历索引的过程piece=text[index:size]print(piece)#输出每次尝试匹配的字符串if piece in dic:index=size-1breakindex=index+1MMresult.append(piece+'--')
print(MMresult)#逆向最大匹配法text='研究生命的最初起源'#即将被分词的文本
dic=['研究','研究生','生命','命','的','最','初','起源'] #在这个字典进行匹配
ww=7 #每次取七个字符来匹配
RMMresult=[]
index=len(text)while index>0:for size in range(index-ww,index):print(size,':',index-ww,index)#输出遍历索引的过程piece=text[size:index]print(piece)#输出每次尝试匹配的字符串if piece in dic:index=size+1breakindex=index-1RMMresult.append(piece+'--')
RMMresult.reverse()
print(RMMresult)#把正向最大匹配法写成一个类
'''
class MM(object):# def __init__(self):# self.ww=7def cut(self,text):ww=7 #每次取七个字符来匹配result=[]index=0text_length=len(text)dic=['研究','研究生','生命','命','的','最','初','起源']while text_length>index:for size in range(ww+index,index,-1):print(size,':',ww+index,index,-1)#输出遍历索引的过程piece=text[index:size]print(piece)#输出每次尝试匹配的字符串if piece in dic:index=size-1breakindex=index+1result.append(piece+'--')print(result)
if __name__=='__main__':text='研究生命的最初起源'token=MM()print(token.cut(text)) '''
#把逆向最大匹配法写成一个类
'''
class RMM(object):def __init__(self):self.w=7def cut(self,text):dic=['研究','研究生','生命','命','的','最','初','起源'] #在这个字典进行匹配result=[]index=len(text)while index>0:for size in range(index - self.w,index):print(size,':',index - self.w,index)#输出遍历索引的过程piece=text[size:index]print(piece)#输出每次尝试匹配的字符串if piece in dic:index=size+1breakindex=index-1result.append(piece+'--')result.reverse()print(result)if __name__=='__main__':text="研究生命的最初起源"tokenn=RMM()print(tokenn.cut(text))
'''
更多推荐
jieba分词
发布评论