5

これは誰かが私に尋ねたインタビューの質問であり、私は本当に良い答えを持っていませんでした. 誰かがこれに対する解決策を理解するのを手伝ってくれるかどうか疑問に思っていました:

「何十億ものツイートが流れています。トップ 10 のハッシュタグをどのように見つけますか?」

ありがとう

4

2 に答える 2

6

ハッシュタグをキー、カウンターを値としてマップを作成します。

受信した各ツイートの各タグのカウンターを増やします。

カウンターの値を調べて、トップ 10 を見つけます。

質問の言い回しには、この簡単な解決策を妨げる制約は含まれていません。面接の状況では、これらの制約を引き出すために明確な質問をしたでしょう.

「線形時間で実行する必要がある」、「一定量のメモリを使用する必要がある」などの制約の下では、さらに興味深い答えが浮かび上がります。


提起された問題に対する一定のメモリソリューションがあるかどうかはわかりませんが、関連する (そして多くの場合、より有用な) 問題の 1 つを知っています: 結果の特定の部分を構成する要素を識別することです。同様の質問への回答としてそれを与えました。

(私が「より役立つ」と言っているのは、特定の項目の合計割合がしきい値を下回った場合、真の「トップ 10」資料よりもノイズである可能性が高いためです。)

于 2012-07-05T18:53:49.077 に答える
3

おそらくすべてのツイートを分析することはできないため、ランダムなサンプルを分析するだけです。そのサンプルからトップ 10 を見つけると、トップ 10 を見つけることができます (サンプルのサイズとサンプルの品質に応じて、ある程度の確実性があります)。

彼らはここで実際の解決策を探していたとは思いませんが、(実際には) 不可能な問題を解決する方法について、あなたの思考プロセスをより詳しく調べています.

于 2012-07-05T18:50:16.733 に答える