作业3:复合数据类型,英文词频统计

列表

元组:

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'

 词云:

 

posted @ 2019-03-14 21:46  Heyuanz  阅读(126)  评论(0编辑  收藏  举报