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

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

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

    列表-list
    list.append(obj)
    增加元素到末尾
    list.insert(index, obj)
    增加元素到指定位置
    index:索引位置
    obj:内容
    list.extend(list_i)
    将list_i列表中的元素增加到list中
    list.pop():
    默认删除list末尾的元素
    list.pop(index)
    删除指定位置的元素,index是索引
    del list[index]
    删除指定位置的元素,index是索引
    del list
    删除整个列表
    list.remove(obj)
    移除列表第一个与obj相等的元素
    list.clear()
    清空列表全部内容
    list[index]=obj
    修改指定位置的元素
    list[index]
    通过下标索引,从0开始
    list[a:b]
    切片,顾头不顾尾
    元组-tup
    tup=tup1+tup2
    元组不支持修改,但可以通过连接组合的方式进行增加
    del tup
    元组不支持单个元素删除,但可以删除整个元组
    tup=tup[index1],tup1[index2], ...
    tup=tup[index1:index2]
    元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组
    tup[index]
    通过下标索引,从0开始
    tup[a:b]
    切片,顾头不顾尾
    字典-dict
    dict[key]=value
    通过赋值的方法增加元素
    dict.update(dict_i)
    把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key)
    del dict[key]
    删除单一元素,通过key来指定删除
    del dict
    删除字典
    dict.pop(key)
    删除单一元素,通过key来指定删除
    dict.clear()
    清空全部内容
    dict[key]=value
    通过对已有的key重新赋值的方法修改
    dict.update(dict_i)
    把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key)
    dict[key]
    通过key访问value值
    dict.items()
    以列表返回可遍历的(键, 值) 元组数组
    dict.keys()
    以列表返回一个字典所有键值
    dict.values()
    以列表返回一个字典所有值
    dict.get(key)
    返回指定key的对应字典值,没有返回none
    集合-set
    set.add(elmnt)
    给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
    删 
    set.clear()
    移除集合中的所有元素。
    set.difference_update(set)
    移除两个集合中都存在的元素。用于计算差集的集合。
    set.discard(value)
    移除指定的集合元素。
    set.pop()
    随机移除一个元素。
    set.remove(item)
    移除集合中的指定元素。
     改
    set.update(set)
    修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,
    则该元素只会出现一次,重复的会忽略。
     查
    set.union(set1, set2...)
    返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

     

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

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

    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 expect={'a', 'an','i', 'you', 'and', 'the', 'to', 'be', 'is', 'in', 'on', 'or', 'will', 'this', 'there', 'them', 'it', 'those', 'these','they','of', 'if', 'to', 'was', 'were', 'with', 'that', 'witch'
     2          ,'which','so','we','as','have','by','from','are','not','at','been','for','would','its','may','has','but','my','myself','our','ours','ourelves','about','no','nor',
     3         'himself','itself','themselves','whatever','should','had'}#排除无语义词
     4 def read_file():
     5     f = open('C:\Users\leo\Desktop\The Earths Beginning.txt', 'r', encoding='utf-8')
     6     content = f.read()  #通过文件读取字符串 str
     7     f.close()
     8     return content
     9 text = read_file()
    10 for i in ",.?;-—[]1234567890()":    #对文本进行预处理
    11     text = text.replace(i," ")
    12 wordList = text.lower().split()  #转为list列表
    13 wordSet =  set(wordList)   #转为set集合
    14 wordSet = wordSet - expect #排除无语义词
    15 wordDict={ }
    16 for w in wordSet:
    17     wordDict[w] = wordList.count(w)
    18 word = list(wordDict.items())
    19 word.sort(key=lambda  x:x[1],reverse=True)
    20 print(word)
    21 import csv
    22 #写入csv文件
    23 csvFile=open("The Earths Beginning.csv",'w',newline='',encoding='utf-8')
    24 try:
    25     writer=csv.writer(csvFile)
    26     writer.writerow(word)
    27 finally:
    28     csvFile.close()
    词频统计

    词云展示:

  • 相关阅读:
    UIView动画效果之----翻转.旋转.偏移.翻页.缩放.取反的动画效
    iOS Runloop 消息循环
    Objective-C Fast Enumeration
    Obj-C Memory Management
    设计模式
    查找算法(顺序查找、二分法查找、二叉树查找、hash查找)
    设计模式
    Objective-C Operators and Expressions
    Objective-C Numbers
    HDU 1828 Picture(线段树扫描线求周长)
  • 原文地址:https://www.cnblogs.com/leo0724/p/10537664.html
Copyright © 2011-2022 走看看