当我尝试进行情绪分析(POS或NEG文本)时,如何用lambda和sorted方法解决这个错误?

时间:2018-02-23 11:07:58

标签: python-3.x nltk sentiment-analysis feature-extraction text-classification

输入代码:

best = sorted(word_scores.items(), key=lambda w, s: s, reverse=True)[:10000]

结果:

Traceback (most recent call last):
File "C:\Users\Sarah\Desktop\python\test.py", line 78, in <module>
best = sorted(word_scores.items(), key=lambda w, s: s, reverse=True)[:10000]
TypeError: <lambda>() missing 1 required positional argument: 's'

我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了你的word_scores词典的格式(键是单词,值是表示分数的整数),你只是想得到一个有序的单词列表得分,就这么简单:

best = sorted(word_scores, key=word_scores.get, reverse=True)[:10000]

如果你想使用lambda来获得一个有序的元组列表,其中每个元组是一个单词和一个分数,并且它们按分数排序,你可以执行以下操作:

best = sorted(word_scores.items(), key=lambda x: x[1], reverse=True)[:10000]

这与你原来的尝试之间的区别在于我已经将一个参数(x)传递给了lambda,而x是一个长度为2的元组 - x [0]是单词而x [1]是得分。由于我们想要按分数排序,我们使用x [1]。