基于HBase构建千亿级文本数据相似度计算与快速去重系统
前言 随着大数据时代的到来,数据信息在给我们生活带来便利的同时,同样也给我们带来了一系列的考验与挑战。本文主要介绍了基于 Apache HBase 与 Google SimHash 等多种算法共同实现的一套支持百亿级文本数据相似度计算与快速去重系统的设计与实现。该方案在公司业务层面彻底解决了多主题海量文本数据所面临的存储与计算慢的问题。 一. 面临的问题 1. 如何选择文本的相似度计算或去重算法? 常见的有余弦夹角算法、欧式距离、Jaccard 相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,但在海量数据背景下,如果每天产生的数据以千万计算,我们如何对于这些海量千万级的数据进行高效的合并去重和相似度计算呢? 2. 如何实现快速计算文本相似度或去重呢? 如果我们选好了相似度计算和去重的相关算法,那我们怎么去做呢?如果待比较的文本数据少,我们简单遍历所有文本进行比较即可,那对于巨大的数据集我们该怎么办呢?遍历很明显是不可取的。 3. 海量数据的存储与快速读写 二. SimHash 算法引入 基于问题一,我们引入了 SimHash 算法来实现海量文本的相似度计...