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

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日

相关文章

  • python实现简单的俄罗斯方块

    当我们想要实现一个俄罗斯方块游戏的时候,需要考虑以下步骤: 1. 准备工作 在开始实现前,需要在本地安装Python环境,以及相关的库,包括Pygame等,这些库可以通过pip指令来安装,如下: pip install pygame 我们还需要创建一个名为tetris.py的空白文件作为项目文件。 2. 创建游戏窗口 接下来我们需要创建一个窗口界面,用来展示…

    python 2023年5月19日
    00
  • python 制作网站筛选工具(附源码)

    Python可以用于制作网站筛选工具,可以方便地从网站中提取数据并进行筛选。本文将详细讲解如何使用Python制作网站筛选工具,包括如何使用BeautifulSoup库解析HTML、如何使用requests库获取网页内容、如何使用pandas库处理数据等。 安装必要的库 在使用Python制作网站筛选工具之前,我们需要安装必要的库。以下是需要安装的库: re…

    python 2023年5月15日
    00
  • Python 生成 -1~1 之间的随机数矩阵方法

    要生成一个在-1~1之间的随机数矩阵,可以使用NumPy中的random模块。下面是具体的步骤和示例说明: 步骤一:导入NumPy模块 在Python中,要使用NumPy生成随机数矩阵,首先需要导入NumPy模块。可以使用以下语句导入NumPy: import numpy as np 步骤二:使用random模块生成随机数矩阵 NumPy中的random模块…

    python 2023年6月3日
    00
  • python程序如何进行保存

    下面是关于“python程序如何进行保存”的完整攻略: 1. 程序保存的基本方法 1.1 保存文件 打开Python编辑器,编写好Python程序代码。 在Pyhton编辑器中选择“文件”菜单,然后选择“保存”或者“另存为”。 在保存对话框中,输入程序的文件名,以“.py”结尾。 将所编写的Python程序保存到你想要的磁盘位置上(例如桌面,或者指定的文件夹…

    python 2023年5月30日
    00
  • Python datetime 格式化 明天,昨天实例

    Python的datetime模块提供了对日期和时间的操作,包括创建日期时间对象、格式化日期时间、日期时间计算等操作。在datetime模块中有一个datetime类,它表示一个日期时间对象。格式化日期时间可以使用strftime()方法来实现。 格式化日期时间 使用strftime()方法可以将datetime对象格式化为字符串。strftime(form…

    python 2023年6月2日
    00
  • 学习和使用python的13个理由

    当学习编程语言时,选择一门合适的语言非常重要。Python是一种具有多用途的高级编程语言,其成为许多应用程序和网站的首选语言。以下是使用Python的13个理由: 1.容易学习 Python语法简单、结构清晰,类似于英语,易于理解和学习。即使没有编程经验,也可以轻松入门。 2.广泛的应用范围 Python可以用于Web开发、数据科学、人工智能、机器学习、游戏…

    python 2023年5月19日
    00
  • Python中的集合一起来学习一下

    Python中的集合一起来学习一下 什么是集合? 集合是 Python 中的一种无序且元素唯一的数据类型。无序意味着元素存储在集合中的顺序与添加元素的顺序不一定相同。元素唯一意味着集合中的元素不能重复。Python 中的集合类类似于数学中的集合,可以进行交集、并集、差集等基本操作。 如何创建集合? Python 中的集合可以使用花括号 {} 或 set() …

    python 2023年5月14日
    00
  • Python数据结构与算法之跳表详解

    Python数据结构与算法之跳表详解 跳表是一种基于链表的数据结构,它可以快速地查找、插入和删除元素。跳的时间复杂度为O(log n),与平衡树相当,但实现起来比平衡树简单。本文将介绍跳表的本原理、实现方法和应用场景。 1. 基本原理 跳表是一种基于链表的数据结构,它通过在链表中添加多级索引来加速查找。每个索引层都是原始链表的一个子集,其中每个节点都具指向下…

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