python结巴_python结巴(jieba)分词

一、特点

1、支持三种分词模式:

(1)精确模式:试图将句子最精确的切开,适合文本分析。

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

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

2、支持繁体分词

3、支持自定义词典

二、实现

结巴分词的实现原理主要有一下三点:

(1)基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)。

(2)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合。

(3)对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。

三、应用

我们来演示一下结巴分词的主要功能

1、分词

1 #-*- coding:utf-8 -*-

2

3

4 import jieba

5

6

7

8 '''

9 cut方法有两个参数

10 1)第一个参数是我们想分词的字符串

11 2)第二个参数cut_all是用来控制是否采用全模式

12 '''

13

14 #全模式

15 word_list = jieba.cut("今天天气真好。亲爱的,我们去远足吧!",cut_all=True)

16 print "全模式:","|".join(word_list)

17 #精确模式 , 默认就是精确模式

18 word_list = jieba.cut("今天天气真好。亲爱的,我们去远足吧!",cut_all=False)

19 print "精确模式:","|".join(word_list)

20 #搜索引擎模式

21 word_list = jieba.cut_for_search("今天天气真好。亲爱的,我们去远足吧!")

22 print "搜索引擎:","|".join(word_list)

2、添加自定义词典

虽然jieba有新词识别能力,但是自己添加新词可以保证更高的正确率。

开发者可以根据自己的需要添加自定义词典,以便包含jieba词库里没有的词。

例:小红今天我们还去以前经常去的地方远足吗?要不咱们换个地方吧!园小园怎么样?没问题小豆芽

自定义词典(cu.txt):

园小园 5

小豆芽 3 nr

一个词占一行;每一行分三部分,一部分为词语,另一部分为词频,最后为词性(可省略),中间用空格隔开。

1 #-*- coding:utf-8 -*-

2 import jieba

3

4 jieba.load_userdict("./cu.txt")

5 word_list = jieba.cut("小红今天我们还去以前经常去的地方远足吗?要不咱们换个地方吧!园小园怎么样?没问题小豆芽")

6 print "|".join(word_list)

3、关键词提取

1)第一个参数(setence)为待提取的文本。

2)topK为返回几个TF/IDF权重最大的关键词,默认值为20,可以自己指定。

1 #-*- coding:utf-8 -*-

2 import jieba.analyse as al

3

4 content = open("./topk.txt","rb").read()

5 word_topk = al.extract_tags(content,topK=4)

6 print "|".join(word_topk)

4、词性标注

标注句子分词后每个词的词性,采用和ictclas兼容的标记法。

1 #-*- coding:utf-8 -*-

2 import jieba.posseg as pseg

3

4 words = pseg.cut("青岛北京是不错的地方")

5 for word in words:

6 print word.word,word.flag

运行结果:

青岛 ns

北京 ns

是 v

不错 a

的 uj

地方 n

5、并行分词(只能在linux系统上运行)

将要进行分词的文本按行分隔,把各行文本分配到多个python进程中去,然后归并结果,从而使分词速度提升。

基于python的multiprocessing模块,目前不支持windows系统。

#-*- coding:utf-8 -*-

import jieba

#开启并行分词模式,参数为参与并行分词的进程数

jieba.enable_parallel(2)

#关闭并行分词

#jieba.disable_parallel()

content = open("./topk.txt","rb")

words = jieba.cut(content)

print "|".join(words)

6、模块初始化机制的改变:lazy load (从0.28版本开始)

下载你所需要的词典,然后覆盖jieba/dict.txt或者用jieba.set_dictionary("")将其覆盖。

1 #-*- coding:utf-8 -*-

2

3 import jieba

4 jieba.set_dictionary("./dict.txt")

5 content = open("./content.txt","rb").read()

6 words = jieba.cut(content)

7 print "|".join(words)

7、Tokenize:返回词语在原文的起始位置

1)第一个参数为文本内容。

2)第二个参数mode可以不用默认模式,指定为“search”搜索引擎模式。

1 #-*- coding:utf-8 -*-

2 import jieba

3

4 result = jieba.tokenize(u'今天天气真好。亲爱的,我们去远足吧!')

5 for token in result:

6 print "word %s\t\t start: %d \t\t end:%d" % (token[0],token[1],token[2])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不同操作系统的宏定义区分

转载自 不同操作系统的宏定义区分 #ifdef _WIN32 //define something for Windows (32-bit and 64-bit, this part is common)#ifdef _WIN64 //define something for Windows (64-bit only)#else //define something for Windows (32-bit only)#endif#elif __APPLE__#include &…

three.js两个点给线条加宽度_一台电视两个房间看?衣柜、客房会隐形?这是什么神奇设计!...

今天介绍的家是一对小夫妻的新房,改造前的问题基本都是常见的槽点:进门过道细窄昏暗;厨卫小而局促;卧室和阳台被分成了4个小隔间,像群租的隔断房。1玄关利用镜面反射,空间视觉扩大一倍。进门的视角&#xf…

python画正方体_python绘制立方体的方法

本文实例为大家分享了python绘制立方体的具体代码,供大家参考,具体内容如下#!/usr/bin/env python# This is (almost) a direct C to Python transliteration of# /Examples/DataManipulation/Cxx/Cube.cxx from the VTK# source distribution, which &q…

[html] 你有使用过time标签吗?说说它的用途有哪些?

[html] 你有使用过time标签吗?说说它的用途有哪些? 首先time标签是h5的新属性,标签定义为公历的时间或日期。 好处是time约束的日期或时间的编码方式满足机器可读的要求。个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃…

论文中要用到的SPSS基础分析

大家现在都要写论文的数据分析了……很多同学都一点不会……所以把我知道的跟大家分享一下……下面以PASW18.0为例,也就是SPSS18.0…………什么?不是18.0,好吧……差不多的,凑合着看吧……要不去装个…… ……下面图片看不清的请右…

AutoMapper 9.0的改造

AutoMapper于2019.8.12升级9.0 从此不再支持静态的对象转换 自己琢磨了一下,写了一套扩展 官方链接如下 https://github.com/AutoMapper/AutoMapper/tree/v9.0.0 我做了一下方便使用的简单封装 public static class AutoMapperExtension{public static IServiceColl…

win10电脑插耳机没声音_电脑没有声音是什么原因 教您电脑突然没声音怎么解决...

在日常生活中在使用电脑中经常遇到电脑没声音的小麻烦,有时候选择重装系统也解决不了该问题,其实不必烦恼的,当出现电脑没声音的现象时,我们首先要寻找出电脑没声音是什么原因造成的。然后根据电脑没声音的原因来寻求解决办法。下…

机械动作时序图怎么画_人物动作怎么画?动漫绘画人物姿势的基本画法!

人物动作怎么画?怎样才能画好动漫人物姿势?画好动漫人物姿势有哪些技巧?想必这些问题都是绘画初学者们比较伤脑筋的问题,那么到底怎样才能画好动漫人物姿势呢?今天就在网络上收集整理了关于人物动作怎么画?…

MSSQL 2005 分页分析及优化

MSSQL 分页方式说明:目前我所知的有以下几种方式 临时表表变量in, not inSET ROWCOUNTCTEid >, id <优缺点分析: 性能最低, 可操作性差第一种方式和第二种方实际上是比较类似的.优点: 排序方式比较随意缺点:第一种方式 有大量的 IO 开销.第二种方式则会开销内存, 但当表数…

[html] 如何实现前端代码实时预览效果?

[html] 如何实现前端代码实时预览效果&#xff1f; setInterval(() > { //刷新逻辑 }, 60)个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

vCenter线上操作磁盘扩容

以下截图是生产机器&#xff0c;目前是有一块盘&#xff0c;且根分区是/dev/sda3&#xff0c;因为磁盘不足&#xff0c;需要备份的数据要远远超过此时的空间大小&#xff1b;正常情况下&#xff0c;是可以新增硬盘硬盘作为备份 但是作为宿主机下的虚机&#xff0c;因为一些不规…

邮箱无权访问 上的 jira是怎么回事_蚂蚁庄园答案2020年11月6日汇总 小鸡宝宝考考你每日答案为你呈上|蚂蚁|庄园-360GAME...

川北在线核心提示&#xff1a;原标题&#xff1a; 蚂蚁庄园答案2020年11月6日汇总 小鸡宝宝考考你每日答案为你呈上 支付宝蚂蚁庄园小课堂11月6日答案是什么呢&#xff1f;2020年11月6日支付宝蚂蚁庄园小课堂题目是健身过后什么时候吃饭更适宜&#xff1f;等等相信有不少用户都…

python web py官网_python web.py

web.py1.安装&#xff1a;wget http://webpy.org/static/web.py-0.37.tar.gztar xvfz web.py-0.37.tar.gzcd web.py-0.37sudo python setup.py install2.需求&#xff1a;先说下需求&#xff0c;http://10.75.7.237:8080/?ipaddress10.75.7.29&count100 &#xff0c;最终得…

Razor 也可说是一个asp.net模板引擎,用不着学习 T4 了

Razor 是 ASP.NET MVC 3.0 支持的一个新的视图引擎&#xff0c;但只要你愿意&#xff0c;也可以摆脱 MVC 框架&#xff0c;而把它用作普通的文本模板引擎。这样也许我们不用学习流行的 T4 了&#xff1f;参见思归的博客&#xff1a;http://www.k518.com 转载于:https://www.cnb…

[html] 请说说input的inputmode属性有什么应用场景?

[html] 请说说input的inputmode属性有什么应用场景&#xff1f; inputmode 全局属性 是一个枚举属性&#xff0c;它提供了用户在编辑元素或其内容时可能输入的数据类型的提示。它可以是以下值&#xff1a;"none" 无虚拟键盘。在应用程序或者站点需要实现自己的键盘输…

php操作kafka

php操作kafka----可以参照网上的安装步骤&#xff0c;先安装ldkafka rdkafka&#xff0c;然乎启动zookeeper和kafka服务器<?php //$conf new Rdkafka\Producer(); //$producer new RdKafka\Producer(); class kafka {public $broker_list"localhost:9092";publ…

ligergrid 奇偶行效果_怎么护发才是真的有效果的?

我之前就是喜欢烫染头发&#xff0c;还不注意保护我的头发&#xff0c;时间久了我的头发不仅干燥开叉&#xff0c;还掉的就越来越多了&#xff0c;发量也在一点点的减少&#xff01;头发出油也就算了&#xff0c;脱发我是不能忍了&#xff0c;经过一段时间的不断尝试&#xff0…

bmp怎么编辑底色_非标机械设计这个行业前景怎么样

今天就不分享技术点了&#xff0c;主要和大家谈谈非标机械设计这个行业的前景怎么样&#xff0c;非标机械设计&#xff0c;就是根据客户提供的样板或者提出的要求来订做设计的。相信还有很多人对这个词感到很陌生&#xff0c;提起来也只是大概知道它是一种什么东西&#xff0c;…

android 发短信 调到联系人

原文找不到了。看了别人的一些。自己加了一点。做一个代码备份。自己看就可以了。先上一下图吧。看看一效果。 通过上边选择联系人。把选择过的联系显示到EditView 中。而发送短信时。可以获取联系人的电话号码。 发短信的的类SendmessageActivity.java package com.hkrt.actio…

常用方法 DataTable转换为Entitys

备注&#xff1a;摘自网上 有附地址 public static List<T> DataTableToEntities<T>(this DataTable dt) where T : class, new(){if (null dt || dt.Rows.Count 0) { return null; }List<T> entities new List<T>();List<string> columnName…