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-splitters
Buka file ./data/appendix-keywords.txt dan baca isinya.
Simpan isi yang dibaca ke dalam variabel file.
# Buka file data/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
Berikut adalah kode yang membagi teks menjadi beberapa chunk menggunakan CharacterTextSplitter.
Parameter separator menetapkan kriteria untuk pembagian. Nilai defaultnya adalah "\n\n".
Parameter chunk_size diatur ke 250, membatasi ukuran maksimum setiap chunk menjadi 250 karakter.
Parameter chunk_overlap diatur ke 50, memungkinkan tumpang tindih 50 karakter antara chunk yang berdekatan.
Parameter length_function diatur ke len, menentukan fungsi yang digunakan untuk menghitung panjang teks.
Parameter is_separator_regex diatur ke False, memperlakukan separator sebagai string biasa dan bukan ekspresi reguler.
from langchain_text_splitters import CharacterTextSplittertext_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_splitter untuk membagi teks file menjadi 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_documents menerima 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 teks file menggunakan text_splitter dan 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 Data