第四次作业

1.英文小说 词频统计

#读取文本文件
f = open('man and cat.txt','r',encoding='utf-8')
story = f.read()
f.close()
print(story)

#预处理
story=story.lower() #全部字母小写
print(story)
sep = ',.:!""'''     #符号处理
for ch in sep:
    story=story.replace(ch,' ')   #利用for循环语句把特殊符号替换成空格
    print(story)

#字符串分隔
strList=story.split()
print(len(strList),strList)

#排除语法型词汇,代词、冠词、连词等无语义词
strSet=set(strList)
exclude={'an', 'old','has', 'a','are','is', 'very','quickly','bad', 'one', 'evening', 'the','because'}
strSet=strSet-exclude
print(strSet)

#字典
strDict={}
for you in strSet:
    strDict[you]=strList.count(you)
print(len(strDict),strDict)

#按词频排序
wcList=list(strDict.items())
print(wcList)
wcList.sort(key=lambda x:x[1],reverse=True)
print(wcList)

#输出TOP(20)
for i in range(20):
    print(wcList[i])

2.中文小说 词频统计

 

#读取文本文件
f = open('hong.txt','r',encoding='utf-8')
story = f.read()
f.close()
print(story)

#预处理
sep = ',。:“”?!'''     #符号处理
for ch in sep:
    story=story.replace(ch,' ')   #利用for循环语句把特殊符号替换成空格
    print(story)

#中文分词:结巴
import jieba
cnStr = story
#精确模式
print(list(jieba.cut(cnStr)))

# 分隔提取单词
strList = story.split(' ') print(len(strList), strList) # 单词计数字典 strSet = set(strList) print(len(strSet), strSet) strDict = {} for word in strSet: strDict[word] = strList.count(word) # print(len(strDict),strDict) # 词频排序 wcList = list(strDict.items()) # print(wcList) wcList.sort(key=lambda x: x[1], reverse=True) # print(wcList) # 输出TOP10 for i in range(10): print(wcList[i])

 

posted @ 2018-09-29 09:51  a-庄儿  阅读(122)  评论(0编辑  收藏  举报