我有一个短文语料库(大约5000句),它构成了一个大约2000字的词汇表。我使用Gensim构建了一个Word2Vec模型,但是来自most_similar的输出看起来并不合理。是因为我词汇量不够吗?如果是的话,是否有关于词汇表大小的大拇指规则?
发布于 2021-02-19 01:10:36
通常,word2vec需要大量的数据,每个单词都有许多不同的例子,以获得良好的单词向量。有时,您可以使用以下方法从较小的数据集中提取一些有用的信息:
(虽然我还没有正式测试过这一点,但我的直觉/经验法则是向量维数,而不是唯一单词数的平方根。)因此,只有2000个独特的单词,即使是50的维度也在推动它。)
您可能会尝试使用低于默认的min_count,因此那些只出现一到两次训练向量的单词。但是,如果没有不同的使用实例,这些向量本身就会被那些一两种不具有广泛代表性的上下文所主导。而且,总的来说,所有这些“噪音”词,加上do有足够的例子的单词,都会使其他的单词向量更糟糕。(用太少的例子丢弃单词通常会改善幸存单词的向量。)
如果可能的话,从类似的使用领域获得更多的培训数据,以便与您主要感兴趣的数据相结合。
发布于 2021-02-18 21:38:56
词汇表大小没有经验法则,但是每个单词应该与算法中的其他单词一起出现,以计算有意义的嵌入( gensim's word2vec中的默认word2vec是5)。
事实上,在word2wec中有两个底层算法:skip-gram (sg=1)和CBOW (sg=0)。你可以尝试这两种方法,因为其中一种可能产生更好的效果。您还可以为window参数试验不同的值,这是一个句子中当前单词与预测单词之间的最大距离。
最后,如果您有一个较小的词汇表/数据集,则应该使用一个小的向量维度(例如vector_size=50)。
https://stackoverflow.com/questions/66267818
复制相似问题