(Python实现中文分词最大匹配算法)研究生命的起源
生活随笔
收集整理的這篇文章主要介紹了
(Python实现中文分词最大匹配算法)研究生命的起源
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正向進行中文分詞匹配:
# -*- coding: utf-8 -*- # 待分詞語句 str_1='研究生命的起源' # 最大長度 M=3 # 詞典列表 list_1=['研究','研究生','生命','命','的','起源'] # 字符串載體 list_2=['研','究','生','命','的','起','源'] # 找到起始定位點 i=0 # 找需匹配的切片進行匹配 while i<=len(str_1)-(len(str_1)%M):if i+M<len(str_1):z=i+Melse:z=len(str_1)k=len(list_2)-len(str_1)while z>i:if str_1[i:z] in list_1[:]:list_2.insert(z+k,'/')i=zbreak;else:z-=1if z==i+1:list_2.insert(z+k,'/')i+=1 # 將載體的數據還原為字符串 str='' for i in list_2:str+=i # 去掉頭部和尾部的/ print(str.strip('/'))運行結果截圖:
?逆向進行中文分詞匹配:
# -*- coding:utf-8 -*- # 待分詞語句 str_1='研究生命的起源' # 最大字符數 M=3 # 詞典列表 list_1=['研究','研究生','生命','命','的','起源'] # 字符串載體 list_2=['研','究','生','命','的','起','源'] # 找到起始定位點 i=0 # 找需匹配的切片進行匹配 while i>len(str_1)%M-len(str_1):if abs(i-M)<=len(str_1):z=i-Melse:z=-len(str_1)k=len(list_2)-len(str_1)while z<i:if i==0:if str_1[z:] in list_1:list_2.insert(z-k,'/')i=zbreak;else:if str_1[z:i] in list_1:list_2.insert(z-k,'/')i=zbreak;if z==i-1:list_2.insert(z-k,'/')i+=1z+=1 # 將載體上數據還原為字符串 str_2='' for i in list_2:str_2+=i # 去掉頭部和尾部的/ print(str_2.strip('/'))運行結果截圖:
?敬請指正!
總結
以上是生活随笔為你收集整理的(Python实现中文分词最大匹配算法)研究生命的起源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 时间加五分钟_mysql当前
- 下一篇: 冠词