我正在尝试一些文本比较/基本抄袭检测,并希望在网站到网站的基础上进行尝试。然而,我在寻找处理文本的正确方法方面有点困难。

您如何处理和比较两个网站的内容是否抄袭?

我在想这样的伪代码:

// extract text
foreach website in websites
  crawl website - store structure so pages are only scanned once
  extract text blocks from all pages - store this is in list

// compare      
foreach text in website1.textlist
  compare with all text in website2.textlist

我意识到这个解决方案可以很快积累大量数据,因此可能只能适用于非常小的网站。

我还没有决定实际的文本比较算法,但现在我更感兴趣的是首先让实际的处理算法发挥作用。

我认为将所有文本提取为单独的文本片段(从段落、表格、标题等)是一个好主意,因为文本可以在页面上移动。

我正在用 C#(也许是 ASP.NET)实现它。

我对您可能提出的任何意见或建议非常感兴趣,所以请拍摄!:)

有帮助吗?

解决方案

我解决这个问题的方法是通过谷歌搜索您想要保护其版权的特定的、相当独特的文本块。

话虽如此,如果您想构建自己的解决方案,这里有一些评论:

  • 尊重 robots.txt。如果他们已将该网站标记为“请勿抓取”,那么他们很可能并不想从您的内容中获利。
  • 随着网站的变化,您将需要不时刷新您存储的网站结构。
  • 您需要将文本与 HTML 标签和 JavaScript 正确分开。
  • 您基本上需要在页面的整个文本(删除标签/脚本)中进行全文搜索,以找到您想要保护的文本。有一些很好的、已发布的算法可以实现这一点。

其他提示

你可能会更感兴趣的片段检测。例如,大量的网页将会对他们的字“家”和你不在乎。但是它是相当不可能的很多网页将会有确切的整个页面上相同的话。所以,你可能想比较,并在具有长度4,5,6,7,8的话等罪名对每个长度exct比赛,和网页的报告。分配分数和重量他们,如果你超出你的“幻数”报告可疑xeroxers。

有关C#,您可以使用WebBrowser()来获取一个页面,很容易得到它的文本。很抱歉,没有代码示例方便的复制/粘贴,但MSDN通常具有相当不错的样本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top