1 引言
在geotech-words-flashtext-combination.py,我们使用的查询方法是对一个句子进行分词,然后对分词进行组合使用C(n,3)对整个数据集进行查询,从而把数据集中所有包含关键词组合的句子提取出来。这种策略是以单句为基础的,在需要仔细分析单句表达句子的意思时非常有效。不过,有时我们也需要根据关键词查询整个段落,这样可以快速对寻找的主题形成一个总体框架(a big picture)。这个笔记简要描述了快速实现这种思路的一个方法。
2 实现步骤
整个工作是基于GeotechSet数据集完成的。GeotechSet是一个不断进化的岩土工程文献数据库,包括岩石力学和土力学两部分, 主要的用途一方面用于查找相关资料,另一方面用于机器学习。其中大部分内容与我自己的专业相关,包括论文,研究报告,课程讲稿及软件手册等。为了快速聚合查询内容,使用了以下的步骤和算法:
(1) 把GeotechSet中的所有数据合并成一个文件;
(2) 读取数据文件,每个段落作为一个item, 形成一个列表(list);
(3) 目前设置了两个查询短语,在大多数情况下已经足够,如果一个段落内同时包含这两个短语,则存入文件中。
核心代码如下:
3 段落性查询
下面用两个例子试验这个算法:
试验(1) q1='Slope instability' ; q2='wedge failure' 这个查询的目的是想分析岩石边坡楔形破坏, 查询结果应该同时包括这两个短语。
部分查询结果摘录如下, 包括论文摘要或段落:
[1] Havaej, M. et al. (2013). "Incorporating brittle fracture into three-dimensional modelling of rock slopes." Slope Stability 2013, Australian Centre for Geomechanics, 625-638.
[2] Lenka, S. K., et al. (2017). "Slope Mass Assessment of Road Cut Rock Slopes Along Karnprayag to Narainbagarh Highway in Garhwal Himalayas, India." Advancing Culture of Living with Landslides, Vol 5: Landslides in Different Environments: 407-413.
[3] Brideau, M. A., et al. (2011). "Three-dimensional slope stability analysis of South Peak, Crowsnest Pass, Alberta, Canada". Landslides 8(2): 139-158.
[4] Babanouri, N. and V. Sarfarazi (2018). "Numerical analysis of a complex slope instability: Pseudo-wedge failure". Geomechanics and Engineering 15(1): 669-676.
试验(2) q1='Slope stability' ; q2='rock bridge' 这个查询的目的是想分析岩桥在岩石边坡中的使用, 查询结果应该同时包括这两个短语。结果显示在GeotechSet数据集内共有87篇论文或段落, 基本上覆盖了这个分支研究领域的所有结果。
4 结束语
本文描述了一个在GeotechSet数据内快速聚合相关段落的算法。聚合出来的内容一方面可以用来深入了解查询主题的研究进展,另一方面也可以直接把结果文件作为机器学习的输入数据,例如回答问题(阅读理解回答问题(Question Answering)---一个更强的BERT预训练模型),文本续写(开放式文本生成(Open-Ended Text Generation))和文章总结(生成摘要(Summarization)的新方法)等。