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-splittersGunakan MarkdownHeaderTextSplitter untuk membagi teks berformat Markdown berdasarkan header.
Fungsi ini membagi teks dalam dokumen Markdown berdasarkan header (
#,##,###, dll.).Variabel
markdown_documentdialokasikan untuk dokumen berformat Markdown.Daftar
headers_to_split_onmendefinisikan level header Markdown dan nama yang sesuai dalam bentuk tuple.Objek
markdown_splitterdibuat menggunakan kelasMarkdownHeaderTextSplitter, dan level header untuk pemisahan diteruskan sebagai parameterheaders_to_split_on.Metode
split_textdipanggil untuk membagimarkdown_documentsesuai 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 MollySecara 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