【发布时间】:2021-07-19 03:32:57
【问题描述】:
有没有办法让 gensim 中的model.wv.most_similar 只返回积极意义的词(即显示同义词但不显示反义词)?
例如,如果我这样做:
import fasttext.util
from gensim.models.fasttext import load_facebook_model
from gensim.models.fasttext import FastTextKeyedVectors
fasttext.util.download_model('en', if_exists='ignore') # English
model = load_facebook_model('cc.en.300.bin')
model.wv.most_similar(positive=['honest'], topn=2000)
那么模式也会返回诸如“不诚实”之类的词。
('dishonest', 0.5542981028556824),
但是,如果我只想要具有积极意义的词怎么办?
我尝试了以下方法 - 在向量空间中从“诚实”中减去“不”:
import fasttext.util
from gensim.models.fasttext import load_facebook_model
from gensim.models.fasttext import FastTextKeyedVectors
fasttext.util.download_model('en', if_exists='ignore') # English
model = load_facebook_model('cc.en.300.bin')
model.wv.most_similar(positive=['honest'], negative=['not'], topn=2000)
但不知何故,它仍然以某种方式返回“不诚实”。
('dishonest', 0.23721608519554138)
('dishonesties', 0.16536088287830353)
知道如何以更好的方式做到这一点吗?
【问题讨论】:
标签: python nlp gensim word2vec fasttext