首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于相似性的排序字符串

基于相似性的排序字符串
EN

Stack Overflow用户
提问于 2015-07-13 09:28:00
回答 1查看 1.8K关注 0票数 7

考虑以下字符串:

  • 阿洛
  • 再见
  • 你好
  • =(再见)
  • (他)(Llo)
  • 再见

我试着把这些词分类,使相似的词结合在一起,我知道

  1. alphanumerical sorting不是一种选择
  2. 移除特殊的字符",-_ and etc,然后进行比较当然是有帮助的,但结果不会如我所希望的那样好。

注:

这方面可能很少有不同的期望产出,其中之一是:

期望输出:

  1. 你好
  2. 阿洛
  3. (他)(Llo)
  4. 再见
  5. 再见
  6. =(再见)

因此,我的问题是,如果有一个java包比较字符串,并最终根据字符串排序。

我听说过像n-gramskip-gram这样的术语,但并不完全理解它们。我甚至不确定它们是否对我有用。

更新:找到相似点当然是我问题的一部分,但主要问题是排序部分。

EN

回答 1

Stack Overflow用户

发布于 2015-07-13 09:39:36

这里有一个可能的方法。

计算每对字符串之间的编辑距离/Levenshtein距离,然后将字符串作为一个完整的图来查看,其中边权值来自编辑距离。为这些权重选择一个阈值,并将所有权重移除到较高的水平。然后在这个图中找到集团。如果您的阈值相当低,也许甚至可以选择找到连接的组件。

注意:也许用@dognose发布的链接中的一个相似度量来替换一些编辑距离会更好。另外,请注意,如果您有大量的字符串,那么查找集群将非常缓慢。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31379747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档