主要工作
构建训练集
数据预处理
模型搭建
工作难点
数据集的构建
训练集的构建非常关键,因为这个关系到了最终模型的训练效果,以及训练完成后的测试效果。如果纯人工的进行标注,来判断这两篇论文在这个子空间上是否相似,或者是否不相似也是可以的,但前提是我们有足够的专业知识和基础,所以这种方法对于我们来说是不可行的。所以最终选择了根据各种相似度的计算进行综合从而选出在不同子空间上用来训练正样本对和负样本对。
模型搭建
规则嵌入部分的思想部分参考了
“Training Classifiers with Natural Language Explanations” 这篇论文,其他部分都是自己设计的。使用双向的LSTM主要是为了更好的获取语义的信息,再和规则的信息进行融合,从而更好的进行两篇论文之间相似关系的表示。
速度问题->优化
整个核心算法部分的运行速度是直接影响最终的呈现效果的。提升运行速度的入手点主要如下:
- 需要重复运行的代码部分都封装成函数
- for循环部分代码的调整
- 数据处理过程中得到的一些后续可能还会用到的列表、字典等结构都存到npy文件里(一共生成了52个有用的npy文件)
- 函数中有读文件的部分,都移到函数外面,避免后面重复读取文件,浪费时间