结巴包的使用自己探究【总共5点】

Python进行分词的各种调试:

1.分词

第一步,最原始的分词法,jieba.cut 分词目标:从txt中导入语言,然后用结巴分词

import jieba

f=open('d://shuju.txt','r')
test_sent=f.read()
words=jieba.cut(test_sent)
print('/'.join(words))

.join的方法在Python基础教程里面有说明,是根据切分的地方加上前面想加的东西【这里为/】

第一步得出的答案如下:


我们可以发现,有一些词分错了。比如:改变传统 本来应该是两个词,被分成一个词了  大数据本来是一个词,却被分为两个词了 大/数据

接下来第二步:添加自定义词典

2.自定义字典

函数:jieba.load_userdict(filename) 是加载一个词典的。词典里面可以写三个,词,词性,

添加之后,还可以动态修改词典,用add和del

代码如下 中间空格处是添加的代码:

import jieba

jieba.load_userdict('d://userdict.txt') #载入自定义词典
import jieba.posseg as pseg
#这个词典里可以是以前就有的,可以是空的然后我们继续加
jieba.add_word('大数据')

f=open('d://shuju.txt','r')
test_sent=f.read()
words=jieba.cut(test_sent)
print('/'.join(words))

这时候再run,发现,大数据那个词,已经被成功的分为一个词了


接下来,把 改变传统 分成两个词,方法:suggest_freq(segment,True)

import jieba

jieba.load_userdict('d://userdict.txt') #载入自定义词典
import jieba.posseg as pseg
#这个词典里可以是以前就有的,可以是空的然后我们继续加
jieba.add_word('大数据')
jieba.suggest_freq(('改变','传统'),tune=True)
f=open('d://shuju.txt','r')
test_sent=f.read()
words=jieba.cut(test_sent)
print('/'.join(words))
把改变,和传统用两个词写出来,还要加一个小括号!然后此时,设为True,代表能分开。这时候,改变传统 就能分为改变/传统

【P.S.:我试了想把改变传统用回一个词,但是改成false没成功,还是被分为两个词,所以如果想分回来改变传统,方法就是“把那个改变传统的两个字节符分开,然后还是用True】



3.关键词提取

jieba.analyse.extract_tags(sentence,topK=你想返回最大几个关键词,withWeight=False/True返回这些关键词的权重值,allowPOS仅包括指定词性的词)

代码:

import jieba

jieba.load_userdict('d://userdict.txt') #载入自定义词典
import jieba.posseg as pseg
#这个词典里可以是以前就有的,可以是空的然后我们继续加
jieba.add_word('大数据')
jieba.suggest_freq(('改变','传统'),tune=True)
f=open('d://shuju.txt','r')
test_sent=f.read()
#words=jieba.cut(test_sent)
#print('/'.join(words))

for x,w in jieba.analyse.extract_tags(test_sent,withWeight=True):
    print('%s %s' % (x,w)) #这个print的用法是,用% 后面括号里的()第一个值x,替换第一个%s 第二个值w,替换第二个%s
得到的结果如下:


4.词性标注

倘若不用jieba.cut 而是用jieba.posseg那个,即pseg的话 ,是不仅可以分词,还可以看到每个词的词性

result=pseg.cut(test_sent)
for w in result:
    print(w.word, "/", w.flag, ", ", end=' ')

5.并行处理

这个仅在Linux系统上使用。Windows上面用不了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值