用于文本比较的Perl模块

时间:2012-08-01 16:46:21

标签: perl cpan

任何人都可以建议一个可以比较两个字符串并返回它们匹配程度的Perl模块吗?我广泛搜索了CPAN,虽然有类似的模块,如 String :: Approx Data :: Compare ,但它们并不是我想要的。假设我有两个字符串:我爱你我爱你。我想要比较这两个字符串的功能,考虑到众多参数,正确顺序的单词匹配(,因为字符串中的第一个单词不应该“匹配”作为第二个字符串中的第四个单词,即使两个字符串都有该单词),单词不匹配但拼写几乎相似(如说 loge ),数字等等,并返回一个索引,比如1,表示从0到1的数字,表示两个字符串之间的相似程度。有没有这样的Perl模块?

1 个答案:

答案 0 :(得分:6)

有很多这样的模块。但是,通常情况下,您必须以某种特殊方式利用它们来解释您自己的假设。像这样的大多数字符串比较工具只是实现了一些算法来比较一个字符串到另一个字符串大多数人认为,如果您要制定具体的政策决定,您将自己编码。

就个人而言,我不确定我会推荐Text::Levenshtein,因为存在漏洞和缺乏ut8支持。不过,我也没有更好的建议。

然而,这些搜索将揭示许多潜在的模块,您可以查看并确定哪些最适合您的目的(基于执行此类事情的常用算法的名称):

如果您对口语相似感兴趣,还可以查看语音比较: