有没有人能推荐一个可以比较两个字符串并返回它们匹配程度的Perl模块?我在CPAN上做了广泛搜索,虽然有类似的模块如String::Approx和Data::Compare,但它们并不符合我的要求。假设我有两个字符串:“I love you”和“I boht you”。我想要一种功能,它将比较这两个字符串,考虑到许多参数,按正确顺序匹配单词(例如,作为字符串中第一个单词的“love”不应与第二个字符串中第4个单词中的“love”“匹配”,即使两个字符串都具有该单词),单词不匹配但拼写几乎相似(例如说“love”和“loge”),单词数量等,并返回一个指数,比如在1的刻度上从0到1表示两个字符串之间的相似度程度。是否有这样的Perl模块?
Text::Levenshtein
。听起来你只是对你想要如何比较这些字符串有一个模糊的想法。Levenshtein距离是将一个字符串转换为另一个字符串所需的字符插入、删除或更改的数量。例如I love you
与I boht you
之间的距离为3,而与I loge you
之间的距离为1。那么你希望从中得到什么不同的结果呢? - Borodin