一种校园个性化掌上服务及用户行为习惯分析的实现方法
技术领域
本发明属于Web数据采集和大数据分析领域,特别涉及一种校园个性化服务及用户行为习惯分析的实现方法,可应用于指定校园课表、成绩信息的采集,考勤及用户行为习惯的分析。
背景技术
校园个性化掌上服务及用户行为习惯分析,是一种多平台系统构架。随着网络信息和校园数字化管理需求的高速增长,校园数字化服务面临着网络信息更新速度快、管理个性化需求增多等多方面问题。为了解决这些问题,一种校园个性化掌上服务及用户行为习惯分析应运而生。传统的教务网信息数据的分析与采集主要采用代理形式,需要用户授权并提供用户账号密码,存在用户账号信息泄露的安全隐患,本方法的爬虫只需一个拥有查询权限账户便能完成全局信息的爬取。传统考勤方式主要使用固定的考勤设备,存在考勤方式单一、身份识别方式单一、机动性差、数据同步性差、成本高等缺点,而本方法中的考勤实现了多终端、多设备支持的考勤方法,弥补了上述缺陷。本方法采用多平台系统构架,支持Web端、微信公众平台、App端的信息查询,结合用户行为分析模型,整体提高考勤系统的便捷性和实用性,满足了校园数字化管理的需求。
本方法中的爬虫程序使用Java进行爬虫的编写,使用多线程技术提高爬虫的性能,并结合正则表达式的文本分析功能和CSS选择器的选取器功能实现爬虫中文本信息的分析与抓取。
正则表达式:
正则表达式(Regular Expression),通过使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串,可以判断给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”),并通过正则表达式,从字符串中获取我们想要的特定部分。正则表达式灵活性、逻辑性和功能性强,可以迅速地用极简单的方式达到字符串的复杂控制。
CSS选择器:
层叠样式表(Cascading Style Sheets,简写CSS),又称串样式列表、层次结构式样式表文件,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。通过类别,标签,ID等选择器,可以对页面元素进行编辑。2010年至2012年,朱全银等给出了商品销售数据抽取与数据挖掘的方法(QuanyinZhu, Yunyang Yan, Jin Ding and Jin Qian. The Case Study for Price Extractingof Mobile Phone Sell Online. IEEE 2nd International Conference on SoftwareEngineering and Service Science, Beijing, Chian, July.2011, pp.281-295;Quanyin Zhu, Yunyang Yan, Jin Ding and Yu Zhang. The Commodities PriceExtracting for Shop Online, 2010 International Conference on FutureInformation Technology and Management Engineering,Changzhou,Jiangsu,Chian,Dec.2010, Vol.2,pp.317-320)该方法能同样运用于本方法中的教务网信息数据挖掘。
多线程:
多线程是一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其他线程共享存储空间,这使得线程间的通信较简单。多个线程的执行是并发的,即在逻辑上是“同时”的。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU切换的速度非常快,用户感觉不到其中的区别,因此用户感觉到线程是同时执行的。
为了提升程序性能,本系统中的爬虫程序与数据分析程序采用多线程技术,这样能极大地提高程序运行的效率。
NFC:
近距离无线通讯技术(Near Field Communication,简称NFC) ,该技术由免接触式射频识别演变而来,由飞利浦半导体、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。近场通信是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内。目前该技术广泛应用于移动智能设备领域。
OTG:
一键拷贝(USB On-The-Go标准 ,简称OTG),采用USB2.O的传输接口,是在没有Host的情况下,实现设备间的数据传送。OTG标准支持电源管理(节省功耗)功能,允许设备既可作为主机,也可作为外设操作,并支持主机通令协议(HNP)和对话请求协议(SRP)。OTG设备主要应用于各种不同的设备或移动设备间的联接,进行数据交换。目前OTG外设广泛应用于移动智能设备的功能拓展。
本方法中的移动设备采用NFC手机和OTG外设进行手机App的RFID卡的物理卡号识别,大大提高移动智能设备考勤操作的便携性。
用户行为分析(Consumer Behavior):
用户行为分析主要是研究对象用户的行为。数据来源包括用户的日志信息、用户主体信息和外界环境信息。通过特定的工具对用户在互联网/移动互联网上的行为进行记录,记录的信息通常称为用户日志。数据内容:
(1)网站日志:用户在访问某个目标网站时,网站记录的用户相关行为信息;
(2)搜索引擎日志:搜索引擎日志系统所记录的用户在搜索引擎上的相关行为信息;
(3)用户浏览日志:通过特定的工具和途径记录用户所记录的用户在该搜索引擎上的相关行为信息;
(4)用户主体数据:如用户群的年龄、受教育程度、兴趣爱好等;
(5)外界环境数据:如移动互联网流量、手机上网用户增长、自费套餐等;
本方法中的用户行为主要指用户信息、考勤状况、浏览日志及学生成绩等信息。
发明内容
本发明的目的是将数据挖掘方法和移动智能考勤方法与用户行为分析方法结合,运用聚焦爬虫对某指定教务网网站进行信息数据的分析与采集,运用支持多种设备(NFC移动设备、OTG设备和基于蓝牙的RFID/指纹识别装置)的移动设备App或PC端应用进行终端考勤,运用预警预测和聚类方法对行为习惯日志进行数据分析、建模和预测,实现用户行为分析,运用Web、微信和App实现系统的管理与查询。进而提高数据挖掘的安全性,改善校园考勤和校园管理的便捷程度。
本发明的技术方案:
数据挖掘方案:通过队列管理任务的先后顺序,在任务添加到队列后由线程池管理机制来分配队列中的任务给子线程,当任务处理课程信息的页面,获取课程的参数信息以及学生选课信息保存到数据库中,当任务处理成绩信息的页面,获取学生信息及成绩的参数信息保存到数据库中,进而实现指定教务网网站的特定爬虫。
移动设备App考勤方案:App同时支持NFC、OTG设备和蓝牙RFID/指纹设备。使用NFC模块识别时,调用NFC模块NFCAdapter,使用读操作完成对RFID卡的识别。使用OTG设备时,调用按键事件监听,实现对OTG设备传入物理卡号信息的识别。使用基于蓝牙的RFID/指纹识别设备时,开启设备电源,蓝牙与设备进行配对,操作蓝牙模块BluetoothAdapter开启蓝牙模块,使用BluetoothSocket完成物理卡号和指纹信息的交换。
行为习惯分析方案:通过队列管理任务的先后顺序,在任务添加到队列后由线程池管理机制来分配队列中的任务给子线程,当任务处理用户行为习惯信息的时,从数据库提取学生的各科出勤记录、浏览记录和各科成绩信息进行基于预警预测、聚类和协同过滤的数学建模,通过神经元反馈完成训练,生成各科出勤、浏览记录和成绩的因果关系结论,并将结论信息保存到数据库中。
具体的说,本发明方案通过如下各步骤实现校园个性化掌上服务及用户行为习惯分析:
步骤1、开始爬虫程序,初始化指定Web页面学生列表的入口URL;
步骤2、将初始化的URL添加到任务队列;
步骤3、开启线程池;
步骤4、线程池从队列中获取任务并分配给子线程;
步骤5、子线程调用解析列表URL的匹配模板,对目标URL的页面信息进行分析,获取页面的课程和成绩信息参数,参数包括:学生编号、班级编号、课程编号、教师编号、课程时间和成绩,调用数据存储模块将参数信息存入数据库;
步骤6、写入日志文件,结束该子进程;
步骤7、 检测当前任务队列是否还有任务存在,当有任务存在,执行步骤4;当没有任务存在,执行步骤8;
步骤8、将当次的抓取统计信息写入日志文件,结束爬虫程序;
步骤9、拥有教师或辅导员权限的用户通过访问系统的Web页面;
步骤10、从数据库提取爬虫程序爬取的课程信息,生成建议课表;
步骤11、教师或辅导员权限的用户创建课程、添加班级和分配考勤权限;
步骤12、后台生成考勤任务;
步骤13、拥有考勤权限的用户登陆手机App或PC客户端,请求服务器,获取考勤任务;
步骤14、选择考勤任务,请求服务器,获取所选择考勤任务中的学生队列(包括学生学号、班级、姓名、RFID卡卡号和指纹信息)及网络时间;
步骤15、考勤人员使用RFID卡接触NFC手机、OTG设备或RFID终端,并将RFID卡卡号传送给手机App或PC客户端,或使用指纹设备读取考勤人员指纹,将指纹信息通过蓝牙模块传送给手机App或PC客户端;
步骤16、将获取的RFID卡卡号或指纹信息与学生队列中的信息进行比对,如匹配到相应学生,则按当前时间标记该学生为已考勤,则执行步骤18,否则执行步骤17;
步骤17、进入新卡设置界面,选择新卡所对应的考勤人员,并对人员完成考勤;
步骤 18、是否结束考勤,是则将考勤记录本地备份,上传服务器端,否则执行15;
步骤 19、若上传成功,服务器返回成功参数,删除本地备份数据,执行步骤21,否则执行步骤20;
步骤 20、上传失败,请求上传本地备份,执行步骤19;
步骤 21、完成考勤任务;
步骤 22、服务器统计考勤数据,生成考勤报告(包括各学院出勤率统计、个人出勤信息统计和TOP10缺勤信息),开放供Web和微信查询接口,针对缺勤学生,生成缺勤信息文本,通过语音包生成音频,呼叫学生家长预留电话,完成语音播放;
步骤 23、读取学生当前学期考勤信息和成绩列表,生成用户行为习惯日志队列;
步骤 24、开启训练线程池;
步骤 25、线程池从队列中获取任务并分配给子线程;
步骤26、子线程运用预警、预测和聚类方法对各学生行为习惯日志建立分析模型,调用数据存储模块将结果存入数据库;
步骤 27、写入日志文件,结束该子进程;
步骤 28、 检测当前任务队列是否还有任务存在,当有任务存在,执行步骤25;当没有任务存在,执行步骤29;
步骤 29、写入日志文件,结束该进程;
步骤 30、服务器生成行为习惯报告,开放供Web和微信查询接口,生成缺勤信息文本,通过语音包生成音频,呼叫学生家长预留电话,完成语音播放;
步骤1所述URL是指在方法中表现为一串代表网页地址的字符串以及该地址中包含的网页内容;Web页面是指需要爬取的课程和成绩页面,使用指定的正则匹配模板匹配爬虫所爬取的页面信息;学生列表入口URL是指Web页面URL,根据需求指定需要信息采集的URL;
步骤2到步骤3是对数据采集系统的初始化,步骤2中将初始化的URL添加到任务队列是指系统中的数据结构存放着需要采集的学生列表入口URL;步骤3开启线程池是初始化一个线程池,线程池中有n个提供任务调度的子线程,n的值由服务器处理能力决定,取值范围为4-6个;
步骤4中的线程池从队列中获取任务分配给子线程,具体是指线程池不断地检测队列是否为空和线程池存在空闲的子线程,当队列不为空和线程池中存在空闲子线程时,从队列前端取出一个任务分配给一个空闲的子线程;
步骤5和步骤6是判断模板对URL进行域的判断,指定Web页面中的课程列表域和单个学生使用不同的域,子线程通过对域的判断选择调用不同的处理策略,并完成匹配日志的生成;
步骤7是检测队列中是否有任务存在是指检测队列是否为空;
步骤8是指队列中无任务,不存在运行的子线程的情况下,进程将退出,此时将本次运行的总体结果写入日志文件,主要包括采集的数量情况,出现分析失败的个数;
步骤9是指系统对不同用户进行权限识别,本系统中权限分为全局管理员、校级检查者、院级检查者、辅导员、教师和拥有考勤权限的学生;
步骤10是指系统通过用户的工号和数据库中该工号所对应的数据,逻辑生成教师或辅导员的课表;
步骤11和步骤12是指用户可通过操作建议课表,生成考勤任务,也可通过自行创建课程、添加班级和设置考勤时间来创建考勤任务,用户通过将考勤任务分配给学生权限用户完成考勤权限的分配;
步骤13、步骤14和步骤15是指拥有考勤权限的用户,通过手机App或PC客户端执行考勤任务,手机App可以通过调用NFC模块识别RFID卡,没有NFC的手机可通过USB接口连接OTG设备识别RFID卡,也可连接外设设备的蓝牙模块进行RFID卡的识别或指纹识别,PC客户端可以通过USB接口插入OTG设备识别RFID卡,也可以直接连接RFID设备识别RFID卡;
步骤16和步骤17是指身份识别及新卡判别模块,对学生队列中的存在的指纹或RFID卡进行身份判别并完成考勤,对学生队列中的不存在的新RFID卡物理卡号进行覆盖;
步骤18、步骤19和步骤20是指考勤结果上传,若上传失败则将本次考勤数据本地备份,提供再次上传的机会;
步骤22是指将当日考勤结果生成考勤报告,供学生所属的辅导员和家长通过访问Web或微信的方式进行查询,同时服务器端统计当日缺勤学生名单,将具体的缺勤信息以音频的形式使用网络电话通知家长;
步骤23和步骤24是指对各学生行为习惯日志的训练和预测的初始化,行为习惯日志指,该系统获取的该学生的相关行为信息,数据来源包括用户的日志信息、用户主体信息和外界环境信息,开启线程池是初始化一个线程池,线程池中有n个提供任务调度的子线程,n的值由服务器处理能力决定,取值范围为4-6个;
步骤26是指运用预警、预测和聚类方法对行为习惯日志进行分析和建模,并提供实时高速的复杂分析,本方法中的缺勤率预警值为30%,成绩不合格率预警值为20%;本方法中的聚类使用的是密度算法,对于相同班级的学生,成绩密度大过某阈值则将该学生加到与之相近的聚类中去;本方法中的预测方法主要使用基于滑动窗口的BP神经网络行为习惯预测预警算法;
步骤30是指将当前学期该学生的行为分析结论,供学生所属的辅导员和家长通过访问Web或微信的方式进行查询,同时服务器端将具体的行为分析报告以音频的形式使用网络电话通知家长。
附图说明
图1为本发明具体实施方式的流程图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
如附图1所示,本发明实施方案按照以下步骤进行:
步骤1、初始化指定教务网网站中的学生列表入口URL的数据集X1={A1,A2,...,An};
步骤2、将初始化的数据集X1添加到任务队列;
步骤3、开启线程池P;
步骤4、线程池P从队列中取出任务交给子线程Pn,启动子线程
步骤5、子线程利用分析课程的匹配模板对该子线程读取的Ai的页面信息进行分析,得到学生下课程编号course_id、课程时间course_time、课程名称course_name、学生编号student_id、教师编号teacher_id和班级名称class_id, 利用分析成绩的匹配模板对该子线程读取的Bi的页面信息进行分析,得到学生编号student_id,学生课程编号student_course_id和学生课程成绩student_course_grade,将以上信息按关联关系存入数据库中;
步骤6、写入日志文件Data Mining Log,结束该子线程Pn;
步骤7、 检测当前任务队列是否还有任务存在,当有任务存在,执行步骤4;当没有任务存在,执行步骤8;
步骤8、统计当次程序运行的任务数task_number、爬取数success_number和错误编号wrong_number写入日志文件Data Mining Log,关闭线程池P;
步骤9、用户通过访问Web页面,拥有教师或辅导员权限的用户完成身份认证后,进入操作页面;
步骤10、从数据库提取爬虫程序爬取的教师编号teacher_id下的课程编号course_id及其关联的课程时间course_time和课程名称course_name,生成建议课表;
步骤11、教师或辅导员权限的用户操作Web页面,确定创建课程的course_id,导入添加班级的class_id,通过选择操作确认导入该class_id下的student_id,选择考勤周次和考勤时间段,将指定课程course_id的考勤权限分配给指定student_id,将请求提交;
步骤12、后台根据考勤周次和考勤时间段生成考勤任务,存入数据库;
步骤13、拥有考勤权限的用户登陆手机App或PC客户端,请求服务器,获取考勤任务;
步骤14、选择考勤任务,请求服务器,获取所选择考勤任务中的学生队列信息(包括student_id、class_id、student_id、RFID卡卡号student_card和指纹信息student_fingerprint)及网络时间net_time并开始计时;
步骤15、考勤人员使用RFID卡接触NFC手机、OTG设备或RFID终端,并调用NFC模块NFCAdapter或按键事件监听将RFID卡卡号传送给手机App或PC客户端。使用指纹设备读取考勤人员指纹,将指纹信息student_fingerprint通过蓝牙模块BluetoothAdapter传送给手机App或PC客户端;
步骤16、若获取的是RFID卡卡号,则与学生信息队列中的student_card进行对比,若夺取的是指纹信息,则与学生信息队列中的student_fingerprint进行比对,如匹配到相应学生,则按当前时间标记该学生的考勤状态attendance_status,执行步骤18,否则执行步骤17;
步骤 17、进入新卡设置界面,选择新卡所对应的student_id,使用获取的物理卡号覆盖该学生的student_card,并对按当前时间标记该学生的考勤状态attendance_status;
步骤 18、是否结束考勤,是则将考勤记录本地备份,上传服务器端,否则执行15;
步骤 19、若上传成功,服务器返回成功参数upload status为true,删除本地备份数据,执行步骤21,否则执行步骤20;
步骤 20、上传失败,请求上传本地备份,执行步骤19;
步骤 21、完成考勤任务;
步骤 22、服务器统计考勤数据,将各学生的考勤状态与任务开放时间比对,超出开放时间则标记迟到状态,若上传的物理卡号改变覆盖数据库内的student_card,生成考勤报告(包括各学院出勤率统计、个人出勤信息统计和TOP10缺勤信息),开放供Web和微信查询接口。针对缺勤student_id,生成缺勤信息文本,通过语音开发包生成音频,使用网络电话呼叫学生家长预留电话,完成语音播放;
步骤 23、读取各学生student_id下当前学期的考勤日志和成绩列表,生成用户行为习惯日志队列Y1={B1,B2,...,Bn};;
步骤 24、开启线程池D;
步骤 25、线程池D从队列中取出任务交给子线程Dn,启动子线程;
步骤26、子线程利用预警、预测和聚类模板对该子线程读取的行为习惯信息进行分析,本方法中的缺勤率预警值为30%,成绩不合格率预警值为20%,超过预警值则在结果中添加预警信息;聚类算法使用密度算法,对于相同班级的学生,成绩密度大过某阈值则将该学生加到与之相近的聚类中去,根据不同的聚类将学生进行分类;本方法中的预测算法为BP神经网络,设置出勤率、成绩合格率分别为两次输入层input layer,成绩为输出层output layer,利用给定的样本标准进行训练,输出因果关系日志,存入数据库;
步骤 27、写入日志文件,结束该子进程Dn;
步骤 28、检测当前任务队列是否还有任务存在,当有任务存在,执行步骤25;当没有任务存在,执行步骤29;
步骤 29、写入日志文件,关闭线程池D;
步骤 30、服务器生成行为习惯报告,开放供Web和微信查询接口。生成缺勤行为习惯报告文本,通过语音包生成音频,呼叫学生家长预留电话,完成语音播放;
在本方法提出的系统环境下,在教务网信息数据挖掘时,课程信息爬取实验结果为:课程挖全率为99.34%,正确率为100%;成绩信息爬取实验结果为:成绩挖全率为99.62%,正确率为100%;Web网站支持500-600人的同时访问、每秒10次的点击和保持10分钟以上的Vuser数;手机App在3G流量下获取任务成功率为96%;语音包生成音频程序成功率为98%。
本发明可与校园网络课堂相结合,从而实现指定教务网网站、网络课堂网站和课堂教学的个性化管理,减少校园管理的繁琐操作。
本发明创造性地提出了NFC设备、OTG设备和蓝牙RFID/指纹设备结合实现考勤操作的方法,提供了多种考勤方式和多种身份识别方式,提高了考勤的机动性和数据同步速率,降低了成本。创造性地提出了使用用户的考勤信息、成绩信息和外界环境信息进行行为习惯进行分析,提高了校园数字化管理的水平。
本发明提出了一种支持多平台多种设备的校园个性化掌上服务及用户行为习惯分析的实现方法,可以用于各类教育机构的教学管理和学生行为习惯研究。