Python jiaba库的使用详解

Python jieba库的使用详解

简介

Jieba是一款开源的中文分词库,在中文自然语言处理领域具有非常广泛的应用。Jieba分词速度非常快,支持三种分词模式和特定领域分词。本文将给出Jieba库的基本使用方法,并介绍三种分词模式和特定领域分词,同时也给出几个实例进行演示。

安装

使用pip即可安装jieba:

pip install jieba

基本使用

一个最简单的例子:

import jieba

text = "我来到北京清华大学"
words = jieba.cut(text)
print(list(words))

以上代码中,我们首先import了jieba库。接下来我们定义了一个字符串text,表示我们要进行分词的句子。然后,我们使用jieba库中的jieba.cut()函数对这个句子进行分词,并将其返回值转化为列表类型,最后使用print()函数把它打印输出。

输出结果如下:

['我', '来到', '北京', '清华大学']

对于上述示例,我们可以看到jieba默认将文本用精确模式分词,返回分词后的结果。

分词模式

Jieba支持三种分词模式:精确模式全模式搜索引擎模式

精确模式

精确模式是默认的模式,它会尽可能地将待分词文本精确地进行分词。

使用方法:

import jieba

text = "我来到北京清华大学"
words = jieba.cut(text, cut_all=False)
print(list(words))

输出结果:

['我', '来到', '北京', '清华大学']

全模式

全模式就是把待分词文本中所有的可能词语都扫描出来,有重叠部分的词语将被分割成多个词语。

使用方法:

import jieba

text = "我来到北京清华大学"
words = jieba.cut(text, cut_all=True)
print(list(words))

输出结果:

['我', '来到', '北京', '清华', '清华大学', '华大', '大学']

搜索引擎模式

搜索引擎模式是在精确模式的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词。

使用方法:

import jieba

text = "他来到了网易杭研大厦"
words = jieba.cut_for_search(text)
print(list(words))

输出结果:

['他', '来到', '了', '网易', '杭', '研', '大厦', '网易杭研大厦']

关键词提取

jieba支持多种关键词提取的方法,包括:jieba.analyse.extract_tagsjieba.analyse.textrank

基于TF-IDF算法的关键词提取

基于TF-IDF算法的关键词提取方式可以通过jieba.analyse.extract_tags实现。

使用方法:

import jieba.analyse

text = """
丹东旅游文化协会会长张亮来到罗山镇凤鸣村观赏樱桃并表示,甘泉镇有大量的樱桃产区,全体樱桃种植户都同心协力,大力推进樱桃生产发展。山东是首个品牌区域,我从东营出发,来到甘泉镇,在这里感受到了山东樱桃的浪漫和美。下一步,我们将做好宣传推广,共同打造壮美的品牌,让更多的游客感受到“山东樱桃·生态风景区”的魅力。
"""

keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True, allowPOS=('n', 'ns'))
for item in keywords:
    print(item[0], item[1])

输出结果:

樱桃 0.8639565426741935
山东 0.3247452191822581
甘泉镇 0.2707532711725807
品牌 0.23847139975483872
种植 0.2153939034864516

以上代码中,我们首先import了jieba.analyse库。接下来我们定义了一个字符串text,表示我们要进行关键词提取的文本。然后,我们使用jieba中的jieba.analyse.extract_tags()函数对这个文本进行关键词提取。其中参数topK表示返回的关键词数量,withWeight表示是否返回关键词权重值,allowPOS表示仅限制词性,并只提取名词或地名等实词。

基于TextRank算法的关键词提取

基于TextRank算法的关键词提取方式可以通过jieba.analyse.textrank实现。

使用方法:

import jieba.analyse

text = """
丹东旅游文化协会会长张亮来到罗山镇凤鸣村观赏樱桃并表示,甘泉镇有大量的樱桃产区,全体樱桃种植户都同心协力,大力推进樱桃生产发展。山东是首个品牌区域,我从东营出发,来到甘泉镇,在这里感受到了山东樱桃的浪漫和美。下一步,我们将做好宣传推广,共同打造壮美的品牌,让更多的游客感受到“山东樱桃·生态风景区”的魅力。
"""

keywords = jieba.analyse.textrank(text, topK=5, withWeight=True, allowPOS=('n', 'ns'))
for item in keywords:
    print(item[0], item[1])

以上代码中,我们也是首先import了jieba.analyse库。然后和基于TF-IDF算法关键词提取方法一样,定义了一个字符串text。然后,我们使用jieba中的jieba.analyse.textrank()函数对这个文本进行中文关键词提取。其中参数topK表示返回的关键词数量,withWeight表示是否返回关键词权重值,allowPOS表示仅限制词性,并只提取名词或地名等实词。

示例

示例1:《红楼梦》中词频统计

我们可以通过使用jieba库对《红楼梦》中的文章进行分词,并统计词频。

代码:

import jieba
import collections

# 打开《红楼梦》
with open('hongloumeng.txt', 'r', encoding='UTF-8') as f:
    text = f.read()

words = jieba.cut(text)

# 统计词频并排序
counter = collections.Counter(words)
word_freq = sorted(counter.items(), key=lambda x:x[1], reverse=True)

# 输出前100个词的词频
for word, freq in word_freq[:100]:
    print(word, freq)

输出结果:

, 12259
的 7806
。 6794
了 2666
是 2567
... ... ... ...

以上代码中,我们使用了Python内置的collections库,该库的Counter函数可以快速地统计词频。通过读取文件方式打开《红楼梦》文件,并进行基于jieba精确模式的分词。最终实现了这个古典著作的词频排序。

示例2:中文短文本关键词提取

在实际的应用场景中,我们需要对一些中文短文本进行关键词抽取。以下为一步骤。

代码:

import jieba.analyse

text = "B站(哔哩哔哩)成立于 2009 年,是国内领先的年轻人文化社区,以“让一切创意都能被分享”为使命,聚集了国内众多年轻人分享创造的精神。截至 2019 年 12 月,B站的月活跃用户超过 2.23 亿,其中 90 后占比超过 80%。"

keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True, allowPOS=('n', 'v', 'a'))
for item in keywords:
    print(item[0], item[1])

输出结果:

B站 0.669932497325
年轻人 0.2036702844125
分享 0.11668135748999999
创意 0.1154444132825
众多 0.1047035974765

以上代码中,我们的输入是B站的一个介绍短语,将原始短语中的关键词抽取出来。同样地,使用jieba库中jieba.analyse.extract_tags()的函数完成关键词提取的任务。这次我们使用了一组不同的参数让关键词提取得到的结果更为丰富。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python jiaba库的使用详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • [Python自动化]使用Python Pexpect模块实现自动化交互脚本使用心得

    使用Python Pexpect模块实现自动化交互脚本使用心得 参考文档:https://pexpect.readthedocs.io/en/stable/ 前言 在最近的工作中,需要使用DockerFile构建镜像。在构建镜像的过程中,有一些执行的命令是需要交互的。例如安装tzdata(apt install tzdata),不过在使用apt安装时,可以直…

    python 2023年4月25日
    00
  • ubuntu 安装pyqt5和卸载pyQt5的方法

    下面是ubuntu安装pyqt5和卸载pyqt5的完整攻略。 安装pyqt5方法 确认安装python3 在开始安装pyqt5之前,需要确认已经安装了python3。可以使用以下命令查看: python3 –version 如果没有安装,可以使用以下命令进行安装: sudo apt-get update sudo apt-get install pytho…

    python 2023年6月2日
    00
  • python实现的简单文本类游戏实例

    以下是“python实现的简单文本类游戏实例”的完整攻略: 实现思路 这个文本类游戏需要基于控制台来进行交互,打印出当前游戏场景和提供的选项。玩家输入选项后,程序通过判断和条件分支的方式做出相应的反应,更新游戏场景和提供新的选项。实现这个游戏需要用到 Python 的控制台输入输出、条件分支、循环和数据结构等知识。 游戏流程分析 这个游戏的流程大致如下: 玩…

    python 2023年5月19日
    00
  • Python Pandas 转换unix时间戳方式

    对于“Python Pandas 转换unix时间戳方式”,下面是完整攻略: 如何将Unix时间戳转换为自然日期时间格式? 在Python Pandas中,我们可以使用pd.to_datetime()方法将Unix时间戳转换为自然日期时间格式。例如,给定一个时间戳,我们可以将其转换为GMT时间格式,代码如下: import pandas as pd impo…

    python 2023年6月2日
    00
  • 深入理解Python爬虫代理池服务

    Python爬虫代理池服务是爬虫开发中常用的技术,可以帮助我们解决IP被封锁、访问速度慢等问题。本文将详细讲解Python爬虫代理池服务的实现过程,包括如何获取代理IP、如何测试代理IP、如何使用代理IP等。 获取代理IP 要获取代理IP,我们可以使用一些免费或付费的代理IP服务。以下是一个示例,演示如何使用免费的代理IP服务获取代理IP: import r…

    python 2023年5月15日
    00
  • 解决Python 进程池Pool中一些坑

    解决Python 进程池Pool中一些坑 在Python中,进程池(Pool)是一种常用的并发编程方式,可以有效地提高程序的执行效率。但是,在使用进程池时,我们也需要注意一些坑点,本文将详细讲解如何解决这些坑点。 坑点一:进程池中函数必须在主模块中定义 在使用进程池时,我们需要将要执行的函数定义在主模块中,否则会出现PicklingError异常。这是因为在…

    python 2023年5月13日
    00
  • 对python中list的五种查找方法说明

    Python中列表的五种查找方法 在Python中,可以使用五种方法来查找列表(list)中的元素,包括线性查找、二分查找、in运算符、index()方法和count()方法。下面将详细讲解这五种方法的用法,并提供示例说明。 线性查找 线性查找是一种简单的查找,它从列表的第一个元素开始逐个比较,直到找到目标元素或者遍历完整个列表。如果目标元素不存在于列表中,…

    python 2023年5月13日
    00
  • Python 数据可视化之Matplotlib详解

    Python 数据可视化之Matplotlib详解 Matplotlib 是Python中最常用的数据可视化库之一,具有灵活性和跨平台性,可以轻松绘制多种图形,并通过简单的参数进行自定义。本文将详细讲解Matplotlib的用法和功能,包括如何安装,常用的图像类型,自定义和美化图像,以及如何将Matplotlib与Pandas结合使用。 安装 可以通过pip…

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