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
Learn Data Science with
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
0, chúng tôi sẽ vector hóa các tài liệucorpus = [ '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
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
0corpus = [ '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
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
0 là một ma trận và đầu ra cũng là một ma trậncorpus = [ '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
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ử 2022Hàm sigmoidchấm sản phẩm7 khóa học về trí tuệ nhân tạo [AI] tốt nhất năm 20237 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êmNhậ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ả
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