当前位置:
首页
文章
后端
详情

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

大家好,我是皮皮。

一、前言

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

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

下图是他的代码:

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

# 统计词频
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进阶者】给了一个答案,如下所示:

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

代码如下:

#!/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文件

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

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

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

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

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

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

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

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

三、总结

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

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

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型