单词嵌入/单词向量如何工作/创建?

时间:2017-09-06 10:32:37

标签: neural-network nlp deep-learning gensim word2vec

word2vec如何为单词创建向量?我使用两个不同的文件(来自commoncrawl网站)训练了两个word2vec模型,但我从两个模型获得给定单词的相同单词向量。

实际上,我使用commoncrawl网站上的不同文本文件创建了多个word2vec模型。现在我想检查哪种型号更好。如何从所有这些模型中选择最佳模型以及为什么我为不同模型获得相同的单词向量?

抱歉,如果问题不明确。

1 个答案:

答案 0 :(得分:0)

如果您从不同文本语料库中准备的模型中获取相同的单词向量,则可能在您的过程中出现问题。您可能根本没有进行任何培训,可能是因为文本可迭代如何提供给Word2Vec类的问题。 (在这种情况下,单词向量将保留在其初始的,随机初始化的值。)

您应该启用日志记录,并仔细查看日志,以确定在此过程中显示的单词,示例,进度和增量进度的合理计数。您还应该检查一些表面的,临时检查的结果在培训后是否合理。例如,model.most_similar('hot')是否会返回其他单词/概念,就像热点'?

一旦你确定模型正在接受各种语料库的训练 - 在这种情况下,他们的单词矢量应该彼此非常不同 - 决定哪种模式最好'取决于您使用单词向量的具体目标。

您应该设计一种可重复的,定量的方法来评估模型与您的预期最终用途。这可能只是通过一些您自己的结果手动审核粗略开始,比如查看most_similar()结果以获得更好/更差结果的重要单词 - 但应该变得更加广泛。随着项目的进展,严谨,自动化。

此类自动评分的一个示例是gensim的单词矢量对象上的accuracy()方法。参见:

https://github.com/RaRe-Technologies/gensim/blob/6d6f5dcfa3af4bc61c47dfdf5cdbd8e1364d0c3a/gensim/models/keyedvectors.py#L652

如果提供了特定格式的单词类比文件,它将检查单词向量如何解决这些类比。例如,Google原始word2vec代码版本的questions-words.txt包含他们用于报告矢量质量的类比。但请注意,最适合某些目的的单词矢量,如理解文本主题或情感,可能也不是解决这种类比的最佳方法,反之亦然。如果训练自己的单词向量,最好根据您自己的目标特定标准选择您的训练语料库/参数。矢量将。