2 つの異なるコーパスに基づいて( in を使用text2vec
して) 2 つの別個の GloVe ベクトル空間モデルをトレーニングしたとします。R
これにはさまざまな理由が考えられます。たとえば、2 つのベース コーパスが 2 つの異なる時期に由来する場合や、2 つの非常に異なるジャンルに由来する場合があります。これら 2 つのコーパス間で単語の使用法/意味を比較することに興味があります。2 つのコーパスとその語彙を単純に連結した場合、それは機能しません (用法が異なる単語ペアのベクトル空間内の位置は、「中間」のどこかにあるだけです)。
私の最初のアイデアは、1 つのモデルだけをトレーニングすることでしたが、テキストを準備するときに、各単語に接尾辞 (_x、_y) を追加し (x と y は、コーパス x/y での単語 A の使用法を表します)、保持します。最終的に連結されたトレーニング コーパスの語彙が A、A_x、A_y、B、B_x、B_y ... などで構成されるように、サフィックスのない各コーパスの個別のコピー。
this is an example of corpus X
this be corpus Y yo
this_x is_x an_x example_x of_x corpus_x X_x
this_y be_y corpus_y Y_y yo_y
A と B の「平均的な」使用法は、空間の一種の「座標」として機能し、同じ空間で A_x と A_y の間の距離を測定できると考えました。しかし、A_x と A_y が同じコンテキストで発生することは決してないため (周囲のものを含むすべての単語の接尾辞のため)、これはおそらくスペースを歪め、機能しないことに気付きました。また、行列の整列に関連する直交プロクラステス問題と呼ばれるものがあることも知っていますが、私の場合はそれを実装する方法がわかりません。
R
2 つの GloVe モデル (できれば で動作するように) を共通のベクトル空間に適合させるための合理的な方法は何でしょうか?text2vec
私の最終的な目標が正書法的には同一であるが 2 つの単語ペアで発生する単語ペアのコサイン類似度を測定することである場合コーパスが違う?