【发布时间】:2010-09-08 03:14:09
【问题描述】:
在工作中,我们经常需要从字符串列表中找到一个与其他输入字符串最匹配的字符串。目前,我们正在使用 Needleman-Wunsch 算法。该算法通常会返回很多误报(如果我们将最低分数设置得太低),有时它在应该找到匹配项时(当最低分数太高时)并且大多数时候,我们需要手动检查结果。我们认为我们应该尝试其他替代方案。
您对算法有任何经验吗? 你知道这些算法之间的比较吗?
非常感谢一些建议。
PS:我们用 C# 编码,但你不应该关心它 - 我问的是一般的算法。
哦,对不起,我忘了提。
不,我们不使用它来匹配重复数据。我们有一个我们正在寻找的字符串列表——我们称之为搜索列表。然后我们需要处理来自各种来源(如 RSS 提要、网站、论坛等)的文本——我们提取这些文本的一部分(有整套规则,但这无关紧要),我们需要匹配那些反对搜索列表的人。如果该字符串与搜索列表中的某个字符串匹配 - 我们需要对该事物进行进一步处理(这也是无关紧要的)。
我们无法进行正常的比较,因为从外部来源提取的字符串大多数时候都包含一些额外的单词等。
无论如何,它不是用于重复检测。
【问题讨论】:
-
类似问题在这里stackoverflow.com/questions/31494/how-to-detect-duplicate-data和这里stackoverflow.com/questions/42013/… 其他可以通过相关标签和搜索词找到。但是,您没有明确说明为什么需要以这种方式匹配字符串——您是否在检查重复数据?
-
您匹配的是“真实”字符串(即英语)还是生物信息学?如果是真正的字符串,你用什么替换矩阵?