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)]
网友评论