aistudio再升级:我愿称aistudio为jupyter最佳魔改版本
基于Gradio体验PaddleNLP信息抽取
aistudio再一次推出重磅更新,可以直接创建Gradio应用了。创建-部署一键搞定。
本教程是入门级教程,主要用于体验两个产品:PaddleNLP和Gradio。
PaddleNLP
PaddleNLP是一款简单易用且功能强大的自然语言处理开发库。聚合业界优质预训练模型并提供开箱即用的开发体验,覆盖NLP多场景的模型库,搭配产业实践范例,提供极致的训练与推理性能,可满足灵活定制的开发需求。注:来源于飞桨官网介绍
本教程基于一个案例上手PaddleNLP Taskflow API实现信息的抽取。
Gradio
Build & Share Delightful Machine Learning Apps
Gradio is the fastest way to demo your machine learning model with a friendly web interface so that anyone can use it, anywhere!
aistudio已经集成了Gradio,我们可以方便快速地将自己的模型生成应用,供其他人上手体验。
在启动页,可以看到Gridio应用创建入口,如下图:
在百度aistudio上体验:
python
# 从paddlenlp引入taskflow
from paddlenlp import Taskflow
# 定义需要抽取信息的结构
# 例如从新闻文本中需要抽取出时间、选手、赛事名称等
# 则可以定义scheme = ['时间', '选手', '赛事名称']
scheme = ['年级', '考研年份', '本科院校', '本科专业', '目标院校', '目标专业']
# 初始化对象
tf = Taskflow('information_extraction', schema = scheme)
# 输入文本,输出结果
rep = tf("身份: 曾 大三 在校 24考研 学习经历:机械 二类本科 目标:机械 院校需要专业的院校规划老师分析 考研目的:学历提升发展")
rep
out:
[{'年级': [{'text': '大三',
'start': 6,
'end': 8,
'probability': 0.3902969759570496}],
'考研年份': [{'text': '24',
'start': 12,
'end': 14,
'probability': 0.792130002729678}],
'本科院校': [{'text': '机械 院校',
'start': 33,
'end': 38,
'probability': 0.5170489458024008}],
'本科专业': [{'text': '机械',
'start': 22,
'end': 24,
'probability': 0.5408178337555043}],
'目标院校': [{'text': '机械 院校',
'start': 33,
'end': 38,
'probability': 0.9560203380534773}]}]
# 对输出结果按照要求展示
for rr in rep:
ss = []
for item in rr.items():
s = '{}:{}'.format(item[0], item[1][0]['text'])
ss.append(s)
print('\n'.join(ss))
out:
年级:大三
考研年份:24
本科院校:机械 院校
本科专业:机械
目标院校:机械 院校
Gradio应用
创建untitled.gradio.py
文件
python
import gradio as gr
from paddlenlp import Taskflow
def quickstart(info1, info2, info3, content):
schema = []
for info in [info1, info2, info3]:
if info.strip():
schema.append(info)
ie = Taskflow('information_extraction', schema = schema)
rep = ie(content)
texts = []
for r in rep:
for item in r.items():
text = '{}:{}'.format(item[0], item[1][0]['text'])
texts.append(text)
return '\n'.join(texts)
demo = gr.Interface(fn=quickstart, inputs=[gr.Text(label='提取信息1', value="时间"), gr.Text(label='提取信息2', value='选手'),gr.Text(label='提取信息3', value='赛事名称'),gr.Text(label='请输入文本内容', value='2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!')], outputs="text")
demo.launch()
快速创建-部署应用,如图:
总结:
- PaddleNLP除信息抽取外,还包含分词、词法分析、句法分析、知识挖掘、文本纠错等任务,有需要的同学可以根据自己的应用场景深入体验。
- 本教程
untitled.gradio.py
中实现了gradio应用的生成demo,大家可以参考。更多详情功能可以参考Gradio官方文档
本文写于2023年3月25日下午。