Forte是一个可扩展的框架,用于构建可组合和模块化的NLP工作流。

forte的Python项目详细描述





Build StatuscodecovDocumentation StatusLicenseChat

Forte是一个用于构建自然语言处理管道的工具包,具有跨任务的特点 交互、适应性强的数据模型接口等等。Forte最初是开发的 由Petuum与其他研究所合作积极贡献。 此存储库的镜像由Petuum Open Source维护。在

它提供了一个组装的平台 以高度可组合的方式使用最先进的NLP和ML技术,包括 任务范围从信息检索、自然语言理解到自然 语言生成。在

使用Forte,构建一个可以搜索文档的集成系统非常简单, 在一个地方分析和提取信息并生成语言。这允许开发人员 充分利用和结合每一步的力量和成果,并允许系统 在管道末端做出充分知情的决定。在

虽然组合任意第三方工具非常容易(请查看这些examples!), Forte还通过Texar支持深度学习,并通过提供 允许用户将任务转换为模型的模型数据接口。在

核心设计原则

Forte的核心设计原则是抽象NLP概念和机器学习模型, 它在数据、模型和任务之间提供了更好的分离,但支持交互 管道不同部件之间。基于此,我们提出了以下建议:

  • Composable:Forte帮助用户将问题分解为datamodels和{em1}$tasks。 任务可以进一步划分为子任务。复杂的用例 可以通过简单的python api或声明性的方法来解决异构模块的问题 配置文件。管道中的组件(例如模型或任务)可以灵活地 交换,只要API合同匹配。该方法极大地改进了模块 可重用性,使快速开发成为可能,并使库灵活满足用户需求。在

  • Generalizable and Extensible:Forte促进泛化,不仅支持 NLP任务的范围,但也可扩展到新任务或新域。尤其是Forte 提供Ontology系统,帮助用户根据任务定义类型。 用户只需通过JSON文件以声明方式指定类型。我们的代码生成工具 将自动生成python文件,以便在您的项目中使用。看看我们的 Ontology Generation documentation了解更多详细信息。在

  • 通用数据流:Forte可组合体系结构的核心是通用数据 支持不同步骤之间无缝数据流的格式。Forte提倡透明 数据流有助于灵活的过程干预和简单的管道控制。与 通用数据格式Forte是数据检查、组件交换和 结果共享。这在团队协作中特别有用!在


forte_arch.jpg
A high level Architecture of Forte showing how ontology and entries work with the pipeline.

^{tb2}$

套餐概述

forte an open-source toolkit for NLP
forte.data.readers a data module for reading different formats of text data like CoNLL, Ontonotes etc
forte.processors a collection of processors for building NLP pipelines
forte.trainer a collection of modules for training different NLP tasks
ft.onto.base_ontology a module containing basic ontologies like Token, Sentence, Document etc

库API示例

运行命名实体识别器的简单代码示例

importyamlfromforte.pipelineimportPipelinefromforte.data.readersimportCoNLL03Readerfromforte.processorsimportCoNLLNERPredictorfromft.onto.base_ontologyimportToken,Sentencefromforte.common.configurationimportConfigconfig_data=yaml.safe_load(open("config_data.yml","r"))config_model=yaml.safe_load(open("config_model.yml","r"))config=Config({},default_hparams=None)config.add_hparam('config_data',config_data)config.add_hparam('config_model',config_model)pl=Pipeline()pl.set_reader(CoNLL03Reader())pl.add(CoNLLNERPredictor(),config=config)pl.initialize()forpackinpl.process_dataset(config.config_data.test_path):forpred_sentenceinpack.get_data(context_type=Sentence,request={Token:{"fields":["ner"]}}):print("============================")print(pred_sentence["context"])print("The entities are...")print(pred_sentence["Token"]["ner"])print("============================")

{a10}还有很多例子。在

下载和安装

要从PyPI安装已发布的版本,请执行以下操作:

^{pr2}$

从源安装

git clone https://github.com/asyml/forte.git
cd forte
pip install .

入门

贡献

如果您有兴趣对Forte进行增强,请快速浏览我们的Code of Conduct和{a15}

许可证

Apache License 2.0

支持Forte

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android:在内部存储器中保存两个同名位图   java如何获取每个月的记录?   java错误:找不到com。安卓工具。构建:渐变:3.2.1   Java反射,如何使用构造函数获取newInstance是一个很重要的问题。类别ex:Class<Customer>customerClass   java具体类不使用泛型标识符编译   java InputStream在Apache FileUpload API中关闭   java自动隐藏任务栏和最大屏幕空间   java端点返回对象而不是直接JSON   java打印BST的直径   在Java中将节点追加到xml   java如何在Jersey中注册静态类?   java如何修改for循环,使其不比较第一个循环和最后一个循环,而是将所有其他循环与最后一个循环进行比较?   java扩展主机意外终止(vscode)   如何使用Java进程读取mysql控制台输出   java从现有列表创建元素列表   java将数据流式传输到BigQuery新表中?   java如何从绑定结果验证失败返回错误响应?