Hello there, ('ω')ノ
🔍 AIにとって「単語」はそのままでは理解できない
人間なら、「りんご」と聞けば、赤くて甘くて丸い果物をイメージできますよね。
でも、AIにとって「りんご」はただの文字列です。 意味もイメージも、そのままでは何もわかりません。
📌 そこで必要になるのが、「単語を数値に変換すること」なんです。
この変換を「ベクトル化」や「単語の埋め込み(Embedding)」と呼びます。
✨ なぜ数値にするの?
AIが情報を処理するためには、全部が数値(ベクトル)になっている必要があります。
- 画像も → ピクセルの数値に変換
- 音声も → 音の強さや周波数の数値に変換
- 言葉も → 意味や使われ方を表す数値に変換
こうして初めて、AIは「比較」「分類」「予測」ができるようになります。
🧮 単語を数値にする3つの代表的な方法
① One-hotエンコーディング(最もシンプル)
🟩 単語ごとに「その単語だけ1、他は全部0」にする方法
例:語彙が ["りんご", "バナナ", "みかん"] の場合
| 単語 | 数値表現 |
|---|---|
| りんご | [1, 0, 0] |
| バナナ | [0, 1, 0] |
| みかん | [0, 0, 1] |
✅ シンプルだけど、 ❌ 単語同士の意味の近さがわからない(全部バラバラ)
② カウントベース(Bag of Words)
🧺 文の中にどの単語が何回出てきたかを数える方法
例:「私はりんごを食べました。りんごは好きです。」
→ 「りんご:2回」「食べました:1回」「好き:1回」…
✅ 文全体を数値化できる ❌ 単語の順序や文の構造は無視してしまう
③ 分散表現(Word2Vec, FastText など)
📏 意味の似ている単語ほど“近い数値(ベクトル)”になる方法
例:
| 単語 | ベクトル(例) |
|---|---|
| りんご | [0.45, 0.12, -0.33, ...] |
| バナナ | [0.47, 0.09, -0.30, ...] |
| 自動車 | [-0.20, 0.88, 0.35, ...] |
ここで注目なのが、
✅ 「りんご」と「バナナ」のベクトルは近く、
❌ 「りんご」と「自動車」は遠くなる
こうして、意味の近さ・文脈での使われ方を反映した数値化ができるのです!
📌 ChatGPTなどは、こうした分散表現(埋め込み)をベースに言語を理解しているんです。
🔄 Embedding層とは?
最近のAIモデル(BERT, GPTなど)では、 入力された単語を「Embedding層」で数値化します。
- この層は学習可能で、使われるたびに“より賢く”なる
- 意味的な関係や文脈をうまく反映したベクトルに変換してくれる
つまり、AIにとっての“辞書”を自分で育てていくようなイメージです。
🧠 ベクトルになった単語はどう使われる?
数値化された単語(ベクトル)は、以下のような処理に使われます:
| 処理内容 | ベクトルを使う理由 |
|---|---|
| 文章の分類(感情分析など) | 「ポジティブ」「ネガティブ」の傾向を学習するため |
| 翻訳や要約 | 文脈と意味を数値で把握し、自然な表現に変換するため |
| 質問応答AI(例:社内Bot) | 質問と答えの“意味の距離”を数値で比較するため |
✅ まとめ:AIにとって言葉は“意味のある数列”
✅ AIは言葉をそのままでは理解できないので、まずは数値(ベクトル)に変換する
✅ 単語の意味や文脈を反映させる「分散表現」が現代AIの主流
✅ ChatGPTなどの大規模言語モデルでは、Embedding層がベースにある
✅ この数値化があるからこそ、翻訳・要約・会話などの高度な言語処理が可能になる!
Best regards, (^^ゞ