Python | Metryki podobieństwa ciągów

| | |

Metoda nr 1: Używając naiwnego podejścia (sum () + zip () )
Możemy wykonać to konkretne zadanie przy użyciu naiwnego podejścia przy użyciu funkcji sum i zip, możemy sformułować funkcję narzędziową, która może obliczyć podobieństwo obu ciągów.


# Kod demonstracyjny Python3
# podobieństwo między wierszami
# przy użyciu metody naiwnej (sum() + zip())


# Funkcja narzędziowa do obliczania podobieństwa

def podobne (str1, str2):

str1 = str1 + `` * ( len (str2) - len (str1) )

str2 = str2 + `` * ( (str1) - len (str2))

return sum ( 1 if i = = j else 0

for i, j in zip (str1, str2)) / float ( len (str1))


# Inicjowanie ciągów

test_string1 = ` Geeksforgeeks`

test_string2 = `Geeks4geeks`


# przy użyciu metody naiwnej (sum () + zip ())
# podobieństwo między wierszami

res = podobne (test_string1, test_string2)


# wynik wydruku

print ( "Podobieństwo między dwoma ciągami znaków to:" + str (res))

Dane wyjściowe:

Podobieństwo między 2 ciągami znaków to: 0.38461538461538464 

Metoda nr 2: Używanie SequenceMatcher.ratio ()
Istnieje wbudowana metoda, która pomaga w wykonaniu tego konkretnego zadania i zaleca się wykonanie tego konkretnego zadania, ponieważ nie wymaga ono specjalnego podejścia, ale używa wbudowanych konstrukcji, aby wydajniej wykonać zadanie. / p>

# kod demonstracyjny Python3
# podobieństwo między wierszami
# przy użyciu SequenceMatcher.ratio ()

z difflib import SequenceMatcher


# Funkcja narzędziowa do obliczania podobieństwa

def podobne (str1, str2):

return SequenceMatcher ( Brak , str1, str2) .ratio ()


# Inicjalizacja wiersza

test_string1 = `Geeksforgeeks`

test_string2 = `Geeks`


# using SequenceMatcher.ratio ( )
# podobieństwo między wierszami

res = podobne (test_string1, test_string2)


# wynik wydruku

print ( "Podobieństwo między dwoma ciągami znaków to:" + str (odp. ))

Dane wyjściowe:

Podobieństwo między 2 ciągami znaków to: 0.555555555555556 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method