Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: Levenshtein, phép biến đổi chuỗi, NLP, khoảng cách chuỗi, edit distance
Khi mới học NLP hoặc khi chạm vào các chủ đề đo độ giống nhau giữa hai chuỗi, nhiều bạn thường dừng lại ở một câu hỏi tưởng đơn giản:
“Levenshtein dùng bao nhiêu phép biến đổi để tính khoảng cách? Delete, insert, substitute… nhưng có thêm thao tác nào nữa không?”
Sự bối rối này thường đến từ việc có nhiều loại khoảng cách chuỗi khác nhau: Hamming, Damerau-Levenshtein, Jaro-Winkler… khiến người mới dễ gộp chúng lại.
Bài viết dưới đây giúp bạn nhìn Levenshtein từ đúng bản chất, tránh công thức nặng nề.
Khoảng cách Levenshtein đo xem hai chuỗi khác nhau bao nhiêu bằng cách đếm số thao tác tối thiểu để biến chuỗi A thành chuỗi B.
Điểm quan trọng nhất:
Levenshtein chỉ dùng 3 phép biến đổi.
Cụ thể là:
Mỗi thao tác tính 1 đơn vị.
Khoảng cách = tổng số thao tác ít nhất cần dùng.
Nhiều người thường nhầm rằng có thêm “swap ký tự”, nhưng swap chỉ thuộc về biến thể Damerau-Levenshtein, không phải Levenshtein gốc.
CAT → CUT
Thay A → U
→ 1 phép substitute
Khoảng cách = 1
BOOK → BACK
Một cách hợp lý:
Khoảng cách = 2
Những ví dụ như vậy thường gặp trong các bài toán NLP:
Trong dữ liệu thật, việc so sánh chuỗi là chuyện diễn ra liên tục:
Levenshtein giúp bạn định lượng sự khác biệt để ra quyết định hợp lý.
Thuật toán này thường xuất hiện cùng các chủ đề thuộc những nhóm kiến thức nền tảng mà người học AI hay đi qua, ví dụ:
Nó giống như “mảnh ghép nhỏ nhưng không thể thiếu” trong các hệ thống xử lý ngôn ngữ.
Tóm tắt thật ngắn:
Levenshtein được tính bằng đúng 3 phép: Insert – Delete – Substitute.
Không có hoán đổi, không có reorder, không có thêm bước ẩn.
Bạn có thể:
Những thử nghiệm nhỏ như vậy giúp bạn nắm bản chất thuật toán hơn mà không cần công thức phức tạp.