jieba分词处理
分词是一种数学上的应用,他可以直接根据词语之间的数学关系进行文字或者单词的抽象,比如,讲一句话“我来自地球上中国”进行单词分割,我们可能会得到如下的内容:“我”、“来自”、“地球上”、“中国”,这些就相当于是分词的概念,在我们搜索引擎开发的过程中,是必须要要使用到分词的概念的。
jieba简介
jieba是一个在中文自然语言处理过程中使用最多的工具包之一,目前能够实现包括分词、词性标注以及命名实体识别等多种功能,一般的,jieba为我们提供了以下三种分词模式:
· 精确模式:将句子进行最精确的切分,分词速度相对较低,但是分词准确。
· 全模式:基于此会列表,能够将所有的可以分词的词语都扫描出来,分词速度非常快,凡是不能解决歧义性。
· 搜索引擎模式:在精确模式的基础上,对长词进行在切分,适合在搜索引擎中进行监理索引进行的分词。
常用的方法有:
· `jieba.cut` 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
· `jieba.cut_for_search` 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
· 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
· `jieba.cut` 以及 `jieba.cut_for_search` 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用 `jieba.lcut` 以及 `jieba.lcut_for_search` 直接返回 list
· `jieba.Tokenizer(dictionary=DEFAULT_DICT)` 新建自定义分词器,可用于同时使用不同词典。`jieba.dt` 为默认分词器,所有全局分词相关函数都是该分词器的映射。
1 '''
2 @Description: jieba分词练习
3 @Version: 1.0
4 @Autor: Montoin Yan
5 @Date: 2020-02-09 20:46:28
6 @LastEditors : Montoin Yan
7 @LastEditTime : 2020-02-09 20:55:40
8 '''
9 # encoding=utf-8
10 import jieba
11
12 result_list = jieba.cut("我是中国青年团团员", cut_all=True)
13 print("全模式: " + ",".join(result_list)) # 全模式
14
15 result_list = jieba.cut("我是中国青年团团员")
16 print("精准模式: " + ", ".join(result_list)) # 精确模式
17
18 result_list = jieba.cut_for_search("我是一个学生,我热爱编程,并且我想成为一个好的IT工作者") # 搜索引擎模式
19 print("搜索引擎模式:" + ", ".join(result_list))
结果如下所示:

jieba安装
可以通过镜像网站进行安装:
win+r打开cmd,使用 pip install jieba -i https://pypi.douban.com/simple/ 进行安装,如果显示连接超时,则在编译器终端进行下载即可。
jieba实例
下面这个例子进行了jeiba分词完整的分词操作
1 '''
2 @Description: jieba分词处理
3 @Version: 1.0
4 @Autor: Montoin Yan
5 @Date: 2020-02-09 19:26:13
6 @LastEditors : Montoin Yan
7 @LastEditTime : 2020-02-09 20:21:44
8 '''
9
10 import os,jieba
11
12 PATH = "jieba_demo/文章.txt" #定义读取路径
13
14 def main():
15 results = {} #保存最终的读取结果,以字典形式进行存储
16 with open(file=PATH,mode="r",encoding="UTF-8") as file:
17 data = file.readline() #按照单行进行文件读取
18 # print(data)
19 while data: #如果读到数据
20 words = jieba.cut(data,cut_all=False) #对数据进行分词,不采用全模式,进行精确分词
21 for word in words:
22 if len(word) == 1:
23 continue
24 else:
25 results[word] = results.get(word,0) + 1 #将多有读取到的词放到字典中,如果没有,默认值为0
26 data = file.readline() #继续读取
27 items = list(results.items()) #取出全部的内容
28 items.sort(key=lambda x: x[1],reverse=True) #降序排列
29 # print(items)
30 for i in items:
31 print("%s:%s" % (i[0],i[1]))
32
33
34 if __name__ == "__main__":
35 main()
分词结果如下:

jieba分词处理的更多相关文章
- widows下jieba分词的安装
在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba
- 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法
错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...
- Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...
- python结巴(jieba)分词
python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...
- pypinyin, jieba分词与Gensim
一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...
- 使用pynlpir增强jieba分词的准确度
在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...
- 自然语言处理之jieba分词
在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...
- jieba分词(3)
jieba分词中Tokenize的使用,Tokenize主要是用来返回词语在原文的弃之位置,下面贴上代码: #-*- coding:utf-8 -*- from __future__ import u ...
- jieba分词(2)
结巴分词系统中实现了两种关键词抽取法,一种是TF-IDF关键词抽取算法另一种是TextRank关键词抽取算法,它们都是无监督的算法. 以下是两种算法的使用: #-*- coding:utf-8 -*- ...
- jieba分词(1)
近几天在做自然语言处理,看了一篇论文:面向知识库的中文自然语言问句的语义理解,里面提到了中文的分词,大家都知道对于英文的分词,NLTK有很好的支持,但是NLTK对于中文的分词并不是很好(其实也没有怎么 ...
随机推荐
- XGBoost原理介绍
XGBoost原理介绍 1. 什么是XGBoost XGBoost是一个开源机器学习项目,实现了GBDT算法,进行了算法和工程上的许多改进,广泛应用在Kaggle竞赛及许多机器学习竞赛中. 说到XGB ...
- VGG16迁移学习实现
VGG16迁移学习实现 本文讨论迁移学习,它是一个非常强大的深度学习技术,在不同领域有很多应用.动机很简单,可以打个比方来解释.假设想学习一种新的语言,比如西班牙语,那么从已经掌握的另一种语言(比如英 ...
- GVS案例分享|乘新时代姑苏舫号,体验匠心智能控制
水,是苏州的灵魂,串起苏州的古与今.动与静.金鸡湖景区位于苏州工业园区,总面积11.5平方公里,其中水域面积7.4平方公里. 新时代姑苏舫号,是金鸡湖景区极具苏式特征且规格超高的游览船型.船体分为上下 ...
- robotframework常用关键字
robotframework关键字 可以将关键字看作是处理数据的方法.robotframework的关键字和测试数据组成了测试用例. robotframework关键字包括系统关键字和用户关键字.用户 ...
- 【VBA】返回指定范围内的随机整数
返回指定范围内的随机整数: Sub main() Randomize Debug.Print 随机整数(1, 2) End Sub Function 随机整数(a As Integer, b As I ...
- 既然有 HTTP 请求,为什么还要用 RPC 调用?
首先,实名赞扬题主的问题.这个问题非常好. 其次,实名反对各个上来就讲RPC好而HTTP不好的答案.因为,题主的观点非常对. HTTP协议,以其中的Restful规范为代表,其优势很大.它可读性好,且 ...
- Windows内核开发-Windows内部概述-1-
Windows内部概述-1- 进程: 进程是一个程序的运行实例的控制和管理对象.一般的程序员所说进程运行,这样的说法是不对的,因为进程不能运行程序,进程只能管理该程序运行.线程才是真正的执行代码的东西 ...
- QTreeView 使用 QStandardItemModel
QTreeView 使用 QStandardItemModel @ 目录 QTreeView 使用 QStandardItemModel 前言 一.直接上图 二.添加同级结点项 1.思路 2.实现 二 ...
- C#调用JAVA(二)调用方法
上期我们创建了jar包并放到了unity中,那么我们继续 如果您还没有看上一期请先看上一期,这是链接 C#调用JAVA(一)制作jar包 - 执著GodShadow - 博客园 (cnblogs.co ...
- 创建Cloudflare CDN
背景说明: XX全球版项目CDN, 原有改之前:主CDN为Akamai,备CDN为Cloudflare. 计划改之后:主CDN为Cloudflare,备CDN为Akamai. 原因:Akamai CD ...