Python 如何对输出的词频结果按字母顺序排序(NLTK)

编程新手……有这样一个Python程序(使用了nltk):importnltkfile_b=open('a.txt','r')tokens=nltk.word_token... 编程新手……有这样一个Python程序(使用了nltk):
import nltk
file_b = open('a.txt', 'r')
tokens = nltk.word_tokenize(file_b)
fdist1 = nltk.FreqDist(tokens)
for key,val in sorted(fdist1.iteritems())[:5]:
print "{1}: {0}".format(key, round(val / len(tokens), 2))

输出的结果是:
0.02: a
0.02: after
0.04: and
0.02: arms
0.02: away

我想将结果修改为:首先以频率由大到小排序,再按照字母顺序排序,请问我该如何修改我的语句?

不胜感谢!!
展开
 我来答
yugao1986
2015-07-22 · TA获得超过1129个赞
知道小有建树答主
回答量:449
采纳率:100%
帮助的人:167万
展开全部
import nltk
file_b = open('a.txt', 'r')
tokens = nltk.word_tokenize(file_b)
fdist1 = nltk.FreqDist(tokens)
for key,val in sorted(fdist1.iteritems())[:5]:
    print ("{1}: {0}".format(key, round(val / len(tokens), 2)))
tim_spac
2014-10-23 · TA获得超过3629个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2072万
展开全部
for key,val in sorted(fdist1.iteritems())[:5]:
==>
for key,val in sorted(fdist1.items(), key=lambda x: (-1*x[1], x[0]))[:5]:
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式