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中,我们可以使用各种库和工具来爬取数据,如Requests、BeautifulSoup、Scrapy等。在爬取数据后,我们通常需要将数据保存到本地文件中,以便后续处理和分析。本文将介绍Python数据爬下来保存的位置的完整攻略,包括保存到文本文件、CSV文件和数据库中的方法,以及两个示例说明。 保存到文本文件 在Python中,我们可以使用op…

    python 2023年5月14日
    00
  • 对Python多线程读写文件加锁的实例详解

    我们来详细讲解“对Python多线程读写文件加锁的实例详解”的完整攻略。 本文主要是介绍如何使用Python多线程读写文件,并在多线程并发操作时加锁,以保证文件的数据写入不会出问题。常见的场景是,在数据量大的情况下,使用多线程加快数据的插入和查询速度,而在文件读写时,我们需要考虑到多个线程操作同一个文件时,可能会因为竞争出现数据不一致的问题。 下面我们就来看…

    python 2023年5月18日
    00
  • python网络爬虫实战

    Python网络爬虫实战攻略 Python网络爬虫可以帮助我们自动化地从互联网上获取需要的信息,有非常广泛的应用。本攻略基于Python语言,介绍了如何使用Python进行网络爬虫开发,包括爬虫基础知识、网络协议、URL解析、网页解析和数据持久化等内容。 爬虫基础知识 在进行网络爬虫开发前,我们需要掌握一些爬虫基础知识,包括: 网络协议:HTTP、HTTPS…

    python 2023年5月14日
    00
  • 浅谈python数据类型及其操作

    浅谈Python数据类型及其操作 Python是一门强大且易学的编程语言,它支持多种数据类型以及各种数据类型之间的操作。本篇文章将浅谈Python的常见数据类型及其操作。 变量 变量是Python中表示某些值或对象的符号名称。在Python中,可以使用赋值操作符“=”将值赋给一个变量。例如: a = 10 这个例子中,变量a被赋值为整数型的10。在Pytho…

    python 2023年5月13日
    00
  • Python+Turtle绘制一个可爱的生日蛋糕

    Python+Turtle绘制一个可爱的生日蛋糕 背景 生日是一个很重要的节日,在这个特别的日子里,我们可以送出一份心意,让对方感受到我们的关爱和祝福。在这样一个特别的时刻,做一份生日蛋糕,或者画一张生日贺卡,也是一件很有意义的事情。本篇攻略将介绍如何使用 Python+Turtle 绘制一个可爱的生日蛋糕。 准备工作 使用 Turtle 绘图需要安装 Py…

    python 2023年6月3日
    00
  • 利用Python对中国500强排行榜数据进行可视化分析

    下面是关于利用Python对中国500强排行榜数据进行可视化分析的完整实例教程。 1. 准备工作 首先,我们需要准备数据集。可以去 http://www.fortunechina.com/fortune500/c/2019-07/22/content_342080.htm 下载排行榜数据并保存为 CSV 格式。 接着,我们需要安装一些 Python 库,包括…

    python 2023年5月13日
    00
  • 使用实现pandas读取csv文件指定的前几行

    使用Pandas读取CSV文件指定的前几行可以通过read_csv()方法的nrows参数来指定。具体的攻略如下: 导入Pandas库 import pandas as pd 使用read_csv()方法读取CSV文件,并指定nrows参数 df = pd.read_csv(‘file.csv’, nrows=5) 其中,’file.csv’表示CSV文件的…

    python 2023年6月3日
    00
  • python实现银行实战系统

    Python实现银行实战系统攻略 本文将详细讲解如何使用Python实现银行实战系统。我们将使用Python语言的基础知识、面向对象编程、文件操作等知识来完成这个任务。 1. 确定需求 在开始编写银行实战系统之前,我们需要确定系统的需求。这里我们假设银行实战系统需要实现以下功能: 新用户注册 登录系统 存款 取款 转账 查询余额 2. 设计系统结构 根据需求…

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