Python实现快速计算词频功能示例

 更新时间:2018年06月25日 08:51:01   作者:chenKFKevin  
这篇文章主要介绍了Python实现快速计算词频功能,结合实例形式总结分析了Python使用nltk库进行词频计算功能的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现快速计算词频功能。分享给大家供大家参考,具体如下:

这几天看到一位同事的代码,方法如下:

def cut_word(body):
  temp_dict={}
  if body is not None:
    temp=jieba.cut(body)
    for t in temp:
      temp_dict[t]=1
  else:
    pass
  return temp_dict

这个函数的功能是,输入一段字符串,比如:'今天天气很不错',输出一个字典,key为使用结巴的cut方法之后切分的词,value为1,如:{'很':1,'今天天气':1,'不错': 1}。

然后我看到同事的另一个方法:

def union_dict(x,y):
  _keys = set(sum([obj.keys() for obj in [x,y]],[]))
  _total = {}
  for _key in _keys:
    _total[_key] = sum([obj.get(_key,0) for obj in [x,y]])
  return _total

是这样调用的:

final_dict=reduce(union_dict,result)

result是这样产生的:

result=df['body'].apply(cut_word)

也就是把df的body列每一行进行cut_word函数操作(即将字符串转换成一个字典)。

result的类型是series,随后对result用reduce函数进行union_dict操作。

union_dict的作用是,输入两个字典,比如{'很':1,'今天天气':1,'不错': 1}和{'很':1,'今天天气':1,'差': 1},对key相同的进行value求和,也就是输出会变成{'很':2,'今天天气':2,'不错': 1,'差':1}

所以这一系列的操作其实是为了计算一大堆文字的词频数,但同事使用的是对每一行分别进行拆分,生成字典,随后

对字典进行合并,其实有些麻烦。

再学习自然语言处理的时候,我了解到nltk有一个方法,可以直接计算词频,用在此处正好。

# -*- coding:utf-8 -*-
import nltk
import jieba
str = '今天天气很不错。今天天气很差'
a = list(jieba.cut(str))
cfd = nltk.FreqDist(a)

结果直接是一个带有频数的字典:{'很':2,'今天天气':2,'不错': 1,'很差':1,'。'}

由于同事的函数cut_word对每个词只计一次频数,所以不能直接拼接字符串后调用FreqDist函数,需要对每个cut出来的列表去重,随后再拼接为大字符串调用FreqDist,这也比之前写这两个函数简单许多。

对于普通的计算频数的需求来说,这个函数能直接解决,十分方便。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python入门之三角函数atan2()函数详解

    Python入门之三角函数atan2()函数详解

    这篇文章主要介绍了Python入门之三角函数atan2()函数详解,分享了其实例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Python configparser模块应用过程解析

    Python configparser模块应用过程解析

    这篇文章主要介绍了Python configparser模块应用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 使用Python和jieba库生成中文词云的示例代码

    使用Python和jieba库生成中文词云的示例代码

    在文本分析和数据可视化的领域中,词云是一种展示文本数据中关键词频率的直观方式,Python作为一种强大的编程语言,提供了多种库来帮助我们生成词云,在本文中,我们将通过一个简单的示例,展示如何使用Python生成中文词云,需要的朋友可以参考下
    2024-07-07
  • Python计算一个文件里字数的方法

    Python计算一个文件里字数的方法

    这篇文章主要介绍了Python计算一个文件里字数的方法,涉及Python文件操作及内容遍历的相关技巧,需要的朋友可以参考下
    2015-06-06
  • CentOS 6.5下安装Python 3.5.2(与Python2并存)

    CentOS 6.5下安装Python 3.5.2(与Python2并存)

    这篇文章主要给大家介绍了在CentOS 6.5下安装Python 3.5.2的方法教程,安装后的python3与Python2并存,文中分享了详细的方法步骤,对大家具有一定的参考学习价值,下面来一起看看吧。
    2017-06-06
  • python爬取招聘要求等信息实例

    python爬取招聘要求等信息实例

    在本篇文章里小编给大家整理了关于python爬取招聘要求等信息实例内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • Python基础之函数与控制语句

    Python基础之函数与控制语句

    在调用函数的时候,如果没有按照形参传入指定的参数,就会报错,这时,我们可以为函数的参数设置默认的值,下面这篇文章主要给大家介绍了关于Python基础之函数与控制语句的相关资料,需要的朋友可以参考下
    2022-04-04
  • PyCharm安装第三方库如Requests的图文教程

    PyCharm安装第三方库如Requests的图文教程

    今天小编就为大家分享一篇PyCharm安装第三方库如Requests的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python pandas分组聚合详细

    python pandas分组聚合详细

    分组聚合是数据处理中常见的场景,在pandas中用groupby方法实现分组操作,用agg方法实现聚合操作,在这篇文章里有主要介绍,感兴趣的朋友请参考下文
    2021-09-09
  • 基于pip install django失败时的解决方法

    基于pip install django失败时的解决方法

    今天小编就为大家分享一篇基于pip install django失败时的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论