比较字符串并将相似内容放在一起的最佳算法是什么?

时间:2015-06-23 23:05:32

标签: string algorithm metrics

我正在尝试将数据集中的冗余分组以进行某些分析。我的主要分析工具是他们的头衔。

我可能会有“蓝鸟”,“大蓝鸟”,“棕色狗”,“红狗”等等。

在这种情况下,我想将“蓝鸟”和“大蓝鸟”组合在一起,但不应将其他元素分组。

我知道字符串度量标准,但一般来说,它们对短语而不是单个字或嘈杂的字符串有多有效,哪个是这个问题的有效解决方案?

2 个答案:

答案 0 :(得分:0)

你可以使用人们通常在程序中放置数组的相同逻辑,修复变量(在这种情况下是一个我们将使用第一个单词的字符串)并将其与你拥有的字符串进行比较,总是寻找一个平等的词,如果它是相等的,你应该放在一个单独的矢量或特定的顺序。

然而,这样做会花费很多时间,也许不是最好的方法,因为它会逐字逐句逐句逐字逐句。否则,将字符串与大组中第一个单词的首字母分开似乎很有帮助。这样,您可以花更少的时间搜索重复的单词,从而优化内存的使用。

我从卡内基梅隆大学发现这篇论文,看起来很有意思,它谈到这个问题,你应该好好看看: String Metric

答案 1 :(得分:0)

字符串指标并不关心您的单词是否包含空格。因此,短语大多只是字符串而不是单词(在这方面),因此如果您执行模糊搜索,字符串指标也可以正常工作(尽管您可能希望单独搜索每个单词)。

虽然您似乎在寻找完全匹配,但我建议您根据标题的串联构建后缀树。然后,如果您有多个匹配项,则可以在每个标题和构建标题组中搜索该树。但是,您需要决定使用

等组合做什么
  • 蓝鸟
  • 大蓝鸟
  • 小蓝鸟

按照棕色/红色狗的例子,你不会想要组织大蓝鸟"与#34;小蓝鸟",但"蓝鸟"将与这两个组合。