gpt4 book ai didi

python - 基于最大编辑距离的最可能词

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:39 24 4
gpt4 key购买 nike

我有一个单词的列表:

lst = ['dog', 'cat', 'mate', 'mouse', 'zebra', 'lion']

我还有一个 pandas 数据框:

df = pd.DataFrame({'input': ['dog', 'kat', 'leon', 'moues'], 'suggested_class': ['a', 'a', 'a', 'a']})

input suggested_class
dog a
kat a
leon a
moues a

我想用 lst 中的值填充 suggested_class 列,该值与 input 列中的单词具有最大的编辑距离.我正在使用 fuzzywuzzy 包来计算它。

预期的输出是:

input   suggested_class
dog dog
kat cat
leon lion
moues mouse

我知道可以用 autocorrect 包实现一些东西,比如 df.suggested_class = [autocorrect.spell(w) for w in df.input] 但是这对我的情况不起作用。

我试过这样的事情(使用 from fuzzywuzzy import fuzz):

for word in lst:
for n in range(0, len(df.input)):
if fuzz.ratio(df.input.iloc[n], word) >= 70:
df.suggested_class.iloc[n] = word
else:
df.suggested_class.iloc[n] = "unknown"

它只适用于设定的距离。我已经能够通过以下方式捕获最大距离:

max([fuzz.ratio(df.input.iloc[0], word) for word in lst])

但我无法将它与 lst 中的一个词相关联,随后用该词填充 suggested_class

最佳答案

既然你提到了fuzzywuzzy

from fuzzywuzzy import process
df['suggested_class']=df.input.apply(lambda x : [process.extract(x, lst, limit=1)][0][0][0])

df
Out[1365]:
input suggested_class
0 dog dog
1 kat cat
2 leon lion
3 moues mouse

关于python - 基于最大编辑距离的最可能词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com