作者介绍
王新华,男,西安工程大学电子信息学院,2022级研究生
研究方向:人工智能与模式识别
电子邮件:996514274@qq.com
魏小双,女,西安工程大学电子信息学院,2022级研究生
研究方向:目标检测
电子邮件:2549024740@qq.com
王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2717124491@qq.com
一. 文本情感分析介绍
1.1 API
是什么:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
有什么用:API 的一个主要功能是提供通用功能集。API同时也是一种中间件为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
1.2 文本情感分析简介
文本情感分析(Sentiment Analysis)是指利用自然语言处理和文本挖掘技术,对带有情感色彩的主观性文本进行分析、处理和抽取的过程。目前,文本情感分析研究涵盖了包括自然语言处理、文本挖掘、信息检索、信息抽取、机器学习和本体学等多个领域,得到了许多学者以及研究机构的关注,近几年持续成为自然语言处理和文本挖掘领域研究的热点问题之一。
1.3 文本情感分析的分类
(1)按照任务细粒度分类
图1 文本情感分析按照任务细粒度分类
TG-ABSA(Target-grounded aspect based sentiment analysis):分析对象是给定某一个实体的情况下该实体给定属性集合下的各个属性的情感分析。
TN-ABSA(Target noaspect based sentiment analysis):分析对象是文本中出现的实体的情感正负向。
T-ABSA(Target aspect based sentimentanalysis):分析对象是文本中出现的实体和属性组合。
(2)按照应用场景分类
图2 文本情感分析按照应用场景分类
1.4 参数说明
以通用情感分析为例:
二.调用华为API实现情感分析实验
2.1 调用华为API
华为云官网自然语言处理中提供了情感分析API的功能,可以在华为云官网中搜索自然语言处理,开通情感分析服务,添加访问密钥生成Access Key Id(AK)和Secret Access Key(SK)。
2.2 代码实现方法一
2.2.1 以通用情感分析为例:
# coding: utf-8
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdknlp.v2.region.nlp_region import NlpRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdknlp.v2 import *
if __name__ == "__main__":
ak = "<YOUR AK>" #填入申请好的Access Key Id
sk = "<YOUR SK>" #填入申请好的Secret Access Key
credentials = BasicCredentials(ak, sk) \
client = NlpClient.new_builder() \
.with_credentials(credentials) \
.with_region(NlpRegion.value_of("cn-north-4")) \
.build()
try:
request = RunSentimentRequest()
request.body = HWCloudSentimentReq(
lang="zh", #lang表示待分析文本content中的语言,“zh”为中文,“en”为英文
content="无比清醒的头脑,充满活力的身体" #content中填入待分析文本
)
response = client.run_sentiment(request)
print(response)
except exceptions.ClientRequestException as e:
print(e.status_code)
print(e.request_id)
print(e.error_code)
print(e.error_msg)
2.2.2 实验结果
调试成功之后,输出以下文本:
{
"result": {
"content": "清晰无比的头脑,充满活力的身体",
"label": 1, #情感标签,1为正向,0为负向
"confidence": 0.86632913 #标签置信度
}
}
2.3 代码实现方法二
2.3.1 完整代码
每一行的注释:
导入包requests
导入包json
url的地址
调试生成的token,复制粘贴过来就可以
Header里是内容的类型和授权的token
主体部分是输入的文本内容
请求相应的url、文本数据和header
输出最后的文本。
# 需提前安装requests,执行pip install requests
import requests
import json
def nlp_demo():
url = 'https://nlp-ext.cn-north-4.myhuaweicloud.com/v1/1916e290756f403889ef7da669b5c8a7/nlu/sentiment'
token = '填入自己在控制台生成的token代码 '
header = {
'Content-Type': 'application/json',
'X-Auth-Token': token
}
body = {
'content': '昨天母亲节妈妈收到了孩子们的祝福很开心很幸福',
}
resp = requests.post(url, data=json.dumps(body), headers=header)
print(resp.text)
if __name__ == '__main__':
nlp_demo()
2.3.2 测试案例
contents:
- 浑浑噩噩的头脑、失魂落魄的身体
- 今天拍到很好看的天空的照片,我很开心
- 昨天吃到了重庆鸡公煲,感觉像是回到了重庆的大学时光
- 昨天母亲节、妈妈收到了孩子们的祝福很开心很幸福
测试结果:
-
浑浑噩噩的头脑、失魂落魄的身体
-
今天拍到很好看的天空的照片,我很开心
-
昨天吃到了重庆鸡公煲,感觉像是回到了重庆的大学时光
-
昨天母亲节、妈妈收到了孩子们的祝福很开心很幸福
2.4 注意事项
在运行程序之前需检查调用的数据包是否已经安装,如果没有安装,可在命令提示窗口中进行安装,首先使用“conda activate 环境名称”进入虚拟环境,然后执行“pip install 数据包名称”,如果安装较慢,可使用清华源镜像进行安装,安装指令为:
“pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 数据包名称”,
在调用华为API实验中,建议执行:
“pip install -i https://pypi.tuna.tsinghua.edu.cn/simple huaweicloudsdkall”指令来安装所有的数据包。