2012-05-01 2 views
11

문자열 목록이 있는데, 그 중 일부는 이전 릴리스 이후 수정되었습니다. 변경 사항 중 일부는 사소한 것입니다 (간격, 한 단어 씩 제외 등). "사소한"차이점이있는 문자열을 감지하여 가능한 경우 이전 번역을 사용하려고합니다.유사하지만 동일하지 않은 문자열을 검색하는 루틴이 필요합니다.

"사소한 차이"란 무엇을 의미합니까? 데이터베이스 작업을 시작할 때까지는 알 수 없습니다.

두 문자열이 비슷하지만 동일하지 않은 경우를 나타내는 튜너 블 루틴을 아십니까? 서로 다른 두 개의 문자열을 나타내는 숫자를 반환하는 루틴은 무엇입니까?

+2

비슷한 문자열의 등급을 매기는 방법이 필요합니다. 수백만 가지 방법이 있습니다. 여기 스레드는, 다양한 답변을 참조하십시오 : http://stackoverflow.com/questions/4323977/string-similarity-score-hash –

+0

위 또는 아래 링크에없는 새로운 것을 발견하면 확실히 멋질 것입니다. 다시 와서 당신이 한 일을 말해주십시오. –

답변

8

이러한 알고리즘이 많이 있습니다. 키워드는 과 일치하는 퍼지 문자열입니다.

잘 알려진 것은 Levenshtein distance입니다. 이를 통해 한 문자열을 다른 문자열로 변환하는 데 필요한 "변경"의 수를 계산할 수 있으므로 문자열이 얼마나 유사한 지 추정 할 수 있습니다.

이 질문도 참조하십시오 : How to search for similar words for Delphi.

+0

감사합니다. 완전한! –

+6

[how-do-you-implement-levenshtein-distance-in-delphi] (http://stackoverflow.com/q/54797/576719)도 참고하십시오. –

관련 문제