04. Semantic Chunker

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

Terminal
%pip install -qU langchain_experimental langchain_openai

Muat teks sampel dan cetak isinya.

Python
# 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.

Python
# 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.

Python
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 menggunakan text_splitter.
Python
chunks = text_splitter.split_text(file)

Periksa chunk yang telah dibagi.

Python
# 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()

Python
# 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.

Python
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.

Python
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.

Python
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.

Python
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.

Python
# Membagi teks menggunakan text_splitter.
docs = text_splitter.create_documents([file])
Python
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.

Python
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

Python
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,
)
Python
# 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

Python
print(len(docs))  # Mencetak panjang dari docs.
16