如何按列表的平均顺序对列表进行排名?

时间:2019-05-25 01:49:34

标签: python

我正在进行自动文本摘要,并已使用3种不同的方法从每篇文章的20个句子中选择5个最高排名的句子。我想通过相对于按这3种方法排名的那个句子的平均位置评分每个句子的位置来找出这3种之中最好的方法。

一个包含3个句子,3个元素的示例 A,B和C代表每个句子

method_1 = [A, B, C]
method_2 = [B, A, C]
method_3 = [C, A, B]

每个句子的平均位置

A = (1 + 2 + 2) / 3
1.67

B = (2 + 1 + 3) / 3
2

C = (3 + 3 + 1) / 3
2.33


Score of each method

Method1_Score = |1.67 - 1| + |2 - 2| + |2.33 - 3|
1.34

Method2_Score = |1.67 - 2| + |2 - 1| + |2.33 - 3|
2

Method3_Score = |1.67 - 3| + |2 - 1| + |2.33 - 2|
2.66

根据以上评分,由于差异最小,方法1最接近句子位置的平均值。

我正在尝试通过pandas dataframe的一列中的3种方法获得这些结果。

Col_1 = [A,B,C]
Col_2 = [B,A,C]
Col_3 = [C,A,B]

这样一来,新列将指示方法从最低值到最高值的排名。

New_column = [method_1, method_2, method_3]

感谢阅读以及任何可以提出建议的人!

0 个答案:

没有答案