03. Token Text Splitter
TokenTextSplitter
Model bahasa memiliki batasan jumlah token. Oleh karena itu, penting untuk memastikan bahwa jumlah token tidak melebihi batasan yang ditentukan.
TokenTextSplitter sangat berguna saat membagi teks menjadi potongan-potongan (chunk) berdasarkan jumlah token.
tiktoken
tiktoken adalah Tokenizer BPE (Byte Pair Encoding) yang cepat yang dibuat oleh OpenAI.
pip install --upgrade --quiet langchain-text-splitters tiktokenBuka file
./data/appendix-keywords.txtdan baca isinya.Simpan isi yang dibaca ke dalam variabel
file
# 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 dari file yang telah dibaca
# Mencetak sebagian isi dari file yang telah dibaca.
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 dataMembagi teks menggunakan CharacterTextSplitter.
Menginisialisasi pembagi teks berbasis Tiktoken encoder menggunakan metode
from_tiktoken_encoder.
Mencetak jumlah chunk yang telah dibagi.
Cetak elemen pertama dari daftar texts.
Catatan
Saat menggunakan CharacterTextSplitter.from_tiktoken_encoder, teks hanya dibagi oleh CharacterTextSplitter, dan tiktoken tokenizer digunakan untuk menggabungkan teks yang telah dibagi. (Ini berarti bahwa teks yang dibagi dapat lebih besar dari ukuran chunk yang diukur oleh tiktoken tokenizer.)
Jika Anda menggunakan RecursiveCharacterTextSplitter.from_tiktoken_encoder, teks yang dibagi dapat dipastikan tidak melebihi ukuran chunk yang diizinkan oleh model bahasa, dan setiap pembagian akan dibagi secara rekursif jika lebih besar. Anda juga dapat langsung memuat pembagi tiktoken, yang memastikan bahwa setiap pembagian lebih kecil dari ukuran chunk.
TokenTextSplitter
Membagi teks menjadi token menggunakan kelas
TokenTextSplitter.
spaCy
spaCy adalah perpustakaan perangkat lunak sumber terbuka untuk pemrosesan bahasa alami tingkat lanjut, yang ditulis dalam bahasa pemrograman Python dan Cython.
Alternatif lain untuk NLTK adalah menggunakan tokenizer spaCy.
Cara teks dibagi: Teks dibagi oleh tokenizer spaCy.
Cara mengukur ukuran chunk: Diukur berdasarkan jumlah karakter.
Berikut adalah perintah pip untuk memperbarui pustaka spaCy ke versi terbaru
Unduh model en_core_web_sm
Buka file appendix-keywords.txt dan baca isinya.
Cetak sebagian isi untuk memverifikasi.
Buat text splitter menggunakan kelas
SpacyTextSplitter
Gunakan metode
split_textdari objektext_splitteruntuk membagi teksfile
Sentence Transformer
SentenceTransformersTokenTextSplitter adalah pemisah teks yang khusus untuk model sentence-transformer.
Perilaku defaultnya adalah membagi teks menjadi potongan-potongan yang sesuai dengan jendela token dari model sentence transformer yang ingin Anda gunakan
Periksa teks sampel.
output:
Berikut adalah kode untuk menghitung jumlah token dalam teks yang disimpan di variabel file. Jumlah token akan dicetak setelah mengeluarkan token awal dan akhir.
Gunakan fungsi splitter.split_text() untuk membagi teks yang disimpan di variabel text_to_split menjadi beberapa chunk
Cetak chunk pertama untuk memverifikasi isinya.
NLTK
Natural Language Toolkit (NLTK) adalah perpustakaan dan kumpulan program untuk Natural Language Processing (NLP) dalam bahasa Inggris, yang ditulis dalam bahasa pemrograman Python.
Alih-alih hanya membagi teks dengan "\n\n", NLTK dapat digunakan untuk membagi teks berdasarkan tokenizer NLTK.
Metode pembagian teks: Teks dibagi oleh tokenizer NLTK.
Metode pengukuran ukuran chunk: Diukur berdasarkan jumlah karakter.
Berikut adalah perintah pip untuk menginstal pustaka
nltk.NLTK (Natural Language Toolkit) adalah pustaka Python untuk pemrosesan bahasa alami.
Anda dapat melakukan berbagai tugas NLP seperti prapemrosesan data teks, tokenisasi, analisis morfologis, dan penandaan bagian dari ucapan.
Periksa teks sampel.
Buat text splitter menggunakan kelas NLTKTextSplitter.
Atur parameter chunk_size ke 1000 untuk menentukan bahwa teks harus dibagi menjadi chunk hingga 1000 karakter.
Gunakan metode split_text dari objek text_splitter untuk membagi teks file.
Hugging Face tokenizer
Hugging Face menyediakan berbagai tokenizer.
Dalam kode ini, kita menggunakan salah satu tokenizer dari Hugging Face, yaitu GPT2TokenizerFast, untuk menghitung panjang token dari teks.
Metode Pemecahan Teks:
Teks dipecah berdasarkan unit karakter yang diberikan. Metode Pengukuran Ukuran Chunk:
Berdasarkan jumlah token yang dihitung oleh tokenizer Hugging Face. Buat objek tokenizer menggunakan kelas GPT2TokenizerFast.
Panggil metode from_pretrained untuk memuat model tokenizer "gpt2" yang telah dilatih sebelumnya.
Periksa teks sampel.
output:
Inisialisasi text splitter menggunakan tokenizer Hugging Face melalui metode from_huggingface_tokenizer
Periksa hasil pemecahan dari elemen ke-1.
Last updated