如何按字母顺序获取单词并删除符号u'?

问题描述 投票:1回答:1

我正在努力创造一袋文字。我提到了这个链接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'years': 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 ....}

python-2.7 machine-learning sentiment-analysis
1个回答
0
投票

u是unicode的代表。如果你不想使用str()将其转换为字符串

1)将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}

2)排序my_dict,

itemgetter将帮助您更轻松地完成任务

>>> 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}
>>> 

在一行中,

>>> dict(sorted({str(i):j for i,j in my_dict.items()}.items(), key=itemgetter(1)))
© www.soinside.com 2019 - 2024. All rights reserved.