0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自然言語処理(NLP)の基礎

Last updated at Posted at 2025-12-11

自然言語

自然言語とは、日本語や英語のように、人間が日常的なコミュニケーションで用い、文化とともに自然に発展してきた言語を指す。話し言葉や書き言葉など、人間同士が意思疎通するために使う言語のすべてが自然言語に含まれる。

一方、人工言語とは人が目的を持って作り出した言語で、プログラミング言語(Python、Javaなど)やマークアップ言語(HTML、CSS など)、形式言語や人工言語(数式、エスペラント語 など)がある。

自然言語処理(NLP)とは

自然言語処理(NLP:Natural Language Processing)とは、人間が使う自然言語をコンピュータが理解・分析・生成できるようにする技術である。

代表的な応用分野は以下。

  • 機械翻訳(Google翻訳など)

  • 音声認識

  • テキスト要約

  • 感情分析

  • 質問応答システム

  • チャットボット

NLP に関わる代表的な歴史的出来事

■ 機械翻訳の誕生

東西冷戦下で英語とロシア語の自動翻訳が注目され、機械翻訳が研究分野として確立。

■ ELIZA(1964–1966)

ジョゼフ・ワイゼンバウムによる、心理カウンセラーのように振る舞う対話システム。初期のチャットボットの原型。

■ IBM「ワトソン」(2011)

クイズ番組「ジョパディ!」で人間チャンピオンに勝利し、AIの言語理解力が注目される。

■ 「東ロボくん」(2011–2016)

東大入試突破を目指した日本のAI。偏差値57.8を達成し話題に。

■ Google ニューラル機械翻訳(2016)

ディープラーニングを用いた翻訳で高精度化が進む。

■ スマートスピーカーの普及

2014:Amazon Alexa

2016:Google Home

2018:Apple HomePod
音声認識・自然言語理解技術の成熟が背景にある。

自然言語処理の4つの基礎技術

形態素解析

文章を「意味を持つ最小単位(形態素)」に分解する技術。

例:「すもももももももものうち」
→「すもも」「も」「もも」「も」「もも」「の」「うち」

日本語では特に重要で、MeCab、JUMAN++、Sudachi などの解析器が使われる。

構文解析

形態素がどのように結びつき、文としてどのように構造化されているかを解析する技術。

例:「私は友人と美味しいお菓子を食べました」

「私が友人とお菓子の両方を食べた」、「私と友人が一緒にお菓子を食べた」など、文の構造を複数解釈できる。

意味解析

構文解析で得た複数解釈の中から「最も自然な意味」を判断する工程。

「美味しい」は「お菓子」と結びつく、「私」と「友人」は意味的に近い、などの関係から、正しい意味を抽出する。

文脈解析

文章全体の流れや複数の文の関係性を理解する工程。
高度な知識や機械学習が必要で、実用レベルではまだ難しい部分も残る。

自然言語処理と機械学習の違いと関係性

■ 違い

  • 自然言語処理(NLP)
     → 言語そのものを扱う技術(形態素解析・構文解析など)

  • 機械学習
     → データからパターンを学習し、予測や判断を行う技術

■ 関係性

  • 自然言語処理(NLP)
     → テキストを機械が扱える形に変換する
  • 機械学習
  •  → そのテキストを学習して分類・予測などを行う

自然言語処理が注目される背景

■ 1. テキストデータの爆発的増加

SNS、チャット、オンライン会議、企業文書のデジタル化など。

■ 2. 汎用言語モデルの進化

BERT、GPT-3 以降の大規模言語モデルが飛躍的な精度向上を実現。

■ 3. DX(デジタルトランスフォーメーション)の推進

企業が大量のテキストを分析し、自動化する必要性が高まった。

Bag of Words の基本的な考え方

単語が何回出てきたかのみを使って文章を表現する。

👦 わかりやすい例

文章A:「カレー が 好き」
文章B:「ラーメン が 好き」

全単語を一覧にすると:

単語 Aでの回数 Bでの回数
カレー 1 0
ラーメン 0 1
1 1
好き 1 1

文章A → [1, 0, 1, 1]
文章B → [0, 1, 1, 1]

のように表すことができる。文章の順番は考慮しない点がBoWの特徴である。

BoW の生成手順

①文章を単語に分割(トークナイズ)

②語彙(ボキャブラリ)を作成

③各文章で単語の出現回数を数える

④単語数ぶんの次元を持つ数値ベクトルにする

⑤これで文章を機械学習モデルへ入力できるようになる。

TF-IDF によるBoWの改良

BoWでは、意味の薄い単語(例:「の」「は」「に」「が」)も高頻度で数えられるため、文章の特徴が埋もれやすい。
そこで、TF-IDF(Term Frequency - Inverse Document Frequency)を使って、単語ごとに重み付け(重要度調整)を行う。

TF-IDF の数式

TF-IDF は次の式で定義される。

■ TF(Term Frequency:単語頻度)

ある文章 d における単語 t の頻度:
image.png

単純に回数を使うバージョン:
image.png

■ IDF(Inverse Document Frequency:逆文書頻度)

単語 t がどれだけ「珍しい」かを表す:

image.png

N:全文章数
DF(t):単語 t が出現する文章数

実務ではゼロ割り防止のため、以下のように平滑化することが多い:
image.png

■ TF-IDF(重み付け済みスコア)
image.png

これにより、その文章にだけよく出る単語は大きな値、どの文章にもよく出る単語は小さな値となり、文章の特徴が強調される。

BoWの弱点

BoWは単語の順番を無視するため、「犬が人を助けた」「人が犬を助けた」のように、意味が異なっても同じようなベクトルになってしまう。

この弱点を補うため、Word2Vec、GloVe、BERTなどの分散表現(埋め込み)が登場した。

Word2Vec

Word2Vecとは、文章中の単語を数値ベクトルへ変換し、その意味的な近さ・類似性を捉えるための自然言語処理手法である。

従来の「単語を0/1や単純な頻度で扱う」自然言語処理と比べ、Word2Vecは文脈に基づいて単語の意味を捉える点で圧倒的に高精度である。この「文脈の似る単語は、意味も似る」という分布仮説を基盤に設計されており、Googleのトマス・ミコロフ氏らによって2013年に発表された。

Word2Vecの特徴:「意味ベクトル」を学習する

Word2Vecが行うのは、単語を数百次元程度の数値ベクトルへ写像することである。このベクトル表現(単語埋め込み)には以下の利点がある。

  • 単語間の距離・類似度を定量化できる

  • 数値ベクトルのため、機械学習モデルへ直接入力できる

  • 次元過大(高次元問題)やデータスパースネスを緩和できる

従来はBoWやTF-IDFによる疎なベクトル表現が主流であったが、Word2Vecはニューラルネットワークにより意味のある連続ベクトルを学習する点で画期的であった。

Word2Vecの仕組み

Word2Vecのモデルは非常にシンプルで、基本は2層のニューラルネットワークのみで構成されている。構造が軽量であるため、大規模データを扱う際でも学習が高速に進む。

Word2Vecには以下の2つのモデルが内包されている。

  • Skip-gram(スキップグラム)

入力:中心語(例: “猫”)

出力:周辺語(窓サイズ内に出現する単語)

中心語から周囲の単語を予測する「教師あり学習」である。
出現頻度の低い単語にも強い表現を学習しやすい。

  • CBOW(Continuous Bag-of-Words)

入力:周辺語

出力:中心語

周りの単語から中心語を推定する手法であり、Skip-gramより高速に学習できる傾向がある。

中心語
その単語の埋め込みベクトルを学習したい対象となる注目単語のことを指す

周辺語
文章中の特定の単語のまわりに存在する単語のことである

単語間の類似度を測定できる

Word2Vecで得られる単語ベクトルは、以下のような操作を可能にする。

✔ 類似語の検索

「犬」に近い単語を探すと「猫」「ペット」などが得られる。

✔ 有名なアナロジー(アナロジー推論)
image.png

単語の意味関係がベクトルで表現されていることを示す典型例である。

Word2Vecでできること

以下に代表的な応用例を示す。

  • 演算処理(アナロジー・意味推論)

ベクトルを足したり引いたりすることで、単語の関係性を推論できる。

例:

「王 − 男 + 女 ≒ 女王」

「東京 − 日本 + フランス ≒ パリ」

  • 感情分析(Sentiment Analysis)

Word2Vecベクトルと、既知の感情ベクトル(怒り・幸福・驚きなど)との距離を測ることで、文章がどの感情に近いかを推定できる。

例:「怒り」「悲しみ」「幸福」など
→ アメリカ心理学者ポール・エクマンによる6基本感情を用いる手法が一般的である。

  • 文章要約(Doc2Vecとの併用)

Word2Vecの拡張としてDoc2Vec(Paragraph2Vec)がある。
文章全体のベクトル表現を扱うことができ、文章の類似度比較や、要約・特徴抽出に用いられる。

例:Recruit Technologies の A3RT(Text Summarization API)
→ 文の意味把握・分類・重要文抽出にDoc2Vecを利用

  • 文章生成(RNNとの併用)

Word2Vecで学習した単語ベクトルをRNNに入力することで、文章のスタイル模倣が可能になる。

例:夏目漱石作品の文章を学習
→ 文章のクセや表現パターンを反映した新しい文を生成可能

  • 類似文書検索・情報検索(検索エンジン)

文章内の単語をWord2Vecで埋め込み、文ベクトル(平均など)に変換することで、類似文章の検索や、レコメンド、クエリ拡張(意味的に近い検索語を追加)が可能になる。

  • クラスタリング・トピック推定

単語ベクトルや文ベクトルを用いると、意味的に近い単語・文章同士でクラスタリングできる。

Word2Vecが自然言語処理に与えた影響

Word2Vecの登場は、自然言語処理の歴史において大きな転換点となった。
それ以前は手工芸的特徴量や高次元疎ベクトルが中心であったが、Word2Vec以降は、

  • ニューラルネットワークによる表現学習

  • 分散表現(dense embedding)

  • 意味空間での操作

といったアプローチが主流となった。

この流れはその後、GloVe、FastText、さらにBERTやGPTといった巨大モデルへと発展している。
今日のNLPモデルの多くが単語埋め込みの思想を継承している。

ベクトル埋め込み

ベクトル埋め込みとは、データを多次元空間上の点として配置する技術である。その核心は「意味的に類似するデータを近くに配置する」という表現学習の考え方にある。

従来の手法(BoWやTF-IDF)では、単語の出現頻度などの情報に基づいて高次元の疎なベクトルを生成していた。しかしこれらは文脈や意味の類似性をほとんど考慮していない。一方、ベクトル埋め込みはニューラルネットワークを用いて学習されることが多く、連続的で密なベクトル空間に意味情報を圧縮して表現できる点が大きな特徴である。

この技術により、類似度計算、クラスタリング、分類、検索などを高い精度で行うことが可能となる。

ベクトル埋め込みの働き:ベクトル検索エンジンのしくみ

ベクトル埋め込みは、検索技術の発展にも大きく貢献している。
テキスト・画像・ユーザーデータなどをベクトル化し、検索クエリも同様にベクトルへ変換することで、以下のような処理が可能になる。

  • 検索対象のデータを事前にベクトルとして保存する

  • ユーザーのクエリを同じ空間のベクトルへ変換する

  • クエリベクトルとデータベクトルの距離(類似度)を計算する

  • 距離が最も近いデータを検索結果として返す

この仕組みにより、「意味的に近いデータ」を高速に検索できる。
Google画像検索やPinterest、Amazonのレコメンドなど、多くのサービスがこの仕組みを活用している。

ベクトル埋め込みの代表的なタイプ

ベクトル埋め込みはテキストだけでなく、画像・ユーザー・製品など多様なデータタイプに適用されている。以下では主要な種類を体系的に整理する。

  • 単語埋め込み(Word Embedding)

単語を意味ベクトルとして表現する埋め込みである。
Word2Vec、GloVe、FastTextといった手法が広く利用されている。

これらのモデルは大規模テキストを学習し、類義語は近くに関連の薄い単語は遠くに配置されるようベクトルを調整する。

  • 文埋め込み(Sentence Embedding)

文全体の意味を捉える埋め込みである。単語埋め込みの平均では表現できない文脈を捕捉できる。Universal Sentence Encoder(USE)やSkipThought、Sentence-BERTなどがある。
文埋め込みにより、質問応答、文検索、文類似度推定などが高精度で実現される。

  • ドキュメント埋め込み(Document Embedding)

新聞記事や論文、レビューなど、長文ドキュメント全体をベクトルとして表現する手法である。
Doc2Vec(Paragraph Vector)やLatent Semantic Analysis(LSA)、TF-IDF+次元圧縮(SVD など)がある。
長文全体のテーマや内容的特徴を捉えるため、文書分類・要約・検索などに利用される。

  • 画像埋め込み(Image Embedding)

画像を数百〜数千次元の数値ベクトルに変換する手法である。
画像分類や類似画像検索の根幹技術となっている。

主にCNN(畳み込みニューラルネットワーク)が用いられ、ResNet、VGG、Inceptionといった事前学習モデルから特徴を抽出して構築される。

  • ユーザー埋め込み(User Embedding)

サービス内のユーザーをベクトルとして表現する手法である。閲覧履歴、評価、購買行動、行動パターンなどを学習し、「似た行動をとるユーザー同士」を近くに配置する。レコメンドシステムやセグメンテーション、パーソナライズ広告に使われる。

  • 製品埋め込み(Item / Product Embedding)

製品やアイテムをベクトルで表現する埋め込みである。製品の属性、説明文、購買履歴などを利用して学習される。
類似製品検索や商品レコメンド、カタログ分析、トレンド抽出などに使われる。

ベクトル埋め込みが可能にすること

ベクトル埋め込みにより、意味的な類似度計算やクラスタリング(意味ごとのグルーピング)、センチメント分析といった高度なAI処理が可能になる
特に大規模言語モデル(LLM)や画像認識モデルでは、埋め込みが基盤技術として必須である。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?