NLP的强大工具——AllenNLP

学习NLP,推荐一下AllenNLP这个工具。

从学习pytorch到学习处理NLP问题,中间有很长的路要走,其中有很多坑。NLP数据预处理要比CV的麻烦很多,比如去除停用词,建立词典,加载各种预训练词向量,Sentence -> Word ID -> Word Embedding的过程(Tobias Lee:文本预处理方法小记),其中不仅需要学习pytorch,可能还要学习spacy,NLTK,numpy,pandas,tensorboardX等常用python包。用到RNN时,还要经过pad,pack,pad的过程,像这样的很多函数在使用时需要有数学基础加上简单的实践,感觉对一个新人来说,高维数据的流动有点抽象,不容易理解。还有数据集的读取,tensorboardX的使用。。。。各种东西要学习。在运行别人的代码后打印出信息,不仅看着上档次,而且可以看到很多实用的信息。。。

第一次知道allennlp这个东西,是在看了师兄给我的第一篇论文ELMo后大概了解的,后来学习pytorch才发现路途漫长,而这与两周一次的汇报进度相矛盾,于是计划在寒假学习一下allennlp,不仅要学习AllenNLP的使用,更要阅读AllenNLP的源码,可以学习到很多算法的实现。

AllenNLP是在pytorch基础上的封装,封装程度挺合理(后来发现了Gluonnlp,Gluonnlp在一些处理更方便,但缺乏灵活,功能更少),它的目标是处理NLP任务,可以减少很多额外的学习。比如,分词,帮你用spacy,NLTK,或者简单的按空格分词处理。数据集的读取,它内置了很多数据集的读取,你可以在通过学习它的读取方式,在它的基础上对自己需要的数据集进行读取。在Sentence -> Word ID -> Word Embedding的过程中,Glove,ELMo,BERT等常用的都可以直接使用,需要word,char粒度的都可以。log打印输出,在内置的输出项之外,你可以很方便地加入想要输出的信息。模型的各个组件中的参数都可以存在一个json/jsonnet文件中,修改参数进行实验很方便。

入门学习的网站:

[AllenNLP tutorials](AllenNLP – Tutorials)

[github AllenNLP源码](allenai/allennlp)

[简书中的一篇教程](AllenNLP 使用教程)

[realworldnlp系列教程](Real-World Natural Language Processing)

[知乎中对realworldnlp的一篇翻译文章](机器之心:利用AllenNLP,百行的Python代码训练情感分类器)

    原文作者:街道口扛把子
    原文地址: https://zhuanlan.zhihu.com/p/55113908
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞