字典进行排序

字典进行排序

在进行词云的处理时,想进行字典根据字典的值进行排序,其他文章中排序后变成了一个元组列表,没有提到如何将结果能够输出成name:value形式

代码

import random
from nltk.corpus import movie_reviews#需要进行词云的数据
from nltk.corpus import stopwords
from nltk import FreqDist
import string
import numpy as np
labeled_words = [
    (list(movie_reviews.words(fid)),cat)
    for cat in movie_reviews.categories()
    for fid in movie_reviews.fileids(cat)
                 ]
random.seed(42)
random.shuffle(labeled_words)
review_words = movie_reviews.words()
len(review_words)
sw = set(stopwords.words('english'))
punctuation = set(string.punctuation)
def isStopword(word):
    return word in sw or word in punctuation
filtered =[
    w.lower() for w in review_words if not isStopword(w.lower())
]
len(filtered)
words = FreqDist(filtered)
words.keys()
words.values()
#######以上是词频分析内容######
N = int(.01*len(words.keys()))
word_features = list(words.keys())[:5]###这样做出来的不是按照顺序的
words2 = sorted(words.items(),key=lambda item:item[1],reverse=True)
####进行按照value排序
words2_xuan = words2[:N]
values2 = np.array(values).reshape(395,1)#变成一个array形式,再把它变成395*1的形式
names2 = np.array(names).reshape(395,1)
he = np.hstack((names2,values2))#将两个array合并
for name,value in he:
    print(name + " :" + str(value))
    #成功输出合适的格式

猜你喜欢

转载自blog.csdn.net/weixin_43451186/article/details/84999498