Tóm tắt văn bản với Claude — Từ cơ bản đến domain-specific
Điểm nổi bật
Nhấn để đến mục tương ứng
- 1 Tận dụng Claude hiệu quả: Trong thế giới tràn ngập thông tin, khả năng trích xuất và tổng hợp nhanh các điểm chính từ tài liệu dài là vô giá — mẹo quan trọng là cung cấp đủ ngữ cảnh để AI trả về kết quả chính xác hơn 80% so với prompt chung chung.
- 2 Thành thật mà nói: Cách đơn giản nhất — gửi tài liệu, yêu cầu tóm tắt: def basicsummarizetext: response = client.messages.create. Phương pháp này hiệu quả trong hầu hết trường hợp, nhưng bạn cần điều chỉnh cho phù hợp ngữ cảnh riêng.
- 3 Điểm nhấn quan trọng: Thay vì để Claude tự quyết nội dung tóm tắt, chúng ta định nghĩa framework rõ ràng để hướng dẫn quá trình tóm tắt qua. Đây là phần mang lại giá trị thực tiễn cao nhất trong toàn bài viết.
- 4 Bước đầu tiên bạn nên làm: Kết hợp tóm tắt với RAG để tạo hệ thống truy xuất thông minh: Document Summarization — Tạo tóm tắt ngắn cho mỗi tài. Áp dụng đúng cách sẽ thấy kết quả rõ rệt từ tuần đầu tiên.
- 5 Góc nhìn thực tế: Dùng "do not preamble" — Constrain output chỉ gồm nội dung tóm tắt Ít nhất 2 examples — Few-shot learning cải thiện. Điều quan trọng là hiểu rõ khi nào nên và không nên áp dụng phương pháp này.
Trong bài hướng dẫn này, bạn sẽ xây dựng hệ thống tóm tắt văn bản chuyên nghiệp bằng Claude. Chúng ta sẽ đi qua 5 kỹ thuật: Basic → Multi-Shot → Guided → Domain-Specific → Meta-Summarization, cùng phương pháp đánh giá quality bài bản.
Bài viết dựa trên Claude Cookbooks chính thức của Anthropic, sử dụng tài liệu pháp lý (sublease agreements) làm ví dụ minh họa.
Tại sao tóm tắt văn bản quan trọng?
Trong thế giới tràn ngập thông tin, khả năng trích xuất và tổng hợp nhanh các điểm chính từ tài liệu dài là vô giá. Đặc biệt với tài liệu pháp lý — hợp đồng, điều khoản, quy định — nơi mà fine print và thuật ngữ chuyên ngành khiến việc đọc trở nên mệt mỏi.
Claude giải quyết vấn đề này: tóm tắt tài liệu hàng chục trang trong vài giây, với độ chính xác mà bạn có thể kiểm chứng và cải thiện có hệ thống.
Kỹ thuật 1: Basic Summarization
Cách đơn giản nhất — gửi tài liệu, yêu cầu tóm tắt:
def basic_summarize(text):
response = client.messages.create(
model="claude-sonnet-4-6",
messages=[
{"role": "user", "content": f"Tóm tắt tài liệu:\n{text}"},
# Prefill để ép output format
{"role": "assistant", "content": "<summary>"},
],
stop_sequences=["</summary>"],
max_tokens=1000
)
return response.content[0].text
Kỹ thuật assistant prefill + stop sequences đảm bảo Claude output trực tiếp nội dung tóm tắt, không thêm preamble.
Hạn chế: Output không có cấu trúc chuẩn, khó parse tự động, và không tập trung vào thông tin quan trọng nhất.
Kỹ thuật 2: Multi-Shot — Học từ ví dụ
Thêm 2-3 ví dụ tóm tắt mẫu vào prompt. Hai thay đổi quan trọng:
- "Do not preamble" — Loại bỏ câu mở đầu kiểu hội thoại
- Few-shot examples — 3 cặp (document, summary) mẫu
Điều thú vị: chúng ta không hề chỉ định format output, nhưng Claude tự động theo đúng format của các ví dụ. Đây là sức mạnh của few-shot learning — Claude generalize từ vài mẫu sang input mới.
Kỹ thuật 3: Guided Summarization
Thay vì để Claude tự quyết nội dung tóm tắt, chúng ta định nghĩa framework rõ ràng để hướng dẫn quá trình tóm tắt qua prompt:
prompt = f"""Tóm tắt tài liệu sau theo framework:
1. TỔNG QUAN: 2-3 câu mô tả tổng thể
2. CÁC BÊN LIÊN QUAN: Liệt kê tất cả bên tham gia
3. ĐIỀU KHOẢN CHÍNH: Các điểm quan trọng nhất
4. NGHĨA VỤ: Trách nhiệm của mỗi bên
5. THỜI HẠN: Các mốc thời gian quan trọng
6. ĐIỀU KIỆN ĐẶC BIỆT: Clause đáng chú ý
Tài liệu:
{text}"""
Guided summarization đặc biệt mạnh cho tài liệu chuyên ngành — bạn kiểm soát được những gì cần trích xuất thay vì để model tự chọn.
Kỹ thuật 4: Domain-Specific Guided Summarization
Nâng cấp tiếp bằng cách tailored cho loại tài liệu cụ thể. Ví dụ, với sublease agreement, prompt yêu cầu trích xuất các trường đặc thù:
prompt = f"""Phân tích sublease agreement sau.
Trích xuất và format theo XML:
<parties>Tenant, Subtenant, Landlord</parties>
<property>Địa chỉ, diện tích, mục đích sử dụng</property>
<term>Ngày bắt đầu, kết thúc, gia hạn</term>
<rent>Số tiền, kỳ hạn, phương thức thanh toán</rent>
<security_deposit>Số tiền, điều kiện hoàn trả</security_deposit>
<special_conditions>Điều khoản đặc biệt</special_conditions>
Tài liệu: {text}"""
Output dạng XML cho phép parse tự động — lý tưởng khi cần xử lý hàng loạt tài liệu.
Kỹ thuật 5: Meta-Summarization — Nhiều tài liệu
Khi có nhiều tài liệu liên quan (ví dụ: nhiều hợp đồng của cùng khách hàng), dùng chunking + meta-summary:
- Tóm tắt từng tài liệu riêng biệt
- Gộp các tóm tắt lại
- Tạo meta-summary tổng hợp tất cả
Kỹ thuật này cũng áp dụng cho tài liệu rất dài vượt quá context window — chia thành chunks, tóm tắt từng chunk, rồi tóm tắt lại.
Summary-Indexed RAG — Ứng dụng nâng cao
Kết hợp tóm tắt với RAG để tạo hệ thống truy xuất thông minh:
- Document Summarization — Tạo tóm tắt ngắn cho mỗi tài liệu
- Context Window Optimization — Đảm bảo tất cả summaries fit trong context window
- Relevancy Scoring — Xếp hạng relevance của mỗi summary với query
- Reranking — Tinh chỉnh top-K kết quả
- Answer Generation — Trả lời dựa trên tài liệu liên quan nhất
Ưu điểm so với RAG truyền thống:
- Ranking tài liệu hiệu quả hơn, dùng ít context hơn
- Outperform RAG truyền thống trên nhiều task
- Reranking giúp compress kết quả, đưa thông tin relevance nhất cho model
Đánh giá chất lượng tóm tắt
Đánh giá summarization là notoriously khó. Không có metric hoàn hảo vì tóm tắt mang tính chủ quan — summary khác nhau có thể đều valid.
Phương pháp kết hợp
- ROUGE scores — So sánh n-gram overlap giữa summary và reference
- BLEU scores — Đo precision của n-gram matches
- LLM-as-judge — Dùng Claude đánh giá quality (coherence, accuracy, completeness)
- Regex checks — Kiểm tra format, trường bắt buộc có được trích xuất không
- Promptfoo — Framework evaluation tự động, so sánh models và prompts
Kết quả Promptfoo evaluation
Khi test trên dataset 9 sublease agreements:
- Claude Sonnet đạt 66% pass rate across all evals, chỉ 3/45 tests thất bại
- Haiku hiệu quả về chi phí nhưng kém hơn trên complex extractions
- Guided + domain-specific prompt consistently outperform basic prompt
Best practices cho summarization
- Dùng "do not preamble" — Constrain output chỉ gồm nội dung tóm tắt
- Ít nhất 2 examples — Few-shot learning cải thiện format và quality đáng kể
- Guided summarization cho domain-specific — Define framework rõ ràng cho loại tài liệu cụ thể
- XML/JSON output — Cho phép parse tự động, lý tưởng cho pipeline production
- Chunking cho tài liệu dài — Chia nhỏ, tóm tắt từng phần, rồi meta-summarize
- Iterate dựa trên evaluation — Analyze failures, refine prompts, re-evaluate
Áp dụng thực tế
- Pháp lý: Tóm tắt hợp đồng, đơn kiện, luật — trích xuất điều khoản quan trọng
- Tài chính: Tóm tắt báo cáo tài chính, earnings calls, market research
- Y tế: Tóm tắt hồ sơ bệnh nhân, nghiên cứu y khoa
- Giáo dục: Tóm tắt sách giáo khoa, bài giảng, research papers
- Business: Tóm tắt email dài, meeting notes, RFPs
Bước tiếp theo: Đọc thêm về RAG với Claude để kết hợp summarization vào pipeline truy xuất thông tin, và Prompt Engineering nâng cao để tối ưu prompt tóm tắt.
Bai viet co huu ich khong?
Bản quyền thuộc về tác giả. Vui lòng dẫn nguồn khi chia sẻ.



