ドキュメントの読み込みと分割
目的
ドキュメントを読み込み、その内容をできるだけ完全に分割し、後続の検索の完全性と質問応答の正確性を向上させる
各ファイル形式に対応するローダー処理
ファイル拡張子 | 取得ロジック |
---|---|
デフォルト:ページごとにテキストおよび画像を抽出 | |
OCR: テキストを抽出してMDに変換 | |
.docx | MD形式に変換し、ヘッダーとフッターを削除 |
.doc | docxファイルに変換して処理 |
.xlsx/.xls | 各シート、各セルの内容を取得して結合 |
.pptx/.ppt | PDFに変換して処理 |
.txt | テキストを直接読み込み |
.md | テキストを直接読み込み |
.htm/.html | 現在対応なし |
分割戦略
固定長分割
最も直接的な戦略は、ドキュメントの長さに基づいて分割することです。このシンプルで効果的な方法は、各データブロックが設定されたサイズ制限を超えないようにすることができます。 長さに基づく分割の主な利点は以下の通りです:
- 実施が簡単
- ブロックサイズが一貫している
- 異なるモデルのニーズに適応しやすい
再帰的分割
自然言語テキストは通常、段落、文、単語などの階層的な単位で構成されています。この構造を利用して、意味の一貫性を保ちながら、異なるレベルのテキスト粒度に適応する分割戦略を策定することができます。 この方法では、まず大きな単位(例えば段落)を保持します。ある単位がブロックサイズの制限を超える場合、次のレベル(例えば文)に分割が進みます。それでもさらに分割が必要な場合は、単語レベルに進みます。
意味的分割
前述の方法とは異なり、意味に基づく分割はテキストの内容に焦点を当てます。他の方法が文書やテキストの構造を利用して間接的に意味を表すのに対し、この方法はテキストの意味内容を直接分析します。この方法を実現するには多くの手段がありますが、核心となる考え方は、テキストの意味が顕著に変化する箇所で分割を行うことです。例えば、スライディングウィンドウ技術を使用してテキストの埋め込みを生成し、これらの埋め込みを比較して意味的な大きな差異を発見することができます: まず、最初の数文の埋め込みを生成します。 次に、スライディングウィンドウを次の文のグループに移動し、新しい埋め込みを生成します。 これらの埋め込みを比較し、顕著な差異を発見し、意味的な「断点」が存在する可能性を示します。 この技術は、意味的に一貫したテキストブロックを生成することができ、検索や要約などの下流タスクのパフォーマンスを向上させる可能性があります。