チャンク化の手法と例
サポートされているすべてのチャンク化パラメータについては、これらの例を確認してください。これらの例によって、各チャンク化手法の長所と短所がわかるため、データをチャンク化するときに戦略を定義するのに役立ちます。
ここでは、様々なチャンク化パラメータを適用したときに、次の5行のサンプル・テキストがどのように分割されるかを確認できます。
次のことに注意してください:
- 行には説明のためのリファレンスとして番号が振られており、ワード数が角括弧で囲まれています(たとえば、
1[15]
)。空白行も示されています。 - チャンクの開始境界と終了境界は、色付きのマーカーで表されます。
BY VOCABULARY
モードで例を実行するには、事前にカスタム語彙を作成する必要があります(たとえば、DOC_VOCAB
)。「カスタム語彙の作成および使用」を参照してください。
例4-1 BY chars MAX 200 OVERLAP 0 SPLIT BY none
この例は、最も単純な形式のチャンク化を示しており、テキスト内のどの位置であっても、テキストを固定された文字数(行末文字を含む)で分割します。
最初のチャンクのテキストは、絶対最大200
文字で分割され、最初の2つのチャンクの間でindexes
という単語が分割されます。同様に、2番目と3番目のチャンクの間で、Oracle
という単語が分割されています。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY chars MAX 200 OVERLAP 0
SPLIT BY none LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
-------------------------------------------------------------------------
1 200 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes are a new classification of specialized ind
201 200 exes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of O
401 146 racle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-2 BY chars MAX 200 OVERLAP 0 SPLIT BY newline
この例では、テキストは最大制限の200
文字以内で、可能な場合は改行で4つのチャンクに分割されます。
3行目では最大値を超えるため、最初のチャンクのテキストは2行目の後で分割されます。3行目は最大値内に完全に収まります。4行目と5行目も最大値を超えるため、2つのチャンクが生成されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY chars MAX 200 OVERLAP 0
SPLIT BY newline LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 138 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
143 196 Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
343 33 Why Use Oracle AI Vector Search?
377 170 The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-3 BY chars MAX 200 OVERLAP 0 SPLIT BY recursively
この例では、テキストは、最大200
文字内で、空白行、改行、および可能な場合は空白を使用して、再帰的に5つのチャンクに分割されます。
最初のチャンクは、最初の空白行の後に分割されます。これは、2番目の空白行の後のテキストを含めると最大値を超えるためです。2番目の節は単独で最大値を超えるため、改行で2つのチャンクに分割されます。同様に、3番目の節も改行で2つのチャンクに分割されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY chars MAX 200 OVERLAP 0
SPLIT BY recursively LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 104 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
109 30 About Oracle AI Vector Search
143 196 Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
343 33 Why Use Oracle AI Vector Search?
377 170 The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-4 BY words MAX 40 OVERLAP 0 SPLIT BY none
この例では、テキストは絶対最大40
ワードで、3行目のwordloads
の後と5行目のwith
の後で、3つのチャンクに分割されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 0
SPLIT BY none LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 266 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial
Intelligence (AI) workloads
267 223 that allow you to query data based on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with
490 57 relational search on business data in one single system.
例4-5 BY words MAX 40 OVERLAP 0 SPLIT BY newline
この例では、テキストは最大40
ワード以内で、可能な場合は改行でチャンクに分割されます。
最初のチャンク(21語)は2行目の後で分割されます。3行目は単語の最大数を超えるためです(21+33語)。3行目と4行目は最大値内に収まります。5行目は29ワードなので、最後のチャンクに収まります。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 0
SPLIT BY newline LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 138 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
143 233 Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
377 170 The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-6 BY words MAX 40 OVERLAP 0 SPLIT BY recursively
この例では、チャンクは、空白行、改行および空白を使用して、単語によって再帰的に分割されます。
2番目の空白行の後のテキストが最大単語数を超えているため、最初のチャンクは最初の空白行で終わります。2番目のチャンク(38ワード)は次の空白行で終わります。最後のチャンク(35ワード)は残りの入力で構成されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 0
SPLIT BY recursively LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 104 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
109 230 About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial
Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
343 204 Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be
combined with relational search on business data in one single system.
例4-7 BY vocabulary MAX 40 OVERLAP 0 SPLIT BY none
この例では、テキストは絶対最大語彙トークン40個で4つのチャンクに分割されます。これは例4-4で3つのチャンクが生成されたことと対照的です。これは語彙トークンには単語の断片が含まれているためであり、通常、チャンク・テキストは単純な単語の分割よりも小さくなります。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY vocabulary doc_vocab MAX 40 OVERLAP 0
SPLIT BY none LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 157 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes
158 156 are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based on semantics
314 150 , rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured
464 83 data can be combined with relational search on business data in one single system.
例4-8 BY vocabulary MAX 40 OVERLAP 0 SPLIT BY newline
この例では、テキストは、絶対最大語彙トークン40個を使用して、改行で5つのチャンクに分割されます。これは、例4-5と対照的です。
語彙トークンには単語の断片が含まれているため、通常、チャンク・テキストは単純な単語の分割よりも小さくなります。この例では、例4-5の3つではなく5つのチャンクが生成され、中間の節が2に分割され、最後の単語は4番目のチャンクに収まりません。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY vocabulary doc_vocab MAX 40 OVERLAP 0
SPLIT BY newline LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 138 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
143 148 Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query
291 85 data based on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
377 162 The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single
539 8 system.
例4-9 BY vocabulary MAX 40 OVERLAP 0 SPLIT BY recursively
この例では、テキストは、空白行、改行および空白を使用して、絶対最大語彙トークン40個で再帰的に7つのチャンクに分割されます。これは、例4-6で3つのチャンクが生成されたことと対照的です。
語彙トークンには単語の断片が含まれているため、通常、チャンク・テキストは単純な単語の分割よりも小さくなります。この例では、中間の節が3つに分割され、最後の節が3つに分割されて、7つのチャンクが生成されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY vocabulary doc_vocab MAX 40 OVERLAP 0
SPLIT BY recursively LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 104 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
109 30 About Oracle AI Vector Search
143 148 Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads that allow you to query
291 48 data based on semantics, rather than keywords.
343 33 Why Use Oracle AI Vector Search?
377 162 The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be combined with relational search on business data in one single
539 8 system.
例4-10 BY words MAX 40 OVERLAP 5 SPLIT BY none
この例は例4-4と似ていますが、ここではOVERLAP 5
が使用されています。
最初のチャンクは、最大40ワード(workloads
の後)で終わります。2番目のチャンクは、最初のチャンクのカッコを含む最後の5つの単語と重なり、unstructured
の後で終わります。重なり合う単語には下線が引かれています。3番目のチャンクは、最後の5つの単語と重なり、下線が引かれています。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 5
SPLIT BY none LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
-------------------------------------------------------------------------------------------------
1 266 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial Intelligence (AI) workloads
239 225 Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured
427 120 that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-11 BY words MAX 40 OVERLAP 5 SPLIT BY newline
この例は例4-5と似ていますが、ここではOVERLAP 5
が使用されています。チャンクが重なる部分は、同じ分割条件に従っている必要があります。この場合は、改行で開始する必要があります。
3行目は最大40語を超えるため、最初のチャンクは2行目で終わります。2番目のチャンクは、1番目のチャンクの5ワードの2行目(下線が引かれています)で始まり、3行目で終わります。3番目のチャンクは、前の行が最大値5を超えているため重なりません。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 5
SPLIT BY newline LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
---------------------------------------------------------------------------------------------------
1 138 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
109 230 About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial
Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
343 204 Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be
combined with relational search on business data in one single system.
例4-12 BY words MAX 40 OVERLAP 5 SPLIT BY recursively
この例は例4-6と似ていますが、ここではOVERLAP 5
が使用されています。チャンクが重なる部分は、同じ分割条件に従っている必要があります。この場合は、空白行、改行または空白のいずれかで始まる必要があります。
2番目の空白行の後のテキストが最大単語数を超えているため、最初のチャンクは最初の空白行で終わります。2番目のチャンクは、5ワード(空白で始まり、下線が引かれています)が重なり、2番目の行を含みますが、33ワードの3行目は除外されます。3番目のチャンクは5ワードが重複し、2番目の空白行で終わります。4番目のチャンクは残りの入力で構成されます。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 5
SPLIT BY recursively LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 104 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
71 68 retrieval and similarity search.
About Oracle AI Vector Search
109 230 About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial
Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
316 231 rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be
combined with relational search on business data in one single system.
例4-13 BY chars MAX 200 OVERLAP 0 SPLIT BY none NORMALIZE none
この例は最初の例(例4-1)と同じであり、正規化を使用した次の例(例4-14)とは対照的です。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY chars MAX 200 OVERLAP 0
SPLIT BY none LANGUAGE american NORMALIZE none) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 200 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes are a new classification of specialized ind
201 200 exes that are designed for Artificial Intelligence (AI) workloads that allow you to query data based
on semantics, rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of O
401 146 racle AI Vector Search is that semantic search on unstructured data can be combined with relational
search on business data in one single system.
例4-14 BY chars MAX 200 OVERLAP 0 SPLIT BY none NORMALIZE whitespace
この例では、whitespace
の正規化が有効にされており、冗長な空白が縮小され、チャンクの最大値内により多くの内容が生成されます。
最初のチャンクは、インデントされた2つの行にそれぞれ4つの空白があるため、8文字増えています(下線_
が引かれています)。2番目のチャンクは、インデントされた1つの行に合計4個の空白があるため、4文字増えています。3番目のチャンクは残りの入力で構成されます。
この例は、チャンクの長さ(通常はバイト単位)がチャンク・テキストのサイズと異なる可能性があることを示しています。CHUNK_OFFSET
およびCHUNK_LENGTH
は、チャンクの元のソースの場所を表します。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY chars MAX 200 OVERLAP 0
SPLIT BY none LANGUAGE american NORMALIZE whitespace) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 208 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes tha
209 205 t are designed for Artificial Intelligence (AI) workloads that allow you to query data based on sema
ntics, rather than keywords.
Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vect
414 133 or Search is that semantic search on unstructured data can be combined with relational search on business data in one single system.
例4-15 BY words MAX 40 OVERLAP 0 SPLIT BY sentence LANGUAGE American
この例では、言語固有のデータとヒューリスティック(文の句読点、コンテキスト・ルール、一般的な略語など)を使用した文末分割を使用して、文境界であるかどうかを判断します。3つのチャンクが生成され、各チャンクはピリオドで終わります。
この手法を使用すると、多数の分割文を含むチャンクの場合にテキストをそのまま維持できます。そうしないと、テキストはセマンティック・コンテキストを失い、特定の情報をターゲットとする問合せに役立たない可能性があります。
SELECT C.*
FROM documentation_tab D, VECTOR_CHUNKS(D.text BY words MAX 40 OVERLAP 0
SPLIT BY sentence LANGUAGE american NORMALIZE NONE) C;
CHUNK_OFFSET CHUNK_LENGTH CHUNK_TEXT
--------------------------------------------------------------------------------------------------
1 102 Oracle AI Vector Search stores and indexes vector embeddings for fast retrieval and similarity search.
109 228 About Oracle AI Vector Search
Vector Indexes are a new classification of specialized indexes that are designed for Artificial
Intelligence (AI) workloads that allow you to query data based on semantics, rather than keywords.
343 203 Why Use Oracle AI Vector Search?
The biggest benefit of Oracle AI Vector Search is that semantic search on unstructured data can be
combined with relational search on business data in one single system.
例4-16 BY words MAX 40 OVERLAP 0 SPLIT BY sentence LANGUAGE Simplified Chinese
前述の例の続きのこの例では、入力として簡体字中国語テキストを使用して、言語固有の文チャンクを指定します。
出力には4つのチャンクが含まれ、各チャンクはピリオドで終了します。
documentation_tab
は、次のChineseDoc.txt
ドキュメントとともに挿入されたCLOB
です。使用 My Oracle Support 之前,您的用户概要信息中必须至少具有一个客户服务号。客户服务号是
标识您所在组织的唯一参考号。使用 My Oracle Support 门户向您的概要信息中添加一个客户服务
号。有关详细信息,请参阅 My Oracle Support 帮助的“如何将客户服务号添加到概要信息?
次のようにチャンク操作を実行します。
-- create a relational table
DROP TABLE IF EXISTS documentation_tab;
CREATE TABLE documentation_tab (
id NUMBER,
text CLOB);
-- create a local directory and store the document into the table
CREATE OR REPLACE DIRECTORY VEC_DUMP AS '/my_local_dir/';
CREATE OR REPLACE PROCEDURE my_clob_from_file(
p_dir in varchar2,
p_file in varchar2,
p_id in number
) AS
dest_loc CLOB;
v_bfile bfile := null;
v_lang_context number := dbms_lob.default_lang_ctx;
v_dest_offset integer := 1;
v_src_offset integer := 1;
v_warning number;
BEGIN
insert into documentation_tab values(p_id,empty_clob()) returning text
into dest_loc;
v_bfile := BFileName(p_dir, p_file);
dbms_lob.open(v_bfile, dbms_lob.lob_readonly);
dbms_lob.loadClobFromFile(
dest_loc,
v_bfile,
dbms_lob.lobmaxsize,
v_dest_offset,
v_src_offset,
873,
v_lang_context,
v_warning);
dbms_lob.close(v_bfile);
END my_clob_from_file;
/
show errors;
-- transform clob into chunks
exec my_clob_from_file('VEC_DUMP', 'ChineseDoc.txt', 1);
SELECT rownum as id, C.chunk_offset pos, C.chunk_length as siz,
REPLACE(SUBSTR(C.chunk_text,1,15),CHR(10),'_') as beg,
'...' as rng,
REPLACE(SUBSTR(C.chunk_text,-15),CHR(10),'_') as end
FROM documentation_tab D, VECTOR_CHUNKS(to_char(D.text) BY words
MAX 40
OVERLAP 0
SPLIT BY sentence
LANGUAGE "simplified chinese"
NORMALIZE none) C;
ID POS SIZ BEG RNG END
---- ---- ---- --------------------------- --- ------------------------
1 1 103 使用 My Oracle Su ... 中必须至少具有一个客户服务号。
2 104 60 客户服务号是标识您所在组织的唯 ... 是标识您所在组织的唯一参考号。
3 164 85 使用 My Oracle Su ... 概要信息中添加一个客户服务号。
4 249 109 有关详细信息,请参阅 My O ... 何将客户服务号添加到概要信息?
関連トピック
親トピック: チャンク化パラメータの構成