1. 什么是c-TF-IDF c-TF-IDF是Class-based TF-IDF的简称。《GooSeeker分词软件的tf-idf算法和特征词选择》一文讲解了传统TF-IDF的计算方法。可以看到一个关键特征:某个词的TF-IDF值是与这个词所在的文档联系在一起的,同一个词在不同的文档中的TF-IDF值不同。也就是说TF-IDF值是在文档这个级别计算的。而c-TF-IDF是在“类别级别”计算出来的。也就是说把属于同一个类别的文档聚合(合并)在一起形成一个聚合文档,在这个新文档上计算每个词的TF-IDF值。 2. 应用场景 c-TF-IDF的应用场景主要是为BERTopic这种主题模型提取关键词。 在此,可以跟Top2vec这个主题模型做个对比。《top2vec话题发现原理和使用方法》一文介绍了Top2Vec的一个显著特征:文档和词联合嵌入空间。在同一个空间中,既有文档向量也有词向量。聚类在一起的所有文档的中心向量代表这个主题的向量。那么,与这个主题向量近的词向量就是用来描述这个主题的。可见,把描述主题的关键词找出来是那么直接和直观。 相反,BERTopic就没有这么直观的方法找出主题特征词,需要依靠c-TF-IDF算法把关键词找出来。其中的TF和IDF的作用跟传统的TF-IDF相比没有改变:TF可以突出文档中词频高的词;IDF可以突出只出现在少量文档中的词。 3. 一个总结 top2vec根据语义聚类提取关键词,所以这些关键词更加能代表主题的语义;而c-TF-IDF根据词频统计提取关键词,所以这些词更容易解释这个主题是什么,像是这个主题的标签名字。但是,有可能会被高频词所干扰。 |