zoukankan      html  css  js  c++  java
  • 复合数据类型,英文词频统计

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

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

    1、列表

    增:

    list=['a','b','c']
    list.append(['d','q'])
    list.extend(['e','f'])
    list.insert(0,1)

    删:
    list=['a','b','c','d','e','f']
    del list[0]
    list.pop()
    list.remove('e')
    list.clear()
    

      

    查:

    print(list)
    print(list[0])

    改:

    list=['a','b','c','d','e','f']
    list[0]=1
    print(list)

    遍历:

    for i in list:
        print(i,end='')
    for i in range(len(list)):
        print(list[i],end='')
    for index,value in enumerate(list):
        print(index,value)

    2、元组

    增:

    tupA=('a','b','c','d','e','f')
    tupB=('q','m')
    tupC=tupA+tupB
    print(tupC)

    删:
    del tupC

    查:

    print(tupC)
    print(tupC[0]) 

    改:

    元组不能修改

    遍历:

    for i in tupA:
        print(i,end='')
    for i in range(len(list)):
        print(tupA[i],end='')
    for index,value in enumerate(tupA):
        print(index,value) 

    3、字典

    增:

    dict={'a':1,'b':2,'c':3,'d':4}
    dict['e']=5
    dict.update({'f':6,'g':7})
    print(dict)

    删:
    dict={'a':1,'b':2,'c':3,'d':4}
    del dict['a']
    dict.pop('d')
    print(dict)

    查:

    dict={'a':1,'b':2,'c':3,'d':4}
    print(dict['a'])

    改:

    dict={'a':1,'b':2,'c':3,'d':4}
    dict.update({'a':9999})
    dict['b']=999
    print(dict)

    遍历:

    dict={'a':1,'b':2,'c':3,'d':4}
    for i in dict.items():
        print(i)
    for i in dict.keys():
        print(i)
    for i in dict.values():
        print(i)
    for i,j in dict.items():
        print(i,j)

     

    4、集合

    增:

    set={'a',1,2,'c','d'}
    set.update({'qq':1})
    set.update([1,2,3])
    set.add('bb')
    print(set)

    删:
    set={'a',1,2,'c','d'}
    set.discard('qqqq')
    set.remove('a')
    set.pop()
    set.clear()
    print(set)

      

    查:

    set={'a',1,2,'c','d'}
    print(set) 

    改:

    没有修改的方法

    遍历:

    set={'a',1,2,'c','d'}
    for i in set:
        print(i,end='')
    

    二.总结列表,元组,字典,集合的联系与区别。

    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

    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
    file=open('artical.txt',encoding='utf-8')
    text=file.read()
    text=text.lower()
    for i in str('''?!",.'''):
        text=text.replace(i,'')
    text=text.split()
    
    # 统计单词数量
    exclude = ['a', 'the', 'and', 'if', 'you', 'in', 'but', 'not', 'it', ' s', 'if', "i"]
    dict={}
    for i in text:
        if i not in exclude:
           if i not in dict:
             dict[i]=text.count(i)
    print(dict)
    
    # 排序单词数量
    word=list(dict.items())
    word.sort(key=lambda x: x[1], reverse=True)
    print(word)
    
    # 输出前二十位的单词
    for i in range(20):
       print(word[i])
    
    pd.DataFrame(data=word).to_csv('b.csv',encoding='utf-8')
    
    
    

      

     
    运行结果:

     
    
    
    生成csv文件如下:
    
    
    生成词云如下:

    
    
  • 相关阅读:
    《Three.js 入门指南》3.1.1
    《Three.js 入门指南》3.1.1
    《Three.js 入门指南》3.1.1
    Spring 框架基础(04):AOP切面编程概念,几种实现方式演示
    微服务架构案例(01):项目技术选型简介,架构图解说明
    Java描述设计模式(15):责任链模式
    数据安全管理:RSA加密算法,签名验签流程详解
    Java描述设计模式(14):解释器模式
    SpringBoot2 配置多数据源,整合MybatisPlus增强插件
    SpringBoot2 整合 Drools规则引擎,实现高效的业务规则
  • 原文地址:https://www.cnblogs.com/97lzc/p/10579621.html
Copyright © 2011-2022 走看看