python统计人物出现次数_python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序...

本实例主要用到python的jieba库

首先当然是安装pip install jieba

这里比较关键的是如下几个步骤:

加载文本,分析文本

txt=open("C:\\Users\\Beckham\\Desktop\\python\\倚天屠龙记.txt","r", encoding='utf-8').read() #打开倚天屠龙记文本

words=jieba.lcut(txt) #jieba库分析文本

对数据进行筛选和处理

for word in words: #筛选分析后的词组

if len(word)==1: #因为词组中的汉字数大于1个即认为是一个词组,所以通过continue结束点读取的汉字书为1的内容

continue

elif word=="教主": #书中教主也指张无忌,即循环读取到教主也认为是张无忌这个名字出现一次,后面类似

rword="张无忌"

elif word=="无忌":

rword="张无忌"

elif word=="义父":

rword="谢逊"

else:

rword=word

counts[rword]=counts.get(rword,0)+1 #对rword出现的频率进行统计,当rword不在words时,返回值是0,当rword在words中时,返回+1,以此进行累计计数

for word in exculdes:#如果循环读取到的词组与exculdes字典内的内容匹配,那么过滤掉(不显示)这个词组

del(counts[word])

创建列表显示和排序

items=list(counts.items())#字典到列表

items.sort(key=lambda x:x[1],reverse=True)#lambda是一个隐函数,是固定写法,以下命令的意思就是按照记录的第2列排序

for i in range(15):#显示前15位数据

word,count=items[i]

print("{0:<10}{1:>10}".format(word,count)) #0:<10左对齐,宽度10,”>10"右对齐

具体脚本如下,每一步都有解析,就不分步解释了

# -*-coding:utf8-*-

# encoding:utf-8

import jieba #倒入jieba库

txt=open("C:\\Users\\Beckham\\Desktop\\python\\倚天屠龙记.txt","r", encoding='utf-8').read() #打开倚天屠龙记文本

exculdes={"说道","甚么","自己","武功","咱们","一声","心中","少林","一个","弟子",

"明教","便是","之中","如何","师父","只见","怎么","两个","没有","不是","不知","这个","不能","只是",

"他们","突然","出来","如此","今日","知道","我们","心想","二人","两人","不敢","虽然","姑娘","这时","众人"

,"可是","原来","之下","当下","身子","你们","脸上","左手","手中","倘若","之后","起来","喝道","武当派","跟着"

,"武当","却是","登时","身上","说话","长剑","峨嵋派","性命","难道","丐帮","兄弟","见到","魔教","不可","心下"

,"之间","少林寺","伸手","高手","一招","这里","正是"} #创建字典,主要用于存储非人物名词,供后面剔除使用

words=jieba.lcut(txt) #jieba库分析文本

counts={}

for word in words: #筛选分析后的名词

if len(word)==1: #因为词组中的汉字数大于1个即认为是一个词组,所以通过continue结束掉读取的汉字书为1的内容

continue

elif word=="教主": #书中教主也指张无忌,即循环读取到教主也认为是张无忌这个名字出现一次,后面类似

rword="张无忌"

elif word=="无忌":

rword="张无忌"

elif word=="义父":

rword="谢逊"

else:

rword=word

counts[rword]=counts.get(rword,0)+1 #对rword出现的频率进行统计,当rword不在words时,返回值是0,当rword在words中时,返回+1,以此进行累计计数

for word in exculdes:#如果循环读取到的词组与exculdes字典内的内容匹配,那么过滤掉(不显示)这个词组

del(counts[word])

items=list(counts.items())#字典到列表

items.sort(key=lambda x:x[1],reverse=True)#lambda是一个隐函数,是固定写法,以下命令的意思就是按照记录的第2列排序

for i in range(15):#显示前15位数据

word,count=items[i]

print("{0:<10}{1:>10}".format(word,count)) #0:<10左对齐,宽度10,”>10"右对齐

毫无疑问,张无忌妥妥的主角

参考:

https://gitee.com/huangshenru/codes/clneriovm0sqxw5k89j2h98

https://www.cnblogs.com/0330lgs/p/10648168.html

Python之利用jieba库做词频统计且制作词云图

一.环境以及注意事项 1.windows10家庭版 python 3.7.1 2.需要使用到的库 wordcloud(词云),jieba(中文分词库),安装过程不展示 3.注意事项:由于wordclo ...

python 利用jieba库词频统计

1 #统计里人物的出现次数 2 3 import jieba 4 text = open('threekingdoms.txt','r',encoding='utf-8').re ...

Python实例---利用正则实现计算器[FTL版]

import re # 格式化 def format_str(str): str = str.replace('--', '+') str = str.replace('-+', '-') str = ...

jieba库词频统计

一.jieba 库简介 (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组:除此之外,jieba 库还提供了增加自定义中文 ...

jieba库词频统计练习

在sypder上运行jieba库的代码: import matplotlib.pyplot as pltfracs = [2,2,1,1,1]labels = 'houqin', 'jiemian', ...

python入门之jieba库的使用

对于一段英文,如果希望提取其中的的单词,只需要使用字符串处理的split()方法即可,例如“China is a great country”.   然而对于中文文本,中文单词之间缺少分隔符,这是中文 ...

python 中文分词库 jieba库

jieba库概述: jieba是优秀的中文分词第三方库 中文文本需要通过分词获得单个的词语 jieba是优秀的中文分词第三方库,需要额外安装 jieba库分为精确模式.全模式.搜索引擎模式 原理 1. ...

Python爬虫实例(六)多进程下载金庸网小说

目标任务:使用多进程下载金庸网各个版本(旧版.修订版.新修版)的小说 代码如下: # -*- coding: utf-8 -*- import requests from lxml import et ...

【python】利用jieba中文分词进行词频统计

以下代码对鲁迅的进行了词频统计: import io import jieba txt = io.open("zhufu.txt", "r" ...

随机推荐

机器学习实战笔记(Python实现)-04-Logistic回归

--------------------------------------------------------------------------------------- 本系列文章为

20145235 《Java程序设计》第一次实验报告

实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JVM.JRE.JDK的安装位置与区 ...

js高级程序设计(第三版)学习笔记(第一版)

ecma:欧洲计算机制造商协会iso/iec:国际标准化和国际电工委员会 dom级别(10*)文档对象模型1:DOM核心(映射基于xml文档)与dom html(在dom核心基础上)2:对鼠标,事件, ...

五十七、linux 编程——UDP 编程 域名解析

57.1 介绍 57.1.1 域名解析 57.1.2 域名解析函数 gethostent 可以获取多组,gethostbyname 只可以获取一组 /etc/hosts 文件设置了域名和 IP 的绑定 ...

vue.js学习系列-第一篇

VUE系列一 简介    vue是一个兴起的前端js库,是一个精简的MVVM.从技术角度讲,Vue.js专注于 MVVM 模型的 ViewModel 层.它通过双向数据绑定把 View 层和 Mode ...

[WC2018]通道

题目描述 http://uoj.ac/problem/347 题解 解法1 求三棵树的直径,看起来非常不可做,但是所有边权都是正的,可以让我们想到爬山. 所以我们可以按照BFS求树的直径的方法,随机一 ...

命令框下上传到gitee

git常用命令 C:\Users\Administrator>cd www/p2p设置账号C:\Users\Administrator\www\p2p>git config --globa ...

[dev][python] 从python2进阶到python3你都需要了解什么

基于python2快速掌握python3 0. 前言 这是一篇road map. 如果你会python2,读完这篇文章之后,你将掌握python3 1. 为什么会出现python3 Why Pytho ...

Washing Text Animation

https://www.youtube.com/watch?v=q0_koJLc0OgBlender Tutorial: Washing Text Animation 需要用到插件, 进入用户设置的插 ...

你可能感兴趣的:(python统计人物出现次数)