分词是一种数学上的应用,他可以直接根据词语之间的数学关系进行文字或者单词的抽象,比如,讲一句话“我来自地球上中国”进行单词分割,我们可能会得到如下的内容:“我”、“来自”、“地球上”、“中国”,这些就相当于是分词的概念,在我们搜索引擎开发的过程中,是必须要要使用到分词的概念的。


 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分词处理的更多相关文章

  1. widows下jieba分词的安装

    在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba

  2. 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法

    错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...

  3. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  4. python结巴(jieba)分词

    python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...

  5. pypinyin, jieba分词与Gensim

    一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...

  6. 使用pynlpir增强jieba分词的准确度

    在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...

  7. 自然语言处理之jieba分词

    在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...

  8. jieba分词(3)

    jieba分词中Tokenize的使用,Tokenize主要是用来返回词语在原文的弃之位置,下面贴上代码: #-*- coding:utf-8 -*- from __future__ import u ...

  9. jieba分词(2)

    结巴分词系统中实现了两种关键词抽取法,一种是TF-IDF关键词抽取算法另一种是TextRank关键词抽取算法,它们都是无监督的算法. 以下是两种算法的使用: #-*- coding:utf-8 -*- ...

  10. jieba分词(1)

    近几天在做自然语言处理,看了一篇论文:面向知识库的中文自然语言问句的语义理解,里面提到了中文的分词,大家都知道对于英文的分词,NLTK有很好的支持,但是NLTK对于中文的分词并不是很好(其实也没有怎么 ...

随机推荐

  1. TVM交叉编译和远程RPC

    TVM交叉编译和远程RPC 本文介绍了TVM中使用RPC的交叉编译和远程设备执行. 使用交叉编译和RPC,可以在本地计算机上编译程序,然后在远程设备上运行它.当远程设备资源受到限制时(如Raspber ...

  2. NVIDIA DeepStream 5.0构建智能视频分析应用程序

    NVIDIA DeepStream 5.0构建智能视频分析应用程序 无论是要平衡产品分配和优化流量的仓库,工厂流水线检查还是医院管理,要确保员工和护理人员在照顾病人的同时使用个人保护设备(PPE),就 ...

  3. MindSpore整体架构介绍

    MindSpore整体架构介绍 MindSpore框架架构总体分为MindSpore前端表示层.MindSpore计算图引擎和MindSpore后端运行时三层. MindSpore前端表示层(Mind ...

  4. redis分布式锁扣减库存弊端: 吞吐量低, 解决方法:使用 分段锁 分布式分段锁并发扣减库存--代码实现

    package tech.codestory.zookeeper.aalvcai.ConcurrentHashMapLock; import lombok.AllArgsConstructor; im ...

  5. 错误档案2:MySQL8.0连接C3P0的问题

    >>>跳过BB,空降正文<<< 目录 前言 问题出现 解决方法 结论 前言 大家好呀,我是 白墨,一个热爱学习与划水的矛盾体. 前两天在使用C3P0连接池时遇到问题 ...

  6. frp实现NAS外网访问

    开始 入手了NAS之后就看是漫漫的折腾内网穿透的不归路.用的最多最简单的是下面三种 QC:群晖自带的,速度在100kb左右,能不能连上有时候都是运气,极其不稳定. DDNS:最推荐的方式.上下行都取决 ...

  7. 再有人问你HashMap,把这篇文章甩给他

    搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文 ...

  8. 「csp-s模拟测试(9.18)」Set·Read·Race

    昨天考试考得有点迷??? 一看内存限制,T1 64MB T2 16MB 当场懵比......... T1 set 考场打的背包问题和随机化,其实能randA掉,但不小心数组开小了????(长记性!!! ...

  9. NOIP模拟测试16「Drink·blue·weed」

    话说这次考试 Drink 非常棒的一道卡常练习题,适合练习卡常 真的很棒 前置卡常知识 1.char要比int快 char是最快的 输出putchar,输入getchar 在这个题快了7000豪 2. ...

  10. webapi发布在iis之后报错Http 403.14 error

    服务器是 Windows Server 2008 R2 Enterprise 网上找了很多说是修改webconfig.试过之后没有效果,另外报错了. 最后才找到是因为webapi发布时选择的应用程序的 ...