top2vec话题发现原理和使用方法

2026-4-3 11:25| 发布者: Fuller| 查看: 113| 评论: 0

摘要: Top2vec话题发现是GooSeeker分词和文本分析上线的新功能。该功能放在GooSeeker分词扩展模块中,需要在集搜客数据管家上安装分词扩展模块才能使用该功能。【注意】分词扩展模块V6.0.0以上才开始提供Top2Vec分析功能。 ...

Top2vec话题发现是GooSeeker分词和文本分析上线的新功能。该功能放在GooSeeker分词扩展模块中,需要在集搜客数据管家上安装分词扩展模块才能使用该功能。

【注意】分词扩展模块V6.0.0以上才开始提供Top2Vec分析功能。

【注意】top2vec适合分析微博、评论等短文本,条数要足够多,如果只有几十几百条,嵌入到高维空间的时候过于分散,难于聚集成多个类别。

1. 原理介绍

1.1 与LDA和NMF的对比

GooSeeker分词扩展模块先后支持了LDA主题分析功能和NMF主题分析功能。LDA主题分析又同时支持gensim的LDA模型和sklearn的LDA模型。通常,LDA擅长分析长文本,比如,文章或者论文那样的篇幅。LDA可以从同一篇论文中分解出来多个主题。

但是,用户常用的场景是分析网络上的评论或者微博推文这样的短文本。原则上说LDA是不太适合的。实际操作以后就会发现,在这种场景下,NMF分析结果远远比LDA分析结果好解读。尤其像NMF特有的“锚定词”特性更对分析结果的解读大有帮助。然而,当数据量比较大的时候,比如,一个大官微一年发布的微博,条数很多,而且不同时期讨论的焦点是变化的,其实最适合这种场景的就是今天要介绍的Top2Vec话题发现模型。

我们此前讲解过LDA和NMF的基本原理,这两个主题分析模型都是“词袋”模型,两者区别:前者是一个随机过程模型,后者是一个代数(几何)模型。我们知道词袋模型丢失很多上下文语义信息。而今天要介绍的Top2Vec模型不是“词袋”模型,而是利用了更多的语义信息做分析。而且,Top2Vec是一种更加现代的算法。

1.2 Top2Vec的基本原理

Top2Vec被称为一种“嵌入”模型

现代算法常常出现“嵌入”一词。通常是指将低维的数据嵌入到一个高维的空间中。比如,一个3维的向量数据点,给它增加97维,就变成了一个100维空间中的一个点。高维嵌入有很多重要的作用,这里就不说了。当然,这只是一个浅显和不严谨的描述,实际算法到底怎样嵌入,其实是很复杂的。但是,对top2vec算法来说,目的是:将词和文档映射到高维向量空间,使语义相似的词或文档在空间中彼此靠近。

Top2Vec模型有个很鲜明的特点:就是“联合嵌入”。

例如,分析某官微2025年发布的微博的主题,一条条微博文本作为一行行数据导入到GooSeeker话题发现功能模块时,一条条微博被称为一个个“文档”,而每个文档又由多个词组成的,我们做文本分析就是针对文档和词进行分析。在一些最基本的算法中,每个词就是多维空间的一个坐标,那么一个文档就是这个多维空间中的一个点。这是一个几何模型,也可以说是代数模型,可以通过代数运算对空间进行变换,以便更好的观察这些文档数据点。

一些精妙的算法不会像上面说的那样构造一个很基本很原始的向量空间(前面版本发布的文本聚类功能就是先构造了这样的原始空间,再经过分解和降维,然后进行聚类)。top2vec就是这样精妙的算法,使用Doc2Vec (GooSeeker话题发现功能使用的算法)或 transformer embedding算法,将文档变成向量。生成的文档向量由文档中词的语义信息构成,每个维度表示什么,反正不再表示一个词。

同样,针对一个“词”,也可以表示成高维空间的一个数据点。Top2vec的鲜明特点就是:表示词的高维数据点和表示文档的高维数据点存在于同一个高维空间,所以叫“文档和词联合嵌入”到高维空间。

这种联合嵌入有个最大的好处:可以对比词和文档的相似度,直观上两个点靠近就相似度高。

当完成了联合嵌入以后,只需要利用聚类算法,把相似的文档分别聚在一起,这些分别聚集的文档就表示不同的主题。然后,可以为每一簇计算出来一个中心点,代表这个主题(像一个构造出来的文档)。那些与这个中心比较近的词就是代表这个主题的特征词。

下图跟LDA和NMF的分析结果很类似,就是分析出来的每个主题的特征词并按权重排序

1.3 目标主题数怎么确定

Top2vec运算之前,不需要用户像LDA那样指定一下目标主题数,而是由top2vec自己去发现有多少主题,能聚出来多少就多少。倒是可以要求top2vec对发现的主题进行合并,因为有时候发现的主题实在太多,把相近的合并在一起更容易解释。

下图是缩减到30个主题的样子(投影到2-D空间),实际上这个数据集发现了792个原始主题

1.4 总结

Top2Vec 是一种现代的主题分析方法,它通过“联合嵌入”算法将文档和词映射到同一个高维向量空间。在这个空间中,语义相似的文档和词会彼此靠近。Top2Vec 不像 LDA/NMF 那样依赖词袋模型,而是利用语义信息,使分析结果更符合人类理解。

分析过程大致如下:首先,将每条文档映射为向量;然后,对文档向量进行聚类,得到主题;最后,计算每个主题中心向量,并找出与中心向量最相似的词作为该主题的关键词。整个过程中,用户无需预先指定主题数,算法会自动发现主题数量,必要时可对相近主题进行合并以便解读。

2. 使用方法

2.1 导入数据和启动分析

按照表头要求,给excel表加上表头。必须至少含有两列:序号、正文。表头名字必须一模一样。导入以后,就可按“启动分析”按钮。

在第一次分析之前,并不知道能发现多少个话题,所以,也不知道要缩减到多少个话题。在界面上缺省显示缩减到10个话题。可以就用缺省值,如果发现的总话题数不够设定的数量,系统就不会执行缩减。

2.2 缩减话题数再次分析

如下图,等第一次分析完后,就知道了发现的话题数。可以先去观察文档簇可视化图,很可能会看到密密麻麻的都是发现的主题,此时可以尝试选择一个缩减到的数量。重新分析一下试试看。

2.4 导出数据

点击“下载结果”按钮,可以把分析结果导出成csv表。

【注意】用top2vec分析的数据量往往很大,所以不全量导出。属于某个主题的文档只导出最多1000个文档,属于某个主题的关键词只导出最多50个。

名字中含有“topic_0”的文件是未缩减之前的结果数据。

2.5 其它功能

2.5.1 看显著话题

每个文档划归每个话题的得分是不一样的。其中有一个最大得分,对应的话题就是显著话题。缺省情况下,文本-话题矩阵 页面显示每个文档的显著话题。此时,文档没有重新排序,保持导入时的顺序。

2.5.2 看属于某话题的前1000个文档

如下图,选择要看的话题,就可以看到属于这个话题打分最高的文档排在前面,可以观察这个话题的代表性文档,以便理解这个话题的含义。

2.6 选择运算模式

选择“快速型”会启动多核并行运算,但是,很容易出现资源不够或者冲突等异常。稳妥起见选择“稳定型”。


鲜花

握手

雷人

路过

鸡蛋

最新评论

GMT+8, 2026-4-5 05:50