广告位联系
返回顶部
分享到

Python中jieba模块使用方法介绍

python 来源:互联网 作者:佚名 发布时间:2024-12-08 22:36:08 人浏览
摘要

在中文自然语言处理(NLP)中,分词是基本而关键的步骤。由于中文没有空格,分词可以帮助我们更好地理解和处理文本。jieba是一个流行的中文分词工具,功能强大且易于使用。 安装 jieba 首

在中文自然语言处理(NLP)中,分词是基本而关键的步骤。由于中文没有空格,分词可以帮助我们更好地理解和处理文本。jieba 是一个流行的中文分词工具,功能强大且易于使用。

安装 jieba

首先,确保安装了 jieba 模块,可以使用以下命令:

1

pip install jieba

分词模式

jieba 模块支持三种分词模式:

  • 精确模式:将句子精确切分,适合文本分析。
  • 全模式:扫描出句子中所有可能的词语,速度快,但无法消歧。
  • 搜索引擎模式:在精确模式基础上,对长词再切分,以提高召回率。

使用分词

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import jieba

 

text = "我来到北京清华大学"

 

# 全模式

full_mode = jieba.cut(text, cut_all=True)

print("全模式: " + "/ ".join(full_mode))

 

# 精确模式

exact_mode = jieba.cut(text, cut_all=False)

print("精确模式: " + "/ ".join(exact_mode))

 

# 默认模式(精确模式)

default_mode = jieba.cut("他来到了网易杭研大厦")

print("默认模式: " + "/ ".join(default_mode))

搜索引擎模式

使用 cut_for_search 方法,适合构建搜索引擎的倒排索引。

1

2

search_mode = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")

print(", ".join(search_mode))

自定义词典

添加自定义词典

jieba 允许用户添加自定义词典,以提高分词准确性。

1

jieba.load_userdict("userdict.txt")

用户字典的格式为:

1

词语 词频(可省略) 词性(可省略)

调整词典

  • 添加词:使用 add_word(word, freq=None, tag=None) 方法添加词。
  • 删除词:使用 del_word(word) 方法删除词。
  • 调节词频:使用 suggest_freq(segment, tune=True) 方法调整词频,使特定词能(或不能)被分出来。

关键词提取

TF-IDF 关键词抽取

可以使用 extract_tags 方法基于 TF-IDF 算法提取关键词。

1

2

3

4

5

import jieba.analyse

 

text = "我爱自然语言处理,中文分词很有趣,中文处理需要很多工具。"

keywords = jieba.analyse.extract_tags(text, topK=5)

print("关键词:", keywords)

TextRank 关键词抽取

textrank 方法提供基于 TextRank 算法的关键词抽取。

1

2

keywords = jieba.analyse.textrank(text, topK=5)

print("关键词:", keywords)

词性标注

jieba 还支持词性标注功能,使用 posseg 模块可以标注每个词的词性。

1

2

3

4

5

import jieba.posseg as pseg

 

words = pseg.cut("我爱北京天安门")

for word, flag in words:

    print(f'{word}, {flag}')

获取词语位置

使用 tokenize 方法可以获取词语在原文中的起止位置。

1

2

3

result = jieba.tokenize("永和服装饰品有限公司")

for tk in result:

    print(f"word {tk[0]}\t\t start: {tk[1]}\t\t end: {tk[2]}")

关键词提取

TF-IDF 关键词抽取

TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于信息检索和文本挖掘的常用加权技术。它通过计算一个词在文档中出现的频率(TF)与该词在所有文档中出现的稀有度(IDF)相结合,来评估一个词的重要性。

  • Term Frequency (TF):某个词在文档中出现的次数与该文档总词数的比值。
  • Inverse Document Frequency (IDF):表示词的重要性,计算公式为:[ IDF(w) = \log(\frac{N}{n(w)}) ]
    • ( N ):文档总数
    • ( n(w) ):包含词 ( w ) 的文档数

示例代码:

1

2

3

4

5

6

import jieba.analyse

 

text = "我爱自然语言处理,中文分词很有趣,中文处理需要很多工具。"

keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)

for word, weight in keywords:

    print(f"关键词: {word}, 权重: {weight}")

TextRank 关键词抽取

TextRank 是一种无监督的图模型算法,常用于关键词提取和摘要生成。它基于词与词之间的关联,通过构建词图并计算节点之间的相似度来识别重要词汇。

示例代码:

1

2

3

4

text = "此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。"

keywords = jieba.analyse.textrank(text, topK=5, withWeight=True)

for word, weight in keywords:

    print(f"关键词: {word}, 权重: {weight}")

性能对比

在实际应用中,jieba 的不同分词模式对性能和准确率有显著影响。以下是对不同模式的对比分析:

模式 速度 准确率 应用场景
精确模式 中等 文本分析、内容提取
全模式 关键词提取、快速初步分析
搜索引擎模式 较慢 中等 搜索引擎的倒排索引

示例性能对比代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import time

 

text = "我来到北京清华大学"

 

# 精确模式

start = time.time()

jieba.cut(text, cut_all=False)

print("精确模式耗时: ", time.time() - start)

 

# 全模式

start = time.time()

jieba.cut(text, cut_all=True)

print("全模式耗时: ", time.time() - start)

 

# 搜索引擎模式

start = time.time()

jieba.cut_for_search(text)

print("搜索引擎模式耗时: ", time.time() - start)

常见问题解答

分词不准确

问题:某些词被错误分割,尤其是专业术语或人名。

解决方案:使用 add_word() 方法添加特定词汇或加载自定义词典,以提高分词的准确性。

编码问题

问题:在使用 GBK 编码的文本时,出现乱码或分词错误。

解决方案:尽量使用 UTF-8 编码的字符串,避免直接输入 GBK 字符串。

如何处理歧义词

问题:某些词具有多种含义,分词结果不理想。

解决方案:使用 suggest_freq() 方法调整词频,指导分词器优先识别特定词义。

总结

jieba 是一个灵活且功能丰富的中文分词工具。通过不同的分词模式和自定义词典,用户可以针对特定需求进行优化。无论是文本分析还是关键词提取,jieba 都能为你提供强大的支持。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Python元组超详细介绍(小白篇)
    元组(Tuple)是Python中的一种内置数据类型,用于存储多个有序的元素。与列表不同,元组是不可变的,这意味着一旦创建,元组中的元素就
  • Python中jieba模块使用方法介绍
    在中文自然语言处理(NLP)中,分词是基本而关键的步骤。由于中文没有空格,分词可以帮助我们更好地理解和处理文本。jieba是一个流行的
  • Python中魔法参数 *args 和 **kwargs使用介绍

    Python中魔法参数 *args 和 **kwargs使用介绍
    在Python编程中,函数的灵活性是其强大之处之一。其中,*args 和 **kwargs 是实现函数参数可变性的重要工具。 无论我们是Python初学者还是经验
  • python学习之subprocess模块介绍
    subprocess功能:创建子进程,并连接他的输入、输出和错误管道,获取其返回状态(可以在python代码中执行操作系统级别的命令) 1. subproce
  • Python中使用pip换源的流程
    在Python开发过程中,我们经常需要安装各种第三方库。pip是Python的包管理工具,用于安装和管理Python库。然而,由于网络原因,有时访问默
  • 使用Python中wordcloud库绘制词云图的教程

    使用Python中wordcloud库绘制词云图的教程
    词云图(Word Cloud)是数据可视化中常用的一种技术,通过将文字以不同的大小、颜色和方向排列,以展示文本数据中词汇的频次和重要性。
  • Python文件批量处理操作的实现
    在日常的开发和数据处理过程中,我们可能会遇到需要对大量文件进行批量操作的场景。比如,批量重命名文件、批量移动文件、批量修改
  • python的三种等待方式及优缺点介绍
    一、调用方式 1.强制等待 调用time模块,使用time.sleep(n),强制等待n秒 2.隐式等待 implicitly_wait(n),设置隐式等待最大时间n秒,等待元素加载完
  • 利用Python爬虫精准获取淘宝商品

    利用Python爬虫精准获取淘宝商品
    在数字化时代,数据的价值日益凸显,尤其是在电子商务领域。淘宝作为中国最大的电商平台之一,拥有海量的商品数据,对于研究市场趋
  • PIL图像与数组之间转换的使用二十j

    PIL图像与数组之间转换的使用二十j
    getpixel 如果想对图像进行细致地处理,那么操作像素是必不可少的一步。在Image类中,通过getpixel可以得到图像在某个坐标位置处的像素值,
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计