我正在处理面向领域的文档,以便使用 Word2Vec 获取同义词。这些文档通常是模板,因此句子重复很多。
1k 个独特的句子代表了 83% 的文本语料库;而 41k 的独特句子代表剩余的 17% 的语料库。
这种句子频率的不平衡会影响我的结果吗?我应该对最常见的句子进行子采样吗?
我正在处理面向领域的文档,以便使用 Word2Vec 获取同义词。这些文档通常是模板,因此句子重复很多。
1k 个独特的句子代表了 83% 的文本语料库;而 41k 的独特句子代表剩余的 17% 的语料库。
这种句子频率的不平衡会影响我的结果吗?我应该对最常见的句子进行子采样吗?
句子是否完全一样,逐字逐句?如果是这种情况,我建议删除重复的句子,因为这可能会对 word2vec 模型产生偏差,即。重复同一个句子会超过这些例子,单个单词会以更高的频率在模型中结束。但是,这可能有利于查找同义词。对所有独特的句子进行二次采样,而不仅仅是最常见的句子,以获得平衡的模型。
我还建议查看构建在 word2vec 模型之上的FastText模型,在字符级别构建 n 克。使用 gensim 很容易训练,并且有一些预构建的功能,例如model.most_similar(positive=[word],topn=number of matching words)根据词嵌入找到最近的邻居,您还可以使用model.similarity(word1, word2)它轻松获得 0 到 1 之间的相似度分数。这些功能可能有助于查找同义词。