感谢您快速而详尽的回答。只需几个 cmets 即可澄清问题。
我之前有两个数据集开始训练,所以 build_vocab() 调用只使用一次迭代器完成所有标记文档,通用和特定领域。所以,第一个问题没有问题,训练的任何部分都不会出现新词。
我真的同意你的看法。如果有足够多的特定领域文档可用,那么仅使用这些文档进行培训应该会产生更好的结果。但是文献中有一些参考资料说,最初使用通用语料库进行训练,然后在特定领域的语料库上进行一些训练,可以取得良好的效果。其他参考资料说,如果有足够的特定领域文档可用,最好只尝试这些文档。
问题是我是大学的一名研究员,作为这项研究工作的一部分,我想做一些实验来比较两种方式的结果。
所以,我目前的混合训练方法可以总结为:
model = 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 参数。我不确定是设置这些值还是根本不提供它们更好。
再次感谢您的关注
阿尔贝托