【发布时间】:2022-12-06 12:24:57
【问题描述】:
我需要用正确的名称替换一些国家的名称。下面是我的数据框
names country
0 1 Austria
1 2 Autrisa
2 3 Egnald
3 4 Sweden
4 5 Swweden
5 6 India
我需要用正确的名称替换上面的国家。下面是我需要的输出
names country
0 1 Austria
1 2 Austria
2 3 England
3 4 Sweden
4 5 Sweden
5 6 India
correct_names = {'Austria','England','Sweden'}
def get_most_similar(word, wordlist):
top_similarity = 0.0
most_similar_word = word
for candidate in wordlist:
similarity = SequenceMatcher(None, word, candidate).ratio()
if similarity > top_similarity:
top_similarity = similarity
most_similar_word = candidate
# print(most_similar_word)
return most_similar_word
我得到的输出如下:-
0 Austria
1 Austria
2 England
3 Sweden
4 Sweden
5 England -- this should be India but it got converted to England
需要帮助来解决这个问题。
【问题讨论】:
-
你告诉它从集合“奥地利”、“英格兰”和“瑞典”中选择最接近的词。这些是它唯一会分配的名称。也许你想限制可接受的相似性。
-
如何更改代码以使其读取适当的名称。我尝试将 top_similarity 更改为 50.0,但仍然无法正确捕获。
-
你的函数中的单词表是什么?和
correct_names一样吗?