我有一个数据框架,其中包含文本的正面、负面和中性情绪分析百分比,我正在尝试将这些数据缩放到一个介于-1(最负面)和1(最正面)之间的数字。确定这个分数的最佳公式是什么?
数据帧示例:
数据列(共11列):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 kind 200 non-null object
1 etag 200 non-null object
2 id 200 non-null object
3 positive 200 non-null float64
4 negative 200 non-null float64
5 neutral 200 non-null float64需要使用适当的公式添加名为score的新字段。示例评分:视频点评下载次数: 49
积极情绪: 39.37210499227998
负面情绪: 18.57951621204323
中性情绪: 42.04837879567679
发布于 2020-04-19 06:40:48
这可以看作是最小-最大缩放。要获得-1,1中的值,可以这样做:
val = (2 *(val - min)/(max-min)) - 1不用说,val是被标准化的当前值,min是所有值中最小的,max是所有值中最大的。
发布于 2020-04-19 06:34:40
我只会将积极情绪设置为1,负面情绪设置为-1,中性情绪设置为0。然后根据它们的百分比对它们进行缩放,以获得综合分数。
因此,对于上面提到的示例,分数将为
score = positive% * positive_score + neutral % * neutral_score + negative % * negative_score
score = .3937 * 1 + .4205 * 0 + .1858 * -1
score = .2079直观地说,这是有道理的,因为如果我们都是正分,那么我们的最高分就是1。如果我们都是负分,那么我们的最低分就是-1,中性分就是0。
您可以使用iterrows函数迭代所有行,然后编写一个函数将这些分数合并到一个新列中或更新现有列。
https://stackoverflow.com/questions/61296676
复制相似问题