百度自然语言处理开放接口使用代码

 本代码是方便开发者使用百度的自然语言处理能力做开发,代码如下,使用者只需要设置自己的ak和sk就可以使用。

# -*- coding:utf-8 -*-
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Copyright (c) 2019 Baidu.com, Inc. All Rights Reserved
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
"""
该部分代码为试用百度提供的对外开放的 自然语言处理 的能力,该部分代码包含了百度在自然语言处理方面的绝大部分能力
Authors: rushant
Date: 2019/02/15 14:00:00
"""
import json
import urllib2


# 文档地址:https://ai.baidu.com/docs#/NLP-API/4007232e
def post(url, json_data):
    """
    发送post请求
    :param url:api接口
    :param json_data:body中的数据
    :return:
    """
    req = urllib2.Request(url)
    req.add_header('Content-Type', 'application/json')
    res = urllib2.urlopen(req, json.dumps(json_data))
    return res.read().decode('gbk').encode('utf-8')


# client_id 为官网获取的自己创建的应用的AK, client_secret 为官网获取的自己创建的应用的SK,参考地址:http://ai.baidu.com/docs#/Auth/top
ak = '填写自己的ak'
sk = '填写自己的sk'

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s' \
       '&client_secret=%s' % (ak, sk)
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()

access_token = ''
if content:
    access_token = json.loads(content)['access_token']
else:
    print '获取access token 失败'

# 1.词法分析
lexer = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?access_token=%s' % access_token
data = {'text': '我想创办一家公司'}
print post(lexer, data)

# 2.依存句法分析
depparser = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/depparser?access_token=%s' % access_token
data = {'text': '我想创办一家公司','mode':1}
print post(depparser, data)

# 3.词向量表示
word_emb_vec = 'https://aip.baidubce.com/rpc/2.0/nlp/v2/word_emb_vec?access_token=%s' % access_token
data = {'word': '阿里巴巴'}
print post(word_emb_vec, data)

# 4.DNN语言模型
dnnlm_cn = 'https://aip.baidubce.com/rpc/2.0/nlp/v2/dnnlm_cn?access_token=%s' % access_token
data = {'text': '床前明月光'}
print post(dnnlm_cn, data)

# 5.词义相似度
word_emb_sim = 'https://aip.baidubce.com/rpc/2.0/nlp/v2/word_emb_sim?access_token=%s' % access_token
data = {"word_1": "北京", "word_2": "上海"}
print post(word_emb_sim, data)

# 6.短文本相似度
simnet = 'https://aip.baidubce.com/rpc/2.0/nlp/v2/simnet?access_token=%s' % access_token
data = {"text_1": "浙富股份", "text_2": "万事通自考网", 'model':'CNN'}
print post(simnet, data)

# 7.评论观点抽取
comment_tag = 'https://aip.baidubce.com/rpc/2.0/nlp/v2/comment_tag?access_token=%s' % access_token
data = {
    "text": "三星电脑电池不给力",
    "type": 13
}
print post(comment_tag, data)
# 8.情感倾向分析
sentiment_classify = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/sentiment_classify?access_token=%s' % access_token
data = {'text': '百度公司真的厉害啊'}
print post(sentiment_classify, data)
# 9.文章标签接口
keyword = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/keyword?access_token=%s' % access_token
data = {
    "title": "iphone手机出现“白苹果”原因及解决办法,用苹果手机的可以看下",
    "content": "如果下面的方法还是没有解决你的问题建议来我们门店看下成都市锦江区红星路三段99号银石广场24层01室。在通电的情况下掉进清水,这种情况一不需要拆机处理。尽快断电。用力甩干,但别把机器甩掉,主意要把屏幕内的水甩出来。如果屏幕残留有水滴,干后会有痕迹。^H3 放在台灯,射灯等轻微热源下让水分慢慢散去。"
}
print post(keyword, data)

# 10.文章分类
topic = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/topic?access_token=%s' % access_token
data = {
    "title": "欧洲冠军联赛",
    "content": "欧洲冠军联赛是欧洲足球协会联盟主办的年度足球比赛,代表欧洲俱乐部足球最高荣誉和水平,被认为是全世界最高素质、最具影响力以及最高水平的俱乐部赛事,亦是世界上奖金最高的足球赛事和体育赛事之一。"
}
print post(topic, data)

# 11.文本纠错
ecnet = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet?access_token=%s' % access_token
data = {
    "text": "百度是一家人工只能公司"
}
print post(ecnet, data)

# 12.新闻摘要(该功能邀测期,需要权限申请)
news_summary = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/news_summary?access_token=%s' % access_token
data = {
    "title": "麻省理工学院为无人机配备RFID技术,进行仓库货物管理",
    "content": "麻省理工学院的研究团队为无人机在仓库中使用RFID技术进行库存查找等工作,创造了一种聪明的新方式。它允许公司使用更小,更安全的无人机在巨型建筑物中找到之前无法找到的东西。使用RFID标签更换仓库中的条形码,将帮助提升自动化并提高库存管理的准确性。与条形码不同,RFID标签不需要对准扫描,标签上包含的信息可以更广泛和更容易地更改。它们也可以很便宜,尽管有优点,但是它具有局限性,对于跟踪商品没有设定RFID标准,“标签冲突”可能会阻止读卡器同时从多个标签上拾取信号。扫描RFID标签的方式也会在大型仓库内引起尴尬的问题。固定的RFID阅读器和阅读器天线只能扫描通过设定阈值的标签,手持式读取器需要人员出去手动扫描物品。几家公司已经解决了无人机读取RFID的技术问题。配有RFID读卡器的无人机可以代替库存盘点的人物,并以更少的麻烦更快地完成工作。一个人需要梯子或电梯进入的高箱,可以通过无人机很容易地达到,无人机可以被编程为独立地导航空间,并且他们比执行大规模的重复任务的准确性和效率要比人类更好。目前市场上的RFID无人机需要庞大的读卡器才能连接到无人机的本身。这意味着它们必须足够大,以支持附加硬件的尺寸和重量,使其存在坠机风险。麻省理工学院的新解决方案,名为Rfly,允许无人机阅读RFID标签,而不用捆绑巨型读卡器。相反,无人机配备了一个微小的继电器,它像Wi-Fi中继器一样。无人机接收从远程RFID读取器发送的信号,然后转发它读取附近的标签。由于继电器很小,这意味着可以使用更小巧的无人机,可以使用塑料零件,可以适应较窄的空间,不会造成人身伤害的危险。麻省理工学院的Rfly系统本质上是对现有技术的一个聪明的补充,它不仅消除了额外的RFID读取器,而且由于它是一个更轻的解决方案,允许小型无人机与大型无人机做同样的工作。研究团队正在马萨诸塞州的零售商测试该系统。",
    "max_summary_len": 200
}
print post(news_summary, data)

# 13.对话情绪识别,可以做一个自动回复系统
emotion = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion?access_token=%s' % access_token
data = {
    "scene":"talk",
    "text": "本来今天高高兴兴"
}
print post(emotion, data)




 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页