问一个相似度的算法问题

问一个相似度的算法问题

我有一个目录,如下

铁金刚大战金手指CD3.iso
铁金刚大战金手指CD2.iso
海角七号a.rmvb
海角七号b.rmvb
女拳霸.avi

这种,想用perl根据相似度提取文件名,然后建不同的目录,给相同的文件copy到那个目录中
如上就有三个目录
铁金刚大战金手指
          |------铁金刚大战金手指CD3.iso
           ------铁金刚大战金手指CD2.iso
海角七号
          |------海角七号a.rmvb
           ------海角七号b.rmvb
女拳霸
          |-----女拳霸.avi
不知能不能用perl写对比这种文件名的相似度的脚本出来,我想了很久。。不知怎么下手



QUOTE:
原帖由 iakuf 于 2008-12-12 16:23 发表
不知能不能用perl写对比这种文件名的相似度的脚本出来,

现在不是 Perl 能不能的问题,而是你会不会的问题。
呵呵,我想是的,,能不能指点一下想法。。。。。我看看能不能根据指点来实现一下...
这不就是取公共前缀嘛。


QUOTE:
原帖由 iakuf 于 2008-12-12 16:45 发表
呵呵,我想是的,,能不能指点一下想法。。。。。我看看能不能根据指点来实现一下...

你可以去 CPAN 上搜下 string diff 方面的模块


QUOTE:
原帖由 flw 于 2008-12-12 16:45 发表
这不就是取公共前缀嘛。

不一定是公共前缀吧?在其他地方只有微小差异的字符串也可以看作是类似的。


QUOTE:
原帖由 MMMIX 于 2008-12-12 16:48 发表

不一定是公共前缀吧?在其他地方只有微小差异的字符串也可以看作是类似的。

那就复杂了。
倒是有个这样的模块,我用过,不过不知道是否满足楼主的要求。

Shell 版搜索 diff + flw 应该就可以找到
这个要对比的可能不只二个文件,所以麻烦
相似度,看情况了,有些时候较难处理的
哪位高手给个例子
我认为可以想成找多个字符串的最长公共子字符串