首页/文章/ 详情

利用文本相似度聚类产生能够再学习的新文档

1年前浏览1454

1. 引言

如《通过Euclidean距离计算向量值来对句子相似度排序》所言,欧几里得距离计算文本相似有缺陷,特别是处理非结构化的文本时经常返回空值,因此决定抛弃这种算法,改用余弦相似计算。本文首先讨论使用余弦相似的算法,然后讨论如何遍历整个目录来得到目录下文档所有的相似内容。

2. 余弦相似计算

我们仍然使用sklearn库,首先导入模块:

    from sklearn.feature_extraction.text import CountVectorizerfrom sklearn.metrics.pairwise import cosine_similarityimport codecsimport os

    然后进行余弦相似计算,这里使用了一个判断语句if (round(each[1],2)) >= 0.3,用来获得相似度大于等于0.3的那些句子。

      #方法1--余弦相似判断        cosine_similarity_cofficient = cosine_similarity(features)    cos_sort_sims = sorted(enumerate(cosine_similarity_cofficient[0]), key=lambda item: -item[1])    number_of_sentence = 0    for each in cos_sort_sims:        number_of_sentence = number_of_sentence   1        if (round(each[1],2)) >= 0.3:                     print('('  str(number_of_sentence)   ') '   str(round(each[1],2)), sentences[each[0]])    print('-'*70   '\n')

      3. 遍历整个目录

      我们把这个用法扩展到整个目录下,用来查找与query句子最相似的句子。使用下面的代码:

        databases = []directory = ".\\temp"for fpathe,dirs,fs in os.walk(directory):    for f in fs:        flname = os.path.join(fpathe,f)           databases.append(flname)

        4. 试验结果

        我们使用“PFC2D rock slopes stability simulation”作为目标句子进行相似度计算,把阈值设定为0.5,这将保证显示相对精确的结果。产生的结果保存在文件中。一些主要的

        • PFC2D rock slopes stability simulation

        • PFC2D Simulation on Stability of Loose Deposits Slope

        • PFC2D rock slopes toppling failure stability analysis

        • Strength Reduction Method for Rock Slope Stability Analysis Based on PFC2D

        • Step-path failure mode and stability calculation of jointed rock slopes by PFC2D

        • Simulation of step-path brittle failure in rock slopes

        • Shear resistance of jointed rock masses and stability calculation of rock slopes

        Keywords:


        Rock-Slope-Stability-Modeling, Stability of Earth Slopes, The stability of rock slopes is considered crucial to public safety in highways passing through rock loose deposit slope, seismic wave, microscopic, rock slope step-path failure rock bridge slope stability, slope instability, numerical simulation, parallel bond model, stability analysis, stability rock slope jointed rock weathered rock, strength reduction, limit analysis stability number to the stability of slopes.  rock falls RocFall software rock slopes rock fall roll-out distance catchment ditch.


        Reference

        [1] Kumsar, H., et al. (2000). "Dynamic and static stability assessment of rock slopes against wedge failures." Rock Mechanics and Rock Engineering 33(1): 31-51.

        [2] Zheng, Y., et al. (2019). "Stability analysis of anti-dip bedding rock slopes locally reinforced by rock bolts." Engineering Geology 251: 228-240.

        [3] Taheri, A. and K. Tani (2010). "Assessment of the Stability of Rock Slopes by the Slope Stability Rating Classification System." Rock Mechanics and Rock Engineering 43(3): 321-333.

        [4] Pal, S., et al. (2012). "Earthquake Stability Analysis of Rock Slopes: a Case Study." Rock Mechanics and Rock Engineering 45(2): 205-215.

        [5] J.E. Jennings. (1972) An approach to the stability of rock slopes.

        5. 出现的问题

        单个数据文件的尺寸不能太大,初步估计超过2M就会出现错误:“Unable to allocate 9.04 GiB for an array with shape (53973, 22490) and data type float64”,这是因为内存不够,试着把虚拟内存调到了最大值,也不起作用。目前还没有找到好的解决方法,只能把大的文件分割成小文件。

        6. 结束语

        本文使用余弦相似度产生一个特定主题的文本,在此基础上可以进行二次创作,同时这个新的文档也保存在数据集中能够进行再学习。


        来源:计算岩土力学
        SystemPFC试验
        著作权归作者所有,欢迎分享,未经许可,不得转载
        首次发布时间:2022-09-27
        最近编辑:1年前
        计算岩土力学
        传播岩土工程教育理念、工程分析...
        获赞 138粉丝 982文章 1776课程 0
        点赞
        收藏
        作者推荐

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

        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,能够快速地提升主题的粘结度。来源:计算岩土力学

        未登录
        还没有评论
        课程
        培训
        服务
        行家
        VIP会员 学习 福利任务 兑换礼品
        下载APP
        联系我们
        帮助与反馈