Menyesuaikan Pemisahan Dokumen
Laksanakan teknik pemisahan teks lanjutan, termasuk pemecahan semantik dan pengendalian kod atau struktur data tertentu.
Menyesuaikan Pemisahan Dokumen ialah pelajaran LangChain / RAG / Pangkalan Data Vektor percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran LangChain / RAG / Pangkalan Data Vektor, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.
Mengapa Menyesuaikan Pemecahan Teks?
Apabila menyediakan dokumen untuk Penjanaan Dipertingkatkan Pengambilan (RAG), cara anda memecahkannya kepada bahagian amat penting. Pemecah teks asas ialah permulaan yang baik, tetapi sering tidak memadai untuk kandungan yang kompleks atau sangat berstruktur.
Menyesuaikan strategi pemecahan teks membolehkan anda mengekalkan integriti konteks dengan lebih baik, lalu menghasilkan pengambilan maklumat yang lebih tepat dan respons LLM yang lebih baik.
Menyesuaikan Pemecah Aksara
CharacterTextSplitter LangChain adalah ringkas tetapi berkuasa. Anda boleh menyesuaikannya dengan menyediakan aksara separator tertentu. Ini berguna apabila dokumen anda mempunyai pembatas unik yang ingin dihormati, seperti tag tertentu atau corak pemisah baris yang unik.
Dengan mentakrifkan pemisah anda sendiri, anda boleh memastikan pemecahan yang logik dan bukannya kiraan aksara yang sewenang-wenangnya.
from langchain.text_splitter import CharacterTextSplitter
class Main:
def run(self):
text = "Chapter 1: Intro.Section 1.1: Basics.Section 1.2: Advanced."
# Custom separator is "."
splitter = CharacterTextSplitter(
separator=".",
chunk_size=20,
chunk_overlap=0
)
chunks = splitter.split_text(text)
for i, chunk in enumerate(chunks):
print(f"Chunk {i+1}: {chunk}")
if __name__ == "__main__":
Main().run()Memperhalus Pemecah Rekursif
RecursiveCharacterTextSplitter cuba memecahkan teks menggunakan senarai pemisah mengikut turutan, sambil cuba mengekalkan bahagian sebesar mungkin. Anda boleh menyesuaikan senarai ini agar sepadan dengan struktur semula jadi dokumen anda.
Contohnya, anda mungkin mengutamakan pemecahan mengikut dua baris baharu, kemudian satu baris baharu, seterusnya ruang, dan akhirnya aksara.
from langchain.text_splitter import RecursiveCharacterTextSplitter
class Main:
def run(self):
text = "Hello there!\n\nThis is a paragraph.\nAnd this is another sentence."
# Custom list of separators
splitter = RecursiveCharacterTextSplitter(
separators=["\n\n", "\n", " ", ""],
chunk_size=40,
chunk_overlap=0
)
chunks = splitter.split_text(text)
for i, chunk in enumerate(chunks):
print(f"Chunk {i+1}: {chunk}")
if __name__ == "__main__":
Main().run()Pengenalan kepada Pembahagian Semantik
Daripada bergantung sepenuhnya pada kiraan aksara atau pembatas, bagaimana jika kita boleh memecahkan teks berdasarkan maknanya?
Pembahagian semantik bertujuan menghasilkan bahagian yang mewakili idea atau topik yang lengkap dan koheren. Kaedah ini membantu mengelakkan konsep penting daripada dipecahkan secara sewenang-wenangnya merentasi bahagian yang berbeza, sesuatu yang sering berlaku dengan pemecah bersaiz tetap atau pemecah aksara ringkas.
Cara Pembahagian Semantik Berfungsi
Pembahagian semantik biasanya melibatkan beberapa langkah:
- Benamkan Ayat: Setiap ayat atau unit kecil teks ditukar kepada benaman vektor.
- Ukur Keserupaan: Keserupaan semantik antara ayat atau unit bersebelahan diukur menggunakan benaman masing-masing.
- Kenal Pasti Titik Pemisah: Bahagian dibentuk apabila keserupaan semantik menurun dengan ketara, yang menunjukkan perubahan topik atau peralihan dalam perbincangan.
Walaupun LangChain tidak menyediakan satu 'pemecah semantik' terbina dalam, ini ialah corak yang boleh anda bina menggunakan model benaman dan logik tersuai.
Pemecah Kod Khusus
Kod mempunyai struktur unik, dengan fungsi, kelas, ulasan dan sintaks tertentu. Pemecah teks umum sering memecahkan kod pada tempat yang janggal, menyebabkan bahagian yang terhasil sukar difahami atau digunakan sebagai konteks untuk LLM.
LangChain menyediakan pemecah khusus untuk pelbagai bahasa pengaturcaraan. Pemecah ini memahami sintaks sesuatu bahasa dan memastikan bahagian yang terhasil bermakna dari segi sintaks, seperti mengekalkan keseluruhan fungsi atau kelas bersama-sama.
Demo Pemecah Kod Python
Kaedah RecursiveCharacterTextSplitter.from_language membolehkan anda menentukan bahasa pengaturcaraan. Kaedah ini kemudian menggunakan pemisah khusus bahasa (seperti takrifan kelas, takrifan fungsi dan sebagainya) untuk menghasilkan bahagian yang lebih pintar.
Hal ini memastikan petikan kod yang dihantar kepada LLM lebih koheren.
from langchain.text_splitter import RecursiveCharacterTextSplitter, Language
class Main:
def run(self):
python_code = """
def calculate_sum(a, b):
# This function adds two numbers
return a + b
class MyCalculator:
def __init__(self):
self.result = 0
def add(self, num):
self.result += num
if __name__ == "__main__":
total = calculate_sum(5, 3)
print(f"Sum: {total}")
calc = MyCalculator()
calc.add(10)
print(f"Calc result: {calc.result}")
"""
# Initialize splitter for Python code
python_splitter = RecursiveCharacterTextSplitter.from_language(
language=Language.PYTHON,
chunk_size=100, # Adjust chunk size to see more splits
chunk_overlap=0
)
docs = python_splitter.create_documents([python_code])
for i, doc in enumerate(docs):
print(f"--- Chunk {i+1} ---")
print(doc.page_content)
if __name__ == "__main__":
Main().run()Melangkaui Kod: Struktur Lain
LangChain turut menawarkan pemecah khusus untuk format berstruktur lain, bukan kod sahaja:
MarkdownTextSplitter: Memahami sintaks Markdown (tajuk, blok kod dan senarai) untuk menghasilkan bahagian yang dikumpulkan secara logik.LatexTextSplitter: Mengenal pasti bahagian, bab dan persekitaran LaTeX sambil mengekalkan struktur akademik dokumen.
Pemecah khusus ini amat berguna untuk memproses dokumen yang pemformatannya sendiri menyampaikan maklumat struktur yang penting.
Mencipta Logik Pemecah Tersuai
Untuk struktur dokumen yang benar-benar unik atau format data proprietari, anda mungkin perlu melaksanakan logik pemecahan sendiri. LangChain membolehkan anda:
- Mencipta subkelas
TextSplitter: Cipta kelas baharu yang mewarisiTextSplitterdan mengatasi kaedahnya untuk mentakrifkan peraturan pemecahan tersuai. - Menulis fungsi tersuai: Bangunkan fungsi yang mengambil teks anda dan mengembalikan senarai bahagian berdasarkan keperluan penghuraian khusus anda.
Pendekatan ini menawarkan fleksibiliti maksimum untuk mengendalikan corak ungkapan biasa yang kompleks, pembatas tersuai atau struktur bersarang yang unik kepada set data anda.
Semak Pemahaman Anda
Anda telah mempelajari pelbagai cara untuk menyesuaikan pemecahan teks bagi jenis dokumen yang berbeza. Mari uji pengetahuan anda.
Imbas Kembali Pemecahan Tersuai
Dalam pelajaran ini, kita meneroka cara melangkaui pemecahan teks asas untuk mengendalikan jenis dokumen yang pelbagai dan kompleks dengan lebih berkesan:
- Kita menyesuaikan pemecah Aksara dan Aksara Rekursif dengan senarai pemisah tertentu.
- Kita memperkenalkan konsep Pembahagian Semantik untuk pemecahan berdasarkan makna.
- Kita mempelajari pemecah khusus bahasa untuk kod (contohnya, Python dan Java) serta format berstruktur lain seperti Markdown dan LaTeX.
- Akhir sekali, kita membincangkan kuasa dan fleksibiliti mencipta logik pemecahan tersuai sepenuhnya untuk data unik.
Menguasai strategi pemecahan tersuai ialah langkah penting dalam membina aplikasi RAG yang tepat dan kukuh.
Pelajari LangChain / RAG / Pangkalan Data Vektor dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Menyesuaikan Pemisahan Dokumen” percuma?
Ya — teks penuh “Menyesuaikan Pemisahan Dokumen” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus LangChain / RAG / Pangkalan Data Vektor, tingkat taraf kepada CoddyKit PRO. Kursus LangChain / RAG / Pangkalan Data Vektor merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyesuaikan Pemisahan Dokumen”?
Laksanakan teknik pemisahan teks lanjutan, termasuk pemecahan semantik dan pengendalian kod atau struktur data tertentu. Anda berlatih LangChain / RAG / Pangkalan Data Vektor menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan LangChain / RAG / Pangkalan Data Vektor?
Tiada pengalaman terdahulu diperlukan. Pembelajaran LangChain / RAG / Pangkalan Data Vektor di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Menyesuaikan Pemisahan Dokumen” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran LangChain / RAG / Pangkalan Data Vektor ini?
Ya. Setiap pelajaran LangChain / RAG / Pangkalan Data Vektor menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Memuatkan Pelbagai Jenis Dokumen
- Memahami Strategi Pemisahan Teks
- Menyesuaikan Pemisahan Dokumen
- Mengendalikan Metadata Dokumen dan Penapisan