700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python结巴分词去掉虚词_jieba中文处理 python

python结巴分词去掉虚词_jieba中文处理 python

时间:2023-12-11 14:11:27

相关推荐

python结巴分词去掉虚词_jieba中文处理 python

一、Jieba中文分词

本文使用jieba进行文本进行分词处理,它有3种模式,精确模式,全模式模式,搜索引擎模式:

· 精确模式:试图将句子最精确地切开,适合文本分析;

· 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

· 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

现以“南京市长江大桥”为例,3种分词模式的结果如下:

【全模式】: 南京 南京市 京市 市长 长江 长江大桥 大桥

【精确模式】: 南京市 长江大桥

【搜索引擎模式】: 南京 京市 南京市 长江 大桥 长江大桥

为了避免歧义和切出符合预期效果,在这里使用精确模式

1 importjieba2 all_mode=jieba.cut('南京市长江大桥',cut_all=True)3 alls=" ".join(all_mode)4 print('【全模式】:',alls)5 jingque=jieba.cut('南京市长江大桥',cut_all=False)6 jings=" ".join(jingque)7 print('【精确模式】:',jings)8 search=jieba.cut_for_search('南京市长江大桥')9 searchs=" ".join(search)10 print('【搜索引擎模式】:',searchs)

二、去停用词

去停用词一般包括三类,

标点符号

特殊符号

无意义的虚词

停用词表

链接:/s/1sBpZJMDJcbgyA81kC78PRg

提取码:b54i

复制这段内容后打开百度网盘手机App,操作更方便哦

1 importjieba2 #创建停用词列表

3 defstopwordslist():4 stopwords = [line.strip() for line in open('中文停用词库.txt',encoding='gbk').readlines()]5 returnstopwords6 #对句子进行中文分词

7 defseg_depart(sentence):8 #对文档中的每一行进行中文分词

9 print("正在分词")10 sentence_depart =jieba.cut(sentence.strip())11 #创建一个停用词列表

12 stopwords =stopwordslist()13 #输出结果为outstr

14 outstr = ''

15 #去停用词

16 for word insentence_depart:17 if word not instopwords:18 if word != '\t':19 outstr +=word20 outstr += " "

21 returnoutstr22 if __name__ == '__main__':23 #给出文档路径

24 filename = "斗破苍穹.txt"

25 outfilename = "out.txt"

26 inputs = open(filename, 'r', encoding='UTF-8')27 outputs = open(outfilename, 'w', encoding='UTF-8')28

29 #将输出结果写入ou.txt中

30 for line ininputs:31 line_seg =seg_depart(line)32 outputs.write(line_seg + '\n')33 print("-------------------正在分词和去停用词-----------")34 outputs.close()35 inputs.close()36 print("删除停用词和分词成功!!!")

三、去掉高频词,稀有词,和计算Bigrams

去掉高频词、稀有词是针对后续的主题模型(LDA、ATM)时使用的,

主要是为了排除对区隔主题意义不大的词汇,最终得到类似于停用词的效果。

Bigrams是为了自动探测出文本中的新词,基于词汇之间的共现关系---如果两个词经常一起毗邻出现,

那么这两个词可以结合成一个新词,比如“数据”、“产品经理”经常一起出现在不同的段落里,

那么,“数据_产品经理”则是二者合成出来的新词,只不过二者之间包含着下划线。

四、关键词提取

1,基于TF-IDF算法的关键词提取

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,

allowPOS=())

其中需要说明的是:

1.sentence 为待提取的文本

2.topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20

3.withWeight 为是否一并返回关键词权重值,默认值为 False

4.allowPOS 仅包括指定词性的词,默认值为空,即不筛选

1 importjieba.analyse2 #读取文件,返回一个字符串,使用utf-8编码方式读取,该文档位于此python同以及目录下

3 path='斗破苍穹.txt'

4 with open(path,'r',encoding='utf-8')as ff:5 data=ff.read()6 #返回词频最高的20个词

7 word=jieba.analyse.extract_tags(data,topK=20)8 print(' '.join(word))

参考文章:/meiqi0538/article/details/80218870#0203_245

:/p/29aa3ad63f9d

:/s?id=1587137075873716187&wfr=spider&for=pc

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。