Di dunia saat ini yang berlimpah dengan data, banyak insight yang berharga sering kali tersimpan dalam teks yang tidak terstruktur, seperti catatan klinis mendetail, dokumen hukum yang panjang, thread masukan pelanggan, dan laporan berita yang terus berkembang. Memilah informasi ini secara manual atau membangun kode khusus untuk memproses data akan memakan waktu serta rentan error, dan menggunakan model bahasa besar (LLM) modern secara naif mungkin menyebabkan error. Bagaimana jika Anda bisa mengekstraksi secara terprogram informasi spesifik yang Anda butuhkan, sekaligus memastikan outputnya terstruktur dan terkait dengan andal ke sumbernya?
Hari ini, kami sangat senang dapat memperkenalkan LangExtract, library Python open source baru yang dirancang untuk memberdayakan developer agar dapat melakukan hal tersebut. LangExtract menyediakan antarmuka yang ringan untuk berbagai LLM seperti model Gemini kami untuk memproses teks tak terstruktur dalam volume besar menjadi informasi terstruktur sesuai instruksi khusus Anda, memastikan fleksibilitas dan keterlacakan.
Jika Anda bekerja dengan laporan medis, ringkasan keuangan, atau domain lain yang penuh dengan teks, LangExtract menawarkan cara yang fleksibel dan ampuh untuk membuka data di dalamnya.
LangExtract menawarkan kombinasi kemampuan unik yang membuatnya berguna untuk ekstraksi informasi:
Beginilah cara mengekstrak detail karakter dari sebaris naskah Shakespeare.
Pertama, instal library:
Untuk petunjuk penyiapan yang lebih detail, termasuk lingkungan virtual dan konfigurasi kunci API, silakan lihat README project.
pip install langextract
Berikutnya, tentukan tugas ekstraksi Anda. Berikan prompt yang jelas dan contoh "few-shot" berkualitas tinggi untuk memandu model.
import textwrap
import langextract as lx
# 1. Define a concise prompt
prompt = textwrap.dedent("""\
Extract characters, emotions, and relationships in order of appearance.
Use exact text for extractions. Do not paraphrase or overlap entities.
Provide meaningful attributes for each entity to add context.""")
# 2. Provide a high-quality example to guide the model
examples = [
lx.data.ExampleData(
text=(
"ROMEO. But soft! What light through yonder window breaks? It is"
" the east, and Juliet is the sun."
),
extractions=[
lx.data.Extraction(
extraction_class="character",
extraction_text="ROMEO",
attributes={"emotional_state": "wonder"},
),
lx.data.Extraction(
extraction_class="emotion",
extraction_text="But soft!",
attributes={"feeling": "gentle awe"},
),
lx.data.Extraction(
extraction_class="relationship",
extraction_text="Juliet is the sun",
attributes={"type": "metaphor"},
),
],
)
]
# 3. Run the extraction on your input text
input_text = (
"Lady Juliet gazed longingly at the stars, her heart aching for Romeo"
)
result = lx.extract(
text_or_documents=input_text,
prompt_description=prompt,
examples=examples,
model_id="gemini-2.5-pro",
)
Objek hasil berisi entitas yang diekstrak, yang bisa disimpan ke file JSONL. Dari sana, Anda dapat membuat file HTML interaktif untuk melihat anotasi. Visualisasi ini sangat bagus untuk demo atau mengevaluasi kualitas ekstraksi, sehingga menghemat waktu yang berharga. Visualisasi ini bekerja dengan baik di lingkungan seperti Google Colab atau bisa disimpan sebagai file HTML mandiri, yang dapat dilihat dari browser Anda.
# Save the results to a JSONL file
lx.io.save_annotated_documents([result], output_name="extraction_results.jsonl")
# Generate the interactive visualization from the file
html_content = lx.visualize("extraction_results.jsonl")
with open("visualization.html", "w") as f:
f.write(html_content)
Prinsip yang sama seperti di atas berlaku untuk domain khusus, seperti kedokteran, keuangan, teknik, atau hukum. Ide di balik LangExtract pertama kali diterapkan untuk ekstraksi informasi medis dan bisa efektif dalam memproses teks klinis. Sebagai contoh, LangExtract dapat mengidentifikasi pengobatan, dosis, dan atribut pengobatan lainnya, dan kemudian memetakan hubungan di antara mereka. Kemampuan ini merupakan bagian inti dari penelitian yang berujung pada library ini, yang bisa Anda baca di makalah kami tentang mempercepat ekstraksi informasi medis.
Animasi di bawah ini menunjukkan LangExtract memproses teks klinis untuk mengekstrak entitas terkait pengobatan dan mengelompokkannya ke pengobatan sumber.
Untuk menunjukkan kekuatan LangExtract dalam bidang khusus, kami mengembangkan demonstrasi interaktif untuk pelaporan radiologi terstruktur yang disebut RadExtract di Hugging Face. Demo ini menunjukkan bagaimana LangExtract bisa memproses laporan radiologi teks bebas dan secara otomatis mengubah temuan utamanya ke dalam format terstruktur, serta menyoroti temuan penting. Pendekatan ini penting dalam radiologi, karena laporan terstruktur akan meningkatkan kejelasan, memastikan kelengkapan, dan meningkatkan interoperabilitas data untuk penelitian dan perawatan klinis.
Sanggahan: Contoh ekstraksi pengobatan dan demo pelaporan terstruktur di atas hanya untuk tujuan ilustrasi kemampuan dasar LangExtract. Ini tidak mewakili produk yang sudah jadi atau disetujui, tidak dimaksudkan untuk mendiagnosis atau menyarankan pengobatan penyakit atau kondisi tertentu, dan tidak boleh digunakan untuk saran medis.
Kami sangat antusias menantikan cara-cara inovatif yang akan digunakan developer dalam memanfaatkan LangExtract untuk membuka insight dari teks. Pelajari dokumentasinya, jelajahi contoh-contohnya di repositori GitHub kami, dan mulailah mentransformasi data tak terstruktur Anda hari ini.