在语言处理应用技术方面,百度大脑新增文本纠错、新闻摘要、智能写诗、智能春联和对话情绪识别等能力。今天带大家体验一下文本纠错。
首先认证授权:
在开始调用任何API之前需要先进行认证授权,具体的说明请参考:
http://ai.baidu.com/docs#/Auth/top
获取Access Token
向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:
grant_type:?必须参数,固定为client_credentials;
client_id:?必须参数,应用的API Key;
client_secret:?必须参数,应用的Secret Key;
例如:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&
具体Python3代码如下:
# -*- coding: utf-8 -*- #!/usr/bin/env python import urllib import json #client_id 为官网获取的AK, client_secret 为官网获取的SK client_id =【百度云应用的AK】 client_secret =【百度云应用的SK】 #获取token def get_token(): host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret request = urllib.request.Request(host) request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib.request.urlopen(request) token_content = response.read() if token_content: token_info = json.loads(token_content) token_key = token_info['access_token'] return token_key
文本纠错:
详细说明请参考:http://ai.baidu.com/docs#/NLP-API/741e48da
接口描述
识别输入文本中有错误的片段,提示错误并给出正确的文本结果。支持短文本、长文本、语音等内容的错误识别,纠错是搜索引擎、语音识别、内容审查等功能更好运行的基础模块之一。
请求说明
HTTP方法: POST
请求URL: https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet
URL参数:
参数 值
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取”
Header如下:
参数 值
Content-Type application/json
Body请求示例:
{
"text": "百度是一家人工只能公司"
}
请求参数
参数 类型 描述 是否必填
text string 待纠错文本,输入限制511字节 必填
返回说明
参数 说明 描述
log_id uint64 请求唯一标识码
correct_query string 纠错后的文本
score double 模型置信度打分
item object 分析结果
+vec_fragment list 替换候选片段信息
++ori_frag string 原片段
++correct_frag double 替换片段
++begin_pos int 起始(长度单位)
++end_pos list 结尾(长度单位)
Python3调用代码如下:
#调用百度文本纠错接口 def txt_correction(content): print ('原文:',content) token=get_token() url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet' params = dict() params['text'] = content params = json.dumps(params).encode('utf-8') access_token = token url = url + "?access_token=" + access_token request = urllib.request.Request(url=url, data=params) request.add_header('Content-Type', 'application/json') response = urllib.request.urlopen(request) content = response.read() if content: content=content.decode('GB2312') data = json.loads(content) item=data['item'] print('纠错后:',item['correct_query']) print('Score:',item['score']) txt_correction('汽车形式在这条道路上')
返回结果:
原文: 汽车形式在这条道路上
纠错后: 汽车行驶在这条道路上
Score: 0.982835
感觉效果很不错。