7

나는 공항 이름 목록을 가지고 있으며 사용자는 더 많은 처리를 위해 공항 이름을 하나씩 입력 할 수 있습니다.맞춤법이 틀린 단어 감지

철자가 틀린 이름을 어떻게 처리하고 제안 목록을 제시 하시겠습니까?

+0

http://en.wikipedia.org/wiki/Fuzzy_string_searching –

답변

7

주어진 사용자 입력에 대해 올바른 이름을 찾으려면 Levenshtein distances을 찾으십시오.

+3

Levenshtein 거리는 계산하기에 꽤 비쌉니다. O (n^2), 사전의 모든 단어에 대한 Levenshtein 거리를 계산하는 것은 비 초보입니다. – Wedge

+3

이 경우 사전은 공항의 목록 일뿐입니다. 전세계에는 주목할만한 몇백 개의 공항이 있습니다. – SingleNegationElimination

+0

@Wedge 사전을 해싱하는 것이 반드시 시간 복잡성을 줄이는 것은 아니지만 상당한 도움이 될 수 있습니다. – Ryan

0

사용자가 직접 입력하는 대신 공항 이름 목록에서 선택하도록하는 것이 더 좋을 수 있습니다. 그런 실수는 없습니다.

0

즉시 도움이되지 않지만 오타를 추적하고 정확한 이름을 입력 할 때 마지막으로 입력 한 이름을 확인할 수 있습니다. 그렇게하면 가장 일반적인 오타를 추적하고 최상의 옵션을 제공 할 수 있습니다.

1

코드에서 맞춤법 검사를 사용하십시오. 단어 목록에는 올바른 철자가 포함되어야합니다.

이렇게하는 것은 좋지 않습니다. 자동 완성 옵션을 제공하는 컨트롤이나 다른 사람이 제안한 드롭 다운 메뉴 중 하나를 선택해야합니다.

기술이 지원하는 경우 AJAX를 사용하십시오.

0

자바 스크립트 자동 완성 기능이있는 입력 상자를 사용하면 Kevin의 제안에 더해 두 세계 모두에서 가장 좋습니다. 같은 jquery autocomplete

편집과 같이 나를 덴마크어 이길 :(

+0

downvote의 이유는 무엇입니까? – Jayrox

+0

나는 downvote를 제거하려했지만 시스템이 이것을 금지했다. 주된 이유는 : 하나님을 위해서 모든 사람이 jquery/JavaScript/HTML로 글을 쓰는 것은 아닙니다. 언어 불가 지론 인, 언어 불가 지론. –

+0

사람들은 간단한 작업을위한 간단한 해결책을 원합니다. 간단한 작업을위한 간단한 솔루션을 제공했습니다. 모든 문제에는 해결할 수있는 여러 경로가 있습니다. – Jayrox

0

사용할 수있는 기존의 맞춤법 검사 라이브러리가있을 수 있습니다 코드는 물론 이런 종류의 작업을 수행 비 사소한하기 위해 당신이 원하는 경우.. 이 직접 쓰기, 당신은 dictionary trie's보고 할 수 있습니다. 다만 가능한 오류 단어와 당신이 더 큰 성능을 캐시 할 수 자신의 수정 (여기 implementation in Python의)의 거대한 목록을 생성하는 것입니다 작동 할 수

한 가지 방법입니다.

1

나는 당신이 요구 한 것이 아니라 올바른 공항을 얻는 것이 중요하다는 것을 알고 있습니다. 예약 티켓) 그러면 올바른 단계가 있는지 확인하는 단계가 필요할 수 있습니다. 예를 들어 wrong Sydney 티켓을받는 사람들이 있습니다.