【发布时间】:2011-07-21 07:18:38
【问题描述】:
创建了一个 python 模块,它读取一个文件,删除停用词并输出一个 python 字典,其中包含单词及其频率(它在文档中出现的次数)。
def run():
filelist = os.listdir(path)
regex = re.compile(r'.*<div class="body">(.*?)</div>.*', re.DOTALL | re.IGNORECASE)
reg1 = re.compile(r'<\/?[ap][^>]*>', re.DOTALL | re.IGNORECASE)
quotereg = re.compile(r'"', re.DOTALL | re.IGNORECASE)
puncreg = re.compile(r'[^\w]', re.DOTALL | re.IGNORECASE)
f = open(stopwordfile, 'r')
stopwords = f.read().lower().split()
totalfreq = {}
filewords = {}
htmlfiles = []
for file in filelist:
if file[-5:] == '.html':
htmlfiles.append(file)
for file in htmlfiles:
f = open(path + file, 'r')
words = f.read().lower()
words = regex.findall(words)[0]
words = quotereg.sub(' ', words)
words = reg1.sub(' ', words)
words = puncreg.sub(' ', words)
words = words.strip().split()
for w in stopwords:
while w in words:
words.remove(w)
freq = {}
for w in words:
if w in freq:
totalfreq[w] = totalfreq[w] + 1
freq[w] = freq[w] + 1
else:
totalfreq[w] = 1
freq[w] = 1
filewords[file] = freq
print totalfreq
这将打印该文件中的所有“不间断”单词以及它们在文件中出现的频率:输出如下所示:
{{'saturday': 1, 'irish': 1, 'family': 1, 'give': 1, 'year': 2, 'weekend': 1, 'steve': 1, 'guests' : 1,“问题”:1,“在”:2,“努力”:1,“伙伴”:1,“灭绝”:1,“衣服”:1,“孩子”:4,“utans”:1 , '27': 1, 'raise': 1, 'closet': 1, 'haired': 2, 'make': 1, 'humphreys': 1, '亲戚': 1, '动物园': 5, '濒危”:1,“星期日”:1,“特殊”:1,“答案”:1,“公众”:1,“意识”:1,“计划”:1,“活动”:1,“犀牛” : 1, 'orangutans': 4, 'plans': 1, 'leonie': 1, 'orang': 1, 'yesterday': 2, 'free': 2, 'hand': 1, 'wild': 1 , '独立': 1, 'part': 1, 'preparing': 1, 'revealed': 1, 'day': 1, 'man': 1, 'picture': 1, 'keane': 1, '动物':1,'14':1,'kevin':1,'16':1,'32':1,'年龄':1,'sibu':1,'dublin':2,'keepers' : 1, 'face': 1, 'mujur': 1, 'red': 2, 'orangutan': 1, 'species': 1, 'entry': 1, 'efforts': 1, 'shows': 1 ,“上午 11 点”:1,“涌入”:1,“下午 3 点”:1}
{'newest': 1, 'birth': 2, 'orang': 1, 'month': 1, 'steve': 1, 'questions': 1, 'utans': 1, 'children': 4、“员工”:1、“聚光灯”:1、“27”:1、“基于”:1、“关注”:1、“周日”:1、“下午3点”:1、“终于”:1、 '4': 1, 'maeve': 1, 'awareness': 1, 'gave': 1, 'activities': 1, 'giraffe': 1, 'facebook': 1, 'preparing': 1, 'background ': 1, '培育': 1, 'day': 1, 'debut': 1, 'rothschild': 1, 'keepers': 1, 'email': 1, 'steps': 1, '11am': 1,'page':1,'picture':1,'born':1,'result':1,'year':2,'saturday':1,'special':1,'closet':1, 'haired': 2, 'section': 1, 'bennet': 2, 'mum': 3, 'mujur': 1, 'conditions': 1, 'public': 1, 'red': 2, 'shows ': 1, 'orangutans': 4, 'free': 2, 'keeper': 1, 'november': 1, 'care': 1, 'sending': 1, 'great': 1, 'origins': 1,“32”:1,“受邀”:1,“都柏林”:2,“计划”:1,“猩猩”:1,“努力”:1,“涌入”:1,“命名”:1, “家庭”:1,“高兴”:1,“天气”:1,“客人”:1,“灭绝”:1,“帖子”:1,“印象”:1,“提高”:1,“透露” ': 1, '雷玛ined':1,'humphreys':1,'自信':1,'小牛':3,'入口':1,'shane':1,'part':1,'helen':1,'细心' :1,“努力”:1,“案例”:1,“制造”:2,“动物”:1,“14”:1,“16”:1,“毫秒”:1,“野生”:1 , 'savanna': 1, 'irish': 1, 'give': 1, 'resident': 1, 'suggestions': 1, 'slip': 1, 'in': 2, 'partner': 1, '连衣裙':1,'物种':1,'kevin':1,'rhiona':1,'make':1,'动物园':3,'濒危':1,'亲戚':1,'答案' : 1,“可怜”:1,“独立”:1,“计划”:1,“leonie”:1,“时间”:1,“昨天”:1,“手”:1,“吻痕”:1 , '周末': 1, '男人': 1, 'sibu': 1, '年龄': 1, '稳重': 2, '脸': 1, '坐月子': 1, '非洲人': 2, '条目':1,'基恩':1,'克拉克':2,'左':1}
但我需要将两个文件或大量文件中的两个总数相加,以给出所有文件中单词的总数,例如“zoo”。第一个文件动物园=5 第二个文件动物园=3 总计=8。
我似乎无法计算出我如何计算多个文件的字数,而不是一次只计算一个。
有什么想法吗?!
【问题讨论】:
标签: python regex dictionary count frequency