PaddleNLP一键预测功能:Taskflow API

QuickStart | 社区交流 | 一键预测&定制训练 | FAQ


特性

PaddleNLP提供开箱即用的产业级NLP预置任务能力,无需训练,一键预测。

  • 最全的中文任务:覆盖自然语言理解与自然语言生成两大核心应用;

  • 极致的产业级效果:在多个中文场景上提供产业级的精度与预测性能;

  • 统一的应用范式:通过paddlenlp.Taskflow调用,简捷易用。

任务名称 调用方式 一键预测 单条输入 多条输入 文档级输入 定制化训练 其它特性
中文分词 Taskflow("word_segmentation") 多种分词模式,满足快速切分和实体粒度精准切分
词性标注 Taskflow("pos_tagging") 基于百度前沿词法分析工具LAC
命名实体识别 Taskflow("ner") 覆盖最全中文实体标签
依存句法分析 Taskflow("dependency_parsing") 基于最大规模中文依存句法树库研发的DDParser
信息抽取 Taskflow("information_extraction") 适配多场景的开放域通用信息抽取工具
『解语』-知识标注 Taskflow("knowledge_mining") 覆盖所有中文词汇的知识标注工具
文本纠错 Taskflow("text_correction") 融合拼音特征的端到端文本纠错模型ERNIE-CSC
文本相似度 Taskflow("text_similarity") 基于百万量级Dureader Retrieval数据集训练RocketQA并达到前沿文本相似效果
情感分析 Taskflow("sentiment_analysis") 集成BiLSTM、SKEP、UIE等模型,支持评论维度、观点抽取、情感极性分类等情感分析任务
生成式问答 Taskflow("question_answering") 使用最大中文开源CPM模型完成问答
智能写诗 Taskflow("poetry_generation") 使用最大中文开源CPM模型完成写诗
开放域对话 Taskflow("dialogue") 十亿级语料训练最强中文闲聊模型PLATO-Mini,支持多轮对话
代码生成 Taskflow("code_generation") 代码生成大模型
文本摘要 Taskflow("text_summarization") 文本摘要大模型
文档智能 Taskflow("document_intelligence") 以多语言跨模态布局增强文档预训练模型ERNIE-Layout为核心底座
问题生成 Taskflow("question_generation") 问题生成大模型
零样本文本分类 Taskflow("zero_shot_text_classification") 集成多场景的通用文本分类工具
模型特征提取 Taskflow("feature_extraction") 集成文本,图片的特征抽取工具

QuickStart

环境依赖

  • python >= 3.6

  • paddlepaddle >= 2.3.0

  • paddlenlp >= 2.3.4

https://user-images.githubusercontent.com/11793384/159693816-fda35221-9751-43bb-b05c-7fc77571dd76.giftaskflow1

可进入 Jupyter Notebook 环境,在线体验 👉🏻 进入在线运行环境

PaddleNLP Taskflow API 支持任务持续丰富中,我们将根据开发者反馈,灵活调整功能建设优先级,可通过Issue或问卷反馈给我们。

社区交流👬

  • 微信扫描二维码并填写问卷之后,加入交流群领取福利

    • 获取5月18-19日每晚20:30《产业级通用信息抽取技术UIE+ERNIE轻量级模型》直播课链接

    • 10G重磅NLP学习大礼包:

详细使用

PART Ⅰ   一键预测

中文分词

 (可展开详情)多种分词模式,满足快速切分和实体粒度精准切分

三种分词模式,满足各类分词需求

from paddlenlp import Taskflow

# 默认模式————实体粒度分词,在精度和速度上的权衡,基于百度LAC
>>> seg = Taskflow("word_segmentation")
>>> seg("近日国家卫健委发布第九版新型冠状病毒肺炎诊疗方案")
['近日', '国家卫健委', '发布', '第九版', '新型', '冠状病毒肺炎', '诊疗', '方案']

# 快速模式————最快:实现文本快速切分,基于jieba中文分词工具
>>> seg_fast = Taskflow("word_segmentation", mode="fast")
>>> seg_fast("近日国家卫健委发布第九版新型冠状病毒肺炎诊疗方案")
['近日', '国家', '卫健委', '发布', '第九版', '新型', '冠状病毒', '肺炎', '诊疗', '方案']

# 精确模式————最准:实体粒度切分准确度最高,基于百度解语
# 精确模式基于预训练模型,更适合实体粒度分词需求,适用于知识图谱构建、企业搜索Query分析等场景中
>>> seg_accurate = Taskflow("word_segmentation", mode="accurate")
>>> seg_accurate("近日国家卫健委发布第九版新型冠状病毒肺炎诊疗方案")
['近日', '国家卫健委', '发布', '第九版', '新型冠状病毒肺炎', '诊疗', '方案']

批量样本输入,平均速度更快

输入为多个句子组成的list,平均速度会更快。

>>> from paddlenlp import Taskflow
>>> seg = Taskflow("word_segmentation")
>>> seg(["第十四届全运会在西安举办", "三亚是一个美丽的城市"])
[['第十四届', '全运会', '在', '西安', '举办'], ['三亚', '是', '一个', '美丽', '的', '城市']]

自定义词典

你可以通过传入user_dict参数,装载自定义词典来定制分词结果。 在默认模式和精确模式下,词典文件每一行由一个或多个自定义item组成。词典文件user_dict.txt示例:

平原上的火焰
上 映

在快速模式下,词典文件每一行为一个自定义item+”\t”+词频(词频可省略,词频省略则自动计算能保证分出该词的词频),暂时不支持黑名单词典(即通过设置”年“、”末“,以达到切分”年末“的目的)。词典文件user_dict.txt示例:

平原上的火焰  10

加载自定义词典及输出结果示例:

>>> from paddlenlp import Taskflow
>>> seg = Taskflow("word_segmentation")
>>> seg("平原上的火焰宣布延期上映")
['平原', '上', '的', '火焰', '宣布', '延期', '上映']
>>> seg = Taskflow("word_segmentation", user_dict="user_dict.txt")
>>> seg("平原上的火焰宣布延期上映")
['平原上的火焰', '宣布', '延期', '上', '映']

参数说明

  • mode:指定分词模式,默认为None。

  • batch_size:批处理大小,请结合机器情况进行调整,默认为1。

  • user_dict:自定义词典文件路径,默认为None。

  • task_path:自定义任务路径,默认为None。

词性标注

 基于百度词法分析工具LAC

支持单条和批量预测

>>> from paddlenlp import Taskflow
# 单条预测
>>> tag = Taskflow("pos_tagging")
>>> tag("第十四届全运会在西安举办")
[('第十四届', 'm'), ('全运会', 'nz'), ('在', 'p'), ('西安', 'LOC'), ('举办', 'v')]

# 批量样本输入,平均速度更快
>>> tag(["第十四届全运会在西安举办", "三亚是一个美丽的城市"])
[[('第十四届', 'm'), ('全运会', 'nz'), ('在', 'p'), ('西安', 'LOC'), ('举办', 'v')], [('三亚', 'LOC'), ('是', 'v'), ('一个', 'm'), ('美丽', 'a'), ('的', 'u'), ('城市', 'n')]]

标签集合

标签 含义 标签 含义 标签 含义 标签 含义
n 普通名词 f 方位名词 s 处所名词 t 时间
nr 人名 ns 地名 nt 机构名 nw 作品名
nz 其他专名 v 普通动词 vd 动副词 vn 名动词
a 形容词 ad 副形词 an 名形词 d 副词
m 数量词 q 量词 r 代词 p 介词
c 连词 u 助词 xc 其他虚词 w 标点符号
PER 人名 LOC 地名 ORG 机构名 TIME 时间

自定义词典

你可以通过装载自定义词典来定制化分词和词性标注结果。词典文件每一行表示一个自定义item,可以由一个单词或者多个单词组成,单词后面可以添加自定义标签,格式为item/tag,如果不添加自定义标签,则使用模型默认标签n

词典文件user_dict.txt示例:

赛里木湖/LAKE
高/a 山/n
海拔最高

装载自定义词典及输出结果示例:

>>> from paddlenlp import Taskflow
>>> tag = Taskflow("pos_tagging")
>>> tag("赛里木湖是新疆海拔最高的高山湖泊")
[('赛里木湖', 'LOC'), ('是', 'v'), ('新疆', 'LOC'), ('海拔', 'n'), ('最高', 'a'), ('的', 'u'), ('高山', 'n'), ('湖泊', 'n')]
>>> my_tag = Taskflow("pos_tagging", user_dict="user_dict.txt")
>>> my_tag("赛里木湖是新疆海拔最高的高山湖泊")
[('赛里木湖', 'LAKE'), ('是', 'v'), ('新疆', 'LOC'), ('海拔最高', 'n'), ('的', 'u'), ('高', 'a'), ('山', 'n'), ('湖泊', 'n')]

可配置参数说明

  • batch_size:批处理大小,请结合机器情况进行调整,默认为1。

  • user_dict:用户自定义词典文件,默认为None。

  • task_path:自定义任务路径,默认为None。

命名实体识别

 最全中文实体标签

支持两种模式

# 精确模式(默认),基于百度解语,内置91种词性及专名类别标签
>>> from paddlenlp import Taskflow
>>> ner = Taskflow("ner")
>>> ner("《孤女》是2010年九州出版社出版的小说,作者是余兼羽")
[('《', 'w'), ('孤女', '作品类_实体'), ('》', 'w'), ('是', '肯定词'), ('2010年', '时间类'), ('九州出版社', '组织机构类'), ('出版', '场景事件'), ('的', '助词'), ('小说', '作品类_概念'), (',', 'w'), ('作者', '人物类_概念'), ('是', '肯定词'), ('余兼羽', '人物类_实体')]

>>> ner = Taskflow("ner", entity_only=True)  # 只返回实体/概念词
>>> ner("《孤女》是2010年九州出版社出版的小说,作者是余兼羽")
[('孤女', '作品类_实体'), ('2010年', '时间类'), ('九州出版社', '组织机构类'), ('出版', '场景事件'), ('小说', '作品类_概念'), ('作者', '人物类_概念'), ('余兼羽', '人物类_实体')]

# 快速模式,基于百度LAC,内置24种词性和专名类别标签
>>> from paddlenlp import Taskflow
>>> ner = Taskflow("ner", mode="fast")
>>> ner("三亚是一个美丽的城市")
[('三亚', 'LOC'), ('是', 'v'), ('一个', 'm'), ('美丽', 'a'), ('的', 'u'), ('城市', 'n')]

批量样本输入,平均速度更快

>>> from paddlenlp import Taskflow
>>> ner = Taskflow("ner")
>>> ner(["热梅茶是一道以梅子为主要原料制作的茶饮", "《孤女》是2010年九州出版社出版的小说,作者是余兼羽"])
[[('热梅茶', '饮食类_饮品'), ('是', '肯定词'), ('一道', '数量词'), ('以', '介词'), ('梅子', '饮食类'), ('为', '肯定词'), ('主要原料', '物体类'), ('制作', '场景事件'), ('的', '助词'), ('茶饮', '饮食类_饮品')], [('《', 'w'), ('孤女', '作品类_实体'), ('》', 'w'), ('是', '肯定词'), ('2010年', '时间类'), ('九州出版社', '组织机构类'), ('出版', '场景事件'), ('的', '助词'), ('小说', '作品类_概念'), (',', 'w'), ('作者', '人物类_概念'), ('是', '肯定词'), ('余兼羽', '人物类_实体')]]

实体标签说明

  • 精确模式采用的标签集合

包含91种词性及专名类别标签,标签集合如下表:

WordTag标签集合
人物类_实体 组织机构类_军事组织机构_概念 文化类_制度政策协议 位置方位 术语类_医药学术语 信息资料_性别 否定词
人物类_概念 组织机构类_医疗卫生机构 文化类_姓氏与人名 世界地区类 术语类_生物体 链接地址 数量词
作品类_实体 组织机构类_医疗卫生机构_概念 生物类 世界地区类_国家 疾病损伤类 个性特征 数量词_序数词
作品类_概念 组织机构类_教育组织机构 生物类_植物 世界地区类_区划概念 疾病损伤类_植物病虫害 感官特征 数量词_单位数量词
组织机构类 组织机构类_教育组织机构_概念 生物类_动物 世界地区类_地理概念 宇宙类 场景事件 叹词
组织机构类_概念 物体类 品牌名 饮食类 事件类 介词 拟声词
组织机构类_企事业单位 物体类_概念 品牌名_品牌类型 饮食类_菜品 时间类 介词_方位介词 修饰词
组织机构类_企事业单位_概念 物体类_兵器 场所类 饮食类_饮品 时间类_特殊日 助词 修饰词_性质
组织机构类_国家机关 物体类_化学物质 场所类_概念 药物类 时间类_朝代 代词 修饰词_类型
组织机构类_国家机关_概念 其他角色类 场所类_交通场所 药物类_中药 时间类_具体时间 连词 修饰词_化
组织机构类_体育组织机构 文化类 场所类_交通场所_概念 术语类 时间类_时长 副词 外语单词
组织机构类_体育组织机构_概念 文化类_语言文字 场所类_网上场所 术语类_术语类型 词汇用语 疑问词 汉语拼音
组织机构类_军事组织机构 文化类_奖项赛事活动 场所类_网上场所_概念 术语类_符号指标类 信息资料 肯定词 w(标点)
  • 快速模式采用的标签集合

标签 含义 标签 含义 标签 含义 标签 含义
n 普通名词 f 方位名词 s 处所名词 t 时间
nr 人名 ns 地名 nt 机构名 nw 作品名
nz 其他专名 v 普通动词 vd 动副词 vn 名动词
a 形容词 ad 副形词 an 名形词 d 副词
m 数量词 q 量词 r 代词 p 介词
c 连词 u 助词 xc 其他虚词 w 标点符号
PER 人名 LOC 地名 ORG 机构名 TIME 时间

自定义词典

你可以通过装载自定义词典来定制化命名实体识别结果。词典文件每一行表示一个自定义item,可以由一个term或者多个term组成,term后面可以添加自定义标签,格式为item/tag,如果不添加自定义标签,则使用模型默认标签。

词典文件user_dict.txt示例:

长津湖/电影类_实体
收/词汇用语 尾/术语类
最 大
海外票仓

以”《长津湖》收尾,北美是最大海外票仓”为例,原本的输出结果为:

[('《', 'w'), ('长津湖', '作品类_实体'), ('》', 'w'), ('收尾', '场景事件'), (',', 'w'), ('北美', '世界地区类'), ('是', '肯定词'), ('最大', '修饰词'), ('海外', '场所类'), ('票仓', '词汇用语')]

装载自定义词典及输出结果示例:

>>> from paddlenlp import Taskflow

>>> my_ner = Taskflow("ner", user_dict="user_dict.txt")
>>> my_ner("《长津湖》收尾,北美是最大海外票仓")
[('《', 'w'), ('长津湖', '电影类_实体'), ('》', 'w'), ('收', '词汇用语'), ('尾', '术语类'), (',', 'w'), ('北美', '世界地区类'), ('是', '肯定词'), ('最', '修饰词'), ('大', '修饰词'), ('海外票仓', '场所类')]

可配置参数说明

  • batch_size:批处理大小,请结合机器情况进行调整,默认为1。

  • user_dict:用户自定义词典文件,默认为None。

  • task_path:自定义任务路径,默认为None。

  • entity_only:只返回实体/概念词及其对应标签。