「raqd」という単語がある場合、python を使用してスペルチェックを行うには、いわば、「スペルチェック」のオプションとして「rad」という単語を見つけるにはどうすればよいですか? 私がやろうとしてきたことはこれです:
def isbettermatch(keysplit, searchword):
i = 0
trues = 0
falses = 0
lensearchwords = len(searchword)
keysplits = copy.deepcopy(keysplit)
searchwords = copy.deepcopy(searchword)
#print keysplit, searchwords
if len(keysplits) == len(searchwords)-1:
i = 0
while i < len(keysplits):
j = 0
while j < lensearchwords:
if keysplits[i] == searchwords[j]:
trues +=1
searchwords.pop(j)
lensearchwords = len(searchwords)
elif keysplits[i] != searchwords[j]:
falses +=1
j +=1
i +=1
if trues >= len(searchwords)-1:
#print "-------------------------------------------------------", keysplits
return True
keysplit
['s', 'p', 'o', 'i', 'l']
は、たとえばlist のようなものでsearchword
、 は list になります['r', 'a', 'q', 'd']
。
関数が を返す場合、True
一致するキーワードを出力します。元。searchword
「 raqd」の「rad 」。
searchword
1文字の追加または削除で、可能なすべての一致を見つける必要があります。
そう例。「raqd」には「rad」のオプションがあり、「poted」は「posted」または「potted」にすることができます。
これまでのところ、リストを使用して各単語の文字を相互に比較しようとしています。私の質問は、現在の戦略がうまくいかない理由と、それを改善するにはどうすればよいかということです。なぜ間違った出力が得られるのかわかりません:
dna ira fra had har nra jar jaq bra era amd
私が得ている言葉のほんの一例です