正向最大匹配法又稱mm法,其基本思想是: 假設分詞詞典中的最長詞由i個漢字字元組成,則 用被處理文件的當前字串中前i個字作為匹配 字段查詢詞典。若詞典中存在這樣乙個字詞,則 匹配成功,匹配字段作為乙個詞被切分出來,否則 匹配失敗。應將匹配欄位中的最後乙個字去掉, 對剩下的字串重新進行匹配處理。如此進行下 去,直到匹配成功。然後取下乙個字字串進行匹 配處理,直到文件被掃瞄完為止。
下面是我用python對mm演算法的簡單實現。其中用到的詞庫大家可以在網上找到。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
note1=input("enter your input: "); #鍵入文字內容
head1=0;
i1=10;
wordlist1= #分詞存放列表
typeis=input("敏感詞檢測輸入0,分詞輸入其他任意數字:")
if (typeis=='0'): #選擇詞庫
f=open('./mingan.txt','r')
else:
f=open('./ciku.txt','r')
for eachline in f:
nlen=len(eachline)-1;
f.close()
deffunction1
(note,wordlist,head,i):
#分詞演算法
won=
while (head <= len(note)):
if (head>=(len(note)-i)):
i=len(note)-head
for p in range(i):
rear=head+i-p;
flag=0
for each in wordlist:
if (note[head:rear]==each):
print ("詞有",each);
head=head+len(each);
flag=1;
break;
if (flag==1):
break;
if (flag==0):
head=head+1;
return won
won1=function1(note1,wordlist1,head1,i1)
print(won1)
os.system("pause")
中文分詞之正向最大匹配演算法
中文分詞目前可以分為 規則分詞 統計分詞 混合分詞 規則 統計 這三個主要流派。這次介紹下基於規則的分詞,其是一種機械的分詞方法,主要通過維護詞典,在切分語句時,將語句的每個字串與詞表中的詞逐一進行匹配,找到則切分,否則不予切分。正向最大匹配演算法 這裡需要知道兩點,乙個是分詞詞典 也即是已經分詞過...
分詞 最大正向匹配演算法及demo
最大匹配演算法作為分詞的最初級分詞演算法,作為學習,簡單實現一下。流程圖 line 姚明喜歡打籃球 res tokenize line,dic print res 輸出為 姚明 喜歡 打籃球作為學習,先簡單實現一下,後期不斷豐實。todo 1.停用詞 2.中文和其他字元混合 3.有日期 時間 url...
分詞演算法 正向最大匹配和逆向最大匹配實現
假設已經有正向匹配演算法原始碼,則可以將文件進行倒序處理,生成逆序文件,然後根據逆序詞典,對逆序文件使用正向最大匹配法處理即可。同理已經存在逆向最大匹配演算法,則只要將文件倒序處理,正向詞典倒序變為逆序詞典,則可以送入逆向西大匹配演算法中進行分詞處理。class imm object def ini...