中文处理jieba的使用

什么是jieba?
"nlkt的中文版"

jieba.cut 和 jieba.lcut

cut返回的是可迭代的 generator,lcut返回的是list(开头字母l的意义)。两者其他基本一致。

两个方法都有3 个参数
在这里插入图片描述
1.sentence参数:需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
2.cut_all 参数:是否使用全模式,默认值为 False
3.HMM 参数:用来控制是否使用 HMM 模型,默认值为 True

一些小demo

import jieba

word = '君不见,黄河之水天上来,奔流到海不复回。'


#cut精确模式
cutWordWithFalse = jieba.cut(word,cut_all=False)
print('cut精确模式:'+'|'.join(cutWordWithFalse))

#cut全模式  简称结巴模式
cutWordWithTrue = jieba.cut(word,cut_all=True)
print('cut全模式:'+'|'.join(cutWordWithTrue))




#lcut精确模式
lcutWordWithFalse = jieba.lcut(word,cut_all=False)
print('lcut精确模式',end='')
print(lcutWordWithFalse)

#lcut全模式   简称结巴模式
lcutWordWithTrue = jieba.lcut(word,cut_all=True)
print('lcut全模式',end='')
print(lcutWordWithTrue)

在这里插入图片描述

jieba.cut_for_search 和 jieba.lcut_for_search

jieba.cut_for_search 返回的是可迭代的 generator,jieba.lcut_for_search返回的是list(开头字母l的意义)。两者其他基本一致。
方法有2 个参数:
1.word参数:需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
2.HMM参数:用来控制是否使用 HMM 模型,默认值为 True

一些小demo

import jieba

word = '君不见,黄河之水天上来,奔流到海不复回。'

# lcut_for_search
print(jieba.lcut_for_search(word))


# cut_for_search
cutForSearch=jieba.cut_for_search(word)
print('/'.join(cutForSearch))

在这里插入图片描述

自定义词典

添加自定义词组(例如:某人名字、专业名词等)、删除某些过时的词组

添加词典(jieba.add_word)

方法有三个参数
1.word参数:词语
2.ferq参数:词频(可省略)
3. tag参数:词性(可省略)
在这里插入图片描述
一些小demo

import jieba


# 假如有个人名叫王灿
word = '王灿说君不见,黄河之水天上来,奔流到海不复回。'

print(jieba.lcut(word))

# 添加词组'王灿'

jieba.add_word('王灿')

print(jieba.lcut(word))

在这里插入图片描述

通过文件载入词典(jieba.load_userdict)

该方法有一个参数
在这里插入图片描述
1.f参数:为文件类对象或自定义词典的路径
一些小demo

import jieba


# 假如有个人名叫王灿
word = '王灿说君不见,黄河之水天上来,奔流到海不复回。'

print(jieba.lcut(word))

# 添加词典
jieba.load_userdict('dic.txt')

print(jieba.lcut(word))

在这里插入图片描述
在这里插入图片描述

删除词典

该方法有一个参数:
1.word参数:词语
在这里插入图片描述
一些小demo

import jieba



# 假如有个人名叫王灿
word = '王灿说君不见,黄河之水天上来,奔流到海不复回。'

print(jieba.lcut(word))

# 添加词典
jieba.load_userdict('dic.txt')

print(jieba.lcut(word))

# 删除词典中的某个词
jieba.del_word('王灿')

print(jieba.lcut(word))

在这里插入图片描述

对 suggest_freq方法的功能不是太了解,后期补充

关键词提取

jieba 提供了两种关键词提取方法,分别基于 TF-IDF 算法和 TextRank 算法

TF-IDF算法

TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中的一份文件的重要程度,其原理可概括为:

在这里插入图片描述
 通过 jieba.analyse.extract_tags 方法可以基于 TF-IDF 算法进行关键词提取,该方法共有 4 个参数
1.sentence参数:为待提取的文本
2.topK参数:为返回几个 TF/IDF 权重最大的关键词,默认值为 20
3.withWeight参数:是否一并返回关键词权重值,默认值为 False
4.allowPOS参数:仅包括指定词性的词,默认值为空

在这里插入图片描述

import jieba.analyse as analyse

word = '白天精力充沛的时候,我们会对竹筏展开各种玩法。比如我会将家里的小方凳放在竹筏上,一手撑着浆,' \
       '一手拨开头顶的葡萄叶,仿照船夫那慢悠悠地口吻,对荷塘口的妹妹喊道:“客官,船来啦!' \
       '”这时妹妹就站在那里咯咯地笑个不停。有时,我们会将家里的小猫带上船,它的脚被竹筏里渗进来的水打湿了' \
       ',前掌试探性地向外伸了伸,又缩了回来,最后只能歪着脑袋哀吟。几次三番后,' \
       '它竟然跳到水里快速扑腾上去了。我们幸灾乐祸的冲到屋里给母亲讲这件事,母亲也笑着说:' \
       '“原来猫急了也会跳水呀!”后来一起玩的人多了起来,竹筏承受不了几个人的重量,在水中间半沉着,' \
       '我们姐妹几个一边尖叫一边左右摇晃,表弟突然跳了上来,我们便全都跌倒在水里去了。不仅弄湿了衣裳,' \
       '还喝了几口水,表弟却在那里搂着肚子哈哈大笑,于是一场水战拉开序幕……后来竹筏的几根竹子坏了,' \
       '我们经常会失足掉下去,一天换五六套衣服,有时赖着不洗,只是辛苦了母亲。每每玩得累了,' \
       '便滑到葡萄架下乘凉摘果,直到头仰得累了方可休止。'

for word,degreeOfImportance in analyse.extract_tags(word, topK=20, withWeight=True):
    print('%s %s' % (word, degreeOfImportance) )

在这里插入图片描述

TextRank 算法

TextRank 是另一种关键词提取算法,基于大名鼎鼎的 PageRank。

通过 jieba.analyse.textrank 方法可以使用基于 TextRank 算法的关键词提取,其与 ‘jieba.analyse.extract_tags’ 有一样的参数,但前者默认过滤词性(allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’))。

import jieba.analyse as analyse

word = '白天精力充沛的时候,我们会对竹筏展开各种玩法。比如我会将家里的小方凳放在竹筏上,一手撑着浆,' \
       '一手拨开头顶的葡萄叶,仿照船夫那慢悠悠地口吻,对荷塘口的妹妹喊道:“客官,船来啦!' \
       '”这时妹妹就站在那里咯咯地笑个不停。有时,我们会将家里的小猫带上船,它的脚被竹筏里渗进来的水打湿了' \
       ',前掌试探性地向外伸了伸,又缩了回来,最后只能歪着脑袋哀吟。几次三番后,' \
       '它竟然跳到水里快速扑腾上去了。我们幸灾乐祸的冲到屋里给母亲讲这件事,母亲也笑着说:' \
       '“原来猫急了也会跳水呀!”后来一起玩的人多了起来,竹筏承受不了几个人的重量,在水中间半沉着,' \
       '我们姐妹几个一边尖叫一边左右摇晃,表弟突然跳了上来,我们便全都跌倒在水里去了。不仅弄湿了衣裳,' \
       '还喝了几口水,表弟却在那里搂着肚子哈哈大笑,于是一场水战拉开序幕……后来竹筏的几根竹子坏了,' \
       '我们经常会失足掉下去,一天换五六套衣服,有时赖着不洗,只是辛苦了母亲。每每玩得累了,' \
       '便滑到葡萄架下乘凉摘果,直到头仰得累了方可休止。'

for words,degreeOfImportance in analyse.textrank(word,withWeight=True):
    print('%s %s' % (words, degreeOfImportance) )

在这里插入图片描述

其他内容后期补充

改文章参考地址:https://www.jianshu.com/p/883c2171cdb5

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值