如何才能从十亿条推文中找到十大主题标签

时间:2012-07-05 18:46:28

标签: language-agnostic twitter

这是一个面试问题,有人问我,我没有真正得到一个好答案。我想知道是否有人可以帮助我理解解决方案:

"你有数十亿条推文流入。你将如何找出前10个主题标签? "

由于

2 个答案:

答案 0 :(得分:6)

创建一个地图,其中主题标签为密钥,计数器为值。

在收到的每条推文中增加每个标签的计数器。

检查计数器的值以找到前10名。

您对问题的措辞不包括任何会禁止这种直接解决方案的限制。在面试的情况下,我会要求澄清问题以引出这些限制。

在诸如“它必须以线性时间运行”这样的约束下,并且“它必须使用恒定的内存量”,会出现更多有趣的答案。


我不确定是否存在针对该问题的常量内存解决方案,但我知道一个相关(通常更有用)的问题:识别构成给定结果部分的元素。我给了它as an answer to a similar question.

(我说,“更有用”,因为如果给定项目的总分数低于阈值,则更可能是噪音而不是真正的“前10名”材料。)

答案 1 :(得分:3)

您可能无法分析所有推文,因此您只需分析随机样本。从该样本中找到前10名,您可以找到前10名(在某种程度上确定,取决于样本的大小和样本质量)。

我不认为他们在这里寻找实际的解决方案,而是更多地探讨你如何解决(实际上)不可能解决的问题。