PAI提供多种已经训练好的自然语言处理类模型供您使用,涵盖了文本分类、文本匹配、序列标注及特征提取应用。本文为您介绍每种模型的输入格式、输出格式及使用示例。
背景信息
自然语言处理NLP(Natural Language Processing)是人工智能和语言学领域的分支学科,能够挖掘自然语言文本蕴含的信息和知识。常见的应用包括:
- 文本分类,适用于新闻标签打标、情感分析、文本内容反垃圾及商品评价分类等场景。
- 文本匹配,适用于问答匹配、句子相似度匹配、自然语言推理及对话检索等场景。
- 序列标注,适用于命名实体识别NER及情感词抽取等场景。
- 特征提取,提取的文本特征可以在文本领域或结合其他领域(例如计算机视觉)进行后续操作。
- 文本分类模型
- 序列标注类模型
- 文本匹配类模型
- 特征提取类模型
ModelHub登录入口
您可以通过如下方法进入ModelHub:
- 登录PAI控制台。
- 在左侧导航栏,单击模型管理及优化。
- 在PAI模型管理页面,单击ModelHub页签。
新闻分类模型
- 模型介绍
PAI-ModelHub提供了BERT分类模型进行新闻文本分类,输入为单句,该模型的结构如下图所示。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequence及sequence_length字段。其中first_sequence对应的value为待分类的新闻文本字符串,sequence_length对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "待分类的新闻文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [28] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括教育、三农、娱乐、健康、美文、搞笑、美食、财经、科技、旅游、汽车、时尚、科学、文化、房产、热点、母婴、家居、体育、国际、育儿、宠物、游戏、健身、职场、读书、艺术及动漫。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "确诊病例超1000例墨西哥宣布进入卫生紧急状态。中新网3月31日电综合报道,墨西哥新冠肺炎病例已超过1000例,墨西哥政府30日宣布进入卫生紧急状态,加强相关措施以遏制新冠肺炎疫情蔓延。30日,墨西哥卫生官员报告该国新冠肺炎病例累计达1094例,死亡28人。卫生官员说,墨西哥的非必要活动禁令将延长到4月30日,民众聚会人数限制减到只容许50人。墨西哥官方还表示,60岁以上和高风险人群应严格遵守居家建议。此前,墨西哥政府宣布,超过3000万名学生于3月21日至4月20日期间放假,学校将加强远程教育、校园消毒等措施。责任编辑:孔庆玲", "sequence_length": 128 }
{ "id": "1662", "output": [ {"pred": "国际", "prob": 0.99915063, "logit": 10.21936}, {"pred": "健康", "prob": 8.557205e-05, "logit": 0.8540586}, {"pred": "财经", "prob": 8.2030325e-05, "logit": 0.81178904}, {"pred": "科技", "prob": 8.076288e-05, "logit": 0.79621744}, {"pred": "体育", "prob": 7.966044e-05, "logit": 0.7824724}, ...... ] }
文本内容反垃圾模型
- 模型介绍
PAI-ModelHub提供了BERT分类模型进行文本内容反垃圾,输入为单句。该模型的结构与新闻分类模型相同。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequence及sequence_length字段。其中first_sequence对应的value为待识别的垃圾或非垃圾文本字符串,sequence_length对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "待识别的垃圾或非垃圾文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [5] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括正常、辱骂、涉政、涉黄及恶意推广。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "聘手机小时工,180一天现结有手机就可以", "sequence_length": 128 }
更多有关内容安全技术和应用,请参见阿里安全。{ "id": "1662", "output": [ {"pred": "恶意推广", "prob": 0.9977, "logit": 6.9357}, {"pred": "正常", "prob": 0.0017, "logit": 0.5571}, {"pred": "涉政", "prob": 0.0003, "logit": -1.1146}, {"pred": "辱骂", "prob": 0.0002, "logit": -1.7147}, {"pred": "涉黄", "prob": 0.0001, "logit": -1.9154} ] }
通用情感分析模型
- 模型介绍
PAI-ModelHub提供了BERT分类模型进行通用的情感分析,输入为单句,该模型的结构与新闻分类模型相同。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequence及sequence_length字段。其中first_sequence对应的value为待情感分析的文本字符串,sequence_length对应文本的截断长度,最大为512。具体的格式如下。
{ "id": "该文本的ID", "first_sequence": "待情感分析的文本", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括负向和正向。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "前天刚写好的文案今天再看就不满意了,一百个字就改了十几遍", "sequence_length": 128 }
{ "id": "1662", "output": [ {"pred": "负向", "prob": 0.9998781681060791, "logit": 4.049165725708008}, {"pred": "正向", "prob": 0.00012180746125523001, "logit": -4.963781833648682} ]} }
电商评论情感分析模型
- 模型介绍
PAI-ModelHub提供了BERT分类模型进行电商评论的情感分析,输入为单句,该模型的结构与新闻分类模型相同。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequence及sequence_length字段。其中first_sequence对应的value为待情感分析的评论文本,sequence_length对应文本的截断长度,最大为512。具体的格式如下。
{ "id": "该文本的ID", "first_sequence": "待情感分析的评论文本", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括负向和正向。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "尺寸不标准,里料太差,太失望了!", "sequence_length": 128 }
{ "id": "1662", "output": [ {"pred": "负向", "prob": 0.9998517036437988, "logit": 3.9285061359405518}, {"pred": "正向", "prob": 0.00014827243285253644, "logit": -4.887804985046387} ]} }
通用情绪检测模型
- 模型介绍
PAI-ModelHub提供了BERT分类模型进行文本情绪检查,输入为单句,该模型的结构与新闻分类模型相同。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequence及sequence_length字段。其中first_sequence对应的value为待检测的文本字符串,sequence_length对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "待检测文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [5] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括高兴、生气、悲伤、惊讶、恐惧及无情绪。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "纪念下自己做的菜虽然我是真的很菜慢慢进步", "sequence_length": 128 }
{ "id": "1662", "output": [ {"pred": "高兴", "prob": 0.9982577, "logit": 6.765988}, {"pred": "无情绪", "prob": 0.0007040186, "logit": -0.4909731}, {"pred": "生气", "prob": 0.0002968554, "logit": -1.354532}, {"pred": "悲伤", "prob": 0.0002641379, "logit": -1.471306}, {"pred": "恐惧", "prob": 0.0002434009, "logit": -1.553067}, {"pred": "惊讶", "prob": 0.0002339122, "logit": -1.592832} ]} }
通用文本匹配模型
- 模型介绍
PAI-ModelHub提供了BERT匹配模型进行通用文本匹配,输入为双句,该模型的结构如下图所示。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequencesecond_sequence及sequence_length字段。其中first_sequence对应的value为第一个文本字符串,second_sequence对应的value为第二个文本字符串,sequence_length对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "第一个文本字符串", "second_sequence": "第二个文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括相似和不相似。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "我做题做了三个小时。", "second_sequence": "我做了三个小时的题。", "sequence_length": 128 }
{ "id": "1662", "output": [ {"pred": "相似", "prob": 0.9999983, "logit": 7.185163}, {"pred": "不相似", "prob": 1.705751e-06, "logit": -6.096340} ] }
金融文本匹配模型
- 模型介绍
PAI-ModelHub提供了BERT匹配模型进行金融领域蚂蚁金服相似问题匹配,输入为双句,该模型的结构与通用文本匹配模型相同。
- 输入格式
输入数据是为JSON格式字符串,包含idfirst_sequence、second_sequence及sequence_length字段。其中first_sequence对应的value为第一个问题文本字符串,second_sequence对应的value为第二个问题文本字符串,sequence_length对应文本的截断长度(最大为512)。
{ "id": "该文本的ID", "first_sequence": "第一个问题文本字符串", "second_sequence": "第二个问题文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括相似及不相似。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "借呗授权取消了还能再次授权借呗吗", "second_sequence": "借呗授权不小心关闭还能在授权吗", "sequence_length": 64 }
{ "id": "1662", "output": [ {"pred": "相似", "prob": 0.8119994, "logit": 0.72160554}, {"pred": "不相似", "prob": 0.1880006, "logit": -0.7414489} ] }
通用问答匹配模型
- 模型介绍
PAI-ModelHub提供了BERT匹配模型进行通用问题或答案匹配,输入为双句,该模型的结构与通用文本匹配模型相同。
- 输入格式
输入数据为JSON格式字符串,包含id、first_sequencesecond_sequence及sequence_length字段。其中first_sequence对应的value为问题文本字符串,second_sequence对应的value为答案文本字符串,sequence_length对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "问题文本字符串", "second_sequence": "答案文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type pred 模型输出的标签。标签体系包括匹配和不匹配。 [] STRING prob 对应标签概率。 [] FLOAT logit 对应标签Logit。 [] FLOAT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "牛津大学是什么时候创立的?", "second_sequence": "虽有记录证实牛津的教学始于1096年,但至今仍不清楚大学正式的创办日子。", "sequence_length": 64 }
{ "id": "1662", "output": [{"pred": "匹配", "prob": 0.9896072, "logit": 2.271925}, {"pred": "不匹配", "prob": 0.01039288, "logit": -2.284262}]} }
中文基础NER模型
- 模型介绍
PAI-ModelHub提供了BERT序列标注模型进行中文基础命名实体识别(NER),该模型的结构如下图所示。
- 输入格式
输入数据为JSON格式字符串,包含id、frist_sequence及sequence_length字段。其中frist_sequence对应的value为待标注的文本字符串,sequence_length对应文本的截断长度(最大为512)。
{ "id": "该文本的ID", "first_sequence": "待标注的文本字符串", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type id 输入的文本ID。 [] STRING output 对应标签的结果。 [2] LIST 字段 描述 Shape Type word 原始文本中的人名、地名或组织名。 [] STRING tag 实体类别,取值包括PER、LOC及ORG,分别表示人名、地名及组织名。 [] STRING start 字的开始位置。 [] INT end 字的结束位置。 [] INT - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1662", "first_sequence": "古城保定,有一家梁连起创立的玉兰香大酒店,以其高质量的服务、物美价廉的菜肴而享誉四方。", "sequence_length": 128 }
{ "id": "1662", "output": [ {"word": "保定", "tag": "LOC", "start": 2, "end": 4}, {"word": "梁连起", "tag": "PER", "start": 8, "end": 11}, {"word": "玉兰香大酒店", "tag": "ORG", "start": 14, "end": 20} ] }
BERT文本向量化模型
- 模型介绍
除了对BERT预训练完成的模型进行Finetune外,BERT生成的向量本身也很有价值。例如,将BERT作为一个特征提取器,输入一个文本序列,输出一个向量序列。还可以先对CLS输出的向量进行Dense,再将该向量作为整个句子的句向量。
当用户给定一个句子S,该组件会自动将其分词为Subtoken形式S = [CLS, tok1, tok2, ..., tokN, SEP],并给出以下三种类型结果:
- pool_output:对句子进行编码后的向量,即图中的C'。
- first_token_output:即图中的C。
- all_hidden_outputs:即图中的[C, T1, T2, ..., TN, TSEP]。
- 输入格式
输入数据为JSON格式字符串,包含如下字段:
- id:文本ID。
- first_sequence:对应的value为第一个文本字符串。
- second_sequence:对应的value为第二个文本字符串(可以为空)。
- sequence_length:对应文本的截断长度,最大为512。
{ "id": "该文本的ID", "first_sequence": "第一个文本字符串", "second_sequence": "第二个文本字符串(可以为空)", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type pool_output 英文逗号(,)分隔的768维向量,表示对句子进行编码后的向量,即图中的 C'。 [] STRING first_token_output 英文逗号(,)分隔的768维向量,即图中的C。 [] STRING all_hidden_outputs 768*sequence_length维向量,其中向量由英文逗号(,)分隔,序列由英文分号(;)分隔,即图中的[C, T1, T2, ..., TN, TSEP]。 [] STRING - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1667", "first_sequence": "双十一花呗提额在哪", "second_sequence": "", "sequence_length": 128 }
{ "id": "1667", "pool_output": "0.999340713024,...,0.836870908737", "first_token_output": "0.789340713024,...,0.536870908737", "all_hidden_outputs": "0.999340713024,...,0.836870908737;...;0.899340713024,...,0.936870908737" }
BERT英文文本向量化模型
- 模型介绍
该模型的结构与BERT文本向量化模型相同,详情请参见BERT文本向量化模型。
- 输入格式
输入数据为JSON格式字符串,包含如下字段:
- id:文本ID。
- first_sequence:对应的value为第一个英文文本字符串。
- second_sequence:对应的value为第二个英文文本字符串(可以为空)。
- sequence_length:对应文本的截断长度,最大为512。
{ "id": "该文本的id", "first_sequence": "第一个英文文本字符串", "second_sequence": "第二个英文文本字符串(可以为空)", "sequence_length": 128 }
- 输出格式
输出数据为JSON格式字符串,包含的字段如下表所示。
字段 描述 Shape Type pool_output 英文逗号(,)分隔的768维向量,表示对句子进行编码后的向量,即模型结构图中的 C'。 [] STRING first_token_output 英文逗号(,)分隔的768维向量,即模型结构图中的C。 [] STRING all_hidden_outputs 768*sequence_length维向量,其中向量由英文逗号(,)分隔,序列由英文分号(;)分隔,即模型结构图中的[C, T1, T2, ..., TN, TSEP]。 [] STRING - 示例
例如,为该模型输入如下测试数据。
系统输出如下结果。{ "id": "1667", "first_sequence": "This is an example of natural language processing", "second_sequence": "", "sequence_length": 128 }
{ "id": "1667", "pool_output": "-0.044920005,...,-0.19798079", "first_token_output": "-0.5011729,...,-0.19798079", "all_hidden_outputs": "-0.5011729,...,-0.19798079;...;-0.36818486,...,0.10332998" }
在文档使用中是否遇到以下问题
更多建议
匿名提交