はじめに
AIやデータサイエンスに関連する知識を問うG検定では、自然言語処理に関する問題も数多く出題される。その中でも、「トピックモデル」や「特異値分解(SVD)」といった数学的手法とNLPのつながりを問う問題には注意が必要だ。
今回は、実際のG検定過去問をもとに、トピックモデルの一手法である「LSI(Latent Semantic Indexing)」について解説する。選択肢を正確に選ぶだけでなく、なぜその選択が正解となるのかを丁寧に紐解いていく。
問題
以下の文章を読み、(●)に最もよく当てはまる選択肢を選べ。
トピックモデルの手法の1つとして、テキストデータに特異値分解を適用した(●)という手法がある。
選択肢
- PLSA
- LDA
- SSD
- LSI
正解は「4. LSI」
解説:LSIとは何か?
LSI(Latent Semantic Indexing)は、日本語では「潜在的意味インデキシング」と訳される手法。文書と単語の関係を数値的に捉え、文書内の「潜在的な意味構造」を抽出することが目的だ。
具体的には、文書-単語行列(文書ごとの単語出現頻度を表す行列)に対して特異値分解(SVD:Singular Value Decomposition)を行い、次元を圧縮することで意味的な類似性を捉える。このSVDこそが、選択肢を絞る最大のヒントとなる。
他の選択肢が誤りである理由
G検定で高得点を狙うには、なぜ他の選択肢が正解ではないのかまで把握しておく必要がある。
| 選択肢 | 概要 | 誤りの理由 |
|---|---|---|
| PLSA | Probabilistic Latent Semantic Analysis。文書と単語の分布に確率モデルを用いる | SVDは使わず、確率的生成モデルに基づいている |
| LDA | Latent Dirichlet Allocation。単語とトピックの関係をベイズ推定で推測する手法 | こちらもSVDではなく、ディリクレ分布を利用した統計モデル |
| SSD | Solid State Driveなどで使われる略称だが、NLPにおけるトピックモデルとは無関係 | 文脈的にも技術的にも不適切 |
よって、SVDを使うトピックモデルとして適切なのは「LSI」だけとなる。
LSIの実用例
LSIは実際の情報検索や自然言語処理でどのように使われているのか?以下に主な活用例を示す。
1. 文書検索エンジンの精度向上
ユーザーが入力したクエリと意味的に近い文書を検索する際、単純なキーワード一致では限界がある。
LSIを使うことで、「意味的に類似する文書」を見つけることが可能になる。
例:
- クエリ:「機械学習の応用」
- 検索ヒット文書:「深層学習による画像分類」←キーワードは一致しなくても、意味的には関連性が高い
2. 類似文書のクラスタリング
ニュース記事やレビュー文書など、大量の文書を意味に基づいて分類する際にLSIが有効。
トピックの軸が隠れた特徴量として抽出されるため、内容ベースの分類がしやすくなる。
LSIをPythonで使ってみる(簡易コード)
Pythonでは、scikit-learnやgensimなどを使えばLSIを簡単に実装できる。
from sklearn.decomposition import TruncatedSVD
from sklearn.feature_extraction.text import TfidfVectorizer
documents = [
"AIは画像認識で使われる",
"自然言語処理もAIの応用例だ",
"画像処理と自然言語処理は異なる技術だ"
]
# 単語のTF-IDFベクトル化
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(documents)
# 特異値分解による次元圧縮(LSI)
svd = TruncatedSVD(n_components=2)
X_lsi = svd.fit_transform(X)
print(X_lsi)
このコードでは、TF-IDFによって単語の重みを数値化し、それに対してSVDを適用することで、文書の意味的な構造を低次元に圧縮できる。
まとめ
G検定では、単に用語を暗記するだけでは通用しない。今回の問題のように、どの手法がどの数学的処理を基にしているのかまで理解しておく必要がある。
✅ トピックモデルとSVDの関係 → LSIのみが該当
✅ 他の手法(LDAやPLSA)は確率モデル
✅ SSDはNLPとは無関係
「どの手法がどの数理処理と関係しているか」——この視点を持って問題を分析することで、G検定合格への確かな一歩を踏み出せる。


コメント