摘要:本文旨在帮助中国药科大学的学生学习必修课《Python与医药大数据处理》,在实验操作题方面给予代码参考。
欢迎各界人士共同讨论Python相关话题,并给予宝贵建议。
答应大家的60309和60310来啦!因为没有书在手边,代码和题目可能会有出入。就麻烦大家自己稍作修改啦!
目录
PY60309:英文词频统计
#构建排除词库
excludes={'the','of','and','a','to','in','for','is','are','with','can','that','be','by','this','an','as','been','based','or','which','has','from','these','on','used'}
def getText():
#读取文本内容
txt=open('articleEng.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
#删除需要排除的词汇
for word in excludes:
del(counts[word])
items=list(counts.items())
#对词频统计结果进行降序排列
items.sort(key=lambda x:x[1],reverse=True)
#显示排名前10位的关键词
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
PY60310:中文词频统计
import jieba
#构建排除词库
excludes={"应用","方法","发现","一个","领域","分类"}
#读取文本内容
txt=open('articleChn.txt','r',encoding='utf-8').read()
#使用jieba库进行中文分词
words=jieba.lcut(txt)
counts={}
for word in words:
#排除单个字符的分词结果
if len(word)==1:
continue
else:
#使用字典进行词频统计
counts[word]=counts.get(word,0)+1
#删除需要排除的词汇
for word in excludes:
del(counts[word])
items=list(counts.items())
#对词频统计结果进行降序排列
items.sort(key=lambda x:x[1],reverse=True)
#显示排名前15位的关键词
for i in range(15):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))