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

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

     列表

    list=['30','50']
    
              list.append( '20' )#增加元素
    
              del list[1]#删除第二个元素
    
              list[1]='10' #更改第二个元素
    
              list.insert(2,'10') #插入列表
    
              list.index('20')#查找元素的位置
    
              list.index['50'] # 查看元素50的位置
    
              list.count('30') #统计元素个数
              
              list.copy()复制列表
    
              for i in list: printf(list[i])  #遍历
    

      

    tr=['30','50']  tr2=['20','30']#元组
    
          #  元组不能进行增加和修改删除元组中的元素,其实就是要把元组看做一个整体,对一个元组进行删除和增加。
    
             del tr #删除整个元组
    
             tr3=tr+tr2  #把两个元组组合在一起,结果为tr3=['30','50','20','30']
    
             printf(tr[0])  #查找元组中的第一个元素
    
             for i in range(len(tr)): printf(tr[i])  #遍历
    

      

    d['a']=11   #字典修改键a 的值
    
              del d['a']   #删除键a
    
              a=d['a']    #查看键a的值
    
             d.clear()  #删除字典中的所有条目
    
    
              str(d)  #输出字典
    
    for key in d:printf(d[key]) #遍历
    

      

    a=set('a')#集合
    
              a.add('b')  #增加元素
    
              a.remove('b') 或者 a.discard('b')  #删除元素  
    
              a.pop()    #随机删除元素
     
              集合无序,不能查找和修改指定的元素
    

      

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

     

    括号

            列表[];  元组(); 字典{};集合()或者{}

    有序无序

           列表和元组有序,字典和集合无序

    可变不可变

           列表,字典可变,元组不可变,集合可变也可不变

    重复不可重复

           列表,元组,字典可重复,集合不可重复

    存储与查找方式

          列表:存储在连续的内存地址中,利用下标索引号查找。

          元组:偏移存取,可以进行索引查找

          字典:键-值存储方式 ,通过键查找值

          集合:存储的元素是无序且不重复 ,可以通过in或not in查找

     

    3.词频统计

      • 1.下载一长篇小说,存成utf-8编码的文本文件 file

        2.通过文件读取字符串 str

        3.对文本进行预处理

        4.分解提取单词 list

        5.单词计数字典 set , dict

        6.按词频排序 list.sort(key=lambda),turple

        7.排除语法型词汇,代词、冠词、连词等无语义词

        • 自定义停用词表
        • 或用stops.txt

      8.输出TOP(50)

      • 9.可视化:词云

     排序好的单词列表word保存成csv文件

    import pandas as pd
    pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')

    线上工具生成词云:
    https://wordart.com/create

    代码
    如下所示
    import re
    import pandas
    from stop_words import get_stop_words
    
    stop_words = get_stop_words('english')
    
    file = open("Howl’s Moving Castle.txt", "r+", encoding='UTF-8')
    str = file.read()
    
    str = re.sub('[
    	,!?:;“‘’."]', '', str)
    words = str.split(" ")
    
    single = []  # 分词数组
    excluding_words = []  # 排除的单词
    quantity = []  # 单词次数
    
    for word in words:
        if (word not in single and word not in stop_words):
            single.append(word)
    
    tmp = single.copy()
    while tmp:
        # print(tmp[0], "出现次数:", words.count(tmp[0]), end="     ")
        quantity.append(words.count(tmp[0]))
        tmp.pop(0)
    
    dic = dict(zip(single, quantity))  # 合成字典
    dic = sorted(dic.items(), key=lambda item: item[1], reverse=True)  # 排序
    
    for i in range(50):
        print(dic[i][0], " : ", dic[i][1])
    
    pandas.DataFrame(data=dic).to_csv('fenci.csv', encoding='utf-8')
    
    print(stop_words)
    
    file.close()
    
    1.   
  • 相关阅读:
    Oracle-通过创建索引加快SQL执行效率
    Oracle-DG,MRP进程无法正常应用问题处理,重启大法好
    Oracle-DG,12c pdb创建测试
    Oracle-DG,疑问主库添加日志后,备库未操作主库日志比备库日志数量多,有什么影响?
    Oracle-DG疑问,什么情况下主库会发出一个会话连接备库
    Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于实时同步状态?
    Oracle-rm误删除数据文件,如何强制删除文件启动db
    Oracle-buffer cache过小导致SQL执行时间长
    win10下完全卸载-重装MySQL
    VSCode配置详细教程
  • 原文地址:https://www.cnblogs.com/WYuHan/p/10533832.html
Copyright © 2011-2022 走看看