2017-06-05 108 views
1

所以我试图计算两个大字符串(大约20-100)之间的距离。 障碍是性能,我需要运行20k距离比较。 (需要数小时)性能问题,编辑大字符串的距离LCP vs Levenshtein vs SIFT

经过调查,我发现了几个算法,而且我很难决定选择哪一个。 (基于性能VS准确度)

https://github.com/tdebatty/java-string-similarity - 每个算法的性能列表。

** ** EDITED

  1. 是SIFT4算法是一个良好的证明/可中继?
  2. SIFT4是否是正确的算法?
  3. 为什么它比基于LCP的/ Levinstein算法快得多?

  4. 剂量SIFT也用于图像处理?或者它是不同的东西?由AMH回答

谢谢。

回答

1

据我所知尺度不变特征变换(SIFT)是计算机视觉检测中的一种算法,用于描述图像中的局部特征。

如果你想找到相似的图像,你必须通过计算它们的距离来比较图像的局部特征,这些特征可能会做你打算做的事情。但我记得当地的特征是数字的矢量。它采用蛮力匹配:Feature Matching - OpenCV Library - SIFT

请阅读有关SIFT这里:http://docs.opencv.org/3.1.0/da/df5/tutorial_py_sift_intro.html

SIFT4这是您提供的链接上提到的是完全不同的事情。

+0

我不能选择这个答案。 由于我不清楚,你提供的答案不是我想要问的。 另外我觉得你的答案对这个线程很有价值,所以我投了票。谢谢。 –