gpt4 book ai didi

python - Levenshtein两个文件上的距离花费太多时间

转载 作者:行者123 更新时间:2023-12-02 10:29:57 28 4
gpt4 key购买 nike

我是编程新手,正在构建文件相似性查找器,该查找器可发现两个文件的相似性。
到目前为止,我将文件存储为两个字符串,然后使用levenshtein距离来查找文件的相似程度。
问题是,没有levenshtein距离的执行时间是206ms,这是由于文件到字符串的转换所致。
当我使用levenshtein距离时,执行时间高达19504ms
将文件转换为字符串所需时间的将近95倍,这成为我项目中的瓶颈
任何帮助,将不胜感激
我对C,C++和Python感到很满意。如果您能指出任何消息来源,我将不胜感激
这是我用于计算Levenshtein距离的函数的C++代码:

//LEVENSHTEIN
int levenshtein(std::string a, std::string b){
int len_a = a.length();
int len_b = b.length();
int d[len_a + 1][len_b+1];

for(int i = 0; i < len_a + 1; i++)
d[i][0] = i;

for(int j = 0; j < len_b + 1; j++)
d[0][j] = j;

for(int i = 1; i < len_a + 1; i++){
for(int j = 1; j < len_b + 1; j++){
if(a[i - 1] == b[j - 1]){
d[i][j] = d[i - 1][j - 1];
}
else{
d[i][j] = 1 + min(min(d[i][j-1],d[i-1][j]),d[i-1][j-1]);
}
}
}

int answer = d[len_a][len_b];

return answer;
}
我只需要比较两个文件,而不是更多。我了解了levenshtein中trie的用法,但这对于将多个字符串与源进行比较很有用。除此之外,我没有太多运气

最佳答案

有一个名为nltk的软件包。看看这个。

from nltk import distance
print(distance.edit_distance('aa', 'ab'))
输出:
1

关于python - Levenshtein两个文件上的距离花费太多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62624118/

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