百度AI文本审核API使用说明
虽然,虽然,虽然,今天:
百度发布了2019年第一季度未经审计的财务报告。本季度百度营收241亿元人民币(约合35.9亿美元),同比增长15%,移除业务拆分收入影响,同比增长21%。低于市场预期242.7亿元。净亏损为人民币3.27亿元(约合4900万美元),去年同期净利润为人民币66.94亿元。这也是百度上市以来的首个季度亏损。
但我还是要肯定百度科技公司要做的工作,尤其是在AI的商业落地方面,做出了不少贡献,其开源的一系列资源供大多数科研工作者、企业工作者等摸索前进,心怀感恩,开放包容。
我做NLP这块,用到了百度AI平台的文本审核功能,也就是文本分类,判别文本的内容是否有违禁、暴恐、涉黄等内容。访问了它的API,一些工作记录如下:
百度AI文本审核地址:http://ai.baidu.com/solution/censoring
单例样本体验地址:http://ai.baidu.com/tech/textcensoring?track=cp:ainsem|pf:pc|pp:chanpin-neirongshenhe|pu:neirongshenhe-wenben-1|ci:|kw:10002031
批量访问:
1)python工具
2)步骤1:申请access token,代码如下:
def get_access_key(): # client_id 为官网获取的AK, client_secret 为官网获取的SK host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】' request = urllib.request.Request(host) request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib.request.urlopen(request) content = response.read() if (content): print(content)
从content中抽取,access token字段
3)文本审核,代码如下:
def check_content(): request_url = 'https://aip.baidubce.com/rest/2.0/antispam/v2/spam?access_token=【你自己的access token哦!!!】' items = {'1':'暴恐违禁', '2':'文本色情', '3':'政治敏感', '4':'恶意推广', '5':'低俗辱骂', '6':'低质灌水'} with open('./baidu_data/checked_data_1.txt', 'r', encoding='utf8') as fr: with open('./baidu_data/data_1_check_result.txt', 'a', encoding='utf8') as fw: for i, each in enumerate(fr.readlines()): print('正在检测样本:{}'.format(i)) params = {'content': each.strip().split('\t')[-1]} result = requests.post(request_url, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data=params).text predict_res = (json.loads(result).get('result')).get('reject') print(predict_res) if len(predict_res) == 0: # 普通直接保存 fw.write('普通\t'+'0\t###\t'+each) else: # 获取拒绝得分最高的那个 score = [] content = [] for each_hit in predict_res: score.append(each_hit.get('score')) temp = each_hit.get('hit') content.append(str(each_hit.get('label'))+'\t'+','.join(each_hit.get('hit'))+'\t') # 找到得分最大的那个索引 max_score_index = score.index(max(score)) tag_label = content[max_score_index] # 写入 fw.write('{}\t'.format(items.get(tag_label.split('\t')[0]))+tag_label+each)
我这里是根据任务,找到结果中我需要的信息,流程是没问题的,你可以根据你的需求改正哦
就这么简单,为什么api文档中不给出样例demo呢,花了一些时间。
时刻记着自己要成为什么样的人!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)