2018年1月11日 更新

word2vec:Pythonで単語ベクトルを作成する

1,586 view お気に入り 0
 (4479)

まず単語ベクトルとは,単語がN次元のある一点として記述されたもので,図は2次元で記述されています.また意味的に関連が強い単語は距離が近くなります.この単語ベクトルを作成するためのオープンソースを word2vec と言います.また単語ベクトルを駆使することで,レコメンド機能やチャットボットの開発,感情分析などを行うこともできるそうです.
 (4480)

図のような,単語ベクトルの足し算や引き算も可能である.
 (4482)

今回は 10,000語 が登録されている場合を考える.すると,one-hotベクトルの次元数は10,000となる.
 (4483)

本記事では,COBW (Continuous Bag-of-Words) と呼ばれる方法を解説する.この方法では,前後の単語から ? に入る単語の予測を行うという問題を考える.
 (4484)

1回目の重みの足し合わせにおいて,重みは常に1である.つまり,ここではone-hotベクトルの足し合わせを行っている.
 (4485)

ここで得られる10000×200の行列に,10,000個の単語ベクトル (200次元) が格納されている.one-hotベクトル (10,000次元) から単語ベクトル (200次元) ,次元が削減されていることが分かる.
 (4486)

COBW では,ニューラルネットを駆使することで,10,000次元のone-hotベクトルを200次元にまで削減し,各要素の意味の抽象化を行っている.実際には,次元削減後の各要素の意味は分からない.
以上が単語ベクトル作成のアルゴリズムの一例となります.その他のアルゴリズムとして skip-gram などもありますが,COBWの原理が分かっていれば理解は容易かと思います.本記事では,単語ベクトル作成の理論について説明したので,次の記事では gensim と呼ばれる python のライブラリを用いて,単語ベクトル作成を実装していきたいと思います.
8 件

関連する記事 こんな記事も人気です♪

等角写像による画像の変換〜Schwarz-Christoffel 変換〜 part1

等角写像による画像の変換〜Schwarz-Christoffel 変換〜 part1

等角写像の一つであるSchwarz Christoffel 変換を用いて,画像の変換をしてみます. python によるコードも記載しております. 画像はhttps://uk.mathworks.com/help/images/examples/exploring-a-conformal-mapping_ja_JP.html より.
三好 裕之 | 118 view
画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像処理のセグメンテーションの分野で用いられるLevel set 法を用いて画像のセグメンテーションを行います.
三好 裕之 | 882 view
画像の一部を消すInpainting という技術とその実装 (python)

画像の一部を消すInpainting という技術とその実装 (python)

Python + OpenCVにより,画像の修復の技術,「Inpainting 」の実装を行います.
三好 裕之 | 1,948 view
画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

Python を用いて,画像のFilter を視覚的に理解してみます.コードを載せていますので,実装可能です.
三好 裕之 | 4,585 view

この記事のキーワード

この記事のキュレーター

井上 大輝 井上 大輝