[英]Most effective way to calculate Edit distance between two lists?
我有两个文件,一个是 CSV,另一个是文本文件。 它们都包含 Unicode 个单词。 我的任务是比较这两个文件中的单词以纠正拼写错误。(CSV 文件包含拼写错误的单词,文本文件包含正确的单词)CSV 文件包含大约 1000 个单词,文本文件包含 5000 个单词。 我已经为此任务实现了以下代码,因为我是 python 的新手,所以效率非常低。 有什么建议可以提高效率。
import pandas as pd
import nltk
df = pd.read_csv('C:/mis_spel.csv',encoding='utf8')
list_check_words = df['words'].tolist()
df2 = pd.read_csv('C:/words.txt',encoding='utf8',delimiter='\t')
list_words = df2['word'].tolist()
for word in list_check_words:
for dix in list_words:
ed = nltk.edit_distance(word, dix)
if (ed<2):
print(word, dix, ed)
这对于您的用例来说可能有点矫枉过正,但无论如何我还是把它放在这里。 AFAIK,如今拼写自动更正的行业标准涉及通过词嵌入的视角来看待问题。 在过去,曾使用过基于 n-gram 的概率方法,但现在已不再使用。
你想要做的,可能是这样的:
我在下面添加了对两篇不同文章的引用,它们对此进行了更详细的解释。 不过有一个建议,请尝试探索来自gensim的 ANNOY 索引,它对于近似最近邻搜索来说非常快。 从个人经历来说。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.