jieba是一个强大的分词库,完美支持中文分词
安装jieba
使用命令安装
pip install jieba
出现上图表示安装成功了
jieba分词模式
全模式
全模式:试图将句子精确地切开,适合文本分析,输出的是多有可能的分词组合
import jiebastr = "我是一个中国人"word1 = jieba.cut(str,cut_all=True)for item in word1: print(item)
运行结果:
我
是一个中国国人
精确模式
精确模型:把句子中所有的可以分词的词语都扫描出来,速度非常快,但不能解决歧义
注意:没有参数cut_all的情况下,默认为精确模式
import jiebastr = "我是一个中国人"#word1 = jieba.cut(str)word1 = jieba.cut(str,cut_all=False)for item in word1: print(item)
运行结果:
我
是一个中国人搜索引擎模式
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
import jiebastr = "我是一个中国人"word1 = jieba.cut_for_search(str)for item in word1: print(item)
词性标注
使用jieba.posseg可以对词性进行标注
import jieba.possegstr = "我是一个中国人"word1 = jieba.posseg.cut(str)#.flag 词性#.word 词语for item in word1: print(item.word+"--"+item.flag)
运行结果:
我--r
是--v一个--m中国--ns人--n词性说明
自定义词库
例如:我们现在想对句子【豆花鱼是一种很好吃的鱼】做一次分词
import jieba.possegstr = "豆花鱼是一种很好吃的鱼"word1 = jieba.posseg.cut(str)for item in word1: print(item.word+"--"+item.flag)
分词结果:
豆花--n
鱼--n是--v一种--m很--zg好吃--v的--uj鱼—n【分析】按理来说,豆花鱼是一个名词,但是现在词库没有这个名词,所以分错了
那么接下来我们就自定义分词词库
找到路径C:\Users\OLIVER\AppData\Local\Programs\Python\Python36\Lib\site-packages\jieba下
我们可以看到现在存在一个dict.txt文件,那么我们现在新建一个文件Add_dict.txt
接着我们引入该词库进行分词
import jieba.posseg#引入词库jieba.load_userdict("C:/Users/OLIVER/AppData/Local/Programs/Python/Python36/Lib/site-packages/jieba/Add_dict.txt")str = "豆花鱼是一种很好吃的鱼"word1 = jieba.posseg.cut(str)for item in word1: print(item.word+"--"+item.flag)
运行结果:
豆花鱼--nz
是--v一种--m很--zg好吃--v的--uj鱼—n我们从上述的结果中可以清晰看到【豆花鱼】已经变成一个其他专有名词了。
注意:新增的词库每次使用都需要引用,它不是一次引入终生使用的