Sentence Transformers 2.2 : 使用方法 : クラスタリング (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/27/2022 (v2.2.2)
* 本ページは、UKPLab/sentence-transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Sentence Transformers 2.2 : 使用方法 : クラスタリング
Sentence-Transformers はセンテンスの小さなあるいは大きなセットのクラスタリングを実行するために様々な方法で利用できます。
k-Means (k-平均法)
kmeans.py は K-means クラスタリング・アルゴリズム を使用する例を含みます。K-Means は前もってクラスタ数が指定される必要があります。センテンス群はおおよそ同じサイズのグループにクラスタリングされます。
凝集型クラスタリング
agglomerative.py は 凝集型クラスタリング・アルゴリズム を使用した 階層型クラスタリング を使用するサンプルを示します。k-means とは対照的に、クラスタリングに対して閾値を指定できます : その閾値以下のクラスタはマージされます。このアルゴリズムはクラスタの数が未知の場合に有用であり得ます。閾値により、多くの小さくて粒子の細かいクラスタや粒子の粗いクラスタを持つかを制御できます。
高速クラスタリング
大規模なデータセットに対する凝集型クラスタリングは非常に遅いので、おそらく数千のセンテンスに対してだけ適用可能です。
fast_clustering.py では大規模なデータセットに対して調整されたクラスタリング・アルゴリズムを提示しています (50k センテンスで 5 秒以下)。センテンスの巨大なリストでそれは局所的コミュニティを探します : 局所的コミュニティは非常に類似しているセンテンスのセットです。
2 つのセンテンスが類似していると考えられるような、コサイン類以度の閾値を設定できます。また、局所的コミュニティに対して最小サイズを指定できます。これは大きな粗い粒子のクラスタか小さい粒子の細かいクラスタのいずれかを得ることを可能にします。
それを Quora Duplicate 質問 データセットに適用すると出力はこのようなものになります :
Cluster 1, #83 Elements What should I do to improve my English ? What should I do to improve my spoken English? Can I improve my English? ... Cluster 2, #79 Elements How can I earn money online? How do I earn money online? Can I earn money online? ... ... Cluster 47, #25 Elements What are some mind-blowing Mobile gadgets that exist that most people don't know about? What are some mind-blowing gadgets and technologies that exist that most people don't know about? What are some mind-blowing mobile technology tools that exist that most people don't know about? ...
トピック・モデリング
トピックモデリングはドキュメントのコレクション内のトピックを発見するプロセスです。
例は以下の図で示されます、これは 20 newsgroup データセットの識別されたトピックを示しています :
各トピックに対して、このトピックを說明する単語を抽出したいでしょう :
Sentence-Transformers はセンテンス, パラグラフや短いドキュメントのコレクションでこれらのトピックを識別するために使用できます。優れたチュートリアルについては、Topic Modeling with BERT とレポジトリ Top2Vec と BERTopic をご覧ください。
- 画像ソース: Top2Vec: トピックの分散表現
以上