当前位置: 首页 > news >正文

Python进行中文分词

1. jieba库概述

jieba(“结巴”)是Python中最流行的中文分词库,采用基于前缀词典实现的高效分词算法,支持多种分词模式,是中文自然语言处理(NLP)的基础工具。
核心特性

  • 精确模式:试图将句子最精确地切开,适合文本分析
  • 全模式:把句子中所有可以成词的词语都扫描出来,速度非常快但有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分,提高召回率
  • 支持自定义词典:可添加专业领域词汇提高分词准确度
  • 支持词性标注:可标注分词结果的词性
  • 支持并行分词:利用多核CPU加速分词处理

2. jieba.cut函数

import jieba
seg_list = jieba.cut("这是一个测试文本", cut_all=False)

参数说明

参数类型默认值说明
sentencestr必需待分词的字符串
cut_allboolFalse是否采用全模式
HMMboolTrue是否使用HMM模型
use_paddleboolFalse是否使用PaddlePaddle模型(需额外安装)

返回值
关键点:jieba.cut()返回的是生成器(Generator),不是列表或元组。

这意味着:生成器只能被迭代一次,之后就会耗尽,无法直接索引(如seg_list[0]会报错),无法直接获取长度(如len(seg_list)会报错),内存效率高,适合处理大文本,但需要特别注意使用方式。

3. 使用示例

# 安装
pip install jieba

在这里插入图片描述

import jieba
from collections import Countertext = "本周进行自然语言处理系列文档示例,示例围绕自然语言处理程序。"
words = jieba.cut(text)words_list = list(words)
words_count = Counter(words_list)
words_filter = [word for word, count in words_count.items() if count > 1]print("分词结果:", words_list)
print("词频:", words_count)
print("高频词汇:", words_filter)

在这里插入图片描述

4. 其他常用函数

jieba.lcut(sentence, cut_all=False, HMM=True, use_paddle=False)
功能:与cut()功能相同,但直接返回列表而非生成器,解决了生成器只能迭代一次的问题,便于多次使用分词结果。

jieba.cut_for_search(sentence, HMM=True)
功能:搜索引擎模式分词,对长词再次切分以提高召回率,在精确模式基础上,对未在词典中找到的长词进行二次切分

jieba.posseg.cut(sentence, HMM=True)
功能:提供词性标注功能,基于精确模式分词并标注词性

jieba.add_word(word, freq=None, tag=None)
功能:向分词词典中添加新词
参数:
word:要添加的词语;
freq:词频(可选),用于调整词语切分优先级;
tag:词性(可选)

jieba.load_userdict(file_name)
功能:加载自定义词典文件
文件格式:每行一个词,格式为:词语 词频 词性(词频和词性可选)

jieba.tokenize(sentence, mode=‘default’, HMM=True)
功能:返回词语在原文中的位置信息
参数:mode:‘default’(精确模式)或’search’(搜索引擎模式)
返回值:元组列表,每个元组包含(词语, 起始位置, 结束位置)

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
功能:基于TF-IDF算法提取关键词
参数:
topK:返回关键词数量
withWeight:是否返回权重值
allowPOS:仅提取指定词性的词

jieba.enable_parallel(num)
功能:利用多核CPU加速分词处理,启用并行分词,参数为并行进程数,程序结束可以调用jieba.disable_parallel()关闭并行分词

http://www.lryc.cn/news/623891.html

相关文章:

  • MySQL定时任务详解 - Event Scheduler 事件调度器从基础到实战
  • Blender模拟结构光3D Scanner(二)投影仪内参数匹配
  • 火狐(Mozilla Firefox)浏览器离线安装包下载
  • 学习Python中Selenium模块的基本用法(5:程序基本步骤)
  • Python数据类型转换详解:从基础到实践
  • Python 基础语法(二)
  • 0️⃣基础 认识Python操作文件夹(初学者)
  • Linux:TCP协议
  • RK3568平台开发系列讲解:PCIE trainning失败怎么办
  • 深入解析函数指针及其数组、typedef关键字应用技巧
  • 0-12岁幼儿启蒙与教育
  • CF2121C Those Who Are With Us
  • 2001-2024年中国玉米种植分布数据集
  • 【牛客刷题】01字符串按递增长度截取并转换为十进制数值
  • Day07 缓存商品 购物车
  • 14.web api 5
  • LEA(Load Effective Address)指令
  • 19.5 「4步压缩大模型:GPTQ量化实战让OPT-1.3B显存直降75%」
  • 混沌工程(Chaos engineering):系统韧性保障之道
  • 图解希尔排序C语言实现
  • 【Java】多线程Thread类
  • 2025年- H97-Lc205--23.合并k个升序链表(链表、小根堆、优先队列)--Java版
  • 【撸靶笔记】第二关:GET -Error based -Intiger based
  • 【102页PPT】新一代数字化转型信息化总体规划方案(附下载方式)
  • 2.4 双向链表
  • 牛客周赛 Round 104(小红的矩阵不动点/小红的不动点权值)
  • 03高级语言逻辑结构到汇编语言之逻辑结构转换if (...) {...} else if {...} else {...}
  • react 错误边界
  • git stash临时保存工作区
  • Win11 文件资源管理器预览窗格显示 XAML 文件内容教程