사용자 텍스트 입력을 기반으로 목록에서 가장 가능한 옵션을 선택하는 방법


11

사용자 텍스트 입력을 기반으로 옵션을 선택해야하는 OCR 응용 프로그램을 작업 중입니다.

Ex:
Available Options:
["python", "ruby", "java", "clojure", "haskell"]

Input: kava
Output: java

Input: ruby
Output: ruby

Input: clujuro
Output: clojure

etc.. 

내 응용 프로그램은 파이썬 기반 이며이 문제를 해결하기 위해 이미 알고리즘이 있습니까?


1
지금은 교정 할 가치가 없지만 IMO보다 적절한 제목은 "줄 사이의 거리 (차이)를 결정하는 방법"입니다.
Jeff Welling

3
@Jeff : 그리고 나는이 질문을 절대 찾지 못할 것입니다. 왜냐하면 내가 필요한 것을 "거리 차이"라고 부를지도 모른다는 생각이 없기 때문입니다. 그리고 이것이 여러분이 필요한 솔루션을 넣지 않는 유일한 이유는 아닙니다. 질문. 사람들이 실제로 겪고있는 문제에 대한 대체 해결책을 제안하지 못할 수도 있습니다. 적절한 예 : loussight 's answer.
Marjan Venema

1
내 요점은 당신 이니까이었다 수단 "어떻게 가장 가능성을 ... 선택"하지만 누가 "문자열 사이의 거리"인식 할 것이다 모르는 사람으로부터 답변을 유치 할 수있는보다 정확한 제목을 사용하여 알고 있지만, 각자 자신에게. 단지 제안 일뿐입니다. 나는 당신이 무엇을 의미하는지 알지 못했고 질문으로 인해 거의 클릭하지 않았습니다.
Jeff Welling

답변:


10

이것은 " 근사 문자열 일치 "범주의 알고리즘에 의해 수행됩니다 . 두 줄을 비교하는 일반적인 방법을 레 벤슈 테인 거리 라고합니다 . 사용할 수있는 파이썬 구현있어 여기가 .

기본적으로 입력을 가능한 출력과 비교하고 원하는 출력까지의 거리가 가장 작은 것을 선택합니다.

Wikipedia 기사에는 더 구체적인 것이 필요한 경우 시도 할 수있는 다양한 알고리즘이 언급되어 있습니다.


루비에서도 비슷한 문제가 있었으며 이것이 내가 어떻게 해결했는지입니다.
Jeff Welling

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.