第10章 故事除重和变迁

万维网有多大?虽然不可能知道确切的大小,据估计在2008年它已拥有超过一万亿个页面,从数据时代的角度来看,这个时代相当于还处在中世纪。可以很肯定地认为,近十年后,互联网的集体大脑比真人两耳之间的大脑拥有更多的神经元。但是,在这万亿的URL中,有多少网页实际是相同、相似或覆盖同一主题的呢?

本章我们将对GDELT数据库进行除重和索引,将其转为“故事”。然后,我们将追踪故事随着时间推移的进展,了解它们之间的联系,如果它们在不久的将来能引发任何后续事件,那么它们又是如何变迁的呢?

在这一章里,我们将探讨以下主题。

  • 理解Simhash检测近似重复的概念。
  • 构建一个在线的除重API。
  • 用TF-IDF构建向量并用随机索引降低维度。
  • 用Streaming的KMeans构建伪实时的故事关联。

本章是关于把文章分组编成故事的,第1节是关于检测近似重复的。在深入研究除重算法本身之前,有必要花时间介绍在新闻报道的背景下“故事”和“除重”的概念。给定两篇不同的文章,所谓不同是有两个不同的URL,我们可以观察到以下情景。

  • 文章1的URL实际上重定向到文章2,或者是后者提供的URL的扩展(例如,一些附加的URL参数或短的URL)。两篇文章内容相同,即认定它们是“真实重复”的,虽然它们的URL不同。
  • 文章1和文章2都涵盖了完全相同的事件,但可能是由两个不同媒体发布的。它们有很多共同的内容,但不是完全相似。根据下面解释的某些规则,它们被认为可能是“近似重复”的。
  • 文章1和文章2均涵盖同一类型的事件。我们能发觉风格上的较大差异,或者同一主题下的不同特色。它们可以分组为一个共同的故事。
  • 文章1和文章2涉及两个不同的事件。两者内容都是不同的,不应该被分组在同一个故事中,也不应该被认为是近似重复的。 ...

Get 精通Spark数据科学 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.