3

タイトルで述べたように、私は単純に、Twitter ファイアホース (またはその一部) を取り込むために使用できるアルゴリズムまたはソリューションを探しています。

a) 一般的な質問を特定する b) 質問について、ある程度の自信を持って、同じ可能性のある質問を特定する

ありがとう!

4

1 に答える 1

3

(ア)

機械学習Bag of Words モデルを使用して質問を特定しようとします。

  1. ラベル付きのツイットのセットを作成し、それらのそれぞれにバイナリフラグでラベルを付けます:質問または非質問。
  2. トレーニング セットから特徴を抽出します。機能は伝統的に単語ですが、少なくとも私が試したときはいつでも、バイグラムを使用すると結果が大幅に改善されました. (私の場合、3グラムは役に立ちませんでした)。
  3. データから分類器を構築します。私は通常、SVMが他の分類器よりも優れたパフォーマンスを発揮することを発見しましたが、 Naive BayesKNNなどの他の分類器も使用できます(ただし、これらにはおそらく特徴選択アルゴリズムが必要になるでしょう)。
  4. これで、分類子を使用してツイートを分類できます。1

(ロ)

この問題は、情報検索の世界では「重複検出」または「ほぼ重複検出」と呼ばれています。 Markovitch と Gabrilovich の素晴らしい記事Wikipedia-based Semantic Interpretation for Natural Language Processing
で説明されているように、意味解釈を使用して、互いに非常によく似た質問を少なくとも見つけることができます。少なくとも、2 つの質問が同じ問題について話し合っているかどうかを特定するのに役立ちます (同一ではありませんが)。

アイデアは次のようになります。

  1. ウィキペディアを使用して、そのセマンティクスを表すベクトルを構築します。用語tの場合、エントリは、用語 と同時に出現した用語vector_t[i]の tf-idf スコアです。アイデアは記事で詳しく説明されています。最初の 3 ~ 4 ページを読むだけで十分に理解できます。全部読む必要はありません。2it
  2. ツイートごとに、その用語のベクトルの関数であるベクトルを作成します。2 つのベクトルを比較すると、2 つの質問が同じ問題について話し合っているかどうかを識別できます。

編集:

よく考えてみると、BoW モデルは用語の位置を無視しているため、ここでは適切ではありません。ただし、特徴を抽出するためのNLP処理を追加すると(たとえば、用語ごとに前主語か事後主語も示し、これは NLP 処理を使用して決定されました)、機械学習と組み合わせるとかなり良い結果が得られると思います。結果。


(1) 分類子の評価には、クロス検証を使用して、期待される精度を確認できます。
(2) Evgeny Gabrilovich が、彼らが作成した実装済みアルゴリズムをオープン ソース プロジェクトとして公開したことを知っています。それを探す必要があるだけです。

于 2012-09-11T18:01:55.553 に答える