-1

ツイートのストリーム内のトピックを検出するシステム/アルゴリズムに取り組んでいます。

ストップワード、顔文字、URLなどを削除し、ツイートを次のように表現することを考えています。

terms = (t1, t2, ..., tk)
hashtags = (h1, h2, ..., hn)
date = date of tweet

次に、いくつかのクラスタリングアルゴリズムを適用するときに、ツイート間の類似度を使用して、これら3つの値を組み合わせます。返信を処理するので、これはそれよりも少し複雑になります(たとえば、ツイートに返信するとき、ほとんどの場合、同じトピックについて話し続けるなど)。

それがうまくいくかどうかはわかりませんが、これまでに見た問題は、n-gramを識別していないことです。そのため、Barack Obamaはほとんどの場合一緒に表示され、私のシステムでは2つに分かれます。用語(バラクオバマ)。

私の質問は:

バイグラムもどのように表現できますか?つまり、通常はどのようにモデル化されますか?

私は次のようなものを持っていることを考えました:

Tweet = `Some words here`
terms = `[some, words, here, some words, words here]`
...

しかし、それが正しい方法であるかどうか、考えられるすべてのバイグラムに対してそれを行う必要があるかどうかなどはわかりません。

編集

私のデータベースには、すべての用語が保存されています。バイグラムも用語であるかのように保存する必要がありますか?

4

1 に答える 1

3

あなたの文書の1つが「怠惰な犬を飛び越えた速い茶色のキツネ」であるとしましょう。

バイグラムとユニグラムは次のようになります。

the_quick
quick_brown
brown_fox
fox_jumped
jumped_over
over_the
the_lazy
lazy_dog
the
quick
brown
fox
jumped
over
lazy
dog

次に、次のように、すべてのドキュメントのすべての一意のグラムを単語ベクトルに入れて分析できます。

Document the_quick  quick_brown  ... lazy  dog   some_other_gram

1        0.01       0.02             0.1   0.05  0.0
2        0          0                0.12  0.0   0.1
3        0.5        0.4              0     0     0

ここで、セル内の数字は、ドキュメント内の用語のカウント、バイナリカウント、頻度、またはTFIDFスコアを表します。

次に、ドキュメントの類似性を比較したり、クラスタリングや分類を行ったりすることができます。

于 2013-03-16T19:57:32.250 に答える