当我尝试进行情感分析(pos或neg文本)时,如何用lambda和分类方法解决此错误



输入代码:

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

结果:

Traceback (most recent call last):
File "C:UsersSarahDesktoppythontest.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'

我该如何解决?

如果我正确理解了您的 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]。

最新更新