文ベクトルとは
文ベクトル(Sentence Vector / Sentence Embedding)とは、文全体の意味を固定長の実数値ベクトルとして表現する技術です。単語ベクトルが個々の単語を表現するのに対し、文ベクトルは文全体の意味をベクトル空間に射影します。文の意味的類似度の計算や文の分類に広く活用されます。
| ひとことで言うと | 文章全体の意味を、決まった長さの数値の並びで表したもの。 |
|---|---|
| どこで使う | 類似文書の検索、FAQの自動マッチング、RAGの検索部分、重複投稿の検出。 |
| 注意点 | モデルによって得意な言語や分野が違う。日本語では日本語対応モデルを選ぶ。 |
文ベクトルの生成方法
最もシンプルな方法は、文中の単語ベクトルの平均を取る手法です。Doc2Vec(Paragraph Vector)は文全体の分散表現を直接学習する手法です。Sentence-BERTはBERTをファインチューニングして高品質な文ベクトルを生成するモデルで、現在最も広く使用されています。
1文章を入力FAQや問い合わせ
▶
2モデルでベクトル化意味を数値に
▶
3DBに保存検索用に索引化
▶
4質問もベクトル化同じモデルで変換
▶
5近い順に取得意味が近い文が並ぶ
文ベクトルの応用
文の意味的類似度計算(Semantic Textual Similarity)、類似文書検索、文書クラスタリング、パラフレーズ検出、RAGにおける検索、テキスト分類などに活用されています。特にRAGでは、質問文と文書のチャンクを文ベクトルに変換し、類似度で検索する処理が中核となっています。
多言語文ベクトル
Multilingual Sentence-BERTやLaBSE(Language-agnostic BERT Sentence Embedding)など、複数の言語で共通のベクトル空間に文を射影するモデルも開発されています。異なる言語間での文の類似度計算や多言語検索が可能になります。