参考:
文本观点提取任务项目实战:基于飞桨高层API快速实现情感分析比赛结果提交
文本情感分析句子级,目标级,观点抽取三种文本情感分析,使用千言比赛里的数据集进行训练预测
情感识别飞桨高层API课所学,情感识别
有完整的流程。
这个还不错
自己分析的代码
低耦合,所以
1在专门的my-paddlen 里面 进行情感分析。
主要目的是:返回正负值,和可能性,为下面做准备。
# -*- coding:utf-8 -*-f
from pprint import pprint
from paddlenlp import Taskflow
schema = '情感倾向[正向,负向]'
ie = Taskflow('information_extraction', schema=schema, model='uie-base')
# Define the schema for sentence-level sentiment classification
ie.set_schema(schema) # Reset schema
def kenengxing(text):
result = ie(text)
a=result[0]['情感倾向[正向,负向]'][0]['text']
b=result[0]['情感倾向[正向,负向]'][0]['probability']
return a,b
#写一个函数,提取字符串里面的小数点前后的数字
def get_num(text):
import re
num = re.findall(r"\d+\.?\d*",text)
return num
#写一个函数,判断是否有正向情感,返回c,d分别为正负向和可能性
def panduan(text):
result = ie(text)
print(result)
a = result
print(a)
next = str(list(a.values()))
print(next)
b = get_num(next)
print(b)
d=b[0]
c=0
if '正向' in next:
print('正向')
c=1
else:
print('负向')
c=-1
return c,d
2然后 读取Excel调用即可
代码运行没问题
# -*- coding:utf-8 -*-
import pandas as pd
import read_excel
from my_paddlen import wanwan
df=read_excel.df1
#获取df第一列并转为string
d1=df.iloc[:,1].astype(str)
#定义一个空series
#s1 s2分别存储情感正负值 和可能性
s1=[]
s2=[]
# 遍历第一列
k=2
for i in d1:
print(i)
a,b=wanwan.kenengxing(i)
print(k)
k += 1
print(a)
print(b)
s1.append(a)
s2.append(b)
#将s1 s2转为series
s1=pd.Series(s1)
s2=pd.Series(s2)
#将s1 s2添加到df中
df['情感']=s1
df['可能性']=s2
#将df写入excel
df.to_excel('liu-qinggan.xlsx')