「文本分析」06jieba库基础与使用实例(以小说文本为例)

2020-01-27  本文已影响0人  林拂晓

1.文本分析

前提:

pip install jieba

import jieba

(1)分词jieba.cut(sentence,cut_all=False)

sentence="我喜欢上海东方明珠"

【注】设置分词模式cut_all:全模式、精准模式、搜索引擎模式。

①word1全模式:分词结果比较全,但是会出现词语叠加

word1=jieba.cut(sentence,cut_all=True)

for item in word1:

    print(item)

全模式分词结果

【注】分词后不能直接输出word,需要循环遍历出来。

②word2精准模式:为cut_all(sentence)方法默认模式

word2=jieba.cut(sentence,cut_all=False)

for item in word2:

    print(item)

精准模式分词结果

③word3搜索引擎模式:jieba.cut_for_search(sentence)

word3=jieba.cut_for_search(sentence)

for item in word3:

    print(item)

搜索引擎模式分词结果

(2)词性标注jieba.posseg.cut(sentence)

import jieba.posseg

Word4=jieba.posseg.cut(sentence)

for item in word4:

    print(item.word+'————'+item.flag)

词性标注结果

【注】①默认模式:即精准模式。

②调用词性:.flag属性;

调用词语:.word属性。

③字典中重要词性标注:

a:形容词

c:连词

d:副词

e:叹词

f:方位词

i:成语

m:数词

n:名词

nr:人名

ns:地名

nt:机构团体

nz:其他专有名词

p:介词

r:代词

t:时间

u:助词

v:动词

vn:具有名词功能的动词

w:标点符号

un:未知词语

(3)新建词典加载jieba.load_userdict(filename)

jieba.load_userdict('D:/Python/Python35/Lib/site-packages/jieba/dict1.txt')

Word5=jieba.cut_for_search(sentence)

for item in word5:

    print(item.word+'————'+item.flag)

(4)添加自定义词add_word(word,freq=None,tag=None)

jiebe.add_word(word6)

(5)更改词频suggest_freq(segment,tuen=True)

jiebe.suggest_freq('喜欢上海',tune=True)

word8=jieba.cut(sentence)

for item in word8:

    print(item)

更改词频结果

(6)提取文本关键词jiebe.analyse.extract_tags(sentence,num),num默认为20个

import jieba.analyse

tag=jieba.analyse.extract_tags(sentence,3)

    print(tag)

文本关键词提取结果

(7)返回词语的位置(精准模式)jieba.tokenize(sentence)

word9=jieba.tokenize(sentence)

for item in word9:

    print(item)

定位词语结果(精准模式)

(8)返回词语的位置(搜索引擎模式)jieba.tokenize(sentence,mode='search')

word10=jieba.tokenize(sentence,mode='search')

for item in word10:

    print(item)

定位词语结果(搜索引擎模式)

2.文本分析实例:小说文本分析

分析小说《余生请多指教》

import jieba

import jieba.analyse

(1)提取文本关键词jiebe.analyse.extract_tags(sentence,num),num默认为20个

data=open("G://DA/file/余生请多指教.txt","r").read()

【注】或者把文件放在本地www/目录下,直接利用urllib库导入

#data=urllib.request.urlopen("http://localhost/ysqdzj.html").read().decode("utf-8","ignore")

tag=jieba.analyse.extract_tags(data,10)

print(tag)

['医生', '顾魏', '老师', '看着', '娘亲', '我们', '时候', '什么', '印玺', '小草']

(2)输出各个关键词的词频

from collections import Counter

cnt=Counter()

for word in tag:

    cnt[word]+=1

print(cnt.most_common())

[('娘亲', 1), ('老师', 1), ('印玺', 1), ('医生', 1), ('看着', 1), ('顾魏', 1), ('时候', 1), ('我们', 1), ('什么', 1), ('小草', 1)]

上一篇 下一篇

猜你喜欢

热点阅读