PHP文章相似度比较,通过similar_text()比较有点慢,可否有什么好效率?
如果通过将文章内容全部存入文本,遍历拿需要比较的文章内容,
通过similar_text()比较,这样的方法是否可行?
回复讨论(解决方案)
本帖最后由 xuzuning 于 2013-07-31 17:54:18 编辑
可以用操作系统提供的文件差异命令
linux : diff
window : fc
他们都是按行处理的,报告中行数越多,自然相似度越低
可以用操作系统提供的文件差异命令
linux : diff
window : fc
他们都是按行处理的,报告中行数越多,自然相似度越低 具体是怎么实现呢?
比如(window)
system("fc 1.txt 2.txt > 3.txt");readfile('3.txt');
Salin selepas log masuk
linux 还有 wc 命令得到文件的行数
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
如果我直接读取数据库表信息,遍历内容,与需要比较的文章内容比较,我又该怎么做呢?
如果我先分词,在通过相似度比较,写算法什么的,是否可以?
因为一旦数据库文章数据量大,靠数据库内容存入文本,再比较,会不会太慢?
你也可以用 exec 直接返回差异结果数组
exec("fc 1.txt 2.txt", $a);print_r($a);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
如果你有能力,还可以下载并编译 xdiff 扩展
这个就不知道怎么弄。