复合数据类型,英文词频统计

作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

1.列表,元组,字典,集合分别如何增删改查及遍历。

列表-list
list.append(obj)
增加元素到末尾
list.insert(index, obj)
增加元素到指定位置
index:索引位置
obj:内容
list.extend(list_i)
将list_i列表中的元素增加到list中
list.pop():
默认删除list末尾的元素
list.pop(index)
删除指定位置的元素,index是索引
del list[index]
删除指定位置的元素,index是索引
del list
删除整个列表
list.remove(obj)
移除列表第一个与obj相等的元素
list.clear()
清空列表全部内容
list[index]=obj
修改指定位置的元素
list[index]
通过下标索引,从0开始
list[a:b]
切片,顾头不顾尾
元组-tup
tup=tup1+tup2
元组不支持修改,但可以通过连接组合的方式进行增加
del tup
元组不支持单个元素删除,但可以删除整个元组
tup=tup[index1],tup1[index2], ...
tup=tup[index1:index2]
元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组
tup[index]
通过下标索引,从0开始
tup[a:b]
切片,顾头不顾尾
字典-dict
dict[key]=value
通过赋值的方法增加元素
dict.update(dict_i)
把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key)
del dict[key]
删除单一元素,通过key来指定删除
del dict
删除字典
dict.pop(key)
删除单一元素,通过key来指定删除
dict.clear()
清空全部内容
dict[key]=value
通过对已有的key重新赋值的方法修改
dict.update(dict_i)
把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key)
dict[key]
通过key访问value值
dict.items()
以列表返回可遍历的(键, 值) 元组数组
dict.keys()
以列表返回一个字典所有键值
dict.values()
以列表返回一个字典所有值
dict.get(key)
返回指定key的对应字典值,没有返回none
集合-set
set.add(elmnt)
给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
删 
set.clear()
移除集合中的所有元素。
set.difference_update(set)
移除两个集合中都存在的元素。用于计算差集的集合。
set.discard(value)
移除指定的集合元素。
set.pop()
随机移除一个元素。
set.remove(item)
移除集合中的指定元素。
 改
set.update(set)
修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,
则该元素只会出现一次,重复的会忽略。
 查
set.union(set1, set2...)
返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

 

2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

  • 括号
  • 有序无序
  • 可变不可变
  • 重复不可重复
  • 存储与查找方式

3.词频统计

  • 1.下载一长篇小说,存成utf-8编码的文本文件 file

    2.通过文件读取字符串 str

    3.对文本进行预处理

    4.分解提取单词 list

    5.单词计数字典 set , dict

    6.按词频排序 list.sort(key=lambda),turple

    7.排除语法型词汇,代词、冠词、连词等无语义词

    • 自定义停用词表
    • 或用stops.txt

          8.输出TOP(20)

          9.可视化:词云

 排序好的单词列表word保存成csv文件

import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

线上工具生成词云:
https://wordart.com/create

代码如下:
 1 expect={'a', 'an','i', 'you', 'and', 'the', 'to', 'be', 'is', 'in', 'on', 'or', 'will', 'this', 'there', 'them', 'it', 'those', 'these','they','of', 'if', 'to', 'was', 'were', 'with', 'that', 'witch'
 2          ,'which','so','we','as','have','by','from','are','not','at','been','for','would','its','may','has','but','my','myself','our','ours','ourelves','about','no','nor',
 3         'himself','itself','themselves','whatever','should','had'}#排除无语义词
 4 def read_file():
 5     f = open('C:\Users\leo\Desktop\The Earths Beginning.txt', 'r', encoding='utf-8')
 6     content = f.read()  #通过文件读取字符串 str
 7     f.close()
 8     return content
 9 text = read_file()
10 for i in ",.?;-—[]1234567890()":    #对文本进行预处理
11     text = text.replace(i," ")
12 wordList = text.lower().split()  #转为list列表
13 wordSet =  set(wordList)   #转为set集合
14 wordSet = wordSet - expect #排除无语义词
15 wordDict={ }
16 for w in wordSet:
17     wordDict[w] = wordList.count(w)
18 word = list(wordDict.items())
19 word.sort(key=lambda  x:x[1],reverse=True)
20 print(word)
21 import csv
22 #写入csv文件
23 csvFile=open("The Earths Beginning.csv",'w',newline='',encoding='utf-8')
24 try:
25     writer=csv.writer(csvFile)
26     writer.writerow(word)
27 finally:
28     csvFile.close()
词频统计

词云展示:

原文地址:https://www.cnblogs.com/leo0724/p/10537664.html