jieba

python结巴分词

淺唱寂寞╮ 提交于 2019-12-17 08:34:57
转载: http://www.cnblogs.com/jiayongji/p/7119065.html 结巴是一个功能强大的分词库。 安装jieba pip install jieba 简单用法 结巴分词分为三种模式:精确模式(默认)、全模式和搜索引擎模式,下面对这三种模式分别举例介绍: 精确模式 import jieba s = u'我想和女朋友一起去北京故宫博物院参观和闲逛。' cut = jieba.cut(s) print '【Output】' print cut print ','.join(cut) 【Output】 <generator object cut at 0x7f8dbc0efc30> 我,想,和,女朋友,一起,去,北京故宫博物院,参观,和,闲逛,。 可见分词结果返回的是一个生成器(这对大数据量数据的分词尤为重要)。 全模式 print '【Output】' print ','.join(jieba.cut(s,cut_all = True)) 【Output】 我,想,和,女朋友,朋友,一起,去,北京,北京故宫,北京故宫博物院,故宫,故宫博物院,博物,博物院,参观,和,闲逛,, 可见全模式就是把文本分成尽可能多的词。 搜索引擎模式 print '【Output】' print ','.join(jieba.cut_for_search(s))

Python中文分词之Jieba

时间秒杀一切 提交于 2019-12-13 07:56:38
1、分词方法 jieba.cut() # 返回对象 generator,可迭代 jieba.cut_for_search() # 返回对象 generator,可迭代 jieba.lcut() # 返回 list jieba.lcut_for_search() # 返回 list '/'.join() # 将 cut() 结果用指定符号拼接 2、方法调用(一) jieba.cut(s, cut_all, HMM) 和 jieba.lcut(s, cut_all, HMM) ,接受三个参数 s:要分词的字符串(unicode、UTF-8、GBK) cut_all:是否使用全模式,默认False HMM:是否使用HMM模型(隐马可夫模型,新词识别),默认True 示例1(cut_all): example1 = jieba.cut('下午去西安交大打球') # 下午/去/西安交大/打球 (generator) example2 = jieba.cut('下午去西安交大打球', cut_all=True) # 下午/去/西安/西安交大/交大/打球 example3 = jieba.lcut('下午去西安交大打球') # ['下午', '去', '西安交大', '打球'](list) 示例2(HMM): example1 = jieba.cut('下午去西大打球', HMM=True) #

python词云图与中文分词

谁都会走 提交于 2019-12-12 22:39:24
2019-12-12中文文本分词和词云图具体功能介绍与学习代码: import jiebaa="由于中文文本的单词不是通过空格或者标点符号来进行分割"#jieba.lcut()s是最常用的中文分词函数,用于精准模式,即将字符串分割为等量的中文词组,返回结果是列表类型print(jieba.lcut(a))#jieba.lcut(s,cut_all=True):用于全模式,即将字符串所有分词可能均列出来,返回结果是列表类型,冗余性较大,速度很快,但是不能解决歧义的问题print(jieba.lcut(a,cut_all=True))#jieba.lcut_for_search函数主要是返回搜索引擎模式,该模式首先精准执行精确模式,然后再对其中的长词进行进一步的切片获得最终结果print(jieba.lcut_for_search(a))#jieba.add_word()函数主要用来增加jieba库中的内容新的单词jieba.add_word("燕江依")#词云图的绘制import wordcloudimport jieba#英文的词云图生成比较简单,直接可以使用Wordcloud。generate()函数来进行,因为它是按照空格或者标点符号来进行划分t="i like Python,i am studying python"wd=wordcloud.WordCloud()

使用Python分析《我不是药神》豆瓣电影短评

[亡魂溺海] 提交于 2019-12-12 20:16:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 小爬怡情,中爬伤身,强爬灰灰。爬虫有风险,使用请谨慎,可能是这两天爬豆瓣电影爬多了,今天早上登录的时候提示号被封了(我用自己帐号爬的,是找死呢还是在找死呢 ...),好在后面发完短信后又解封了,^_^。 之前的文章中,已把电影短评数据装进了Mongo中,今天把数据取出来简单分析一下,当下最火的做法是进行词频统计并生成词云,今天说的就是这个。 读取Mongo中的短评数据,进行中文分词 不知道什么原因,我实际爬下来的短评数据只有1000条(不多不少,刚刚好),我总觉得有什么不对,但我重复爬了几次后,确实只有这么多。可能是我爬虫写的有什么不对吧,文末附源码链接,有兴趣的去看看, 欢迎拍砖(轻拍)。 import pymongo import jieba from jieba import analyse # https://pypi.org/project/pymongo/ # http://github.com/mongodb/mongo-python-driver from matplotlib import pyplot from wordcloud import WordCloud text = None with pymongo.MongoClient(host='192.168.0.105', port

jieba 中文分词介绍及使用

拜拜、爱过 提交于 2019-12-12 14:27:57
目录 基本介绍 功能及使用 1. 分词 2. 添加自定义词典 2.1 载入词典 2.2 调整词典 3. 关键词提取 3.1 基于 TF-IDF 算法的关键词抽取 3.2 基于 TextRank 算法的关键词抽取 4. 词性标注 5. 并行分词 6. kenize:返回词语在原文的起止位置 基本介绍 支持 3 种分词模式 1)精确模式:将句子最精确的分开,适合文本分析; 2)全模式:句子中所有可以成词的词语都扫描出来,速度快,不能解决歧义; 3)搜索引擎模式:在精确的基础上,对长词再次切分,提高召回; ​​​​ 支持繁体分词 支持自定义词典 功能及使用 1. 分词 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

python使用jieba实现中文文档分词和去停用词

隐身守侯 提交于 2019-12-10 05:43:11
分词工具的选择:   现在对于中文分词,分词工具有很多种,比如说:jieba分词、thulac、SnowNLP等。在这篇文档中,笔者使用的jieba分词,并且基于python3环境,选择jieba分词的理由是其比较简单易学,容易上手,并且分词效果还很不错。 分词前的准备: 待分词的中文文档 存放分词之后的结果文档 中文停用词文档(用于去停用词,在网上可以找到很多) 分词之后的结果呈现: 图1 去停用词和分词前的中文文档 图2去停用词和分词之后的结果文档 分词和去停用词代码实现: 来源: oschina 链接: https://my.oschina.net/u/3793864/blog/3063661

[python] jieba 模块 -- 给中文文本分词

我是研究僧i 提交于 2019-12-10 05:27:38
在文本处理时,英文文本的分词一直比中文文本要好处理许多。因为英文文本只需要通过空格就可以分割,而中文的词语往往就很难从句子中分离出来。这种时候我们往往需要一个“词典”来实现分词,而寻找“词典”又是件非常麻烦的事。 不过, python 强大的第三方模块中早有了解决方案。在 PyPI 上面搜索“中文分词”,第一个出现的就是 jieba 模块。其实 jieba 模块的官方文档已经足够详细了,所以这里就对其进行一定的精简,只介绍几个常用的函数。 1. 使用 pip 安装 jieba 模块 在第一次使用时,我们需要先使用 pip 指令安装 jieba 这个第三方模块: pip install jieba 2. lcut() -- 最常用的分割模式 lcut() 这个函数只有简单的两个参数: lcut(s, cut_all=False) ,而它在切分后会返回一个字符串。其中 s 是传入的中文字符串,而 cut_all 这个参数默认为 False ,默认为“精确模式”,而如果设置为 True ,就是“全模式”。那么这两个模式有什么区别呢?我们可以查看下官方文档中的示例: import jieba seg_list = jieba.lcut("我来到北京清华大学", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式

结巴分词安装

依然范特西╮ 提交于 2019-12-06 21:36:15
结巴分词是 Python 语言中效果最好的分词工具,其功能包括:分词、词性标注、关键词抽取、支持用户词表等。 官网地址: https://github.com/fxsjy/jieba 1、安装。 按照官网上的说法,有三种安装方式, 第一种是全自动安装: easy_install jieba 或者 pip install jieba ,推荐用第一种。 第二种方法是半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后在cmd命令行中运行 python setup.py install。 第三种方法是手动安装:将jieba目录放置于当前目录或者site-packages目录。把下载到的jieba-0.30.zip解压后,里面有个jibba的文件夹,把它复制到与你的Python程序相同的位置,这样在程序中就可以执行“import jieba”了。 2、关于分词的实现 官网提供了分词的基本用法示例 : #encoding=utf-8 import jieba seg_list = jieba.cut("我来到北京清华大学", cut_all=True) print "Full Mode:", "/ ".join(seg_list) # 全模式 seg_list = jieba.cut("我来到北京清华大学", cut_all=False)

NLP系列1:NER

淺唱寂寞╮ 提交于 2019-12-06 16:28:01
写在前面:在初学nlp时的第一个任务——NER,尝试了几种方法,cnn+crf、lstm+crf、bert+lstm+crf,毫无疑问,最后结果时Bert下效果最好。 1、关于NER:   NER即命名实体识别是信息提取的一个子任务,但究其本质就是序列标注任务。   eg:   sentence:壹   叁  去 参加一个 NER 交 流 会   tag:   B_PER I_PER O O O O O B_ORG I_ORG I_ORG I_ORG   (咱们暂且认为这个实体标记是正确的)   按照CoNLL2003任务中,LOC-地名 、PER-人名、ORG-机构名、MISC-其他实体,其他此被标记为O,B代表实体名的开始位置,I代表实体名的中间位置。 (在具体任务中标记不一,按照自己的任务中进行标记即可)   NER是一个基础问题,不会不行,但是也是一个非常重要的问题,下面将按照实现过程中碰到的问题依次进行阐述(小白,如有错误,请疯狂留言喷我,一定改正)。 首先的明白NER是一个分类任务,也叫序列标注,其实就是对文本的不同实体标记上对应的标签。 方法主要如下: 基于规则:按照语义学的先验定义规则,由于语言的复杂性,这个方法很难制定出良好的规则; 基于统计学:统计学就是根据大量文本,在其中找到规律,代表作有HMM、CRF; 神经网络:神经网络的大放异彩在各个领域都点亮了一片天空

文本分析--simhash算法进行文本相似度判断

百般思念 提交于 2019-12-06 14:04:49
simhash算法分析: 文本相似度算法: 1、TF-IDF:TF(词频),IDF(逆词频) 利用tf-idf得到一个词语的权重,来计算一篇文章的关键词 2、simhash:局部敏感hash 局部敏感:A、B具有一定相似性,在hash后,仍然保持相似性。 通过将关键词集合hash成一串二进制,直接对比二进制数,来看其相似性得到两篇文档的相似性,查看相似性的时候采用海明距离(二进制数之间计算)。 对文章simhash得到一串64位二进制,一般取海明距离为3作为阈值,也就是在64位二进制中,只要有三位不同,就认为两个文档是相似的。(把一篇文章用一个二进制来表示) 3、步骤 (1)分词,取tfidf权重前20的词集合 (2)对这些词进行hash,得到64位二进制,得到20个长度为64的二进制集合 (3)hash位为1,则用正权重代替;hash位为0,则用负权值代替;得到20个长度为64的列表[weight, -weight, weight,…,weight] (4)对20个列表进行列向累加,得到一个列表,也就是对一个文档而言,得到一个长度为64的列表。 (5)对这个列表进行判断,正值取1,负值取0. 如[-7,1,-9,9,3,7] 得到 010111,这就是一篇文档的simhash值。 (6)计算相似度,两个simhash进行异或运算(海明距离),异或结果,1的个数超过3不相似