jieba中文分词
jieba中文分词¶
中文与拉丁语言不同,不是以空格分开每个有意义的词,在我们处理自然语言处理的时候,大部分情况下,词汇是对句子和文章的理解基础。因此需要一个工具去把完整的中文分解成词。
jieba是一个分词起家的中文工具。
基本分词函数与用法¶
安装:pip install jieba(全自动安装方式成功,其他安装方式未尝试)
函数:
jieba.cut()三个参数
:需要分词的字符串
:cut_all参数用来控制是否采用全模式,默认是精确模式
:HMM参数用来控制是否使用HMM模型
jieba.cut_for_search()两个参数
:需要分词的字符串
:是否使用HMM模型
都返回一个可迭代的generator,可用for循环来遍历
import jieba #全模式
jieba_list = jieba.cut("自然语言学习使我快乐",cut_all = True)
print(jieba_list)
print("Full Mode: " + "/".join(jieba_list))
#精确模式
jieba_list = jieba.cut("自然语言学习使我快乐",cut_all = False)
print("Default Mode: " + "/".join(jieba_list)) jieba_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")
print(",".join(jieba_list))
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\12502\AppData\Local\Temp\jieba.cache
<generator object Tokenizer.cut at 0x0000023A5F7A73B8>
Loading model cost 1.282 seconds.
Prefix dict has been built succesfully.
Full Mode: 自然/自然语言/语言/语言学/学习/使/我/快乐
Default Mode: 自然语言/学习/使/我/快乐
小明,硕士,毕业,于,中国,科学,学院,科学院,中国科学院,计算,计算所,,,后,在,哈佛,大学,哈佛大学,深造
result_lcut = jieba.lcut("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")
print(result_lcut)
#精确模式
print(" ".join(result_lcut))
#全模式
print(" ".join(jieba.lcut_for_search("小明硕士毕业于中国科学院计算所,后在哈佛大学深造")))
['小明', '硕士', '毕业', '于', '中国科学院', '计算所', ',', '后', '在', '哈佛大学', '深造']
小明 硕士 毕业 于 中国科学院 计算所 , 后 在 哈佛大学 深造
小明 硕士 毕业 于 中国 科学 学院 科学院 中国科学院 计算 计算所 , 后 在 哈佛 大学 哈佛大学 深造
添加用户自定义词典¶
很多时候我们需要针对特殊场景进行分词,会有一些领域内的专有词汇。
1.可以用jieba.load_userdict(file_name)加载用户字典
2.少量的词汇可以手动添加
用add_word(word,freq = None,tag = None)和del_word(word)在程序中动态修改词典;
用suggest_freq(segment,tune = True)可调节单个词语的词频,使其能或不能被分出来。
print('/'.join(jieba.cut('安妮我不能失去你。',HMM = False)))
安妮/我/不能/失去/你/。
jieba.suggest_freq(('不','能'),True)
558
print('/'.join(jieba.cut('安妮我不能失去你。',HMM=False)))
安妮/我/不/能/失去/你/。
关键词提取¶
基于TF-IDF算法的关键词抽取¶
import jieba.analyse
jieba.analyse.extract_tags(sentence,topK = 20,withWeight = False,allowPOS=())
sentence:为待提取的文本
topK:为返回几个TF/IDF权重最大的关键词,默认值为20
withWeight:为是否一并返回关键词权重值,默认为FALSE
allowPOS:仅包括指定词性的词,默认为空
import jieba.analyse as analyse
lines = open('校园女神.txt','rb').read()
print(" ".join(analyse.extract_tags(lines,topK=20,withWeight=False,allowPOS=())))
李子 花样滑冰 短道 女神 2016 吉林大学 滑冰 陪伴 锦标赛 夺得 体育 非常 心态 成绩 速滑队 阳光 赵宏博 学院 读研 如仙
lines = open('西游记.txt','rb').read()
print(' '.join(analyse.extract_tags(lines,topK = ,withWeight = False,allowPOS=())))
行者 八戒 师父 三藏 唐僧 大圣 沙僧 妖精 菩萨 和尚 那怪 那里 长老 呆子 徒弟 怎么 不知 老孙 国王 一个
基于TextRank算法的关键词抽取¶
jieba.anlayse.textrank(sentence,topK = 20,withWight = False,allowPOS = ('ns','n','vn','v'))直接使用,接口相同,注意默认过滤词性。
import jieba.analyse as analyse
lines = open('校园女神.txt',"rb").read()
print(" ".join(analyse.textrank(lines,topK=20,withWeight=False,allowPOS=('n','ns','vn','v'))))
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(" ".join(analyse.textrank(lines,topK=20,withWeight=False,allowPOS=('n','ns'))))
花样滑冰 中国 女神 花滑 夺得 学院 陪伴 作为 称号 活出 女儿 天赋 锦标赛 世界 拥有 运动健将 物和人 考到 感谢 体育
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
花样滑冰 花滑 称号 女神 中国 锦标赛 世界 学院 研究生 硕士 陪伴 人生 学业 心态 物和人 体坛 内心 傲人 运动健将 身体
词性标注¶
jieba.posseg.POSTokenizer(tokenizer=None)新建自定义分词器,tokenizer参数可指定内部使用jieba.Tokenizer分词器。
jieba.posseg.dt为默认磁性标注分词器。 标注句子分词后每个词的词性,采用和ictclas兼容的标记法
import jieba.posseg as pseg
words = pseg.cut("一眼望不到边")
for word,flag in words:
print('%s%s'%(word,flag))
一眼 m
望 v
不到 v
边 d
Tokenize:返回词语在原文的起止位置¶
###输入参数只接受Unicode###
print("默认模式的tokenize")
result = jieba.tokenize(u'自然语言处理非常有用')
for tk in result:
print('%s\t\t start:%d\t\t end:%d'%(tk[],tk[],tk[]))
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print("搜索模式的tokenize")
result = jieba.tokenize(u'自然语言处理非常有用',mode='search')
for tk in result:
print('%s\t\t start:%d\t\t end:%d'%(tk[],tk[],tk[]))
默认模式的tokenize
自然语言 start:0 end:4
处理 start:4 end:6
非常 start:6 end:8
有用 start:8 end:10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
搜索模式的tokenize
自然 start:0 end:2
语言 start:2 end:4
自然语言 start:0 end:4
处理 start:4 end:6
非常 start:6 end:8
有用 start:8 end:10
jieba中文分词的更多相关文章
- python安装Jieba中文分词组件并测试
python安装Jieba中文分词组件 1.下载http://pypi.python.org/pypi/jieba/ 2.解压到解压到python目录下: 3.“win+R”进入cmd:依次输入如下代 ...
- jieba中文分词的.NET版本:jieba.NET
简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以 ...
- jieba中文分词(python)
问题小结 1.安装 需要用到python,根据python2.7选择适当的安装包.先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py ...
- .net 的一个分词系统(jieba中文分词的.NET版本:jieba.NET)
简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以 ...
- Python分词模块推荐:jieba中文分词
一.结巴中文分词采用的算法 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合对于未登录词,采 ...
- NLP自然语言处理 jieba中文分词,关键词提取,词性标注,并行分词,起止位置,文本挖掘,NLP WordEmbedding的概念和实现
1. NLP 走近自然语言处理 概念 Natural Language Processing/Understanding,自然语言处理/理解 日常对话.办公写作.上网浏览 希望机器能像人一样去理解,以 ...
- (转)jieba中文分词的.NET版本:jieba.NET
简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以 ...
- 《机学一》特征工程1 ——文本处理:sklearn抽取、jieba中文分词、TF和IDF抽取
零.机器学习整个实现过程: 一.机器学习数据组成 特征值: 目标值: 二.特征工程和文本特征提取 1.概要: 1.特征工程是什么 2.特征工程的意义:直接影响预测结果 3.scikit-learn库 ...
- Python大数据:jieba 中文分词,词频统计
# -*- coding: UTF-8 -*- import sys import numpy as np import pandas as pd import jieba import jieba. ...
随机推荐
- stringify()和parse()的区别
记录一下小知识点,大神略过... 一:JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"name":"go ...
- Apple Tree POJ - 2486 (树形dp)
题目链接: D - 树形dp POJ - 2486 题目大意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走V步,最多能遍历到的权值 学习网址:https://blog.c ...
- redis 分布式锁流程图
- PMI-ACP练习题知识积累-打印版
敏捷铁三角的参数:价值,质量,约束.传统的铁三角包括的参数是范围,进度和成本 敏捷计划的三个主要层级为:发布计划,迭代计划,每日计划 敏捷开发模型的特征包括 开发由多个迭代组成. 敏捷拥抱不确定性,而 ...
- Django ---- 框架简介
MVC框架和MTV框架 mvc,全名是 Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Cont ...
- Linux Shell下”>/dev/null 2>&1“相关知识说明
0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 & == ...
- python正则表达式--分组、后向引用、前(后)向断言
无名.有名分组 (1)正则表达式—无名分组 从正则表 达式的左边开始看,看到的第一个左括号“(”表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全局分组(就是索引号为 ...
- js replace替换字符串,同时替换多个方法
在实际开发中,经常会遇到替换字符串的情况,但是大多数情况都是用replace替换一种字符串,本文介绍了如何使用replace替换多种指定的字符串,同时支持可拓展增加字符串关键字. let conten ...
- struts2-剩余
一.说明 类型转换.输入验证(前台和后台)(validate().validateXXX().xml) 标签.上传下载.i18n(国际化).ognl(#reqeust.name) 注解方式.log4j ...
- docker删除已经停止的容器
前言:docker容器已经停止运行的容器,怎么清理 1.如图: docker ps -a :显示所有运行过的docker容器 status : docker容器的状态 docker ...