【大數據】複合數據類型,英文詞頻統計

做業的要求來自於:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696app

1.列表,元組,字典,集合分別如何增刪改查及遍歷。ide

列表:工具

list = ['列表', 27,'列表',27]   #這是一個列表
#增
list.append('append')  # 增長元素到列表結尾
list.extend(['extend','擴充列表'])  # 添加指定列表的全部元素
list.insert(0, '插入元素')  #在指定位置插入一個元素
print(list)
#刪
list.remove('列表')  #刪除列表中值爲'列表'的第一個元素
list.pop()  #刪除最後一個元素
list.pop(1) #刪除指定位置元素
del list[2:4]  #刪除從2到4的元素 list.clear() #刪除列表中的全部項 print(list) #改 list[
0] = 'list' print(list) #查 list.index('列表') #返回第一個值爲x的元素的索引 print(list)

#遍歷
for i in list:
print(i)

 元祖:編碼

tup = ('Google', 'Runoob', 1997, 2000);    #這是一個元祖
#元組中的元素值是不容許修改的,但咱們能夠對元組進行鏈接組合
tup1 = (1,2,3);
tup2 = ('a', 'b','c')

# 建立一個新的元組
tup3 = tup1 + tup2;
print(tup3)

#訪問元祖
print ("tup1[0]: ", tup1[0])

#遍歷
for i in tup1:
print(i)

 字典:spa

dict = {'a': '1', 'b': '2', 'c': '3'}   #這是一個字典

#刪
del dict['b'] # 刪除鍵 'b'
dict.clear()  # 清空字典
del dict      # 刪除字典
#改
dict['a'] = '9';    # 更新a
#增
dict['d'] = '4'     # 添加信息
#查
print(dict['a'])
#遍歷
for i,j in dict.items():
  print(i, ":\t", j)

集合:code

set1 = {1,2,3}      #這是一個集合
set2 = set((1,2,3)) #這也是一個集合
print(set1)
print(set2)

#增
set1.add(4)
print(set1)
#刪
set2.remove(1)  #移除值爲1的元素,若是不存在則會發生錯誤
set2.discard(1) #移除值爲1的元素,若是不存在不會發生錯誤
set2.pop()      #隨機刪除一個元素
set2.clear()
print(set2)
#查
print(1 in set1)#存在則返回True
#集合無序,不能修改指定的元素
#遍歷
for num in set1:
print(num)

 

2.總結列表,元組,字典,集合的聯繫與區別。參考如下幾個方面:blog

  • 括號
  • 有序無序
  • 可變不可變
  • 重複不可重複
  • 存儲與查找方式
  列表   元祖  字典 集合

括號排序

 []  ()  {} {}

有序無序索引

 有序  有序  無序,自動正序 無序

可變不可變utf-8

 可變  不可變  不可變 可變

重複不可重複

 能夠  能夠  能夠 不能夠

存儲與查找方式

 值  值  鍵值對(鍵不能重複) 鍵(不能重複)

 

 

 

 

 

 

 

 

 

 

 

 

3.詞頻統計

  • 1.下載一長篇小說,存成utf-8編碼的文本文件 file

    2.經過文件讀取字符串 str

    3.對文本進行預處理

    4.分解提取單詞 list

    5.單詞計數字典 set , dict

    6.按詞頻排序 list.sort(key=lambda),turple

    7.排除語法型詞彙,代詞、冠詞、連詞等無語義詞

    • 自定義停用詞表
    • 或用stops.txt
import pandas as pd
from nltk.corpus import stopwords

#獲取停用詞
stopwords = stopwords.words('english')

f = open("Harry Potter and The Sorcerer's Stone.txt","r")
text = f.read()#讀取文件
f.close()#關閉文件
#文件處理
dict = {};
text = text.lower();#小寫轉化
sep = ".,?:…—「」";
for s in sep:
    text = text.replace(s, " "); #以空格替換符號
list = text.split();#空格分割單詞單詞
for l in list:
    dict[l] = list.count(l);#獲取單詞數目

for s in stopwords:
     if s in dict.keys():
         dict.pop(s);#刪除停用詞

d = sorted(dict.items(),reverse = True,key = lambda d:d[1]); #排序

print("前20個單詞出現頻數爲:")
for i in range(20):
    print(d[i][0]," : ",d[i][1]);

pd.DataFrame(data = d).to_csv('wordcount.csv',encoding = 'utf-8')
 #保存爲.csv格式

 

  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

相關文章
相關標籤/搜索