Python jieba 中文分词与词频统计的操作

yizhihongxing

Python jieba 是一个开源的中文分词工具包,可以帮助我们把文本切分为单个单词或词语,准确地计算文本中各个词语的出现频率,是进行中文自然语言处理的重要基础工具之一。以下是 Python jieba 中文分词与词频统计的操作攻略:

安装与引入

在Python中,安装jieba很简单,只需要在控制台运行 pip install jieba 即可。引入jieba库的方式有以下两种:

import jieba

import jieba.analyse as analyse

总分词函数

在进行分词操作前,我们需要先定义一个总分词函数,用于将文本数据中的标点符号、停用词等杂乱数据清洗掉后进行分词操作。如下所示:

import re
import jieba

def cut_words(string):
    # 正则表达式去除多余符号
    string = re.sub('\s+', ' ', string)
    string = re.sub('\(.*?\)+', '', string)
    string = re.sub('[^a-zA-Z\u4E00-\u9FA5]', '', string)

    words = jieba.cut(string)

    # stopwords为停用词,需要自己准备
    stopwords = [line.strip() for line in open('stopwords.txt')]

    # 剔除停用词,只保留有效单词
    result = []
    for word in words:
        if word not in stopwords:
            result.append(word)

    return result

在这个函数中,我们先通过正则表达式去掉字符串中多余的空格和标点符号,再使用jieba.cut()函数对文本进行分词,最后通过循环去掉停用词,只保留有效单词。

词频统计函数

在进行分词操作后,我们需要统计每个单词在文本中出现的频率。可以编写如下的词频统计函数:

def get_word_frequency(word_list):
    word_count = {}
    for word in word_list:
        if word in word_count:
            word_count[word] += 1
        else:
            word_count[word] = 1

    return sorted(word_count.items(), key = lambda kv:(kv[1], kv[0]), reverse=True)

在这个函数中,我们先创建一个空字典word_count,用于存储每个单词的出现次数。然后遍历word_list中的每个单词,如果该单词已经在word_count中出现过,就将其出现次数+1;否则就将该单词加入word_count中,并给其出现次数赋值为1。

最后,我们通过sorted()函数对word_count中的每个键值对进行排序,其中按照value值从大到小排序,如果value相同则按照key值从小到大排序。

示例一

我们有一段中文文本“这是一个测试文本,用于测试Python jieba库的分词和词频统计功能。”,我们来对其进行分词和词频统计:

text = '这是一个测试文本,用于测试Python jieba库的分词和词频统计功能。'

# 进行分词
word_list = cut_words(text)

# 词频统计
word_frequency = get_word_frequency(word_list)

print("该文本中单词总数为:", len(word_list))
print("词频统计结果为:", word_frequency)

输出结果如下:

该文本中单词总数为: 9
词频统计结果为: [('测试', 2), ('分词', 1), ('功能', 1), ('库', 1), ('Python', 1), ('jieba', 1), ('文本', 1), ('词频', 1), ('用于', 1)]

可以看到,该文本一共有9个有效单词,其中出现最多的单词是“测试”,共出现2次。

示例二

我们有一篇中文新闻报道“2019年大陆观光旅游禁令取消,台湾旅游业界反应冷淡”,我们来对其进行分词和词频统计:

news = """2019年大陆观光旅游禁令取消,台湾旅游业界反应冷淡。据台湾媒体报道,2019年8月1日,大陆政府正式宣布取消对居住证持有者到台湾旅游的限制,允许更多大陆民众前往台湾旅游。然而业内人士预测,该政策的实施对于台湾旅游产业来说,恐怕带来的是不小的冲击。"""

# 进行分词
word_list = cut_words(news)

# 词频统计
word_frequency = get_word_frequency(word_list)

print("该文本中单词总数为:", len(word_list))
print("词频统计结果为:", word_frequency[:10])

输出结果如下:

该文本中单词总数为: 44
词频统计结果为: [('台湾', 3), ('旅游', 2), ('大陆', 2), ('政策', 1), ('宣布', 1), ('取消', 1), ('居住证', 1), ('持有者', 1), ('限制', 1), ('允许', 1)]

可以看到,文本新闻中出现最多的单词是“台湾”,共出现了3次,其次是“旅游”和“大陆”,各出现了2次,这些关键词对于这篇新闻来说是非常重要的。

综上,通过Python jieba中文分词与词频统计的操作,可以帮助我们更好地理解中文文本的特点,并提取出文本中的重要信息,是进行自然语言处理和文本挖掘的不可或缺的工具之一。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python jieba 中文分词与词频统计的操作 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • pyqt和pyside开发图形化界面

    下面是关于PyQt和PySide开发图形化界面的完整攻略: 一、PyQt和PySide简介 PyQt和PySide均是Python语言下的GUI工具包,基于Qt开发,在图形绘制、布局和事件处理等方面提供了丰富的组件和API。PyQt使用Python语言和Qt库进行绑定,而PySide则由Qt官方社区推出,使用了与PyQt类似的绑定方式。 PyQt和PySid…

    python 2023年6月3日
    00
  • python xlsxwriter创建excel图表的方法

    下面我将对”pythonxlsxwriter创建excel图表的方法”进行详细讲解,并提供两个实例。 1. Excel图表简介 Excel中的图表是数据可视化的一种形式,可以帮助用户更好地理解数据和趋势。xlsxwriter是Python的一种模块,用于创建和操作Excel XLSX文件。 2. xlsxwriter创建图表的方法 使用xlsxwriter创…

    python 2023年5月13日
    00
  • python 匿名函数相关总结

    Python匿名函数相关总结 1. 什么是匿名函数 在Python中,匿名函数就是没有名字的函数,也称为lambda函数。它是一种简单的、只使用一行代码就能定义的函数,通常被用于比较简单的逻辑处理。匿名函数可以传递输入参数,并返回计算结果。 2. 匿名函数的语法 在Python中,匿名函数的语法通常类似于这样: lambda input1,input2,..…

    python 2023年5月14日
    00
  • Python字符串特性及常用字符串方法的简单笔记

    Python字符串特性及常用字符串方法的简单笔记 1. 字符串特性 Python的字符串是一种序列类型,可以用单引号(”)或双引号(””)来表示。例如: a = ‘Hello World!’ b = "Python is fun!" Python的字符串也可以用三引号(”’ 或 “””) 来表示多行字符串。例如: c = ”’Hel…

    python 2023年5月31日
    00
  • python 虚拟环境详解

    Python 虚拟环境详解 虚拟环境是 Python 中的一个机制,用于创建独立的 Python 环境。虚拟环境用于隔离不同项目中的依赖项,防止它们相互干扰。本文将为您提供创建和使用虚拟环境的详细攻略。 1. 安装和配置虚拟环境 在创建虚拟环境之前,您需要安装虚拟环境工具。Python 自带了一个虚拟环境工具 venv,可以通过以下命令来安装: python…

    python 2023年5月14日
    00
  • Python实现连接两个无规则列表后删除重复元素并升序排序的方法

    下面是实现连接两个无规则列表后删除重复元素并升序排序的方法的完整攻略: 问题描述 假设现在有两个列表 list1 和 list2,它们的元素都是无规律的、可能有重复的、可能不同类型的。现在需要将这两个列表合并成一个列表,删除其中的重复元素,然后对列表中的元素进行升序排序。 解决方案 1. 合并两个列表 使用 extend() 方法将两个列表合并成一个新的列表…

    python 2023年6月5日
    00
  • 使用Python创建一个相关的矩阵

    创建相关矩阵,是指计算一组数据中不同变量之间的相关程度。Python中可以使用NumPy库来计算相关矩阵,下面是详细攻略: 准备工作 首先,我们需要安装NumPy库。可以在命令行中输入以下命令进行安装: pip install numpy 导入库 在Python环境中,首先导入NumPy库。代码如下: import numpy as np 导入数据 我们使用…

    python-answer 2023年3月25日
    00
  • Python实现Word的读写改操作

    针对“Python实现Word的读写改操作”的完整攻略,可以分为以下几步: 安装Python-docx库 读取Word文件 修改Word文件内容 保存Word文件 下面详细介绍每一步: 1. 安装Python-docx库 Python-docx是一个用于读取、创建、修改Word文档的Python库,可以通过以下命令在命令行中安装: pip install p…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部