羊群效应与AI时代:探索腾讯AI自然语言处理接口的重要性
[id_[id_1412508886]334499221]每只羊舔一下那只狗都能把那只狗舔死呢,想象一下 1000 个(这里不太理解“女轮着舔一个男的”具体所指,暂按此翻译)这样的情况,当然羊不会这么想啦,羊会想我上去舔,可其他羊没上去,这就是一对一的情况呀,这可不是普通的舔啦,而是濑,濑就是一种服务呢。现在,处于 AI 时代,也是大数据时代。你要是不开发 AI,那你以后肯定会后悔的。当然啦,有人问我为什么选择 TC,就像李白说的“床前明月光,年尾钱紧张”那样。。。好了,说了那么多,是时候展现真正的技术了。。。

腾讯ai官网:
这里只实现自然语言处理这模块的接口。。。
1、通用自然语言处理接口
public static String getNaturalLanguage(String[id_80491102]String text, int type, String encoding) throws Exception{
SignEntity signEntity = new SignEntity(text,type);
String url = baseUrl+"?app_id=" + signEntity.getApp_id() + "&time_stamp="
+ signEntity.getTime_stamp() + "&nonce_str=" + signEntity.getNonce_str() + "&sign="
+ signEntity.getSign() + "&text=" + URLEncoder.encode(text.trim(), encoding);
String message = _httpUtil.doHttpGet(url,encoding);
System.out.println(message);
JSONObject demoJson = JSONObject.fromObject(message);
String data = demoJson.getString("data");
return data;
}
参数说明:
baseUrl:腾讯ai接口地址
text:文本文字
type:1POST处理 2GET处理
encoding:编码 UTF-8、GBK
这个类的作用首先是获取 sign,即创建了一个 SignEntity 实例,其参数为 text 和 type,代码为 SignEntity signEntity = new SignEntity(text,type);
需传入文本文字以及编码类型,其中部分文本文字需采用 GBK 编码,部分文本文字需采用 UTF-8 编码,具体详情可参考官网。
然后就是拼接请求参数,最后返回json格式字符串
2、机器人聊天
这个接口好像图灵机器人一样
/**
* 机器人聊天
* @param baseUrl
* @param text
* @param session
* @return
* @throws Exception
*/
获取自然语言聊天内容。需要传入基础 URL、文本以及会话信息。在执行过程中可能会抛出异常。具体的实现方式如下:通过特定的方法,将传入的基础 URL、文本和会话信息进行处理,从而得到自然语言聊天的结果。如果在处理过程中出现异常情况,就会将该异常抛出。
int app_id = TencentAPI.APP_ID_AI;
String app_key = TencentAPI.APP_KEY_AI;
获取的时间戳为一个整数值,这个整数值是通过将 System 相关的某个值转换为整数得到的。.currentTimeMillis() / 1000) ;
String 类型的 nonce_str 等于 _stringUtil 。.getCharAndNumr(17, 3);
Map person_Id_body = new HashMap();
person_Id_body.put("app_id", app_id+"");
person_Id_body.put("time_stamp", time_stamp+"");
person_Id_body.put("nonce_str", nonce_str);
person_Id_body.put("question", text);
person_Id_body.put("session", session);
String 的 sign 是 TencentAISignSort 。.getSignature(person_Id_body);
创建了一个 SignEntity 的实例,将其赋值给 signEntity 。;
signEntity.setApp_id(app_id);
signEntity.setApp_key(app_key);
signEntity.setNonce_str(nonce_str);
signEntity.setSign(sign.toUpperCase());
signEntity.setTime_stamp(time_stamp);
String url = baseUrl+"?app_id=" + signEntity.getApp_id() + "&time_stamp="
+ signEntity.getTime_stamp() + "&nonce_str=" + signEntity.getNonce_str() + "&sign="
+ signEntity.getSign() + "&session="+URLEncoder.encode(session.trim(), "UTF-8")+"&question=" + URLEncoder.encode(text.trim(), "UTF-8");
String message = _httpUtil.doHttpGet(url,"UTF-8");
System.out.println(message);
JSONObject 为 demoJson,demoJson 是 JSONObject 类型的对象。.fromObject(message);
String data = demoJson.getString("data");
return data;
}
3、中译英文本翻译
这也与百度翻译一样效果。。。
/**
* 文本翻译
* @param baseUrl
* @param text
* @param type
* @return
* @throws Exception
*/
获取自然语言翻译的方法。该方法接收三个参数,分别是基础 URL(baseUrl)、待翻译文本(text)和翻译类型(type)。在方法内部,会进行一系列的操作来获取自然语言翻译的结果。如果在过程中出现异常,将会抛出该异常。
int app_id = TencentAPI.APP_ID_AI;
String app_key = TencentAPI.APP_KEY_AI;
int time_stamp = (int) (System.currentTimeMillis() / 1000) ;
String nonce_str = _stringUtil.getCharAndNumr(17, 3);
Map person_Id_body = new HashMap();
person_Id_body.put("app_id", app_id+"");
person_Id_body.put("time_stamp", time_stamp+"");
person_Id_body.put("nonce_str", nonce_str);
person_Id_body.put("text", text);
person_Id_body.put("type", type+"");
String sign = TencentAISignSort.getSignature(person_Id_body);
SignEntity signEntity = new SignEntity();
signEntity.setApp_id(app_id);
signEntity.setApp_key(app_key);
signEntity.setNonce_str(nonce_str);
signEntity.setSign(sign.toUpperCase());
signEntity.setTime_stamp(time_stamp);
String url = baseUrl+"?app_id=" + signEntity.getApp_id() + "&time_stamp="
+ signEntity.getTime_stamp() + "&nonce_str=" + signEntity.getNonce_str() + "&sign="
+ signEntity.getSign() + "&type="+type+"&text=" + URLEncoder.encode(text.trim(), "UTF-8");
String message = _httpUtil.doHttpGet(url,"UTF-8");
System.out.println(message);
JSONObject demoJson = JSONObject.fromObject(message);
String data = demoJson.getString("data");
return data;
}
4、图片翻译
这个挺有意思,它的功能类似于 ocr。不过腾讯 ai 也具备 ocr 接口。这个功能是能够识别图片中的文字以及文字的位置等信息。这里是通过 image base64 编码来实现的,编码的内容有点长。
/**
* 图片翻译
* @param appId
* @param nonce_str
* @param image
* @param session_id
* @param time_stamp
* @return
* @throws Exception
*/
public static String getNaturalLanguageImgTrans使用字符串 baseUrl 和字符串 image 。throws Exception{
String sign = "";
intapp_id 等于 TencentAPI 的 APP_ID_AI 。
int time_stamp = (intSystem.currentTimeMillis() 除以某个数得到的结果。1000) ;
String nonce_str 等于 _stringUtil 获取字符和数字的结果。17, 3);
String 类型的 session_id 等于 _stringUtil 获取的包含字符和数字的内容。10, 1);
sign 等于通过 appSignAI4ImgDetect 函数来生成,该函数的参数包括腾讯 API 的 APP_ID_AI、随机字符串 nonce_str、图像 image、会话 ID session_id 以及时间戳 time_stamp。
String 这个变量名为 message 的内容,是由 _httpUtil 这个对象去执行 doHttpPost 这个方法,传入 baseUrl 这个参数所得到的结果。"app_id=" + URLEncoder.encode((app_id+"").trim(), "UTF-8")
+ "&image="使用 URLEncoder 对 image 进行编码,编码前先去除 image 两端的空白字符"UTF-8")+"&nonce_str="使用 URLEncoder 对 nonce_str 进行编码,编码的内容为 nonce_str 去除两端空格后的结果。"UTF-8")
+ "&scene="+URLEncoder.encode("doc", "UTF-8")+"&session_id="URLEncoder 对 session_id 进行编码,编码的对象是 session_id 去除两端空白字符后的内容"UTF-8")
+"&sign="+sign+"&source="+URLEncoder.encode("zh", "UTF-8")+"&target="+URLEncoder.encode("en", "UTF-8")
+ "&time_stamp="URLEncoder 对时间戳进行编码,编码的内容是时间戳加上某个未知的部分。具体来说,就是将时间戳与某个未知内容进行拼接后,再用 URLEncoder 进行编码操作。"").trim(), "UTF-8"));
使用 fromObject 方法将 message 转换为 JSONObject 实例,得到 demoJson 。
从 demoJson 中获取字符串类型的数据,获取的方式是通过调用 getString 方法,并传入相应的参数,获取到的字符串数据赋值给了变量 data"data");
System.out.println("session_id:"+session_id);
return data;
}
5、语音翻译
给一个mp3,要求有时间限制的,然后能识别出文字出来。。。
/**
* 语音翻译
* @param baseUrl
* @param speechChunk
* @return
* @throws Exception
*/
public static String getNaturalLanguageSpeechTrans有两个参数,分别是 String baseUrl 和 String speechChunk。throws Exception{
String sign = "";
int app_id = TencentAPI.APP_ID_AI;
int time_stamp = (int) (System.currentTimeMillis() / 1000) ;
String nonce_str = _stringUtil.getCharAndNumr(17, 3);
String session_id = _stringUtil.getCharAndNumr(10, 1);
int format = 8;
int seq = 0;
int end = 1;
String source = "zh";
String target = "en";
sign 等于通过 appSignAI4SpeechDetect 函数来生成,该函数的参数包括腾讯云 API 的 APP_ID_AI、时间戳 time_stamp、随机字符串 nonce_str、格式 format 以及其他可能的参数。
- 还有 target 。
String message = _httpUtil.doHttpPost(baseUrl,"app_id=" + URLEncoder.encode(app_id+"","UTF-8") + "&end=" + URLEncoder.encode(end+"","UTF-8")
+ "&format=" + URLEncoder.encode(format+"","UTF-8")
+"&nonce_str="使用 URLEncoder 对 nonce_str 进行编码。"UTF-8")+ "&seq="+URLEncoder.encode(seq+"", "UTF-8")
+"&session_id=" + URLEncoder.encode(session_id.trim(), "UTF-8") +"&sign=" + sign +"&source="+URLEncoder.encode(source, "UTF-8")
+"&speech_chunk="使用 URLEncoder 对 speechChunk 进行编码。"UTF-8")
+"&target="+URLEncoder.encode(target, "UTF-8") + "&time_stamp="URLEncoder 对时间戳进行编码,编码的内容是时间戳加上某个未知的东西(这里没有明确给出具体是什么)。"","UTF-8"));
JSONObject demoJson = JSONObject.fromObject(message);
String data = demoJson.getString("data");
System.out.println("session_id:"+session_id);
return data;
}
6、语种识别
输入一段文本,可以识别文字是中文还是英文或者其他语言。。。
/**
* 语种识别
* @param baseUrl
* @param speechChunk
* @return
* @throws Exception
*/
public static String getNaturalLanguageTextDetect(String baseUrl, String text) throws Exception{
String sign = "";
int app_id = TencentAPI.APP_ID_AI;
int time_stamp = (int) (System.currentTimeMillis() / 1000) ;
String nonce_str = _stringUtil.getCharAndNumr(17, 3);
int force = 0;
String candidate_langs = "zh";
sign 等于通过 appSignAI4SpeechDetect 函数来处理(TencentAPI.APP_ID_AI,候选语言列表 candidate_langs,强制参数 force,随机字符串 nonce_str,文本 text,时间戳 time_stamp);
String message = _httpUtil.doHttpPost(baseUrl,"app_id=" + URLEncoder.encode(app_id+"","UTF-8") + "&candidate_langs="将 candidate_langs 进行 URLEncoder.encode 操作,即对 candidate_langs 进行编码处理。"","UTF-8")
+ "&force=" + URLEncoder.encode(force+"","UTF-8")
+"&nonce_str=" + URLEncoder.encode(nonce_str,"UTF-8")+"&sign=" + sign+ "&text="+URLEncoder.encode(text+"", "UTF-8")
+ "&time_stamp=" + URLEncoder.encode(time_stamp+"","UTF-8"));
JSONObject demoJson = JSONObject.fromObject(message);
String data = demoJson.getString("data");
return data;
}
当然,存在着很多的 ai,这仅仅是其中的一部分,有具备图片功能的,有具备视频功能的等等。
需要所有源代码的话,可以添加 QQ490647751,然后回复“java 开发腾讯 AI,共探人工智能”来获取。