新建 AipNlp:
AipNlp 是自然语言处理的 Python SDK 客户端,为使用自然语言处理的开发人员提供了一系列的交互方法。参考如下代码新建一个 AipNlp:
from aip import AipNlp
""" 你的 APPID AK SK """
APP_ID = '##########' #'你的 APP ID'
API_KEY = '##########' #'你的 Api key'
SECRET_KEY = '##########' #'你的 Secret key'
client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
配置AipNlp:
如果用户需要配置 AipNlp 的网络请求参数(一般不需要配置),可以在构造 AipNlp 之后调用接口设置参数,目前只支持以下参数:
接口 | 说明 |
---|---|
setConnectionTimeoutInMillis | 建立连接的超时时间(单位:毫秒) |
setSocketTimeoutInMillis | 通过打开的连接传输数据的超时时间(单位:毫秒) |
接口说明:
词法分析:
词法分析接口向用户提供分词、词性标注、专名识别三大功能;能够识别出文本串中的基本词汇(分词),对这些词汇进行重组、标注组合后词汇的词性,并进一步识别出命名实体。
text = "百度是一家高科技公司"
""" 调用词法分析 """
client.lexer(text)
{'log_id': 3174179683102561622,
'text': '百度是一家高科技公司',
'items': [{'loc_details': [],
'byte_offset': 0,
'uri': '',
'pos': '',
'ne': 'ORG',
'item': '百度',
'basic_words': ['百度'],
'byte_length': 4,
'formal': ''},
{'loc_details': [],
'byte_offset': 4,
'uri': '',
'pos': 'v',
'ne': '',
'item': '是',
'basic_words': ['是'],
'byte_length': 2,
'formal': ''},
{'loc_details': [],
'byte_offset': 6,
'uri': '',
'pos': 'm',
'ne': '',
'item': '一家',
'basic_words': ['一', '家'],
'byte_length': 4,
'formal': ''},
{'loc_details': [],
'byte_offset': 10,
'uri': '',
'pos': 'n',
'ne': '',
'item': '高科技',
'basic_words': ['高', '科技'],
'byte_length': 6,
'formal': ''},
{'loc_details': [],
'byte_offset': 16,
'uri': '',
'pos': 'n',
'ne': '',
'item': '公司',
'basic_words': ['公司'],
'byte_length': 4,
'formal': ''}]}
词法分析(定制版)
text = "百度是一家高科技公司"
""" 调用词法分析(定制版)"""
client.lexerCustom(text)
{'log_id': 1030687273146384758,
'items': [{'loc_details': [],
'byte_offset': 0,
'uri': '',
'ne': 'ORG',
'basic_words': ['百度'],
'item': '百度',
'pos': '',
'byte_length': 4,
'formal': ''},
{'loc_details': [],
'byte_offset': 4,
'uri': '',
'ne': '',
'basic_words': ['是'],
'item': '是',
'pos': 'v',
'byte_length': 2,
'formal': ''},
{'loc_details': [],
'byte_offset': 6,
'uri': '',
'ne': '',
'basic_words': ['一', '家'],
'item': '一家',
'pos': 'm',
'byte_length': 4,
'formal': ''},
{'loc_details': [],
'byte_offset': 10,
'uri': '',
'ne': '',
'basic_words': ['高', '科技'],
'item': '高科技',
'pos': 'n',
'byte_length': 6,
'formal': ''},
{'loc_details': [],
'byte_offset': 16,
'uri': '',
'ne': '',
'basic_words': ['公司'],
'item': '公司',
'pos': 'n',
'byte_length': 4,
'formal': ''}],
'text': '百度是一家高科技公司'}
依存句法分析
依存句法分析接口可自动分析文本中的依存句法结构信息,哦拥句子中词与词之间的依存关系来表示词语的句法结构信息(如“主谓”、“动宾”、“定中”等结构关系),并用树状结构来表示整句的结构(如“主谓宾”、“定状补”等)。
text = "今天天气怎么样"
""" 调用依存句法分析 """
client.depParser(text)
""" 如果有可选参数 """
options = {}
options["mode"] = 1
""" 带参数调用依存句法分析 """
client.depParser(text, options)
{'log_id': 6738947376011839670,
'text': '今天天气怎么样',
'items': [{'postag': 't', 'head': 2, 'word': '今天', 'id': 1, 'deprel': 'ATT'},
{'postag': 'n', 'head': 3, 'word': '天气', 'id': 2, 'deprel': 'SBV'},
{'postag': 'r', 'head': 0, 'word': '怎么样', 'id': 3, 'deprel': 'HED'}]}
词向量表示
词向量表示接口提供中文词向量的查询功能。
word = "张飞"
""" 调用词向量表示 """
client.wordEmbedding(word)
{'log_id': 1696656248514338902,
'word': '张飞',
'vec': [-0.290384,
-0.276273,
0.302719,
0.7209,
-0.0765072,
0.31901,
0.270633,
0.795086,
-0.203823,
-0.125412,
0.45416,
-0.172919,
0.295541,
-0.216173,
...]}
DNN 语言模型
中文 DNN 语言模型接口用于输出切词结果并给出每个词在句子中的概率值,判断一句话是否符合语言表达习惯。
text = "床前明月光"
""" 调用 DNN 语言模型 """
client.dnnlm(text)
{'log_id': 8461893498410162902,
'text': '床前明月光',
'items': [{'word': '床', 'prob': 3.85273e-05},
{'word': '前', 'prob': 0.0289018},
{'word': '明月', 'prob': 0.0284406},
{'word': '光', 'prob': 0.808029}],
'ppl': 79.0651}
词意相似度
输入两个词,得到两个词的相似度结果。
word1 = "北京"
word2 = "上海"
""" 调用词义相似度 """
client.wordSimEmbedding(word1, word2)
""" 如果有可选参数 """
options = {}
options["mode"] = 0
""" 带参数调用词义相似度 """
client.wordSimEmbedding(word1, word2, options)
{'log_id': 1841062063069490934,
'error_code': 282004,
'error_msg': 'invalid parameter(s)'}
短文本相似度
text1 = "浙富股份"
text2 = "万事通自考网"
""" 调用短文本相似度 """
client.simnet(text1, text2)
""" 如果有可选参数 """
options = {}
options["model"] = "CNN"
""" 带参数调用短文本相似度 """
client.simnet(text1, text2, options)
{'log_id': 8759613961966585046,
'texts': {'text_2': '万事通自考网', 'text_1': '浙富股份'},
'score': 0.0549339}
评论观点抽取
评论观点抽取接口用来提取一条评论句子的关注点和评论观点,并输出评论观点标签以及评论观点极性。
text = "三星电脑电池不给力"
""" 调用评论观点抽取 """
client.commentTag(text)
""" 如果有可选参数 """
options = {}
options["type"] = 13
""" 带参数调用评论观点抽取 """
client.commentTag(text, options)
{'log_id': 8426923826378164630,
'items': [{'sentiment': 0,
'abstract': '三星电脑<span>电池不给力</span>',
'prop': '电池',
'begin_pos': 8,
'end_pos': 18,
'adj': '不给力'}]}
情感倾向分析
对包含主观观点信息的文本进行情感极性类别(积极、消极、中性)的判断,并给出相应的置信度。
text = "苹果是一家伟大公司"
""" 调用情感倾向分析 """
client.sentimentClassify(text)
{'log_id': 7415487462125078582,
'text': '苹果是一家伟大公司',
'items': [{'positive_prob': 0.691839,
'confidence': 0.315198,
'negative_prob': 0.308161,
'sentiment': 2}]}
文章标签
文章标签服务能够针对网络各类媒体文章进行快速的内容理解,根据输入含有标题的文章,输出多个内容标签以及对应的置信度,用于个性化推荐、相似文章聚合、文本内容分析等场景。
title = "iphone手机出现“白苹果”原因及解决办法,用苹果手机的可以看下"
content = "如果下面的方法还是没有解决你的问题建议来我们门店看下成都市锦江区红星路三段99号银石广场24层01室。"
""" 调用文章标签 """
client.keyword(title, content)
{'log_id': 4313909132996888022,
'items': [{'score': 0.99775, 'tag': 'iphone'},
{'score': 0.862602, 'tag': '手机'},
{'score': 0.845657, 'tag': '苹果'},
{'score': 0.837886, 'tag': '苹果公司'},
{'score': 0.811601, 'tag': '白苹果'},
{'score': 0.797911, 'tag': '数码'}]}
文章分类
对文章按照内容类型进行自动分类,首批支持娱乐、体育、科技等26个主流内容类型,文本内容分析等应用提供基础技术支持。
title = "欧洲冠军杯足球赛"
content = "欧洲冠军联赛是欧洲足球协会联盟主办的年度足球比赛,代表欧洲俱乐部足球最高荣誉和水平,被认为是全世界最高素质、最具影响力以及最高水平的俱乐部赛事,亦是世界上奖金最高的足球赛事和体育赛事之一。"
""" 调用文章分类 """
client.topic(title, content)
{'log_id': 2207187729196380118,
'item': {'lv2_tag_list': [{'score': 0.915631, 'tag': '足球'},
{'score': 0.803507, 'tag': '国际足球'},
{'score': 0.77813, 'tag': '英超'}],
'lv1_tag_list': [{'score': 0.830915, 'tag': '体育'}]}}
文本纠错
识别输入文本中有错误的片段,提示错误并给出正确的文本结果。支持短文本、长文本、语音等内容的错误识别,纠错是搜索引擎、语音识别、内容审查等功能更好运行的基础模块之一。
text = "百度是一家仁工智能公司"
""" 调用文本纠错 """
client.ecnet(text)
{'log_id': 4819268271360271574,
'item': {'vec_fragment': [{'ori_frag': '仁工',
'begin_pos': 10,
'correct_frag': '人工',
'end_pos': 14}],
'score': 0.529867,
'correct_query': '百度是一家人工智能公司'},
'text': '百度是一家仁工智能公司'}
对话情绪识别接口
针对用户日常沟通文本背后所蕴含情绪的一种直观检测,可自动识别出当前会话者所表现出的情绪类别及其置信度,可以帮助企业更全面地把握产品服务质量、监控客户服务质量。
text = "本来今天高高兴兴"
""" 调用对话情绪识别接口 """
client.emotion(text)
""" 如果有可选参数 """
options = {}
options["scene"] = "talk"
""" 带参数调用对话情绪识别接口 """
client.emotion(text, options)
{'log_id': 901856600521512694,
'text': '本来今天高高兴兴',
'items': [{'subitems': [{'prob': 0.501008, 'label': 'happy'}],
'replies': ['你的笑声真欢乐'],
'prob': 0.501008,
'label': 'optimistic'},
{'subitems': [], 'replies': [], 'prob': 0.49872, 'label': 'neutral'},
{'subitems': [],
'replies': [],
'prob': 0.000272128,
'label': 'pessimistic'}]}
新闻摘要接口
自动抽取新闻文本中的关键信息,进而生成指定长度的新闻摘要。
content = "麻省理工学院的研究团队为无人机在仓库中使用RFID技术进行库存查找等工作,创造了一种..."
maxSummaryLen = 300
""" 调用新闻摘要接口 """
client.newsSummary(content, maxSummaryLen);
""" 如果有可选参数 """
options = {}
options["title"] = "标题"
""" 带参数调用新闻摘要接口 """
client.newsSummary(content, maxSummaryLen, options)
{'error_code': 6, 'error_msg': 'No permission to access data'}