01. Pemisahan Teks Karakter (CharacterTextSplitter)
CharacterTextSplitter
Metode ini adalah pendekatan yang paling sederhana.
Pada dasarnya, teks dibagi berdasarkan "\n\n" pada tingkat karakter, dan ukuran chunk diukur berdasarkan jumlah karakter.
Metode Pemisahan Teks: Berdasarkan karakter tunggal
Pengukuran Ukuran Chunk: Berdasarkan jumlah karakter
pip install -qU langchain-text-splittersBuka file
./data/appendix-keywords.txtdan baca isinya.Simpan isi yang dibaca ke dalam variabel
file.
# Buka file data/appendix-keywords.txt dan buat objek file yang disebut f.
with open("./data/appendix-keywords.txt") as f:
file = f.read() # Baca isi file dan simpan dalam variabel file.Cetak sebagian dari isi yang dibaca dari file.
# Cetak sebagian dari isi yang dibaca dari file.
print(file[:500])Output :
Pencarian Semantik
Definisi: Pencarian semantik adalah metode pencarian yang melampaui pencocokan kata kunci sederhana dengan memahami makna dari pertanyaan pengguna untuk mengembalikan hasil yang relevan.
Contoh: Jika seorang pengguna mencari "planet tata surya," maka akan mengembalikan informasi tentang planet yang terkait seperti "Jupiter" dan "Mars."
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Algoritma Pencarian, Penambangan Data
Embedding
Definisi: Embedding adalah proses mengubah dataBerikut adalah kode yang membagi teks menjadi beberapa chunk menggunakan CharacterTextSplitter.
Parameter
separatormenetapkan kriteria untuk pembagian. Nilai defaultnya adalah "\n\n".Parameter
chunk_sizediatur ke 250, membatasi ukuran maksimum setiap chunk menjadi 250 karakter.Parameter
chunk_overlapdiatur ke 50, memungkinkan tumpang tindih 50 karakter antara chunk yang berdekatan.Parameter
length_functiondiatur ke len, menentukan fungsi yang digunakan untuk menghitung panjang teks.Parameter
is_separator_regexdiatur ke False, memperlakukan separator sebagai string biasa dan bukan ekspresi reguler.
from langchain_text_splitters import CharacterTextSplitter
text_splitter = CharacterTextSplitter(
# Menentukan pemisah yang akan digunakan saat membagi teks. Nilai default adalah "\n\n".
# separator=" ",
# Menentukan ukuran maksimum dari chunk teks yang telah dibagi.
chunk_size=450,
# Menentukan jumlah karakter yang tumpang tindih antara chunk teks yang telah dibagi.
chunk_overlap=50,
# Menentukan fungsi untuk menghitung panjang teks.
length_function=len,
# Menentukan apakah pemisah adalah ekspresi reguler.
is_separator_regex=False,
)Gunakan
text_splitteruntuk membagi teksfilemenjadi unit dokumen.Cetak dokumen pertama
(texts[0])dari daftar dokumen yang telah dibagi.
# Gunakan text_splitter untuk membagi teks state_of_the_union menjadi dokumen.
texts = text_splitter.create_documents([file])
print(texts[0]) # Cetak dokumen pertama dari dokumen yang telah dibagi.output:
page_content='Pencarian Semantik
Definisi: Pencarian semantik adalah metode pencarian yang melampaui pencocokan kata kunci sederhana dengan memahami makna dari pertanyaan pengguna untuk mengembalikan hasil yang relevan.
Contoh: Jika seorang pengguna mencari "planet tata surya," maka akan mengembalikan informasi tentang planet yang terkait seperti "Jupiter" dan "Mars."
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Algoritma Pencarian, Penambangan Data'Berikut adalah contoh pengiriman metadata bersama dengan dokumen.
Perhatikan bahwa metadata dibagi bersama dengan dokumen.
Metode
create_documentsmenerima daftar data teks dan metadata sebagai argumen.
metadatas = [
{"document": 1},
{"document": 2},
] # Definisikan daftar metadata untuk dokumen.
documents = text_splitter.create_documents(
[
file,
file,
], # Berikan data teks yang akan dibagi sebagai daftar.
metadatas=metadatas, # Berikan metadata yang sesuai dengan setiap dokumen.
)
print(documents[0]) # Cetak dokumen pertama dari dokumen yang telah dibagi.output:
page_content='Pencarian Semantik
Definisi: Pencarian semantik adalah metode pencarian yang melampaui pencocokan kata kunci sederhana dengan memahami makna dari pertanyaan pengguna untuk mengembalikan hasil yang relevan.
Contoh: Jika seorang pengguna mencari "planet tata surya," maka akan mengembalikan informasi tentang planet yang terkait seperti "Jupiter" dan "Mars."
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Algoritma Pencarian, Penambangan Data' metadata={'document': 1}Gunakan metode split_text() untuk membagi teks.
text_splitter.split_text(file)[0]membagi teksfilemenggunakantext_splitterdan mengembalikan elemen pertama dari potongan teks yang telah dibagi.
# Bagi teks file menggunakan text_splitter dan kembalikan elemen pertama dari teks yang telah dibagi.
text_splitter.split_text(file)[0]output:
Pencarian Semantik
Definisi: Pencarian semantik adalah metode pencarian yang melampaui pencocokan kata kunci sederhana dengan memahami makna dari pertanyaan pengguna untuk mengembalikan hasil yang relevan.
Contoh: Jika seorang pengguna mencari "planet tata surya," maka akan mengembalikan informasi tentang planet yang terkait seperti "Jupiter" dan "Mars."
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Algoritma Pencarian, Penambangan DataLast updated