[Python]任一个英文的纯文本文件,统计其中的单词出现的个数。(考虑单词-分行)
来源:互联网 发布:淘宝网男手提包 编辑:程序博客网 时间:2024/06/05 16:33
第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。
思路:英文的纯文本文本,除了空格,句号,逗号,感叹号等等全都是单词的分割点,原本想着分开讨论,后来发现网上有人用了正则表达式的替换将所有其他的标点符号替换成空格,再统一分割,我借鉴了这种做法,借鉴代码代码有点问题,我在此基础上进行了修改,而且考虑到英语单词由于一行位置不够,用-连接进行分行的情况,用if语句进行考虑。
代码如下:
#coding=utf-8import redef get_word_frequencies(file_name): dic = {} txt = open(file_name, 'r').read().splitlines() n=0 for line in txt: print line line = re.sub(r'[.?!,""/]', ' ', line) #要替换的标点符号,英文字符可能出现的 line = re.sub(r' - ', ' ', line) #替换单独的‘-’ for word in line.split(): #当一行的最后一个字符是-的时候,需要跟下一个英文字符串联起来构成单词 if word[-1] =='-': m=word[:-1] n=1 break if n==1: word=m+word n=0 print word dic.setdefault(word.lower(), 0) #不区分大小写 dic[word.lower()] += 1 #print dicget_word_frequencies("F:/Python/practice/4.txt") #读写文件路径:可以直接和执行文件放在一起,不用加路径,文件名即可,如果加路径,需要用/连接,而不是\连接
因为读取文件的字符串是先分行,再根据每行通过空格分割单词,所以替换应该放在第一个for循环里面,处理对象是字符串(解释与原答案不同的地方)。将每行字符串进行分割时,可能出现分词用‘-’连接的只会是最后一个word,那么需要做的将除去‘-’的部分保存下来,并跳出循环,不将数据录入dict,和接下来即将要进行分割的下一个字符串的首word连接起来,怎么确定是哪个字符串执行连接操作,就需要n标志位的配合了,具体的看上面代码吧。
阅读全文
0 0
- [Python]任一个英文的纯文本文件,统计其中的单词出现的个数。(考虑单词-分行)
- 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。
- 任一个英文的纯文本文件,统计其中的单词出现的个数。
- 任一个英文的纯文本文件,统计其中的单词出现的个数。
- 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数
- 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。
- 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数
- 第 0004 题: 任一个英文的纯文本文件,统计其中的单词出现的个数
- 每天一个python小程序 004:任一个英文的纯文本文件,统计其中的单词出现的个数
- 如何用Python实现任一个英文的纯文本文件,统计其中的单词出现的个数?
- 任一个英文的纯文本文件0004.txt,统计其中的单词(不区分大小写)出现的个数
- python 任意一个英文的纯文本文件,统计其中的单词出现的个数
- 每天一个小程序——第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数
- python 统计文本文件中单词出现的个数
- Python 练习册 4-统计文本文件中单词出现的个数
- 有一行字符,统计其中的单词个数(单词之间以空格分隔),并将每一个单词的第一个字母改为大写。
- 有一行字符,统计其中的单词个数(单词之间以空格分隔),并将每一个单词的第一个字母改为大写
- 统计单词出现最多的个数
- 数据类型转换与自定义函数
- 重磅消息:OpenBSD 将会在每次重启后都使用和之前不同的内核
- LUA 基础语法相关
- URAL1004 Sightseeing Trip(floyd+路径输出)
- iOS安全系列之 HTTPS
- [Python]任一个英文的纯文本文件,统计其中的单词出现的个数。(考虑单词-分行)
- python3精简笔记(二)——函数
- java内存模型总结
- 2015多校第九场 HDU 5402 Travelling Salesman Problem 棋盘染色法,构造
- easyUI的课程表练习
- 【MySQL基础】如何选择存储引擎
- OkHttp网络连接工具类
- java编程思想笔记---并发Callable接口
- Linux shell命令之cat