2014-09-14 2 views
1

사전에서 빠른 퍼지 문자열 검색을위한 알고리즘 (및 C#의 구현)을 찾고 있습니다. 지금까지 Levenshtein Automata라는 메소드를 발견했습니다 (here 설명). 그것은 내가 필요로하는 것에 매우 simular하게 보인다. 그러나 나는 다른 오류에 대해 다른 가중치를주고 싶다. sc을 혼동하는 것이 일반적이므로 이러한 오류의 무게는 작습니다. 또한 s ->ph과 같은 여러 글자 오류를 고려하는 것도 좋을 것입니다. 거기에 그런 것들을 설명하는 알고리즘이 있습니까?가중치가있는 Levenshten automata

답변

1

Levenshtein automaton은 소스 문자열 (즉, 오토 마톤을 구성하는 데 사용 된 문자열)에서 특정 편집 거리 내에있는 대상 문자열을 찾습니다. 이것은 초고속이지만 단점은 편집 비용을 사용자 정의 할 수 없다는 것입니다. (짧은 문자열의 Levenshtein 자동 완성을 다른 편집 비용으로 그림화하려는 경우가 있습니다 ... 짧은 문자열의 경우에도 지저분 할 것입니다).

맞춤 편집 비용을 정의 할 수있는 잘 알려진 동적 프로그래밍 방식 (here)을 고려해야 할 것입니다.

+0

답변 해 주셔서 감사합니다. 내가 제안한 알고리즘을 사용하려고했지만 느린 것 같습니다. trie로 사전 작성된 사전과 함께 사용할 때도 마찬가지입니다. – StuffHappens

+0

또는 Levenshtein 자동 로봇을 사용하여 일부 단어 (예 : 편집 거리가 3 이상인 단어)를 필터링 한 다음 동적 프로그래밍 접근 방식을 사용하여 나머지를 처리 ​​할 수 ​​있습니다. – Pierre

+0

나는 그것을 생각할 것입니다. – StuffHappens

관련 문제