我正在尝试首先在一个非常小的玩具数据集上运行Word2Vec,这是我手工编写的 - 只是为了说服自己在进入主数据集之前我正确地做到了这一点。但是,尽管进行了99000次迭代,结果并不是很好。 (老虎和狮子没有像我想象的那么高的相似性)。
玩具数据集:
s= [['Tiger', 'Zebra'], ['Tiger', 'Lion', 'Cheetah'],
['Orangutan', 'Bonobo', 'Orangutan', 'Chimpanzee'],
['Dog', 'Cat', 'Mouse'], ['Tiger', 'Rhino'],
['House', 'Car'], ['Antelope', 'Gazelle'],
['Zebra', 'Horse'], ['Tiger', 'Lion', 'Leopard'],
['Cat', 'Mouse'], ['Mouse', 'Hampster', 'Gerbil'],
['Rhino', 'Zebra'], ['Zebra', 'Antelope'],
['Tiger', 'Lion'], ['Lion', 'Tiger', 'Giraffe'],
['Leopard', 'Lion'], ['Leopard', 'Tiger', 'Lion'],
['Tiger', 'Lion'], ['Tiger', 'Lion'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry']
]
理论上,如果我做了大量的迭代,我是否应该期待像这样的玩具数据集显示出惊人的效果?
以下是我正在使用的代码:
model = gensim.models.Word2Vec(s, min_count=0, iter=iterations,size=100)
聚苯乙烯。 See here进行相关讨论。
答案 0 :(得分:2)
使用像你这样的小数据,一般模型可以在10-20次迭代中快速学习参数,做更多的迭代不会导致预测发生太大变化,如果你可以做更多的迭代,它可能会发现错误在模型的数据和性能可能会下降。因此,从一个小数据中它只能学到一些东西,如果你在更多数据上训练模型,你的模型可能会表现得更好。
答案 1 :(得分:2)
根据我的经验,Word2Vec在微小或人为的数据集上效果不佳。有时候,更多的迭代(或使模型在size
维度上更小)可以剔除一些有意义的暗示 - 但不像真正的数百万字训练集的结果。
算法的真正力量依赖于从大型,多样化,自然变化的文本示例中学到的平衡影响。
(由于您的合成数据集甚至不是可理解的语言,我不确定什么“惊人的结果”是可能的 - 这些简短,重复的动物名单应该教授模型的一般模式是什么?)