2017-02-22 17 views
8

Ví dụ: chúng tôi đào tạo một mô hình word2vec sử dụng gensim:Giải thích từ tương tự Word2Vec tiêu cực từ gensim

from gensim import corpora, models, similarities 
from gensim.models.word2vec import Word2Vec 

documents = ["Human machine interface for lab abc computer applications", 
       "A survey of user opinion of computer system response time", 
       "The EPS user interface management system", 
       "System and human system engineering testing of EPS", 
       "Relation of user perceived response time to error measurement", 
       "The generation of random binary unordered trees", 
       "The intersection graph of paths in trees", 
       "Graph minors IV Widths of trees and well quasi ordering", 
       "Graph minors A survey"] 

texts = [[word for word in document.lower().split()] for document in documents] 
w2v_model = Word2Vec(texts, size=500, window=5, min_count=1) 

Và khi chúng ta truy vấn sự tương đồng giữa các từ, chúng ta tìm thấy điểm tương đồng tiêu cực:

>>> w2v_model.similarity('graph', 'computer') 
0.046929569156789336 
>>> w2v_model.similarity('graph', 'system') 
0.063683518562347399 
>>> w2v_model.similarity('survey', 'generation') 
-0.040026775040430063 
>>> w2v_model.similarity('graph', 'trees') 
-0.0072684112978664561 

Làm thế nào để chúng tôi giải thích các điểm tiêu cực?

Nếu mức độ tương tự cosin không nên là phạm vi [0,1]?

Giới hạn trên và giới hạn dưới của hàm Word2Vec.similarity(x,y) là gì? Có được không nhiều bằng văn bản trong các tài liệu: https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.similarity = (

Nhìn vào mã Python wrapper, không có nhiều quá: https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py#L1165

(Nếu có thể, xin vui lòng làm điểm tôi vào mã .pyx của nơi các chức năng tương tự được thực hiện.)

+2

Nếu nó đang sử dụng tính tương tự cosin, thì phạm vi là [-1, 1]. Từ bài viết wikipedia: "Do đó, một phán đoán về định hướng và không phải độ lớn: hai vectơ có cùng định hướng có độ tương tự cosin là 1, hai vectơ ở 90 ° có điểm tương đồng là 0, và hai vectơ đối nghịch với nhau có sự giống nhau -1, độc lập với độ lớn của chúng. " –

+0

Độ tương tự của Cosine có thể được hiểu là sản phẩm chấm. Do đó, nếu hai từ có độ tương tự 0 cosin, chúng hoàn toàn trực giao, nghĩa là chúng có hai "ý nghĩa" khác nhau và hoàn toàn không liên quan. Trong khi một sự tương đồng tiêu cực có nghĩa là hai từ có liên quan trong thành phần, nhưng trong một thời trang ngược lại (hoặc tiêu cực). –

Trả lời

4

cosine giống nhau dao động từ -1 đến 1, giống như một làn sóng cosin thường xuyên.

Cosine Wave

Đối với các nguồn:

https://github.com/RaRe-Technologies/gensim/blob/ba1ce894a5192fc493a865c535202695bb3c0424/gensim/models/word2vec.py#L1511

def similarity(self, w1, w2): 
    """ 
    Compute cosine similarity between two words. 
    Example:: 
     >>> trained_model.similarity('woman', 'man') 
     0.73723527 
     >>> trained_model.similarity('woman', 'woman') 
     1.0 
    """ 
    return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2]) 
-1

Như những người khác đã nói, sự tương đồng cosin có thể dao động từ -1 đến 1 dựa trên góc giữa hai vectơ được so sánh. Việc thực hiện chính xác trong gensim là một sản phẩm dấu chấm đơn giản của các vectơ chuẩn hóa.

https://github.com/RaRe-Technologies/gensim/blob/4f0e2ae0531d67cee8d3e06636e82298cb554b04/gensim/models/keyedvectors.py#L581

def similarity(self, w1, w2): 
     """ 
     Compute cosine similarity between two words. 
     Example:: 
      >>> trained_model.similarity('woman', 'man') 
      0.73723527 
      >>> trained_model.similarity('woman', 'woman') 
      1.0 
     """ 
     return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2])) 

Về mặt giải thích, bạn có thể nghĩ về những giá trị như bạn có thể nghĩ về hệ số tương quan. Giá trị 1 là mối quan hệ hoàn hảo giữa các vectơ từ (ví dụ: "người phụ nữ" so với "người phụ nữ"), giá trị 0 đại diện cho không có mối quan hệ giữa các từ và giá trị -1 đại diện cho mối quan hệ ngược lại hoàn hảo giữa các từ.

Các vấn đề liên quan