Hướng dẫn how do you find the cosine similarity between two strings in python? - làm thế nào để bạn tìm thấy sự giống nhau cosine giữa hai chuỗi trong python?

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về các số liệu tương tự của các chuỗi bằng Python.Similarity metrics of strings using Python.

Nó được sử dụng trong nhiều lĩnh vực khoa học máy tính như xử lý ngôn ngữ tự nhiên, học máy và lĩnh vực phát triển web. Trước, chúng ta sẽ tìm hiểu về cách tìm thấy sự tương đồng giữa hai câu sau đó chúng ta sẽ chuyển sang tạo ra các số liệu tương tự của nhiều chuỗi Sử dụng các phương thức python.different cho nó mà chúng ta sẽ khám phá trong hướng dẫn này là:
First, we’ll learn about how to find a similarity between two sentences then we’ll move towards generating similarity metrics of multiple strings using Python.
Different methods for it that we’ll explore in this tutorial are:

  1. Phương pháp khoảng cách Levenshtein
  2. Phương thức tổng và zip
  3. Phương thức trình tự
  4. Phương pháp tương tự cosine

Sử dụng phương pháp khoảng cách Levenshtein trong Python

Khoảng cách levenshtein giữa hai từ được định nghĩa là số lượng chỉnh sửa đơn lẻ tối thiểu như chèn, xóa hoặc thay thế cần thiết để thay đổi một từ sang từ khác.
First, we’ll install Levenshtein using a command

pip install python-Levenshtein

Nhập nó bằng lệnh

import Levenshtein

Bây giờ, chúng tôi sẽ sử dụng phương thức khoảng cách để tính khoảng cách Levenshtein như sau:Levenshtein distance as follows:

Levenshtein.distance["Hello World", "Hllo World"]

Đầu ra tương ứng của nó như sau:

1

Vì chúng ta phải thực hiện một thao tác chèn duy nhất để chèn ‘E, trong từ hllo để làm cho nó xin chào.

Sử dụng phương thức tổng và zip trong Python

Phương pháp ZIP được sử dụng để ánh xạ cùng một chỉ mục của các thùng chứa khác nhau để chúng ta có thể sử dụng chúng như một thực thể duy nhất. Trước khi, chúng ta sẽ khởi tạo hai chuỗi và làm cho độ dài của chúng bằng nhau.is used to map the same index of different containers so that we can use them as a single entity.
First, we’ll initialize two strings and make their length equal.

s1 = 'Hello World'
s2 = 'Hello Word'
s1 = s1 + ' ' * [len[s2] - len[s1]] 
s2 = s2 + ' ' * [len[s1] - len[s2]]

Bây giờ, khởi tạo tổng bằng 0,once đã thực hiện thao tác zip, chúng tôi sẽ kiểm tra xem char của chỉ số cụ thể trong cả hai chuỗi có giống nhau hay không thì không tăng thêm 1. Cuối cùng, chia tổng cho độ dài của chuỗi đầu tiên và in kết quả.
Once performed zip operation, we’ll check if char of particular index in both strings are the same then increase sum by 1 else not. Finally, divide the sum by length of the first string and print the result.

sum = 0
for i,j in zip[s1, s2]:
  if i==j:
    sum += 1
  else:
    sum += 0
sum = sum/float[len[s1]]

print["Similarity between two strings is: " + str[sum] ]

Đầu ra tương ứng của nó như sau:

Similarity between two strings is: 0.8181818181818182

Vì chúng ta phải thực hiện một thao tác chèn duy nhất để chèn ‘E, trong từ hllo để làm cho nó xin chào.

Sử dụng phương thức tổng và zip trong Python
First, we’ll import SequenceMatcher using a command

from difflib import SequenceMatcher

Phương pháp ZIP được sử dụng để ánh xạ cùng một chỉ mục của các thùng chứa khác nhau để chúng ta có thể sử dụng chúng như một thực thể duy nhất. Trước khi, chúng ta sẽ khởi tạo hai chuỗi và làm cho độ dài của chúng bằng nhau.

s1 = "I am fine"
s2 = "I are fine"
sim = SequenceMatcher[None, s1, s2].ratio[]
print["Similarity between two strings is: " + str[sim] ]

Đầu ra tương ứng của nó như sau:

Similarity between two strings is: 0.8421052631578947

Vì chúng ta phải thực hiện một thao tác chèn duy nhất để chèn ‘E, trong từ hllo để làm cho nó xin chào.Cosine similarity in Python

Sử dụng phương thức tổng và zip trong Python

Phương pháp ZIP được sử dụng để ánh xạ cùng một chỉ mục của các thùng chứa khác nhau để chúng ta có thể sử dụng chúng như một thực thể duy nhất. Trước khi, chúng ta sẽ khởi tạo hai chuỗi và làm cho độ dài của chúng bằng nhau.string module as  ‘Hello!’ and ‘Hello’  are the same. Strings will be converted to numerical vectors using CountVectorizer. The most frequent words which give no meaning like ‘I’, ‘you’, ‘myself’, etc. will also be removed, these are known as stopwords.

Bây giờ, khởi tạo tổng bằng 0,once đã thực hiện thao tác zip, chúng tôi sẽ kiểm tra xem char của chỉ số cụ thể trong cả hai chuỗi có giống nhau hay không thì không tăng thêm 1. Cuối cùng, chia tổng cho độ dài của chuỗi đầu tiên và in kết quả.

import Levenshtein
0

Sử dụng phương thức sequenCeMatcher.ratio [] trong Python

import Levenshtein
1

Đây là một phương pháp được xây dựng trong đó chúng ta phải vượt qua cả hai chuỗi và nó sẽ trả về sự tương đồng giữa hai.first, chúng ta sẽ nhập sequencematcher bằng lệnh bằng lệnh

import Levenshtein
2

Bây giờ, chúng tôi sẽ khởi tạo hai chuỗi và chuyển nó sang phương thức Sequencematcher và cuối cùng in kết quả.

import Levenshtein
3

Sử dụng sự tương đồng về cosine trong Python

import Levenshtein
4

Chúng tôi sẽ xây dựng một không gian vectơ từ tất cả các câu đầu vào. Số lượng kích thước trong không gian vectơ này sẽ giống như số lượng từ duy nhất trong tất cả các câu kết hợp. Sau đó, chúng tôi sẽ tính toán góc giữa các vectơ này.

import Levenshtein
5

Chúng tôi sẽ xóa các dấu chấm câu từ chuỗi bằng mô -đun chuỗi AS & NBSP; Xin chào !, Và ‘Xin chào & NBSP; giống nhau. Chuỗi sẽ được chuyển đổi thành các vectơ số bằng cách sử dụng CountVectorizer. Những từ thường xuyên nhất không có ý nghĩa như ‘Tôi,’ bạn, ’bản thân tôi, v.v. cũng sẽ bị xóa, chúng được gọi là từ dừng.

Vì vậy, trước tiên, chúng tôi nhập các gói sau bằng lệnh

Để sử dụng stopwords, trước tiên, hãy tải xuống bằng lệnh

import Levenshtein
7

Đầu ra tương ứng của nó như sau:

import Levenshtein
8

Vì chúng ta phải thực hiện một thao tác chèn duy nhất để chèn ‘E, trong từ hllo để làm cho nó xin chào.
I hope you enjoyed this tutorial.

Làm thế nào để bạn tìm thấy sự tương đồng cosine trong Python?

Chúng tôi sử dụng công thức dưới đây để tính toán độ tương tự cosine. Trong đó A và B là vectơ: A.B là sản phẩm DOT của A và B: Nó được tính là tổng sản phẩm nguyên tố của A và B. || A || là định mức L2 của A: Nó được tính là căn bậc hai của tổng bình phương của các phần tử của vectơ A.A.B is dot product of A and B: It is computed as sum of element-wise product of A and B. ||A|| is L2 norm of A: It is computed as square root of the sum of squares of elements of the vector A.

Làm thế nào để bạn tìm thấy sự tương đồng giữa hai chuỗi?

Khoảng cách Hamming, được đặt theo tên của nhà toán học người Mỹ, là thuật toán đơn giản nhất để tính toán độ tương tự chuỗi.Nó kiểm tra sự giống nhau bằng cách so sánh các thay đổi về số lượng vị trí giữa hai chuỗi., named after the American mathematician, is the simplest algorithm for calculating string similarity. It checks the similarity by comparing the changes in the number of positions between the two strings.

Làm thế nào để bạn tìm thấy sự tương đồng cosine của hai tài liệu trong NLP?

Về mặt toán học, bạn có thể tính toán độ tương tự cosin bằng cách lấy sản phẩm chấm giữa các nhúng và chia nó bằng phép nhân của các chỉ tiêu nhúng, như bạn có thể thấy trong hình ảnh bên dưới.Trong Python, bạn có thể sử dụng hàm cosine_similarity từ gói sklearn để tính toán độ tương tự cho bạn.taking the dot product between the embeddings and dividing it by the multiplication of the embeddings norms, as you can see in the image below. In python, you can use the cosine_similarity function from the sklearn package to calculate the similarity for you.

Làm thế nào để bạn tìm thấy sự giống nhau của cosin?

Công thức tính toán tương tự cosin là: cos [x, y] = x ...
Độ tương tự cosin giữa hai vectơ được đo trong '' '..
Nếu θ = 0 °, các vectơ 'x' và 'y' chồng chéo, do đó chứng minh chúng giống nhau ..
Nếu θ = 90 °, các vectơ 'x' và 'y' không giống nhau ..

Bài Viết Liên Quan

Chủ Đề