海量文本信息查Top-k

Posted 暴力的轮胎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了海量文本信息查Top-k相关的知识,希望对你有一定的参考价值。

问题描述:

  有1千万条短信,一条一行,有重复。在5分钟之内,找出重复出现的前10条。

方案一:

  1.分组进行边扫描边建散列表。建立哈希表,使用头,尾和中间随便两个字节作为Hash Code, 插入到Hash table中,并记录其地址和重复次数。

  2.hash code同且等长-》判定为疑似相同。然后hash table统计重复次数。

  3.用线性时间选择在O(n)级别上完成前10条的寻找。

方案二:

  1.按照长度短-》长进行处理。

  2.按照长度进行分组,每组通过头尾中间粗略判断相等,找出每组的top10。

  3.从各次top10结果中找到备选的top10,然后再精确搜索找到真正的top10。

方案三:

  1.采用内存映射,加载文本。

  2.建立字典树,统计top10个字符串。

以上是关于海量文本信息查Top-k的主要内容,如果未能解决你的问题,请参考以下文章

从海量的文本中挖掘有用信息:文本挖掘及应用技巧 学术中国第十二期文本挖掘技能研习营

在线文本实体抽取能力,助力应用解析海量文本数据

在线文本实体抽取能力,助力应用解析海量文本数据

如何用Python从海量文本抽取主题?

基于PriorityQueue(优先队列)解决TOP-K问题

[C++] 位图-布隆过滤器-海量数据的处理问题