首页/文章/ 详情

一个快速的句子和段落相似查询方法

2年前浏览2373

1. 引言

句子和段落的相似度检查是自然语言处理中一个非常重要的研究课题,论文的查重其实就是检查段落之间的相似度。不过我们的目的与查重的目的正好相反,我们是想得到重复或相似的东西。假如我们计划开始一个研究题目"PFC2D的边坡稳定性分析", 我们想要做的第一步是迅速汇集出文献中所有带有这些关键词的相似句子或段落, 这一点类似于“头脑风暴法”。这种“聚类”对于研究生论文的选题和各种基金题目的选定有非常大的帮助,同时也对一般的论文写作非常有益,因为在这个聚合过程中,可以明白其它作者是如何表述这一topic的。本笔记所做的工作便是如何如何完成这样一种类型的任务。


2. 建立专业大数据库(岩土工程)

显而易见,要实现上述想法,简单地使用百度,Google或者Web of Science 查询的结果是不能自动聚合在一起的,这些搜索引擎搜索出来的结果都是离散的,需要用户自己进行整合和分析。因此为了这种特殊需求,我们需要建立一个local的大数据集。幸运的是,过去几年我们已经在岩土工程领域建立了一个非常大的数据集GeotechSet,这个数据集主要包括了岩石力学和土力学相关的文献,各种各样的书,杂志论文和会议论文。在此基础上,我们也不断聚类出某一特定领域的topic。下面所示的是部分聚类主题:


3. 句子相似的判别方法比较

一种简单的句子相似判别方法是使用Word2Vec或者Doc2Vec,在这种方法中首先需要对整个数据集进行训练, 这种方法使用词的window来表示句子语义的相似。例如window=8表示输入词左侧8个词和右侧8个词进入我们的训练窗口。这种方法典型的训练代码如下: 








               model = Doc2Vec(dm=0,                             dbow_words=1,                             vector_size=300,                              window=8,                              min_count=8,                              epochs=20,                              workers=cores)

如果window的尺寸选取得太小,则不能训练出有效的模型,反之,如果window的尺寸选取得太大,模型的训练时间和模型文件尺寸太大, 此外也存在一些其它问题,以后我们将深入探讨这种方法的优点和缺点。


本文提出的方法是直接把查询的关键词与数据集中的每个句子进行比较,只要句子中包含所要查询的词,不管句子有多长,都算一个相似的句子。当然在实际写作中,没有人整篇文章都使用逗号而不使用句号。在我们大量的测试中,这种方法比Doc2Vec得到的有用信息更多。


4. 相似查询的步骤

下面简要描述这种方法的实施步骤:

(1)首先需要对查询句子进行分词处理,去掉无用的stopwords,当然我们也可以直接输入关键词。例如我们需要查询“PFC2D的边坡稳定性分析” ,为了进行中英文的双语查询,扩展句子为“ PFC2D的边坡稳定性分析 slope stability"。我们需要引入如下的模块。

分词后的结果如下所示。


(2) 分词之后,从这四个分开的词组中组合其中的3个作为一个查询集 合。使用下面的代码进行组合计算。

这样我们可以得到如下的组合:





[('PFC2D', '边坡稳定性', 'slope'), ('PFC2D', '边坡稳定性', 'stability'), ('PFC2D', 'slope', 'stability'), ('边坡稳定性', 'slope', 'stability')]

(3) 对其中每一个组合分别查询整个数据集,最后得出如下结果。




【1】 UDEC (exported 2019-09-22_1329)【2】 pfc【3】 极限平衡

这是一个查询总结,结果显示在这3个文档中有我们要查找的东西。接下来显示每个文档中相似句子的内容。


【4】{UDEC (exported 2019-09-22_1329)} ==>rock slope step-path failure rock bridge slope stability PFC2D

【5】{pfc} ==> PFC2D Simulation on Stability of Loose Deposits Slope.

【6】{pfc} ==> loose deposit slope, pfc2d, seismic wave, microscopic, failure, simulation, stability

【7】{pfc} ==> rock slope;step-path failure;rock bridge;slope stability;PFC2D

【8】{pfc} ==> slope instability, pfc2d, numerical simulation, parallel bond model, stability analysis

【9】{pfc} ==> NUMERICAL SIMULATION OF A FILLED SLOPE STABILITY ON SOFT SOIL ROADBED REINFORCED BY GRAVEL PILE USING PFC2D

【10】{pfc} ==> PFC2D Simulation on Stability of Loose Deposits Slope in Highway Cutting Excavation

【11】{pfc} ==> Strength Reduction Method for Rock Slope Stability Analysis Based on PFC2D

【12】{pfc} ==> PFC2D (particle flow code in two dimensions) is applied to simulate the stability of loose deposits slope during highway cutting excavation.

【13】{pfc} ==> Strength reduction method was implemented into the particle flow code (PFC2D) that is based on discrete element method (DEM), to tackle the difficulties for the slope stability analysis based on continuum mechanics.

【14】{pfc} ==>The obtained factor of safety for the stability of dam slope from PFC2D analysis is higher than expectation mainly because the micro-parameters in PFC2D affect many macro-parameters simultaneously and the relation between micro-parameters and macro-parameters are nonlinear, which well fits engineering practice.

【15】 {pfc} ==>Then the particle discrete element software PFC2D is used to simulate the stability of slope excavation from the meso-mechanical level.

【16】 {极限平衡} ==>第一部分首先学习边坡稳定性的基本知识,其次对极限平衡法进行研究,同时学习岩桥的概念。第二部分学习BLOCK算法,通过对Rock Slope Stability Modeling 论文的研究明白了BLOCK算法的用法。


4. 结束语

这个笔记呈现了一种在local数据集中快速查询相似句子的方法,得出的结果能够帮助我们快速凝练出topic, 在很大程度上也有助于论文写作,特别是英文论文的写作,因为目前的数据集中90%是英文文献 。这种方法与其它相似查询方法结合,例如Doc2Vec,能够快速地提升主题的粘结度。

来源:计算岩土力学
代码&命令科普岩土UMPFCpython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-27
最近编辑:2年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 144粉丝 1047文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈