项目实训第八周(4.19-4.25)
第八周,我们工作已经基本完善,准备好接受中期检查。首先,我们内部统一了博客标准,定位每人至少五篇。并且再次跟学长学姐沟通,最后确立了的第一种实验思路的可行性。
最终定位为基础复现李东进学长的互注意力机制。组内统一了实现思路,认为编码使用bert,代替双向LSTM的编码过程。互注意力机制中关于考生答案与参考答案的相互注意方面,我们完全复刻论文模型,拿到处理后的文本向量。与论文不同,我们没有再过一次双向LSTM进行信息的再处理,而是直接进入MLP,输出结果。经过大量训练,采用大约5000条数据,拿到了50%左右的正确率。我们中期任务顺利完成,能够输出对应的评分预测,但是准确率比较低。
不出意外,我们顺利的通过中期检查。但是,我们也在反思我们存在的问题。首先,我们之前的工作都是一起处理,这样四个人在一台电脑上进行操作,整体效率极低。我们将进一步分工,实现四部分任务的划分,这里可能还需要找老师确定一下。第二,模型虽然实现了,但是正确率太低了,继续优化和尝试更为有效的方式成为了我们的下一步目标。
我的个人操作主要集中在数据的预处理上,对于所给的数据集,里面虽说是纯文本的形式,但是由于考生书写和机器扫描带来的噪音,有很多杂乱符号,像
,<>,
等等等,我只是清洗出前半部分,能够完成训练的需求。过滤其实还是很粗糙,还得再次清洗,后面我再研究研究有什么特殊情况和如何进一步处理。清洗代码部分如下:
sentence = sentence.replace('<p>', ',').replace('</p>', ',')\
.replace('<P>', ',').replace('</P>', ',')\
.replace(' ', ',').replace('、',',')\
.replace('</>',',').replace('<br>',',').replace('<BR>',',')\
.replace(' ','').replace('\n','').replace('。',',').replace(':',',').replace('"','')\
.replace('.',',').replace('(',',').replace(')',',').replace('《','').replace('》','')
splited = sentence.split(',')