Main Content

fastTextWordEmbedding

事前学習済みの fastText 単語埋め込み

説明

emb = fastTextWordEmbedding は、100 万の英単語に対して 300 次元の事前学習済み単語埋め込みを返します。

この関数には、Text Analytics Toolbox™ Model for fastText English 16 Billion Token Word Embedding サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

すべて折りたたむ

Text Analytics Toolbox Model for fastText English 16 Billion Token Word Embedding サポート パッケージをダウンロードしてインストールします。

コマンド ラインで fastTextWordEmbedding と入力します。

fastTextWordEmbedding

Text Analytics Toolbox Model for fastText English 16 Billion Token Word Embedding サポート パッケージがインストールされていない場合、関数によってアドオン エクスプローラーに必要なサポート パッケージへのリンクが表示されます。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。コマンド ラインで emb = fastTextWordEmbedding と入力して、インストールが正常に終了していることを確認します。

emb = fastTextWordEmbedding
emb = 

  wordEmbedding with properties:

     Dimension: 300
    Vocabulary: [1×1000000 string]

必要なサポート パッケージがインストールされている場合、関数によって wordEmbedding オブジェクトが返されます。

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"

事前学習済みの単語埋め込みを使用して、トークン化された文書の配列を単語ベクトルのシーケンスに変換します。

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

emb = fastTextWordEmbedding;

工場レポート データを読み込み、tokenizedDocument 配列を作成します。

filename = "factoryReports.csv";
data = readtable(filename,'TextType','string');
textData = data.Description;
documents = tokenizedDocument(textData);

doc2sequence を使用して、文書を単語ベクトルのシーケンスに変換します。既定では、関数 doc2sequence はシーケンスを左にパディングして同じ長さになるようにします。高次元の単語埋め込みを使用して文書の大規模なコレクションを変換する場合、パディングのために大量のメモリが必要になる場合があります。関数がデータをパディングしないようにするには、'PaddingDirection' オプションを 'none' に設定します。あるいは、'Length' オプションを使用してパディングの量を制御できます。

sequences = doc2sequence(emb,documents,'PaddingDirection','none');

最初の 10 個のシーケンスのサイズを表示します。各シーケンスは DS 列の行列です。ここで、D は埋め込み次元、S はシーケンス内の単語ベクトルの数です。

sequences(1:10)
ans=10×1 cell array
    {300×10 single}
    {300×11 single}
    {300×11 single}
    {300×6  single}
    {300×5  single}
    {300×10 single}
    {300×8  single}
    {300×9  single}
    {300×7  single}
    {300×13 single}

出力引数

すべて折りたたむ

事前学習済みの単語埋め込み。wordEmbedding オブジェクトとして返されます。

バージョン履歴

R2018a で導入