제품 검색에서 오타를 감지하고 가능한 수정을 제안하는 방법은 무엇입니까?
-
20-08-2019 - |
문제
제품 이름의 매우 큰 데이터베이스가 주어지면 사용자 검색에서 가능한 오타를 어떻게 감지하고 가능한 수정을 제안 하시겠습니까 (Google이 제시하는 방식과 같은 경우)?
예를 들어
사용자는 "Fork Handels"를 입력하고 '검색'을 누릅니다.
그들은 돌아옵니다
"결과 없음. '포크 핸들'을 의미 했습니까?"
해결책
이 문제에 대한 몇 가지 접근법이 있습니다.
- 테이블을 유지합니다 가장 인기있는 철자는 데이터베이스에서. 일반적인 철자가 필요한 경우 : 여기)
- 알고리즘을 기반으로합니다 거리를 편집합니다: 정보 이론과 컴퓨터 과학에서 두 문자의 문자열 사이의 편집 거리는 그 중 하나를 다른 문자로 변환하는 데 필요한 작업 수입니다. 이 메트릭을 정의하거나 계산하기위한 여러 가지 알고리즘이 있습니다. 읽기 Levenshtein 알고리즘의 Wikipedia 기사 예를 들어.
- 전체 텍스트 검색에 Lucene을 사용하는 경우 여기에 좋은 기사가 있습니다 "당신은"기능을 구현하는 방법을 보여줍니다.
- 이 기능을 간단한 주문 수정으로 본다면 여러 언어로 된 멋진 매우 짧은 구현이 있습니다. 철자 수정 사항을 작성하는 방법
제휴하지 않습니다 StackOverflow