fdist.keys( )遇到的問題

在學習PYTHON自然語言處理這本書第一章的時候,遇到了一個問題,就是書中的代碼(下圖)運行出來結果不符,可以用這種方式來獲得相同的效果:

>>> fdist1 = FreqDist(text1)
>>> vocabulary1 = sorted(fdist.items(), key=lambda jj:jj[1], reverse=True)
>>> s = []
>>> for i in range(50):
...    s.append(vocabulary1[i][0])
...
>>> print(s)

其中,第二行代碼:
sorted()是一種排序方式,fdist.items( )是待排序的對象
(key對應的函數會被前面列表中的每個元素調用,定義排序規則)
key=lambda 變量:變量[維數] 。維數可以按照自己的需要進行設置。
key=lambda jj: jj[1]:匿名函數,作用是按照每個item的item[1],進行後面的排序
reverse=True:逆序排列,即從大到小(默認爲從小到大)

這樣輸出的就是頻率從高到低的前50個詞了!

後面的例子也採用這個方式就可以得出與書上相同的結論了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章