第 0006 题:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。
2016-05-11 00:42
591 查看
偷懒一下,遍历目录就不写了,毕竟不爱写日记。
忽略的词严格来说应该有个词库,目前用不到就先不研究了。
忽略的词严格来说应该有个词库,目前用不到就先不研究了。
import os os.chdir('C:/workspace') def count_words(inputname): fh=open(inputname) read_fh=fh.read() fh.close() number=1 is_alpha=[] dict_words={} ignore_words=['a','an','is','it','are','of','by','the','and','for','in','to'] for word in read_fh:#取出文本中的非英文字符 if word.isalpha(): is_alpha.append(word) elif word=='\t' or word=='\n' or word==' ': is_alpha.append(word) fh_alpha=''.join(is_alpha) fh_words=fh_alpha.split() for words in fh_words: #建立单词及频次的字典 words=words.lower() if words not in dict_words and words not in ignore_words: dict_words[words]=number elif words in ignore_words: continue else: dict_words[words]=dict_words[words]+1 #字典按值排序 dict_sort= sorted(dict_words.iteritems(), key=lambda d:d[1], reverse = True) print 'Maximum number of words is "%s" and it appear "%d" times'%(dict_sort[0][0],dict_sort[0][1]) print 'Second number of words is "%s" and it appear "%d" times'%(dict_sort[1][0],dict_sort[1][1]) print 'Third number of words is "%s" and it appear "%d" times'%(dict_sort[2][0],dict_sort[2][1]) count_words("words.txt")
相关文章推荐
- Web服务器工作原理概述
- OpenFrameworks 教程0
- MyBatis Generator 详解
- HDOJ 1792 A New Change Problem (数论)
- php求素数的简单方法
- IntelliJ IDEA 下 web 项部署调试
- bzoj4517【SDOI2016】排列计数
- C++作业5
- 【数据结构】c++实现HashTable(开链法)
- Eclipse发布项目默认编译输出目录改为WEB-INF/classes
- 科学计算工具-ipython
- 欢迎使用CSDN-markdown编辑器
- bzoj4514【SDOI2016】数字配对
- C++上机作业5
- bzoj4542【HNOI2016】大数
- (二)Android 基本控件
- Struts2基础学习(六)—文件的上传和下载
- 《深入浅出WPF》学习笔记之二
- 极光推送
- bzoj4519【CQOI2016】不同的最小割