방법 # 1: 순진한 접근 방식 사용(sum() + zip()
)
함수 sum을 사용하는 순진한 접근 방식을 사용하여 이 특정 작업을 수행할 수 있습니다. 및 zip을 사용하여 두 문자열의 유사성을 계산할 수 있는 유틸리티 함수를 공식화할 수 있습니다.
# Python3 데모 코드
# 행 간의 유사성
# 순진한 방법을 사용하여 (sum() + zip())
# 유사도 계산을 위한 유틸리티 함수
def
유사(str1, str2):
str1
=
str1
<코드 클래스 ="키워드 "> + <코드 클래스 = "s 문자열 "> `` <코드 클래스 ="키워드 "> * <코드 클래스 ="일반 "> ( <코드 클래스 ="기능 "> len <코드 클래스 = "일반"> (str2) <코드 C lass = "keyword"> - len
(str1) )
<코드 클래스 = "일반"> str2 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> str2 <코드 클래스 = "키워드"> + < 코드 클래스 = "문자열"> `` <코드 클래스 = "키워드"> * <코드 클래스 = "일반"> ( <코드 클래스 = "함수"> 렌 코드> <코드 클래스 = "일반"> (str1) <코드 클래스 = " 키워드 "> - <코드 클래스 ="기능 "> len <코드 클래스 ="일반 " > (str2))
반환
합계
(
1
if
나는
<코드 클래스 = "키워드"> = <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> j <코드 클래스 = "keyword"> else <코드 클래스 = "값"> 0
<코드 클래스 s = "keyword"> for i, j
in
zip
(str1, str2))
/
float
(
<코드 클래스 ="기능 "> 렌 <코드 클래스 ="일반 "> (str1))
<코드 클래스 =" 정의되지 않은 공백 "> # 문자열 초기화
test_string1
=
` Geeksforgeeks`
test_string2
<코드 클래스 = "키워드 " > = `Geeks4geeks`
# 순진한 방법 사용(sum() + zip())
# 줄 간 유사성
<코드 클래스 = "일반 "> 해상도 <코드 클래스 ="키워드 "> = 유사(test_string1, test_string2)
# 결과 출력
인쇄
(
"두 문자열 간의 유사성은 다음과 같습니다."
<코드 클래스 = "키워드"> + <코드 클래스 = " 기능 "> str <코드 클래스 ="일반 "> (res))
출력:
두 문자열 간의 유사성은 다음과 같습니다. 0.38461538461538464
방법 # 2: 사용 SequenceMatcher.ratio ()
이 특정 작업을 수행하는 데 도움이 되는 기본 제공 메서드가 있으며 이 특정 작업은 특별한 접근 방식이 필요하지 않으므로 수행하는 것이 좋습니다. 작업을 보다 효율적으로 수행하기 위해 내장된 구문을 사용합니다. / p>
# Python3 데모 코드
# 줄 간 유사성
# SequenceMatcher.ratio 사용 ()
difflib
가져오기
code> SequenceMatcher
# 유사도 계산을 위한 유틸리티 함수
def
유사(str1, str2):
return
SequenceMatcher (
없음
, str1, str2) .ratio ()
# 라인 초기화
test_string1
=
<클래스 코드 = "문자열"> `Geeksforgeeks`
test_string2
=
<코드 클래스 = " string"> `괴짜`
# SequenceMatcher.ratio 사용( )
# 행 간의 유사성
res
=
유사(test_string1, test_string2)
# 결과 인쇄
인쇄
(
"두 문자열 간의 유사성은 다음과 같습니다."
+
str
(res ))
출력:
두 문자열 간의 유사성은 다음과 같습니다. 0.5555555555555556
Shop
Latest questions