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


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

    作业要求:

    • 文字作业要求言简意骇,用自己的话说明清楚。
    • 编码作业要求放上代码,加好注释,并附上运行结果截图。

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

    • 列表:
    增:
    1
    List = ['python','is','easy','to','learn'] 2 List.append('100') 3 List 删:
    4 del List[5] 5 List 改:
    6 List[2] = 'hard'
    查:
    7 List 8 print("List[4]:",List[4]) 遍历:
    9
    for i in List: 10 print ((List.index(i) + 1, i))
    • 运行结果:

    • 元组:
    增(元组相加)
    1
    tup1 = ('python','is','easy','to','learn') 2 tup2 = (100,200) 3 tup3 = tup1 + tup2 4 print (tup3) 删:
    5 del tup2 6 print(tup2)
    查:
    7 print("tup1[0]:",tup1[0]) 遍历:
    8 for item in tup1: 9 print(item)
    • 运行结果:

    • 字典:
    增: 
    1
    dict1 = {'python':'good','play':'nice','sport':'healthy'} 2 dict1['study']="pretty good" 3 dict1 删:
    4
    del dict1['play'] 5 dict1 改:
    6
    dict1['study']="actually good" 7 dict1 查:
    8
    print("dict1['study']:",dict1['study']) 遍历:
    9
    for item in dict1.items(): 10 print(item)
    • 运行结果:

    • 集合:
    增:
    1
    set1 = {'python','is','easy','to','learn'} 2 set1.add('study') 3 set1
    删:
    4 set1.remove('to') 5 set1 查:
    6 print("set1:",set1) 遍历:
    7 for i in set1: 8 print (i)
    • 运行结果:

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

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

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表也可以可以进行截取、组合,而向list中添加项有两种方法:append和extend。

    元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组使用小括号,列表使用方括号。

    集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。

    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 import pandas as pd
     2 
     3 article = open('article-long.txt', 'r', encoding='utf8')
     4 
     5 # 排除词汇列表
     6 exclude = ['a', 'the', 'and', 'if', 'you', 'in', 'but', 'not', 'it', ' s', 'if', "i"]
     7 
     8 # 打开文章函数getarticle
     9 def getarticle():
    10     sep = "'?', '?', '!'," '", "'", ' "', '"',':',':','.',',', ',', '.', '。','“','”',','"
    11     text = article.read().lower()
    12     for ii in sep:
    13         text = text.replace(ii, ' ')
    14     return text
    15 
    16 
    17 articleList = getarticle().split()
    18 articleDict = set(articleList)
    19 exclude1 = set(exclude)
    20 articleDict = articleDict-exclude1
    21 
    22 # 统计单词数量
    23 countDict = {}
    24 for word in articleDict:
    25     countDict[word] = articleList.count(word)
    26 print(countDict.items())
    27 word = list(countDict.items())
    28 
    29 # 排序单词数量
    30 word.sort(key=lambda x: x[1], reverse=True)
    31 print(word)
    32 
    33 # 输出前二十位的单词
    34 for i in range(20):
    35     print(word[i])
    36 
    37 pd.DataFrame(data=word).to_csv('C:\hungry-love.csv', encoding='utf-8')
    
    
    运行结果:
    • 输出字典中的所有单词及其出现次数并选取前20个:
    
    
    生成csv文件如下:
    生成词云如下:


     
  • 相关阅读:
    angular6 input节流
    遇到跨域别害怕,我来帮你搞定它
    angular4,6 引入第三方插件的方法
    带有动画的字体
    angular 多端打包
    css 常用布局
    chrome 49 版本 跨越 --args --disable-web-security --user-data-dir
    JavaScript中的document.cookie的使用
    ios/iphone手机请求微信用户头像错位BUG及解决方法
    Safari 前端开发调试 iOS 完美解决方案
  • 原文地址:https://www.cnblogs.com/Aliuyu/p/10538551.html
Copyright © 2020-2023  润新知