海量文本信息查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的主要内容,如果未能解决你的问题,请参考以下文章
从海量的文本中挖掘有用信息:文本挖掘及应用技巧 学术中国第十二期文本挖掘技能研习营