[深度学习工具]基于PyTorch的NLP框架Flair

[深度学习工具]基于PyTorch的NLP框架Flair

 

一个非常简单的框架,用于最先进的NLP。由Zalando Research开发。


Flair简介:

  • 一个功能强大的NLP库。Flair允许您将最先进的自然语言处理(NLP)模型应用于您的文本,例如命名实体识别(NER),词性标注(PoS),意义消歧和分类。

  • 多种语言。感谢Flair社区,我们支持快速增长的语言数量。我们现在还包括“ 一个模型,多种语言 ”标记器,即单个模型,用于预测各种语言的输入文本的PoS或NER标记。

  • 文本嵌入库。Flair具有简单的界面,允许您使用和组合不同的文字和文档嵌入,包括我们提出的Flair嵌入,BERT嵌入和ELMo嵌入。

  • Pytorch NLP框架。我们的框架直接在Pytorch构建,使您可以轻松地训练自己的模型,并使用Flair嵌入和类来尝试新方法。

与现有技术的比较:

Flair在一系列NLP任务上优于以前的最佳方法:

任务 语言 数据集 Flair 以前最好的
命名实体识别 英语 Conll-03 93.09(F1) 92.22 (Peters等,2018)
命名实体识别 英语 Ontonotes 89.71(F1) 86.28 (Chiu等,2016)
新兴实体检测 英语 WNUT-17 50.20(F1) 45.55 (Aguilar等,2018)
词性标注 英语 WSJ 97.85 97.64 (崔,2016)
分块 英语 Conll-2000 96.72(F1) 96.36 (Peters et al。,2017)
命名实体识别 德语 Conll-03 88.32(F1) 78.76 (Lample等,2016)
命名实体识别 德语 Germeval 84.65(F1) 79.08  Hänig 等,2014)
命名实体识别 抛光 PolEval-2018 86.6(F1)
(Borchmann等,2018)
85.1 (PolDeepNer)

以下是使用Flair 重现这些数字的方法。您还可以在我们的论文中找到详细的评估和讨论:

用于序列标记的上下文字符串嵌入。Alan Akbik,Duncan Blythe和Roland Vollgraf。第27届计算语言学国际会议,COLING 2018。

快速开始

要求和安装

该项目基于PyTorch 0.4+和Python 3.6+,因为方法签名和类型提示很漂亮。如果您没有Python 3.6,请先安装它。这是Ubuntu 16.04的方法。然后,在您最喜欢的虚拟环境中,只需:

pip install flair

示例用法

让我们对一个例句运行命名实体识别(NER)。您需要做的就是创建一个Sentence,加载预先训练的模型并使用它来预测句子的标签:

from flair.data import Sentence
from flair.models import SequenceTagger

# make a sentence
sentence = Sentence('I love Berlin .')

# load the NER tagger
tagger = SequenceTagger.load('ner')

# run NER over sentence
tagger.predict(sentence)

完成!在Sentence目前拥有实体的注解。打印句子以查看标记器找到的内容。

print(sentence)
print('The following NER tags are found:')

# iterate over entities and print
for entity in sentence.get_spans('ner'):
    print(entity)

这应该打印:

Sentence: "I love Berlin ." - 4 Tokens

The following NER tags are found: 

LOC-span [3]: "Berlin"

教程

我们提供了一套快速教程来帮助您开始使用该库:

这些教程解释了基本NLP类如何工作,如何加载预先训练的模型来标记文本,如何使用不同的单词或文档嵌入嵌入文本,以及如何训练自己的语言模型,序列标记模型和文本分类模型。如果有什么不清楚,请告诉我们。

还有很好的第三方文章和帖子说明了如何使用Flair:

引用天赋

使用Flair时请引用以下文章:

@inproceedings{akbik2018coling,
  title={Contextual String Embeddings for Sequence Labeling},
  author={Akbik, Alan and Blythe, Duncan and Vollgraf, Roland},
  booktitle = {{COLING} 2018, 27th International Conference on Computational Linguistics},
  pages     = {1638--1649},
  year      = {2018}
}

联系

请将您的问题或意见通过电子邮件发送给Alan Akbik

特约

感谢您对贡献的兴趣!有很多方法可以参与其中; 从我们的贡献者指南开始,然后针对特定任务检查这些未解决的问题

对于希望深入了解API的贡献者,我们建议克隆存储库并检查单元测试以获取如何调用方法的示例。几乎所有的类和方法都有记录,因此希望找到适合代码的方法很容易。

执照

麻省理工学院许可证(MIT)

Flair根据以下MIT许可证获得许可:MIT许可证(MIT)版权所有©2018 Zalando SE,https: //tech.zalando.com

特此授予任何获得本软件和相关文档文件(“软件”)副本的人免费许可,以无限制地交易本软件,包括但不限于使用,复制,修改,合并的权利根据以下条件,出版,分发,再许可和/或出售本软件的副本,并允许向其提供本软件的人员这样做:

上述版权声明和本许可声明应包含在本软件的所有副本或实质部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性,特定用途的适用性和不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔,损害或其他责任承担任何责任,无论是在合同,侵权行为还是其他方面,由本软件引起或与之相关,或者与本软件的使用或其他交易有关。软件。

代码可视化:

这是代码演变的一个很酷的可视化

[深度学习工具]基于PyTorch的NLP框架Flair

https://www.youtube.com/watch?v=PsbaD9MZ4Xk