1 引言
如前所说(GeotechSet数据集主题模拟(Topic Modeling); LDA Topic Modeling(主题建模): 以Rocscience 2021用户会议为例), 主题模拟是一种从大量非结构化文本中提取隐藏主题的技术, 主要挑战是如何从大量文本中提取出清晰、分离而且有意义的高质量主题,这在很大程度上取决于文本预处理的质量和寻找最佳主题数量的策略,因此主题模拟在很大程度上是一门艺术。本文使用了一种多阶段的主题模拟技术分离出高质量的主题,并通过词汇云加以展示。
2 限定范围
从原始的数据集GeotechSet中提取主题不是一个很好的策略。一方面原始数据集太大,运行时间太长;另一方面分离出的主题太多导致主题过于离散。因此第一步需要缩小主题的范围。在本文中,我们考虑主题"Step-Path Failure", 首先使用代码geotech-flashtext-passages.py从抽取出所有包含这个短语的段落,得到输入文件input.txt(715k). 以这个文件作为基础进行主题模拟。
3 主题模拟
在得到范围缩小的数据集后,开始进行主题模拟。使用的模型是distiluse-base-multilingual-cased,这是一个多语言的BERT模型,测试结果表明,这个模型比Doc2Vec模型得出的结果好。就像我们预期的一样,由于数据已经相对集中,因此这个缩小的数据集仅得出2个主题。
(1) 第一个主题
第一个主题的词汇云图如上所示。从这个图中可以看出主题的重要性等级,rockslides和fracture位于第一层次;instability,bridges,cement位于第二层次。这个结果显式地展示出岩石的阶梯状主要应用于滑坡和岩石滚落,岩石断裂是造成阶梯状破坏和边坡不稳定的主要成因,泥化影响着岩桥和边坡稳定。
(2) 第二个主题
第二个主题如下图所示。由于数据集的范围作了初步限定,因此第二个主题与第一个主题的差别不大,但还是有所区别。rockslides和rockfall位于第一层次;阶梯状破坏可能主要发生在sandstone和limestone中。
(3) 最小词频对结果的影响
最小词频min_count对产生的结果有一定影响。最小词频是在统计中忽略所有总频率低于此值的词。当min_count的值增大(min_count=50)时,结果会发生少许变化。显然,对于大的数据集,这个值的变化对结果影响不会太大。
3 全局主题
上面的过程把一个数据集分离成不同的主题,如果不区分主题,直接按词频进行统计,那么得出的结果如下图所示。(1) step path; (2) path failure, rock bridge; (3) rock slope; (4) rock mass, failure mode; intact rock model; (5) rock mass, failure mode; joint; (6) brittle fracture.....
4 结束语
主题模拟是一门艺术。首先使用一个拟定的主题从大的数据集中抽取出相关话题,然后进行主题模拟,区分出不同的主题。而全局的基于纯词频的统计则能给出整体的主题思想。目前这两种算法已经合并到一个代码中。