首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个字符串的相似性的最好方法是什么?

比较两个字符串的相似性的最好方法是什么?
EN

Stack Overflow用户
提问于 2012-11-21 22:52:26
回答 3查看 446关注 0票数 1

所有这些字符串都指向同一部电影。我怎样才能比较它们的相似性呢?

我从外部来源获得所有这些字符串:

  • 蜘蛛侠
  • 蜘蛛侠
  • 蜘蛛侠1号
  • SpiderMan
  • 蜘蛛侠
  • 电影:蜘蛛侠
  • 电影:蜘蛛侠 对我来说,"Spider man 1""Spider man 2"是两个字符串,与"spider-man""spider man"完全不同。

我想要一个函数,如果它比较所有这些字符串,它将返回"true“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-21 22:56:46

我认为Smith-Waterman算法可以给你一些分数。

票数 2
EN

Stack Overflow用户

发布于 2012-11-21 22:56:59

使用Smith-Waterman算法或其他字符串相似算法.一种可能是使用FuzzBall

代码语言:javascript
复制
require 'fuzz_ball'
THRESHOLD_SCORE = 0.75
MATCHER = FuzzBall::Searcher.new [ 'Spider man' ]

def complies?( str )
  matchdata = MATCHER.search str
  return false if matchdata.nil? or matchdata.empty?
  score = matchdata[0][:score]
  puts "score is #{score}"
  score > THRESHOLD_SCORE
end

complies? 'man spider'
#=> score is 0.8
#=> true
票数 1
EN

Stack Overflow用户

发布于 2012-11-21 23:04:02

Levenshtein距离可以计算出将一个字符串转换为另一个字符串所需的更改数。

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

https://stackoverflow.com/questions/13503384

复制
相关文章

相似问题

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