在Gensim中,从二元模型还是三元模型导出二元组更合理?
两种二元组提取方式的差异与选择
两种方式提取的二元组存在差异是正常现象,它们没有绝对的“谁对谁错”,核心区别在于训练时的输入语境和模型目标不同,你需要根据自身需求选择:
从bigram_model提取的bigrams1
这是基于原始unigram文本直接训练得到的二元短语集合,完全反映了原始语料中词与词的共现规律。该模型的设计目标就是专门挖掘二元短语,因此它导出的结果是最贴合原始语料的二元组——如果你需要的是原始语境下的基础二元短语,这是最准确的选择。从trigram_model提取的bigrams2
这个模型的输入是已经合并了二元短语的文本(texts_bigram),核心目标是挖掘三元短语(比如"machine_learning_algorithm"这类组合)。导出的二元组只是训练过程中的副产物:此时模型处理的token序列已经包含合并后的二元短语,剩余未合并词之间的共现关系和原始语料完全不同,所以提取出的二元组是“经过二元短语过滤后”语境下的产物,并非原始语料的直接反映。
总结
如果你的需求是获取原始语料中的二元短语,直接用bigram_model.export_phrases()得到的bigrams1才是对应场景下的正确结果;trigram模型导出的二元组更多是服务于三元短语生成的中间产物,不能替代原始二元组的提取。
内容的提问来源于stack exchange,提问作者Victor Wang
相关产品推荐
相关产品推荐

