复合数据类型,英文词频统计
1.列表,元组,字典,集合分别如何增删改查及遍历。
(1)列表之增:append(增补)直接把新数据放到列表的最后一项。
insert(插入)比append更灵活,可以插到任何
extend可以将一个集合中的元素一一添加到列表中
(2)列表之删:remove通过.remove()删除指定内容,不能直接靠下标实现删除。
pop通过下标来删除,并且可以返回这个删除的元素。
(3)列表之改:直接对指定下标的元素赋值即可
(4)列表之查:in/not in/index/count
元祖:元祖无法进行增删改。
(1)元祖之查:index /count
字典:
(1)字典之增:直接通过键值对赋值即可添加。
(2)字典之删:pop通过下标来删除对应的键值对。
(3)字典之改:直接对已有的键值对进行赋值。
(4)字典之查:print(Dict['time']) # 直接查询'time'对应的值,此种方式若该key不存在,则报错
print(Dict.get('time')) # 功能同上,但若该key不存在会返回None,而不是报错
(5)字典之遍历:
print(Dict.keys()) # 遍历key.
print(Dict.values())
# 遍历value.
print(Dict.items()) # 遍历键值对.
集合:
(1)集合之增:s.add('新增key'),
新增的元素也许会在集合内的任何位置,每次执行结果也不尽相同!
(2)集合之删:
s.pop() # 删除首个元素 谁在最前面删除谁
2.总结列表,元组,字典,集合的联系与区别
列表的特点就是:可重复,类型可不同。类型不同也是跟数组最本质的区别了。列表用“[]”表示。有序。
元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用“()”表示。有序。
字典键值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。键/值对是无序的。
集合只包含键,而没有对应的值,包含的数据不重复且无序。
3.词频统计
-
1.下载一长篇小说,存成utf-8编码的文本文件 file
2.通过文件读取字符串 str
3.对文本进行预处理
4.分解提取单词 list
5.单词计数字典 set , dict
6.按词频排序 list.sort(key=lambda),turple
7.排除语法型词汇,代词、冠词、连词等无语义词
- 自定义停用词表
- 或用stops.txt
f = open('novel.txt','r', encoding='UTF-8') str = f.read() f.close() text=str.lower() sep = ",.!?—" for s in sep: text = text.replace(s,' ') text = text.split(); dict={} for word in text: dict[word] = text.count(word) exclude={'the','i','mr','but','by','said','be','were','which','and','of','to','a','in','was','she','her','had','that','it','with','from','which','this','an','on','he','for','you','as','his','not','at','mrs','my','is','there','who','have'}#定义数组 for i in exclude: if i in dict.keys(): dict.pop(i) word=list(dict.items()) word.sort(key=lambda x:x[1],reverse=True) print(word) import pandas as pd pd.DataFrame(data=word).to_csv('novel.csv',encoding='utf-8')
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
posted on 2019-03-11 17:53 kenda_yellow 阅读(171) 评论(0) 编辑 收藏 举报