在一系列汉字上实现标准 gensim word2vec 模型(连续词袋),并且对于(中文同音词和相似频率的单词之间的比较)我们的余弦相似度是正的并且奇怪地高(0.3),任何线索为什么这是案子?我们将向量大小设置为 300,最小单词设置为 1,除此之外没有对 gensim 的 word2vec 标准实现进行任何修改。
此外,如果有人有任何资源可以研究如何了解这些嵌入是如何实际生成的,那将非常有帮助。提前非常感谢!
我不认为模型中的所有成对比较都是积极的,但一项特定调查的大量感兴趣的标记可能都具有积极的相似性。
0.3
不一定是特别高的相似度,但也要注意这样的相似度值没有任何绝对的解释,而只是与同一模型中的其他相似度相比才有意义。 (根据其他选择的参数,尤其是 vector_size
维度,令牌的“最佳”最近邻可能几乎具有任何正相似性。)
另外,min_count=1
对于这些模型来说几乎总是一个坏主意。仅出现在一个上下文中的标记不会从这种算法中获得良好的向量,但典型的自然语言语料库可能有许多这样的一次性或很少出现的稀有词——它们总共吸收了大量的训练时间得不到任何有价值的东西,同时也被视为“噪音”,使其他具有足够多/多样化上下文的标记的向量变得更糟。根据默认值
min_count=5
(或者当你的语料库足够大时甚至更高的值)丢弃较稀有的单词是一种最佳实践,它对剩余标记向量的改进比忽略较稀有单词的损失要大得多。
而且,vector_size=300
只有在你有足够大的语料库来证明它的合理性时才合适。你的语料库有多大,就 (1) 总代币而言; (2)独特的词(整体&应用合理后的min_count
); (3) 平均文本长度(以标记计数为单位)。如果您启用 Python 日志记录到
Word2Vec
级别,大多数有关语料库的统计数据将出现在日志输出中,因为 Genim INFO
可以工作。如果您仍然遇到问题,您应该扩展(编辑)此问题,或提出一个新问题,并提供更多详细信息,包括:
语料库大小,如上所述使用准确的
Word2Vec