PowerGREP漢化補(bǔ)丁是一款功能強(qiáng)大的正則表達(dá)式應(yīng)用軟件漢化補(bǔ)丁,無私奉獻(xiàn)給努力向上不斷進(jìn)取的人。正則表達(dá)式一直是塊難肯的硬骨頭。有了這些工具 使你很快學(xué)會(huì)正則表達(dá)式。
軟件說明
PowerGREP是基于正則表達(dá)式的多功能強(qiáng)大的文本處理和搜索工具。正則表達(dá)式是描述一段文本形式的模式。例如,正則表達(dá)式可以匹配日期或電子郵件地址。任何日期或任何電子郵件地址,無需指定實(shí)際日期或?qū)嶋H電子郵件地址。您的搜索模式可以是特定的,也可以是一般的。這使PowerGREP比只能找到單詞和短語的常規(guī)搜索工具(PowerGREP也可以)更加靈活。使用PowerGREP,您可以使用一個(gè)或多個(gè)此類正則表達(dá)式來獲取文件列表,文件中的搜索匹配列表,文件搜索和替換,重命名文件,合并文件,分割文件等。使用可幫助用戶快速搜索您PC或網(wǎng)絡(luò)上的大量文件,包括文本和二進(jìn)制文件,壓縮存檔,MS Word文檔,Excel電子表格,PDF文件,OpenOffice文件等。使用強(qiáng)大的文本模式(正則表達(dá)式)查找您想要的信息。 指定你想要的形式,而不是字面文本。 搜索并替換一個(gè)或多個(gè)正則表達(dá)式,以全面維護(hù)網(wǎng)站,源代碼,報(bào)告等。從日志文件和大型數(shù)據(jù)集中提取統(tǒng)計(jì)信息和知識(shí)。
基本功能
1.1 信息檢索
信息檢索是語料庫研究中最常見的手段之一。利用PowerGREP進(jìn)行檢索,其檢索方法主要為文本檢索和正則表達(dá)式檢索,前者比較直觀、易學(xué),但功能比較單一,可用于一些簡單的檢索;而后者的掌握需要一定時(shí)間的學(xué)習(xí),但功能強(qiáng)大,可用于大型的檢索。
選擇主界面(圖1)中的動(dòng)作標(biāo)簽(Action),在定義操作類型(Action type)欄的下拉菜單中選擇顯示搜索匹配(Display search matches),并在定義搜索類型(Search type)欄的下拉菜單中選擇普通文本(Literal text)或正則表達(dá)式。搜索類型默認(rèn)為正則表達(dá)式,如果搜索詞為普通檢索詞,軟件會(huì)自動(dòng)識(shí)別。不同的操作類型與文本類型的確定會(huì)顯示不同的選項(xiàng)供人們選擇,如區(qū)別大小寫(Case sensitivity search)、大小寫自適應(yīng)(Adapt case of replacement text)等。在搜索框中輸入檢索詞或正則表達(dá)式,點(diǎn)擊搜索即可完成檢索。
2.2 編輯與替換
在進(jìn)行語料分析時(shí),研究者們有時(shí)需要對語料庫中的語料或標(biāo)注重新進(jìn)行加工,如刪除、替換或添加標(biāo)注等。我們可以使用PowerGREP的編輯與替換功能來批量完成這些任務(wù)。只要在定義操作類型欄的下拉菜單中選擇搜索與替換(Search and replace),并在定義搜索類型欄的下拉菜單中選擇普通文本或正則表達(dá)式,然后在搜索框與替換框上分別輸入被替換詞與替換詞,點(diǎn)擊替換按鈕即可完成文本信息的替換。其編輯功能主要通過內(nèi)置的編輯器(Editor)實(shí)現(xiàn),用法類似于Windows系統(tǒng)自帶的記事本,這里不再介紹。
2.3 數(shù)據(jù)采集
采集功能是PowerGREP的又一特色,它的用途是將所有匹配檢索詞所在的句子保存為一個(gè)或多個(gè)文件,方便研究者根據(jù)自己的研究目的或需求對語料進(jìn)行重新賦碼。在定義操作類型欄的下拉菜單中選擇采集數(shù)據(jù)(Collect data),并在定義搜索類型欄的下拉菜單中選擇普通文本或正則表達(dá)式。然后,在文件區(qū)域(File sectioning)的下拉菜單中選擇逐行(Line by line),并勾選采集或替換所有匹配區(qū)域(Collect/Replace whole sections),這么做的目的是保證采集結(jié)束后所有的匹配結(jié)果將以逐行的形式提取并可保存為一個(gè)文件。接著,設(shè)置保存的文件名、文件類型與路徑。最后在檢索框輸入檢索詞并點(diǎn)擊采集(Collect),完成數(shù)據(jù)的采集工作。
2 正則表達(dá)式簡述
所謂正則表達(dá)式,就是用某種模式去匹配一類字符串的公式。它由一些普通字符和11個(gè)元字符(metacharacters)組成。普通字符包括大小寫的字母和數(shù)字,而元字符則具有特殊的含義。例如,漢語“灰色”在英語中可以寫為gray或grey。如果我們用一般文本檢索的話,需要將gray和grey分兩次填入搜索框并進(jìn)行兩次檢索。但如果使用正則表達(dá)式,我們只需選擇搜索類型為正則表達(dá)式,然后在搜索框中一次輸入gr[ae]y就可以了。其中的方括號(hào)就是一個(gè)正則表達(dá)式,表示匹配方括號(hào)中a和e任意一個(gè)字符。我們于表1中列出了所有11個(gè)元字符,并逐一進(jìn)行解釋。
在語料庫語言學(xué)研究中,我們需要掌握一些基本的字符組合,即元字符和普通字符的組合。\d代表 [0-9],即0到9之間任意一個(gè)數(shù)字; \w代表[A-Za-z],即A到Z或a到z之間任意一個(gè)字母;\s代表“空白字符”(whitespace character),包括空格符(space)、制表符(tab)、回車符(return)或換行符(newline)。如果將這三個(gè)正則表達(dá)式中的普通字符由小寫改為大寫,正則表達(dá)式的含義恰恰相反。\D表示[^\d],即非0到9之間任意一個(gè)數(shù)字;\W表示[^\w] ,即非A到Z或a到z之間任意一個(gè)字符;\S表示 [^\d],即非空格符、制表符、回車符、換行符。值得注意的是,如果將這些表示否定的字符組合放在方括號(hào)內(nèi),其意義將發(fā)生變化。例如,正則表達(dá)式[\D\S] 的含義為非數(shù)字或者非空格符、制表符、回車符、換行符。換言之,它可以匹配任意一個(gè)字符,包括數(shù)字、空格符、制表符、回車符、換行符和字母。而表達(dá)式[\s\d]的含義為既非數(shù)字,也非空格符、制表符、回車符或換行符,即該表達(dá)式匹配任意一個(gè)字母。
在進(jìn)行語料庫檢索中,我們還必須了解一些常用字符組合。\b 匹配單詞的前或后邊界。例如,\bray\b只能匹配ray這個(gè)單詞(見圖3.5),這樣做類似于文本檢索中的whole words only ray,而ray\b則可以匹配以字母ray結(jié)束的單詞,如gray或者ray 中的ray,但不能匹配 rayage中的ray。這個(gè)表達(dá)式非常重要,在語料庫研究中我們可以用tion\b來檢索以tion為后綴的所有單詞,也可以使用\bpre這個(gè)表達(dá)式來檢索所有以pre為前綴的單詞。又如,\A表示文件的開始。此外,在語料庫文本處理時(shí)還會(huì)用到三個(gè)不可顯示的或非打印的特殊字符\r,\t和\n,它們分別代表回車符,制表符和換行符。
在使用正則表達(dá)式的過程中,了解以上提及的字符與字符組合,我們還要注意優(yōu)先級(jí)順序。類似于數(shù)學(xué)表達(dá)式求值,正則表達(dá)式是從左至右按優(yōu)先級(jí)順序來描述一個(gè)字符串的。下表由高到低列出了各種正則表達(dá)式操作符的優(yōu)先級(jí)順序:3 PowerGREP在語料庫加工中的應(yīng)用
語料庫一般分為標(biāo)注語料庫與非標(biāo)注語料庫或生語料庫。語料庫語言學(xué)研究中非常重要的一環(huán)就是對語料庫中的標(biāo)注進(jìn)行添加、刪除或修改。語料庫標(biāo)注不僅包括詞性標(biāo)注,還包括句法標(biāo)注、語義標(biāo)注、話語標(biāo)注和語用標(biāo)注等(Meyer 2004)。但,現(xiàn)有的語料庫標(biāo)注主要為詞性標(biāo)注,而由于其他形式的標(biāo)注自動(dòng)化賦碼比較難以實(shí)現(xiàn)(Hunston 2002),一般采取人工標(biāo)注,并僅限于一些小型語料庫(注:如句法標(biāo)注語料庫PoW(the Polytechnic of Walescorpus of children’s spoken language)。)。因此,根據(jù)不同的研究需求,大多時(shí)候語料庫研究者需要對現(xiàn)有的語料庫進(jìn)行加工與處理。目前能夠用于語料庫賦碼處理的軟件為數(shù)不多(如Microsoft Office Word和UltraEdit-32等),PowerGrep則是其中的一名佼佼者。本文重點(diǎn)舉例說明PowerGrep對BNC語料庫標(biāo)注進(jìn)行刪除、添加和修改的應(yīng)用。
3.1 刪除語料標(biāo)注
假設(shè)我們要調(diào)查中國大學(xué)生記敘文中單詞so的使用情況,選用《中國學(xué)生英語口筆語語料庫》(SWECCL)和《英國國家語料庫》(BNC)進(jìn)行對比研究(嚴(yán)華,2006)。本研究需要按照so的話語功能分類進(jìn)行標(biāo)注,而后者的語料已進(jìn)行過詞性賦碼,因此,我們需要先刪除其原始詞性標(biāo)注。
在正式刪除詞性標(biāo)注前,我們有必要了解一下BNC的標(biāo)注特征。BNC的標(biāo)注一般放在一對尖括號(hào)內(nèi),具體的標(biāo)注說明可以參照BNC2 POS-Tagging Guide(Leech & Smith 2000)和Users Reference Guide British National Corpus(Burnard 1995),這里僅補(bǔ)充他們沒有提及但我們必須熟悉和了解的一些標(biāo)注:① BNC的文件頭標(biāo)注既包括尖括號(hào)內(nèi)容,也包括普通文本,只有將之刪除才能確保研究者進(jìn)行詞數(shù)統(tǒng)計(jì)的精確性;② 標(biāo)注中的s代表句子(sentence),n=“1”代表第一行;③ 尖括號(hào)內(nèi)的所有單詞的詞性標(biāo)注都是以字母w開始的,其中,w代表單詞word;④ 標(biāo)點(diǎn)符號(hào)除雙引號(hào)外均以字母c開始;⑤ &bquo;代表直接引語開始時(shí)的雙引號(hào),&equo;代表直接引語結(jié)束時(shí)的雙引號(hào)。鑒于以上BNC的詞性標(biāo)注特征,我們將刪除工作分為四步。
(1) 刪除文件頭
用PowerGREP自帶的編輯器(Editor)打開選取的文件。BNC中標(biāo)志正式文本語料開始的第一行,此前是對該文本的說明,即文件頭。因此,我們在文本中定位到,然后刪除之前的文件頭部分。
(2) 替換&bquo;與&equo;為雙引號(hào)。
首先在定義操作類型(Action type)欄的下拉菜單中選擇搜索與替換(Search and replace),并在搜索類型(Search type)欄的下拉菜單中選擇正則表達(dá)式(Regular expression)。然后,在搜索欄中輸入&bquo;替換欄中輸入雙引號(hào),點(diǎn)擊替換按鈕(Replace),將&bquo;替換成雙引號(hào)。接著,我們采取同樣的方法將&equo;也替換成雙引號(hào)。
(3) 替換等行號(hào)為空格。
在搜索欄輸入正則表達(dá)式,將光標(biāo)插入替換欄,敲擊兩下空格鍵,這樣做的目的是為了保持原文的格式,即首行縮進(jìn)兩個(gè)字符。接著,點(diǎn)擊替換按鈕(Replace),完成語料中以s開頭的行號(hào)標(biāo)注的刪除工作(見圖2)。
(4) 刪除其余所有標(biāo)注。
在搜索欄中輸入正則表達(dá)式,替換欄留空,然后點(diǎn)擊替換按鈕(Replace),完成其余他所有標(biāo)注的刪除。我們用編輯器(Editor)查看最終的編輯效果。如圖3所示,一個(gè)干凈可讀的文本展示在我們面前,將之直接保存即可。
3.2 添加語料標(biāo)注
刪除了BNC語料中的標(biāo)注之后,接下來我們就可以按單詞so的話語功能對中國學(xué)習(xí)者語料和BNC語料重新進(jìn)行標(biāo)注。我們需要先采集所有包含單詞so的句子,然后利用PowerGREP的編輯器功能進(jìn)行人工賦碼。
(1) 采集
如圖4所示,我們首先選擇在定義操作類型(Action type)欄的下拉菜單中選擇采集(Collect data),并在搜索類型(Search type)欄的下拉菜單中選擇正則表達(dá)式(Regular expression)。然后,勾選Group results for all files與Group identical matches兩個(gè)選項(xiàng),并在搜索欄中輸入檢索詞so的正則表達(dá)式\bso\b(注:\bso\b只能匹配單詞so,這樣做類似于文本檢索中的whole words only。)。接著,在文件區(qū)域(File sectioning)的下拉菜單中選擇逐行(Line by line),并勾選采集或替換所有匹配區(qū)域(Collect/Replace whole sections),這樣保證采集結(jié)束后所有的匹配結(jié)果將以逐行的形式提取并可保存為一個(gè)文件。在采集之前還需預(yù)先設(shè)置文件保存的類型和路徑。因此,我們在創(chuàng)建目標(biāo)文件(Target File Creation)中選擇將結(jié)果保存為單個(gè)文件(Save results into a single file),然后在目標(biāo)文件地址(Target file location)處填入保存文件名與路徑,如D:\我的文擋\so.txt。最后,點(diǎn)擊采集按鈕(Collect)即可得到所有包含單詞so的句子。
(2) 標(biāo)注
我們用PowerGREP自帶的編輯器(Editor)打開剛剛采集并保存的文檔。如圖5所示,每行都只有一個(gè)單詞so,這樣既方便了賦碼操作,又節(jié)省了我們研究者的時(shí)間。限于篇幅,具體的賦碼過程在此不一一敘述。BNC語料賦碼結(jié)束后,我們重復(fù)以上步驟對SWECCL進(jìn)行標(biāo)注,這樣就完成了單詞so研究分析前的標(biāo)注工作。
3.3 修改語料標(biāo)注
PowerGREP還可用來修改語料標(biāo)注。語料標(biāo)注的修改大致出于兩種原因:標(biāo)注調(diào)整和賦碼糾正。