机器学习NLP:借助百度AI实现简单的语句情感分析

提出问题

       例如目前丢给你一个数据分析任务,已知某一个热度话题下用于的评论信息,现在需要你判断当前网民的倾向,也就是判断当前负面情绪占比多还是正面情绪占比多?

方案选择

       明显的自然语言处理问题,基于用户评论大多采用中文,而由于中文的博大精深,词语往往具有多种意思,甚至还需要联系上下文,此时我们不能简单的建立一个字典来一一比对,工作量大不说,最后情感分类的结果也不一定准确。

       NLP中针对情感分析任务的方法有很多,由于是初学,我目前只了解了Word2Vec百度AI,由于是第一篇关于这方面的文章,我先简单的介绍下现成工具(百度AI)的使用好了。

前期准备

首先我们要进入百度AI里注册账号,并完成认证(这一步很重要,不认证的话功能无法使用!)

之后创建应用,会得到APP_ID , API_KEY ,SECRET_KEY,保存后。

打开cmd界面,执行pip install baidu-aip,安装百度ai模块。

然后写python代码进行调用,实现简单的文本判断:

from aip import AipNlp
APP_ID='你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'

client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

text="生不生都要考虑了,还两孩三孩的。"

result=client.sentimentClassify(text)

print(result)

输出结果:

positive_prob:表示是正面情绪的概率

confidence:置信度

negative_prob:表示是负面情绪的概率

sentiment:0代表是负面情绪;1代表是中和;2代表是正面情绪。

可能会出现的问题

当我们考虑循环判断语句情感时,列如从文本里提取大量语句进行情感分析:

from aip import AipNlp
import pandas as pd                         #导入pandas包
APP_ID='20014598'
API_KEY = 'ZSYpYqVSue34Nam2fyQmqYZr'
SECRET_KEY = 'NDWKy4t9d8VIlXg8qVkdpMfRK7Aoqgg0'

client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

# data = pd.read_csv("formal_coments.csv")             #读取csv文件
#print(data)                                #打印所有文件
# print (data.head(5))                        #打印前5行

# tc = pd.read_csv('formal_coments.csv', usecols=['评论内容','评论时间'])
c = pd.read_csv('c.csv', usecols=['评论内容'])
# print(d)
outpath = 'C:/Users/ASUS/Desktop/math model/c.csv'
#c.to_csv(outpath, sep='\t', index=False,header=True)

print(c)
sum1=0; sum2=0
for x in range(574):
    #print(str(c.loc[x]))
    result=client.sentimentClassify(str(c.loc[x]))['items'][0]['sentiment']
    print(result)
    if result==0:
        sum1+=1
    if result==2:
        sum2+=1


print("0: %d" % sum1)
print("2: %d" % sum2)

上述代码看起来似乎没有任何问题,但是程序一定会报错,并提示:

这是因为for循环速度太快,服务器容易达到QPS限制,因此就会出现上述错误,这里并没有什么好的解决方法,除非你花钱,如果想免费试用的话就只能对返回的错误信息进行判断,如果发生了错误,就将语句暂时存起来,等待一段时间再次判断。或者在循环里加入time.sleep(t)指令,让每次循环等待t秒再执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值