例のWord2Vec

運命の意志により、検索クエリのトレーニングを受けたWord2Vecが私の手に落ちました。 猫の下で説明付きの使用例が示されています。



Word2Vecとは何ですか?



Word2VecはGoogleのテクノロジーであり、大量のテキスト情報の統計処理に重点を置いています。 W2Vは、フレーズ内の単語の同時発生に関する統計を収集します。その後、ニューラルネットワーク手法を使用して、次元を減らす問題を解決し、処理されたテキスト内のこれらの単語の関係を最大限に反映する単語のコンパクトなベクトル表現を提供します。 混乱を招くテクノロジーの改ざんに頼らないように、ソースを読むことをお勧めします。



どのWord2Vecが調査されましたか?



トレーニングのために、クエリはそれぞれ国内のインターネット検索エンジンに対して行われました-ほとんどの部分はロシア語です。 ベクトルの長さは256要素で、スキップグラムとバッグオブワードアルゴリズムの両方で使用できます。 単語の総数-260万以上、これらはすべてロシア語の単語、他の言語からの多くの単語、タイプミス、名前、コード-一般に、人々だけが探すことができるすべてのものです。



検索エンジンへのクエリは、通常のテキストとは特性が大きく異なります。これにより、新しい品質の結果が得られます。



タイプミス



./distance vectors.bin

単語または文を入力(終了するにはEXIT):スイッチオフ



単語:語彙の位置をオフにします:124515



単語余弦距離

-アドベンチャー0.748698

シャットダウン0.726111

アドベンチャー0.692828

冒険0.670168

包含0.666706

アドベンチャー0.663286

内包物0.660438

アドベンチャー0.659609




リクエストのタイプミスの許可だけでなく、すべてのタイプミスの完全なリストも提供します。 すべてのタイプミスは単一のクラスターに収集されるため、便利です。 スペルチェックシステムとの違いは劇的です。 結局、誤字は、レーベンシュタイン距離(エラーのあるフォームから正しいフォームを取得するために必要な最小変更数)を計算することではなく、実際のユーザーの実際のエラーの統計に従って許可されます。



文字変換、間違ったレイアウト



./distance vectors.bin

単語または文を入力(終了するには終了):avito



単語:avito語彙の位置:1999



単語余弦距離

-awito 0.693721

Avito 0.675299

fvito 0.661414

アビタ0.659454

irr 0.642429

ovito 0.606189

オート0.598056




./distance vectors.bin

単語または文を入力してください(終了するにはEXIT):

-pschschschpdu 0.723194

pscscchpd 0.721070

pscpd 0.712373

pscppdu 0.704579

ploshchad 0.695897

pschschpdk 0.694641

pschpdu 0.692646

cpcd 0.681183

pschshp 0.660203

PGPD 0.653649

google 0.649897

電車で0.647420

Ppscpdu 0.643923

pscscchplu 0.641619

nftvuch 0.640587

PSCHCHPDUYUKG 0.631423

pscscchpu 0.620105

ゴーグル0.616396

ishtp 0.612234

google 0.608240




文字変換と間違ったレイアウトの修正のタスクは、よりシンプルで高速な方法で解決されますが、Word2Vecが私たちを失望させないことはまだ素晴らしいです。



サイトの名前、類似のサイト



./distance vectors.bin

単語または文を入力(終了するには終了):google

-googol 0.850174

google 0.809912

google 0.786360

google 0.760508

google 0.734248

マグ0.731465

Google 0.726011

google 0.725497

gkg 0.724901

google 0.722874

ゴーグル0.719596

gugd 0.719277

google 0.715329

グーガル0.713950

ヤンデックス0.695366

google 0.690433

googl 0.669867




./distance vectors.bin

単語または文を入力(終了するには終了):メール

-ランブラー0.777771

メイル0.765292

受信トレイ0.745602

maill 0.741604

ヤンデックス0.696301

maii 0.675455

マイランブラー0.674704

zmail 0.657099

mefr 0.655842

ジャンデックス0.655119

gmail 0.652458

VKmail 0.639919




WordクラスタリングはWord2Vecのコア機能であり、うまく機能しているようです。



意味的に関連する単語



./distance vectors.bin

単語または文を入力(終了するには終了):コーヒー

-コーヒー0.734483

お茶0.690234

お茶0.688656

カプチーノ0.666638

コーヒーメーカー0.636362

ココア0.619801

エスプレッソ0.599390

コーヒー0.595211

チコリ0.594247

コーヒー0.593993

カプチーノ0.587324

チョコレート0.585655

カプチーノ0.580286

カルダモン0.566781

ラテ0.563224




./distance vectors2.bin

単語または文を入力(終了するには終了):コーヒー

-穀物0.757635

可溶性0.709936

お茶0.709579

コーヒー0.704036

メラノロスト0.694822

補完された0.694553

グラウンド0.690066

コーヒー0.680409

お茶0.679867

カフェイン抜き0.678563

カプチーノ0.677856

モノアラビカ0.676757

freshでた0.676544

デカフ0.674104

ゲバリア0.673163

可溶性0.659948

エチオピア0.657329

電気砲塔0.652837




最初の出力は、「スキップグラム」モードのWord2Vecです。つまり、環境によって単語を強調表示するモードです。2番目の出力は、「単語の袋」モードのWord2Vecです。 最初はコーヒーと交換可能な言葉で、2番目はコーヒーを特徴付ける言葉です。 2番目の問題は、クエリ内の単語の重要性を評価する方法について考え始めるときに特に役立ちます。 どの単語がメインで、どの単語がリクエストを具体化します。



リクエストのクラスタリング



./distance vectors2.bin



単語または文を入力(終了するには終了):携帯電話

-セル0.811114

電話番号0.776416

スマートフォン0.730191

電話0.719766

モバイル0.717972

携帯電話0.706131

電話番号0.698894

電話0.695520

電話0.693121

モバイル0.692854

テレオン0.688251

電話0.685480

電話番号0.674768

セルラー0.673612




複数の単語で構成されるクエリは、最も特徴的な単語である1つに減らすことができます。 さらに、この単語が一般的に元の要求に存在することは完全にオプションです。 冗長クエリをそれらの間で比較し、1つの単語への中間翻訳なしで比較できます。 ここでは、実行中のクエリの言い換えと展開を確認します。



言葉の意味関係



GoogleのWord2Vecの説明の最も興味深い部分は、ベクターでの単純な算術演算を使用して、王を女王に変えた方法です。 検索クエリにそのような焦点を絞ることはできませんでした。最近、王や女王にはほとんど何も求められていませんが、いくつかの意味的関係は本当に際立っています。



パリがフランスを指すのと同じように、ドイツを指す単語を見つける必要があります。



./word-analogy vectors2.bin



3つの単語を入力(EXIT to break):フランスパリドイツ

-ミュンヘン0.716158

ベルリン0.671514

デュッセルドルフ0.665014

ハンブルク0.661027

ケルン0.646897

アムステルダム0.641764

フランクフルト0.638686

プラハ0.612585

アシャッフェンブルク0.609068

ドレスデン0.607926

ニュルンベルク0.604550

リューデンシャイト0.604543

グムンデン0.590301




./word-analogy vectors2.bin



3つの単語を入力します(EXIT to break):us dollar ukraine



-グリブナ0.622719

dolar 0.607078

グリブナ0.597969

ルーブル0.596636

0.588882ドル

グリブナ0.584129

ルーブル0.578501

ルーブル0.574094

0.565995ドル

テンゲ0.561814

ドララ0.561768

通貨0.556239

ダラー0.548859

グリブナ0.544302




印象的...



クエリ内の単語の重要性を評価する



価格設定の原則は簡単です。 どのクラスターがクエリ全体を引き付けるかを判断し、このクラスターの中心から最も離れている単語を選択する必要があります。 そのような言葉が主なものになり、残りは明確になるでしょう。



./importance vectors.bin



単語または文を入力(終了するには終了):モスクワでピザを購入



重要購入= 0.159387

重要なピザ= 1

重要度= 0.403579

重要度モスクワ= 0.455351



単語または文を入力(終了するには終了):トワイライトをダウンロード



重要度のダウンロード= 0.311702

重要度トワイライト= 1



単語または文を入力(終了するには終了):ウラジミールプーチン



重要度ウラジミール= 0.28982

重要性プーチン= 1



単語または文を入力してください(終了するには終了):Nikita Putin



重要度ニキータ= 0.793377

重要性プーチン= 0.529835




ウラジミールはプーチンにとってほとんど重要ではない言葉です。 インターネットで見つかったプーチンのほぼすべてがウラジミールです。 しかし、ニキータ・プーチン-それどころか、ニキータはより重要です。 インターネット上のすべてのプーチンからニキットを選択する必要があるためです。



結論



そのため、結論はほとんどありません。 テクノロジーはうまく機能します。 この投稿がWord2Vecに隠されている機能のロシア語のイラストとして使用されることを願っています。



All Articles