Bộ so khớp danh sách mờ

Việc đối chiếu dữ liệu xuất từ hệ thống CRM với bảng tính chứa thông tin khách hàng thanh toán hóa đơn, hoặc so khớp tên nhà cung cấp từ hai hệ thống ERP khác nhau, gần như luôn gặp trở ngại do những khác biệt nhỏ – ví dụ như “Acme Corp.” so với “ACME Corporation” hay “acme corp.”. Hãy dán cả hai danh sách vào nhau, thiết lập ngưỡng tương đồng; công cụ sẽ đề xuất ứng viên phù hợp nhất trong danh sách B cho từng mục trong danh sách A, đồng thời đánh dấu các mục dưới ngưỡng để kiểm tra thủ công.

Làm thế nào để ghép hai danh sách lộn xộn lại với nhau

  1. 1

    Dán danh sách A

    Mỗi dòng một mục: tên khách hàng, mã sản phẩm và địa chỉ.

  2. 2

    Dán danh sách B

    Nhóm ứng viên. Khác biệt về chữ hoa/thường, khoảng trắng và lỗi gõ đều không sao.

  3. 3

    Thiết lập ngưỡng

    Tỷ lệ tương đồng vượt ngưỡng này thì kết quả so khớp được chấp nhận (70% là giá trị mặc định hợp lý).

  4. 4

    Đọc báo cáo

    Mỗi mục A đều được ghép với ứng viên B tốt nhất cùng một điểm độ tin cậy. Các mục dưới ngưỡng sẽ được đánh dấu để xem xét lại.

Cách đo lường mức độ tương đồng

Công cụ sử dụng chỉ số similar_text của PHP (một chỉ số đánh giá trình tự con chung dài nhất) và báo cáo kết quả dưới dạng tỷ lệ phần trăm. Tỷ lệ càng cao thì càng tốt; sự trùng khớp hoàn toàn tương ứng với 100%.

Ngưỡng Hành vi
≥ 95% Gần như giống hệt nhau, chỉ khác biệt về chữ hoa/thường hoặc khoảng trắng
80–94% Lỗi gõ, thiếu dấu câu, hậu tố bị cắt ngắn
60–79% Thay đổi thứ tự từ, dạng viết tắt so với dạng đầy đủ
< 60% Có khả năng không phải là kết quả khớp thực sự, cần xem xét thủ công

Mẹo nhỏ

  • Chuẩn hóa trước nếu bạn biết những yếu tố gây nhiễu phổ biến: chuyển về chữ thường, loại bỏ dấu câu và rút gọn khoảng trắng. Bạn sẽ nhận được điểm số chính xác hơn.
  • Loại bỏ hậu tố tên công ty (“Inc”, “Ltd”, “GmbH”) nếu chúng xuất hiện không nhất quán ở một danh sách nhưng không có ở danh sách kia.
  • Tách các địa chỉ dài, so khớp riêng “đường phố + thành phố” hiệu quả hơn so với so khớp cả một dòng gộp lại.
  • Lưu ý trường hợp một-đến-nhiều. Công cụ sẽ chọn kết quả khớp B tốt nhất cho mỗi mục A; nó không ngăn cùng một giá trị B khớp với nhiều hàng A khác nhau.

Khi nào nên sử dụng thuật toán nghiêm ngặt hơn

Trong các công việc loại bỏ dữ liệu trùng lặp quy mô lớn, khoảng cách Levenshtein hoặc phương pháp Jaro–Winkler đều hiệu quả hơn similar_text, đặc biệt đối với những tên có vị trí ký tự quan trọng. Nếu việc khớp dữ liệu không chính xác ảnh hưởng đến quá trình tính phí hoặc hợp nhất dữ liệu, cần kiểm tra ngẫu nhiên 20 cặp dữ liệu trước khi tin tưởng vào kết quả ở quy mô lớn.

Câu hỏi thường gặp

Tỷ lệ 70% có thể phát hiện hầu hết các trường hợp hợp lệ đồng thời xác định chính xác những trường hợp không phù hợp. Hãy nâng tỷ lệ này lên 85% nếu danh sách B sạch sẽ và bạn không thể chấp nhận các kết quả dương tính giả; hoặc hạ xuống còn 55% nếu cả hai danh sách đều chứa nhiều dữ liệu nhiễu và bạn dự định xem xét toàn bộ thông tin một cách thủ công.

Có, nhưng hãy chuẩn hóa trước: loại bỏ khoảng trắng, dấu gạch nối và tiền tố mã quốc gia, đồng thời chuyển địa chỉ email về chữ thường. So khớp mờ trên các giá trị thô sẽ cho điểm thấp với những mục có cấu trúc hoàn toàn giống nhau.

Trong nội bộ, công cụ chuyển cả hai bên về chữ thường trước khi so sánh; do đó, “Apple” và “apple” đều đạt điểm 100%.

Có, việc so khớp chạy ở phía máy chủ, nên hai danh sách của bạn được gửi đến công cụ để so sánh. Chúng được xử lý trong bộ nhớ chỉ trong một yêu cầu duy nhất đó và sau đó không được lưu trữ hay ghi nhật ký.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác