例えば
ロンドンでは、彼らはロシアへの新しい冷戦を宣言するために彼らの心を変えました
ボリス・ジョンソン:西側はロシアとの新たな冷戦状態ではない
英国外務省は、西側はロシアとの新たな冷戦を望んでいないと述べた
3つの例はすべて1つのニュースですが、語彙は異なります。 このような場合、語彙の類似性に基づくクラスタリングアルゴリズムは役に立たなくなりました。
このタイプの問題は2つの方法で解決されます。1)シソーラスをコンパイルすること、2)潜在セマンティック分析(LSA)、確率的潜在セマンティック分析(pLSA)など、単語間の連想セマンティック関係を確立するさまざまな「トリッキー」アルゴリズムの使用、潜在ディリクレ配置(LDA)など。
最初の方法-シソーラスの入手-は非常に面倒で、タスクによって完全に決定されます。 これは、ユニバーサルシソーラスの作成がまだ可能でないことを意味します。
2番目の方法-アルゴリズム的な方法-にも欠点があります。 まず第一に、それはメソッド自体の「星雲」であり、テキストデータへのアプリケーションの非自明性です。 LDAは正規分布を必要としますが、これは言語の問題を解決するときに常に満たされるとは限りません。 原則として、これらのすべてのアルゴリズムには多数のパラメーターがあり、その決定は経験的であり、ソリューションの品質に大きく影響する可能性があります(たとえば、LSAの対角行列の特異値の削減は、結果に非常に非線形の影響を与えます)。
Word2Vecアルゴリズムの結果を使用して、上記の問題の多くを回避しようとしました。
Word2vec
アルゴリズムの説明は、 ウィキペディアまたは別の情報リソースで見つけることができます。 このアルゴリズムは主に検索タスク用に作成されたため、他の言語上の目的で正確に使用する必要があります。
このアルゴリズムには、2つの学習方法と、結果を示すためのいくつかのオプションがあります。 特に、クラスの結果を表示することに興味があります-連想セマンティッククラスを取得します(ちなみにk-meanを使用)。
実験が示すように、数百万の単語使用の小さなコレクションでさえ、多かれ少なかれ「意味のある」単語クラスが得られます。 しかし、単語に重みがない場合(たとえば、前置詞と「キーワード」がそのようなモデルで同じ表現を持つ場合)、そのような結果を使用する方法はありますか? 別の問題は、クラスが完全ではなく、たとえば、サービスワードが意味的に意味のあるクラスに分類される可能性があることです。 ストップリストを使用しますか? それから、赤ちゃんの水でトラフからこぼれる危険があります。 一般に、ストップリストの使用には大きな欠点があります(たとえば、代名詞を捨てると、ロシア全土の若者の公共政治運動「OURS」が失われます。 。
最後に、テキストのクラスタリングに最適なクラスはいくつですか? トレーニングまたはテストサンプルのサイズ、テキストの主題、その量に依存しますか? これらの重要な質問には本書の第2部で回答しますが、ここではアルゴリズムについて簡単に説明します。
アルゴリズムの説明
アルゴリズムのアイデアは、単語自体またはそれらで構成されるシーケンス(いわゆるn-gram)を比較するのではなく、それらが含まれるセマンティッククラスを比較することです。
学習には大量のテキスト資料が必要です(数十万、できれば数千万の単語の使用。サンプルが大きいほど、モデルのテキストへの主題的結合が少なくなり、モデルをテキストに適合させる必要が少なくなります)。 トレーニングの結果、テキストのほぼすべての単語にクラスが割り当てられたリストが取得されます(クラスの数はトレーニング段階で示されます)。 次に、このリストは、テキストおよび対応するクラスの単語の頻度分布に基づいて、特定のアルゴリズムに従って平滑化されたword-class-weightの形式に縮小されます。 ここで重要なパラメーターは、クラスの合計数と平滑化係数です(詳細については、本書の後半で説明します)。
これは、小さなセマンティッククラスの例です。
小さなもの | 娘 |
ママ | 義母 |
先生 | 娘へ |
赤ちゃん | 親relative |
先生 | 年下 |
妹 | 妻に |
赤ちゃん | お父さん |
妹 | 前者 |
叔母 | おばあさん |
おばあさん | 先輩 |
彼女 | 彼女 |
母 | 愛人 |
配偶者 | 市民 |
叔母 | 家族 |
孫娘 | 少女 |
乙女 | 母の |
彼女 |
この多かれ少なかれ均一な連想意味クラスでは、代名詞「彼女」は、原則として、関連しているが、有益ではないが、落ちる。 周波数で「ブランケットを引っ張る」ため、材料のクラスター化を妨げる可能性があります。 このような「外れ値」は、その後のモデルの平滑化によって削除できます。
得られたモデルによると、テストセットのすべての単語はセマンティッククラスに対応する数字に変換され、それ以降の操作は数字でのみ発生します。 クラスタリングでは、単純なアルゴリズムを使用して、蓄積されたドキュメントを互いに比較します。 整数型(int)が比較されるため、速度は非常に高速です。 さらに、1つのドキュメント内のセマンティッククラスの数、クラスター内のドキュメントの最小数、近接度測定-一致するクラスの数の制限など、多くのフィルターが比較に適用されます。 アルゴリズムのロジックは、同じドキュメントが異なるクラスターに分類されるように編成されています(プライマリクラスターが定義されていないため)。 この「あいまいさ」のため、主な結果は、類似したトピックのクラスターのかなり膨大なコレクションです。 したがって、単純に近いクラスターを結合し、同一のドキュメントの数(IDで)で比較するポストクラスタリングが必要です。
したがって、上記のロジックを使用すると、高いクラスタリングレートを達成できるだけでなく、プライマリクラスタの定義やその総数を気にすることもありません。
結果と結論
クラスタリングでは、クラスター化されたマテリアルに強く依存するため、結果の品質について話すことは困難です。 この意味で、「ゴールド」標準を作成する特別な理由はありません。 ただし、異なる建物でモデルをテストして分類することは理にかなっています(これについては、記事の後半で説明します)。
ユニグラムのベクトル法による文書の分類に関するテストが示したように(コサインによる比較)、クラスタリングモデルは単語のモデルとほぼ同じくらい正確です。 これは、「教師なし」という分類(この意味でのモデルは普遍的)は、教師による本格的なトレーニングよりもわずかに悪い結果しか示さないことを意味します。 劣化は1〜10%で、テスト対象の材料によって異なります。 しかし、これは目標ではありません! これは、Word2Vecアルゴリズムを使用して取得したクラスタリングモデルが、任意の数のクラス(この場合はクラスター)を持つあらゆるタイプのマテリアルでのアプリケーションに非常に有効であることを意味します。
結果の品質は、しきい値のフィルタリングによって決定されます。たとえば、あいまいな重複を識別する必要がある場合は、より厳しいパラメーターを設定する必要があります。 逆もまた同様です。発信資料の主要なトピックのみを見る必要がある場合は、より柔らかいパラメーターを設定できます。
一般的に、アルゴリズムは普遍的です:あらゆる量の素材で動作します。 大容量の場合でも、10〜100,000のドキュメントのウィンドウで作業することをお勧めします。 このようにして得られた一次クラスターは、その後、ポストクラスタリングに結合されます。 また、アルゴリズムはドキュメントの長さに対して弱く影響を受けます。「長い」ドキュメントは、(同じトピックに属する)意味的に同質であることが望ましいです。
ただし、このアルゴリズムには多くの問題があります。 まず第一に、これは結果がモデル内のクラスの数に依存することです。特に「弱い」クラスターの場合、特に敏感になることがあります。 少量のドキュメントを含むクラスター。 セマンティッククラスの定義が不完全であるため、2番目の問題が続きます。その結果、意味が近いドキュメントが異なるクラスターに分類される場合があります(クラスのペアごとに異なるなど)。 このような問題は、ドキュメントの因数分解に基づいた追加の関連付け(名前付きオブジェクトの割り当てとそれらの間の関係)によって解消されます。 しかし、クラスタの数はドキュメントの初期ボリュームに比べて少なく、それらのほとんどはすでに結合されているため、このタスクはすでに簡単に解決されています。
したがって、提示されたアルゴリズムにはいくつかの利点があります。
- クラスタリングは単語に従ってではなく、セマンティッククラスに従って行われます。
- 文書の長さからの結果の独立。
- 材料の量からの結果の独立性;
- クラスターの数の自動決定。
- プライマリクラスタを定義する必要がない。
- 高速。大量のテキストメッセージでこのアルゴリズムを使用できます。
アルゴリズムは入力される素材の量に敏感ではないという事実にもかかわらず、クラスタリングの品質だけでなく結果を取得する速度も重要な場合、非構造化情報の大きなフローをクラスタリングするために使用することをお勧めします。 Word2Vecモデルには専門用語や高度に専門化された専門用語が含まれていない場合があるため、テーマ別に分離された少量の資料(医薬品、ゲームチャットなど)にはシソーラスを使用することをお勧めします。