笔记6:词频统计

import string

path = r'F:\5-学习\python学习\20160923\Walden.txt'

with open(path,'r',encoding= 'utf-8') as text:

words = [word.strip(string.punctuation).lower() for word in text.read().split()]  #列表解析式 从字符串中去掉特殊字符

print(string.punctuation)  #ASCII中所有的特殊字符

#    print(words,'\n')

words_index = set(words)  #去掉重复的单词

counts_dict = {index:words.count(index) for index in words_index}  #字典解析式 统计重复的单词 使用count()方法

#  print(counts_dict,'\n')

for word in sorted(counts_dict, key=lambda x:counts_dict[x],reverse=True):  #对统计次数逆向进行排序

print('{}-{} times'.format(word,counts_dict[word]))


总结:

整体思路:

1、对文档中的单词分割保存在列表中

2、对列表中的单词中的特殊字符去除

3、使用set集合,去除重复的单词

4、从处理后的单词集合中取出单词,然后使用count方法统计单词个数

5、最终对统计后的单词次数排序

小知识:

string.punctuation  # ASCII中所有的特殊字符

strip(string.punctuation)  #在字符串头尾中含有特殊字符的去掉

words.count(index)    #words中包含有index字符的次数

key=lambda x:counts_dict[x]  #函数表达式,怎么用还不清楚

你可能感兴趣的:(笔记6:词频统计)