メインコンテンツ

documentEmbedding

文書をベクトルにマッピングする文書埋め込みモデル

R2024a 以降

    説明

    文書埋め込みは、文書を実数ベクトルにマッピングします。

    このベクトルは、文書全体の意味内容を取得しようと試みます。そのため、文書の内容が似ている場合、得られるベクトルも似たものになります。文、段落、またはより長いテキストを文書として扱うことができます。

    作成

    documentEmbedding を使用して、事前学習済みの埋め込みから文書埋め込みを作成します。

    説明

    emb = documentEmbedding は、all-MiniLM-L6-v2 センテンス トランスフォーマー モデルを使用して文書埋め込みを返します。

    この関数には Deep Learning Toolbox™ が必要です。

    emb = documentEmbedding(Model=modelName) は、名前と値の引数 Model で指定された文書埋め込みモデルを返します。

    入力引数

    すべて展開する

    モデル名。次のいずれかの値として指定します。

    • "all-MiniLM-L6-v2"— 6 つの自己注意層をもつセンテンス トランスフォーマー モデル。このモデルは 1 行 384 列の埋め込みベクトルを出力します。このオプションには、Text Analytics Toolbox™ Model for all-MiniLM-L6-v2 Network サポート パッケージが必要です。

    • "all-MiniLM-L12-v2"— 12 個の自己注意層をもつセンテンス トランスフォーマー モデル。このモデルは 1 行 384 列の埋め込みベクトルを出力します。このオプションには、Text Analytics Toolbox Model for all-MiniLM-L12-v2 Network サポート パッケージが必要です。

    必要なサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

    オブジェクト関数

    embedMap document to embedding vector

    すべて折りたたむ

    documentEmbedding 関数を使用して、事前学習済みの文書埋め込み all-MiniLM-L6-v2 を読み込みます。このモデルには、Text Analytics Toolbox™ Model for all-MiniLM-L6-v2 Network サポート パッケージが必要です。このサポート パッケージがインストールされていない場合、関数によってダウンロード用リンクが表示されます。

    emb = documentEmbedding;

    入力文書の配列を作成します。

    documents = [
        "the quick brown fox jumped over the lazy dog"
        "the fast brown fox jumped over the lazy dog"
        "the lazy dog sat there and did nothing"];

    embed 関数を使用して、入力文書をベクトルにマッピングします。

    embeddedDocuments = embed(emb,documents);

    文書の類似度を推定するには、cosineSimilarity を使用してペア単位のコサイン類似度を計算します。

    similarities = cosineSimilarity(embeddedDocuments)
    similarities = 3×3
    
        1.0000    0.9840    0.5505
        0.9840    1.0000    0.5524
        0.5505    0.5524    1.0000
    
    

    参照

    [1] Reimers, Nils, and Iryna Gurevych. "Sentence-BERT: Sentence Embeddings Using Siamese BERT-Networks" Preprint, submitted August 27, 2019. https://doi.org/10.48550/arXiv.1908.10084.

    バージョン履歴

    R2024a で導入