Một nhà cung cấp, bốn cách viết: Vì sao các bước xác định lại hiệu quả hơn điểm tương đồng

Công nghệ19 tháng 9, 2026·4 phút đọc

Bài viết phân tích quá trình loại bỏ trùng lặp cho danh sách 10.000 nhà cung cấp bằng Python, trong đó phần khó nhất là quyết định ý nghĩa của một điểm tương đồng 91. Tác giả lập luận rằng các bước xác định (deterministic) đáng tin cậy hơn việc phụ thuộc vào điểm tương đồng mờ.

Một nhà cung cấp, bốn cách viết: Vì sao các bước xác định lại hiệu quả hơn điểm tương đồng

Khi xử lý danh sách 10.000 nhà cung cấp bằng Python, thách thức lớn nhất không phải là viết thuật toán so khớp, mà là quyết định một điểm tương đồng 91 thực sự có ý nghĩa gì. Bài viết trên Towards Data Science lập luận rằng các bước xác định (deterministic) nên đóng vai trò chủ đạo, còn điểm tương đồng chỉ nên là công cụ hỗ trợ.

Vấn đề: cùng một nhà cung cấp, nhiều cách viết

Trong dữ liệu thực tế, một nhà cung cấp duy nhất có thể xuất hiện dưới nhiều biến thể tên gọi khác nhau. Ví dụ:

  • Công ty TNHH ABC
  • ABC Co., Ltd
  • ABC Company Limited
  • ABC

Con người dễ dàng nhận ra đây là cùng một thực thể, nhưng máy tính thì không. Đây chính là bài toán loại bỏ trùng lặp (deduplication) — một trong những công việc tốn thời gian nhất trong xử lý dữ liệu.

Cạm bẫy của điểm tương đồng

Nhiều kỹ sư dữ liệu có xu hướng sử dụng các thuật toán so khớp mờ (fuzzy matching) như Levenshtein, Jaro-Winkler hay cosine similarity để giải quyết vấn đề này. Cách tiếp cận này nghe có vẻ hợp lý, nhưng lại ẩn chứa một câu hỏi không có đáp án rõ ràng:

Điểm tương đồng 91 có nghĩa là hai bản ghi này chắc chắn là cùng một nhà cung cấp, hay chỉ là tình cờ giống nhau?

Không có ngưỡng nào là hoàn hảo. Đặt ngưỡng quá cao, bạn bỏ sót các trường hợp trùng lặp thật. Đặt quá thấp, bạn gộp nhầm những nhà cung cấp khác nhau — một sai lầm có thể gây hậu quả nghiêm trọng trong kế toán hoặc quản lý chuỗi cung ứng.

Giải pháp: các bước xác định làm nền tảng

Thay vì để thuật toán mờ quyết định tất cả, tác giả đề xuất một quy trình nhiều tầng, trong đó các bước xác định (deterministic) xử lý phần lớn công việc trước:

  • Chuẩn hóa dữ liệu: Chuyển về chữ thường, loại bỏ dấu câu, chuẩn hóa các hậu tố pháp lý như "TNHH", "Co., Ltd", "JSC".
  • Khớp chính xác trên khóa đã chuẩn hóa: Sau khi chuẩn hóa, nhiều biến thể sẽ tự động trùng khớp mà không cần bất kỳ thuật toán mờ nào.
  • Khớp theo trường cụ thể: So khớp mã số thuế, email, số điện thoại hoặc địa chỉ — những trường có tính xác định cao.
  • Chỉ dùng so khớp mờ như bước cuối: Với những trường hợp còn lại, mới áp dụng điểm tương đồng, và luôn kèm theo bước kiểm tra thủ công.

Vì sao cách tiếp cận này hiệu quả hơn

Điểm mạnh cốt lõi của phương pháp này nằm ở tính giải thích được (explainability):

  • Khi hai bản ghi được gộp vì cùng mã số thuế, bạn biết chính xác lý do.
  • Khi hai bản ghi được gộp vì điểm tương đồng 91, bạn chỉ có một con số — không đủ để bảo vệ quyết định đó trước ban giám đốc hay kiểm toán.

Các bước xác định cũng dễ kiểm thử, dễ bảo trìổn định hơn khi dữ liệu thay đổi theo thời gian.

Gợi ý cho kỹ sư dữ liệu Việt Nam

Với các doanh nghiệp Việt Nam thường xuyên phải xử lý danh sách nhà cung cấp, khách hàng hoặc đối tác bằng tiếng Việt lẫn tiếng Anh, bài học này đặc biệt hữu ích:

  • Hãy xây dựng từ điển chuẩn hóa cho các hậu tố pháp lý phổ biến (TNHH, Cổ phần, DNTN, JSC, Ltd...).
  • Tận dụng mã số thuế làm khóa chính — đây là yếu tố xác định mạnh nhất trong bối cảnh Việt Nam.
  • Ghi lại nhật ký quyết định cho mỗi lần gộp bản ghi, để có thể truy vết khi cần.

Kết luận

Điểm tương đồng là một công cụ hữu ích, nhưng không nên là nền tảng của một quy trình loại bỏ trùng lặp. Bằng cách để các bước xác định xử lý phần lớn công việc và chỉ dùng so khớp mờ cho những trường hợp thực sự mơ hồ, bạn có thể xây dựng một hệ thống vừa chính xác, vừa có thể giải thích — điều mà bất kỳ nhà quản lý dữ liệu nào cũng mong muốn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗