【问题标题】:Gensim Doc2Vec TrainingGensim Doc2Vec 培训
【发布时间】:2018-02-23 13:40:21
【问题描述】:

我正在使用 gensim 在分配给特定人员的文档上训练 Doc2Vec 模型。有 1000 万份文件和 8000 人。我不在乎所有 8,000 人。我关心特定的一群人(比如从 1 到 500 人)。

我感兴趣的人可能每天都在变化,但我永远不需要查看全部人口。最终目标是得到我感兴趣的人的结果向量。我目前每次都在分配给特定人的文档上训练模型。

我应该在所有 1000 万份文档上训练模型吗?或者我应该只在分配给我感兴趣的人的文档上训练模型?如果在所有 1000 万个文档上训练它很重要,那么我将如何仅为我感兴趣的人获取向量?

【问题讨论】:

  • 这完全取决于你想用这些向量做什么。你想预测一个给定向量的人吗?
  • 不,我只是想把指定人的向量输入到TensorBoard中做高维可视化,看看向量之间的距离(即自然簇)
  • 一个人需要一个向量还是文档需要一个向量
  • 每个文档一个向量。假设我有 10 个人想在某一天查看,他们总共有 20,000 份文件。我需要 20,000 个向量,然后将它们输入到 TensorBoard 并在前端进行过滤,所以我只查看特定人的向量。

标签: python gensim doc2vec


【解决方案1】:

对所有 1000 万个文档进行训练是个好主意,这将帮助您捕捉单词的一般本质,而不仅仅是在您感兴趣的作者的上下文中。此外,如果您感兴趣的作者集明天会发生变化。

如果您认为 Doc2Vec 花费大量时间,您还可以使用 Fasttext 来学习 WordEmbeddings,并在词向量上使用简单平均或 TF-IDF 加权平均来构建您的 DocumentVector。您可以利用 Fasttext 中分层 softmax(损失函数)的强大功能,它将您的训练时间减少 1000 多倍。

【讨论】:

  • 我如何获得我感兴趣的作者的向量?推断向量?或者有什么方法可以提取已经创建的向量?另外,使用 fasttext 方法不会提供相同类型的固定维度向量,对吗?
  • 获取作者对应的文档,tokenize,查找预训练的词向量,对文档中所有词的向量求平均
  • 如果您使用 Doc2Vec,您应该直接为每个文档获取一个向量。使用文档 ID,您可以查找作者
  • 说得通 - 非常感谢您的帮助!将您的答案标记为正确。您是否碰巧知道有关创建单独索引以轻松查询经过训练的向量的任何资源?
  • 我不确定你的最后一个问题。我没有玩过gensim。试试这个链接stackoverflow.com/questions/31321209/…
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2017-03-28
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多