構文:
テキストの単語埋め込みのための自然言語処理には、さまざまな関数が分類されます。この記事では、そのための「word2vec」機能について説明します。わかりやすくするために、単語埋め込みはテキスト入力をベクトル表現に変換します。ベクトル表現では、多かれ少なかれ同じ文脈上の意味を持つ単語が同じ表現を与えられます。
「word2vec」アルゴリズムは、最初に単語が出現するコンテキストを予測することで単語の埋め込みを学習する方法でトレーニングされたニューラル ネットワーク モデルです。このモデルはテキストを入力として受け取ります。次に、テキスト内の単語ごとに、その単語のベクトル表現が作成されます。このモデルは、同じ文脈にあるように見える単語は同じ意味を持つという考えに基づいています。 「word2vec」の構文は次のとおりです。
$ Word2Vec(文, min_count)
このアルゴリズムには、「sentences」と「minimum_count」という 2 つのパラメータがあります。文は文のリストまたは文形式のテキストが保存される変数であり、minimum_count はカウント値 1 を表します。これは、テキスト内の出現する単語が 1 未満である場合は無視する必要があることを意味します。 。
例 1:
この例では、英語の文のリストに存在する単語の単語埋め込みを作成します。 「embedding」という単語を作成するには、「word2vec」モデルを使用する必要があります。このモデルは、Python の「gensim」ライブラリのパッケージです。 「word2vec」を使用するには、Python ライブラリ リポジトリに Gensim をインストールする必要があります。
この例を実装するには、「google colab」オンライン Python コンパイラを使用します。 gensim をインストールするには、「pip install gensim」コマンドを使用します。これにより、このライブラリと関連するすべてのパッケージのダウンロードが開始されます。インストールしたら、gensim から「word2vector」パッケージをインポートします。
この「word2vec」モデルをトレーニングするには、トレーニング データセットを作成する必要があります。そのために、4 ~ 5 つの英語の文章を含む文章のリストを作成します。このリストを「training_data」変数に保存します。
トレーニング データセットを作成した後の次のステップは、このデータで「word2vec」モデルをトレーニングすることです。そこで、モデルを呼び出します。 「入力」変数に保存したこのモデルの入力パラメーターにトレーニング データを与えます。次に、2 番目のパラメーターである「minimum_count」を指定します。その値を「1」に設定します。このトレーニング モデルからの出力は、「trained_model」変数に保存されます。
モデルのトレーニングが完了したら、単語ベクトル モデルである「wv」接頭辞を付けてモデルに簡単にアクセスできます。また、トークンの単語の語彙にアクセスし、次のようなメソッドで出力することもできます。
vocabof_tokens = リスト (model.wv.vocab)この場合、モデルはトレーニングされたモデルを表します。ここで、文のリスト内の 1 つの単語のベクトル表現にアクセスします。この場合、「apple」です。これは、トレーニングされたモデルを呼び出すだけで実行できます。ベクトル表現を出力したい単語を「model.」として渡します。 wv [‘apple’]”を入力引数に追加します。次に、「print」関数を使用して結果を印刷します。
から 国家として モデル 輸入 Word2Vecトレーニングデータ = [ [ 'りんご' 、 'は' 、 「その」 、 '甘い' 、 'りんご' 、 'ために' 、 'word2vec' 】 、
[ 'これ' 、 'は' 、 「その」 、 '2番' 、 'りんご' 】 、
[ 'ここ' 、 '別' 、 'りんご' 】 、
[ '一' 、 '甘い' 、 'りんご' 】 、
[ 'と' 、 'もっと' 、 '甘い' 、 'りんご' 】 】
モデル = Word2Vec ( トレーニングデータ 、 min_count = 1 )
印刷する ( モデル )
vocabof_tokens = リスト ( モデル。 wv 。 キーへのインデックス )
印刷する ( vocabof_tokens )
印刷する ( モデル。 wv [ 'りんご' 】 )
前述の出力とコードから、単語「apple」の単語埋め込みが表示されます。この例では、最初にトレーニング データセットを作成しました。次に、それを基にモデルをトレーニングし、モデルを要約しました。次に、モデルを使用して、単語のトークン語彙にアクセスできるようになりました。その後、「apple」という単語の単語埋め込みを表示しました。
例 2:
gensim ライブラリを使用して、別の文のリストを作成してみましょう。文内の各単語に対してモデルをトレーニングし、「word2vec」モデルを使用して単語埋め込みを作成します。まず、gensim ライブラリ パッケージから「word2vec」モデルをインポートします。次に、2 つの文を含むリストとなる別のデータセットを作成します。リスト内の各文には 4 つの単語が含まれています。
次に、このリストを「data」変数に保存します。次に、「word2vec()」モデルを呼び出し、「1」に等しい minimum_count 値を使用してデータをこのモデルの引数に供給します。これがモデルをトレーニングする方法です。現在では、リストに存在する文に存在する単語が存在するコンテキストを予測することで、その単語の埋め込みを学習できるようになりました。モデルの結果をテストするには、データ内の「犬」のような単語をモデルに渡すだけです。次に、「print()」関数を使用して結果を出力します。
から 国家として モデル 輸入 Word2Vecデータ = [ [ 'うさぎ' 、 'もっている' 、 '歯' 】 、 [ '犬' 、 'もっている' 、 「耳」 】 】
モデル = Word2Vec ( データ 、 min_count = 1 )
印刷する ( モデル。 wv [ '犬' 】 )
出力の前のスニペットからの入力としてモデルに供給した単語のベクトル表現を観察できます。
結論
このガイドでは、英語の文章のリストに存在する単語の単語埋め込みを作成する方法を説明します。私たちは、単語の埋め込みを作成するための「word2vec」モデルを提供する Python の「gensim」ライブラリについて学びました。さらに、入力パラメーター、トレーニング データで「word2vec」モデルをトレーニングする方法、ベクトル表現で単語を表現する方法について学びました。