python对用户评价内容进行语义情感分析

使用 QQ 号登陆腾讯云官网 https://www.qcloud.com/, 在管理中心,获取的 SecretId 和 SecretKey。

背景:用户在点评平台上的评价文本内容,有时候感情色彩和打的分值并不相同,为了更准确的反映用户的感情色彩

我们获取文本内容后,通过腾讯的语义分析平台进行感情色彩分析,得到两个分值,positive,negative

为后面更深入的感情分析做铺垫。

以下为代码实现

数据源table.casv;

reviewid

reviewbody

userid

star

shopid

34605847

小伙子很聪明,我带了白酒,他服务不错,后来给他一百小费。下次去一定打他电话。

26081602

10

2040871

486307827

理财男,爱上汗蒸,服务很好,装修喜欢,汗蒸的很爽,还会再去,\\\\n******

7.76E+08

40

1.12E+08

462941419

好吧,没吃完就走了,味道还行,东西越来越少了啦****

7.89E+08

40

13900591

323162232

环境不错,好吃\\\\n\\\\n环境真不错,很好吃,服务也很到位

1.45E+08

50

56959562

359365021

总的来说还是不错的。每次打台球我们都会选择这里。******。好期待哟。

9.07E+08

30

16976660

代码实现

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
from QcloudApi.qcloudapi import QcloudApi
import  json

module='wenzhi'
action='TextSentiment'
config={
    'method':'GET',
    'Region':'ap-guangzhou',
    'secretId': 'your id',
    'secretKey': 'your key',
    'SignatureMethod':'HmacSHA1'
}

df1 = pd.read_table('table.casv', delimiter=',')
reviewid=[]
reviewbody=[]
post=[]
neagt=[]
codedesc=[]
service=QcloudApi(module,config)
for i in range(len(df1.index)):
    params = {'content':df1['reviewbody'][i], 'type': 4}
    # print(params)
    service.generateUrl(action, params)
    s = service.call(action, params)
    s2 = json.loads(s.decode())
    reviewid.append(df1['reviewid'][i])
    print(s2)
    post.append(s2['positive'])
    neagt.append(s2['negative'])
    codedesc.append(s2['codeDesc'])

df2=pd.DataFrame({
    'revieid':reviewid,
    'positive':post,
    'negtive':neagt
})
print(df2)
df2.to_csv('result_demo.csv')

输出结果result_demo.csv:

revieid

negtive

positive

34605847

0.041683249

0.958316803

486307827

0.075662032

0.924337983

462941419

0.504103124

0.495896906

323162232

0.0126756

0.987324417

359365021

0.011036985

0.988963008

我们发现,评论reviewid=34605847 是个极富乐观色彩的评论,但是只打了1颗星,就是10分。但是通过我们的语义分析判断出来是个积极评价。

单例欣赏:

日常生活中,我不理解对方说的话到底表达的什么含义怎么办???

语义分析帮助你

params={'content':'你是不是傻,我喜欢你你不知道吗???','type':4}
service=QcloudApi(module,config)

print(service.generateUrl(action,params))
s=service.call(action,params)
s2=json.loads(s.decode())
print(s2)

输出结果: {'codeDesc': 'Success', 'positive': 0.43967071175575, 'negative': 0.56032931804657, 'code': 0, 'message': ''}

这个negative=0.56032931804657 是消极结果,所以别答应ta

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值