以下の内容はhttps://cysec148.hatenablog.com/entry/2025/07/08/172716より取得しました。


第21回|単語を数値で表すってどういうこと?

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, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/07/08/172716より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14