HMM最大マッチング分詞アルゴリズム(Python)
3244 ワード
順方向最大マッチングアルゴリズムは中国で最も早く提案された中国語分詞問題を解決するアルゴリズムであり、その簡単で操作しやすいため、今でも機械分詞の粗分アルゴリズムとして、今日から見れば、このアルゴリズムの正確率ははるかに高くなく、満足できる要求に達することができない.これはただの練習です.
私とあなたは共にすばらしい新しい生活を創造します
辞書:共同、創造、すばらしい、新しい、生活
予想分詞効果:私とあなたは共にすばらしい新しい生活を創造します
分詞の成果:私とあなたは共にすばらしい新しい生活を創造します
リコール率:100%正解率:100%
文章は「Blueliner,fighting!!!」」という啓発に感謝します.
Blueliner,fighting!!!の『中国語分詞アルゴリズムの最大順方向マッチングアルゴリズム(Python版)』[文章リンク]
私とあなたは共にすばらしい新しい生活を創造します
辞書:共同、創造、すばらしい、新しい、生活
予想分詞効果:私とあなたは共にすばらしい新しい生活を創造します
# Python 3.4.3
lexicon = (' ',' ',' ',' ',' ',' ') # , 。
wordSeg = [] #
maxWordLen = 3 # 3
with open('test.txt','r', encoding='utf-8') as src:
sentence = src.read()
sentenceLen = len(sentence)
wordLen = min(maxWordLen, sentenceLen)
startPoint = 0
while startPoint < sentenceLen: #
matched = False #
for i in range(maxWordLen, 0, -1): # 3 1
string = sentence[startPoint:startPoint+i] # startPoint startPoint+i-1
if string in lexicon:
wordSeg.append(string)
matched = True
break
if not matched: #
i = 1
wordSeg.append(sentence[startPoint]) #
startPoint += i
with open('WordSeg.txt', 'w', encoding='utf-8') as des:
for word in wordSeg:
des.write(word+' ')
分詞の成果:私とあなたは共にすばらしい新しい生活を創造します
リコール率:100%正解率:100%
文章は「Blueliner,fighting!!!」」という啓発に感謝します.
Blueliner,fighting!!!の『中国語分詞アルゴリズムの最大順方向マッチングアルゴリズム(Python版)』[文章リンク]