Tôi đang làm việc trên một chương trình khảo sát nơi mọi người sẽ được xem xét quảng cáo lần đầu tiên họ điền vào bản khảo sát. Trong rất nhiều kịch bản, cách duy nhất chúng ta có thể ngăn chặn mọi người lừa dối hệ thống và nhận được một chương trình khuyến mãi mà họ không xứng đáng là kiểm tra các chuỗi địa chỉ đường phố với nhau.để kiểm tra địa chỉ cho phù hợp?
Tôi đã xem xét việc sử dụng khoảng cách levenshtein để cho tôi một số để đo lường sự tương đồng và xem xét những con số dưới một ngưỡng nhất định trùng lặp.
Tuy nhiên, nếu ai đó đang tìm cách chơi trò chơi hệ thống, họ có thể dễ dàng viết "S 5th St" thay vì "South Fifth Street" và levenshtein sẽ coi những chuỗi đó rất khác nhau. Vì vậy, sau đó tôi đã suy nghĩ để chuyển đổi tất cả các chuỗi thành một 'mẫu địa chỉ tiêu chuẩn' tức là 'Nam' trở thành 's', 'Thứ năm' trở thành '5', v.v.
Sau đó, tôi đã nghĩ điều này là vô vọng, và quá nhiều nỗ lực để làm cho nó hoạt động mạnh mẽ. Là nó?
Tôi đang làm việc với PHP/MySql, vì vậy tôi có những hạn chế vốn có trong hệ thống đó.
Nếu thay vì "S. 5th St." ai đó vào "S. 4th St."? Điều này không thể được sử dụng để chơi game cho hệ thống (giả sử bạn đang gửi thư cho các công cụ quảng cáo), nhưng nó có thể loại bỏ những người sống chung một khối. Chỉ cần một trường hợp cạnh để kiểm tra. –
@Bill kịch bản đó không phải là một vấn đề bởi vì sau đó họ sẽ không nhận được xem xét quảng cáo của họ. Trừ khi họ đang ở trong cahoots với những người cư trú trên địa chỉ nhà đó trên đường phố thứ 4, nhưng chỉ có rất nhiều hộ gia đình họ có thể âm mưu với. Đó là tự giới hạn, tôi nghĩ :) – user151841
@ user15841: Không, ý tôi là sao nếu hai người đó đăng ký hợp pháp độc lập với nhau? Thuật toán của bạn cần phải đủ thông minh để thấy sự khác biệt giữa hai địa chỉ đó, nhưng cũng đủ thông minh để thấy các ví dụ ban đầu mà bạn đã cung cấp giống nhau. –