【文本匹配】RE2

前文【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)已经简要地介绍了RE2的原理,下面就参照着原文及其网上的开源代码进行该模型的复现。为了能够验证模型是否复现成功,并且我更偏向做中文的相关任务,对比开源项目:https://github.com/zhaogaofeng611/TextMatch[1]在对应数据的复现结果,其在测试集上的ACC为:「0.8391」. 该论文pytorch版源码如下:https://github.com/alibaba-edu/simple-effective-text-matching-pytorch[2]感觉源码书写的挺好,就阅读了源码以及对其进行适当的修改以适应使用pytorch_lightning的训练模式。大家有兴趣的也可以看看源码。

原文整体来说介绍相对简单,但是在复现中一些细节问题很重要。实现源码已上传到我的github上:https://github.com/Htring/RE2_Text_Similarity_PL[3].

沿袭以往
的实现思路,程序依然分为一下模块:

数据处理模块dataloader
模型实现模块
pytorch_lightning 训练封装模块
模型训练和使用模块
代码无须过多介绍,大家看看源码和论文应该就能懂了。大致介绍一些比较有意思的程序。由于论文中很多模块会有多种处理方式,源码采用注册的方式去获取对应的模块。这种方式算是一种设计模块吧,值得学习一下。该种方式借助了一个装饰器函数,实现如下:

你可能感兴趣的:(文本匹配系列,深度学习,人工智能)