目录
TEXT_FILEPATH(测试文本地址)、MODEL_API_URL(API地址)、API_KEY、SECRET_KEY
我们先获取这些,下面的代码将会用到这些值输入到代码对应位置上。
1.接口描述
基于自定义训练出的文本分类模型,实现个性化文本识别。模型训练完毕后发布可获得定制化文本分类API
更多训练模型过程中的常见问题请查看‘’常见问题‘’
1.1请求URL
请首先在EasyDL文本分类-单标签进行自定义模型训练,完成训练后可在服务列表中查看并获取URL
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/json |
注意:如果出现336001的错误码很可能是因为请求方式错误,定制化文本分类服务以json方式请求。
Body请求示例:
- {
- "text": "<UTF-8编码文本>",
- "top_num": 6
- }
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
text | 是 | string | - | 文本数据,UTF-8编码。最大长度4096汉字 |
top_num | 否 | number | - | 返回分类数量,默认为6个 |
1.2API_KEY、SECRET_KEY 获取
1.2.1点击服务详情,后点击立即使用
1.2.2跳转到应用列表这里,开始时默认自己的账号没有创建应用,使用我们先开始创建一个新的应用
1.2.3输入应用名称,这里我们的接口选择EasyDL,其他内容按照自己的需求填写,填写完成后点击立即创建。
1.2.4创建应用成功后,点击查看应用详情,
这里我们获取API Key、Secret Key的值,填写到Python代码里面
API Key | Secret Key |
---|
2.Python代码
- """
- EasyDL 文本分类单标签 调用模型公有云API Python3实现
- """
-
- import json
- import base64
- import requests
- """
- 使用 requests 库发送请求
- 使用 pip(或者 pip3)检查我的 python3 环境是否安装了该库,执行命令
- pip freeze | grep requests
- 若返回值为空,则安装该库
- pip install requests
- """
-
-
- # 目标文本的 本地文件路径,UTF-8编码,最大长度4096汉字
- TEXT_FILEPATH = "文字分类.txt"#【您的测试文本地址,例如:./example.txt】
-
- # 可选的请求参数
- # top_num: 返回的分类数量,不声明的话默认为 6 个
- PARAMS = {"top_num": 2}
-
- # 服务详情 中的 接口地址
- MODEL_API_URL ="https://aip.baidubce.c" #【您的API地址】
-
- # 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
- # 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
- ACCESS_TOKEN = ""#您的ACCESS_TOKEN(默认为空)
- API_KEY = "d919GBjNDwjzzk"#【您的API_KEY】
- SECRET_KEY = "WsULoSMo9R5"#【您的SECRET_KEY】
-
- print("1. 读取目标文本 '{}'".format(TEXT_FILEPATH))
- with open(TEXT_FILEPATH, 'r',encoding='utf-8') as f:
- text_str = f.read()
- print("将读取的文本填入 PARAMS 的 'text' 字段")
- PARAMS["text"] = text_str
-
-
- if not ACCESS_TOKEN:
- print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")
- auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"\
- "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)
- auth_resp = requests.get(auth_url)
- auth_resp_json = auth_resp.json()
- ACCESS_TOKEN = auth_resp_json["access_token"]
- print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
- else:
- print("2. 使用已有 ACCESS_TOKEN")
-
-
- print("3. 向模型接口 'MODEL_API_URL' 发送请求")
- request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
- response = requests.post(url=request_url, json=PARAMS)
- response_json = response.json()
- response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
- print("结果:\n{}".format(response_str))
- len=len(response_json["results"])
- print('------识别结果------')
- for i in range(len):
- print(response_json["results"][i]["name"],end=':')
- print(response_json["results"][i]["score"])
3.使用方法
在该Python的根目录下创建一个.txt文档
如果文档在Python的根目录下,直接在代码的TEXT_FILEPATH对应位置写上文档的名称
如果文档在电脑的其他位置,文档的调用要把斜杠号换成反斜杠号加上文档的名称,再在代码的TEXT_FILEPATH对应位置写上
.txt文档的内容可以写一段文字
4.常见问题
4.1 TEXT_FILEPATH(测试文本地址)、MODEL_API_URL(API地址)、API_KEY、SECRET_KEY不过这里要更改为自己的
4.2 运行错误:要打开百度EasyDL文本,否则用不了
4.3 ACCESS_TOKEN = ""#这里的双引号里面为空,否则报错
4.4识别结果准确率低可以增加文本数量或者文字输入简单一些