中國傳媒大學(xué)南廣學(xué)院 宋燕燕 周曉梅 周 靈
面向教學(xué)的多媒體文件識別系統(tǒng)研究與應(yīng)用
中國傳媒大學(xué)南廣學(xué)院宋燕燕周曉梅周靈
計算機(jī)與網(wǎng)絡(luò)信息技術(shù)的快速發(fā)展,促使當(dāng)今社會進(jìn)入了網(wǎng)絡(luò)信息時代,各個領(lǐng)域的數(shù)據(jù)和信息急劇增多。在分析云存儲等關(guān)鍵技術(shù)基礎(chǔ)上,對面向教學(xué)的多媒體文件識別系統(tǒng)進(jìn)行實例研究。實驗表明,該系統(tǒng)能滿足校多用戶需求,實現(xiàn)多媒體文件上傳、下載、識別、詞頻統(tǒng)計等各個功能。
云存儲;文件識別;詞頻統(tǒng)計
隨著MOOC(大規(guī)模開放網(wǎng)絡(luò)課程)熱潮的逐漸興起,各大高校、中小學(xué)在不久的將來勢必面臨著海量多媒體資源高效存儲和分析的問題,教學(xué)課件、學(xué)生作品、教學(xué)視頻等各種資源的數(shù)量快速發(fā)展,云存儲技術(shù)的應(yīng)用為解決資源存儲提供了可能,與傳統(tǒng)存儲方式相比,避免了存儲平臺的重復(fù)建設(shè),如何更有效的對海量多媒體資源進(jìn)行識別檢索成為一個新的課題。[1]
本文是在我們前期搭建的公有云存儲為核心架構(gòu)的新型校園云媒體資產(chǎn)系統(tǒng)平臺上,基于云存儲研究各類多媒體文件的內(nèi)容識別技術(shù),探索如何在各類多媒體資源快速膨脹的趨勢下,較快較準(zhǔn)確地定位搜索需要的素材,構(gòu)建一個面向教學(xué)的多媒體文件識別系統(tǒng)。解決校園網(wǎng)面臨的資源共享、系統(tǒng)優(yōu)化、安全管理等問題,為進(jìn)一步構(gòu)建智慧校園奠定基礎(chǔ)。
本系統(tǒng)主要涉及到的技術(shù)如下。
2.1云存儲技術(shù)
云存儲是云計算的存儲部分,即虛擬化的、易于擴(kuò)展的存儲資源池。存儲在云端的數(shù)據(jù)可以隨時隨地訪問讀取,節(jié)省本地存儲的硬件成本。云存儲不僅提供了文件訪問接口,還支持?jǐn)?shù)據(jù)管理,提供公共服務(wù)支撐功能。云存儲已經(jīng)成為存儲發(fā)展的一種趨勢。[2-3]
2.2Spring MVC
MVC作為WEB項目開發(fā)的核心環(huán)節(jié),正如三個單詞的分解那樣,C(控制器)將V(視圖、用戶客戶端)與M(模塊,業(yè)務(wù))分開構(gòu)成了MVC 。Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建Web 應(yīng)用程序的全功能MVC 模塊。使用Spring 可插入的MVC架構(gòu),從而在使用Spring進(jìn)行WEB開發(fā)時,可以選擇使用Spring的SpringMVC框架或集成其他MVC開發(fā)框架,如Struts1,Struts2等。[4]
2.3I/O流技術(shù)
在 I/O 流里,輸入輸出分為 4 步:格式化/解析,緩沖,編碼轉(zhuǎn)換和傳遞。 格式化/解析是指在內(nèi)部數(shù)據(jù)表示(以字節(jié)為單位)與外部數(shù)據(jù)表示(以字符為單位)之間進(jìn)行雙向轉(zhuǎn)換。緩沖是指用于在格式/解析與傳遞只加緩存字符序列。對于輸出較短的字符序列格式化之后并不馬上輸出,而是保存在緩沖區(qū)里,待累積到一定規(guī)模之后再傳遞到外部設(shè)備。編碼轉(zhuǎn)換是將一種字符表達(dá)式轉(zhuǎn)換成另一種字符表達(dá)式。多數(shù)情況下并不需要進(jìn)行編碼轉(zhuǎn)換。傳遞主要是與外部設(shè)備進(jìn)行通信。
多媒體文件識別系統(tǒng)的功能需求有以下幾個方面:
(1)該系統(tǒng)要可以對文件進(jìn)行上傳、下載、識別、詞頻查找等具體操作,以滿足教師、學(xué)生等多用戶的需求。
(2)該系統(tǒng)要給用戶提供可視化的操作界面,要有整框架展示功能,以便用戶快速的找到上傳和下載相關(guān)文檔并提取其內(nèi)容。
(3)該系統(tǒng)要盡可能多的以直觀的方式來展示文件系統(tǒng)的識別、上傳下載、詞頻的查找等。
(4)系統(tǒng)要顯示出上傳文件的名稱、上傳人、上傳時間和上傳路徑等信息。
(5)該系統(tǒng)要提供文件識別的查詢功能,并支持模糊查詢。輸入某個文件名稱,或者文件標(biāo)簽,點擊查詢結(jié)果,系統(tǒng)就會自動進(jìn)行模糊查詢,將目標(biāo)文件或目標(biāo)文件標(biāo)簽在系統(tǒng)中展示出來。
根據(jù)功能需求對系統(tǒng)進(jìn)行設(shè)計,主要模塊結(jié)構(gòu)如圖1所示,主要包括了文件上傳、下載、查詢、內(nèi)容提取、內(nèi)容轉(zhuǎn)換、詞頻統(tǒng)計等模塊。
圖1 系統(tǒng)模塊結(jié)構(gòu)圖
多媒體識別系統(tǒng)采用SQL Server 、Spring MVC、I/O流技術(shù)以及Commons File Upload 等相關(guān)開發(fā)技術(shù),在Eclipse 里采用Spring MVC框架來實現(xiàn)本系統(tǒng)的功能。
4.1文件上傳與下載
在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能。瀏覽器在上傳的過程中是將文件以流的形式提交到服務(wù)器端的。系統(tǒng)采用Commons File Upload開源工具實現(xiàn)文件上傳功能。
FileUpload組件將頁面提交的所有元素(普通form表單域,如text和文件域file)都看作一樣的FileItem,這樣上傳頁面提交的request請求也就是一個FileItem的有序組合,F(xiàn)ileUpload組件可以解析該request,并返回一個一個的FileItem。而對每一個FileItem,F(xiàn)ileUpload組件可以判斷出它是普通form表單域還是文件file域,從而根據(jù)不同的類型,采取不同的操作--如果是表單域,就讀出其值,如果是文件域,就保存文件到服務(wù)器硬盤上或內(nèi)存中。部分代碼如下:
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+"目錄不存在,需要創(chuàng)建");//創(chuàng)建目錄file.mkdir();}
//消息提示
String message = "";
圖2 識別提取圖
圖3 詞頻統(tǒng)計效果
4.2文件內(nèi)容識別提取
文件內(nèi)容識別提取主要包含了幾個步驟:讀取指定文本文件對象;利用過濾器可以把所需信息讀取出來;把讀出來的信息輸出。部分代碼如下:
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();}
對文件內(nèi)容進(jìn)行識別提取后就要將其展現(xiàn)出來,在展現(xiàn)過程中需要用到I/O流,用Java 中的I/O流寫入文件可以避免覆蓋原來的內(nèi)容,用這個方法 public FileOutputStream(String name,boolean append)throws FileNotFoundException, 將邏輯值 append 設(shè)為 false 時,寫入的字節(jié)數(shù)據(jù)覆蓋文本原來的內(nèi)容,為true時即追加到原來文本的末尾。如圖2所示。
4.3詞頻統(tǒng)計
在一份給定的文件里,詞頻通常指的是某個特定詞語在該文件中出現(xiàn)的次數(shù)。根據(jù)文章生成單詞樹,使用深度優(yōu)先搜索遍歷單詞樹并將對應(yīng)單詞放入結(jié)果集中,得到詞頻表的主算法,供外部調(diào)用。本系統(tǒng)實現(xiàn)的詞頻統(tǒng)計效果如圖3所示。
本文通過分析相關(guān)技術(shù),實現(xiàn)面向教學(xué)的多媒體文件識別系統(tǒng),解決了如何從不斷產(chǎn)生的海量教學(xué)文件中識別和提取內(nèi)容,進(jìn)行詞頻統(tǒng)計,方便多用戶對各類文件添加標(biāo)簽和關(guān)鍵詞,具有一定的技術(shù)前景和應(yīng)用價值。
[1]張莉.垂直搜索引擎中分詞和排序技術(shù)的研究與應(yīng)用[D].西南交通大學(xué).2014.
[2]周曉梅,宋燕燕.基于云存儲的校園文件管理系統(tǒng)研究與應(yīng)用[J].電子世界,2016(1):37-41.
[3]趙鐵柱,袁華強(qiáng).高性能的云存儲安全網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2014,31(11):135-138.
[4] 舒禮蓮.基于Spring MVC的Web應(yīng)用開發(fā)[J].計算機(jī)與現(xiàn)代化,2013(11):167-168.
宋燕燕(1978-),女,浙江上虞人,碩士,講師,主要研究方向:多媒體技術(shù)、虛擬現(xiàn)實。
周曉梅(1980-),女,碩士,講師,主要研究方向:云存儲、信息管理。
周靈(1984-),女,在讀博士,講師,主要研究方向:教育技術(shù)。
江蘇省高校自然科學(xué)研究面上項目(15KJD520007);江蘇省高校自然科學(xué)研究面上項目(14KJD520011);江蘇省高校哲學(xué)社會科學(xué)研究項目(2015SJD324)。