メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

vec2word

単語への埋め込みベクトルのマッピング

説明

words = vec2word(emb,M) は、M の行に含まれる埋め込みベクトルに最も近い単語を返します。

[words,dist] = vec2word(emb,M) は、M に含まれる埋め込みベクトルに最も近い単語を返し、それぞれのソース ベクトルへの距離 dist を返します。

___ = vec2word(emb,M,k) は、最も近い上位 k 個の単語を返します。

___ = vec2word(___,'Distance',distance) は距離計量を指定します。

すべて折りたたむ

fastTextWordEmbedding を使用して、事前学習済みの単語埋め込みを読み込みます。この関数には、Text Analytics Toolbox™ Model for fastText English 16 Billion Token Word Embedding サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

emb = fastTextWordEmbedding
emb = 
  wordEmbedding with properties:

     Dimension: 300
    Vocabulary: [1×1000000 string]

word2vec を使用して、"Italy"、"Rome"、および "Paris" という単語をベクトルにマッピングします。

italy = word2vec(emb,"Italy");
rome = word2vec(emb,"Rome");
paris = word2vec(emb,"Paris");

vec2word を使用して、ベクトル italy - rome + paris を単語にマッピングします。

word = vec2word(emb,italy - rome + paris)
word = 
"France"

単語埋め込みベクトルに最も近い上位 5 つの単語を見つけ、それらの距離を調べます。

fastTextWordEmbedding を使用して、事前学習済みの単語埋め込みを読み込みます。この関数には、Text Analytics Toolbox™ Model for fastText English 16 Billion Token Word Embedding サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

emb = fastTextWordEmbedding;

word2vec を使用して、"Italy"、"Rome"、および "Paris" という単語をベクトルにマッピングします。

italy = word2vec(emb,"Italy");
rome = word2vec(emb,"Rome");
paris = word2vec(emb,"Paris");

vec2word を使用して、ベクトル italy - rome + paris を単語にマッピングします。ユークリッド距離計量を使用して、最も近い上位 5 つの単語を見つけます。

k = 5;
M = italy - rome + paris;
[words,dist] = vec2word(emb,M,k,'Distance','euclidean');

単語と距離を棒グラフにプロットします。

figure;
bar(dist)
xticklabels(words)
xlabel("Word")
ylabel("Distance")
title("Distances to Vector")

入力引数

すべて折りたたむ

入力単語埋め込み。wordEmbedding オブジェクトとして指定します。

単語埋め込みベクトル。行列として指定します。M の各行は単語埋め込みベクトルです。M には emb.Dimension 個の列がなければなりません。

返される最も近い単語の数。正の整数として指定します。

距離計量。'cosine' または 'euclidean' として指定します。

出力引数

すべて折りたたむ

出力単語。string ベクトルとして返されます。

単語からソース ベクトルまでの距離。ベクトルとして返されます。

バージョン履歴

R2017b で導入