# 自然言語処理領域で重要なWord2Vecの仕組みとPython実装についてわかりやすく解説！

> 当サイト【スタビジ】の本記事では、Word2Vecについて解説していきます！Word2Vecは単語をベクトル化する技術。Word2Vecの登場により自然言語処理領域に大きなブレークスルーが起きました。理解しておきましょう！

- URL: https://toukei-lab.com/word2vec
- 公開: 2023.09.05 / 更新: 2025.07.14
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、Word2Vecについて解説していきます！Word2Vecは単語をベクトル化する技術。Word2Vecの登場により自然言語処理領域に大きなブレークスルーが起きました。理解しておきましょう！
:::

こんにちは！

データサイエンティストのウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

この記事では[自然言語処理領域](/natural-language-python)の中で非常に重要なWord2Vecについて簡単に解説していきます。

最近の[大規模言語モデル](/llm)は自然言語処理領域の進化の過程で生まれてきましたが、その自然言語処理の領域の今まで登場してきた技術をしっかりおさえておくことは非常に重要です。

ここでしっかり理解しておきましょう！

以下のYoutube動画でも解説していますのでチェックしてみてください！

::youtube{#FnyKKGYn2DY}

## Word2Vecとは？

まずWord2Vecとはどんな技術なのでしょうか？

Word2Vecは2013年にGoogleの研究員であるTomas Mikolovらによって発表された手法です。

論文は以下になります。

:::box
[Efficient Estimation of Word Representations in Vector Space](https://arxiv.org/pdf/1301.3781.pdf)
:::

Word2Vecは、その名の通り「<mark>**ワードをベクトルに変換する技術**</mark>」です。

ベクトル化することで意味合い的にこの単語とこの単語は近いよねー、この単語は遠いよねーみたいなことがベクトルの向きに落とし込めるんです！

![Word2Vec](/wp-content/uploads/2023/09/28f2e968a1a296a4e8a23d233987567a.jpg)

上記の例だと<mark>AIとDXは近いベクトル方向を持っている一方で、ウマとウシは遠いベクトル方向を持っている</mark>ように見えます。

これは簡易的な例ですが、<mark>単語をベクトル化することでどの単語同士が近い意味を持つのか遠い意味を持つのかを解釈しようとする試み</mark>なのです！

例えば以下のように

AI というワードが\[0.2, 0.4, 0.5・・・・]というようなベクトルになるイメージです。

そして、ベクトル化の便利なところは**様々な演算を施せる**ことです。

有名な例として、

:::box
**King – Man + Woman = Queen**
:::

になるという例があります。

<mark>KingのベクトルからManのベクトルを引いて、Womanのベクトルを足してあげると、Queenのベクトルに非常に近いベクトルが生成できるのです。</mark>

:::talk{who="umatan"}
我々のイメージと合致することがベクトル演算によって表現できているのは面白い！
:::

自然言語処理の世界では、<mark>文書や単語をベクトルに置き換えてベクトル表現の状態で比較したり推論したりします。</mark>

ベクトル化する方法としてカウントベースと推論ベースがあり、Word2Vecは推論ベースになります。

例えばカウントベースには代表的なアプローチとして**tf-idf**というものがあり、文章に登場する単語の数を数えてそれをベクトル化します（これは文章のベクトル化なので単語とは違いますが）。

TFはその文書内での単語の頻出度を表しており、IDFはその単語が全ての文書の中でどれくらいの文書で登場するかすなわち単語の希少度を表しており、それらをもとに算出されるのがtf-idfです。

![形態素解析](/wp-content/uploads/2022/11/f67805417f5968f3f2b5d07bc01f42c0.jpg)以下の記事で解説していますのでチェックしてみてください。

<https://toukei-lab.com/python-mecab>

一方でWord2Vecは推論ベースでベクトル化していきます。次から詳しい仕組みについて見ていきましょう！

## Word2Vecの仕組み

それでは続いて簡単にWord2Vecの仕組み・アルゴリズムについて確認していきましょう！

Word2Vecの論文内では2つのアプローチが提案されています。

:::box
**・CBOW**\
**・Skip-gram**
:::

![](/wp-content/uploads/2023/09/word2vec.png)

それぞれについて見ていきましょう！

### CBOW

CBOWは、前後の文脈から対象となる単語を推論するアプローチです。

例えば、

「**雨が降りそうだから傘を持っていこうと思う**」という文章があった時にその文章は以下のように分解することができます。

:::box
雨 / が / 降り / そう / だから / 傘 / を / 持って / いこう / と / 思う
:::

この単語のかたまりのうち傘の部分をマスクしてみましょう！

:::box
雨 / が / 降り / そう / だから / ？ / を / 持って / いこう / と / 思う
:::

この状態で前後関係からマスクした<mark>「？」の部分を推測するのがCBOW</mark>です。

前後複数個の単語からマスクした単語を予測するわけです。

まずそれぞれの単語をOne-hot ベクトル化します。

![Word2Vec](/wp-content/uploads/2023/09/word2vec2.png)

これらのOne-hotベクトル化したものそれぞれに対して重み行列によって次元圧縮して平均を取ったものを最終的に重み行列で元の次元に戻して予測するモデルを構築します。

![Word2Vec](/wp-content/uploads/2023/09/word2vec3.jpg)

シンプルな2層構造のニューラルネットワークになることが分かりますね！

この時上手く出力結果が、「傘」になるようにニューラルネットワークの重みを調整します。

<mark>この過程で出力される重み行列の各行がWord2Vecで求められる単語ベクトルになるんです！</mark>

つまり、特定単語の前後から特定単語を予測する問題を解いている過程で生成されるベクトルがまさにWord2Vecで手に入れたい単語ベクトルになるんです。

<https://toukei-lab.com/natural-language-python>

### Skip-gram

Skip-gramはCBOWの逆です。

:::box
? / ? / ? / ? / ? / 傘 / ? / ? / ? / ? / ?
:::

特定の単語から前後の単語を予測するモデルを構築します。

Skip-gramの方が<mark>精度が高い</mark>ですが、<mark>計算負荷が高く処理に時間がかかります</mark>。

ちなみにWord2Vecの派生版で文書をベクトル化するアプローチであるDoc2Vecについては以下の記事で解説していますので是非チェックしてみてください！

<https://toukei-lab.com/doc2vec>

## Word2VecをPythonで実装

それでは、Word2VecをPythonで実装してみましょう！

Pythonでの実装方法は極めて簡単です。

以下がコードです。**MeCab**という形態素解析のツールを使っているのですが、MeCabを使えるようにするには少々前準備が必要なので使ったことがない人は以下を参考にしてみてください。

<https://toukei-lab.com/python-mecab>

```python
from gensim.models import Word2Vec
import MeCab


# MeCabのTokenizer初期化
m = MeCab.Tagger("-Owakati")

# サンプルの文章データ
raw_sentences = [
    "猫は外を歩いている。",
    "夏の夜は暑くて寝苦しい。",
    "彼はりんごとオレンジを食べた。",
    "電車は時間通りに到着した。",
    "子供たちは公園で遊んでいる。"
]

# 文章を単語に分割
sentences = [m.parse(sentence).strip().split() for sentence in raw_sentences]

# Word2Vecモデルの初期化とトレーニング
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)

# モデルの保存
model.save("word2vec_example.model")

# 保存したモデルのロード
model = Word2Vec.load("word2vec_example.model")

# 似ている単語を取得
similar_words = model.wv.most_similar("猫", topn=5)
print(similar_words)
```

これで猫と近いベクトル表現を持つ単語を取得できます。

:::box
\[(‘を’, 0.17115190625190735), (‘通り’, 0.13660389184951782), (‘に’, 0.13258132338523865), (‘外’, 0.103121317923069), (‘オレンジ’, 0.09587009996175766)]
:::

今回は自分でサンプル文章を用意して学習しましたが、本来はもっと大量の文章で学習します。

もしくは学習済みモデルを利用するのが良いでしょう！

当メディアが運営する教育サービス「スタビジアカデミー」の自然言語処理コースでは、livedoorニュースのテキストを利用してWord2Vecで学習していますので参考にしてみてください。

:::box
[スタアカ：自然言語処理コース](https://toukei-lab.com/achademy/courses/nlp/)

[![スタアカ「自然言語処理」コース](/wp-content/uploads/2026/10/achademy-course-nlp.jpg)](https://toukei-lab.com/achademy/courses/nlp/)
:::

## Word2Vec　まとめ

ここまでご覧いただきありがとうございました！

本記事では、**Word2Vec**について簡単に解説してきました！

Word2Vecは自然言語処理分野の中で非常に有名な手法ですので是非この機会におさえておきましょう！

ちなみにOpenAIがEmbeddingAPIという単語をベクトル化するAPIを提供しており、そちらを使えば簡易的に単語をベクトル化することが可能です（少々API利用料がかかりますが・・・）。

以下の記事で詳しく解説しているのでぜひチェックしてみてください！

<https://toukei-lab.com/embedding-api>

先ほどもお伝えしましたが、自然言語処理についてもっと詳しく知りたいという方は当メディアが運営する教育サービス[「スタアカ（スタビジアカデミー）」](https://toukei-lab.com/achademy/)の自然言語処理講座をチェックしてみてください。

:::box
[スタアカ：自然言語処理コース](https://toukei-lab.com/achademy/courses/nlp/)

[![スタアカ「自然言語処理」コース](/wp-content/uploads/2026/10/achademy-course-nlp.jpg)](https://toukei-lab.com/achademy/courses/nlp/)
:::

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です！

<mark>プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1（30分×4回）を実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解なども合わせて学べるボリューム満点のコース</mark>になっています！

Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}