美文网首页读书Python爬虫与数据挖掘
有哪个大神知道这个词频要计算出具体的数,怎么添加代码吗?

有哪个大神知道这个词频要计算出具体的数,怎么添加代码吗?

作者: 皮皮_f075 | 来源:发表于2023-03-21 22:56 被阅读0次

    大家好,我是皮皮。

    一、前言

    前几天在Python最强白银交流群【王王雪饼】问了一个Python处理词频的问题,这里拿出来给大家分享下。

    image.png

    下图是他的代码:

    image.png
    # 统计词频
    from collections import Counter
    
    wordcount = Counter(all_words)
    word_count = wordcount.most_common(30)
    
    frequence_list = []
    for i in range(len(word_count)):
        frequence_list.append(word_count[i][0])
    frequence_list
    
    

    二、实现过程

    这里【Python进阶者】给了一个答案,如下所示:

    image.png

    代码如下:

    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    import sys
    import jieba
    import jieba.analyse
    import xlwt  # 写入Excel表的库
    
    # reload(sys)
    # sys.setdefaultencoding('utf-8')
    
    if __name__ == "__main__":
        wbk = xlwt.Workbook(encoding='ascii')
        sheet = wbk.add_sheet("wordCount")  # Excel单元格名字
        word_lst = []
        key_list = []
        for line in open('./《都挺好》阿耐_分词后_outputs.txt', 'r', encoding='utf-8'):  # 需要分词统计的原始目标文档
    
            item = line.strip('\n\r').split('\t')  # 制表格切分
            # print item
            tags = jieba.analyse.extract_tags(item[0])  # jieba分词
            for t in tags:
                word_lst.append(t)
    
        word_dict = {}
        with open("分词结果.txt", 'w') as wf2:  # 指定生成文件的名称
            for item in word_lst:
                if item not in word_dict:  # 统计数量
                    word_dict[item] = 1
                else:
                    word_dict[item] += 1
    
            orderList = list(word_dict.values())
            orderList.sort(reverse=True)
            # print orderList
            for i in range(len(orderList)):
                for key in word_dict:
                    if word_dict[key] == orderList[i]:
                        wf2.write(key + ' ' + str(word_dict[key]) + '\n')  # 写入txt文档
                        key_list.append(key)
                        word_dict[key] = 0
    
        for i in range(len(key_list)):
            sheet.write(i, 1, label=orderList[i])
            sheet.write(i, 0, label=key_list[i])
        wbk.save('wordCount_all_lyrics.xls')  # 保存为 wordCount.xls文件
    
    

    顺利地解决了粉丝的问题。

    image.png

    后来【Yif18】也给了一个方法,他是把分词结果存成df然后groupby,如下所示:

    image.png

    后来【甯同学】也给了一个代码,如下图所示:

    image.png

    看上去不太美观,给它排个序再看看:

    image.png

    三、总结

    大家好,我是皮皮。这篇文章主要盘点了一个Python处理词频的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    最后感谢粉丝【王王雪饼】提问,感谢【Python进阶者】、【论草莓如何成为冻干莓】、【瑜亮老师】、【甯同学】、【Yif18】给出的思路和代码解析,感谢【eric】等人参与学习交流。

    相关文章

      网友评论

        本文标题:有哪个大神知道这个词频要计算出具体的数,怎么添加代码吗?

        本文链接:https://www.haomeiwen.com/subject/zjqvrdtx.html