赞
踩
英文文本中,各个单词间本来就有空格将它们隔开,而在中文文本里面,词语和词语之间是相连的,不能通过简单的以空格来切片文章(通过str.split(" ")
方法),因此就需要用到jieba库。
1.jieba分词依靠中文词库。利用一个中文词库,确定中文字符之间的关联概率。当然我还也可以自定义地向词库中添加内容(如果是近几年刚开始出现的名词比如大数据,云计算这些就需要自己添加)或者删除内容(自定义停用词库,所谓停用词库就是不允许划分出的词语例如把人名当做一个词语…)等等。
2.jieba库的3种分词模式以及方法
—精确模式:把文本精确地切分开,不存在冗余单词(重复单词)。
lt1=jieba.lcut(s)#精确模式
—全模式:把文中所有可能的词语都扫描出来,存在冗余。
lt2=jieba.lcut(s,cut_all=True)#全模式
—搜索引擎模式:在精确模式的基础上,对长词再次切分。
lt3=jieba.lcut_for_search(s)#搜索引擎模式
三种方法中的s表示字符串,lt1,lt2,lt3是它们的返回值,是列表类型。
1.向词库中添加自定义词语:jieba.add_word(w)
jieba.add_word("大数据")
2.添加自定义词库(字典):jieba.load_userdict(f)
jieba.load_userdict('./addword.txt')
f为文件路径,可以使用绝对路径和相对路径两种:
在文件中词语的格式是一行:词语 词频 词性(词频和词性可以省略)
绝对路径:jieba.load_userdict('E:\\Python Project\\Crouse\\03.25-experiment1\\addword')
(用\来连接各路径)
或者jieba.load_userdict(r'E:\Python Project\Crouse\03.25-experiment1\addword')
(在正常的绝对路径前面加上r)
或者jieba.load_userdict('E:/Python Project/Crouse/03.25-experiment1/addword')
(用反单斜杠来连接各路径)
相对路径:jieba.load_userdict('./addword.txt')
(./表示当前文件所在目录,可以省略;…/表示文件所在目录的上一级目录)
3.添加停用词库
分词中有时会有一些频率非常高的无效词语出现,影响词频结果,可使用停用词表。
操作步骤:
—下载或创建停用词表
—停用词表的分词结果存入列表中
—在统计分词词频的过程中,判断时是否在停用词表中,再使用get()方法累加
从外部文件读取停用词表的代码如下:
stopwords=[line.strip() for line in open(f,'r',encoding='utf-8').readlines()]
f表示停用词表的文件路径,r表示以read读的方式来获取文件信息,stopwords的类型是列表,上式属于列表推导式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。