Tôi cần viết mã giải pháp cho một yêu cầu nhất định và tôi muốn biết liệu có ai quen thuộc với thư viện có sẵn có thể đạt được hay không. thực hành tốt nhất. Mô tả:Thuật toán để so sánh các từ (không theo thứ tự abc)
Người dùng nhập một từ được cho là một trong nhiều tùy chọn cố định (tôi giữ các tùy chọn trong danh sách). Tôi biết đầu vào phải nằm trong một thành viên trong danh sách, nhưng vì nó là đầu vào của người dùng, anh/cô ấy có thể đã phạm sai lầm. Tôi đang tìm một thuật toán sẽ cho tôi biết từ có thể xảy ra nhất mà người dùng có ý nghĩa là gì. Tôi không có bất kỳ ngữ cảnh nào và tôi không thể buộc người dùng chọn từ danh sách (nghĩa là anh ấy phải có thể nhập từ một cách tự do và thủ công).
Ví dụ: giả sử danh sách chứa các từ "nước", "quý", "bia", "củ cải", "địa ngục", "xin chào" và "aardvark".
Các giải pháp phải giải thích cho loại lỗi khác nhau "bình thường":
- lỗi chính tả Tốc độ (ví dụ như tăng gấp đôi nhân vật, thả nhân vật vv)
- Bàn phím liền kề ký tự lỗi chính tả (ví dụ: "qater" cho “nước “)
- lỗi chính tả tiếng Anh không có nguồn gốc (ví dụ: "Khu phố" cho‘quý’)
- Và vân vân ...
Giải pháp rõ ràng là so sánh từng chữ cái và gửi "trọng số hình phạt" cho mỗi chữ cái khác nhau, chữ cái phụ và thư còn thiếu. Nhưng giải pháp này bỏ qua hàng nghìn lỗi "chuẩn" tôi chắc chắn được liệt kê ở đâu đó. Tôi chắc chắn có những phỏng đoán ở đó xử lý tất cả các trường hợp, cả cụ thể và chung chung, có thể sử dụng một cơ sở dữ liệu lớn không phù hợp tiêu chuẩn (tôi mở cho các giải pháp dữ liệu nặng).
Tôi đang viết mã bằng Python nhưng tôi coi câu hỏi này là không thuyết phục về ngôn ngữ.
Bất kỳ đề xuất/suy nghĩ nào?