复合数据类型,英文词频统计
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表:
# 列表 list = ['a','b','hello',1]
# 增 第一在列表后方添加数据 第二为在对应的下边插入数据 list.append(2) list.insert(0,'0') print(list)
# 删 删除对应下标的列表中的数据 del list[2] print(list)
# 改 修改对应下标的列表中的数据
list[2]= 'hi'
print(list)
# 查 查询下表数据 输出整个列表 print(list[0]) print(list)
元组
增:无
删:无
改:无
查:
tup = ('hi','a','b') print(tup[0]) print(tup)
字典
dict = {'a':1,'b':2,'c':3}
# 增 dict['d'] =4
# 删 del dict['a']
# 改 dict['a'] = 10086
# 查 print(dict['c']) print(dict)
集合
jihe = {'集合1','集合2','集合3'}
# 增 jihe.add('集合4')
# 删 jihe.remove('集合2')
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
联系与区别:
括号:列表:[ ], 元组:( ), 字典与集合:{ };
有序无序: 有序:列表与元组 ,无序:集合与字典;
可变与不可变:可变:列表、字典、集合,不可变:元组;
重复不可重复:重复:列表与元组,不重复:字典与集合;
存储与查找方式:列表与元组通过下表查找,字典通过key查找。
统计
-
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
import pandas as pd # 获取排除语法型词汇,代词、冠词、连词等无语义词 f = open(r'C:\Users\Shinelon\Desktop\stops.txt', 'r', encoding='utf8') stops = f.read(); f.close(); stops1 = stops.replace('\n', '').replace('\'', '').replace('"', '').replace(',', '').lower().split(); # 获取文本信息 xiaoshuo=open(r'C:\Users\Shinelon\Desktop\xiaoshuo.txt','r',encoding='utf8'); text = xiaoshuo.read(); xiaoshuo.close() text1 = text.lower().replace('.', ' ').replace('?', ' ').replace(',', ' ').replace('"','').split(); # 去除无用的词语 text2 = set(text1) - set(stops1) # 将词语与其出现的次数以键/值对方式存储 te = {}; for w in text2: te[w] = text1.count(w); # 进行词语出现次数排序 选择前20个词 tesort = list(te.items()) tesort.sort(key=lambda x: x[1], reverse=True) tesort2 = tesort[0:20] for i in tesort2: print(i) #存为csv文件 pd.DataFrame(data=tesort).to_csv(r'C:\Users\Shinelon\Desktop\1234.csv', encoding='utf-8')
输出TOP(20):
词云