2026/4/1 19:05:47
网站建设
项目流程
网站竞争对手如何做调研,建官网公司地址,湖北网站建设详细方案,怎么删除织梦做的网站目录
简介
1.jieba库
1.jieba库原理分析
2.jieba库的解析
3.jieba库的使用
(1.)精确模式
(2.)全模式
(3.)搜索引擎模式
(4.)添加新词
2.项目分析(判断好评或差评)
简介
在处理中文文本的 Python 第三方库中#xff0c;jieba 库绝对是不可或缺的 “利器”。它专注于…目录简介1.jieba库1.jieba库原理分析2.jieba库的解析3.jieba库的使用(1.)精确模式(2.)全模式(3.)搜索引擎模式(4.)添加新词2.项目分析(判断好评或差评)简介在处理中文文本的 Python 第三方库中jieba 库绝对是不可或缺的 “利器”。它专注于中文分词能将连续的中文语句精准拆分成有意义的词语为后续的文本分析、自然语言处理等工作打下坚实基础。无论是新闻数据的关键词提取、社交媒体评论的情感分析还是聊天机器人的语义理解jieba 库都能发挥重要作用。对于数据分析师它能让中文文本数据的处理效率大幅提升对于自然语言处理爱好者掌握 jieba 库是深入探索中文语义世界的第一步。1.jieba库1.jieba库原理分析jieba 库可用于将中文的一段语句切分为单词通常用于解析中文语句的含义。例如在分析中文语句含义时首先需将这句话正确地分解为单个词即 “我们”“在”“学习”“Python”“办公自动化”而中文语句是一直连续的文字组合倘若单词分解错误就无法理解这句话的含义例如 “我”“们在”。jieba库的安装命令如下pip install jieba2.jieba库的解析接下来对 jieba 库做一个简单的分析。使用 pip 工具下载、安装完 jieba 库后打开 jieba 库安装目录可使用命令 pip show jieba 返回的 Location 获取到安装目录地址后文件分布如下其中最为关键的是__init__.py 文件包含用于创建分词对象的类 Tokenizer类 Tokenizer 包含分词相关的方法。analyse 文件夹中是用于设计算法以实现分词对象的类 Tokenizer类 Tokenizer 包含分词完成后处理的相关代码。lac 文件夹中是用于实现分析词语的相关代码。lac_small 文件夹中是用于实现创建词法分析模型和模型数据读取器的相关代码。main.py 文件可以实现使用命令的形式运行 jieba 库中函数的功能与 Pyinstaller 库的使用方法不同。dict.txt 文件是 jieba 库中的词典用于保存所有的词语。类Tokenizer 的简洁定义classTokenizer(object):def__init__(self,dictionaryNone):# 构造函数passdefinitialize(self):passdefcut(self,sentence,HMMTrue):# 计算分词passdefcut_for_search(self,sentence,HMMTrue):# 搜索引擎模式分词返回一个分词对象passdeflcut(self,sentence,HMMTrue):# 精确模式分词返回一个列表passdeflcut_for_search(self,sentence,HMMTrue):# 搜索引擎模式分词返回一个列表passdeftokenize(self,sentence,modedefault):# 获取词图passdefinsert_word(self,word,freqNone,tagNone):# 向词典中添加单词passdefdel_word(self,word):# 删除一个单词passdefsuggest_freq(self,segment,tuneFalse):# 调节单词的频率passdefposseg(self,sentence,HMMTrue):# 词性标注HMMTruepassdeftokenize(self,sentence,modedefault,HMMTrue):# 设置分词依赖的词典passdefset_dictionary(self,dictionary_path):# 设置分词依赖的词典pass这里只要简单看一下理解一下就行3.jieba库的使用(1.)精确模式精确模式指对句子进行精确的切分是文本分析中较为常用的一种模式。其使用形式如下:cut(sentence,cut_allFalse,HMMTrue,use_paddleFalse)参数 sentence需要分词的中文句子值的数据类型为字符串类型。参数 cut_all参数值的数据类型为布尔值类型值为 False 表示使用精确模式值为 True 表示使用全模式。参数 HMM是否使用隐马尔可夫模型一种优化模型算法。importjieba s我们在学习Python办公自动化jb_ajieba.Tokenizer()#类Tokenizer所包含的处理分词的方法resultjb_a.cut(sentences)#精确模式print(result,list(result))# 运行结果[我们, 在, 学习, Python, 办公自动化]第 3 行代码使用 jieba 库中的类 Tokenizer 初始化一个分词对象 jb_a。第 4 行代码使用了分词对象中的 cut () 方法并对第 2 行代码中的字符串内容进行了精确模式分词。第 5 行代码输出结果由于 cut () 方法分词后会返回一种 Python 内部数据因此可以使用 list () 函数将该数据转换为列表类型数据。(2.)全模式全模式指把句子中所有可以成词的词语都扫描出来这种分词模式虽然速度快但不能解决歧义问题。在 cut () 方法中的参数 cut_all 的值设置为 True 即可使用全模式。importjieba s我们在学习Python办公自动化jb_ajieba.Tokenizer()resultjb_a.cut(sentences,cut_allTrue)#全模式print(list(result))# 运行结果为[我们, 在, 学习, Python, 办公, 办公自动化, 自动, 自动化]结果中每个可以作为一个单词的文字都将展示出来。(3.)搜索引擎模式搜索引擎模式指在精确模式基础上对长词再次切分适用于搜索引擎分词。其使用形式如下cut_for_search(sentence,HMMTrue)参数 sentence需要分词的中文句子值的数据类型为字符串类型。参数 HMM是否使用隐马尔可夫模型。importjieba s我们在学习Python办公自动化jb_ajieba.Tokenizer()resultjb_a.cut_for_search(sentences)#搜索引擎模式print(list(result))# 运行结果[我们, 在, 学习, Python, 办公, 自动, 自动化, 办公自动化]第 4 行代码使用 cut_for_search () 对第 2 行代码中的文字进行搜索引擎模式分词在精确模式的基础上再次对 “办公自动化” 进行分词。(4.)添加新词除了以上 3 种分词模式由于社会还会不断地创造出新的词语因此为了满足当前社会对分词的需求还可以使用 add_word () 方法向词典中添加新词添加的词语不是永久的仅在当前代码中有效。其使用形式如下add_word(word,freqNone,tagNone)参数 word需要添加到词典中的词语。importjieba s我们在学习Python办公自动化jb_ajieba.Tokenizer()jb_a.add_word(Python办公自动化)#添加新词resultjb_a.cut(sentences)print(list(result))#运行结果[我们, 在, 学习, Python办公自动化]第 4 行代码使用 add_word () 方法将单词 “Python 办公自动化” 添加到词典中。第 5 行代码使用 cut () 方法进行精确模式分词。2.项目分析(判断好评或差评)为了自动识别例如抖音的某个视频、微博的某个文案、淘宝的某个商品的评论为好评或差评需要设计一个可以自动判断用户评论好坏的代码程序。项目任务任务 1使用 jieba 库将用户的评论分词为一个个单词并建立一套好评、差评论库例如在以下代码中列表 good 中为好评词语列表 bad 中为差评词语。任务 2将用户评论分词后的单词分别与列表 good、bad 进行匹配并统计好评词语和差评词语的个数。importjieba good[好评,好看]bad[差评,垃圾]s_1衣服好看显得皮肤白s_2尺寸不差评分必须高s_3差评买过最垃圾的东西defget_value(s):good_valuebad_value0resultlist(jieba.cut(sentences))print(result)forrinresult:ifringood:good_value1ifrinbad:bad_value1print(好评词语个数,good_value,差评词语个数,bad_value)ifgood_valuebad_value:print(此条评论为好评)elifgood_valuebad_value:print(此条评论暂无法判断)else:print(此条评论为差评)get_value(s_1)get_value(s_2)get_value(s_3)第 5 行代码s_2 尺寸不差评分必须高中虽然存在 “差评” 两个字但其实际含义为 “尺寸不差评分必须高”因此需要使用 jieba 库对评论文字进行分词最大概率地确保评论中的词语没有歧义。第 2、3 行代码中的 good 和 bad 分别保存好评词语和差评词语。在实际开发中的词语可能会远比代码中的词语多读者在实际开发中可以自行增加。第 4 - 6 行代码中为 3 条待分析的评论。第 7 - 22 行代码创建了一个用于分析评论的函数 get_value ()。其中第 8 行代码中的 good_value 和 bad_value 用于统计好评词语和差评词语的个数。第 9 行代码使用 jieba.cut () 方法将评论解析为单词。第 10 - 14 行代码使用 for 循环依次判断解析后的词语中是否有好评词语或差评词语如果有好评词语则 good_value 加 1如果有差评词语则 bad_value 加 1。第 17 - 22 行代码用于判断 good_value 和 bad_value 的大小如果好评词语的个数大于差评词语的个数则表明评论为好评如果个数相同则暂时无法判断评论是好评还是差评如果好评词语的个数小于差评词语的个数则表明评论为差评。