面向教学的多媒体文件识别系统研究与应用
2016-09-27中国传媒大学南广学院宋燕燕周晓梅
中国传媒大学南广学院 宋燕燕 周晓梅 周 灵
面向教学的多媒体文件识别系统研究与应用
中国传媒大学南广学院宋燕燕周晓梅周灵
计算机与网络信息技术的快速发展,促使当今社会进入了网络信息时代,各个领域的数据和信息急剧增多。在分析云存储等关键技术基础上,对面向教学的多媒体文件识别系统进行实例研究。实验表明,该系统能满足校多用户需求,实现多媒体文件上传、下载、识别、词频统计等各个功能。
云存储;文件识别;词频统计
1 引言
随着MOOC(大规模开放网络课程)热潮的逐渐兴起,各大高校、中小学在不久的将来势必面临着海量多媒体资源高效存储和分析的问题,教学课件、学生作品、教学视频等各种资源的数量快速发展,云存储技术的应用为解决资源存储提供了可能,与传统存储方式相比,避免了存储平台的重复建设,如何更有效的对海量多媒体资源进行识别检索成为一个新的课题。[1]
本文是在我们前期搭建的公有云存储为核心架构的新型校园云媒体资产系统平台上,基于云存储研究各类多媒体文件的内容识别技术,探索如何在各类多媒体资源快速膨胀的趋势下,较快较准确地定位搜索需要的素材,构建一个面向教学的多媒体文件识别系统。解决校园网面临的资源共享、系统优化、安全管理等问题,为进一步构建智慧校园奠定基础。
2 相关平台及技术介绍
本系统主要涉及到的技术如下。
2.1云存储技术
云存储是云计算的存储部分,即虚拟化的、易于扩展的存储资源池。存储在云端的数据可以随时随地访问读取,节省本地存储的硬件成本。云存储不仅提供了文件访问接口,还支持数据管理,提供公共服务支撑功能。云存储已经成为存储发展的一种趋势。[2-3]
2.2Spring MVC
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC 。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建Web 应用程序的全功能MVC 模块。使用Spring 可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。[4]
2.3I/O流技术
在 I/O 流里,输入输出分为 4 步:格式化/解析,缓冲,编码转换和传递。 格式化/解析是指在内部数据表示(以字节为单位)与外部数据表示(以字符为单位)之间进行双向转换。缓冲是指用于在格式/解析与传递只加缓存字符序列。对于输出较短的字符序列格式化之后并不马上输出,而是保存在缓冲区里,待累积到一定规模之后再传递到外部设备。编码转换是将一种字符表达式转换成另一种字符表达式。多数情况下并不需要进行编码转换。传递主要是与外部设备进行通信。
3 系统功能需求和设计
多媒体文件识别系统的功能需求有以下几个方面:
(1)该系统要可以对文件进行上传、下载、识别、词频查找等具体操作,以满足教师、学生等多用户的需求。
(2)该系统要给用户提供可视化的操作界面,要有整框架展示功能,以便用户快速的找到上传和下载相关文档并提取其内容。
(3)该系统要尽可能多的以直观的方式来展示文件系统的识别、上传下载、词频的查找等。
(4)系统要显示出上传文件的名称、上传人、上传时间和上传路径等信息。
(5)该系统要提供文件识别的查询功能,并支持模糊查询。输入某个文件名称,或者文件标签,点击查询结果,系统就会自动进行模糊查询,将目标文件或目标文件标签在系统中展示出来。
根据功能需求对系统进行设计,主要模块结构如图1所示,主要包括了文件上传、下载、查询、内容提取、内容转换、词频统计等模块。
图1 系统模块结构图
4 系统的实现
多媒体识别系统采用SQL Server 、Spring MVC、I/O流技术以及Commons File Upload 等相关开发技术,在Eclipse 里采用Spring MVC框架来实现本系统的功能。
4.1文件上传与下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能。浏览器在上传的过程中是将文件以流的形式提交到服务器端的。系统采用Commons File Upload开源工具实现文件上传功能。
FileUpload组件将页面提交的所有元素(普通form表单域,如text和文件域file)都看作一样的FileItem,这样上传页面提交的request请求也就是一个FileItem的有序组合,FileUpload组件可以解析该request,并返回一个一个的FileItem。而对每一个FileItem,FileUpload组件可以判断出它是普通form表单域还是文件file域,从而根据不同的类型,采取不同的操作--如果是表单域,就读出其值,如果是文件域,就保存文件到服务器硬盘上或内存中。部分代码如下:
Public class UploadHandleServlet extendsHttpServlet {
Public void doGet(HttpServletRequest request,HttpServletResponse response)
Throws ServletException, IOException {
//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = this.getServletContext().getRealPath("/WEBINF/upload");
File file = newFile(savePath);
//判断上传文件的保存目录是否存在if(!file.exists() && !file.isDirectory()) {
System.out.println(savePath+"目录不存在,需要创建");//创建目录file.mkdir();}
//消息提示
String message = "";
图2 识别提取图
图3 词频统计效果
4.2文件内容识别提取
文件内容识别提取主要包含了几个步骤:读取指定文本文件对象;利用过滤器可以把所需信息读取出来;把读出来的信息输出。部分代码如下:
public static void getList(File dir, ArrayList<File> list) {
list.add(dir);
File[] files = dir.listFiles();
for(File file : files){
if(file.isDirectory()){getList(file, list);}
elselist.add(file);}}
private static void writer2destFile(File destFile, ArrayList<File>list)throws IOException {
BufferedWriter bufw = new BufferedWriter(new FileWriter(destFile));
for(File file : list){
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();}
bufw.close();}
对文件内容进行识别提取后就要将其展现出来,在展现过程中需要用到I/O流,用Java 中的I/O流写入文件可以避免覆盖原来的内容,用这个方法 public FileOutputStream(String name,boolean append)throws FileNotFoundException, 将逻辑值 append 设为 false 时,写入的字节数据覆盖文本原来的内容,为true时即追加到原来文本的末尾。如图2所示。
4.3词频统计
在一份给定的文件里,词频通常指的是某个特定词语在该文件中出现的次数。根据文章生成单词树,使用深度优先搜索遍历单词树并将对应单词放入结果集中,得到词频表的主算法,供外部调用。本系统实现的词频统计效果如图3所示。
5 结束语
本文通过分析相关技术,实现面向教学的多媒体文件识别系统,解决了如何从不断产生的海量教学文件中识别和提取内容,进行词频统计,方便多用户对各类文件添加标签和关键词,具有一定的技术前景和应用价值。
[1]张莉.垂直搜索引擎中分词和排序技术的研究与应用[D].西南交通大学.2014.
[2]周晓梅,宋燕燕.基于云存储的校园文件管理系统研究与应用[J].电子世界,2016(1):37-41.
[3]赵铁柱,袁华强.高性能的云存储安全网关设计与实现[J].计算机应用与软件,2014,31(11):135-138.
[4] 舒礼莲.基于Spring MVC的Web应用开发[J].计算机与现代化,2013(11):167-168.
宋燕燕(1978-),女,浙江上虞人,硕士,讲师,主要研究方向:多媒体技术、虚拟现实。
周晓梅(1980-),女,硕士,讲师,主要研究方向:云存储、信息管理。
周灵(1984-),女,在读博士,讲师,主要研究方向:教育技术。
江苏省高校自然科学研究面上项目(15KJD520007);江苏省高校自然科学研究面上项目(14KJD520011);江苏省高校哲学社会科学研究项目(2015SJD324)。