Word2Vec词汇相似之处

问题描述 投票:0回答:2

我在大约750k个单词的文本上运行了word2vec算法(在删除一些停用词之前)。使用我的模型,我开始查看与选择的特定单词最相似的单词,相似度得分(针对model.wv.most_similar方法)都非常接近1。第十个最接近的得分仍然是.998,所以我觉得我在单词相似度之间并没有什么明显的区别,这导致了毫无意义的相似单词。

我的模型构造函数是

model = Word2Vec(all_words, size=75, min_count=30, window=10, sg=1)

我认为问题可能在于如何构造文本以运行神经网络。我像这样存储所有单词:

all_sentences = nltk.sent_tokenize(v)
all_words = [nltk.word_tokenize(sent) for sent in all_sentences]
all_words = [[word for word in all_words[0] if word not in nltk.stopwords('English')]]

...... v是在txt文件上调用read()的结果。

python machine-learning neural-network nlp word2vec
2个回答
1
投票

您是否在将all_words传递给Word2Vec之前查看过它,以确保它包含所需的主体大小和种类? (最后一个停用词剥离步骤似乎只能在第一个句子all_words[0]上执行。)

此外,您是否启用了INFO级别的日志记录功能,并在输出中查看了模型最终词汇量和培训进度的指标,以检查这些值是否符合预期?

请注意,对于word2vec培训来说,删除停用词并非绝对必要。它们的存在并不会带来多大伤害,并且由sample参数控制的默认频繁单词下采样已经可以经常忽略非常频繁的单词,例如停用词。

(此外,min_count=30对于较小的语料库来说也相当激进。)>>


0
投票

根据我的知识,我建议以下内容:

© www.soinside.com 2019 - 2024. All rights reserved.