2

私はクラスタリングと関連トピックにかなり慣れていないので、私の質問を許してください.

いくつかのテストを行ってこの分野に慣れようとしています。最初の実験として、コンテンツの類似性に基づいてツイートのクラスターを作成したいと考えています。実験の基本的な考え方は、ツイートをデータベースに保存し、定期的にクラスタリングを計算することです (つまり、cron ジョブを使用します)。データベースは時々新しいツイートを取得することに注意してください。

この分野では無知なので、私の考え (おそらくナイーブ) は、次のようなことをすることです。

1. For each new tweet in the db, extract N-grams (N=3 for example) into a set
2. Perform Jaccard similarity and compare with each of the existing clusters. If result > threshold then it would be assigned to that cluster
3. Once finished I'd get M clusters containing similar tweets

現在、この基本的なアプローチにはいくつかの問題があります。計算コストは​​さておき、ツイートとクラスターの比較はどのように行われるのでしょうか? ツイート Tn と、T1、T4、T10 を含むクラスター C1 があると仮定すると、どのツイートと比較すればよいでしょうか? 類似性について話していることを考えると、sim(Tn,T1) > しきい値であるが、sim(Tn,T4) < しきい値である可能性があります。私の直感では、この問題を回避するために、クラスターには平均値のようなものを使用する必要があります。

また、sim(Tn, C1) と sim(Tn, C2) の両方が > しきい値であるが、C1 との類似性が高くなるということもあり得ます。その場合、Tn は C1 に行く必要があります。これは、つぶやきを最大の類似性を持つクラスターに割り当てるために、力ずくで行うこともできます。

そして最後は計算問題です。私は minhash について少し読んでいて、この問題に対する答えのようですが、さらに調査する必要があります。

とにかく、私の主な質問は次のとおりです。この分野での経験を持つ人が、どのアプローチを目指すべきかを勧めてくれますか? LSA やその他の方法に関するいくつかの言及を読みましたが、すべてに対処しようとすると圧倒されてしまうので、参考にしていただければ幸いです。

私が読んでいるものから、新しいデータが入るたびにクラスターの再グループ化が可能になるため、これのためのツールは階層的クラスタリングになります。これは正しいです?

複雑なケースを探しているわけではないことに注意してください。私のユースケースのアイデアは、事前情報なしで同様のツイートをグループにまとめることができるというものです。たとえば、Foursquare からのツイート (互いに類似する「チェックインしています...」または「私の klout スコアは...」が 1 つのケースになります)。また、これを言語に依存しないようにしたいので、特定の言語の問題に対処する必要はありません。

4

2 に答える 2