私の話題は類似しており、(一束の)テキストのクラスタリングです。一言で言えば、収集したテキストをまとめて、最後に意味のあるクラスタに表示する必要があります。これを行うには、今までの私のアプローチは以下の通りです。私の問題はクラスタリングにあります。現在のソフトウェアは、PHPで書かれています。類似性マトリックスの効果的なクラスタリング
1)類似性: 私はすべての文書を「単語の袋」として扱い、単語をベクトルに変換します。
- フィルタリング(唯一の「本物」の言葉)
- トークン化(単語に分割された文章)
- ステミング(ポーターのステマーその基本フォームに単語を減らす)を使用します高すぎる&低周波)
次元削減の方法として。 。その後、私は提案/ウェブand here上のさまざまなサイトに記載されているように(コサイン類似度を使用してい
結果は、このような類似度行列である:
A B C D E
A 0 30 51 75 80
B X 0 21 55 70
C X X 0 25 10
D X X X 0 15
E X X X X 0
A ... Eは私の文章であり、 Sim(A、B)== sim(B、A)の場合は、行列の半分だけが埋め込まれているので、テキストAとテキストの類似度はパーセントで表され、 Dは71%です
この行列から先に未知数(!)の数のクラスターを生成したいのですが、クラスターは類似の項目を表す必要があります(ある停止までp基準)を一緒にする。
私はそれが(何らかの形で)働いていたが、すべてが得意ではなかったとの結果がしばしばだった。この(60%固定の類似度閾値など)のように基本的にあった、基本的な実装に
foreach article
get similar entries where sim > 60
foreach similar entry
check if one of the entries already has a cluster number
if no: assign new cluster number to all similar entries
if yes: use that number
を自分自身を試してみましたモンスタークラスター。 だから私はこれをやり直したいと思っていますが、すでにあらゆる種類のクラスタリングアルゴリズムを調べていますが、どちらが最もうまくいくかはまだ分かりません。私はそれが集約的なアルゴリズムであるべきだと思う、すべてのテキストのペアが最初にクラスターとして見ることができるので。しかし、依然として疑問は、stoppの基準であり、アルゴリズムが既存のクラスターを分割し合併するかどうかである。
ご迷惑をおかけして申し訳ございませんが、この分野では比較的新しいものです。助けてくれてありがとう。
あなたは良い答えを得ましたか?クラスタリングがどのくらいの次元で機能するかは、私には明らかではありません... – Jim