我正在构建一个用于练习的小型抄袭检测系统。 我做了一些关于Google的研究,认为我可能会使用Google API(自定义搜索API)来构建抄袭检测软件。
Well I found this question very helpful [How would you code an anti plagiarism site?]
我已设法使用以下代码从谷歌api获取搜索结果
<?php
ini_set('max_execution_time',300);
require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_CustomsearchService.php';
session_start();
$client = new Google_Client();
$client->setApplicationName('Google CustomSearch PHP Starter Application');
$client->setDeveloperKey('MY_DEVELOPER_KEY');
$search = new Google_CustomsearchService($client);
$to_search="This is the text that should be searched in google so that the result that I obtain can be used by my codes to perform plagarism analysis";
$result = $search->cse->listCse($to_search, array('cx' => 'MY_SEARCH_ENGINE_ID'));
for($i=0; $i<6; $i++)
{
print "<pre>" . print_r($result, true) . "</pre>";
}
?>
从$ result变量我有从谷歌搜索获得的[link],[snippet]和[html snipped]。 使用下面的代码
$result['items'][$i]['snippet'];
$result['items'][$i]['link'];
这里$ i是从循环中获得的整数值。
问题是 如你所知,我只能发送简短的关键字或几行用于在谷歌搜索而不是一个巨大的文本,所以我应该把大块的文本分成小行然后运行多个查询?或者我应该做别的事情? 我将获得的片段和链接值可以进行抄袭分析。这样做会导致大量查询超出每天100次查询的限制。
请建议我做我应该做的事情的正确方法。我正在向谷歌询问,然后用用户输入分析大文本的方式,这是正确的方法吗?
答案 0 :(得分:1)
我会这样做的方式是谷歌页面标题寻找完全匹配。很可能如果有人偷了你的内容,他们会使用相同的标题。
然后,您可以从此处拉出包含可能被盗内容的页面并进行比较。
更复杂的方法是搜索您自己的内容,以获得统计上不太可能的单词和短语。现代使用率低于平均水平的词。然后谷歌的内容包含所有最不可能的单词。然而,这将比第一种方法困难得多,因为您需要在Google中构建一个包含低搜索结果词和过度使用词的大型数据库。
第三种方法是在内容中搜索拼写错误的单词。然后让你的脚本谷歌拼写错误并寻找匹配。
第四个 - 仅仅是预防措施,最适合停止自动化刮刀,是让你的系统发明一个组成单词 - 一串字母和数字,根本不可能有任何搜索结果。然后让脚本监视新的搜索结果。上述组合可能会成为一个非常精彩的脚本和一个帽子,我敦促你作为开源发布。
祝你的项目好运。