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

这次作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

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

1.列表的增删改查

list1=['a','b','c']
print('列表')
print(list1)
list1.append('d')
print('增')
print(list1)
del list1[0]
print('删')
print(list1)
list1[1]='e'
print('改')
print(list1)
print('查')
print(list1[1])

  

2.元组的增删改查

a=['an','ang']
b=['bb','bc']
#增
a=a+b
print(a)
#删
del a
#改
a=['an','ang']
a[1]=['and']
print(a)
#查
print(a[1])

  

3.字典的增删改查

dict={'gz':'广州','sz':'深圳'}
#增加
dict.setdefault('mz','梅州')
print("增加后的字典:",dict)
#删除
del dict['mz']
print("删除后的字典:",dict)
#修改
dict['广州'] = '惠州';
print("修改后的字典:",dict)
#查找
print(dict["gz"])

  

4.集合的增删改查

a ={'1991', '1992', '1997'}
print('集合a')
print(a)
a.add('1973')
print('增:a.add(\'1973\')')
print(a)
a.discard('1997')
print('删:a.discard(\'1997\')')
print(a)
print('查:\'1997\' in Set1','1997' in a)

  

二、列表、元组、字典与集合的联系与区别。

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

(1)括号

列表为[ ],元组为( ),字典与集合为{ }。

(2)有序无序

列表与元组有序,字典与集合无序。

(3)可变不可变

列表与字典可变,元组与集合不可以变。

(4)重复不可重复

列表元组集合都可重复,只有字典不可重复。

(5)存储与查找方式

列表和元组都是值,字典是键,集合是键对值

三、词频统计

  1. 下载一长篇小说,存成utf-8编码的文本文件 file
  2. 通过文件读取字符串 str
  3. 对文本进行预处理
  4. 分解提取单词 list
  5. 单词计数字典 set , dict
  6. 按词频排序 list.sort(key=lambda),turple
  7. 排除语法型词汇,代词、冠词、连词等无语义词,自定义停用词或用stops.txt输出TOP(20)
  8. 可视化:词云,排序好的单词列表word保存成csv文件
  9. 线上工具生成词云:
    fo = open('ll.txt','r', encoding='utf-8')
    stra = fo.read().lower()
    fo.close()
    print(stra)  # 1.准备utf-8编码的文本文件file 2.通过文件读取字符串 str
    
    sep = ',.;!'
    for ch in sep:
        stra = stra.replace(ch, '')  # 进行预处理,清除掉sep中存在的标点符号
    print(stra)
    
    strList = stra.split(' ')
    print(len(strList), strList)  # 分解提取单词,转化为列表list
    
    strSet = set(strList)
    print(len(strSet), strSet)  # 转化为集合
    
    strDict = {}
    for world in strSet:
        strDict[world] = strList.count(world)
    
    print(len(strDict), strDict)  # 转化为字典,计算上一个集合中每个单词出现的次数
    
    wcList = list(strDict.items())
    print(wcList)  # 将字典中的目录转化为列表输出
    wcList.sort(key=lambda x: x[1], reverse=True)
    print(wcList)  # 按降序输出
    
    e = {'a', 'the', 'an', 'and', 'i', 'or', 'of'}
    strSet = strSet - e
    print(len(strSet), strSet)  # 排除语法型词汇,代词、冠词、连词等无语义词
    
    for i in range(20):
        print(wcList[i])  # TOP20输出
    import pandas as pd
    
    pd.DataFrame(data=wcList).to_csv('joker.csv', encoding='utf-8')
    

      

  10. 生成词云
posted @ 2019-03-25 14:05  刘铖  阅读(144)  评论(0编辑  收藏  举报