概述
-
前言
-
数据介绍
-
实现过程
-
考研英语词汇统计分析
前言
我们渐渐长大,从一开始的初生牛犊不怕虎到渐渐惧怕孤独,从一开始的单打独斗到渐渐合群躲避孤独。不巧的是,考研就是一个孤单修炼的事情,没有任何人能够去帮你,于是二十出头的我们,从“牛b吊炸天,我要改变全世界”逐渐蜕变成“我要适应这个世界,我要适应孤单”。过去总是赶赴一场又一场热闹,在觥筹交错间,推杯换盏时,说一些违心的话,做一些违心的事,慢慢失去自我。但愿,酒阑人散后,剩下的只有空虚落寞;但愿,灯火阑珊处,留下是考研最美好的回忆。
数据介绍
本文统计的对象为1980年以来英语试卷所包含的词汇,并对其进行了分析和总结。
实现过程
(1)加载基础词汇
bw = open('data/basic_words.txt')
basicwords = []
for eachLine in bw:
basicwords.append(sw.simplify_word(re.split("[^A-Za-z]", eachLine)[0].lower()))
#print re.split("[^A-Za-z]", eachLine)[0]
print(len(list(set(basicwords))))
basicwords = list(set(basicwords))
(2)加载超纲词汇
notindagang = np.zeros(33)
chaogangword = {}
for j in range(33):
for k in wy.eywords[j]:
if k not in dw.dagangwords and k not in bw.basicwords:
#notindagang[j] += 1
if chaogangword.has_key(k):
chaogangword[k] += 1
else:
chaogangword[k] = 1
for j in range(33):
for k in wy.eywords[j]:
if k not in dw.dagangwords and k not in bw.basicwords:
if chaogangword[k] <= 2:
notindagang[j] += 1
chaogangword = sorted(chaogangword.iteritems(), key = lambda e:e[1], reverse = True)
print('Chaogangword =',chaogangword)
pnotindagang = [float(x) / len(wy.eywords[i]) for i,x in enumerate(notindagang)]
(3)词汇分析
def simplify_word(a):
#如果已经可以判断是名词,动词,形容词,副词,连词
if enumerate.is_noun(a) or enumerate.is_verb(a) or enumerate.is_adjective(a) or enumerate.is_adverb(a) or enumerate.is_connective(a):
return a
try:#测试是否为动词,如果是则返回
enumerate.is_verb(enumerate.verb.present(a))
return enumerate.verb.present(a)
except:#否则继续检查
pass
#测试是否是名词
if enumerate.is_noun(enumerate.noun.singular(a)):
return enumerate.noun.singular(a)
otherwordlist.append(a)
#print a
return a
(4)加载大纲词汇
dagang = open('data/5495大纲词汇.txt')
dagangwords = []
for eachLine in dagang:
dagangwords.append(sw.simplify_word(re.split("[^A-Za-z]", eachLine)[0].lower()))
#print re.split("[^A-Za-z]", eachLine)[0]
print(len(list(set(dagangwords))))
dagangwords = list(set(dagangwords))
(5)考研英语真题单词数据可视化
x33 = 1980*np.ones(33)+range(33)
x32 = 1981*np.ones(32)+range(32)
plt.figure('wordeachyear')
plt.plot(x33,wy.eywords_volume,'r--o',alpha = 0.5)
plt.grid(True)
plt.show()
plt.figure('notindagang')
plt.plot(x33,cgw.notindagang,'o-', alpha = 0.5)
plt.grid(True)
plt.show()
plt.figure('wn')
plt.plot(wy.eywords_volume,cgw.pnotindagang,'bo')
plt.show()
plt.figure('pchaogang')
plt.plot(x33,cgw.pnotindagang,'o-', alpha = 0.5)
plt.grid(True)
plt.show()
plt.figure('notinpast')
plt.bar(x33,nip.words_not_in_the_past, color = 'green', alpha = 0.5)
plt.grid(True)
plt.show()
plt.figure('wordsAppearLastTime')
plt.plot(x32, walt.es, 'b--o', alpha = 0.5)
plt.grid(True)
plt.show()
plt.figure('pwordsAppearLastTime')
#plt.axes([1980, 2013 , 0.35 ,0.6])
plt.plot(x32, walt.esr1, 'r-o')
plt.plot(x32, walt.esr2, 'b--o', alpha = 0.4)
plt.plot(x32, walt.esr3, 'y--o', alpha = 0.4)
plt.grid(True)
plt.show()
https://github.com/zandaoguang/English
或者点击查看原文即可获得源码
考研英语真题词汇统计结果
1.第i+1年出现的从1980~i年间从未出现过的单词
2.第一年真题中出现的单词数
3.每一年都出现的单词
and, have, other, most, last, all, year, way, hi, like, because, your, new, know, english, chinese, if, you, they, this, give, people, he, not, many, question, from, into, such, work, over, would, make, translation, up, in, no, then, an, will, some, section, we, with, these, it, there, which, by, so, one, when, do, those, can, four, be, that, must, of, say, should, than, a, become, at, write, who, on, the, only, to, but, about, or, for
4.相邻年份考研真题词汇重复数
5.相邻年份考研真题词汇重复率
6.计算35年来真题词汇超纲率
7.拟合