Skip to content

Commit dc68121

Browse files
authored
update taskflow doc (PaddlePaddle#1129)
1 parent 9686f0d commit dc68121

File tree

2 files changed

+212
-0
lines changed

2 files changed

+212
-0
lines changed

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,48 @@ PaddleNLP提供了多粒度、多场景的NLP应用示例,面向动态图模
243243
| [P-Tuning](./examples/few_shot/p-tuning/) |基于[GPT Understands, Too](https://arxiv.org/pdf/2103.10385.pdf) 论文策略实现, 首次提出连续可学习的模板参数,在全参数空间对模板进行连续优化,大幅提升模型稳定性和模型效果。|
244244
| [EFL](./examples/few_shot/efl/) | 基于[Entailment as Few-Shot Learner](https://arxiv.org/abs/2104.14690) 论文策略实现,将下游目标任务转换为蕴含任务降低模型预测空间,显著提升模型效果。|
245245

246+
## Taskflow 一键预测
247+
248+
Taskflow是功能强大的自然语言处理库,旨在提供开箱即用的NLP预置任务,覆盖自然语言理解与自然语言生成两大核心应用,在中文场景上提供工业级的效果与极致的预测性能。
249+
250+
### 调用示例
251+
252+
```python
253+
from paddlenlp import Taskflow
254+
255+
# 中文分词
256+
seg = Taskflow("word_segmentation")
257+
seg("第十四届全运会在西安举办")
258+
>>> ['第十四届', '全运会', '', '西安', '举办']
259+
260+
# 词性标注
261+
pos_tagging = Taskflow("pos_tagging")
262+
pos_tagging("第十四届全运会在西安举办")
263+
>>> [('第十四届', 'm'), ('全运会', 'nz'), ('', 'p'), ('西安', 'LOC'), ('举办', 'v')]
264+
265+
# 命名实体识别
266+
ner = Taskflow("ner")
267+
ner("《孤女》是2010年九州出版社出版的小说,作者是余兼羽")
268+
>>> [{'text': '《孤女》是2010年九州出版社出版的小说,作者是余兼羽', 'items': [{'item': '《', 'offset': 0, 'wordtag_label': 'w', 'length': 1}, {'item': '孤女', 'offset': 1, 'wordtag_label': '作品类_实体', 'length': 2}, {'item': '》', 'offset': 3, 'wordtag_label': 'w', 'length': 1}, {'item': '是', 'offset': 4, 'wordtag_label': '肯定词', 'length': 1}, {'item': '2010年', 'offset': 5, 'wordtag_label': '时间类', 'length': 5}, {'item': '九州出版社', 'offset': 10, 'wordtag_label': '组织机构类', 'length': 5}, {'item': '出版', 'offset': 15, 'wordtag_label': '场景事件', 'length': 2}, {'item': '的', 'offset': 17, 'wordtag_label': '助词', 'length': 1}, {'item': '小说', 'offset': 18, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': ',', 'offset': 20, 'wordtag_label': 'w', 'length': 1}, {'item': '作者', 'offset': 21, 'wordtag_label': '人物类_概念', 'length': 2}, {'item': '是', 'offset': 23, 'wordtag_label': '肯定词', 'length': 1}, {'item': '余兼羽', 'offset': 24, 'wordtag_label': '人物类_实体', 'length': 3}]}]
269+
270+
# 句法分析
271+
ddp = Taskflow("dependency_parsing")
272+
ddp("百度是一家高科技公司")
273+
>>> [{'word': ['百度', '', '一家', '高科技', '公司'], 'head': ['2', '0', '5', '5', '2'], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB']}]
274+
```
275+
更多使用方法请参考[Taskflow文档](./docs/model_zoo/taskflow.md)
276+
277+
### 任务清单
278+
279+
| 自然语言理解任务 | 自然语言生成任务 |
280+
| :------------ | ---- |
281+
| 中文分词 | 生成式问答 |
282+
| 词性标注 | 智能写诗 |
283+
| 命名实体识别 | |
284+
| 文本纠错 | |
285+
| 句法分析 | |
286+
| 情感分类 | |
287+
246288
## 交互式Notebook教程
247289

248290
- [使用Seq2Vec模块进行句子情感分类](https://aistudio.baidu.com/aistudio/projectdetail/1283423)

docs/model_zoo/taskflow.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# PaddleNLP Taskflow
2+
3+
- [介绍](#介绍)
4+
* [任务清单](#任务清单)
5+
- [用法](#用法)
6+
* [中文分词](#中文分词)
7+
* [词性标注](#词性标注)
8+
* [命名实体识别](#命名实体识别)
9+
* [文本纠错](#文本纠错)
10+
* [句法分析](#句法分析)
11+
* [情感分类](#情感分类)
12+
* [生成式问答](#生成式问答)
13+
* [智能写诗](#智能写诗)
14+
15+
## 介绍
16+
17+
`paddlenlp.Taskflow`是功能强大的自然语言处理库,旨在提供开箱即用的NLP预置任务,覆盖自然语言理解与自然语言生成两大核心应用,在中文场景上提供工业级的效果与极致的预测性能。
18+
19+
### 支持任务清单
20+
21+
| 自然语言理解任务 | 自然语言生成任务 |
22+
| :------------ | ---- |
23+
| 中文分词 | 生成式问答 |
24+
| 词性标注 | 智能写诗 |
25+
| 命名实体识别 | 文本翻译(TODO) |
26+
| 文本纠错 | 开放域对话(TODO) |
27+
| 句法分析 | 自动对联(TODO) |
28+
| 情感分类 | |
29+
30+
随着版本迭代后续会持续开放更多的应用场景。
31+
32+
## 用法
33+
34+
### 中文分词
35+
36+
```python
37+
from paddlenlp import Taskflow
38+
39+
seg = Taskflow("word_segmentation")
40+
seg("第十四届全运会在西安举办")
41+
>>> ['第十四届', '全运会', '', '西安', '举办']
42+
43+
seg(["第十四届全运会在西安举办", "三亚是一个美丽的城市"])
44+
>>> [['第十四届', '全运会', '', '西安', '举办'], ['三亚', '', '一个', '美丽', '', '城市']]
45+
```
46+
47+
### 词性标注
48+
49+
```python
50+
from paddlenlp import Taskflow
51+
52+
pos_tagging = Taskflow("pos_tagging")
53+
pos_tagging("第十四届全运会在西安举办")
54+
>>>[('第十四届', 'm'), ('全运会', 'nz'), ('', 'p'), ('西安', 'LOC'), ('举办', 'v')]
55+
56+
pos_tagging(["第十四届全运会在西安举办", "三亚是一个美丽的城市"])
57+
58+
>>> [[('第十四届', 'm'), ('全运会', 'nz'), ('', 'p'), ('西安', 'LOC'), ('举办', 'v')], [('三亚', 'LOC'), ('', 'v'), ('一个', 'm'), ('美丽', 'a'), ('', 'u'), ('城市', 'n')]]
59+
```
60+
61+
### 命名实体识别
62+
63+
```python
64+
from paddlenlp import Taskflow
65+
66+
ner = Taskflow("ner")
67+
ner("《孤女》是2010年九州出版社出版的小说,作者是余兼羽")
68+
>>> [{'text': '《孤女》是2010年九州出版社出版的小说,作者是余兼羽', 'items': [{'item': '《', 'offset': 0, 'wordtag_label': 'w', 'length': 1}, {'item': '孤女', 'offset': 1, 'wordtag_label': '作品类_实体', 'length': 2}, {'item': '》', 'offset': 3, 'wordtag_label': 'w', 'length': 1}, {'item': '是', 'offset': 4, 'wordtag_label': '肯定词', 'length': 1}, {'item': '2010年', 'offset': 5, 'wordtag_label': '时间类', 'length': 5}, {'item': '九州出版社', 'offset': 10, 'wordtag_label': '组织机构类', 'length': 5}, {'item': '出版', 'offset': 15, 'wordtag_label': '场景事件', 'length': 2}, {'item': '的', 'offset': 17, 'wordtag_label': '助词', 'length': 1}, {'item': '小说', 'offset': 18, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': ',', 'offset': 20, 'wordtag_label': 'w', 'length': 1}, {'item': '作者', 'offset': 21, 'wordtag_label': '人物类_概念', 'length': 2}, {'item': '是', 'offset': 23, 'wordtag_label': '肯定词', 'length': 1}, {'item': '余兼羽', 'offset': 24, 'wordtag_label': '人物类_实体', 'length': 3}]}]
69+
70+
ner = Taskflow("ner", batch_size=2)
71+
ner(["热梅茶是一道以梅子为主要原料制作的茶饮",
72+
"《孤女》是2010年九州出版社出版的小说,作者是余兼羽",
73+
"中山中环广场,位于广东省中山市东区,地址是东区兴政路1号",
74+
"宫之王是一款打发休闲时光的迷宫游戏"])
75+
>>> [{'text': '热梅茶是一道以梅子为主要原料制作的茶饮', 'items': [{'item': '热梅茶', 'offset': 0, 'wordtag_label': '饮食类_饮品', 'length': 3}, {'item': '是', 'offset': 3, 'wordtag_label': '肯定词', 'length': 1}, {'item': '一道', 'offset': 4, 'wordtag_label': '数量词', 'length': 2}, {'item': '以', 'offset': 6, 'wordtag_label': '介词', 'length': 1}, {'item': '梅子', 'offset': 7, 'wordtag_label': '饮食类', 'length': 2}, {'item': '为', 'offset': 9, 'wordtag_label': '肯定词', 'length': 1}, {'item': '主要原料', 'offset': 10, 'wordtag_label': '物体类', 'length': 4}, {'item': '制作', 'offset': 14, 'wordtag_label': '场景事件', 'length': 2}, {'item': '的', 'offset': 16, 'wordtag_label': '助词', 'length': 1}, {'item': '茶饮', 'offset': 17, 'wordtag_label': '饮食类_饮品', 'length': 2}]}, {'text': '《孤女》是2010年九州出版社出版的小说,作者是余兼羽', 'items': [{'item': '《', 'offset': 0, 'wordtag_label': 'w', 'length': 1}, {'item': '孤女', 'offset': 1, 'wordtag_label': '作品类_实体', 'length': 2}, {'item': '》', 'offset': 3, 'wordtag_label': 'w', 'length': 1}, {'item': '是', 'offset': 4, 'wordtag_label': '肯定词', 'length': 1}, {'item': '2010年', 'offset': 5, 'wordtag_label': '时间类', 'length': 5}, {'item': '九州出版社', 'offset': 10, 'wordtag_label': '组织机构类', 'length': 5}, {'item': '出版', 'offset': 15, 'wordtag_label': '场景事件', 'length': 2}, {'item': '的', 'offset': 17, 'wordtag_label': '助词', 'length': 1}, {'item': '小说', 'offset': 18, 'wordtag_label': '作品类_概念', 'length': 2}, {'item': ',', 'offset': 20, 'wordtag_label': 'w', 'length': 1}, {'item': '作者', 'offset': 21, 'wordtag_label': '人物类_概念', 'length': 2}, {'item': '是', 'offset': 23, 'wordtag_label': '肯定词', 'length': 1}, {'item': '余兼羽', 'offset': 24, 'wordtag_label': '人物类_实体', 'length': 3}]}, {'text': '中山中环广场,位于广东省中山市东区,地址是东区兴政路1号', 'items': [{'item': '中山中环广场', 'offset': 0, 'wordtag_label': '场所类', 'length': 6}, {'item': ',', 'offset': 6, 'wordtag_label': 'w', 'length': 1}, {'item': '位于', 'offset': 7, 'wordtag_label': '场景事件', 'length': 2}, {'item': '广东省', 'offset': 9, 'wordtag_label': '世界地区类', 'length': 3}, {'item': '中山市东', 'offset': 12, 'wordtag_label': '世界地区类', 'length': 4}, {'item': '区', 'offset': 16, 'wordtag_label': '词汇用语', 'length': 1}, {'item': ',', 'offset': 17, 'wordtag_label': 'w', 'length': 1}, {'item': '地址', 'offset': 18, 'wordtag_label': '场所类', 'length': 2}, {'item': '是', 'offset': 20, 'wordtag_label': '肯定词', 'length': 1}, {'item': '东区', 'offset': 21, 'wordtag_label': '位置方位', 'length': 2}, {'item': '兴政路1号', 'offset': 23, 'wordtag_label': '世界地区类', 'length': 5}]}, {'text': '宫之王是一款打发休闲时光的迷宫游戏', 'items': [{'item': '宫之王', 'offset': 0, 'wordtag_label': '人物类_实体', 'length': 3}, {'item': '是', 'offset': 3, 'wordtag_label': '肯定词', 'length': 1}, {'item': '一款', 'offset': 4, 'wordtag_label': '数量词', 'length': 2}, {'item': '打发', 'offset': 6, 'wordtag_label': '场景事件', 'length': 2}, {'item': '休闲', 'offset': 8, 'wordtag_label': '场景事件', 'length': 2}, {'item': '时光', 'offset': 10, 'wordtag_label': '时间类', 'length': 2}, {'item': '的', 'offset': 12, 'wordtag_label': '助词', 'length': 1}, {'item': '迷宫游戏', 'offset': 13, 'wordtag_label': '作品类_概念', 'length': 4}]}]
76+
```
77+
78+
### 文本纠错
79+
80+
```python
81+
from paddlenlp import Taskflow
82+
83+
text_correction = Taskflow("text_correction")
84+
text_correction('遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。')
85+
>>> [{'source': '遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',
86+
'target': '遇到逆境时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',
87+
'errors': [{'position': 3, 'correction': {'': ''}}]}
88+
]
89+
90+
text_correction(['遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',
91+
'人生就是如此,经过磨练才能让自己更加拙壮,才能使自己更加乐观。'])
92+
>>> [{'source': '遇到逆竟时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',
93+
'target': '遇到逆境时,我们必须勇于面对,而且要愈挫愈勇,这样我们才能朝著成功之路前进。',
94+
'errors': [{'position': 3, 'correction': {'': ''}}]},
95+
{'source': '人生就是如此,经过磨练才能让自己更加拙壮,才能使自己更加乐观。',
96+
'target': '人生就是如此,经过磨练才能让自己更加茁壮,才能使自己更加乐观。',
97+
'errors': [{'position': 18, 'correction': {'': ''}}]}
98+
]
99+
```
100+
101+
### 句法分析
102+
103+
```python
104+
from paddlenlp import Taskflow
105+
106+
ddp = Taskflow("dependency_parsing")
107+
ddp("百度是一家高科技公司")
108+
>>> [{'word': ['百度', '', '一家', '高科技', '公司'], 'head': ['2', '0', '5', '5', '2'], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB']}]
109+
110+
ddp(["百度是一家高科技公司", "他送了一本书"])
111+
>>> [{'word': ['百度', '', '一家', '高科技', '公司'], 'head': ['2', '0', '5', '5', '2'], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB']}, {'word': ['', '', '', '一本', ''], 'head': ['2', '0', '2', '5', '2'], 'deprel': ['SBV', 'HED', 'MT', 'ATT', 'VOB']}]
112+
113+
# 输出概率值和词性标签
114+
ddp = Taskflow("dependency_parsing", prob=True, use_pos=True)
115+
ddp("百度是一家高科技公司")
116+
>>> [{'word': ['百度', '', '一家', '高科技', '公司'], 'postag': ['ORG', 'v', 'm', 'n', 'n'], 'head': ['2', '0', '5', '5', '2'], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB'], 'prob': [1.0, 1.0, 1.0, 1.0, 1.0]}]
117+
118+
# 使用ddparser-ernie-1.0进行预测
119+
ddp = Taskflow("dependency_parsing",model="ddparser-ernie-1.0")
120+
ddp("百度是一家高科技公司")
121+
>>> [{'word': ['百度', '', '一家', '高科技', '公司'], 'head': ['2', '0', '5', '5', '2'], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB']}]
122+
```
123+
124+
### 情感分类
125+
126+
```python
127+
from paddlenlp import Taskflow
128+
129+
senta = Taskflow("sentiment_analysis")
130+
senta("怀着十分激动的心情放映,可是看着看着发现,在放映完毕后,出现一集米老鼠的动画片")
131+
>>> [{'text': '怀着十分激动的心情放映,可是看着看着发现,在放映完毕后,出现一集米老鼠的动画片', 'label': 'negative'}]
132+
133+
senta(["怀着十分激动的心情放映,可是看着看着发现,在放映完毕后,出现一集米老鼠的动画片",
134+
"作为老的四星酒店,房间依然很整洁,相当不错。机场接机服务很好,可以在车上办理入住手续,节省时间"])
135+
>>> [{'text': '怀着十分激动的心情放映,可是看着看着发现,在放映完毕后,出现一集米老鼠的动画片', 'label': 'negative'},
136+
{'text': '作为老的四星酒店,房间依然很整洁,相当不错。机场接机服务很好,可以在车上办理入住手续,节省时间', 'label': 'positive'}
137+
]
138+
139+
# 使用SKEP情感分析预训练模型进行预测
140+
senta = Taskflow("sentiment_analysis", model="skep_ernie_1.0_large_ch")
141+
senta("作为老的四星酒店,房间依然很整洁,相当不错。机场接机服务很好,可以在车上办理入住手续,节省时间。")
142+
>>> [{'text': '作为老的四星酒店,房间依然很整洁,相当不错。机场接机服务很好,可以在车上办理入住手续,节省时间。', 'label': 'positive'}]
143+
```
144+
145+
### 生成式问答
146+
147+
```python
148+
from paddlenlp import Taskflow
149+
150+
qa = Taskflow("question_answering")
151+
qa("中国的国土面积有多大?")
152+
>>> [{'text': '中国的国土面积有多大?', 'answer': '960万平方公里。'}]
153+
154+
qa(["中国国土面积有多大?", "中国的首都在哪里?"])
155+
156+
>>> [{'text': '中国国土面积有多大?', 'answer': '960万平方公里。'}, {'text': '中国的首都在哪里?', 'answer': '北京。'}]
157+
```
158+
159+
### 智能写诗
160+
161+
```python
162+
from paddlenlp import Taskflow
163+
164+
poetry = Taskflow("poetry_generation")
165+
poetry("林密不见人")
166+
>>> [{'text': '林密不见人', 'answer': ',但闻人语响。'}]
167+
168+
poetry(["林密不见人", "举头邀明月"])
169+
>>> [{'text': '林密不见人', 'answer': ',但闻人语响。'}, {'text': '举头邀明月', 'answer': ',低头思故乡。'}]
170+
```

0 commit comments

Comments
 (0)