Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pymysql
- connection = pymysql.connect(host='localhost',
- user='root',
- password='12345',
- db='mycorpus',
- charset='utf8mb4',
- cursorclass=pymysql.cursors.DictCursor)
- def minEditDistR(target, source):
- """ Minimum edit distance. Straight from the recurrence. """
- i = len(target); j = len(source)
- if i == 0: return j
- elif j == 0: return i
- return(min(minEditDistR(target[:i-1],source)+1,
- minEditDistR(target, source[:j-1])+1,
- minEditDistR(target[:i-1], source[:j-1])+substCost(source[j-1], target[i-1])))
- def substCost(x,y):
- if x == y: return 0
- else: return 2
- entry = "kend"
- #fisrt two letter
- f2l = entry[:2]+"%"
- #user_input = input("Enter a word : ")
- dictArray = [{}]
- try:
- with connection.cursor() as cursor:
- sql = "select WORD from corpus where WORD LIKE %s AND CHAR_LENGTH(WORD) BETWEEN %s AND %s"
- cursor.execute(sql,(f2l, len(entry)-1,len(entry)+1))
- results = cursor.fetchall()
- for i in results:
- dictArray.append({'wrd':i['WORD'],'distance':0})
- result_array.append((i['WORD'],0))
- finally:
- connection.close()
- for i in range(1, len(dictArray)-1):
- dictArray[i]['distance'] = minEditDistR(dictArray[i]['wrd'], entry)
- if dictArray[i]['distance'] == 1:
- print(dictArray[i]['wrd'], dictArray[i]['distance'])
Add Comment
Please, Sign In to add comment