【Python 数据分析】jieba文本挖掘

jieba是一个强大的分词库,完美支持中文分词

安装jieba

使用命令安装

pip install jieba

image

出现上图表示安装成功了

jieba分词模式

全模式

全模式:试图将句子精确地切开,适合文本分析,输出的是多有可能的分词组合

import jieba

str = "我是一个中国人"
word1 = jieba.cut(str,cut_all=True)
for item in word1:
    print(item)

运行结果:



一个
中国
国人

 

精确模式

精确模型:把句子中所有的可以分词的词语都扫描出来,速度非常快,但不能解决歧义

注意:没有参数cut_all的情况下,默认为精确模式

import jieba

str = "我是一个中国人"
#word1 = jieba.cut(str)
word1 = jieba.cut(str,cut_all=False)
for item in word1:
    print(item)

运行结果:



一个
中国

搜索引擎模式

搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

import jieba

str = "我是一个中国人"
word1 = jieba.cut_for_search(str)
for item in word1:
    print(item)

词性标注

使用jieba.posseg可以对词性进行标注

import jieba.posseg

str = "我是一个中国人"
word1 = jieba.posseg.cut(str)
#.flag 词性
#.word 词语
for item in word1:
    print(item.word+"--"+item.flag)

运行结果:

我--r
是--v
一个--m
中国--ns
人--n

词性说明

image

自定义词库

例如:我们现在想对句子【豆花鱼是一种很好吃的鱼】做一次分词

import jieba.posseg

str = "豆花鱼是一种很好吃的鱼"
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

image

我们可以看到现在存在一个dict.txt文件,那么我们现在新建一个文件Add_dict.txt

image

 

接着我们引入该词库进行分词

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

我们从上述的结果中可以清晰看到【豆花鱼】已经变成一个其他专有名词了。

注意:新增的词库每次使用都需要引用,它不是一次引入终生使用的

posted @ 2018-05-02 23:24  OLIVER_QIN  阅读(3803)  评论(0编辑  收藏  举报