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

    作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696


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

    1. 列表操作
      # -*- coding: utf-8 -*-
      
      # 定义一个列表
      textList = ['cd','rm','mkdir','cat','tar']
      
      # 列表增加
      textList.append('gunzip')
      textList.insert(2 , 'qzip')
      
      # 列表删除
      textList.pop(1)
      del textList[3]
      
      # 列表修改
      textList[1] = 'love'
      
      # 列表遍历
      for i in range(len(textList)):
          print(textList[i])
    2. 元组操作
      # 定义元组
      tuple1 = (1,2,3,4,5,6)
      tuple1 = tuple([1,2,3,4]) #序列->元组
      
      # 遍历元组
      for i in range(len(tuple1)):
          print(tuple1[i])
    3. 字典操作
      # 创建字典
      textDict = {'xiaoming':'80','xiaobai':'90'}
      print(textDict)
      # 增加操作
      textDict['xiaohong']='100'
      print(textDict)
      # 修改操作
      textDict['xiaoming']='100'
      print(textDict)
      # 删除操作
      del textDict['xiaoming']
      print(textDict)
      # 查找操作
      print(textDict['xiaobai'])
      # 遍历操作
      for s in textDict:
          print( "%s : %s"%(s,textDict[s]))
    4. 集合
      # 两种方法创建
      set1 = set('kydaa')
      set2 = {'abc', 'jaja', 'abc', 'kyda'}
      print(set1)
      print(set2)
      # 结果:自动将重复元素去除
      {'a', 'y', 'd', 'k'}
      {'jaja', 'abc', 'kyda'}

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

    1. 列表:列表是用[]括起来的,是一种有序的数据结构,这种数据结构是可以变化的,里面的值也是可以变化的,存储的方式是[,,,],增加的方式有在后面增加也有在指定的位置进行插入,查找方式有按index的值进行查找。
    2. 元组:元组是用()括起来的,是一种有序的数据结构,这种数据结构是不可以变化的,即初始化后就不能再修改了但是例外的就是里面有列表是可以修改列表里面的值,存储方式是(,,,)。
    3. 字典:字典是用{}括起来的,是一种无序的数据结构,这种数据结构是可以变化的,里面的值键子是不可以重复的,存储方式是{‘key1’:‘value’,‘key2’:‘value’},查找的方式是同配对键子的值。
    4. 集合:集合特性:与字典类似,但只包含键,而没有对应的值,包含的数据不重复。

    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.可视化:词云
    • 代码如下
    • # 读取文件
      f = open("wz.txt","r")
      text = f.read()
      f.close()
      # 转为小写
      text = text.lower()
      # 将所有其他做分隔符(,.?!)替换为空格
      text = text.replace(","," ").replace("."," ").replace("?"," ").replace("!"," ")
      # 分割为单词
      text = text.split()
      
      
      setText = set(text)
      exclude = {'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to'}
      setText = setText-exclude
      
      # 转为字典
      textDict = {}
      for word in setText:
          textDict[word] = text.count(word)
      
      # 转为列表
      word = list(textDict.items())
      word.sort(key = lambda x:x[1],reverse=True)
      print(word[:20])
      
      # 生成excel
      import pandas as pd
      pd.DataFrame(data=word).to_csv('Harry Potter.csv',encoding='utf-8')

      可视化如下

  • 相关阅读:
    vue 自定义指令
    vue 插槽
    vue 菜单跳转 页面错乱
    vue项目中使用elementUI的el-tabs组件 浏览器卡死问题 解决办法
    vue 环境配置
    移动端页面 问题 注意事项
    定义全局 强制刷新指令
    手机端样式 处理
    手机访问电脑本地开发的页面
    百度AI
  • 原文地址:https://www.cnblogs.com/hesz/p/10514143.html
Copyright © 2011-2022 走看看