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

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

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

    列表:

    增加

    list=['l','z','d','h','k']
    list.append('aa')
    print(list);
    

     ['l', 'z', 'd', 'h', 'k', 'aa']

    删除

    list=['l','z','d','h','k']
    del list[3]#删除第四个元素
    print(list);
    

     ['l', 'z', 'd', 'k']

    修改

    list=['l','z','d','h','k']
    list[4] = 'b'  # 更改第五个元素
    print(list);
    
    ['l', 'z', 'd', 'h', 'b']
    查询
    list=['l','z','d','h','k']
    x=list.index('d') 
    print(x);
    
    2
    遍历
    list=['l','z','d','h','k']
    for i in list: print(i)  
    
    l 
    z
    d
    h
    k
    元组:不能进行增加和修改删除元组中的元素。
    list=('ll','wt')
    print(list[0])
    

       ll

    字典

    增加:

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

     {'a': 1, 'b': 2, 'c': 3, 'd': '4'}

    删除:

    e={'a':1,'b':2,'c':3}
    del e['a'] 
    print(e)
    

     {'b': 2, 'c': 3}

    修改:

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

     {'a': 4, 'b': 2, 'c': 3}

    遍历:

    e={'a':1,'b':2,'c':3}
    for key in e:print(key)
    

     a
     b
     c

    集合(不能查找和修改指定元素)

    l=set('z')
    l.add('p')  #增加元素
    print(l)
    

     {'p', 'z'}

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

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

     列表:列表是一组有序项目的数字结构,列表的项目应该放在方括号[ ]中,列表是可以被改变和可重复的;按照索引的方式查找通过偏移存储并且元素可以任意类型存在。

     元组:元组与列表十分相似,可重复也是通过偏移的方式进行存储,不过元组是不可变的即是你是不能对元组中的元素进行修改,而且用的是();元组的元素是固定的长度、异构,也是任意嵌套。

     字典:字典使用的是{},字典是无序的,但是可变可重复;使用键-值进行存储,查找速度快;字典的key是不能变的,list不能作为key,字符串、元祖、整数等都可以。

     集合:无序不可变,使用([ ]),与字典类似,但只包含键,而没有对应的值;元素可以是列表、元组、字典中的任意一个或多个。

    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
    # -*- coding=utf-8 -*-
    exclude={'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to','is','was','that','he','this','are','it','be','as','at','on','if','has','have','so','or'}  #定义数组#
    def gettxt():
        sep=".,:;?!-_'"
        txt=open(r'F:ll.txt','r',encoding='UTF-8').read().lower()
        for ch in sep :
            txt=txt.replace(ch,' ')
        return txt
    #分解提取单词#
    bigList=gettxt().split()
    print(bigList);
    print('big:',bigList.count('big'))
    bigSet=set(bigList)
    #过滤单词,包括一些冠词和连词等#
    bigSet=bigSet-exclude
    print(bigSet)
    #单词计数#
    bigDict={}
    for word in bigSet:
        bigDict[word]=bigList.count(word)
    print(bigDict)
     
    print(bigDict.items())
    word=list(bigDict.items())
    #按词频排序#
    word.sort(key=lambda x:x[1],reverse=True)
    print(word)
    #输出频率较高的词语top20#
    for i in range(20):
        print(word[i])
    

     

  • 相关阅读:
    WebApi接口访问频率控制的实现
    一分钟告诉你究竟DevOps是什么鬼?
    大多数企业不知道的隐形成本
    29个网络营销必须知道的数据
    如何让自己的生活有品质感?
    一则有意思的产品小故事
    免费学习编程的9个地方
    营销,就是营销人性的弱点!
    网络营销行业十大看了就想吐的“滥词”
    高质量的内容是SEO的关键
  • 原文地址:https://www.cnblogs.com/lianglin918/p/10592100.html
Copyright © 2011-2022 走看看