
- RAG前処理を適切に行うことで、検索精度や引用精度が向上し、ハルシネーションの抑制につながる
- チャンク分割やPDF・表データの前処理など、データ形式に応じた設計がRAGの回答品質を左右する
- 高精度なRAGを実現するには、前処理だけでなく検索ロジックやEmbeddingモデル、LLMまで含めた設計が重要
RAG(Retrieval-Augmented Generation)は、社内文書やマニュアルなどを引用しながら回答できるため、生成AIチャットボットや社内ナレッジ検索システムで広く活用されています。
しかし、文書をそのまま読み込ませるだけでは、本来引用すべき情報を取得できなかったり、ハルシネーションが発生したりすることがあります。そのため、RAGの性能を最大限に引き出すには、データを検索しやすい形へ整える「前処理」が欠かせません。
本記事では、RAG前処理の基本から、実際の検証による精度の違い、代表的な前処理手法、PDF・表データを扱う際の注意点まで詳しく解説します。RAGシステムの精度を向上させたい方は、ぜひ最後までご覧ください。
\生成AIを活用して業務プロセスを自動化/
RAGにおける「前処理」とは?
LLM(大規模言語モデル)に学習範囲外の知識・事実を示す手法「RAG / Retrieval Augmented Generation」は、企業用チャットボットの開発に不可欠。そのしくみは下図のとおり、ベクトルデータベースで検索した知識をプロンプト経由でLLMに示す、というものとなっています。

このRAGの実装において最も重要なのが、ベクトルデータベースに格納するデータの「前処理」です。
前処理とは、不ぞろいなデータをAIにとって扱いやすい形に加工するプロセスのこと。AIモデルの作成 / ファインチューニング / RAG…etc.AI分野全般で、予測・回答精度を高めるために欠かせません。
そんな前処理の内容はRAGの場合、以上のとおりになります。
| 項目 | 内容 |
|---|---|
| データクレンジング | 記号の削除 / 重複箇所の削除…etc.で引用しない箇所を除く |
| 正規化 | 表記揺れの統一 / 不要な数字の置換…etc.で文章の形を整える |
| エンベディング | 文章を文脈を保ったままベクトルに変換する |
| アノテーション | 文章の内容を分類してタグ(注釈)をつける |
| チャンキング | 文章を検索しやすい大きさに分割し、必要に応じてオーバーラップを設定して文脈を維持する |
前処理なしのデータをRAGに適用してしまうと次のような不具合が出てしまいます。
- 本来データにあるはずの知識が引用されない
- ハルシネーションが生じてしまう
RAGの進化版について詳しく知りたい方は、下記の記事もあわせてお読みください。

前処理によるRAG精度の変化
まずはみなさんに、RAGと前処理の威力をみていただきます。今回のデモンストレーションでは下記の質問をします。
今回GPT-5.6-lunalに出題する質問5点
- オンプレミスで使えるおすすめの小型LLMについて、具体的なモデル名を教えて
- GPT-4を無料で使えるツールって知ってる?日本語で教えて。
- 有名人をコスプレさせられるツールって知ってる?日本語でおしえて。
- 分子構造を予測できるAIツールって知ってる?日本語でおしえて。
- 2次元画像から3Dモデルを作れるAIツールって知ってる?日本語でおしえて。
以上5点の質問について「RAGなし&前処理なし / RAGあり&前処理ほぼなし / RAGあり&前処理あり」の3パターンで、GPT-5.6-lunaによるテキスト生成を実施。学習範囲外(2026年2月以降)の知識について、どれだけ回答できたかを比較してみます。
では基礎の基礎、RAGなし&前処理なしでの回答から、早速みていきましょう!
RAGなし&前処理なしでの回答例
まずはRAGも前処理も適用しない状態で、素のGPT-5.6-lunaの回答をみていきます。

- Google Colaboratory(Colab)を使用
- PythonのOpenAIライブラリを使ってChatGPT APIからGPT-5.6-lunaを呼出
- 質問を実施
では、1つ目の質問から回答をどうぞ!
オンプレミスで使えるおすすめの小型LLMについて、具体的なモデル名を教えて
結構しっかり回答をしてくれ、おすすめのモデルを教えてくれました。2026年8月までに公開されているLLMの性能が高くなってきているので、一般的なことであれば回答をしてくれますね。
続いて2023年3月登場のGPT-4についても、素のGPT-5.6-lunaに聞いてみましょう!
GPT-4を無料で使えるツールって知ってる?日本語で教えて。
いくつか候補を挙げてくれ、注意点も教えてくれました。
残り3つの質問もしていきます。
有名人をコスプレさせられるツールって知ってる?日本語でおしえて。
こちらもいくつか候補を挙げてくれ、使うときの指示例も出してくれています。
分子構造を予測できるAIツールって知ってる?日本語でおしえて。
用途別の候補も挙げてくれており、非常にわかりやすいです。
2次元画像から3Dモデルを作れるAIツールって知ってる?日本語でおしえて。
こちらもいくつか挙げてくれ、注意点も書いてくれているのでツール選びに重宝しそうです。
以上のとおり。GPT-5.6-lunaでは一般的な情報を適切に教えてくれています。
RAGあり&前処理ほぼなしでの回答例
続いては、RAG実装用ツール「LangChain」を駆使して、最低限の前処理(テキスト分割)のみ行ったデータをGPT-5.6-lunaに引用させてみます。
- Google Colaboratoryを使用
- PythonのBeautiful Soupライブラリで、「生成AIずかん」からテキストを抽出
- LangChainで抽出したテキストを分割(chunk_sizeは1000、chunk_overlapは0)
- 分割したテキストをEmbeddings APIの「text-embedding-ada-002」でベクトル化
- ベクトル化したものをベクトルデータベース「Chroma」に格納
- 質問を実施(n_resultsはデフォルトの4)
以上の順序になっています。今回は「前処理ほぼなし」ということで、記事中の無関係な内容(リンクボタン / 目次 / 記事一覧 / 著者…etc.)を残したまま、ベクトルデータベースを構築しました。
では、1つ目の質問からRAGあり&前処理ほぼなしでの回答をみていきましょう!
オンプレミスで使えるおすすめの小型LLMについて、具体的なモデル名を教えて
いくつか候補は挙げてくれていそうですが、前処理なしなので読み取りにくいですね。
2問目にいきましょう。
GPT-4を無料で使えるツールって知ってる?日本語で教えて。
こちらも候補は挙がっていそうです。
では、3問目はどうでしょうか?
有名人をコスプレさせられるツールって知ってる?日本語でおしえて。
いくつか候補が挙がっていますが、内容をよくみるとコスプレとは関係ないツールが挙げられています。
続いて4問目です。
分子構造を予測できるAIツールって知ってる?日本語でおしえて。
こちらは関係あるものないものが混在しています。最後に気になる5問目はどうでしょう。
2次元画像から3Dモデルを作れるAIツールって知ってる?日本語でおしえて。
こちらは関係あるものないものが混在しています。
最後に気になる5問目はどうでしょう。
2次元画像から3Dモデルを作れるAIツールって知ってる?日本語でおしえて。
2次元画像から3Dモデルを作れるAIツールとは関係ない画像関連のツールが出力されています。
RAGあり&前処理ありでの回答例
さて、ここからが本題です。先ほどの工程に前処理を加えて「RAGあり&前処理あり」でのGPT-5.6-lunaの回答をみていきます。手順としては下記です。
- Google Colaboratoryを使用
- PythonのBeautiful Soupライブラリで、WEELの「生成AIずかん」全記事からテキストを抽出
- 前処理を実施
- LangChainで抽出したテキストを分割(chunk_size=1000、chunk_overlap=0)
- 分割したテキストをEmbeddings APIの「text-embedding-ada-002」でベクトル化
- ベクトル化したものをベクトルデータベース「Chroma」に格納
- 質問を実施(n_resultsはデフォルトの4)
このように、スクレイピングの直後に前処理の工程が入っています。
そして今回施した前処理は下記5つ。
- 記事本文のみ指定
- ソースコードの除去
- 目次の除去
- URLの除去
- 半角記号の除去
Pythonの「Beautiful Soup」ライブラリと「re」モジュールを駆使して、記事本文を加工しています。(ソースコードは下記参照)
クリックで表示
#記事本文のみ指定
for element in soup.find_all("div",class_="post_content"):
#以下、element.getText()を駆使
#ソースコード削除
for element in soup.find_all("div",class_="hcb_wrap"):
element.decompose()
#目次削除
for element in soup.find_all("div",class_="p-toc -double is-omitted"):
element.decompose()
#URL削除
import re
text = re.sub(r’http?://[\w/:%#\$&\?\(\)~\.=\+\-]+’, ”, text)
text = re.sub(r’https?://[\w/:%#\$&\?\(\)~\.=\+\-]+’, ”, text)
#半角記号削除
text = re.sub(r”[!”#$%&\’\\\\()*+,-./:;?@[\\]^_`{|}~「」〔〕“”〈〉『』【】&*・()$#@。,?!`+¥%]’, ”, text)
#その他テキストの削除
text.replace('引用:', '')
text.replace('引用元:', '')
text.replace('参考:', '')
text.replace('参考元:', '')
text.replace('参考記事:', '')ちなみに前処理の前後で、データがどのように変わったかというと……

このように、前処理によってファイルサイズが半分になりました。
ではRAGあり&前処理ありでの回答について1問目からみていきましょう!
オンプレミスで使えるおすすめの小型LLMについて、具体的なモデル名を教えて
弊社メディアにはオンプレミスで使える小型LLMはないと回答されてしまいました。
続いて2問目。
GPT-4を無料で使えるツールって知ってる?日本語で教えて。
今回は適切に弊社メディア内からいくつか出力をしてくれています。
ただ、3問目の回答については……
有名人をコスプレさせられるツールって知ってる?日本語でおしえて。
コスプレ明記はないが、それに近いツールを紹介してくれています。直接的なもの以外も回答してくれるのは良いですね。
4問目の回答はどうでしょうか…
分子構造を予測できるAIツールって知ってる?日本語でおしえて。
あるものとないものを明記して回答してくれているので、ハルシネーションは起きていなさそうです。
最後に5問目の回答は…
2次元画像から3Dモデルを作れるAIツールって知ってる?日本語でおしえて。
こちらも適切にDreamGaussianと回答してくれました。また、注意点も併記してくれているので助かります。
次項からは、ここまでの結果を振り返ってみましょう。
前処理による回答の変化まとめ
GPT-5.6-lunaを使ったデモンストレーションの結果、RAGなしでは一般的な情報を伝えてくれ、RAGありの場合には弊社メディアの情報から結果を出力してくれています。前処理を行うことによって、一度に引用できる知識量が増加しています。したがって基本的には、RAGの効果を最大限に引き出したいなら前処理が必要、ということになります。
なお、「前処理なし」で引用されていたツールが「前処理あり」で引用されなくなるケースもあります。
これは前処理によって文書の内容や構造が変化し、Embedding(ベクトル表現)が変わることで、類似度検索の順位が入れ替わったためと考えられます。
前処理は検索精度を向上させる目的で実施されますが、必ずしもすべての質問で検索結果が改善されるわけではなく、検索対象となるチャンク自体が変化することもあります。
RAGの進化版「RAG Fusion」では、より多角的かつ大量の情報が引用可。それでいて、質問に対する引用の関連性も強化されています。
RAGにおける前処理の手法
ここからは、RAGの効果を引き出す前処理について、具体的な手法を4つ紹介していきます。まずは、先ほどのデモンストレーションでも触れた「データクレンジング」から、詳しくみていきましょう!
データクレンジング
「データクレンジング」とは、データに含まれるエラー・ノイズ・欠損を除去する前処理のこと。このデータクレンジングはAIモデルの開発からファインチューニング、RAGまで用途別でさまざまな手法が編み出されていて、なかには統計学的なもの(移動平均 / 線形回帰…etc.)もあります。
ですが、自然言語を扱うRAGの場合はよりシンプル。数学・統計の知識をそれほど要しません。具体的には下記です。
- ソースコードやHTMLタグの除去
- URLの除去
- 全角・半角記号の除去
- 重複箇所の除去
- その他、不要箇所の除去
- 「てにをは」「ですます」…etc.ストップワードの除去
必要なのは時間です。
ちなみにPythonでデータクレンジングを行う場合は次のようなライブラリが使えます。
| 項目 | 内容 |
|---|---|
| Beautiful Soup | WebサイトからスクレイピングしたHTML形式のデータの加工が可能 |
| re | URLや記号の除去が可能 |
正規化
生のデータにはたいてい、単位や表記のブレが含まれています。このブレを値の幅や平均値をそろえることで、なくす前処理が「正規化」です。こちらも自然言語を扱うRAGの場合は、シンプルです。
- 文字種(ひらがな / 全角カナ / 半角カナ / 漢字)の統一
- つづりの統一
- 表記揺れの統一
- 固有名詞の表記の統一
- 引用しない数字(日付 / 金額…etc.)を「0」に置き換える処置
上記の処理のみで完結します。
チャンク分割(チャンキング)
RAGでは、文書全体をそのまま検索するのではなく、文章を検索しやすい大きさごとに分割した「チャンク(Chunk)」を単位として検索します。このチャンクを作成する工程がチャンク分割(チャンキング)です。
チャンクの大きさは一般的に500〜1,500文字程度で設定されることが多く、文書の内容や用途に応じて最適なサイズに調整します。チャンクが小さすぎると文脈が失われやすく、大きすぎると検索時に不要な情報まで含まれてしまい、回答精度の低下につながる場合があります。
また、多くのRAGシステムではオーバーラップ(Overlap)と呼ばれる設定も利用されます。これは、前後のチャンクを数十〜数百文字ほど重複させる仕組みで、文章の途中で意味が途切れることを防ぎ、検索時に前後の文脈を維持しやすくするためのものです。
今回の検証では、比較条件を統一するためchunk_size=1000、chunk_overlap=0でチャンク分割を実施しました。ただし、これは検証条件であり、実務では文書の種類や検索対象に応じてチャンクサイズやオーバーラップを調整し、最適な設定を検証することが一般的。
チャンク分割の方法によって検索結果が変わることもあるため、RAGの精度を左右する重要な前処理の一つといえます。
エンベディング
自然言語をAIモデル内で数学的に扱えるようにするには、文字データを数値データに変換する前処理が必要です。この前処理全般のことをエンコーディングといいます。
このエンコーディングのなかでも、RAGに欠かせないのが「エンベディング / Embedding」です。エンベディングは、文脈・意味を保ったまま文字データをベクトルデータに変換する技術で、ベクトルデータベースの構築に用いられます。
アノテーション
データに説明・注釈のタグを添えて分類を行う「アノテーション」も、RAGで用いられる前処理のひとつです。RAGにおけるアノテーションは下記二つの作業になります。
- テキストの種類による分類(メール文 / 企画書 / 論文…etc.)
- テキストの内容・トピックによる分類
データセットの作り方について詳しく知りたい方は、下記の記事もあわせてお読みください。

PDF・表(テーブル)データを前処理するときの注意点
RAGの前処理では、不要な文字や記号を削除するだけでなく、文書の構造を維持したまま検索しやすい形へ整えることも重要です。特に実務では、Webページ(HTML)よりもPDFや表(テーブル)データをナレッジとして利用するケースが多く、これらはプレーンテキストとは異なる前処理が求められます。
PDFは段組みやヘッダー・フッター、画像などが含まれるため、単純なテキスト抽出では文章の順序や意味が崩れることがあります。
また、表データもそのまま文字列へ変換すると行と列の関係性が失われ、AIが内容を正しく理解できなくなる場合があります。そのため、文書の種類に応じて適切な前処理を行うことが、RAGの検索精度や回答精度を高めるポイントです。
PDFを前処理するときの注意点
PDFは見た目では読みやすい文書でも、AIがそのまま理解しやすい形式とは限りません。
テキストだけを抽出すると、段組みや改行の位置が崩れたり、ヘッダー・フッターや脚注が本文に混ざったりして、本来の文章の流れが失われることがあります。
また、スキャンしたPDFのように文字情報を持たない文書では、OCR(Optical Character Recognition:光学文字認識)を利用して文字を読み取る必要があります。
このとき、文字だけでなくレイアウトも考慮して解析できるツールを利用すると、見出しや段落、表などの構造を維持しやすくなり、RAGによる検索精度の向上につながります。
実務では、単純なテキスト抽出だけでなく、文書構造をできるだけ保持した状態でデータ化することが重要です。
表(テーブル)データを前処理するときの注意点
表(テーブル)は、人間であれば行と列の配置を見るだけで内容を理解できます。
しかしAIにとっては、単純にテキスト化するとセル同士の対応関係が失われ、意味のない文字列として認識される場合があります。
CSVのような形式へ単純に変換すると、「どの値がどの項目に対応しているのか」という文脈が失われ、検索精度が低下することがあります。
そのためRAGでは、表の構造を維持したままMarkdownやHTML形式へ変換したり、内容を自然文として整理したりする方法がよく採用されます。Markdownは罫線や区切り記号で表構造を表現できるため、AIが列や行の関係を理解しやすくなるのが特徴です。

PDFや表データを適切に前処理しておくことで、RAGは文書構造を正しく把握しやすくなり、検索精度や引用精度の向上が期待できます。
RAG実装用のツール3選
続いては前処理の次の工程、RAG実装時に欠かせないツールを紹介していきます。今回紹介するのは下記3つです。
- LangChain
- Llamaindex
- Haystack
いずれもPythonで扱えるのが魅力です。
まずは、デモンストレーションでも登場したLangChainから、詳細をみていきましょう!
LangChain
| 項目 | 内容 |
|---|---|
| Models | LLMやその他AIモデル同士の連携 |
| Indexes | 外部データベースとの連携 |
| Prompts | プロンプト・ソースコードのテンプレート設定 |
| Memory | 会話内容の記憶 |
| Chains | 処理フローのブロック化 |
| Agents | 複数ツールの連携 |
「LangChain」はLLMと外部リソース(データベース / 言語処理…etc.)を連携させるためのツール。PythonやJavaScript等で使えるライブラリの形式をとって、無償で一般公開(MITライセンス)されています。
LangChainについて詳しく知りたい方は、下記の記事もあわせてお読みください。

Llamaindex
対して「Llamaindex」は、RAGの実装に特化したPython & TypeScript用のライブラリです。
- ベクトルデータベース
- テキスト
- PDF
…etc.
これらは外部データとの連携が可能。LangChain同様、無償で一般公開(MITライセンス)されています。
Llamaindexについて詳しく知りたい方は、下記の記事もあわせてお読みください。

Haystack
Haystackは、RAGやエンタープライズ向け検索システムの構築に特化したオープンソースのフレームワークです。文書の取り込みから前処理、ベクトル化、検索、LLMによる回答生成まで、一連のRAGパイプラインを柔軟に構築できます。特に、複数の検索手法を組み合わせたハイブリッド検索や、検索精度を評価するための機能が充実している点が特徴です。大量の社内文書やナレッジベースを対象としたRAGシステムにも対応しやすく、本番環境での運用を見据えた設計がされています。
また、OpenAIやAnthropicなどのLLMや、Elasticsearch、OpenSearch、Milvus、Qdrantなどのベクトルデータベースとも連携できるため、既存システムへ組み込みやすい点もメリット。
検索精度を重視したRAGシステムを構築したい企業や、大規模な文書検索基盤を開発したい場合に適したフレームワークといえるでしょう。
RAGの精度を高めたいなら「前処理」は必須!
RAGにおける前処理は、単に不要な文字を削除するだけではありません。データを検索しやすい形へ整え、LLMが適切な情報を取得できる状態にすることが重要です。高精度なRAGシステムを構築するためには、前処理手法だけでなく、チャンク分割の方法や検索ロジック、利用するLLM・Embeddingモデルまで含めて設計することが重要です。
用途に応じて最適な構成を検討することで、ハルシネーションの抑制や回答精度の向上につながります。
RAGを活用した生成AIチャットボットや社内ナレッジ検索システムを開発する際は、LLMの性能だけに注目するのではなく、検索対象となるデータをどのように前処理・設計するかにも、ぜひ注目してみてください。

最後に
RAGの回答精度を高めるには、データクレンジングやチャンク分割だけでなく、検索ロジック・Embeddingモデル・LLMまで含めた設計が欠かせません。WEELでは、既存データの整理からPoC、本番環境の構築・精度改善まで一貫して支援しています。RAGの検索精度やハルシネーションに課題を感じている企業様は、ぜひご相談ください。
「生成AIで新しいプロダクトを作りたい」「もっと本格的に生成AIを業務に組み込みたい」とお考えの方は、ぜひ株式会社WEELにご相談ください。
開発実績として、
・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント
などの開発実績がございます。
生成AIを活用したプロダクト開発の支援内容は、以下のページでも詳しくご覧いただけます。
︎株式会社WEELのサービスを詳しく見る。
アイデア段階でも構いません。まずは無料相談でお気軽にご相談ください。
︎生成AIを活用したプロダクト開発・業務効率化について相談する

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。


