【问题标题】:Training a model from multiple corpus从多个语料库训练模型
【发布时间】:2019-09-25 13:28:56
【问题描述】:

想象一下,我有一个通过 Wikipedia 文章(如官方网站上的解释)进行训练的 fasttext 模型。 是否有可能用另一个可以在单词之间添加新的/更相关的链接的语料库(科学文档)再次训练它?特别是对于科学的?

总而言之,我需要来自维基百科的所有英文单词之间存在的经典链接。但我想用关于特定部门的新文件来增强这个模型。有没有办法做到这一点 ?如果是的话,有没有办法“思考”培训,所以来自我的自定义文档的关系会“更重要”。

我的最终愿望是计算可能非常科学的文档之间的余弦相似度(这就是为什么我考虑添加更多科学文档以获得更好的结果)

【问题讨论】:

    标签: python artificial-intelligence gensim training-data fasttext


    【解决方案1】:

    使用您的特定领域训练数据调整更通用的模型通常称为“微调”。

    FastTextgensim 实现允许现有模型通过在新训练数据中看到的内容(通过 build_vocab(..., update=True))扩展其已知词汇表,然后进行包括新词汇表在内的进一步训练周期(通过 @ 987654324@)。

    但是,这种特殊形式的更新会在新旧训练数据之间引入模糊的平衡问题,并且没有明确的最佳实践。

    仅举一个例子,如果原始模型中的令牌/ngrams 在新数据中不会重复出现,那么新的训练会将新数据中的令牌/ngram 拉到新数据的最佳位置。 .. 但与旧令牌/ngram 的兼容性可能任意相距甚远。)

    此外,很可能某些模型模式(例如负采样与分层-softmax)以及某些数据混合比其他方法更有可能从这种方法中获得净收益——但您几乎必须敲定权衡自己,无需依赖一般规则。

    (对于其他类型的模型可能有更好的微调策略;这只是说明gensim FastText 更新词汇和重复训练的能力。)

    但也许,您感兴趣的领域是科学文本。也许你也有很多有代表性的文章——甚至在训练时,你可能会想要比较完整的论文。

    在这种情况下,您确定要处理从更通用的词模型开始的复杂性吗?如果事实上您已经在 您的领域 词中拥有足够多样且具有代表性的示例,那么您为什么要使用通用参考资料(例如 Wikipedia)中的任何主要词义来污染您的分析>您的领域上下文?

    因此,我建议您首先尝试根据您自己的代表性数据来训练您自己的模型。只有当您担心自己错过了重要的单词/感觉时,才尝试混合维基百科衍生的感觉。 (此时,混合这种影响的另一种方法是将维基百科文本与您的其他语料库混合。您还应该准备好测试这是否真的有帮助或伤害 - 因为它可能是。)

    此外,如果您的真正目标是比较全文,您可能需要研究其他文档建模策略,包括词袋表示、@987654328 中的 Doc2Vec(“段落向量”)实现@ 或其他。这些方法不一定需要每个词向量作为输入,但可能仍然适用于量化文本到文本的相似性。

    【讨论】:

    • 非常感谢您的宝贵时间和回答!我根本没想过只使用我自己的文档(我有 500k 文档)而不使用 Wikipedia。我认为与维基百科文章(或其他来源)的共同培训是强制性的第一步。我一定会对此进行测试并查看结果。还要感谢最后一段,我的主要目标是首先将一个小的文本查询与我拥有的文档进行比较,因此文档到文档的方法可能还不相关,但是如果将来我想允许更大的搜索查询,那肯定会成为实现这一目标的一种方式!
    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    相关资源
    最近更新 更多