Page History
...
문장간 유사도측정(edit distance)
Code Block | ||||
---|---|---|---|---|
| ||||
def edit_distance(first , second): first_len , second_len = len(first) , len(second) if first_len > second_len : first , second = second , first first_len , second_len = second_len , first_len print first_len print second_len current = range(first_len+1) for i in range(1,second_len+1): previous , current = current , [i]+[0]*second_len for j in range(1,first_len+1): add , delete = previous[j]+1 , current[j-1]+1 change = previous[j-1] if first[j-1] != second[i-1]: change = change + 1 current[j] = min(add , delete , change) return current[first_len] sFirstStr = sys.argv[1] sSecondStr = sys.argv[2] sFirst = unicode(sFirstStr,'cp949') sSecond = unicode(sSecondStr,'cp949') nDistanceValue = edit_distance(sFirst,sSecond) print nDistanceValue |