Python统计文件夹中所有单词出现的频率(去除长度小于2的单词)

# 函数输入:文件路径(见调用示例) # 函数输出:该路径下所有文件中单词出现的频率(以字典数据类型进行返回,去除掉长度不大于2的单词) # 注意:1、在统计单词出现的频率时,所有的单词均应先变成小写。 
# 2、在统计单词时,从非字母字符(包括空格)的下一个字符作为单词的字母,直到 # 非字母字符(包括空格)截止。 
# 3、数据为整个email文件夹 
# 例如: Increase volume ofEjacu1ate 分离出来的单词为increase ,volume , ofejacu ,ate def fact(path): 
# 在下方填充代码,注释掉pass pass # 主函数 if __name__ == “__main__“: 
# 示例: print(fact('./email/'))
import re
import os
def fact(path):
    dic = {}
    fnames = os.listdir(path)
    for fn in fnames:
        filepath = os.path.join(path, fn)
        txtnames=os.listdir(filepath)
        for item in txtnames:
            if re.search(r'\.txt$', item):
                txtpath = os.path.join(filepath, item)
                with open(txtpath, 'r', encoding='ISO-8859-15') as f:
                    s = f.read()
                    words = re.findall(r'[A-Za-z]{3,}', s)
                    for key in words:
                        key = key.lower()
                        dic[key] = dic.get(key, 0) + 1

    return dic


# pass

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值