06. Pemisahan Teks Header Markdown (MarkdownHeaderTextSplitter)

Memahami dan mengelola struktur file Markdown secara efisien dapat sangat penting dalam pekerjaan dokumen. Secara khusus, proses embedding teks dengan cara yang bermakna, dengan mempertimbangkan konteks dan struktur keseluruhan dokumen, dapat sangat membantu dalam menghasilkan representasi vektor yang komprehensif yang lebih baik dalam menangkap makna dan topik yang luas.

Dalam konteks ini, mungkin ada kalanya Anda ingin membagi konten file Markdown berdasarkan bagian tertentu, seperti header. Misalnya, Anda mungkin ingin membuat bagian informasi terkait, atau 'chunk', berdasarkan konten di bawah setiap header dalam dokumen. Pendekatan ini berupaya memanfaatkan elemen struktural dokumen secara efektif sambil mempertahankan konteks umum dalam teks.

Untuk menyelesaikan tugas seperti itu, Anda dapat menggunakan alat yang disebut MarkdownHeaderTextSplitter. Alat ini membagi dokumen sesuai dengan set header yang ditentukan, memungkinkan Anda untuk mengelola konten di bawah setiap grup header sebagai chunk terpisah. Dengan menggunakan metode ini, Anda dapat menangani konten secara lebih rinci sambil mempertahankan struktur keseluruhan dokumen, yang dapat berguna dalam berbagai proses pengolahan.

pip install -qU langchain-text-splitters

Gunakan MarkdownHeaderTextSplitter untuk membagi teks berformat Markdown berdasarkan header.

  • Fungsi ini membagi teks dalam dokumen Markdown berdasarkan header (#, ##, ###, dll.).

  • Variabel markdown_document dialokasikan untuk dokumen berformat Markdown.

  • Daftar headers_to_split_on mendefinisikan level header Markdown dan nama yang sesuai dalam bentuk tuple.

  • Objek markdown_splitter dibuat menggunakan kelas MarkdownHeaderTextSplitter, dan level header untuk pemisahan diteruskan sebagai parameter headers_to_split_on.

  • Metode split_text dipanggil untuk membagi markdown_document sesuai dengan level header.

from langchain_text_splitters import MarkdownHeaderTextSplitter

# Definisikan dokumen berformat Markdown sebagai string.
markdown_document = "# Title\n\n## 1. SubTitle\n\nHi this is Jim\n\nHi this is Joe\n\n### 1-1. Sub-SubTitle \n\nHi this is Lance \n\n## 2. Baz\n\nHi this is Molly"
print(markdown_document)
# Title

## 1. SubTitle

Hi this is Jim

Hi this is Joe

### 1-1. Sub-SubTitle

Hi this is Lance

## 2. Baz

Hi this is Molly

Secara default, MarkdownHeaderTextSplitter menghapus header yang dipisah dari konten chunk output.

Ini dapat dinonaktifkan dengan mengatur strip_headers = False.

Di dalam setiap grup Markdown, Anda dapat menerapkan text splitter yang diinginkan

Pertama, gunakan MarkdownHeaderTextSplitter untuk membagi dokumen Markdown berdasarkan header.

Bagilah hasil dari MarkdownHeaderTextSplitter sebelumnya menggunakan RecursiveCharacterTextSplitter sekali lagi

Last updated