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

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

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

  • 列表
 1 #创建一个列表
 2 list1 = ['a','b','c']
 3 
 4 # 访问列表中的值
 5 print("list1[0]:",list1[0])
 6 print("list1[1:5]:",list1[1:2])
 7 
 8 # 更新某元素的值
 9 print('更新列表前',list1)
10 list1[1] = 'c'
11 print('更新列表后',list1)
12 
13 # 删除元素
14 print('删除列表元素前',list1)
15 del list1[1]
16 print('删除列表元素后',list1)
17 
18 # 增加元素
19 print('增加列表元素前',list1)
20 list1.append('d')
21 print('增加列表元素后',list1)

运行结果:

 

  • 元祖
# 创建一个元祖
tup1 = (1,2,3,4,5)

# 访问元祖中的值
print("tup1[0]:",tup1[0])
print("tup1[1:4]:",tup1[1:4])

#元祖的拼接
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2;
print ('tup3',tup3)

#元祖无法修改删除元素

运行效果图:

 

  • 字典
#创建字典
dict1 = {'a':1,'b':2,'c':3}

#访问字典里的值
print("dict['a'] ",dict1['a'])

# 修改字典元素
print("修改字典元素前",dict1)
dict1['a'] = 4
print("修改字典元素后",dict1)

# 删除字典元素
print("删除字典元素前",dict1)
del dict1['a']
print("删除字典元素后",dict1)

# 删除字典元素
print("增加字典元素前",dict1)
dict1['d'] = 5
print("增加字典元素后",dict1)

运行效果图:

 

  • 集合
# 创建集合
parame = {'a','b','c'}

# 添加元素
print("添加集合元素前",parame)
parame.add('d')
print("添加集合元素后",parame)

# 删除元素
print("删除集合元素前",parame)
parame.remove('d')
print("删除集合元素后",parame)

运行效果图:


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

# 停用词
xclude = {'a','the','and','i','you','in','but','not','it','s','if','do'}
import pandas as pd
# 获取文本文件并进行替换标点符号处理函数
def gettxt():
    sep = ".,:;?!-_'"
    txt = open(r'novel.txt','r',encoding='utf-8').read().lower()
    for ch in sep:
        txt = txt.replace(ch,'')
    return txt

# 对文本进行切割筛选
wordList = gettxt().split()
wordset = set(wordList)-exclude

#统计分词
worddict = {}
for w in wordset:
    worddict[w] = wordList.count(w)
    
# 排序
wordsort = list(worddict.items())
wordsort.sort(key= lambda x:x[1],reverse=True )

# 输出到文件
pd.DataFrame(data = wordsort).to_csv(r'sort.csv',encoding='utf-8')

 

统计的词频:

 

生成的词云图:

 

posted @ 2019-03-24 20:21  初学-者  阅读(168)  评论(0)    收藏  举报