This is hard code for calculating minimum edit distance between 2 words by Levenshtein method in Python. You can write more userfriendly code by Numpy package.
word1 = str("$#"+input('Please insert first word: '))
word2 = str("#"+input('Please insert second word: '))
#------------------------------------------------------
def Min(a,b,c):
result =a
if(b<a):
result =b
elif(c<b):
result = c
elif(c<a):
result=c
return result
#------------------------------------------------------
def Define():
resultList=[]
resultList.append(list(word1))
for i in range(0,len(word2)):
resultList.append(list(word2[i]+("0"*(len(word1)-1))))
return resultList
#------------------------------------------------------
def Initial():
resultList = Define()
for i in range(1,len(word1)):
resultList[1][i]=i-1
for j in range(0,len(word2)):
resultList[j+1][1]=j
return resultList
#------------------------------------------------------
def Calculate():
resultList = Initial()
for y in range(2,len(resultList[0])):
for x in range(2,len(resultList)):
if(resultList[x][0]==resultList[0][y]):
resultList[x][y]=int(resultList[x-1][y-1])
else:
resultList[x][y]=Min(int(resultList[x-1][y-1])+2,
int(resultList[x-1][y])+1,
int(resultList[x][y-1])+1)
return resultList
#------------------------------------------------------
levenshteinMatrix = Calculate()
for item in levenshteinMatrix:
print(item)
print("Minimum Edit Distance is {0}".format(levenstienMatrix[-1][-1]))
درباره این سایت