我的编程空间,编程开发者的网络收藏夹
学习永远不晚

一文带你掌握Python中文词频统计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

一文带你掌握Python中文词频统计

词频统计是指在文本中计算每个词出现的次数。

在 Python 中,可以使用一些第三方库(如 jieba)来分词,然后使用字典等数据结构记录每个词的词频。

Python中文词频统计知识点

  • 分词:需要对中文文本进行分词,分词的目的是将文本分解为独立的词语,便于后续的词频统计。
  • 字典:使用字典存储每个词的词频。字典的键为词语,值为词频。
  • 遍历:遍历分词后的结果,统计每个词出现的次数。
  • 排序:对字典按照词频排序,以得到词频最高的词。
  • 输出:最后,可以输出词频最高的词,也可以输出完整的词频字典。

Python中文词频分词

安装 jieba 库

pip install jieba

使用 jieba.cut() 函数对中文文本进行分词

import jieba

text = "梦想橡皮擦的Python博客很不错"
seg_list = jieba.cut(text)
print(list(seg_list))

输出结果:

['梦想', '橡皮擦', '的', 'Python', '博客', '很', '不错']

使用字典可以很方便地存储每个词语的词频

import jieba

text = "梦想橡皮擦的Python博客很不错"
seg_list = jieba.cut(text)
# print(list(seg_list))

word_dict = {}
for word in seg_list:
    print(word)
    if word in word_dict:
        word_dict[word] += 1
    else:
        word_dict[word] = 1

print(word_dict)

再次整理Python词频统计的具体实现方法:

  • 导入 jieba 库,使用 jieba.cut() 函数对中文文本进行分词。
  • 遍历分词后的结果,统计每个词出现的次数。
  • 使用字典记录每个词出现的次数。
  • 对字典按照词频排序,并输出词频最高的词。

代码示例:

import jieba

def get_word_frequency(text):
    seg_list = jieba.cut(text)
    word_dict = {}
    for word in seg_list:
        if word in word_dict:
            word_dict[word] += 1
        else:
            word_dict[word] = 1
    sorted_word_dict = sorted(word_dict.items(), key=lambda x: x[1], reverse=True)
    return sorted_word_dict

text = "梦想橡皮擦的Python博客很不错"
result = get_word_frequency(text)
print(result)

停用词

在分词时,通常会忽略一些词语,这些词语被称为停用词。如常用的助词、介词等。

在 Python 中,可以预先加载停用词表,在分词时,如果词语是停用词,则忽略。

下面是一个简单的例子:

import jieba

stop_words = set()
with open("stop_words.txt", "r",encoding='utf-8') as f:
    for line in f:
        stop_words.add(line.strip())

text = "梦想橡皮擦的Python博客很不错"
seg_list = jieba.cut(text)
filtered_words = [word for word in seg_list if word not in stop_words]
print(filtered_words)

“stop_words.txt” 文件中是停用词表,每行一个词语。在代码中,通过 with open 语句读取文件,并将每个词语加入到 stop_words 集合中。在分词后,通过列表推导式,筛选出不是停用词的词语。文件中的内容如下:

词干提取

词干提取是将词语的不同形式提取为同一词干的过程。例如 “running” 和 “runner” 可以被提取为 “run”。

在 Python 中,可以使用词干提取工具来进行词干提取,常见的词干提取工具有 nltk 库的 PorterStemmer 和 SnowballStemmer 。

下面是一个简单的例子:

import nltk
from nltk.stem import SnowballStemmer

stemmer = SnowballStemmer("english")

words = ["run", "runner", "running"]
stemmed_words = [stemmer.stem(word) for word in words]
print(stemmed_words)

SnowballStemmer 函数的第一个参数是语言。 english 表示使用英语词干提取器。

其支持多种语言,可以指定不同的语言,以使用不同的词干提取器。例如,如果是法语文本,可以使用 SnowballStemmer("french") 。

stemmer.stem(word) 是 nltk 库的 SnowballStemmer 函数的一个方法,用于提取词干。

词云图

词云图是一种展示词频的可视化图形,其中词语的大小代表词频的多少。

在 Python 中,可以使用词云库 wordcloud 来生成词云图。

以下是一个使用 wordcloud 库创建词云图的简单示例:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "ca1 ca2 ca3 ca4 ca4 ca4"
wordcloud = WordCloud(width=400, height=400, random_state=21, max_font_size=110).generate(text)
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.show()

首先使用 WordCloud 函数创建一个词云图对象,并设置图片的宽度、高度、随机状态、字体大小等参数。

然后,使用 generate() 方法生成词云图,并将其作为参数传递给 matplotlib 的 imshow() 函数。

最后,使用 show() 方法显示词云图。

Python 中文词频分词其它库

thulac:thulac 是一个中文分词库,支持动态词性标注。

snownlp:snownlp 是一个基于 SnowNLP 的中文自然语言处理库,支持中文分词、情感分析、关键词提取等功能。

到此这篇关于一文带你掌握Python中文词频统计的文章就介绍到这了,更多相关Python中文词频统计内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

一文带你掌握Python中文词频统计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一文带你掌握Python中文词频统计

词频统计是指在文本中计算每个词出现的次数。这篇文章主要带大家了解一下Python实现中文词频统计的方法,感兴趣的小伙伴可以了解一下
2023-02-08

一文带你掌握Java LinkedBlockingQueue

LinkedBlockingQueue 是一个可选有界阻塞队列,这篇文章主要为大家详细介绍了Java中LinkedBlockingQueue的实现原理与适用场景,感兴趣的可以了解一下
2023-05-14

一文带你掌握JavaImageIO类

Java中的ImageIO类是Java标准库中用于处理图像的一个非常常用的API,它提供了读取和写入多种常见图像格式的功能,如JPEG、PNG、BMP、GIF等,本文将全面详细地介绍Java中的ImageIO类的使用方法,需要的朋友可以参考下
2023-05-20

一文带你掌握Java中的HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合,HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的,本文将带你详细了解Java中的HashSet,,需要的朋友可以参考下
2023-05-19

一文带你轻松掌握Promise

前端js学习中,让大家最难受的就是异步的问题,解决异步、回调地狱等问题时你必须得学会promise,对于多数前端程序员来说promise简直就是噩梦,本篇文章就是从通俗易懂的角度做为切入点,帮助大家轻松掌握promise
2023-05-14

一文带你彻底掌握Log4j2

Log4j2是一个用于Java应用程序的日志记录工具,它提供了强大的日志记录功能,可以帮助开发人员更好地了解和调试应用程序的运行情况。下面是一些帮助你彻底掌握Log4j2的要点:1. 配置文件:Log4j2使用XML或者properties
2023-09-23

一文带你掌握C++中的继承

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,本文详解介绍了C++中的继承,感兴趣的同学可以借鉴一下
2023-05-19

一文带你掌握掌握Golang结构体与方法

在Golang中,结构体和方法是实现面向对象编程的重要组成部分,也是Golang的核心概念之一。在本篇文章中,我们将深入介绍Golang结构体与方法的概念、使用方法以及相关的编程技巧和最佳实践
2023-05-17

一文带你掌握axios工具函数

这篇文章主要为大家介绍了axios工具函数使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-15

一文带你掌握JavaScript中的箭头函数

在JavaScript中,箭头函数是一种简化的函数语法,它在ES6(ECMAScript 2015)引入,本文就来和大家深入讲讲JavaScript中的箭头函数的使用吧
2023-05-19

一文带你掌握Java中Scanner类的使用

Scanner类是java.util包中的一个类,常用于控制台的输入,当需要使用控制台输入时即可调用这个类。本文将通过一些简单的例子为大家介绍一下Java中Scanner类的使用,需要的可以参考一下
2023-05-17

python中文分词和词频统计如何实现

这篇文章主要介绍“python中文分词和词频统计如何实现”,在日常操作中,相信很多人在python中文分词和词频统计如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中文分词和词频统计如何实现
2023-07-02

一文带你掌握JPA实体类注解

这篇文章主要给大家详细介绍一下 JPA 实体类中的注解,文中的示例代码讲解详细,对我们学习Java有一定的帮助,感兴趣的小伙伴可以了解一下
2023-01-04

一文带你掌握Golang基础之通道

在Java中,多线程之间的通信方式有哪些?记得吗?Java多线程间通信的解决方案有很多种,比如:synchronized。在go中,就一种:通道,文中介绍的非常详细,感兴趣的同学可以参考下
2023-05-18

一文带你掌握SpringSecurity框架的使用

SpringSecurity是一款基于Spring框架的认证和授权框架,提供了一系列控制访问和保护应用程序的功能,本文将会对SpringSecurity框架进行全面详细的讲解,需要的可以参考下
2023-05-20

一文带你掌握Golang的反射基础

go的反射是由其标准库中的reflect包实现,该reflect包实现了在运行时进行反射的能力,本篇主要介绍了reflect的常用的几个方法,希望对大家有所帮助
2023-02-17

一文带你掌握Go语言中的文件读取操作

这篇文章主要和大家分享一下Go语言中的文件读取操作,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,需要的小伙伴可以参考一下
2022-12-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录