【发布时间】:2020-07-30 17:51:14
【问题描述】:
我正在语料库上训练 word2vec 模型,然后查询该模型。
这工作正常,但我正在运行一个实验,需要为不同的条件调用模型,为每个条件保存模型,为每个条件查询模型,然后将查询的输出保存到 csv 文件中,比如说,为了进一步分析所有条件。
我研究了 gensim 文档并四处搜索,但不知道该怎么做。
我问了 gensim 的人,他们说因为“most_similar”的结果是一个 python 对象,所以我可以用 pickle 保存它,或者保存为 txt、csv,无论我想要什么格式。
听起来不错,但我不知道如何开始。这是我的代码 - 你能帮我“填空”吗?即使是一些简单的东西,我可以进一步研究并自行扩展?
#train the model
trained_model = gensim.models.Word2Vec(some hyperparamters)
#save the model in the format that is appropriate for querying by writing it to disk and call it stored_model
trained_model.save(some_filename)
#read in the stored model from disk and call it retrieved_model
retrieved_model = gensim.models.Word2Vec.load(some_filename)
#query the retrieved model
#each of these queries produces a tuple of 10 'word', cosine similarity pairs
retrieved_model.wv.most_similar(positive=['smartthings', 'amazon'], negative=['samsung'])
retrieved_model.wv.most_similar(positive=['light', 'nest'], negative=['hue'])
retrieved_model.wv.most_similar(positive=['shopping', 'new_york_times'], negative=['ebay'])
.
.
.
#store the results of all these queries in a csv so they can be analyzed.
?
【问题讨论】:
-
你能提供一个例子来说明你的 csv 应该是什么样子吗?
most_similar返回一个元组列表,类似于[('friend', 0.50342288), ...]。您是否希望每个查询都有一个 csv(有两列;“单词”和“余弦相似度”),还是希望所有查询都使用一个 csv?至于保存模型,您可以使用trained_model.save(some_filename)并使用retrieved_model = gensim.models.Word2Vec.load(some_filename)重新加载。 -
@WhoIsJack,每个查询的 csv 都有两个列,如“word”和“cosinesimilarity”,可以用来描述它是哪个查询,但更好的是所有查询都只有一个 csv查询,以便每个主要列代表一个带有该查询标题的查询,然后是每个查询下的两个子列,其中包含“word”和“cos sim”列。所以,在完美的世界里,一张桌子。
标签: python csv word2vec gensim