• [大数据]统计词频


    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':10,'b':20,'c':30}

              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.排除语法型词汇,代词、冠词、连词等无语义词

      8.输出TOP(20)

    • 可视化:词云

    代码完整附说明如下所示:

    #打开小说文件
    f = open("D:\World.txt", 'r') #定义数组
    stop
    ={'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to','my','myself','we','our','ours','ourelves','about','no','nor'} #读取文件
    def gettext(): sep
    =",.? ?':' !--!_:" text=f.read().lower() for c in sep: textx=text.replace(c,' ') return textx #对文件进行分解 bList=gettext().split() print(bList) #把分解后的词语放在一个集合中
    bSet
    =set(bList) print(bSet)
    #把停用词放在集合中
    bStop
    =set(stop) #去处停用词
    bSet
    =bSet-bStop print(bSet) #定义字典对单词进行统计
    bDict
    ={} for word in bSet: bDict[word]=bList.count(word) print(bDict) print(bDict.items()) word=list(bDict.items()) #对统计结果进行排序
    word.sort(key
    =lambda x:x[1],reverse=True) print(word)
    #输出前20的单词
    for i in range(20): print(word[i])
    #对结果输出到text.csv中
    import pandas as pd
    pd.DataFrame(data=word).to_csv("D:\text.csv",encoding='utf-8')
    
    

    如图为运行结果显示

    如图为输出到csv的统计结果

    词云如图所示:

    
    
    
  • 相关阅读:
    Final TFS 2008 Feature List
    来看看微软对测试是什么要求
    淘宝设计流程
    Disable try catch
    jQuery validate API
    iPhone手机开发平台入门介绍和教程
    VSSpeedster Speed up your VS 2010
    Where are the SDK tools? Where is ildasm?
    效率高的删除语句truncate table [tablename]
    修改Hosts去除各站广告
  • 原文地址:https://www.cnblogs.com/hongna/p/10509435.html
Copyright © 2020-2023  润新知