前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初学者|知否?知否?一文学会Jieba使用方法

初学者|知否?知否?一文学会Jieba使用方法

作者头像
yuquanle
发布2019-05-29 00:59:04
4280
发布2019-05-29 00:59:04
举报
文章被收录于专栏:AI小白入门AI小白入门

点击上方蓝色字体,关注AI小白入门哟

跟着博主的脚步,每天进步一点点

我始终觉得,入门学习一件事情最好的方式就是实践,加之现在python如此好用,有越来越多的不错nlp的python库,所以接下来的一段时间里,让我们一起来感受一下这些不错的工具。后面代码我均使用jupyter编辑。先来罗列一波:jieba、hanlp、snownlp、Stanfordcorenlp、spacy、pyltp、nltk、Textblob等等…今天从jieba开始吧,let's begin。

简介

“结巴”中文分词,做最好的 Python 中文分词组件。主要功能包括分词、词性标注、关键词抽取等。

Github地址:https://github.com/fxsjy/jieba

支持繁体分词、支持自定义词典、支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析;
  • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

实战

1.分词

代码语言:javascript
复制
# 支持三种分词模式(默认是精确模式)
import jieba
segfull_list = jieba.cut("我爱自然语言处理技术!", cut_all=True)
print("Full Mode: " + " ".join(segfull_list))  # 全模式

segdef_list = jieba.cut("我爱自然语言处理技术!", cut_all=False)
print("Default Mode: " + "  ".join(segdef_list))  # 精确模式

seg_search_list = jieba.cut_for_search("我爱自然语言处理技术!")  # 搜索引擎模式
print("Search Mode:" + " ".join(seg_search_list))
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\yuquanle\AppData\Local\Temp\jieba.cache
Loading model cost 0.830 seconds.
Prefix dict has been built succesfully.


Full Mode: 我 爱 自然 自然语言 语言 处理 技术  
Default Mode: 我  爱  自然语言  处理  技术  !
Search Mode:我 爱 自然 语言 自然语言 处理 技术 !

2.基于TF-IDF算法关键词抽取

代码语言:javascript
复制
# 参数:
# sentence:待分析文本;
# topK:返回几个 TF/IDF 权重最大的关键词,默认值为 20
# withWeight:是否一并返回关键词权重值,默认值为 False
# allowPOS:仅包括指定词性的词,默认值为空,即不筛选
import jieba.analyse
sentence = "我爱自然语言处理技术!"
tags = jieba.analyse.extract_tags(sentence, withWeight=True, topK=2, allowPOS=())
print(tags)

[('自然语言', 3.4783139164), ('处理', 1.8036185524533332)]

3.基于 TextRank 算法的关键词抽取

代码语言:javascript
复制
# 参数:
# allowPOS:默认过滤词性
jieba.analyse.textrank(sentence, topK=1, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))

['技术']

4.词性标注

代码语言:javascript
复制
import jieba.posseg as pseg
sentence = "我爱自然语言处理!"
words = pseg.cut(sentence)
for word, flag in words:    
    print('%s %s' % (word, flag))

我 r
爱 v
自然语言 l
处理 v
! x

5.分词(tokenize)

代码语言:javascript
复制
result = jieba.tokenize(u'我爱自然语言处理')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

word 我       start: 0        end:1
word 爱       start: 1        end:2
word 自然语言        start: 2        end:6
word 处理      start: 6        end:8

代码已上传:https://github.com/yuquanle/StudyForNLP/blob/master/NLPtools/JiebaDemo.ipynb

The End

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI小白入门 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档