04. SemanticChunker

SemanticChunker

Membagi teks berdasarkan kesamaan semantik

Metode ini melibatkan pemecahan teks menjadi kalimat, kemudian mengelompokkan setiap tiga kalimat, dan menggabungkan kalimat-kalimat yang mirip di ruang embedding.

Menginstal paket dependensi

pip install -qU langchain_experimental langchain_openai

Muat teks sampel dan cetak isinya.

# Membuka file data/appendix-keywords.txt dan membuat objek file bernama 'f'.
with open("./data/appendix-keywords.txt") as f:
    file = f.read()  # Membaca isi file dan menyimpannya ke dalam variabel 'file'.

# Mencetak sebagian isi yang telah dibaca dari file.
print(file[:350])
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

Membuat SemanticChunker

SemanticChunker adalah salah satu fitur eksperimental di LangChain, yang berfungsi untuk membagi teks menjadi chunk yang secara semantik serupa.

Hal ini memungkinkan pemrosesan dan analisis data teks yang lebih efektif.

Membagi teks menjadi chunk yang secara semantik terkait menggunakan SemanticChunker.

Text Splitting

  • Bagilah teks file menjadi unit dokumen menggunakan text_splitter.

Periksa chunk yang telah dibagi.

Anda dapat mengubah chunk menjadi dokumen menggunakan fungsi create_documents()

Breakpoints

Chunker ini bekerja dengan menentukan titik di mana kalimat harus "dipisahkan." Ini dilakukan dengan memeriksa perbedaan embedding antara dua kalimat.

Jika perbedaan tersebut melebihi ambang batas tertentu, kalimat-kalimat tersebut akan dipisahkan.

Percentile

Metode pemisahan dasar didasarkan pada percentile.

Dalam metode ini, semua perbedaan antara kalimat dihitung, dan kemudian pemisahan dilakukan berdasarkan percentile yang ditentukan.

Periksa hasil pemisahan.

Cetak panjang dari docs.

Standard Deviation

Dalam metode ini, pemisahan terjadi ketika ada perbedaan yang lebih besar dari breakpoint_threshold_amount standar deviasi yang ditentukan.

Atur parameter breakpoint_threshold_type ke "standard_deviation" untuk menentukan bahwa pemisahan chunk didasarkan pada standar deviasi.

Periksa hasil pemisahan.

Cetak panjang dari docs.

Interquartile

Dalam metode ini, chunk dibagi menggunakan rentang interkuartil (interquartile range atau IQR).

Atur parameter breakpoint_threshold_type ke "interquartile" untuk menentukan ambang pemisahan chunk berdasarkan rentang interkuartil

Cetak panjang dari docs

Last updated