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

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

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

    1、列表

    1)增

      • append()方法:在列表的末尾增加一个元素
      • insert()方法:在列表指定的位置上增加一个元素
      • extend()方法:可迭代,分解成元素添加在末尾

    2)删

      • pop()方法: 按照下标索引删除指定的值
      • remove()方法:按元素删除指定的值
      • del:删除列表、也可以进行切片删除

    3)改

    4)查

    5)遍历

     

    2、元组

      • 元组不允许修改以及单个删除元素

     

    3、字典

    1)增

      • dict[key]=value 通过赋值的方法增加元素

     

    2)删

      • del dict[key]  删除单一元素,通过key来指定删除
      • dict.pop(key)  删除单一元素,通过key来指定删除

     

    3)改

      • dict[key]=value  通过对已有的key重新赋值的方法修改

     

    4)查

      • dict[key]  通过key访问value值

     

    4、集合

    1)增

      • add()方法:增加一个元素

     

    2)删

      • remove()和pop()方法:删除集合中一个元素

     

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

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

    联系与区别如下:

    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 string
    import pandas as pd
    
    '''定义获取文件并处理函数'''
    def gettext():
        txt = open("After Twenty Years.txt").read().lower()
    
        for c in string.punctuation:
            txt = txt.replace(c, " ")
        return txt
    
    '''将文本分成单词'''
    txtDC=gettext().split( )
    
    '''过滤无意词'''
    ex = {'a','an','and','was','as','up','my','it','here','at','ll','his','s','he','that','from','had','have','we','the','i','you','in','on','but','with','not','by','its','for','of','to'}
    txtSet=set(txtDC)-ex
    
    '''单词统计'''
    txtDic = {}
    for word in txtSet:
        txtDic[word] = txtDC.count(word)
    
    '''排序'''
    wordList = list(txtDic.items())
    wordList.sort(key=lambda x:x[1],reverse=True)
    
    '''输出top20'''
    for i in range(20):
        print(wordList[i])
    
    '''保存为csv文件'''
    pd.DataFrame(data=wordList).to_csv('My story.csv',encoding='utf-8')

    下面是After Twenty Years.txt:

    运行截图如下:

    控制台输出:

     

    可视化词云:

  • 相关阅读:
    重构前的程序:通过rsync命令抓取日志文件
    标准输入、输出和错误和文件重定向
    错误处理的思考
    测试和恢复性的争论:面向对象vs.函数式编程
    哈佛经济学家关于工作效率的意外发现
    追求代码质量: 监视圈复杂度
    天猫程序猿高端算法找妹子
    代码度量工具——SourceMonitor的学习和使用
    我们能从java的HelloWorld学到什么?
    Java高新技术第二篇:反射技术
  • 原文地址:https://www.cnblogs.com/sanshuishu/p/10538477.html
Copyright © 2011-2022 走看看