我们是否使用自己的数据正确更新了现有的 gemsim 模型?
Did we update an existing gemsim model with our own data correctly?
目的:我们正在探索使用 word2vec 模型对我们的数据进行聚类。我们正在寻找满足我们需求的理想模型,并且一直在使用(1)通过 Spacy 和 Gensim 提供的现有模型(仅在互联网数据上训练),(2)使用 Gensim 创建我们自己的自定义模型(在我们的技术上训练)仅数据)和 (3) 现在正在研究创建混合模型,将我们的技术数据添加到现有模型(在互联网上训练 + 我们的数据)。
以下是我们如何创建将数据添加到现有 Gensim 模型的混合模型:
model = api.load("word2vec-google-news-300")
model = Word2Vec(size=300, min_count =1)
model.build_vocab(our_data)
model.train(our_data, total_examples=2, epochs =1)
model.wv.vocab
问题:我们是否按照我们的意图正确地做到了这一点,即拥有一个在互联网上训练并与我们的数据分层的模型?
疑虑:我们想知道我们的数据是否真的被添加到模型中。当使用最相似的函数时,我们看到与这个模型的更一般的词有非常高的相关性。我们的自定义模型与更多技术词的相关性要低得多。请参阅下面的输出。
Most Similar results for 'Python'
This model (internet + our data):
'technicians' = .99
'system' = .99
'working' = .99
Custom model (just our data):
'scripting' = .65
'perl' = .63
'julia' = .58
否:您的代码无法实现您的意图。
当您执行该行时...
model = Word2Vec(size=300, min_count=1)
...您已经创建了一个全新的空 Word2Vec
对象,将其分配给 model
变量,该变量会丢弃已经存在的任何内容。因此,先前加载的数据将不起作用。您只是在您的(微小)数据上训练一个新模型。
此外,您加载的对象不是完整的 Word2Vec
模型。 Google 于 2013 年发布的 'GoogleNews' 向量 只是向量 ,不是完整模型。没有直接可靠的方法来继续训练该对象,因为它缺少真正的完整模型所具有的大量信息(包括词频和模型的内部权重)。
您可以通过一些高级方法尝试将这些值植入您自己的模型中 - 但它们涉及许多模糊的权衡和记录不完整的步骤,以便最终结果具有任何价值,而不仅仅是在你自己足够的数据上训练你自己的模型。在 Gensim 中没有 officially-documented/supported 方法。
目的:我们正在探索使用 word2vec 模型对我们的数据进行聚类。我们正在寻找满足我们需求的理想模型,并且一直在使用(1)通过 Spacy 和 Gensim 提供的现有模型(仅在互联网数据上训练),(2)使用 Gensim 创建我们自己的自定义模型(在我们的技术上训练)仅数据)和 (3) 现在正在研究创建混合模型,将我们的技术数据添加到现有模型(在互联网上训练 + 我们的数据)。
以下是我们如何创建将数据添加到现有 Gensim 模型的混合模型:
model = api.load("word2vec-google-news-300")
model = Word2Vec(size=300, min_count =1)
model.build_vocab(our_data)
model.train(our_data, total_examples=2, epochs =1)
model.wv.vocab
问题:我们是否按照我们的意图正确地做到了这一点,即拥有一个在互联网上训练并与我们的数据分层的模型?
疑虑:我们想知道我们的数据是否真的被添加到模型中。当使用最相似的函数时,我们看到与这个模型的更一般的词有非常高的相关性。我们的自定义模型与更多技术词的相关性要低得多。请参阅下面的输出。
Most Similar results for 'Python'
This model (internet + our data):
'technicians' = .99
'system' = .99
'working' = .99
Custom model (just our data):
'scripting' = .65
'perl' = .63
'julia' = .58
否:您的代码无法实现您的意图。
当您执行该行时...
model = Word2Vec(size=300, min_count=1)
...您已经创建了一个全新的空 Word2Vec
对象,将其分配给 model
变量,该变量会丢弃已经存在的任何内容。因此,先前加载的数据将不起作用。您只是在您的(微小)数据上训练一个新模型。
此外,您加载的对象不是完整的 Word2Vec
模型。 Google 于 2013 年发布的 'GoogleNews' 向量 只是向量 ,不是完整模型。没有直接可靠的方法来继续训练该对象,因为它缺少真正的完整模型所具有的大量信息(包括词频和模型的内部权重)。
您可以通过一些高级方法尝试将这些值植入您自己的模型中 - 但它们涉及许多模糊的权衡和记录不完整的步骤,以便最终结果具有任何价值,而不仅仅是在你自己足够的数据上训练你自己的模型。在 Gensim 中没有 officially-documented/supported 方法。