Tôi đang cố gắng dọn sạch một cơ sở dữ liệu, trong nhiều năm, đã có nhiều bản ghi trùng lặp, với các tên hơi khác nhau. Ví dụ, trong bảng công ty, có những cái tên như "Some Company Limited" và "MỘT SỐ CÔNG TY TNHH!". Kế hoạch của tôi là xuất các bảng vi phạm thành R, chuyển đổi tên thành chữ thường, thay thế các từ đồng nghĩa chung (như "limited" -> "ltd"), loại bỏ các ký tự không phải chữ cái và sau đó sử dụng agrep
để xem giống.Các kỹ thuật tìm kiếm các bản ghi trùng lặp gần
Vấn đề đầu tiên của tôi là agrep
chỉ chấp nhận một mẫu duy nhất để khớp và lặp lại mọi tên công ty để khớp với tên công ty khác chậm. (Một số bàn sẽ được làm sạch sẽ có hàng chục, có thể là hàng trăm nghìn tên để kiểm tra.)
Tôi đã xem qua gói tm
(JSS article) và có vẻ rất mạnh mẽ nhưng hướng tới phân tích các khối lớn văn bản, chứ không chỉ là tên.
Tôi có một số câu hỏi liên quan:
là thích hợp
tm
gói cho loại nhiệm vụ?Có giải pháp thay thế nhanh hơn cho
agrep
không? (Said chức năng sử dụng Levenshtein chỉnh sửa khoảng cách đó là giai thoại chậm.)Có các công cụ thích hợp khác trong R, ngoài
agrep
vàtm
?Tôi có nên làm điều này trong R hay không, hoặc loại điều này có phải là được thực hiện trực tiếp trong cơ sở dữ liệu không? (Đây là một cơ sở dữ liệu truy cập, vì vậy tôi muốn thay vì tránh chạm vào nó nếu có thể.)
Liên quan đến [Làm thế nào để đo lường sự tương đồng giữa các chuỗi?] (http://stackoverflow.com/questions/6044112/r-how-to-measure-similarity-between-strings) –