首页 > 其他 > 详细

获取全部 txt 文本中出现次数最多的前N个词汇

时间:2020-04-11 17:02:34      阅读:97      评论:0      收藏:0      [点我收藏+]
1.使用 chain 对 allwords 二维列表进行解包
    from itertools import chain
    allwords = []
    allwords.append(列表)
    解包: chain(*allwords)
        将 allwords 里面的子列表解出来
2.使用 next 对 chain 对象进行输出
    c = chain([1,2,3],"hello",(1,2,3),map(str,range(3)))
    next(c) 输出 c 的下一个元素 1 
    next(c) 输出 c 的下一个元素 2 
3.获取有效词汇的数目
    freq = Counter(chain(*allwords))
4.Counter 返回的是可迭代对象出现的次数
    使用 most_common 方法返回出现次数最多的前三个 
        .most_common(3)
    Counter ("dadasfafasfa")
        Counter({a: 5, f: 3, d: 2, s: 2})
    Counter ("dadasfafasfa").most_common(2)
        [(a, 5), (f, 3)]

程序:
allwords = [ ]
def getTopWords(topN):
    # 按文体编号顺序处理当前文件夹中所有的记事本文件
    # 5.txt 9.txt 121.txt
    # 训练集中共有141封邮件,0.txt~99.txt 为垃圾邮件
    # 100~140 为有效邮件
    txtFiles = [str(i) + .txt for i in range(141)]
    # 获取训练集中所有邮件中的全部文件
    for txtFile in txtFiles:
        allwords.append(getWordsFromFile(txtFile))
        # 获取并返回出现次数最多的前 topN 个单词
    freq = Counter(chain(*allwords))
    return [w[0] for w in freq.most_common(topN)]
    # 返回有效字符出现次数最多的前 topN 个字符
    # w[0] 表示获取字符,w[1] 为出现的次数

2020-04-11

获取全部 txt 文本中出现次数最多的前N个词汇

原文:https://www.cnblogs.com/hany-postq473111315/p/12680560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!