Python实现对哈利波特小说单词统计

文章目录

  • 要求
  • 一、打开文件
    • 正则表达式
    • spilt()函数
      • 实例
  • 二、词频统计
  • 三、单词排序
  • 四、输出或写入文件
    • python文件写入


要求

对HarryPotter5.txt英文小说进行词频统计,统计出前二十个频率最高的单词,并打印输出或写入文件


一、打开文件

打开文件并将单词中非单词字符用空格代替
代码:

#读取小说内容
fp = open('HarryPotter5.txt')
content = fp.read()
#所有标点符号 用空格代替
#匹配非单词字符的字符
content = re.sub('\W',' ',content)
# Python split() 通过指定分隔符对字符串进行切片
words = content.split() # 以空格为分隔符,包含 \n

正则表达式

正则re

\W
__匹配非单词字符的字符。_这与 \w 正相反。如果使用了 ASCII 旗标,这就等价于 [^a-zA-Z0-9]。如果使用了 LOCALE 旗标,则会匹配当前区域中既非字母数字也非下划线的字符。

spilt()函数

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
str.split(str="", num=string.count(str)).
   str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
   num – 分割次数。默认为 -1, 即分隔所有

实例

str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );       # 以空格为分隔符,包含 \n
print str.split

你可能感兴趣的:(Python基础及应用,python,字符串,列表,正则表达式)