这篇博客用来记录导师项目中碰到的问题以及解决方法!

这周在结束了模型的训练和项目结构的初步理解,问题渐渐转到了获取数据集和对于新的数据集的训练和三元组的提取,下面是项目的结构:

此次的项目主要是为了实现橡胶挤塑机的故障预警和故障溯源,我的想法是希望通过机器运行过程中产生的日志中的文本信息进行命名实体抽取,在形成三元组之后存入图数据库(neo4j)之中,在工业机器出现该故障之后,可以及时查询到整个完整的故障链路和可能出现的分支情况,也能够对新出现的故障进行及时的增删改查。

那么第一步对于非结构化的文本和半结构化的文本的处理就显得较为重要。

这周汇报时,针对matlab生成日志问题,导师解答了疑惑,其实需要我自己写txt文件的判断语句,通过生成的数据是否产生偏差可以读取出故障,那么针对这个问题,首先分为两步,首先,提取出的三元组应当是故障——>问题的结构,但是对于此次的文本来说,一个故障的出现可能是2个或者2个以上的变量同时影响而得到的,不过这对于标注来说并不是什么大问题,我采用一个标注软件就能解决:

如上图所示,这是一个模糊控制的简单例子中的四条规则,我们将其提炼总结之后可以得到我们的故障文本,其中里面包含故障前因,故障,故障后果,其中的故障f1、f2和f3 如下所示:

分别是三个故障。

提炼总结后的中文文本:

得到故障文本之后,我们就开始对其进行处理,使用标注软件和脚本对其进行处理,并将其上传到neo4j数据库之中:

这样就说明我们提取三元组成功并且上传到数据库里了。那么接下来我们需要从模型中使用具体的数据来看看是否可以从其中提取出不同条件下出现的故障以及是否正确提取。

在matlab中打开模型,设定好参数后,运行simulink,得到我们需要的数据:

level.xlsx和flowout.xlsx两个数据文件

提取数据的命令:xlwrite(’level.xlsx’,level)

如图所示

接下来我们对数据进行处理,希望可以得到在flowout和level同时满足条件时输出正确的故障。代码如下:

上述代码还有错误,有待修改。(并未导入level.xlsx的数据),不过上述代码可以得到我想要的结果,那就是在flowout小于0.0032时输出正确的文字,接下来只要加入level的数据再做尝试。

接下来我们来导入level的数据进行下一步的处理。

这篇博客的学习内容因为企业实习的原因暂时搁置,但是希望未来可以用到这段时间中学习到的内容,但是C语言的复习内容和Linux 的新学内容仍然会更新。