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.
with open("./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 CharacterTextSplitter

text_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

Last updated