BERTopic(V0.9.0)主题模拟技术

1 引言

BERTopic(最新版本0.9.0,8/7/2021)是一种主题建模技术(BERTopic performs topic Modeling with state-of-the-art transformer models),它利用Transformers和c-TF-IDF来创建密集的集群(clusters),使主题易于解释,同时在主题描述中保留重要的词汇。它甚至支持与LDAvis类似的可视化。

主题模拟的艺术(The Art of Topic Modeling)---以Step-Path Failure为例

GeotechSet数据集主题模拟(Topic Modeling)

LDA Topic Modeling(主题建模): 以Rocscience 2021用户会议为例

2 安装BERTopic

由于BERTopic依赖大量的库,为了避免发生冲突,建立了虚拟环境bertpoic, 使用默认安装方式: pip install bertopic;  BERTopic也支持Flair嵌入,包括gensim,spacy, 同时需要安装Tensorflow, 使用pip install bertopic[all]命令可以安装全部的后台库,不过,因为Tensorflow(大约425M)的下载速度太慢,所以目前没有全部安装。在默认的安装状态下,主要依赖的库:transformers(V4.9.2), torch(V1.9.0), sentence-transformers(2.0.0).

3 BERTopic的算法

总的来说,BERTopic使用了三个步骤:

(1) 嵌入文档(Embed documents)

用BERT或任何其他嵌入技术提取文档嵌入。BERTopic默认的嵌入模型是sentence-transformers,也可以使用Spacy, Flair, Gensim, USE等嵌入模型。

(2) 聚类文档(Cluster Documents)

用UMAP来降低嵌入的维度; 用HDBSCAN对减少的嵌入进行聚类,并创建语义相似的文件群。

(3) 创建主题表征(Create topic representation)

用c-TF-IDF提取和减少主题; 提高具有最大边际相关性的词汇的连贯性.

4 产生主题

为了便于比较,使用《主题模拟的艺术(The Art of Topic Modeling)---以Step-Path Failure为例》中的数据集,这是一个基于关键词step-path failure的数据集,在那篇笔记中,采用Top2Vec库进行了主题模拟,结果产生出两个非常近似的主题, 其中最核心的关键词是rockslides和fracture。

BERTopic默认的模型是paraphrase-MiniLM-L6-v2, 以前曾经使用过这个模型(联合6种Transformers预训练模型). 同样的数据使用BERTopic产生出如下19个主题。

0_bridges_rock_bridge_slope

1_mass_strength_srm_joint

2_steppath_verification_problem_characterisation

3_steppath_sets_park_lake

4_mechanics step path failure discontinuity_egeote...

5_stress_fracture_elfen_coalescence

6_slopes_brittle_simulation_unstable

7_brittle_fractures_fracture_slope

8_flaws_crack_cracks_coalescence

9_bridges_failure_joints_rock

10_jointed_blocks_mechanical_joint

11_strength_tests_anisotropic_dip

12_al_discontinuities_slope_rock

13_steppath_slopes_fig_visualizations

14_slope_shear_failure_structures

15_slope_brittle_displacement_pit

16_professor_modelling_brittle_fracture

17_cement_granular_particles_particle

18_rockslide_terrestrial_photogrammetry_surface

BERTopic(V0.9.0)主题模拟技术的图1

5 代表性段落

对产生的每个主题,默认情况下可以列出该主题的三个对应性文档(即数据集内的段落)。例如,0_bridges_rock_bridge_slope对应的主题词汇: 

bridges, rock, bridge, slope, analysis, 

stability, failure, fracture, equilibrium, slopes

三个代表性段落如下所示(略)。

6 主题聚类

相似的主题可以聚合在一起,如下图所示。

BERTopic(V0.9.0)主题模拟技术的图2

7 相似词汇

BERTopic能够在数据集内产生类似Word2Vec的相似词汇,下面试验一些例子:

(1) rock joints---rock, failure, fracture, bridge, joint, slopes, analysis

(2) toppling---discontinuities, slope, rock, mechanisms, failure, stability

(3) rockslide---terrestrial, rockfall, photogrammetry, topography,

 geometry, rocky, mountains, reconstruction, debris


默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注