[python] collection 模块 统计 英文词汇数量分布
# -*- coding:utf-8 -*-
#!python3
# 实现了单个文件的 英文词汇量统计
import collections
import re
path = '0701pdf/0701ansi.txt'
'''
def sort_by_key(adict):
keys=adict.keys()
keys=sorted(keys)
return map(adict.get,keys)
'''
with open(path, 'r', encoding='gbk') as f:
word_list = []
word_reg = re.compile(r'\w+')
for line in f:
#line_words = line.split()
line_words = re.split(r'[ /=,;:.\"\'?\u3000]',line) # 这种方式是可行的, 问题在于多出很多 特殊的空格
# 后续的处理思路上, 需要解决 几个问题
#.split('/').split('=').split(',')
#print(*line_words)
word_list.extend(line_words)
words_dict = dict(collections.Counter(word_list)) #使用Counter统计
dict_by_value= sorted(words_dict.items(), key=lambda d:d[1], reverse = True)
dict_by_key= sorted(words_dict.items(), key=lambda d:d[0], reverse = True)
#print(*list(dict_by_key))
print ('----------------------------')
print(dict_by_key)
#
2021年 7月1日的想法
目前只是 导出了一个 最最 基本的 n多个dict 组成的 list , 通过shell 进行最简单的格式
sed -i 's/),(/\n/g' output.txt
后续还有几个去需求
a, 要重新了解一下 set,list, dict,以及mysql, txt 等不同的数据结构的转换操作
b, 限定 [A-Za-z] 开头的词汇进行统计
c, 区分人名
d,建立 不同人员的词汇库
建立 不同文章的词汇库
通过 对 人员 和 文章的词汇情况,进行 left outer join , 得出 需要针对学习的词汇 统计
e, ** 寻求一个相对平滑的 一个人员的学习路线。
达到

浙公网安备 33010602011771号