艾伦人工智能研究院(AI2)开源AllenNLP,它是一个基于PyTorch的NLP研究库,利用深度学习来进行自然语言理解,通过处理低层次的细节、提供高质量的参考实现,能轻松快速地帮助研究员构建新的语言理解模型。
AllenNLP能让设计和评估新的深度学习模型变得简单,几乎适用于任何NLP问题,通过利用一些基础组件,你可以轻松地在云端或是你自己的笔记本上跑模型。
关于AllenNLP的详细信息,可以参见论文AllenNLP: A Deep Semantic Natural Language Processing Platform,地址:http://allennlp.org/papers/AllenNLP_white_paper.pdf
模型对比
下面是AllenNLP模型与相关模型的对比,前者在合理的训练时间下均能取的较好的表现:
机器理解
机器理解(Machine Comprehension,MC)模型通过在文本内选择一段内容来回答自然语言问题。AllenNLP MC模型能重现BiDAF(Bi-Directional Attention Flow)的效果,后者在SQuAD数据集上跑分已经接近state-of-the-art。AllenNLP BIDAF在 SQuAD dev数据集中的EM分为68.7,只比原始BIDAF模型的67.7分多一点点,两者同样在p2.xlarge上训练了4个小时。
语义角色标注
语义角色标注(Semantic Role Labeling,SRL)模型分析句子中各成分与谓词之间的关系,建造表征来回答关于句义的基本问题,如“谁对谁做了什么”等。AllenNLP SRL模型能重现深度BiLSTM模型的效果,在CoNLL 2012上能得到78.9的F1分数。
文字蕴涵
文字蕴涵(Textual Entailment,TE)模型分析两个句子,分析一个句子中是否蕴涵了另一个句子的知识。AllenNLP TE模型能重现可分解注意力模型的效果,后者在SNLI数据集上有接近state-of-the-art的表现。AllenNLP TE模型得到了84.7分,可以与可分解注意力模型得到的86.3分相提并论。