【发布时间】:2020-03-22 07:00:22
【问题描述】:
我试图了解 word2vec 如何在给定单词列表的情况下预测单词。 具体来说,我使用以下参数在 50 万条推文的推文数据上训练了我的 skip-gram 模型:
model = gensim.models.Word2Vec(data, window=5, workers=7, sg=1, min_count=10, size=200)
给定 discrimination 和 uberx 这两个词,我得到以下输出:
model.wv.most_similar(positive=[PorterStemmer().stem(WordNetLemmatizer().lemmatize("discrimination", pos='v')), WordNetLemmatizer().lemmatize("uberx", pos='v')], topn=30)
[('discret', 0.7425585985183716),
('fold_wheelchair', 0.7286415696144104),
('illeg_deni', 0.7280288338661194),
('tradit_cab', 0.7262350916862488),
('mobil_aid', 0.7252357602119446),
('accommod_disabl', 0.724936842918396),
('uberwav', 0.720955491065979),
('discrimin_disabl', 0.7206833958625793),
('deni_access', 0.7202375531196594),...]
但是,当我搜索我转储到硬盘驱动器上的数据集 data 时,在输出列表中搜索“discrimination”、“uberx”和任何其他词时,我从未找到数据点的单个实例其中包含所有 3 个单词。所以我的问题是,如果模型从未在一条推文中同时看到这 3 个词,那么模型如何知道,例如,“accommodation disabled”这个词是上下文“discrimination”和“uberx”的正确词?
【问题讨论】: