我是靠谱客的博主 无私黑夜,最近开发中收集的这篇文章主要介绍python文本统计_基于Python的文本统计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定任意的文本文件,统计文件中的文字信息。

#wordstats.py

#包含所有要保留的字符集

keep={'a','b','c','d','e',

'f','g','h','i','j',

'k','l','m','n','o',

'p','q','r','s','t',

'u','v','w','x','y',

'z',' ','-',"'"}

def normalize(s):

"""

将字符串转化成标准字符

"""

result=' '

for c in s.lower():

if c in keep:

result += c

return result

def make_freq_dict(s):

"""

返回每个单词的频率数

"""

s=normalize(s)

words=s.split()

d={}

for w in words:

if w in d: #如果W出现过,就将其出现的次数加1

d[w] += 1

else:

d[w] = 1 #如果w是第一次出现,就将其出现次数设置为1

return d

def print_file_stats(fname):

"""

打印统计信息

"""

s=open(fname,'r').read()

num_chars=len(s) #规范化S之前计算字符数

num_lines=s.count('n') #在规范化s之前计算行数

d=make_freq_dict(s)

num_words=sum(d[w] for w in d) #计算s包含多少单词

#创建一个列表,其中的元素为单词及其出现次数的元组,并根据单词出现的次数由高到低排列

lst=[(d[w],w) for w in d]

lst.sort() #排序

lst.reverse() #反转

#屏幕上打印信息

print("The file '%s' has: "%fname)

print(" %s characters" %num_chars)

print(" %s lines" %num_lines)

print(" %s words" %num_words)

print("nThe top 10 most frequent words are:")

i=1 #循环变量

for count,word in lst[:10]:

print('%2s. %4s %s' %(i,count,word))

i += 1

def main():

print_file_stats('D:\Python3.4\82208.txt')

if __name__ == '__main__':

main()

执行结果:

20150719145420515

注:读取之前应该确保文件是可读的,并且解除文件的保护属性。否则读取会异常。

参考文献:

Toby Donaldson著,袁国忠译.Python 编程入门(第三版).人民邮电出版社.2013.12

最后

以上就是无私黑夜为你收集整理的python文本统计_基于Python的文本统计的全部内容,希望文章能够帮你解决python文本统计_基于Python的文本统计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部