2010-02-21 3 views
2

내 요구 사항에 맞는 문자열 일치 알고리즘을 찾는 데 많은 어려움을 겪고 있습니다.커다란 축약되지 않은 문자열 목록에서 축약어를 빨리 찾을 수있는 문자열 검색 알고리즘이 있습니까?

나는 임의의 약어와 일치해야하는 요약되지 않은 형식의 매우 큰 문자열 데이터베이스를 보유하고 있습니다. 문자 사이에 문자가없는 실제 하위 문자열 인 문자열도 일치해야하며 높은 점수가 있어야합니다.

예 : 일치하는 단어가 "다운로드"하고 "아래로", "ownl", "dl"을 검색 한 경우 "down"에 대해 가장 일치하는 점수를 얻고 "ownl "그리고"dl ".

알고리즘은 속도와 많은 수의 문자열을 검색 할 수 있도록 최적화되어야하며 일치하는 항목 문자열 목록을 가져올 수 있어야합니다 ("다운로드"와 "업로드" 데이터베이스에 "load"를 검색하면 둘 다 반환됩니다). 메모리는 여전히 중요하지만 속도만큼 중요하지는 않습니다.

아이디어가 있으십니까? 나는이 알고리즘 중 일부에 대해 많은 연구를 해왔지만 이러한 모든 조건을 제외하고는 약어를 터치하는 것을 발견하지 못했습니다!

답변

0

Peter Norvig의 spell checker을이 문제에 대해 어떤 방식으로 적용 할 수 있는지 궁금합니다.

나는 운동하기 시작하지 않은 스트레칭이지만, 알아야 할 가치가있는 우아한 해결책입니다.