費(fèi)揚(yáng) 杜慶治
摘要:為了進(jìn)行關(guān)鍵詞的文本查重和文本檢索,設(shè)計出基于matlab的文本處理系統(tǒng)。首先,研究文本處理系統(tǒng)的相關(guān)原理及技術(shù);其次,設(shè)計系統(tǒng)的總體框架,細(xì)化功能;最后,采用matlab語言來設(shè)計系統(tǒng),利用多個TXT文本構(gòu)建語料數(shù)據(jù)庫,設(shè)計出基于matlab的文本處理系統(tǒng)應(yīng)用程序。測試表明:該系統(tǒng)能有效地實現(xiàn)文本查重和文本檢索。
關(guān)鍵詞:MATLAB;文本處理;文本查重;文本檢索;TF-IDF
中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A DOI:10.3969/j.issn.1003-6970.2017.08.044
本文著錄格式:費(fèi)揚(yáng),杜慶治·基于madab的文本處理系統(tǒng)的設(shè)計與實現(xiàn)[幾軟件,2017,38(8):226-229
引言
隨著計算機(jī)及網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,信息技術(shù)進(jìn)入了高速發(fā)展時期,信息以電子文檔形式呈現(xiàn)在大眾面前越來越普遍,而電子文檔中文本文檔占據(jù)重要位置。要想實現(xiàn)在海量的文檔中如何快速有效地進(jìn)行文本信息的查重與檢索,需設(shè)計出一個針對TXT文檔格式的多文檔的文本處理系統(tǒng)。信息檢索的核心技術(shù)是全文檢索技術(shù),全文檢索是以各種計算機(jī)數(shù)據(jù)諸如文字、聲音、圖像等為處理對象,提供按照數(shù)據(jù)資料的內(nèi)容而不是外在特征來實現(xiàn)的信息檢索手段。文本處理系統(tǒng)里的全文檢索是現(xiàn)代信息檢索技術(shù)的一個重要的分支,它極大地提高了從大量紛繁復(fù)雜的數(shù)據(jù)中查找特定信息的效率。文本處理系統(tǒng)能實現(xiàn)對指定目錄下的目錄或文件的遍歷
和檢索。完成多文檔文本處理系統(tǒng)的設(shè)計與開發(fā),為用戶提供一個快捷、安全的信息檢索渠道。利用matlab設(shè)計系統(tǒng)操作簡單實用,比其他編程語言更加容易實現(xiàn)數(shù)據(jù)分析。
1 文本處理原理及相關(guān)技術(shù)
1.1 文本處理
文本處理系統(tǒng)主要包含文本查重和文本處理兩個部分。文本查重顧名思義就是查找關(guān)鍵詞在文本中的重復(fù)率。文本檢索(Text Retrieval)是信息檢索的一部分,是指根據(jù)文本內(nèi)容,如關(guān)鍵字、語意等對文本集合進(jìn)行檢索、分類、過濾等。當(dāng)知道某個關(guān)鍵詞在文本中重復(fù)率較高時,可以從關(guān)鍵詞可以粗略的判斷出該文章的類型,對某關(guān)鍵詞進(jìn)行文本檢索就可以知道關(guān)鍵詞在語料庫中所占權(quán)重,將包含關(guān)鍵字的文檔挑出來作為檢索結(jié)果呈現(xiàn)給用戶[34]。
1.2 TF-IDF
TF-IDF(term frequency-inverse document frequency)是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù),是一種統(tǒng)計方法,用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。
TF(Term Frequency,詞頻)是指某個關(guān)鍵詞在特定文件中出現(xiàn)的頻率。一般情況下,同一個關(guān)鍵詞在長文件里會比短文件的詞數(shù)要高,關(guān)鍵詞卻與文件大小無關(guān),為了防止偏向長文件情況,需要對詞數(shù)進(jìn)行處理,詞頻就是對詞數(shù)的歸一化,[6_7]計算公式如式(1)所示。
關(guān)鍵詞a在某特定文件中出現(xiàn)的次數(shù) (n某特定文件里所有字詞的數(shù)目IDF(Inverse Document Frequency,逆向文件頻率)是一個詞語普遍重要性的度量,打個比方說,如果包含某關(guān)鍵詞的文檔很少,IDF很大,則說明該關(guān)鍵詞能很好地將該類文檔區(qū)分開來,具有很好的類別區(qū)分能力。某一特定詞語的IDF,可以由總文件數(shù)目除以包含該詞語之文件的數(shù)目,再將得到的商取對數(shù)得到。計算公式如式(2)所示。
包含關(guān)鍵詞a的文檔數(shù)
2 系統(tǒng)的設(shè)計和實現(xiàn)
2.1 系統(tǒng)總體功能設(shè)計
本系統(tǒng)主要是利用matlab語言來編程實現(xiàn),最后生成EXE(executable program,EXEFile)可執(zhí)行程序更加方便使用。開發(fā)系統(tǒng)時充分考慮到系統(tǒng)的開發(fā)背景和系統(tǒng)目標(biāo)等信息,使系統(tǒng)設(shè)計的更加合理。本系統(tǒng)為了更好地對文本文檔進(jìn)行關(guān)鍵詞的查重和權(quán)重檢索,將系統(tǒng)分為兩個部分:一個是文本查重,一個是文本檢索。系統(tǒng)的總體設(shè)計框圖如圖1所示。通過該應(yīng)用程序能很好地實現(xiàn)信息檢索,操作簡單實用,而且可以在任意電腦運(yùn)行。
2.2 系統(tǒng)詳細(xì)設(shè)計和實現(xiàn)
2.2.1 系統(tǒng)的主要功能
本系統(tǒng)主要包括兩個部分:一個是文本查重,一個是文本檢索。文本查重主要是用來統(tǒng)計關(guān)鍵詞在文章中出現(xiàn)的重復(fù)率,文本檢索主要是用來統(tǒng)計關(guān)鍵詞在語料庫中出現(xiàn)的情況及TF-IDF檢索情況。
2.2.2 系統(tǒng)模塊的設(shè)計
為了直觀的看到文本查重和文本檢索信息,將兩個模塊放在同一界面來進(jìn)行設(shè)計,文本處理界面如圖2所示。在設(shè)計系統(tǒng)時,除了要完全實現(xiàn)該系統(tǒng)的功肯巨外,要考慮到用戶使用的便利性,將MATLAB程序輸出成EXE應(yīng)用程序,同時將運(yùn)行環(huán)境嵌套到里面。軟件的外觀框架結(jié)構(gòu)的設(shè)計是基礎(chǔ)工作,組成模塊是各具應(yīng)用服務(wù)功能和結(jié)構(gòu)特點的,兼容性和合理性是設(shè)計模塊的基礎(chǔ)理論依據(jù)。
2.2.3 系統(tǒng)功能的實現(xiàn)
由系統(tǒng)的設(shè)計可以知道,系統(tǒng)主要功能模塊涉及兩個部分:文本查重及文本檢索。因各模塊設(shè)計不同,需要根據(jù)相應(yīng)原理來實現(xiàn)其功能。
(1)文本查重模塊的實現(xiàn)文本查重首先需要讀取所需查重的文本,然后設(shè)定需要查重的關(guān)鍵詞,然后點擊相應(yīng)的功能按鈕,進(jìn)行文本關(guān)鍵詞信息的統(tǒng)計和查重。文本查重模塊利用靜態(tài)文本來顯示文字,這些文字主要用來提示使用者下面進(jìn)行什么操作。利用可編輯文本、按鈕來實現(xiàn)統(tǒng)計和查重等操作。文本信息統(tǒng)計主要是獲取關(guān)鍵詞在文本中出現(xiàn)的次數(shù)和整個文章的文本數(shù)。查重就是把關(guān)鍵詞數(shù)與文章的文本總數(shù)相除。
文本查重模塊主要利用uigetfile函數(shù)讀取文本,其功能的代碼如下所示:
文本查重模塊主要利用strcmp函數(shù)來判斷是否找到關(guān)鍵詞,利用for循環(huán)來統(tǒng)計次數(shù),實現(xiàn)統(tǒng)計功能的代碼如下所示。
文本查重模塊中重復(fù)率主要是計算關(guān)鍵詞在文檔出現(xiàn)的比率,其代碼如下所示:set(handles.edit5,String,count/N)
(2)文本檢索模塊的實現(xiàn)文本檢索主要采用的TF-IDF檢索方法進(jìn)行關(guān)鍵詞權(quán)重檢索,文本檢索需要有相應(yīng)的語料庫做檢索的依據(jù),先統(tǒng)計語料庫信息,如語料庫文件夾名及文件夾里面的文檔數(shù),然后讀取檢索文本文檔,輸入關(guān)鍵詞進(jìn)行TF-IDF檢索。文本檢索模塊利用列表框、按鈕來實現(xiàn)數(shù)據(jù)的顯示和讀取,可編輯文本來顯示讀取數(shù)據(jù)的路徑和檢索內(nèi)容,最后做TF-IDF檢索分析。
統(tǒng)計語料庫文檔數(shù)主要是利用dir和length函數(shù)來實現(xiàn),代碼如下所示:
統(tǒng)計關(guān)鍵詞在語料庫中檢索信息,實i其功能主要是利用fopen和fscanf讀取文本,for循環(huán)來讀取全部文本。在讀取文本信息時,利用strcmp函數(shù)和for循環(huán)來統(tǒng)計關(guān)鍵詞在各個文本中次數(shù),利用length函數(shù)統(tǒng)計各個文本總數(shù)。實現(xiàn)其功能的代碼如下:
文本處理系統(tǒng)文本檢索采用的是TF-IDF檢索,將上面公式(1-2)代碼化,TF實現(xiàn)和上面查重類似這里不做介紹,主要介紹IDF的實現(xiàn),IDF的計算需要調(diào)用前面關(guān)鍵詞在語料庫各個文本中檢索信息,利用函數(shù)eq來判斷文本是否包含關(guān)鍵詞,沒有將其剔除,利用for循環(huán)來實現(xiàn)統(tǒng)計包含關(guān)鍵詞的文檔數(shù),其功能實現(xiàn)代碼如下所示。
計算IDF,文檔頻率IDF=log(語料庫的文檔總數(shù)(包含該詞的文檔數(shù)+1))
2.3 數(shù)據(jù)庫設(shè)計
文本處理系統(tǒng)里除了需要一些用于文本查重和檢索的TXT文本外,還需要一個由多文本組成的語料庫,實際上就是一個由多文本組成的文本數(shù)據(jù)庫。語料庫是語料庫語言學(xué)研究的基礎(chǔ)資源,也是經(jīng)驗主義語言研究方法的主要資源。應(yīng)用于詞典編纂,語言教學(xué),傳統(tǒng)語言研究,自然語言處理中基于統(tǒng)計或?qū)嵗难芯康确矫?。為了便于MATLAB讀取語料庫,將語料庫里面的文檔按照1,2,3...來進(jìn)行編號。MATLAB提供的系統(tǒng)函數(shù)fopen和fscanf函數(shù)可以讀取TXT文本,利用for循環(huán)就能將語料庫里全部文本讀取介紹了文本處理相關(guān)原理及技術(shù),設(shè)計與實現(xiàn)了基于matlab的文本處理系統(tǒng)。經(jīng)過電腦測試表明,功能模塊運(yùn)行正常,基本滿足功能需求。該系統(tǒng)在文本處理研究領(lǐng)域具有重要價值,給研究者帶來巨大的方便,尤其是很容易幫研究者做TF-IDF檢索。