이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 56998|회답: 2

[출처] 문자열 유사성 알고리즘을 C#으로 구현하세요

[링크 복사]
게시됨 2019. 4. 23. 오후 12:59:18 | | | |
최근에는 사용자가 입력한 문자열과 시스템이 얻은 문자열을 비교하는 문제가 생겼습니다. 오류가 크지 않으면 시스템은 요구사항을 충족한다고 판단하여 임계값을 설정하는 것이 최선입니다.
캡차(CAPTCHA) 인식을 할 때는 문자 코드의 유사성을 비교하고 "편집 거리 알고리즘"을 사용해 원리와 C# 구현을 기록해야 합니다.

바이두 백과사전에 따르면:

편집 거리(Edit distance), 또는 레벤슈타인 거리(Levenshtein distance, 편집 거리라고도 함)는 두 문자열 사이에서 다른 문자열로 전환하는 데 필요한 최소 편집 횟수이며, 거리가 길수록 차이가 커집니다. 허가된 편집 작업에는 한 문자를 다른 문자로 교체하거나, 문자를 삽입하고, 제거하는 작업이 포함됩니다.

예를 들어, 'kitten'이라는 단어를 'sitting'으로 바꿔보세요:

시텐 (K→s)

싯틴 (E→I)

앉아 (→g)

러시아 과학자 블라디미르 레벤슈타인은 1965년에 이 개념을 제안했다. 그래서 레벤슈타인 거리라는 이름이 붙었습니다.

예를 들어

만약 str1="ivan", str2="ivan"이라면, 0이 되도록 계산됩니다. 개종하지 않았다. 유사도=1-0/Math.Max(str1.length, str2.length)=1
만약 str1="ivan1", str2="ivan2"라면, 이 값은 1로 계산된다. str1의 "1"은 "2"로 변환되어 문자를 변환하므로 거리는 1, 유사도 = 1-1/Math. Max(str1.length, str2.length) = 0.8

적용 방법:

  • DNA 분석
  • 맞춤법 검사
  • 음성 인식
  • 표절 탐지



이 알고리즘은 C#으로 구현됩니다:

테스트 코드:






검사 결과에 따르면,우주또는구두점줄 위치여러 도시유사성에 영향을 미치는 결과따라서 문자열 인식을 비교할 때는 알고리즘을 호출하기 전에 문자열 내 모든 공간과 특수 기호를 제거하는 것이 권장됩니다

리소스:하이퍼링크 로그인이 보입니다.

GitHub에는 C# 문자열 유사도 비교 라이브러리도 있습니다

FuzzyString은 제가 일상 업무를 위해 개발된 라이브러리로, 서로 다른 그리드 모델 간의 명명 규칙을 조정하기 위해 만들어졌습니다. 전력 시스템별 코드를 제거하고, 두 문자열 간의 근사적인 등식을 결정하기 위해 효과적으로 문자열 확장으로 사용할 수 있는 코드를 조합했습니다. 여기서 사용된 모든 알고리즘은 온라인 소스에서 추출하여 C#으로 변환한 후 이 라이브러리에 컴파일되었습니다. 저는 . NET / C#. 프로젝트에 *.dll을 추가하면 이 확장과 ApproximatelyEquals() 확장 하에 개별 확장에 접근할 수 있습니다.



주소:하이퍼링크 로그인이 보입니다.

NuGet 설치:

이 프로젝트에 포함된 알고리즘:

  • 해밍 거리
  • 자카르 거리
  • 자로 거리
  • 야로-윙클러 거리
  • 레벤슈타인 거리
  • 가장 긴 대중
  • 부분 수열의 가장 긴 공통 부분문자열
  • 중첩 계수
  • 래트클리프-오버스헬프 유사성
  • 소렌센-다이스 거리
  • 타니모토 계수



사용법:


결과:



(끝)




이전의:소프트웨어 테스트의 예술 3판 pdf
다음:"데이터 분석가의 여덟 가지 역량"은 전체 과정을 암호화하지 않습니다
게시됨 2019. 5. 6. 오후 1:11:34 |
지식이 다가오고 있어
게시됨 2021. 9. 7. 오후 3:01:05 |
답글 작성 후에 코드를 볼 수 있나요?
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com