ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python jieba -----中文分词库

2021-05-24 17:30:33  阅读:249  来源: 互联网

标签:jieba word python 词语 词库 line txt 分词


一、jieba库基本介绍

(1)、jieba库概述

     jieba是优秀的中文分词第三方库

     - 中文文本需要通过分词获得单个的词语
     - jieba是优秀的中文分词第三方库,需要额外安装

     - jieba库提供三种分词模式,最简单只需掌握一个函数

(2)、jieba分词的原理

     Jieba分词依靠中文词库

     - 利用一个中文词库,确定汉字之间的关联概率
     - 汉字间概率大的组成词组,形成分词结果

     - 除了分词,用户还可以添加自定义的词组

二、jieba库使用说明

(1)、jieba分词的三种模式

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

     - 精确模式:把文本精确的切分开,不存在冗余单词
     - 全模式:把文本中所有可能的词语都扫描出来,有冗余

     - 搜索引擎模式:在精确模式基础上,对长词再次切分

(2)、jieba库常用函数
在这里插入图片描述

三、jieba应用实例在这里插入图片描述

四、利用jieba库统计三国演义中任务的出场次数

import  jieba

txt = open("D:\\三国演义.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)     # 使用精确模式对文本进行分词
counts = {}     # 通过键值对的形式存储词语及其出现的次数

for word in words:
    if  len(word) == 1:    # 单个词语不计算在内
        continue
    else:
        counts[word] = counts.get(word, 0) + 1    # 遍历所有词语,每出现一次其对应的值加 1
        
items = list(counts.items())#将键值对转换成列表
items.sort(key=lambda x: x[1], reverse=True)    # 根据词语出现的次数进行从大到小排序

for i in range(15):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

在这里插入图片描述

统计了次数对多前十五个名词,曹操不愧是一代枭雄,第一名当之无愧,但是我们会发现得到的数据还是需要进一步处理,比如一些无用的词语,一些重复意思的词语。

五、去停用词的jieba分词
停用词表:https://github.com/goto456/stopwords

import jieba

# 创建停用词列表
def stopwordslist():
    stopwords = [line.strip() for line in open('stop_words.txt', encoding='UTF-8').readlines()]
    return stopwords


# 对句子进行中文分词
def seg_depart(sentence):
    # 对文档中的每一行进行中文分词
    print("正在分词")
    sentence_depart = jieba.cut(sentence.strip())
    # 创建一个停用词列表
    stopwords = stopwordslist()
    # 输出结果为outstr
    outstr = ''
    # 去停用词
    for word in sentence_depart:
        if word not in stopwords:
            if word != '\t':
                outstr += word
                outstr += " "
    return outstr

# 给出文档路径
filename = "Init.txt"
outfilename = "out.txt"
inputs = open(filename, 'rb')
outputs = open(outfilename, 'w')

# 将输出结果写入ou.txt中
for line in inputs:
    line_seg = seg_depart(line)
    outputs.write(line_seg + '\n')
    print("-------------------正在分词和去停用词-----------")
outputs.close()
inputs.close()
print("删除停用词和分词成功!!!")

转载自:作者:王陸
出处:https://www.cnblogs.com/wkfvawl/

标签:jieba,word,python,词语,词库,line,txt,分词
来源: https://blog.csdn.net/wyyang2/article/details/117227685

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有