我正在尝试查找文件夹中多个文件中单词的频率,如果在文件中找到它,我需要将单词的计数增加 1。例如:如果在文件 1 中读取“一切都很好”,则必须将“好”的计数增加 1 而不是 2,如果在文件 2 中读取“她不好”,则“好”的计数将成为 2
我需要在不包括重复项的情况下增加计数器,但我的程序没有考虑到这一点,所以请帮忙!
import os
import re
import sys
sys.stdout=open('f1.txt','w')
from collections import Counter
from glob import glob
def removegarbage(text):
text=re.sub(r'\W+',' ',text)
text=text.lower()
sorted(text)
return text
def removeduplicates(l):
return list(set(l))
folderpath='d:/articles-words'
counter=Counter()
filepaths = glob(os.path.join(folderpath,'*.txt'))
num_files = len(filepaths)
# Add all words to counter
for filepath in filepaths:
with open(filepath,'r') as filehandle:
lines = filehandle.read()
words = removegarbage(lines).split()
cwords=removeduplicates(words)
counter.update(cwords)
# Display most common
for word, count in counter.most_common():
# Break out if the frequency is less than 0.1 * the number of files
if count < 0.1*num_files:
break
print('{} {}'.format(word,count))
我已经尝试过排序和删除重复技术,但它仍然不起作用!