我正在努力创造一袋文字。我提到了这个链接https://pythonprogramminglanguage.com/bag-of-words/#respond
df = pd.read_csv('Twidb11.csv',error_bad_lines=False, sep='delimiter', engine='python')
# Creating Bag of Words
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(df.Text)
print count_vect.fit_transform(df.Text).todense()
#X_train_counts.shape
print count_vect.vocabulary_
它给了我单词和它们的频率,但是这些单词没有按字母顺序排序,你的符号就在那里,如下所示。如何摆脱这个?
输出:{u'binance':28,u'they':139,u'just':83,u'global':67,u'alternatives':11,u'zcash':168,u'年':165,u'talks':133,u'japan':82,u'yes':166,u'25':1,u'chinese':37,u'6000':5,u'zzzpositive ':170,u'winner':162,u'28':2,u'actually':12 ....}
答案 0 :(得分:0)
str()
是unicode的表示。如果您不想使用>>> my_dict = {str(i):j for i,j in my_dict.items()}
>>> print my_dict
>>> {'binance': 28, 'global': 67, 'chinese': 37, 'just': 83, '25': 1, 'zzzpositive': 170, 'alternatives': 11, '6000': 5, 'winner': 162, '28': 2, 'zcash': 168, 'actually': 12, 'they': 139, 'talks': 133, 'japan': 82, 'yes': 166, 'years': 165}
1)将unicode字符串转换为字符串,
>>> from operator import itemgetter
>>> dict(sorted(my_dict.items(), key=itemgetter(1))) # converted string unicode into str
>>> {'25': 1, 'winner': 162, 'chinese': 37, '6000': 5, 'binance': 28, 'zzzpositive': 170, 'alternatives': 11, 'just': 83, 'global': 67, '28': 2, 'zcash': 168, 'actually': 12, 'they': 139, 'talks': 133, 'japan': 82, 'yes': 166, 'years': 165}
>>>
2)排序my_dict ,
itemgetter将帮助您更轻松地完成
>>> dict(sorted({str(i):j for i,j in my_dict.items()}.items(), key=itemgetter(1)))
在一行中,
{{1}}