从多个语料库训练模型
Training a model from multiple corpus
想象一下,由于维基百科文章(如官方网站上的解释),我有一个经过训练的 fasttext 模型。
是否可以使用另一个可以在单词之间添加新的/更相关的链接的语料库(科学文献)再次训练它?特别是对于科学的?
总而言之,我需要来自维基百科的所有英文单词之间存在的经典链接。但我想用关于特定部门的新文件来增强这个模型。有没有办法做到这一点 ?如果是,是否有可能 'ponderate' 培训,因此来自我的自定义文档的关系将是 'more important'.
我最后的愿望是计算文档之间的余弦相似度,可以很科学(这就是为什么要有更好的结果我想添加更多科学文档)
使用特定领域的训练数据调整更通用的模型通常称为 "fine-tuning"。
FastText
的 gensim
实现允许现有模型通过在新训练数据中看到的内容(通过 build_vocab(..., update=True)
)扩展其已知词汇表,然后进行进一步的训练周期,包括新词汇出现(通过 train()
)。
但是,进行这种特殊形式的更新会引入新旧训练数据之间的模糊平衡问题,并且没有明确的最佳实践。
仅举一个例子,如果原始模型中的 tokens/ngrams 不会在新数据中重复出现,则新训练会将新数据中的那些拉到最适合的新位置新数据...但可能与旧数据的兼容性相去甚远tokens/ngrams。)
此外,某些模型模式(如负采样与分层 softmax)和一些数据混合可能比其他方法更有可能从这种方法中获益——但你几乎必须锤击自己做出权衡,没有可依赖的一般规则。
(其他类型的模型可能有更好的微调策略;这只是针对 gensim
FastText
更新词汇和重复训练的能力。)
但也许,您感兴趣的领域是科学文献。也许你还有很多有代表性的文本——甚至可能在训练时,你想要比较整个论文领域。
在那种情况下,您确定要处理从更通用的词模型开始的复杂性吗?你为什么要用通用参考文献 material 中的任何主要词义来污染你的分析,比如维基百科,如果事实上你已经有足够多变的和有代表性的例子 你的域 个词在 你的域 上下文中?
因此,我建议您首先尝试根据您自己的代表性数据训练您自己的模型。并且只有当您担心自己错过了重要的 words/senses 时,才尝试混合来自维基百科的感官。 (在这一点上,另一种混合这种影响的方法是将维基百科文本与你的其他语料库混合。你还应该准备好测试这是否真的有帮助或伤害——因为它可能是两者之一。)
此外,如果您的真正目标是比较整篇论文,您可能需要研究其他文档建模策略,包括词袋表示、Doc2Vec
('Paragraph Vector' ) 在 gensim
或其他人中实施。这些方法不一定需要每个单词的向量作为输入,但可能仍然适用于量化文本到文本的相似性。
想象一下,由于维基百科文章(如官方网站上的解释),我有一个经过训练的 fasttext 模型。 是否可以使用另一个可以在单词之间添加新的/更相关的链接的语料库(科学文献)再次训练它?特别是对于科学的?
总而言之,我需要来自维基百科的所有英文单词之间存在的经典链接。但我想用关于特定部门的新文件来增强这个模型。有没有办法做到这一点 ?如果是,是否有可能 'ponderate' 培训,因此来自我的自定义文档的关系将是 'more important'.
我最后的愿望是计算文档之间的余弦相似度,可以很科学(这就是为什么要有更好的结果我想添加更多科学文档)
使用特定领域的训练数据调整更通用的模型通常称为 "fine-tuning"。
FastText
的 gensim
实现允许现有模型通过在新训练数据中看到的内容(通过 build_vocab(..., update=True)
)扩展其已知词汇表,然后进行进一步的训练周期,包括新词汇出现(通过 train()
)。
但是,进行这种特殊形式的更新会引入新旧训练数据之间的模糊平衡问题,并且没有明确的最佳实践。
仅举一个例子,如果原始模型中的 tokens/ngrams 不会在新数据中重复出现,则新训练会将新数据中的那些拉到最适合的新位置新数据...但可能与旧数据的兼容性相去甚远tokens/ngrams。)
此外,某些模型模式(如负采样与分层 softmax)和一些数据混合可能比其他方法更有可能从这种方法中获益——但你几乎必须锤击自己做出权衡,没有可依赖的一般规则。
(其他类型的模型可能有更好的微调策略;这只是针对 gensim
FastText
更新词汇和重复训练的能力。)
但也许,您感兴趣的领域是科学文献。也许你还有很多有代表性的文本——甚至可能在训练时,你想要比较整个论文领域。
在那种情况下,您确定要处理从更通用的词模型开始的复杂性吗?你为什么要用通用参考文献 material 中的任何主要词义来污染你的分析,比如维基百科,如果事实上你已经有足够多变的和有代表性的例子 你的域 个词在 你的域 上下文中?
因此,我建议您首先尝试根据您自己的代表性数据训练您自己的模型。并且只有当您担心自己错过了重要的 words/senses 时,才尝试混合来自维基百科的感官。 (在这一点上,另一种混合这种影响的方法是将维基百科文本与你的其他语料库混合。你还应该准备好测试这是否真的有帮助或伤害——因为它可能是两者之一。)
此外,如果您的真正目标是比较整篇论文,您可能需要研究其他文档建模策略,包括词袋表示、Doc2Vec
('Paragraph Vector' ) 在 gensim
或其他人中实施。这些方法不一定需要每个单词的向量作为输入,但可能仍然适用于量化文本到文本的相似性。