最大匹配演算法進行分詞 前向 後向 python實現

2022-07-20 01:54:12 字數 1368 閱讀 5637

# 先定義個詞典

word_dict = ['我們', '經常', '有','有意見','意見','分歧']

# 滑動視窗的大小

max_len = 5

# 使用者的輸入

user_input = '我們經常有意見分歧'

len(user_input)

結果:9

前向最大匹配演算法的實現

# 前向最大匹配演算法

result =

i = 0

while i < len(user_input):

matched = false

pos = i + max_len if i + max_len < len(user_input) else len(user_input)

while user_input[i:pos] not in word_dict and i < pos:

print(user_input[i:pos])

pos -= 1

if i < pos:

matched = true

i = pos if matched == true else i + max_len

print(result)

輸出結果:

我們經常有

我們經常

我們經經常有意見

經常有意

經常有有意見分歧

有意見分

['我們', '經常', '有意見', '分歧']

後向最大匹配演算法的實現

# 後向最大匹配演算法 

result =

i = len(user_input)

while i > 0:

matched = false

pos = i - max_len if i - max_len > 0 else 0

while user_input[pos:i] not in word_dict and i > pos:

print(user_input[pos:i])

pos += 1

if i > pos:

matched = true

result.insert(0, user_input[pos:i])

i = pos if matched == true else i - max_len

print(result)

輸出結果:

有意見分歧

意見分歧

見分歧經常有意見

常有意見

我們經常

們經常['我們', '經常', '有意見', '分歧']

NLP最大匹配進行分詞

coding utf 8 author lhf time 2019 11 3 def max match need seg,dic,max len 5 test list for i in range len need seg out list while true min len min max ...

HMM學習最佳範例七 前向 後向演算法3

七 前向 後向演算法 forward backward algorithm 前向 後向演算法是baum於1972年提出來的,又稱之為baum welch演算法,雖然它是em expectation maximization 演算法的乙個特例,但em演算法卻是於1977年提出的。那麼為什麼說前向 後向...

HMM學習最佳範例七 前向 後向演算法5

七 前向 後向演算法 forward backward algorithm 上一節我們定義了兩個變數及相應的期望值,本節我們利用這兩個變數及其期望值來重新估計隱馬爾科夫模型 hmm 的引數pi,a及b 前向 後向演算法程式示例如下 在baum.c中 void baumwelch hmm phmm,i...