PAI提供多种已经训练好的自然语言处理类模型供您使用,包括新闻分类、金融文本匹配、中文基础NER及BERT文本向量化模型。

自然语言处理NLP(Natural Language Processing)是人工智能和语言学领域的分支学科,能够挖掘自然语言文本蕴含的信息和知识。常见的应用包括:
  • 文本分类,适用于新闻标签打标、情感分析、垃圾邮件识别及商品评价分类等场景。
  • 文本匹配,适用于问答匹配、句子相似度匹配、自然语言推理及对话检索等场景。
  • 序列标注,适用于命名实体识别NER及情感词抽取等场景。
  • 特征提取,提取的文本特征可以在文本领域或结合其他领域(例如计算机视觉)进行后续操作。
PAI-ModelHub提供以上四类服务的部署流程,并提供单标签新闻分类、金融文本匹配、中文基础命名实体识别及BERT特征提取模型供您使用。

新闻分类模型

  • 模型介绍
    PAI-ModelHub提供了BERT分类模型进行新闻文本分类,输入为单句,该模型的结构如下图所示。文本分类
  • 输入格式
    输入数据为JSON格式字符串,包含textsequence_length字段。其中text对应的value为待分类的新闻文本字符串,sequence_length对应文本的截断长度,最大为512。
    {
        "text": "待分类的新闻文本字符串",
        "sequence_length": 128
    }
  • 输出格式
    输出数据为JSON格式字符串,包含的字段如下表所示。
    字段 描述 Shape Type
    predictions 模型输出的标签。标签体系包括教育三农娱乐健康美文搞笑美食财经科技旅游汽车时尚科学文化房产热点母婴家居体育国际育儿宠物游戏健身职场读书艺术动漫 [] STRING
  • 测试数据
    # 输入。
    {
        "text": "确诊病例超1000例墨西哥宣布进入卫生紧急状态。中新网3月31日电综合报道,墨西哥新冠肺炎病例已超过1000例,墨西哥政府30日宣布进入卫生紧急状态,加强相关措施以遏制新冠肺炎疫情蔓延。30日,墨西哥卫生官员报告该国新冠肺炎病例累计达1094例,死亡28人。卫生官员说,墨西哥的非必要活动禁令将延长到4月30日,民众聚会人数限制减到只容许50人。墨西哥官方还表示,60岁以上和高风险人群应严格遵守居家建议。此前,墨西哥政府宣布,超过3000万名学生于3月21日至4月20日期间放假,学校将加强远程教育、校园消毒等措施。责任编辑:孔庆玲",
        "sequence_length": 128
    }
    
    # 输出。
    {
        "predictions": "国际"
    }

金融文本匹配模型

  • 模型介绍
    PAI-ModelHub提供了BERT匹配模型进行金融领域蚂蚁金服相似问题匹配,输入为双句,该模型的结构如下图所示。文本匹配
  • 输入格式
    输入数据是为JSON格式字符串,包含first_sequencesecond_sequencesequence_length字段。其中first_sequence对应的value为第一个问题文本字符串,second_sequence对应的value为第二个问题文本字符串,sequence_length对应文本的截断长度(最大为512)。
    {
        "first_sequence": "第一个问题文本字符串",
        "second_sequence": "第二个问题文本字符串",
        "sequence_length": 128
    }
  • 输出格式
    输出数据为JSON格式字符串,包含的字段如下表所示。
    字段 描述 Shape Type
    predictions 模型输出的标签。标签体系包括相似不相似 [] STRING
  • 测试数据
    # 输入。
    {
        "first_sequence": "我的蚂蚁花呗支付金额怎么会有限制",
        "second_sequence": "我到支付宝实体店消费用花呗支付受金额限制",
        "sequence_length": 128
    }
    
    # 输出。
    {
        "predictions": "相似"
    }

中文基础NER模型

  • 模型介绍
    PAI-ModelHub提供了BERT序列标注模型进行中文基础命名实体识别(NER),该模型的结构如下图所示。序列标注
  • 输入格式
    输入数据为JSON格式字符串,包含textsequence_length字段。其中text对应的value为待标注的文本字符串(每个字按照空格分隔),sequence_length对应文本的截断长度(最大为512)。
    {
      "text": "待标注的文本字符串",
      "sequence_length": 128
    }
  • 输出格式
    输出数据为JSON格式字符串,包含的字段如下表所示。
    字段 描述 Shape Type
    predictions 模型输出的标签(模型输出的NER结果),是一个列表,每个列表中的元素格式为[人名/地名/组织名原始文本,实体类别,[字的开始位置,字的结束位置]]实体类别的取值包括PERLOCORG,分别表示人名、地名及组织名。 [实体个数,3] List
  • 测试数据
    # 输入。
    {
        "text": "古 城 保 定 , 有 一 家 梁 连 起 创 立 的 玉 兰 香 大 酒 店 , 以 其 高 质 量 的 服 务 、 物 美 价 廉 的 菜 肴 而 享 誉 四 方 。",
        "sequence_length": 128
    }
    
    # 输出。
    {
        "predictions": [['保定', 'LOC', [2, 4]], ['梁连起', 'PER', [8, 11]], ['玉兰香大酒店', 'ORG', [14, 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格式字符串,包含如下字段:
    • first_sequence:对应的value为第一个文本字符串。
    • second_sequence:对应的value为第二个文本字符串(可以为空)。
    • sequence_length:对应文本的截断长度,最大为512。
    • output_schema:返回的向量选择。如果是多选,则使用英文逗号(,)分隔。可选项分别为pool_outputfirst_token_outputall_hidden_outputs
    {
        "first_sequence": "第一个文本字符串",
        "second_sequence": "第二个文本字符串(可以为空)",
        "sequence_length": 128
        "output_schema": "返回的向量选择"
    }
  • 输出格式
    输出数据为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
  • 测试数据
    # 输入。
    {
        "first_sequence": "双十一花呗提额在哪",
        "second_sequence": "",
        "sequence_length": 128,
        "output_schema": "pool_output,first_token_output,all_hidden_outputs"
    }
    
    # 输出。
    {
        "pool_output": "0.999340713024,...,0.836870908737",
        "first_token_output": "0.789340713024,...,0.536870908737",
        "all_hidden_outputs": "0.999340713024,...,0.836870908737;...;0.899340713024,...,0.936870908737"
    }