【问题标题】:Gensim doc2vec training on ngrams在 ngram 上进行 Gensim doc2vec 培训
【发布时间】:2020-02-21 16:49:29
【问题描述】:

我有几千个文档,我想在 gensim doc2vec 模型中使用,但每个文档只有 5 克,而不是原始词序中的全文。在 gensim 网站 (https://radimrehurek.com/gensim/auto_examples/tutorials/run_doc2vec_lee.html) 上的 doc2vec 教程中,使用全文创建了一个语料库,然后在该语料库上训练模型。它看起来像这样:

[TaggedDocument(words=['hundreds', 'of', 'people', 'have', 'been', 'forced', 'to', 'vacate', 'their', 'homes', 'in', 'the', 'southern',...], tags=[1]), TaggedDocument(words=[.....], tags=[2]),...]

是否可以创建一个训练语料库,其中每个文档由 5 克列表而不是按原始顺序排列的单词列表组成?

【问题讨论】:

    标签: python gensim doc2vec


    【解决方案1】:

    如果您拥有“所有”文档中的 5-gram(甚至可能仍然按照它们出现的顺序),那么应该可以将原始文档(或几乎等效的伪文档)拼接在一起,就好像5 克是拼图或多米诺骨牌。

    (例如,通过它在数据中的序数位置来查找第一个 5-gram,或者通过查找其 4-prefix-tokens 不是任何其他 5-gram 的 4-suffix-tokens 的 5-gram . 然后,通过将其 4-suffix-tokens 与另一个候选 5-gram 的 4-prefix-tokens 匹配来找到它的继任者。如果在任何时候你有多个候选“开始”或“延续”,你可以尝试任何一个并继续前进,直到您完成或到达死胡同 - 深度第一搜索一致的链 - 如果死胡同,然后备份并尝试另一个。虽然同样,你可能只是选择另一个好的开始 5 克, & 继续,有轻微错误排序文档和重复一些标记的风险。一堆这样的错误不会对大型语料库的最终结果产生太大影响。)

    另外,“PV-DBOW”模式 (dm=0) 不使用上下文窗口或相邻词 - 因此获取确切的原始词序并不重要,只需在其中包含正确词的替代文档任何订单。因此,只需连接所有 5-gram 就可以创建一个合理的伪文档——尤其是如果您随后丢弃任何单词的 4/5(以说明原始文档中的任何一个单词,除了开头或结尾,都会出现5 5 克)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 2017-03-28
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 2018-06-02
      • 2017-02-12
      • 1970-01-01
      相关资源
      最近更新 更多