[大數據]統計詞頻


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的統計結果

 

詞雲如圖所示:

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM