时间:2024-12-29
胡正红,张朝霞
(太原师范学院 计算机系 ,山西 晋中 030619)
混合数据的分离与分类统计
胡正红,张朝霞
(太原师范学院 计算机系 ,山西 晋中 030619)
高考志愿填报是每一个高中生迈入理想大学关键的一步.如何以历年来各高校招生和录取的情况选择一个合适而理想的大学是每一个考生家长面临的难题.实际中,我们普通家长所能获取的各高校招生和录取的原始数据组成极为复杂,由文本、数字、其他字符组成混合数据,且每条数据长度不等,难以进行统计分析,另外,原始数据中只有最低分和最高分,不能满足统计需要.因此,文章首先概括了高考录取公示信息的数据特点,并进一步通过VFP程序设计对混杂的原始数据进行分离,提取出规范有效的数据,设置属性,根据统计要求补充属性等,形成新的数据样本,最后通过编程统计出各院校平均分、最高分,为下年高考志愿填报提供帮助.
数据结构; VFP;数据分离
每年高考结束后,评阅完毕,考生查询成绩后就可志愿填报,虽然学生成绩已经知晓,但是各院校录取分数未知,需要考生查询往年历史数据进行对比参考,招生部门提供的数据只有各院校录取的最低分和最高分,没有平均分,事实上反映院校录取的整体水平的正是各院校录取的平均分,且每个考生在填报志愿时不仅要选择学校,更多的还要选择专业,选择专业时需要平均分数据,来帮助决策志愿的填报.
为此,我们从专业考试网络获取了2015年院校录取公示名单,希望统计出不同批次院校录取最高分、最低分、平均分.实际中,我们获取了20个数据文件,每个数据文件包括近1 000条若干院校的录取信息,同一个院校中有文科专业录取信息、理科录取信息以及文体特招信息,每一条录取信息数据单元由文本、数字、其他字符组成混合数据,每条数据长度不等,如图1所示.
图1 录取信息数据单元
面对如此纷杂的原始数据,我们难以看出各高校在山西省的招生和录取情况,为了达到上面这个目的,我们有必要对原始数据进行重新分离、补充和整理,形成易于统计的数据结构.
基于原始数据的复杂繁多,我们选用VFP程序设计软件对数据进行重新的整理统计,形成我们填报志愿需要参考的新格式的数据结构.具体步骤如下:
第一,去除乱码.要想对这些数据样本按院校、科类进行统计分析,首先要对数据标准化,设置属性,将数据结构化.
通过分析可以看出,每条数据由14位准考证号、2~3个姓名符串、长度不等的院校名称字符串、3位整数12位小数的考试成绩数值型数据组成,中间夹杂有长度不等的“??”符号串.VFP数据库没有专门的分离函数分离数据,我们把导入的数据定义字段为“名单数据”,对其进行字符串替换处理,放入“新数据”字段, 语句为“replace all with chrtranc(名单数据,"?","")”,把原数据中的乱码转换为空格,如图2所示.
第二,设置数据结构.计算各院校的不同科类录取平均分,数据统计需要的决策属性有学校、成绩、科类,我们对数据可以按此要求设置属性.修改定义数据结构如图3所示.
第三,提取数据.数据标准化后,对数据的分离提取,我们可以使用取子串、替换字符串、去除空格函数处理,写入相应的字段,具体流程如下:
1)科类字段提取:从左取14位子串——获取准考证号——准考证号获取子串——科类编码—判断科类—写入科类字段;2)姓名字段提取;去除左边14位子串——从左获取考生姓名子串——写入姓名字段;3)学校字段提取:去除姓名子串——从左获取院校名称子串—写入学校字段; 4)成绩字段提取:去除院校子串——获取成绩——写入成绩字段.
主要实现代码如下:
sele 1
use 2015公示名单(a list of data)4.dbf
repl all 新数据(new data)with chrtranc(名单数据,"?","")(list data)
go top
public x,y,z
do while .not.eof()
mychar=新数据(new data)
trim(mychar)
hao=left(mychar,14)
leihao=substrc(hao,9,2)
if val(leihao)=11 or val(leihao)=13 then
repl 科类 with "文科"
endif
if val(leihao)=15 or val(leihao)=17 then
repl 科类 with "理工"
endif
secondchar=stuff(mychar,1,15,"")
trim(secondchar)
y=at("",secondchar)
xm=left(secondchar,y-1)
thirdchar=stuff(secondchar,1,y,"")
trim(thirdchar)
z=at("",thirdchar)
school=left(thirdchar,z-1)
forthchar=stuff(thirdchar,1,z,"")
trim(forthchar)
fen=left(forthchar,3)
repl 姓名 with xm
repl 学校 with school
repl 分数 with val(fen)
skip
enddo
程序运行后,混合结构的录取信息数据单元分离,成为满足统计需要的数据结构,如图4所示.
图4 校准的院校录取名单数据结构
我们获取到的各院校录取情况的原始数据,只有最低分,为满足统计需求,我们增加了最高分、平均分两个属性(见图5).原始数据单元分离后,我们得到了有学校、科类、分数属性的数据样本(见图4),可以统计出各院校的平均分、最高分,填入各院校对应的记录.
图5 各院校录取数据
如图4所示,同所院校同科类公示信息是按分数从高到低排列的,我们按院校名称、科类搜索到的第一条记录就是最高分序排列,利用VFP中的average函数计算出院校不同科类的平均分.流程如下:
工作区1中打开公示名单表,工作区2中打开院校投档线表,定位指针到文件头.
循环
如果指针没有结束
记录院校投档表的学校名称
在工作区1搜索公示名单表记录
找到的第一条记录分数为最高分
计算平均分
工作区2中更新数据
循环结束
具体程序如下:
Specific process is as follows
clear
public sch_fen,max_fen
sele 1
use 2015公示名单6.dbf
sele 2
use 2015一本A理new.dbf
go top
do while .not.eof()
sele 2
school=trim(院校名称)
sele 1
go 1
max_fen=分数
min_fen=分数
locate for trim(学校)=school .and. 科类="理工"
if found() then
max_fen=分数
average 分数 to sch_fen for 学校=school .and. 科类="理工" sele 2
repl 最高分 with max_fen
repl 最低分 with min_fen
endif
sele 2
skip
enddo
close all
程序执行后,结合原始数据,我们就得到了各院校的录取最低分、最高分、平均分,部分院校录取分数统计如图6所示.
图6 部分院校录取分数统计
本文详细说明了混合数据分离、提取的过程,数据提取出来以后,下一步我们可以将2015年院校录取数据与以往的院校录取数据建立连接,成为既有时间序列数据又有横截面数据的纵向数据,我们将这些纵向数据进行分析,可以预测2016年的高考录取情况,希望以后可以为高考考生志愿的填报提供合理的依据.
[1] 杨怀珠.山西省高考志愿填报方法与技巧.太原:山西出版传媒集团,2015
[2] 吴 波.Visual FoxPro 6.0程序设计.北京:人民邮电出版社,2015
[3] 许九奎.高考报考专业专业指南.北京:中国原子能出版社,2015
Separation and Classification about Mixed Data
HU Zhenghong, ZHANG Zhaoxia
(Department of Computer Science and Technology, Taiyuan Normal University, Jinzhong 030619, China)
The college entrance examination is a key step for every high school student to enter the ideal university. However, how to choose a suitable and ideal university on the basis of university enrollment and admission data over the past years, which is the problem facing every candidate parents. In fact, the original data that our common parents can obtain from the college admissions and enrollment, the composition of which is very complex. It is the mixed data consists of text, numbers, and other characters, and each data with unequal length, thus, it is difficult to carry out statistical analysis. Moreover, the original data arranged in only the lowest points and most high that cannot meet the needs of statistics. So, based on this,firstly,our paper generalized the data characteristics of public college admission information. Secondly, we designed the VFP program to separate the raw data, extracted a standardized and effective data, set the attribute, and added attributes according to the statistical requirements, etc. And then the new data sample is formed. Lastly, we programmed the statistics of each college average score, the highest score, in order to provide help for the next year’s college entrance examination.
data structure;VFP; data department
2015-10-08 基金项目:国家自然科学基金项目(61273294);山西省基础条件平台项目(2014091004-0104).
胡正红(1969-),女,硕士,太原师范学院计算机系副教授,主要从事计算机应用、机器学习研究.
1672-2027(2015)04-0026-05
TP311.1
A
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!