En | 中

TexSmart HTTP API for Text Matching


TexSmart API共分三类,即文本理解API,文本匹配API以及文本图谱API,下面介绍文本匹配API的使用方式。 该API支持通过HTTP-POST方式访问,API地址为 https://texsmart.qq.com/api/match_text
输入的post-data需要是JSON格式,输出也是JSON格式。 推荐使用Postman来查看API的结果。

下面是一个简单的JSON输入示例:
{
  "text_pair_list": [
  {"str1":"你好","str2":"你好吗?"},
  {"str1":"我你","str2":"你我"},
  {"str1":"我","str2":"我我我"},
  ],
  "options":{"alg":"esim"},
  "echo_data":{"id":123}
}

调用API的示例代码: Python代码 | Java代码 | C++代码 | C#代码

调用API后返回的结果是如下的JSON格式:
{
  "header":{"time_cost_ms":1.185,"time_cost":0.001185,"core_time_cost_ms":1.111,"ret_code":"succ"},
  "res_list":[
  {"score":0.723794},
  {"score":0.838658},
  {"score":0.853867}
  ]
}
其中,header给出的是一些说明API调用的辅助信息(耗时、错误码等),res_list给出了三个句子对匹配的得分。

完整的输入输出格式说明

输入JSON对象支持的字段说明如下:

字段名称 数据类型 字段说明
text_pair_list list 输入的句子对列表
options JSON Object 选项信息,主要用来指定文本匹配所采用的算法。
alg字段可以选择esim或者linkage
echo_data JSON Object 作为这个字段值的JSON对象可以由用户自由定义,服务将在输出中以echo方式原封不动地返回此对象的内容。
用户可以用这个字段来记录当前request的标识信息

输出JSON对象的各个字段说明如下:

字段名称 数据类型 字段说明
header JSON Object 调用执行后返回的辅助信息
time_cost_ms字段:处理请求所花的时间,以毫秒(ms)计算。
time_cost字段:处理请求所花的时间,以秒来计算。
core_time_cost_ms字段:处理核心模块所花的时间,以毫秒(ms)来计算。
ret_code字段:返回码,"succ"表示成功,其它为错误码。常见错误码包括:
    error.invalid_request_format: 请求格式不合法(比如不是JSON格式)
    error.timeout: 超时
    error.busy: 服务忙(正在处理其它请求)
    error.too_long_text: 文本长度超过限额(长度限定8192个字符)
res_list JSON 列表 输出的结果。
该结果是一个JSON的列表,每个JSON给出对应输入句子对的匹配得分。



示例代码

用Python调用API的示例代码

示例代码1(用http.client):
# -*- coding: utf8 -*-
import json
import http.client

obj = {
  "text_pair_list": [
  {"str1":"你好","str2":"你好吗?"},
  {"str1":"我你","str2":"你我"},
  {"str1":"我","str2":"我我我"},
  ],
  "options":{"alg":"esim"},
  "echo_data":{"id":123}
}
req_str = json.dumps(obj)

conn = http.client.HTTPSConnection("texsmart.qq.com")
conn.request("POST", "/api/match_text", req_str)
response = conn.getresponse()
res_str = response.read().decode('utf-8')
print(res_str)
示例代码2(需要安装requests包):
# -*- coding: utf8 -*-
import json
import requests

obj = {
  "text_pair_list": [
  {"str1":"你好","str2":"你好吗?"},
  {"str1":"我你","str2":"你我"},
  {"str1":"我","str2":"我我我"},
  ],
  "options":{"alg":"esim"},
  "echo_data":{"id":123}
}
reg_str = json.dumps(obj).encode()
url = "https://texsmart.qq.com/api/match_text"
r = requests.post(url, data=reg_str).json()
ret_code = r["header"]["ret_code"]
while ret_code != "succ":
  r = requests.post(url, data=reg_str).json()
  ret_code = r["header"]["ret_code"]
print(r)

用Java调用API的示例代码

[TBD]

用C++调用API的示例代码

[TBD]

用C#调用API的示例代码

[TBD]

关于TexSmart

TexSmart是腾讯AI Lab自然语言处理团队所构建的一个自然语言文本理解系统,用以对中文和英文两种语言的文本进行词法、句法和语义分析。 除了支持分词、词性标注、命名实体识别(NER)、句法分析、语义角色标注等常见功能外,TexSmart还提供细粒度命名实体识别语义联想深度语义表达等特色功能。

体验Demo | 系统介绍