感谢您的快速和扩展的回答。只是一些评论来澄清这个问题。
我之前有两个数据集来开始训练,因此 build_vocab() 调用只使用一次迭代器完成所有标记文档,通用和特定领域。所以,第一个问题没有问题,训练的任何部分都不会出现新词。
我真的同意你的看法。如果有足够多的特定领域文档可用,则仅使用这些文档进行培训应该会产生更好的结果。但是文献中有一些参考资料说,最初使用一般语料库进行训练,然后在特定领域的语料库上进行一些训练,可以取得良好的效果。其他参考资料说,如果有足够的特定领域文档可用,最好只尝试这些文档。
问题是我是大学的研究员,作为这项研究工作的一部分,我想做一些实验来比较两种方式的结果。
因此,我目前的混合训练方法可以总结为:
模型 = Doc2Vec(vector_size=20, window=8, alpha=0.025, min_alpha=0.00025, min_count=5, dm=1)
model.build_vocab(corpus_data_both) # 在两组标记文档上的迭代器
model.train(corpus_data_gen, total_examples=#generic_docs, alpha=0.025, min_alpha=0.00025, epochs=20) # 通用语料库标记文档的迭代器
model.train(corpus_data_ah, total_examples=#domain_docs, alpha=0.025, min_alpha=0.00025, epochs=20) # 域语料库标记文档的迭代器
我主要关心的是两个调用 train() 中的 alpha 和 alpha_min 参数。我不确定是设置这些值还是根本不提供它们更好。
再次感谢您的关注阿尔贝托