Cosin tương tự trả lại trong python là gì?

Một số bài viết gần đây nhất mà tôi đã viết là về sự giống nhau của cosine, đây là một chức năng quan trọng liên quan đến xử lý ngôn ngữ tự nhiên, hay NLP. Lý do là vì tôi gặp phải một cuộc thi trong Kaggle dựa trên NLP, nhưng tôi không thể hoàn thành nó vì tôi không thành thạo lập trình cho thể loại khoa học dữ liệu này. Kết quả là tôi quyết định rằng tôi…

Độ tương tự cosine là một số liệu được sử dụng để đo độ tương tự của hai vectơ. Cụ thể, nó đo lường sự giống nhau về hướng hoặc hướng của các vectơ bỏ qua sự khác biệt về độ lớn hoặc tỷ lệ của chúng. Cả hai vectơ cần phải là một phần của cùng một không gian tích bên trong, nghĩa là chúng phải tạo ra một đại lượng vô hướng thông qua phép nhân tích bên trong. Độ đồng dạng của hai vectơ được đo bằng cosin của góc giữa chúng

Cách tính Độ tương tự Cosine

Chúng tôi định nghĩa độ tương tự cosine về mặt toán học là tích vô hướng của các vectơ chia cho độ lớn của chúng. Ví dụ: nếu chúng ta có hai vectơ A và B, độ tương tự giữa chúng được tính như sau

$$ tương tự(A,B) = cos(\theta) = \frac{A \cdot B}{\. MỘT\. \. b\. } $$

ở đâu

  • $\theta$ là góc giữa các vectơ,
  • $ A \cdot B$ là tích vô hướng giữa A và B và được tính bằng $ A \cdot B = A^T B= \sum_{i =1} ^{n} A_iB_i = A_1B_1 + A_2B_2 +. + A_nB_n$,
  • $\. MỘT\. $ đại diện cho định mức L2 hoặc độ lớn của vectơ được tính là $\. MỘT\. = \sqrt{A_1^2 + A_1^2. A_1^n}$

Độ tương tự có thể nhận giá trị từ -1 đến +1. Các góc nhỏ hơn giữa các vectơ tạo ra các giá trị cosin lớn hơn, cho thấy độ tương tự cosin lớn hơn. Ví dụ

  • Khi hai vectơ có cùng hướng thì góc giữa chúng bằng 0 và độ đồng dạng cosin bằng 1
  • Các vectơ vuông góc có một góc 90 độ giữa chúng và một phép đồng dạng cosin bằng 0
  • Các vectơ đối nhau có góc giữa chúng là 180 độ và độ đồng dạng cosin là -1

Đây là hình minh họa hai vectơ có độ tương tự gần bằng 1, gần bằng 0 và gần bằng -1

Cosin tương tự trả lại trong python là gì?

Các ứng dụng

Độ tương tự cosine có lợi cho các ứng dụng sử dụng dữ liệu thưa thớt, chẳng hạn như tài liệu từ, giao dịch trong dữ liệu thị trường và hệ thống đề xuất vì độ tương tự cosine bỏ qua các kết quả khớp 0-0. Đếm các trận đấu 0-0 trong dữ liệu thưa thớt sẽ làm tăng điểm tương đồng. Một số liệu thường được sử dụng khác bỏ qua các trận đấu 0-0 là Độ tương tự của Jaccard

Cosine Similarity được sử dụng rộng rãi trong các ứng dụng Khoa học dữ liệu và Học máy. Ví dụ bao gồm việc đo lường sự giống nhau của

  • Tài liệu trong xử lý ngôn ngữ tự nhiên
  • Phim, sách, video hoặc người dùng trong hệ thống đề xuất
  • Hình ảnh trong thị giác máy tính

Ví dụ số

Giả sử rằng mục tiêu của chúng ta là tính toán độ tương tự cosine của hai tài liệu được đưa ra dưới đây

  • Tài liệu 1 = 'khóa học khoa học dữ liệu tốt nhất'
  • Tài liệu 2 = 'khoa học dữ liệu phổ biến'

Sau khi tạo bảng từ từ tài liệu, tài liệu có thể được biểu diễn bằng các vectơ sau

khóa học khoa học dữ liệu tốt nhất phổ biếnD11111100D20011011

  • $D1 = [1,1,1,1,1,0,0]$
  • $D2 = [0,0,1,1,0,1,1]$

Sử dụng hai vectơ này, chúng ta có thể tính toán độ tương tự cosin. Đầu tiên, chúng ta tính tích vô hướng của các vectơ

$$ D1 \cdot D2 = 1\times0+1\times0+1\times1+1\times1+1\times0+0\times1+0\times1=2 $$

Thứ hai, chúng tôi tính toán độ lớn của các vectơ. $$ \. Đ1\. = \sqrt {1^2+1^2+1^2+1^2+1^2+0^2+0^2}=\sqrt5 $$

$$ \. Đ2\. = \sqrt {0^2+0^2+1^2+1^2+0^2+1^2+1^2}=\sqrt4 $$

Cuối cùng, độ tương tự cosine có thể được tính bằng cách chia tích vô hướng cho độ lớn $$ similar(D1, D2) =\frac{D1 \cdot D2}{\. Đ1\. \. Đ2\. } = \frac {2}{\sqrt5 \sqrt4} = \frac {2} {\sqrt{20}} = 0. 44721 $$

Góc giữa các vectơ được tính như

$$cos(\theta) =0. 44721 $$ $$\theta = \arccos({0. 44721}) = 63. 435$$

Ví dụ Python

Chúng tôi sẽ sử dụng NumPy để thực hiện các tính toán tương tự cosine

Dưới đây, chúng tôi đã định nghĩa một hàm nhận hai vectơ và trả về độ tương tự cosine. Các bình luận Python nêu chi tiết các bước giống như trong ví dụ số ở trên

import numpy as np

def cosine_similarity(x, y):
    
    # Ensure length of x and y are the same
    if len(x) != len(y) :
        return None
    
    # Compute the dot product between x and y
    dot_product = np.dot(x, y)
    
    # Compute the L2 norms (magnitudes) of x and y
    magnitude_x = np.sqrt(np.sum(x**2)) 
    magnitude_y = np.sqrt(np.sum(y**2))
    
    # Compute the cosine similarity
    cosine_similarity = dot_product / (magnitude_x * magnitude_y)
    
    return cosine_similarity

Learn Data Science with

Cosin tương tự trả lại trong python là gì?

Ví dụ, độ tương tự Cosine sẽ được sử dụng để tìm sự giống nhau giữa hai tài liệu sau

corpus = [  'data science is one of the most important fields of science',
            'this is one of the best data science courses',
            'data scientists analyze data'   ]

Learn Data Science with

Sử dụng

corpus = [  'data science is one of the most important fields of science',
            'this is one of the best data science courses',
            'data scientists analyze data'   ]

Learn Data Science with

0, chúng tôi sẽ vector hóa các tài liệu

from sklearn.feature_extraction.text import CountVectorizer

# Create a matrix to represent the corpus
X = CountVectorizer().fit_transform(corpus).toarray()

print(X)

Learn Data Science with

Ngoài

[[0 0 0 1 1 1 1 1 2 1 2 0 1 0]
 [0 1 1 1 0 0 1 0 1 1 1 0 1 1]
 [1 0 0 2 0 0 0 0 0 0 0 1 0 0]]

Learn Data Science with

Với các vectơ trên, giờ đây chúng ta có thể tính toán độ tương tự cosine giữa các tài liệu văn bản

cos_sim_1_2 = cosine_similarity(X[0, :], X[1, :])
cos_sim_1_3 = cosine_similarity(X[0, :], X[2, :])
cos_sim_2_3 = cosine_similarity(X[1, :], X[2, :])

print('Cosine Similarity between: ')
print('\tDocument 1 and Document 2: ', cos_sim_1_2)
print('\tDocument 1 and Document 3: ', cos_sim_1_3)
print('\tDocument 2 and Document 3: ', cos_sim_2_3)

Learn Data Science with

Ngoài

Cosine Similarity between: 
	Document 1 and Document 2:  0.6885303726590962
	Document 1 and Document 3:  0.21081851067789195
	Document 2 and Document 3:  0.2721655269759087

Learn Data Science with

Ngoài ra, độ tương tự Cosine có thể được tính bằng cách sử dụng các hàm được xác định trong các thư viện Python phổ biến. Ví dụ về các chức năng như vậy có thể được tìm thấy trong ________ 10 (tài liệu) và trong thư viện SciPy chức năng khoảng cách cosine

Đây là một ví dụ về việc sử dụng chức năng của

corpus = [  'data science is one of the most important fields of science',
            'this is one of the best data science courses',
            'data scientists analyze data'   ]

Learn Data Science with

0

from sklearn.metrics.pairwise import cosine_similarity

Learn Data Science with

________số 8

Ngoài

Cosine Similarity between Document 1 and Document 2 is 
 [[1.         0.68853037]
 [0.68853037 1.        ]]

Learn Data Science with

Kết quả giống với hàm đã xác định. Lưu ý rằng đầu vào của hàm

corpus = [  'data science is one of the most important fields of science',
            'this is one of the best data science courses',
            'data scientists analyze data'   ]

Learn Data Science with

0 là một ma trận và đầu ra cũng là một ma trận

Bắt đầu học miễn phí

Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Bài viết gần đây

Ưu đãi khóa học tốt nhất cho Thứ Sáu Đen và Thứ Hai Điện Tử 2022
Hàm sigmoid
chấm sản phẩm
7 khóa học về trí tuệ nhân tạo (AI) tốt nhất năm 2023

7 khóa học về trí tuệ nhân tạo (AI) tốt nhất

Các khóa học hàng đầu bạn có thể tham gia ngay hôm nay để bắt đầu hành trình vào lĩnh vực Trí tuệ nhân tạo

Tìm hiểu thêm


Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Gặp gỡ các tác giả

Cosin tương tự trả lại trong python là gì?

Fatih Karabiber Ph. D. trong Kỹ thuật máy tính, Nhà khoa học dữ liệu

Phó Giáo sư Kỹ thuật Máy tính. Tác giả/đồng tác giả của hơn 30 ấn phẩm tạp chí. Giảng viên các khóa học sau đại học/đại học. Người hướng dẫn luận văn tốt nghiệp. Tư vấn cho các công ty CNTT

Cosine tương tự trả về cái gì?

Độ tương tự cosine đo độ tương tự giữa hai vectơ của không gian tích bên trong . Nó được đo bằng cosin của góc giữa hai vectơ và xác định xem hai vectơ có chỉ theo cùng một hướng hay không. Nó thường được sử dụng để đo độ tương tự của tài liệu trong phân tích văn bản.

Độ tương tự cosin trong Python là gì?

Độ tương tự cosin là số đo độ tương tự giữa hai vectơ khác 0 của một không gian tích bên trong đo độ cosin của góc giữa chúng . Tương tự = (A. B) / (. A. . B. ) trong đó A và B là các vectơ. Cosine tương tự và mô-đun bộ công cụ nltk được sử dụng trong chương trình này.

Tương tự cosine trong Sklearn là gì?

Độ tương tự cosine là số liệu được sử dụng để đo độ tương tự của hai vectơ . Cụ thể, nó đo lường sự giống nhau về hướng hoặc hướng của các vectơ bỏ qua sự khác biệt về độ lớn hoặc tỷ lệ của chúng.

Làm cách nào để sử dụng độ tương tự cosine của sklearn trong Python?

Hướng dẫn. Cách tính độ tương tự Cosine .
Phương pháp 1. Sử dụng các hàm chấm và định mức của numpy
Phương pháp 2. Sử dụng chức năng cosin tích hợp của scipy
Phương pháp 3. Sử dụng sklearn để tính toán ma trận tương tự cosin giữa các vectơ
Sử dụng độ tương tự cosin để phát hiện đạo văn