第 0006 题:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词

第 0006 题:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词


1、counter函数,字典的子类,用于统计哈希对象

2、re.findall() 找出满足正则表达式

3、os.path.isdir() 判断是否为目录;os.path.isfile()判断是否为文件

4、os.chpwd()切换目录

5、os.getcwd()获取当前目录

def get_word_num(one_file):
	"""
	"""
	if os.path.isfile(one_file) == False:
		print "input not file"
		sys.exit()

	count = Counter()
	pattern = r'''[A-Za-z]+|\$?\d+%?$'''
	lines = open(one_file, "r")
	for line in lines:
		#line.strip("\n")
		r = re.findall(pattern, line)
		count += Counter(r)
	lines.close()
	return count

def frequent_words(inputpath):
	"""
	统计一个目录下的txt文件,每个文件中最重要的词
	"""
	if os.path.isdir(inputpath) == False:
		print "input not path"
		sys.exit()
	os.chdir(inputpath)
	os.system("pwd")
	fileList = []
	files = os.listdir(inputpath)
	#print files
	total_counter = Counter()
	count = 0
	for one_file in os.listdir(os.getcwd()):
		#cur_file = os.path.join(os.path.dirname(inputpath), onefile)
		#print ("cur_file: %s" %cur_file)
		total_counter += get_word_num(one_file)
	print (total_counter.most_common(5))
	return total_counter.most_common()[0][0]


你可能感兴趣的:(python,统计高频词,python)