TaoLerCMS开发过程中使用到了百度智能语言生成系统,自动生成百度分词和文章标签,其功能非常强大,本篇使用更通俗易懂的语言来学习百度智能语言与知识的使用。
申请百度分词的API Key和Secret Key
1. 申请地址https://cloud.baidu.com/product/nlp_apply/doctagger
2. 创建应用:在应用列表中新创建应用
后面需要使用API Key和Secret Key,来获取到百度分词的token来调用百度分词api接口获取数据,这里要记录下来。
本站长常用的语言生成技术的文章标签接口和语言理解技术的词法分析,当然还有更多的接口非常好用,如地址识别,文本纠错,新闻摘要,文章标题生成等。
3. 领取免费资源,开头词法分析
以下是对百度词法分析的描述:
接口描述 词法分析(通用版):向用户提供分词、词性标注、专名识别三大功能;能够识别出文本串中的基本词汇(分词),对这些词汇进行重组、标注组合后词汇的词性,并进一步识别出命名实体。
(通用版)请求URL:
https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer
(定制版)请求URL:
https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer_custom
body请求示例:
{ "text": "百度是一家高科技公司" }
请求格式 POST方式调用
https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?charset=UTF-8&access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074
返回示例
{
"text":"百度是一家高科技公司",
"items":[
{
"byte_length":4,
"byte_offset":0,
"formal":"",
"item":"百度",
"ne":"ORG",
"pos":"",
"uri":"",
"loc_details":[ ],
"basic_words":["百度"]
},
{
"byte_length":2,
"byte_offset":4,
"formal":"",
"item":"是",
"ne":"",
"pos":"v",
"uri":"",
"loc_details":[ ],
"basic_words":["是"]
},
{
"byte_length":4,
"byte_offset":6,
"formal":"",
"item":"一家",
"ne":"",
"pos":"m",
"uri":"",
"loc_details":[ ],
"basic_words":["一","家"]
},
{
"byte_length":6,
"byte_offset":10,
"formal":"",
"item":"高科技",
"ne":"",
"pos":"n",
"uri":"",
"loc_details":[ ],
"basic_words":["高","科技"]
},
{
"byte_length":4,
"byte_offset":16,
"formal":"",
"item":"公司",
"ne":"",
"pos":"n",
"uri":"",
"loc_details":[ ],
"basic_words":["公司"]
}
]
}
文章标签接口:
Body请求示例:
{
"title":"iphone手机出现“白苹果”原因及解决办法,用苹果手机的可以看下",
"content": "如果下面的方法还是没有解决你的问题建议来我们门店看下成都市锦江区红星路三段99号银石广场24层01室。在通电的情况下掉进清水,这种情况一不需要拆机处理。尽快断电。用力甩干,但别把机器甩掉,主意要把屏幕内的水甩出来。如果屏幕残留有水滴,干后会有痕迹。^H3 放在台灯,射灯等轻微热源下让水分慢慢散去。"
}
请求格式
请求POST方式调用
https://aip.baidubce.com/rpc/2.0/nlp/v1/keyword?charset=UTF-8&access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074
返回示例
{
"log_id": 4457308639853058292,
"items": [
{
"score": 0.997762,
"tag": "iphone"
},
{
"score": 0.861775,
"tag": "手机"
},
{
"score": 0.845657,
"tag": "苹果"
},
{
"score": 0.83649,
"tag": "苹果公司"
},
{
"score": 0.797243,
"tag": "数码"
}
]
}
其中,不管使用哪种语言技术,URL都需要token参数和Header的参数格式为json,具体如下:
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/json |
token可以自动通过程序生成,或者可以手动获得:
a.php获取access_token的方法:
// 通过接口获取token
function getToken() {
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$post_data['grant_type'] = 'client_credentials';
$post_data['client_id'] = '你申请的client_id';
$post_data['client_secret'] = '你申请的client_secret';
$o = "";
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$res = $this->request_post($url, $post_data);
$access_token = json_decode($res)->access_token;
}
// api_post接口
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
$curl = curl_init();//初始化curl
curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($curl);//运行curl
curl_close($curl);
return $data;
}
b. 手动获取token的方法:
//访问此链接
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的id&client_secret=你的secret
从返回的数据中,找到access_token字符串,保存下来。
有了API Key和Secret Key,及拿到生成的token,就可以从接口获取内容了。
php使用百度智能语言获取文章标签和百度分词,在另一个章节中具体介绍。
百度智能语言在TaoLerCMS中的使用展示:
1. 把申请到的两个Key填入到TaoLer_Admin后台SEO接口配置中
2. 配置保存后,会自动获取接口的token保存在配置文件中。
3. 发文章时,根据标题,会自动生产百度的tag关键词,使得Seo效果会更好,当然,标签也可手动的去添加,不影响自动生成的标签内容。