跳转到主要内容

一个非常简单的最先进NLP框架

项目描述

alt text

PyPI version GitHub Issues Contributions welcome License: MIT

一个针对最先进NLP的非常简单的框架。由柏林洪堡大学及其朋友开发。


Flair是

  • 一个强大的NLP库。 Flair允许您将我们最先进的自然语言处理(NLP)模型应用于您的文本,例如命名实体识别(NER)、词性标注(PoS)、对生物医学数据的特殊支持(HUNFLAIR)、词义消歧和分类,并支持快速增长的多种语言。

  • 一个文本嵌入库。 Flair具有简单的接口,允许您使用和组合不同的单词和文档嵌入,包括我们提出的(Flair嵌入)、BERT嵌入和ELMo嵌入。

  • 一个PyTorch NLP框架。 我们的框架直接建立在PyTorch之上,这使得使用Flair嵌入和类来训练自己的模型和实验新方法变得容易。

现在是版本0.8

加入我们:HU-Berlin的开放职位!

如果您对进行NLP/ML研究并热爱开源,请考虑申请柏林洪堡大学的研究助理和博士生职位

最先进模型

Flair附带了一系列NLP任务的最新模型。例如,查看我们的最新NER模型

语言 数据集 Flair 最佳发布 模型卡片 & 演示
英语 Conll-03(4类) 94.09 94.3 (Yamada et al., 2018) Flair英语4类NER演示
英语 Ontonotes(18类) 90.93 91.3 (Yu et al., 2016) Flair英语18类NER演示
德语 Conll-03(4类) 92.31 90.3 (Yu et al., 2016) Flair德语4类NER演示
荷兰语 Conll-03(4类) 95.25 93.7 (Yu et al., 2016) Flair荷兰语4类命名实体识别(NER)演示
西班牙语 Conll-03(4类) 90.54 90.3 (Yu et al., 2016) Flair西班牙语18类NER演示

新功能:大多数Flair序列标记模型(包括命名实体识别、词性标注等)现在托管在🤗 HuggingFace模型库!您可以浏览模型,检查它们的详细训练信息,甚至在线尝试每个模型!

快速开始

需求和安装

本项目基于PyTorch 1.5+和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:

Span [3]: "Berlin"   [− Labels: LOC (0.9992)]

教程

我们提供了一系列快速教程,帮助您开始使用该库

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

我们还有一个专门的页面,专门介绍我们的生物医学NER和数据集,其中包含安装说明和教程。

还有许多第三方文章和帖子说明了如何使用Flair

引用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}
}

如果您使用Flair框架进行实验,请引用以下论文:

@inproceedings{akbik2019flair,
  title={FLAIR: An easy-to-use framework for state-of-the-art NLP},
  author={Akbik, Alan and Bergmann, Tanja and Blythe, Duncan and Rasul, Kashif and Schweter, Stefan and Vollgraf, Roland},
  booktitle={{NAACL} 2019, 2019 Annual Conference of the North American Chapter of the Association for Computational Linguistics (Demonstrations)},
  pages={54--59},
  year={2019}
}

如果您使用Flair嵌入的池化版本(PooledFlairEmbeddings),请引用以下论文:

@inproceedings{akbik2019naacl,
  title={Pooled Contextualized Embeddings for Named Entity Recognition},
  author={Akbik, Alan and Bergmann, Tanja and Vollgraf, Roland},
  booktitle = {{NAACL} 2019, 2019 Annual Conference of the North American Chapter of the Association for Computational Linguistics},
  pages     = {724–728},
  year      = {2019}
}

如果您使用我们的新“FLERT”模型或方法,请引用以下论文:

@misc{schweter2020flert,
    title={FLERT: Document-Level Features for Named Entity Recognition},
    author={Stefan Schweter and Alan Akbik},
    year={2020},
    eprint={2011.06993},
    archivePrefix={arXiv},
    primaryClass={cs.CL}

联系方式

请通过Alan Akbik的电子邮件发送您的问题或评论。

贡献

感谢您对贡献的兴趣!有许多方式可以参与其中;从我们的贡献指南开始,然后查看这些开放问题以获取具体的任务。

对于希望深入了解API的贡献者,我们建议克隆存储库并查看单元测试以获取调用方法的示例。几乎所有类和方法都有文档说明,因此希望您在代码中找到自己的方法不会太困难。

在本地运行单元测试

您需要Pipenv来完成此操作

pipenv install --dev && pipenv shell
pytest tests/

要运行集成测试,请执行

pytest --runintegration tests/

集成测试将训练小型模型。之后,将加载训练好的模型进行预测。

若要运行慢速测试,例如加载和使用flair提供的嵌入,请执行

pytest --runslow tests/

许可

MIT许可(MIT)

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

特此授予任何人免费获取本软件和相关文档(“软件”)副本的许可,以无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件

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

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

flair_82-0.8.2.tar.gz (229.7 kB 查看哈希值)

上传时间

构建分发

flair_82-0.8.2-py3-none-any.whl (248.9 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面