一个非常简单的最先进NLP框架
项目描述
一个针对最先进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)]
教程
我们提供了一系列快速教程,帮助您开始使用该库
- 教程1:基础
- 教程2:标记文本
- 教程3:嵌入单词
- 教程4:所有单词嵌入列表
- 教程5:嵌入文档
- 教程6:加载数据集
- 教程7:训练模型
- 教程8:训练自己的Flair嵌入
- 教程9:训练零样本文本分类器(TARS)
这些教程解释了基NLP类的操作方式,如何加载预训练模型来标记您的文本,如何使用不同的单词或文档嵌入来嵌入您的文本,以及如何训练您自己的语言模型、序列标记模型和文本分类模型。如果您有任何不清楚的地方,请告诉我们。
我们还有一个专门的页面,专门介绍我们的生物医学NER和数据集,其中包含安装说明和教程。
还有许多第三方文章和帖子说明了如何使用Flair
- 如何使用Flair构建文本分类器
- 如何使用Flair和Flask构建微服务
- Flair的Docker镜像
- Flair功能概述以及在Colab中的使用方法
- 用于突出显示提取实体的可视化工具
- Flair在命名实体识别中的最先进方法的实用方法
- NER算法基准测试
- 在Google Cloud Platform (GCP)上训练Flair文本分类器并在GCP上提供预测
- 基于transformer的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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b20456f886ad5599cedfc5cdb4322ff4c60eb3ee7986e5a77bf074b96f89de18 |
|
MD5 | 4570c12f737c1e2cc033d5d1fc48fd20 |
|
BLAKE2b-256 | 8fc0af0afaba3725b54041c4ae18aa97fda6b757a12f7ec35e21a111ae35cc28 |
flair_82-0.8.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 262e77ff00ddd9e4fe2068565398964058c523c5e49bf08de2d2f23885b2fcd6 |
|
MD5 | 2b7471dce8e528384b0ff94b2b7ff96a |
|
BLAKE2b-256 | cf9582d0e09d949742bfbd6a54533243a6272288735f5b244a028268b452ff80 |