我需要编写一个接受字符串和列表的python拼写检查器。它将字符串中的每个单词与列表中的每个单词进行比较,如果列表中的单词是添加,减去或删除的一个字符,则返回结果。我无法找到如何使我的变量x每次不同。 这里是代码:Python拼写检查器
def spelling_corrector(q,r):
def single_insert_or_delete(s1,s2):
s1,s2 = s1.lower(), s2.lower()
count = 0
if s1 == s2:
return 0
elif len(s1) == len(s2):
return 2
elif len(s1) - len(s2) == -1:
if s1 == s2[:-1]:
return 1
else:
for i in range(len(s2)):
if s1 == s2[:i] + s2[i+1:]:
return 1
else:
return 2
elif len(s1) - len(s2) == 1:
if s1[:-1] == s2 or s1[1:] == s2:
return 1
else:
return 2
for word in q:
word.lower()
for correct in q:
correct.lower()
if single_insert_or_delete(word, correct) == 1:
x = q.replace(correct)
对此有何帮助?
是不是'q'应该是一个句子? (这似乎与[此问题]非常相似(http://stackoverflow.com/questions/35672938/write-a-function-named-spelling-corrector/35673773#35673773)。) –
是的,q是一个句子和split()使其成为单词列表 –
@Auston Hastings:你的答案似乎不起作用! –