02. Pemisahan Teks Karakter Secara Rekursif (RecursiveCharacterTextSplitter)
RecursiveCharacterTextSplitter
Pemotong teks (text splitter) ini direkomendasikan untuk teks umum. Pemotong ini bekerja dengan menerima daftar karakter sebagai parameter. Pemotong akan mencoba membagi teks berdasarkan urutan dari daftar karakter yang diberikan hingga chunk cukup kecil.
Daftar karakter default adalah ["\n\n", "\n", " ", ""].
Ini membagi secara rekursif dalam urutan paragraf -> kalimat -> kata
Pendekatan ini membantu menjaga agar potongan teks tetap bersama sebanyak mungkin karena paragraf (diikuti oleh kalimat dan kemudian kata) dianggap sebagai unit yang paling terkait secara semantik.
Cara teks dibagi: Teks dibagi menurut daftar karakter ["\n\n", "\n", " ", ""].
Cara ukuran chunk diukur: Ukuran diukur berdasarkan jumlah karakter.
pip install -qU langchain-text-splitters
Buka file appendix-keywords.txt dan baca isinya.
Simpan isi yang dibaca ke dalam variabel file.
# Buka file appendix-keywords.txt dan buat objek file yang disebut f.withopen("./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 data
from langchain_text_splitters import RecursiveCharacterTextSplitter
Ini adalah contoh penggunaan RecursiveCharacterTextSplitter untuk membagi teks menjadi chunk yang lebih kecil.
Atur chunk_size menjadi 250 untuk membatasi ukuran setiap chunk.
Atur chunk_overlap menjadi 50 untuk memungkinkan tumpang tindih 50 karakter antara chunk yang berdekatan.
Gunakan fungsi len sebagai length_function untuk menghitung panjang teks.
Atur is_separator_regex ke False agar tidak menggunakan ekspresi reguler sebagai pemisah.
text_splitter =RecursiveCharacterTextSplitter(# Atur ukuran chunk sangat kecil. Ini adalah pengaturan untuk tujuan demonstrasi. chunk_size=450,# Atur jumlah karakter yang tumpang tindih antara chunk. chunk_overlap=50,# Tentukan fungsi untuk menghitung panjang string. length_function=len,# Atur apakah akan menggunakan ekspresi reguler sebagai pemisah. is_separator_regex=False,)
Gunakan text_splitter untuk membagi teks file menjadi unit dokumen.
Dokumen yang telah dibagi disimpan dalam daftar texts.
Cetak dokumen pertama dan kedua dari dokumen yang telah dibagi menggunakan print(texts[0]) dan print(texts[1])
# Gunakan text_splitter untuk membagi teks file menjadi dokumen.texts = text_splitter.create_documents([file])print(texts[0])# Cetak dokumen pertama dari dokumen yang telah dibagi.print("==="*20)print(texts[1])# Cetak dokumen kedua 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'
============================================================
page_content='Embedding
Definisi: Embedding adalah proses mengubah data teks seperti kata atau kalimat menjadi vektor kontinu berdimensi rendah, memungkinkan komputer untuk memahami dan memproses teks.
Contoh: Kata "apel" dapat direpresentasikan sebagai vektor seperti [0.65, -0.23, 0.17].
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Vektorisasi, Pembelajaran Mendalam
Gunakan fungsi text_splitter.split_text() untuk membagi teks file.
# Bagi teks dan kembalikan 2 elemen pertama dari teks yang telah dibagi.text_splitter.split_text(file)[:2]
output:
['Pencarian Semantik\n\nDefinisi: Pencarian semantik adalah metode pencarian yang melampaui pencocokan kata kunci sederhana dengan memahami makna dari pertanyaan pengguna untuk mengembalikan hasil yang relevan.\nContoh: Jika seorang pengguna mencari "planet tata surya," maka akan mengembalikan informasi tentang planet yang terkait seperti "Jupiter" dan "Mars."\nKata Kunci Terkait: Pemrosesan Bahasa Alami, Algoritma Pencarian, Penambangan Data', 'Embedding\n\nDefinisi: Embedding adalah proses mengubah data teks seperti kata atau kalimat menjadi vektor kontinu berdimensi rendah, memungkinkan komputer untuk memahami dan memproses teks.\nContoh: Kata "apel" dapat direpresentasikan sebagai vektor seperti [0.65, -0.23, 0.17].\nKata Kunci Terkait: Pemrosesan Bahasa Alami, Vektorisasi, Pembelajaran Mendalam\n\nToken']