[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, ** 寻求一个相对平滑的 一个人员的学习路线。

 

   达到 

 

posted @ 2021-07-01 16:49  allen514519  阅读(136)  评论(0)    收藏  举报