python将文本转为字典_python题库及答案解析

(55) 2024-08-07 19:01:01
python将文本转为字典_python题库及答案解析 (https://mushiming.com/)  第1张

很多时候,我们想提取一段文字(或一篇文章)中的高频词汇;或是对文章进行分词处理,进行惯用词统计及词云制作。(打个比方:你写了一篇文章,写完之后你觉得好像用词有些单调,你想佐证一下自己的想法,所以就需要对自己写的这篇文章进行词汇梳理及使用频率统计)。这时候,最常用的做法就是利用今天要讲的——jieba库


(1)原理

jieba 是目前最好用的 Python 中文分词库,它的原理是:

  • 利用已用中文词库(使用者可以根据自身需要可以在原词库基础上再进行添加新词),确定汉字之间的关联概率
  • 汉字间概率大的组成词组,形成分词结果

jieba库的三种分词模式:

精确模式、全模式、搜索引擎模式

  1. 精确模式:把文本精确的切分开,不存在冗余单词
  2. 全模式:把文本中所有可能的词语都扫描出来,可能存在冗余单词
  3. 搜索引擎模式:在精确模式基础上,对长词再次切分

除此之外,jieba库还具有以下两个特性:

  • 支持繁体分词
  • 支持自定义词典

jieba库常用函数:

python将文本转为字典_python题库及答案解析 (https://mushiming.com/)  第2张

同学们可以根据自己的需求,调用不同的方法。

下面,我们通过一个小例子来体验一下精确模式和全模式之间的差异:

首先先展示一下我们案例用的一个小文案:

python将文本转为字典_python题库及答案解析 (https://mushiming.com/)  第3张

首先是精确模式

代码总共分为三步:

(1)导入jieba库;并导入文件;

(2)使用jieba库中的cut函数进行分词,剔除了其中为单字的词及换行符,保留剩余结果;

(3)输出分词结果。

import jieba file_name =r'C:UsersAdministratorDesktopjieba例子.txt' with open(file_name,'r') as f: content = f.read() #这里我定义了一个函数cut_word(): def cut_word(): segment=[] # 保存分词结果 segs=jieba.cut(content) # 对整体进行分词 for seg in segs: if len(seg) > 1 and seg != 'rn': # 如果说分词得到的结果不是单字,且不是换行符,则加入到数组中 segment.append(seg) return segment print(cut_word())

运行结果:

python将文本转为字典_python题库及答案解析 (https://mushiming.com/)  第4张

可以看到,“是”、“的”之类的单字被我们筛除掉了,不过其他词段均完整了进行了分割,效果还是可以的。

下面我们尝试使用全模式

全模式与精确模式的区别,在于使用了 cut_all = True 这一个参数。(其他代码内容不变)

import jieba file_name =r'C:UsersAdministratorDesktopjieba例子.txt' with open(file_name,'r') as f: content = f.read() #这里我定义了一个函数cut_word(): 

THE END

发表回复