- Categories:
文字列とバイナリ関数 (AI Functions)
SPLIT_TEXT_MARKDOWN_HEADER (SNOWFLAKE.CORTEX)¶
SPLIT_TEXT_MARKDOWN_HEADER 関数は、ヘッダーレベルに基づいて、Markdown形式のドキュメントを構造化テキストチャンクに分割します。この関数はオブジェクトの配列を返します。各オブジェクトにはテキストチャンクと、そのチャンクが属する、関連するヘッダーが含まれます。
この関数は、埋め込み、検索拡張生成(RAG)、または検索インデックス登録のためにコンテンツをチャンク化する際、ドキュメント構造を維持するために役立ちます。
まず、指定されたMarkdownヘッダーを使用して入力テキストをセグメント化します。次にデフォルトのプレーンテキスト区切り文字(例: ["nn", "n","",""])を使用して各セグメントを再帰的に分割し、目的のサイズのチャンクを生成します。
構文¶
引数¶
必須:
'text_to_split'分割するMarkdown形式の文字列。
'headers_to_split_on'キー値マップ。キーはMarkdownヘッダー構文(例:
#、##)、値はチャンクにラベルを付けるためのメタデータフィールド名(例:header_1、header_2)。例:この構成は`#`ヘッダーと`##`ヘッダーでドキュメントを分割します。出力の`header_1`フィールドと`header_2`フィールドには、対応するヘッダーテキスト値が含まれます。
chunk_size各チャンクの最大文字数を指定する整数。値はゼロよりも大きくする必要があります。
オプション:
overlap連続するチャンク間で重複する文字数を指定する整数。指定されていない場合のデフォルトは0です。
重複は、チャンク全体でコンテキストを維持するために役立ちます。埋め込みタスクや取得タスクのパフォーマンスを向上させることができます。
戻り値¶
オブジェクトの配列を返します。各オブジェクトの構造は次のとおりです。
chunk:抽出されたテキストを含む文字列。headers:チャンクがネストされているMarkdownヘッダー値を含むディクショナリ。キーは、:samp:`headers_to_split_on`マップで提供されたものと一致します。
例¶
簡単な使用法¶
次の例では、Markdown文字列を`#`ヘッダーと`##`ヘッダーの両方で分割し、最大12文字のチャンクを生成して、チャンク間に5文字の重複を適用します。
Markdown形式と結果の行へのフラット化の例¶
次の例では、各行に短いMarkdownドキュメントを含むテーブル:code:`markdown_docs`を作成し、SPLIT_TEXT_MARKDOWN_HEADER関数を呼び出して各ドキュメントをMarkdownヘッダー#と##で分割しています。この関数は、テキストを15文字ずつのチャンクに分割します(チャンク間で5文字が重複します)。