例えば、我々はgensim
を使用してword2vec鉄道模型:gensimから否定的なWord2Vec類似性を解釈する
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)
をそして、我々は、単語間の類似度を照会するとき、我々は負の類似性スコアを見つける:
>>> 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
はどのようにして、負のスコアを解釈するのですか?
コサインの類似性の場合、範囲は[0,1]
ではありませんか?
Word2Vec.similarity(x,y)
関数の上限と下限は何ですか?そこはあまりドキュメントに書かれていません。https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Word2Vec.similarity =(
はPythonラッパーのコードを見てみると、あまりにもありません。https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/word2vec.py#L1165
(可能な場合は、の.pyx
コードに私を指すようにしてください類似の機能が実現される。)
コサイン類似性を使用している場合、範囲は[-1、1]です。ウィキペディアの記事から: "向きの判断であり大きさではなく、同じ向きの2つのベクトルが1の余弦類似度を持ち、90度の2つのベクトルが0の類似度を持ち、正反対の2つのベクトルが-1、その大きさとは無関係です。 –
コサイン類似度は内積として解釈できます。したがって、2つの単語が0の余弦類似性を有する場合、それらは完全に直交している。すなわち、それらは2つの異なる「意味」を有し、完全に無関係である。一方、否定的な類似性は、2つの単語が成分において関連しているが、反対の(または否定的な)様式であることを意味する。 –