jieba是优秀的中文分词第三方库
(cmd命令行) pip install jieba
jieba库的使用说明
jieba分词的三种模式
精确模式:把文本精确的切分开,不存在冗余单词 |
全模式:把文本中所有可能的词语都扫描出来,有冗余 |
搜索引擎模式:在精确模式基础上,对长词再次切分 |
jieba库常用函数
函数 | 描述 |
jieba.lcut(s) | 精确模式,返回一个列表类型的分词结果(很重要!) |
jieba.lcut(s,cut_all=True) | 全模式,返回一个列表类型的分词结果,存在冗余 |
jieba.lcut_for_search(s) | 搜索引擎模式,返回一个列表类型的分词结果,存在冗余 |
jieba.add_word(w) | 向分词词典增加新词w |
实例10:文本词频统计
英文文本:Hamlet 分析词频 |
https://python123.io/resources/pye/hamlet.txt |
上述链接是下载hamlet.txt文档的
一定要将该文档下载到.py文件所在路径下
否则在执行代码时它会提示找不到该文件
def getText(): #定义一个小函数,可以获得一个文本的具体信息
txt=open("hamlet.txt","r").read() #首先我们打开哈姆雷特这个文件
txt=txt.lower() #将所有英文字符变成小写
for ch in '!"#$%&()*+-./:;<=>?@[\\]^_`{|}~ ': #去掉所有文本中出现的各种特殊符号
txt=txt.replace(ch," ") #使用空格来替换这些特殊符号
return txt
hamletTxt=getText() #对文件进行读取,并且对文本进行归一化
words=hamletTxt.split()
counts={} #定义了一个字典类型,空字典
for word in words:
counts[word]=counts.get(word,0)+1
items=list(counts.items()) #将字典类型变为列表类型
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
中文文本:《三国演义》 分析人物出场统计 |
https://python123.io/resources/pye/threekingdoms.txt |
import jieba
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
else:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(15):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
升级版
import jieba
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
excludes={"将军","却说","荆州","二人","不可","不能","如此"}
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
elif word=="诸葛亮" or word=="孔明曰":
rword="孔明"
elif word=="关公" or word=="云长":
rword="关羽"
elif word=="玄德" or word=="玄德曰":
rword="刘备"
elif word=="孟德" or word=="丞相":
rword="曹操"
else:
rword=word
counts[rword]=counts.get(rword,0)+1
for word in excludes:
del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
虽说是升级版,但还需加强
就是说越改越多哈哈哈哈
”文本词频统计"举一反三
《红楼梦》《西游记》《水浒传》...
政府工作报告、科研论文、新闻报道...