【文本审核】Java-API示例代码
用户已被禁言 发布于2018-01 浏览:6080 回复:7
3
收藏

QQ群: 百度AI文本审核交流群 484776967

  • 注意:接口需要申请哦。提供自己自然语言处理技术模块应用的APPID
  • 接口文档地址:http://ai.baidu.com/docs#/TextCensoring-API/top
  • 工具类:http://aixiaoshuai.mydoc.io/?t=234826

 

---------------------------------------------假装这是分割线---------------------------------------------

  • 第一步:创建接口所需要的JavaBean对象及枚举类(并非必须哦)

SpamBean:

package com.xs.pojo.nlp;

import java.util.List;
/**
 * 通用类文本反作弊 java对象
 * @author 小帅丶
 */
public class SpamBean {
	//服务内部计算返回标识
	private int errno;
	//数据集
    private Result result;
    //调用生成的唯一标识码,用于问题定位
    private long logid;
    
    public int getErrno() {
		return errno;
	}

	public void setErrno(int errno) {
		this.errno = errno;
	}

	public Result getResult() {
		return result;
	}

	public void setResult(Result result) {
		this.result = result;
	}

	public long getLogid() {
		return logid;
	}

	public void setLogid(long logid) {
		this.logid = logid;
	}

	public static class Result {
    	//请求中是否包含违禁,0表示非违禁,1表示违禁,2表示建议人工复审
        private int spam;
        //请求中的违禁类型集合,一个或多个,审核通过则为空
        private List labels;
        //命中的违禁词集合,可能为空
        private List hit;
		public int getSpam() {
			return spam;
		}
		public void setSpam(int spam) {
			this.spam = spam;
		}
		public List getLabels() {
			return labels;
		}
		public void setLabels(List labels) {
			this.labels = labels;
		}
		public List getHit() {
			return hit;
		}
		public void setHit(List hit) {
			this.hit = hit;
		}
        
    }
}

SpamLables:(根据文档获取相关内容)

package com.xs.pojo.nlp;
/**
 * 违禁labels类型(新版接口)
 * @author 小帅丶
 */
public enum SpamLables {
	ONE(1,"暴恐违禁"),
	TWO(2,"文本色情"),
	THERE(3,"政治敏感"),
	FOUR(4,"恶意推广"),
	FIVE(5,"低俗辱骂");
	private Integer lablesint;
	private String labelsmsg;

	private SpamLables(Integer lablesint, String labelsmsg) {
		this.lablesint = lablesint;
		this.labelsmsg = labelsmsg;
	}

	public Integer getLablesint() {
		return lablesint;
	}

	public void setLablesint(Integer lablesint) {
		this.lablesint = lablesint;
	}

	public String getLabelsmsg() {
		return labelsmsg;
	}

	public void setLabelsmsg(String labelsmsg) {
		this.labelsmsg = labelsmsg;
	}
	
}
  • 第二步:创建一个Demo方法进行接口调用
package com.xs.nlp;

import java.net.URLEncoder;

import com.alibaba.fastjson.JSON;
import com.xs.pojo.nlp.SpamBean;
import com.xs.pojo.nlp.SpamLables;
import com.xs.util.baidu.HttpUtil;

/**
 * 文本审核-通用类文本反作弊接口示例代码-JavaAPI
 * @author 小帅丶
 * 2018年1月19日
 */
public class SPAMDemo {
	/**
	 * 通用类文本反作弊接口地址
	 */
	public static String SPAM_URL = "https://aip.baidubce.com/rest/2.0/antispam/v1/spam";
	public static void main(String[] args) throws Exception {
		String content = "我的QQ是123456789";
		//输出字符串内容
		String result = getSpamResult(content,"自己的token");
		System.out.println(result);
//		SpamBean SpamBean = getSpamBean(content, "自己的token");
//		int spam = SpamBean.getResult().getSpam();
//		//0表示非违禁,1表示违禁,2表示建议人工复审
//		if(spam==0){
//			System.out.println(content+"   文本内容审核通过");
//		}else if(spam==1){
//			System.out.println(content+"   文本内容未通过属于"+getLableMsg(SpamBean.getResult().getLabels().get(0)));
//		}else{
//			System.out.println(content+"   文本内容建议人工审核");
//		}

	}
	/**
	 * 通用类文本反作弊接口
	 * @param text
	 * @param accessToken
	 * @return data
	 * @throws Exception
	 */
	public static String getSpamResult(String content,String accessToken) throws Exception {
		String url = SPAM_URL;	
		//策略定制标识,可支持线下渠道定制,通用默认值为500071
		String param = "content="+URLEncoder.encode(content,"UTF-8")+"&command_no=500071";
		String data = HttpUtil.post(url, accessToken, param);
		return data;
	}
	/**
	 * 通用类文本反作弊接口
	 * @param text
	 * @param accessToken
	 * @return data
	 * @throws Exception
	 */
	public static SpamBean getSpamBean(String content,String accessToken) throws Exception {
		String url = SPAM_URL;	
		String param = "content="+URLEncoder.encode(content,"UTF-8")+"&command_no=500071";
		String data = HttpUtil.post(url, accessToken, param);
		SpamBean SpamBean = JSON.parseObject(data,SpamBean.class);
		return SpamBean;
	}
	/**
	 * 返回没审核过的文本违禁labels类型描述
	 * @param labels
	 * @return 
	 */
	public static String getLableMsg(Integer labels){
		String labelsmsg = "";
		if(labels==SpamLables.ONE.getLablesint()){
			labelsmsg = SpamLables.ONE.getLabelsmsg();
		}else if (labels==SpamLables.TWO.getLablesint()) {
			labelsmsg = SpamLables.TWO.getLabelsmsg();
		}else if (labels==SpamLables.THERE.getLablesint()) {
			labelsmsg = SpamLables.THERE.getLabelsmsg();
		}else if (labels==SpamLables.FOUR.getLablesint()) {
			labelsmsg = SpamLables.FOUR.getLabelsmsg();
		}else{
			labelsmsg = SpamLables.FIVE.getLabelsmsg();
		}
		return labelsmsg;
	}

 

  • 文本内容为(我的QQ是123456789)返回的JSON:
{
    "errno": 0, 
    "result": {
        "spam": 1, 
        "labels": [
            4
        ], 
        "hit": [ ]
    }, 
    "logid": 2878783859
}
  • 文本内容为(百度是一家互联网公司)返回的JSON:
{
    "errno": 0,
    "result": {
        "spam": 2,
        "labels": [
            4
        ],
        "hit": []
    },
    "logid": 2949726997
}
  • 文本内容为(小帅最棒)返回的JSON:
{
    "errno": 0,
    "result": {
        "spam": 0,
        "labels": [],
        "hit": []
    },
    "logid": 2955105893
}

以上就是文本审核-通用类文本反作弊接口示例代码

---------------------------------------------假装这是分割线---------------------------------------------

常见问题:

Q:command_no填写什么?       A:策略定制标识,可支持线下渠道定制,通用默认值为500071

Q:提示没有权限怎么办?            A:加帖子中给出的QQ群。找群管 奇迹斗牛士 申请

收藏
点赞
3
个赞
共7条回复 最后由kkkitsch回复于2019-04
#9kkkitsch回复于2019-04
#7 kkkitsch回复
割人头供电公司个

不好意思 发错了

0
#8kkkitsch回复于2019-04

割人头

0
#7kkkitsch回复于2019-04

割人头供电公司个

0
#6用户已被禁言回复于2018-03
#5 闲的没事写代码回复
楼主,我创建应用为啥没有通用类文本反作弊这个选项,现在{ "error_msg": "No permission to access data", "error_code": 6 }
展开

需要单独申请权限哦。提交工单。或者加相关群申请即可。

1
#5闲的没事写代码回复于2018-03

楼主,我创建应用为啥没有通用类文本反作弊这个选项,现在{
"error_msg": "No permission to access data",
"error_code": 6
}

0
#4JoSeaboy回复于2018-02

能识别一段文字是否违反广告法吗?

0
#2用户已被禁言回复于2018-01

接口名称在控制台的显示是:通用类文本反作弊

通用类文本反作弊     100000次/天免费   不保证并发

1
TOP
切换版块