So sánh hình ảnh con trăn

Tính toán tương tự có thể cực kỳ hữu ích khi xây dựng các ứng dụng học máy. Nếu bạn cần phân cụm các tài liệu dựa trên mức độ tương tự của nội dung hoặc nếu bạn đang xây dựng một mô hình để khớp với hình ảnh, bạn sẽ cần một phương thức để xác định những gì và là tương tự. Khá dễ dàng để làm điều này bằng cách sử dụng số liệu, nhưng làm thế nào để chúng tôi xác định sự giống nhau của tài liệu hoặc hình ảnh?

Sự tương tự cosine là một phương pháp tính toán sự giống nhau của hai màn hình bằng cách lấy sản phẩm DOT và chia nó cho độ lớn của mỗi màn hình, như thể hiện trong hình minh họa bên dưới. là một phương pháp tính toán độ tương tự của hai vectơ bằng cách lấy tích vô hướng chia cho độ lớn của mỗi vectơ, như thể hiện trong hình minh họa bên dưới

Hình ảnh của tác giả

Sử dụng Python, chúng tôi thực sự có thể chuyển đổi văn bản và hình ảnh thành màn hình và áp dụng logic tương tự này. Scikit-learning, Pil và Numpy làm cho quá trình này trở nên đơn giản hơn. Trong bài viết này, tôi sẽ chỉ cho bạn một vài ví dụ về cách bạn có thể sử dụng tương đồng về cosine và cách tính toán nó bằng Python

Sự tương đồng về cosin với dữ liệu văn bản

Quá trình chuyển đổi văn bản thành màn hình là rất phổ biến trong xử lý ngôn ngữ tự nhiên. Có nhiều cách khác nhau để vector hóa văn bản và bài viết này thực hiện một công việc tuyệt vời để giải thích một số trong số chúng. Có ưu và nhược điểm chọn từng phương pháp nhưng tất cả chúng về cơ bản đều đạt được cùng một kết quả. chuyển đổi văn bản thành số

Hình ảnh của nhóm Edpresso trên giáo dục. io

Hãy thử trải nghiệm điều này trong Python - đầu tiên, chúng tôi sẽ tải xuống dữ liệu văn bản của mình và sử dụng CountVectorzer văn bản Sklearn, để tạo ra cái chết này. Ví dụ: tôi muốn so sánh hai đoạn tương tự vì vậy tôi sẽ sử dụng đoạn đầu tiên của trang Wikipedia Wikipedia và đoạn đầu tiên của Bee Movie

Ảnh chụp màn hình Notebook Jupyter của tác giả

Bây giờ chúng tôi đã có các văn bản này, chúng tôi có thể so sánh sự tương đồng và sự khác biệt của từng khoảnh khắc bằng cách sử dụng một phép tính được gọi là tần số nghịch nghịch [TFIDF]. Tôi biết rằng nghe có vẻ rất khó hiểu nhưng về cơ bản, nó là một cách để đo lường độ độc của một từ nhất định so với mọi từ khác trong một tài liệu. Điều này được tính toán theo thang điểm từ 0 trận 1 với các từ biến phổ biến nhất tiếp cận 0 và các từ độc lập nhất cận kề 1. Ở đây, những gì trông giống như tài liệu ong của chúng tôi. Tần suất kỳ hạn Tần suất tài liệu nghịch đảo [TFIDF]. Tôi biết điều đó nghe có vẻ rất khó hiểu nhưng về cơ bản, đây là một cách để đo mức độ độc đáo của một từ nhất định so với mọi từ khác trong tài liệu. Điều này được tính trên thang điểm từ 0–1 với các từ phổ biến nhất gần bằng 0 và các từ độc đáo nhất gần bằng 1. Đây là những gì trông giống như đối với các tài liệu về ong của chúng tôi

Khi chúng tôi có khung dữ liệu này, chúng tôi chỉ cần chạy chức năng cosine_similarity và chúng tôi sẽ có kết quả của chúng tôi

Ảnh chụp màn hình Notebook Jupyter của tác giả

Điều này có nghĩa là theo sự tương đồng về cosine, dòng đầu tiên của bộ phim Bee chỉ tương tự 19% so với đoạn đầu tiên của trang Wikipedia của Bee Bee. Điều này có vẻ thấp lúc đầu nhưng hãy so sánh tài liệu đầu tiên với một thứ khác để xem sự khác biệt

Ảnh chụp màn hình Notebook Jupyter của tác giả

Bây giờ chúng tôi đã có các văn bản này, chúng tôi có thể so sánh sự tương đồng và sự khác biệt của từng khoảnh khắc bằng cách sử dụng một phép tính được gọi là tần số nghịch nghịch [TFIDF]. Tôi biết rằng nghe có vẻ rất khó hiểu nhưng về cơ bản, nó là một cách để đo lường độ độc của một từ nhất định so với mọi từ khác trong một tài liệu. Điều này được tính toán theo thang điểm từ 0 trận 1 với các từ biến phổ biến nhất tiếp cận 0 và các từ độc lập nhất cận kề 1. Ở đây, những gì trông giống như tài liệu ong của chúng tôi

Khi chúng tôi có khung dữ liệu này, chúng tôi chỉ cần chạy chức năng cosine_similarity và chúng tôi sẽ có kết quả của chúng tôi

Ảnh chụp màn hình Notebook Jupyter của tác giả

Điều này có nghĩa là theo sự tương đồng về cosine, dòng đầu tiên của bộ phim Bee chỉ tương tự 19% so với đoạn đầu tiên của trang Wikipedia của Bee Bee. Điều này có vẻ thấp lúc đầu nhưng hãy so sánh tài liệu đầu tiên với một thứ khác để xem sự khác biệt

Hai tài liệu này chỉ tương tự 7,6% có nghĩa do từ Bee Bee, thậm chí chí không xuất hiện một lần trong tài liệu thứ ba

Quá trình này có thể dễ dàng mở rộng quy mô cho các tài liệu lớn hơn sẽ tạo ra ít vị trí cho thống kê lỗi trong tính toán. Nếu hai tài liệu 50 từ tương tự 50% thì có khả năng là do một nửa số từ là, thì đạo văn. Tương tự cosine là vô cùng hữu ích để phân tích văn bản - với tư cách là một nhà khoa học dữ liệu, bạn có thể chọn những gì % được coi là quá giống nhau hoặc không đủ giống nhau và xem việc cắt giảm ảnh hưởng

Ngoài ra còn có các phương pháp khác để xác định mức độ tương tự của văn bản như mục đích Jaccard, rất tiện dụng vì nó không tính đến các từ trùng lặp

Sự tương đồng về cosin với hình ảnh

Bạn có thể đoán rằng quá trình này rất giống với quy trình trên. May mắn thay, chúng tôi không phải làm tất cả các công cụ NLP, chúng tôi chỉ cần tải lên hình ảnh và chuyển đổi nó thành một loạt các giá trị RGB. Quá trình này khá dễ dàng nhờ Pil và Numpy. Trong ví dụ này, tôi sẽ so sánh hai hình ảnh của những con chó con và sau đó so sánh một con chó với một con ếch để hiển thị sự khác biệt về điểm số

Hình ảnh của tác giả

Sử dụng Python, chúng tôi thực sự có thể chuyển đổi văn bản và hình ảnh thành màn hình và áp dụng logic tương tự này. Scikit-learning, Pil và Numpy làm cho quá trình này trở nên đơn giản hơn. Trong bài viết này, tôi sẽ chỉ cho bạn một vài ví dụ về cách bạn có thể sử dụng tương đồng về cosine và cách tính toán nó bằng Python

Ảnh chụp màn hình Notebook Jupyter của tác giả

Điều này có nghĩa là những hình ảnh chó tương tự 81% có ý nghĩa, chỉ bằng cách nhìn vào chúng, bạn có thể nói rằng về cơ bản chúng có cùng một chủ đề và bảng màu. Điều gì sẽ xảy ra nếu chúng ta chụp một bức ảnh hoàn toàn khác và so sánh nó với bức tranh con chó lần đầu tiên?

Hình ảnh bên trái của Bruno Cervera trên pexels, hình ảnh bên phải của Gleb Korovko trên ảnh chụp màn hình Notebook Pexelsjupyter của tác giả

Đúng như dự đoán, hai hình ảnh này ít giống nhau hơn đáng kể so với hai hình ảnh đầu tiên. 30% vẫn còn tương đối cao nhưng đó có thể là kết quả của cả hai đều có các khu vực tối đa ở phía bên trái cùng với một số điểm tương đồng màu nhỏ. Giống như ví dụ của văn bản, bạn có thể xác định mức độ cắt là gì cho một cái gì đó là tương tự đủ, điều này làm cho sự tương đồng về cosine tuyệt vời cho phân cụm và các phương thức sắp xếp khác nhau

Nó có thể sử dụng các giá trị HSL thay vì RGB hoặc chuyển đổi cấu hình ảnh thành đen và trắng và sau đó để so sánh - chúng ta cũng có thể mang lại kết quả tốt hơn tùy thuộc vào loại ảnh mà bạn làm việc. Cho dù bạn đang cố gắng xây dựng một thuật toán phát hiện khuôn mặt hoặc một mô hình sắp xếp chính xác hình ảnh chó từ hình ảnh con ếch, sự tương tự cosine là một tiện ích tính toán có thể thực hiện kết quả cải thiện của bạn

Kết luận

Tôi hy vọng bài viết này đã được giới thiệu tốt về cosin tương tự và một vài cách bạn có thể sử dụng nó để so sánh dữ liệu. Là các nhà khoa học dữ liệu, đôi khi chúng ta có thể quên tầm quan trọng của toán học vì vậy tôi tin rằng nó luôn luôn tốt để tìm hiểu một số lý thuyết và hiểu cách thức và lý do tại sao mã của chúng ta . Hy vọng, bạn có thể lấy một số khái niệm từ các ví dụ này và thực hiện các dự án tuyệt vời của riêng bạn

Nếu bạn quan tâm đến việc tìm hiểu thêm về cosine tương tự, tôi rất khuyến mãi video YouTube này. Hoặc nếu bạn muốn tìm hiểu thêm về quy trình ngôn ngữ tự nhiên, bạn có thể xem bài viết của tôi về phân tích tình cảm. Tôi rất vui khi đề cập đến nhiều chủ đề như thế này trong tương lai, hãy cho tôi biết nếu bạn có hứng thú tìm hiểu thêm về một chức năng cũng như phương pháp hoặc khái niệm nhất định

Chủ Đề