04. SemanticChunker
Pada bagian ini, anda akan memerlukan file berikut: appendix-keywords.txt (opens in a new tab)
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.
# File konfigurasi untuk mengelola kunci API sebagai variabel lingkungan
from dotenv import load_dotenv
# Memuat informasi kunci API
load_dotenv()
Membagi teks menjadi chunk yang secara semantik terkait menggunakan SemanticChunker.
from langchain_experimental.text_splitter import SemanticChunker
from langchain_openai.embeddings import OpenAIEmbeddings
# Menginisialisasi pemisah chunk semantik menggunakan OpenAI embeddings.
text_splitter = SemanticChunker(OpenAIEmbeddings())
Text Splitting
- Bagilah teks
file
menjadi unit dokumen menggunakantext_splitter
.
chunks = text_splitter.split_text(file)
Periksa chunk yang telah dibagi.
# Print the first chunk from the split chunks.
print(chunks[0])
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 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
Token
Definisi: Token mengacu pada tindakan membagi teks menjadi unit yang lebih kecil, yang biasanya berupa kata, kalimat, atau frasa. Contoh: Kalimat "Saya pergi ke sekolah" dibagi menjadi "Saya", "pergi ke", dan "sekolah."
Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
Tokenizer
Definisi: Tokenizer adalah alat yang digunakan untuk membagi data teks menjadi token. Ini digunakan dalam pemrosesan bahasa alami untuk melakukan pra-pemrosesan data. Contoh: Kalimat "Saya suka pemrograman." dibagi menjadi ["Saya", "suka", "pemrograman", "."]. Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
VectorStore
Definisi: Vector store adalah sistem yang menyimpan data yang telah diubah menjadi format vektor. Ini digunakan untuk tugas-tugas seperti pencarian, klasifikasi, dan analisis data lainnya.
Anda dapat mengubah chunk menjadi dokumen menggunakan fungsi create_documents()
# Membagi teks menggunakan text_splitter.
docs = text_splitter.create_documents([file])
print(docs[0].page_content) # Mencetak isi dari dokumen pertama yang telah dibagi.
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 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
Token
Definisi: Token mengacu pada tindakan membagi teks menjadi unit yang lebih kecil, yang biasanya berupa kata, kalimat, atau frasa. Contoh: Kalimat "Saya pergi ke sekolah" dibagi menjadi "Saya", "pergi ke", dan "sekolah."
Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
Tokenizer
Definisi: Tokenizer adalah alat yang digunakan untuk membagi data teks menjadi token. Ini digunakan dalam pemrosesan bahasa alami untuk melakukan pra-pemrosesan data. Contoh: Kalimat "Saya suka pemrograman." dibagi menjadi ["Saya", "suka", "pemrograman", "."]. Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
VectorStore
Definisi: Vector store adalah sistem yang menyimpan data yang telah diubah menjadi format vektor. Ini digunakan untuk tugas-tugas seperti pencarian, klasifikasi, dan analisis data lainnya.
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.
text_splitter = SemanticChunker(
# Menginisialisasi semantic chunker menggunakan model embedding dari OpenAI.
OpenAIEmbeddings(),
# Mengatur jenis ambang batas pemisahan ke persentil.
breakpoint_threshold_type="percentile",
breakpoint_threshold_amount=70,
)
Periksa hasil pemisahan.
docs = text_splitter.create_documents([file])
for i, doc in enumerate(docs[:5]):
print(f"[Chunk {i}]", end="\n\n")
print(doc.page_content) # Mencetak isi dari dokumen pertama yang telah dibagi.
print("===" * 20)
[Chunk 0]
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 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].
============================================================
[Chunk 1]
Kata Kunci Terkait: Pemrosesan Bahasa Alami, Vektorisasi, Pembelajaran Mendalam
Token
Definisi: Token mengacu pada tindakan membagi teks menjadi unit yang lebih kecil, yang biasanya berupa kata, kalimat, atau frasa. Contoh: Kalimat "Saya pergi ke sekolah" dibagi menjadi "Saya", "pergi ke", dan "sekolah."
Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
Tokenizer
Definisi: Tokenizer adalah alat yang digunakan untuk membagi data teks menjadi token. Ini digunakan dalam pemrosesan bahasa alami untuk melakukan pra-pemrosesan data.
============================================================
[Chunk 2]
Contoh: Kalimat "Saya suka pemrograman." dibagi menjadi ["Saya", "suka", "pemrograman", "."]. Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
VectorStore
Definisi: Vector store adalah sistem yang menyimpan data yang telah diubah menjadi format vektor. Ini digunakan untuk tugas-tugas seperti pencarian, klasifikasi, dan analisis data lainnya.
============================================================
[Chunk 3]
Contoh: Menyimpan vektor embedding kata dalam basis data memungkinkan akses cepat. Kata Kunci Terkait: Embedding, Basis Data, Vektorisasi
SQL
Definisi: SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola data dalam basis data. SQL dapat melakukan berbagai tugas seperti query, modifikasi, penyisipan, dan penghapusan data.
============================================================
[Chunk 4]
Contoh: SELECT * FROM users WHERE age > 18; mengambil informasi pengguna yang berusia di atas 18 tahun. Kata Kunci Terkait: Basis Data, Query, Manajemen Data
CSV
Definisi: CSV (Comma-Separated Values) adalah format file yang digunakan untuk menyimpan data, di mana setiap nilai dipisahkan oleh koma. Ini digunakan untuk menyimpan dan menukar data dalam bentuk tabel secara sederhana.
============================================================
Cetak panjang dari docs.
print(len(docs)) # Mencetak 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.
text_splitter = SemanticChunker(
# Menginisialisasi semantic chunker menggunakan model embedding dari OpenAI.
OpenAIEmbeddings(),
# Menggunakan standar deviasi sebagai ambang batas pemisahan.
breakpoint_threshold_type="standard_deviation",
breakpoint_threshold_amount=1.25,
)
Periksa hasil pemisahan.
# Membagi teks menggunakan text_splitter.
docs = text_splitter.create_documents([file])
docs = text_splitter.create_documents([file])
for i, doc in enumerate(docs[:5]):
print(f"[Chunk {i}]", end="\n\n")
print(doc.page_content) # Mencetak isi dari dokumen pertama yang telah dibagi.
print("===" * 20)
[Chunk 0]
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 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
Token
Definisi: Token mengacu pada tindakan membagi teks menjadi unit yang lebih kecil, yang biasanya berupa kata, kalimat, atau frasa. Contoh: Kalimat "Saya pergi ke sekolah" dibagi menjadi "Saya", "pergi ke", dan "sekolah."
Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
Tokenizer
Definisi: Tokenizer adalah alat yang digunakan untuk membagi data teks menjadi token. Ini digunakan dalam pemrosesan bahasa alami untuk melakukan pra-pemrosesan data.
============================================================
[Chunk 1]
Contoh: Kalimat "Saya suka pemrograman." dibagi menjadi ["Saya", "suka", "pemrograman", "."]. Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
VectorStore
Definisi: Vector store adalah sistem yang menyimpan data yang telah diubah menjadi format vektor. Ini digunakan untuk tugas-tugas seperti pencarian, klasifikasi, dan analisis data lainnya.
============================================================
[Chunk 2]
Contoh: Menyimpan vektor embedding kata dalam basis data memungkinkan akses cepat. Kata Kunci Terkait: Embedding, Basis Data, Vektorisasi
SQL
Definisi: SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola data dalam basis data. SQL dapat melakukan berbagai tugas seperti query, modifikasi, penyisipan, dan penghapusan data.
============================================================
[Chunk 3]
Contoh: SELECT * FROM users WHERE age > 18; mengambil informasi pengguna yang berusia di atas 18 tahun. Kata Kunci Terkait: Basis Data, Query, Manajemen Data
CSV
Definisi: CSV (Comma-Separated Values) adalah format file yang digunakan untuk menyimpan data, di mana setiap nilai dipisahkan oleh koma. Ini digunakan untuk menyimpan dan menukar data dalam bentuk tabel secara sederhana.
============================================================
[Chunk 4]
Contoh: File CSV dengan header seperti Nama, Usia, dan Pekerjaan bisa berisi data seperti John Doe, 30, Pengembang. Kata Kunci Terkait: Format Data, Pemrosesan File, Pertukaran Data
JSON
Definisi: JSON (JavaScript Object Notation) adalah format pertukaran data ringan yang menggunakan teks yang mudah dibaca oleh manusia dan mesin untuk mewakili objek data. Contoh: {"nama": "John Doe", "usia": 30, "pekerjaan": "Pengembang"} adalah contoh data dalam format JSON. Kata Kunci Terkait: Pertukaran Data, Pengembangan Web, API
Transformer
Definisi: Transformer adalah jenis model pembelajaran mendalam yang digunakan dalam pemrosesan bahasa alami untuk tugas-tugas seperti penerjemahan, ringkasan, dan pembuatan teks. Transformer didasarkan pada mekanisme Attention. Contoh: Google Translate menggunakan model transformer untuk melakukan penerjemahan antara berbagai bahasa. Kata Kunci Terkait: Pembelajaran Mendalam, Pemrosesan Bahasa Alami, Attention
HuggingFace
Definisi: HuggingFace adalah pustaka yang menyediakan berbagai model pralatih dan alat untuk pemrosesan bahasa alami. HuggingFace membantu peneliti dan pengembang melakukan tugas NLP dengan mudah. Contoh: Anda dapat melakukan tugas seperti analisis sentimen dan pembuatan teks menggunakan pustaka Transformers dari HuggingFace. Kata Kunci Terkait: Pemrosesan Bahasa Alami, Pembelajaran Mendalam, Pustaka
Transformasi Digital
Definisi: Transformasi digital adalah proses menggunakan teknologi untuk menginovasi layanan, budaya, dan operasi perusahaan. Ini berfokus pada peningkatan model bisnis dan meningkatkan daya saing melalui teknologi digital.
============================================================
Cetak panjang dari docs.
print(len(docs)) # Mencetak 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
text_splitter = SemanticChunker(
# Menginisialisasi pemisah chunk semantik menggunakan model embedding dari OpenAI.
OpenAIEmbeddings(),
# Mengatur jenis ambang batas pemisahan ke rentang interkuartil.
breakpoint_threshold_type="interquartile",
breakpoint_threshold_amount=0.5,
)
# Membagi teks menggunakan text_splitter.
docs = text_splitter.create_documents([file])
# Cetak hasilnya.
for i, doc in enumerate(docs[:5]):
print(f"[Chunk {i}]", end="\n\n")
print(doc.page_content) # Mencetak isi dari dokumen pertama yang telah dibagi.
print("===" * 20)
[Chunk 0]
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 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
Token
Definisi: Token mengacu pada tindakan membagi teks menjadi unit yang lebih kecil, yang biasanya berupa kata, kalimat, atau frasa. Contoh: Kalimat "Saya pergi ke sekolah" dibagi menjadi "Saya", "pergi ke", dan "sekolah."
Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
Tokenizer
Definisi: Tokenizer adalah alat yang digunakan untuk membagi data teks menjadi token. Ini digunakan dalam pemrosesan bahasa alami untuk melakukan pra-pemrosesan data.
============================================================
[Chunk 1]
Contoh: Kalimat "Saya suka pemrograman." dibagi menjadi ["Saya", "suka", "pemrograman", "."]. Kata Kunci Terkait: Tokenisasi, Pemrosesan Bahasa Alami, Penguraian
VectorStore
Definisi: Vector store adalah sistem yang menyimpan data yang telah diubah menjadi format vektor. Ini digunakan untuk tugas-tugas seperti pencarian, klasifikasi, dan analisis data lainnya.
============================================================
[Chunk 2]
Contoh: Menyimpan vektor embedding kata dalam basis data memungkinkan akses cepat. Kata Kunci Terkait: Embedding, Basis Data, Vektorisasi
SQL
Definisi: SQL (Structured Query Language) adalah bahasa pemrograman yang digunakan untuk mengelola data dalam basis data. SQL dapat melakukan berbagai tugas seperti query, modifikasi, penyisipan, dan penghapusan data.
============================================================
[Chunk 3]
Contoh: SELECT * FROM users WHERE age > 18; mengambil informasi pengguna yang berusia di atas 18 tahun. Kata Kunci Terkait: Basis Data, Query, Manajemen Data
CSV
Definisi: CSV (Comma-Separated Values) adalah format file yang digunakan untuk menyimpan data, di mana setiap nilai dipisahkan oleh koma. Ini digunakan untuk menyimpan dan menukar data dalam bentuk tabel secara sederhana.
============================================================
[Chunk 4]
Contoh: File CSV dengan header seperti Nama, Usia, dan Pekerjaan bisa berisi data seperti John Doe, 30, Pengembang. Kata Kunci Terkait: Format Data, Pemrosesan File, Pertukaran Data
JSON
Definisi: JSON (JavaScript Object Notation) adalah format pertukaran data ringan yang menggunakan teks yang mudah dibaca oleh manusia dan mesin untuk mewakili objek data. Contoh: {"nama": "John Doe", "usia": 30, "pekerjaan": "Pengembang"} adalah contoh data dalam format JSON. Kata Kunci Terkait: Pertukaran Data, Pengembangan Web, API
Transformer
Definisi: Transformer adalah jenis model pembelajaran mendalam yang digunakan dalam pemrosesan bahasa alami untuk tugas-tugas seperti penerjemahan, ringkasan, dan pembuatan teks. Transformer didasarkan pada mekanisme Attention.
============================================================
Cetak panjang dari docs
print(len(docs)) # Mencetak panjang dari docs.
16