大佬教程收集整理的这篇文章主要介绍了在第一个列表中的单词中搜索一个字母,并替换为 Python 中第二个列表中的真实单词,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个程序,从输入中获取两个参数,第一个参数是一个句子(字符串),第二个参数是一个单词列表。 在问题的一部分中,如果句子中的单词可以通过替换、添加或删除字符来匹配列表中的单词之一,则该单词必须替换列表中的正确单词。 如果是单词中间的字母@R_624_6618@定义!
enter code heredef ListToString(s):
str1 = " "
return (str1.join(s))
str_True=input("please enter true String :")
lst_True=[]
main_lst=[]
while True:
word=input("please enter a word:")
if word=="end":
break
else:
lst_True.append(word)
lst_str=List(str_True.split(" "))
print(lst_str)
for i in range(len(lst_str)):
for j in range(len(lst_TruE)):
if (len(lst_str)) > 2 and lst_str[i]!=lst_True[j]:
if lst_str[i]==lst_True[j][:-1] or lst_str[i]==lst_True[j][1:] or
lst_True[j]==lst_str[i][:-1] or lst_True[j]==lst_str[i][1:] or lst_str[i]==lst_True[j]
[:j]+lst_True[j][j+1:] or lst_True[j]==lst_str[i][:i]+lst_str[i][i+1:]:
lst_str[i]=lst_True[j]
print(lst_str)
print(ListToString(lst_str))
您所说的是 Levenshtein 距离。 Levenshtein 距离是单词之间的相似性度量,其中给定 2 个单词,它测量将一个单词转换为另一个单词的插入、删除或替换的次数。
因此您可以执行以下操作:
def levenshteinDistanceDP(token1,token2):
distances = [[0]*(len(token2)+1) for _ in range(len(token1)+1)]
for t1 in range(len(token1) + 1):
distances[t1][0] = t1
for t2 in range(len(token2) + 1):
distances[0][t2] = t2
a = 0
b = 0
c = 0
for t1 in range(1,len(token1) + 1):
for t2 in range(1,len(token2) + 1):
if (token1[t1-1] == token2[t2-1]):
distances[t1][t2] = distances[t1 - 1][t2 - 1]
else:
a = distances[t1][t2 - 1]
b = distances[t1 - 1][t2]
c = distances[t1 - 1][t2 - 1]
if (a <= b and a <= C):
distances[t1][t2] = a + 1
elif (b <= a and b <= C):
distances[t1][t2] = b + 1
else:
distances[t1][t2] = c + 1
return distances[len(token1)][len(token2)]
str_True = set(input("please enter true String :").split()) # We will use set for faster queries and to avoid duplicates.
lst_True = []
while True:
word=input("please enter a word:")
if word == "end":
break
else:
lst_True.append(word)
original = lst_True.copy()
for i in range(len(str_TruE)):
if not lst_True[i] in str_True: # if the word is already on the set,it already meets the conditions.
for word in str_True:
if levenshteinDistanceDP(lst_True[i],word) <= 1:
lst_True[i] = word
print("Original:",*original)
print("Result:",*lst_TruE)
您可以在此处了解更多信息:https://blog.paperspace.com/implemenTing-levenshtein-distance-word-autocomplete-autocorrect/
以上是大佬教程为你收集整理的在第一个列表中的单词中搜索一个字母,并替换为 Python 中第二个列表中的真实单词全部内容,希望文章能够帮你解决在第一个列表中的单词中搜索一个字母,并替换为 Python 中第二个列表中的真实单词所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。