胡笨笨硕士期间项目心得之项目一砂岩体系结构化推理场景

本文分享了一个关于体系结构化推理的项目,主要涉及需求分析、数据集构建、知识图谱使用以及TF-IDF聚类算法的应用。在解决砂岩体系结构推理问题时,通过分析数据集、构建层级关系,并利用TF-IDF进行聚类,最终确定最大可能性的父类节点。项目实现了从数据预处理到算法应用的完整流程,并提出了一种解决问题的思路和技术方案。
摘要由CSDN通过智能技术生成

项目一:体系结构化推理场景:

苟利国家生死以,岂因祸福避趋之。本算法适用于一切体系结构推理。重点,一切!!!!这就是个例子。


需求分析及数据集构建

在参加地学口的项目中,最令人头大的不是算法构建,也不需求分析(这句话是违心的,通常他们也不知道需求是什么),最令人头大的是没有数据集。现在深度学习能做吗,当然能做,好做吗,不好做。为啥?没有数据集呗,所以搞定数据集,让数据集可用,才是项目的第一奥义。别人只会给你认为可能有用的,但是不会给你觉得有用的,所以诸君且行且珍惜。
好了,言归正传当需求给出给砂岩体系结构时候,输入任意个砂岩名称,需要正确返回最大可能性的次父类节点到父类节点。节点是层级是明确的,那如何依次寻找最大可能性成为了问题,这里面分为三种情况,第一种,全部名称都是存在节点,且节点都在一条父子链路上,那样就很简单。第二种,有些名称在兄弟节点或者,最大可能性父类节点上的兄弟节点。第三种存在干扰名称,这些名称不存在与节点中。
根据项目要求需要将数据集存入知识图谱(这个在下一章知道图谱构建和国产Neo4j中也有案例详细涉及),我们可以将知识图谱简单的认为是Mysql。构建完成效果如下:
在这里插入图片描述

推理思想解析:

这时候一定有很多想法,比如用决策树,用哈希树等等, 而我那时候拿到该小案例项目时候,想到的解决策略是用占比的思想,简单来说,就是有的都有,没有的都没有,如果输入错误或构建中构建节点错误,那么查的时候整体比重将不会改变,所有什么用占比来构建,那下一步就是聚类算法,聚类算法字面意思是玩的来的就聚成一类,玩不来的就滚,莫挨老子。所以当输入一堆名称时候,我们先不急着一个个推出所有路径,我们先看这一堆词占哪些父类下的子类节点,那就是先把这些父类加入提取出来,同时把占比量提取出来。如此一下,再把父类提取一下,看一下,父类占父类的父类占比,这样就能一层层推出来,最后一定是那唯一一个最大总父类节点。这样这个项目就简单了很多,而不是不知道该干什么。
这样我们将图谱转换为一层层,层级关系,这边我们轻举例子,这是简单罗列三道四层。
这一篇已经将数据删除,意思是table.add_document(“F”, [“A r,…”]) 其中“F”是父类,[“A r,…,…,…,…”]是F所包含的父类,以此类推
“”

0就是代表最大父类节点的一个分支,之后一层类推
# 0
table.add_document("F", ["A r,....."])
# 1
table.add_document("A r", ["A c"])
# 1
table.add_document("B r", ["B b"])
# 1 4
table.add_document("C r", ["B s"])
# 2
table.add_document("A c", ["A m"])



解决方案:

提示:这里填写该问题的具体解决方案:

当构建好层级关系后,最后一步就是选一个聚类算法,这里我用的是tf-idf为什么呢,因为我搞自然语言处理,我觉得整个命名体识别,全靠一个Tf-Idf和词性标注撑着(这个后面博客会陆续更新)。所以很熟悉这个算法原理,这样就变的很简单了起来,用于一个Tf-Idf然后稍微改一下下,在加上结构化需求,给每一层最大可能性排序,然后根据最大可能性往下连接最大可能性,排序就用python里面sort函数就行,为什么不用什么算法排序呢,求求了不要装了,代码写的简洁大家看得懂就好了。别问我Tf-Idf怎么实现的,这个也太弱了吧,网上很多帖子,查一下就可以了,甚至只要知道它是个聚类算法,代码能看懂,找到在哪改就好了。最后还需要加一个如果都不是的情况下案例输出,代码案例如下

from tfidf import TfIdf
table = TfIdf()
# 0
table.add_document("F F", ["A r"])
# 1
# 3
table.add_document("B b", ["G"])

inplist = []
char =input()
while char!="":
    inplist.append
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经常喝假酒的胡小臣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值