【Python】jieba分词常用方法

结巴分词三种模式

支持3中分词模式:

1.全模式:把句子中的所有可以成词的词语都扫描出来,使用方法:jieba.cut(“字符串”, cut_all=True, HMM=False)

2.精确模式:试图将文本最精确的分开,适合于做文本分析。使用方法:jieba.cut(“字符串”, cut_all=False, HMM=True)

3.搜索引擎模式:在精确的基础上对长词进行进一步的切分。使用方法:jieba.cut_for_search(“字符串”, HMM=False)

函数jieba.cut接受三个参数,cut(sentence, cut_all=False, HMM=True)。
其中sentence–>输入文本,cut_all–>是否为全模式分词,HMM–>是否开启HMM进行中文分词。返回的是一个迭代器,使用for循环得到分词后得到的每一个词语。

代码演示

import sys
import jieba
import jieba.analyse
reload(sys)
sys.setdefaultencoding('utf-8')
data_str='可你觉得孤独又能怎么样啊?你觉得孤独也不过是心情更差而已嘛。以前没什么人跟你说话,你觉得孤独,也还是没人跟你说话啊。'

精准匹配

print '/'.join(jieba.cut(data_str,cut_all=False,HMM=True))

运行结果:

可/你/觉得/孤独/又/能/怎么样/啊/?/你/觉得/孤独/也/不过/是/心情/更差/而已/嘛/。/以前/没什么/人/跟/你/说话/,/你/觉得/孤独/,/也/还是/没人/跟/你/说话/啊/。

全文匹配

print '/'.join(jieba.cut(data_str,cut_all=True,HMM=True))

运行结果:

可/你/觉得/孤独/又/能/怎么/怎么样/啊///你/觉得/孤独/也/不过/是/心情/更/差/而已/嘛///以前/没什么/什么/人/跟/你/说话///你/觉得/孤独///也/还是/没人/跟/你/说话/啊//

搜索引擎模式

print '/'.join(jieba.cut_for_search(data_str,HMM=True))

运行结果:

可/你/觉得/孤独/又/能/怎么/怎么样/啊/?/你/觉得/孤独/也/不过/是/心情/更差/而已/嘛/。/以前/什么/没什么/人/跟/你/说话/,/你/觉得/孤独/,/也/还是/没人/跟/你/说话/啊/。

提取关键词

print '/'.join(jieba.analyse.extract_tags(data_str))

运行结果:

孤独/觉得/更差/说话/没人/没什么/而已/怎么样/心情/以前/不过/还是

提高分词准确性

1 在结巴中添加词语

不添加词语的话是这样的

data_strs='如果黑暗中的蛾子曾经体会过那么一点点光,它也不会不惜把整个世界都烧起来,只为了让自己暖和起来。'
print '/'.join(jieba.analyse.extract_tags(data_strs,topK=20))

运行结果:

蛾子/暖和/不惜/一点点/起来/体会/黑暗/曾经/整个/为了/那么/不会/世界/如果/自己

添加自定义的词语后

jieba.add_word('黑暗中的蛾子')
print '/'.join(jieba.analyse.extract_tags(data_strs,topK=20))

运行结果:

黑暗中的蛾子/暖和/不惜/一点点/起来/体会/曾经/整个/为了/那么/不会/世界/如果/自己

可以看到提取的关键词改变了,这种方法适用于小型的提取关键词方法,如果数据量很大的话,可以吧自定义的关键词保存在一个字典(就是使用新的词库)里面,然后调用这个字典即可。

2 添加自定义词库

首先下载或者配置好一个词库,然后加载一下即可。(路径不要弄错了,可以放在当前目录下)
词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
字典的格式:

云计算 5
李小福 2 nr
创新办 3 i
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
台中
凱特琳 nz
Edu Trust认证 2000

加载字典:

jieba.load_userdict("userdict.txt")

后面的代码就和前面一样了。

个人博客:www.langzi.fun
欢迎交流Python开发,安全测试。

猜你喜欢

转载自blog.csdn.net/lzy98/article/details/80078272