Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

394
Views
Interpretación de la similitud negativa de Word2Vec de gensim

Por ejemplo, entrenamos un modelo word2vec usando 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)

Y cuando consultamos la similitud entre palabras, encontramos puntajes de similitud negativos:

 >>> 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

¿Cómo interpretamos las puntuaciones negativas?

Si es una similitud de coseno, ¿no debería ser el rango [0,1] ?

¿Cuál es el límite superior y el límite inferior de la Word2Vec.similarity(x,y) ? No hay mucho escrito en los documentos: https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.similarity =(

Mirando el código contenedor de Python, tampoco hay mucho: https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py#L1165

(Si es posible, indíqueme el código .pyx donde se implementa la función de similitud).

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La similitud del coseno varía de -1 a 1, igual que una onda de coseno regular.

Onda coseno

En cuanto a la fuente:

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])
over 4 years ago · Santiago Trujillo Report

0

Como han dicho otros, la similitud del coseno puede variar de -1 a 1 según el ángulo entre los dos vectores que se comparan. La implementación exacta en gensim es un simple producto escalar de los vectores normalizados.

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]))

En términos de interpretación, puede pensar en estos valores como si pensara en los coeficientes de correlación. Un valor de 1 es una relación perfecta entre vectores de palabras (por ejemplo, "mujer" en comparación con "mujer"), un valor de 0 representa que no hay relación entre palabras y un valor de -1 representa una relación opuesta perfecta entre palabras.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!