一个非常简单的最新nlp框架
flair的Python项目详细描述
一个非常简单的框架,用于最先进的nlp。由Zalando Research开发
才能是:
一个强大的NLP库。Flair允许您应用我们最先进的自然语言处理(NLP) 文本模型,如命名实体识别(NER)、词性标注(POS)。 词义消歧和分类。
多语。多亏了Flair社区,我们支持的语言数量迅速增长。我们现在还包括 '一个模型,多种语言'标记,即预测各种语言输入文本的POS或NER标记的单个模型。
文本嵌入库。flair有简单的界面,允许您使用和组合不同的单词和 文档嵌入,包括我们提议的flair嵌入,bert嵌入和elmo嵌入。
Pythorch NLP框架。我们的框架直接建立在Pythorch上,使得 训练自己的模型,并使用flair嵌入和类尝试新方法。
现在请访问0.4.2版!
与最新技术的比较
flair在一系列nlp任务上优于以前的最佳方法:
<表><广告>(Borchmann等人,2018年)
下面是如何使用flair重现这些数字。您还可以在我们的论文中找到详细的评估和讨论:
用于序列标记的上下文字符串嵌入。 艾伦·阿克比克,邓肯·布莱斯和罗兰·沃尔格拉夫。 第27届计算语言学国际会议,《Coling 2018》
用于命名实体识别的混合上下文嵌入。 艾伦·阿克比克、坦贾·伯格曼和罗兰·沃尔格拉夫。 计算语言学协会北美分会2019年年会,NAACL2019
天赋:一个易于使用的框架,用于最先进的NLP。 艾伦·阿克比克、坦贾·伯格曼、邓肯·布莱斯、卡西夫·拉苏尔、斯特凡·施韦特和罗兰·沃尔格拉夫。 计算语言学协会北美分会2019年年会(演示),NAACL2019
快速启动
要求和安装
该项目基于pytorch 1.1+和python 3.6+,因为方法签名和类型提示非常漂亮。 如果没有Python3.6,请先安装它。这里是ubuntu 16.04的方法。 然后,在您最喜欢的虚拟环境中,只需执行以下操作:
pip install flair
示例用法
让我们对一个示例语句运行命名实体识别(ner)。你只需要做一个句子,加载
一个预先训练的模型,并用它来预测句子的标记:
fromflair.dataimportSentencefromflair.modelsimportSequenceTagger# make a sentencesentence=Sentence('I love Berlin .')# load the NER taggertagger=SequenceTagger.load('ner')# run NER over sentencetagger.predict(sentence)完成了!
语句现在有实体注释。打印句子以查看标记器找到了什么。print(sentence)print('The following NER tags are found:')# iterate over entities and printforentityinsentence.get_spans('ner'):print(entity)
这应该打印:
Sentence: "I love Berlin ." - 4 TokensThe following NER tags are found: LOC-span [3]: "Berlin"
教程
我们提供一套快速教程,帮助您开始使用库:
这些教程解释了基本NLP类的工作原理,以及如何加载预先训练的模型来标记
文本,如何用不同的单词或文档嵌入文本,以及如何训练自己的文本
语言模型、序列标签模型和文本分类模型。如果有不清楚的地方,请告诉我们。
还有一些好的第三方文章和帖子说明了如何使用天赋:
引用天赋
使用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嵌入的池版本(pooled flair embeddings),请引用:
@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}
}
联系人
请将您的问题或意见通过电子邮件发送到alan akbik
贡献
感谢您对贡献的兴趣!参与的方式有很多;
从我们的贡献者指南开始,然后
查看这些打开的问题以了解特定任务。
对于希望深入了解api的贡献者,我们建议克隆存储库并签出单元
测试如何调用方法的示例。几乎所有的类和方法都有文档记录,所以要找到解决方法
希望代码应该很简单。
在本地运行单元测试
您需要pipenv来完成此操作:
pipenv install --dev && pipenv shell
pytest tests/
要运行集成测试,请执行:
pytest --runintegration tests/
集成测试将训练小型模型。
之后,将加载经过训练的模型进行预测。
要运行慢速测试,例如加载和使用flair提供的嵌入,您应该执行:
pytest --runslow tests/
代码样式
为了确保标准化的代码样式,我们使用格式化程序黑色。
如果您的代码格式不正确,travis将无法生成。
如果要在每次提交时自动格式化代码,可以使用预提交。
只需通过pip install pre commit
安装它,并在根文件夹中执行pre commit install
。
这将向存储库添加一个钩子,该钩子将在每次提交时重新格式化文件。
如果要手动设置,请安装黑色viapip安装黑色
。
要重新格式化文件,请执行黑色。
许可证
麻省理工学院许可证(MIT)
Flair是根据以下麻省理工学院许可证获得许可的:麻省理工学院许可证(麻省理工学院)版权所有©2018 Zalando SE,https://tech.zalando.com
兹免费授予获得本软件及相关文档文件(以下简称"软件")副本的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权的权利。,和/或出售软件的副本,并允许向其提供软件的人员这样做,但须遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按"原样"提供,不作任何形式的明示或默示保证,包括但不限于适销性保证、特定用途适用性保证和非侵权性保证。在任何情况下,无论是在合同、侵权或其他诉讼中,作者或版权所有人都不对任何索赔、损害赔偿或其他责任负责,这些索赔、损害赔偿或其他责任是由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。
推荐PyPI第三方库