【问题标题】:how to iterate over the file and find the closest match between words [updated]?如何遍历文件并找到单词[更新]之间最接近的匹配?
【发布时间】:2019-11-28 01:07:28
【问题描述】:

我正在尝试从我的正确单词列表(如查找表)中找到拼写错误单词的匹配项。我有一个代码使用 leven(来源:wikipedia)相似度来比较 1 个单词与查找列表并选择最佳匹配(也通过定义成本)。

我的单词列表看起来像 correctList.txt:

words = ['computer','test','right','tesla','omega','energy']

基于 Levenshtein 相似性所需的两个输入,我提供以下输入:

userInput = 'compute'
limitSearch = int('3')

output = check(userInput, limitSearch)
for result in output: 
    print ('\n closeMatches: ', result)        

现在我想扩展它,而不是使用查找字典检查一个拼写错误的单词,而是使用拼写错误的单词列表(类似于以下文件)并将其与我的正确 list.txt 进行比较并替换最好的匹配。

我的 mispelled.txt 示例:

misspelled = ['computee','teste','righ','tessla','oomega','energie']

如果您能提供帮助,那就太好了。

【问题讨论】:

    标签: python dictionary similarity


    【解决方案1】:

    我真的只是在大约一个小时前做了这样的事情。我使用了一个名为 leven 的模块来完成它。我在 repl.it 中制作了它,因为我在 Chromebook 上。 Here is a link to it如果你想看的话。

    【讨论】:

    • 感谢您的评论和链接。它非常有用。我想它的工作原理和我的一样。你有什么想法可以帮助我的代码也可以工作吗?
    • @Bilgin 我在 for 循环中调用的函数将返回您尝试使用的“cost”值,如果您遍历所有可能的单词,您可以使用带有成本最低。
    • 好的。我试图运行您的代码(因为它非常简单),但我无法运行它。我确保我安装了pip install leven 并以 ``` 正确(leven,amount=5)``` 运行代码。您能否提供一些运行代码的指南?
    • 该函数被称为 levenstein 但我设置的距离等于 levenstein
    • 您需要在函数中提供一个字符串,您不需要包含amount = 5,除非您将其设为 5 以外的其他值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多