AntConc是免費而強大的語料檢索工具,在進行中英文的文章檢索的時候,往往需要進行模糊檢索。模糊檢索包括:(1)一個單詞的多種變化形式的檢索;(2)多個單詞的逐一檢索;(3)單詞的前綴或後綴檢索;(4)某種長度或某個長度範圍(長度就是字母數量)的單詞的檢索;(5)某種單片語合模式或句型的檢索。本教程就是以最簡潔最生動的方式讓您在模糊檢索的技能方面,插上「正則表達式(regular expression或簡稱regex)」的翅膀……
1. 「豎線」,也就是「|」,在正則表達式(模糊檢索)中的意思是「或者」,因此某個詞或某兩三個詞的屈折形式的檢索,可以用下面的表達法(首先勾上「regex」這個選項喲):
2. 但是,如果你要檢索的單詞也往往成為其他單詞的一部分的話,上面的做法就會出現嚴重偏差,例如你想要檢索off,這個詞就容易出現在其他單詞的開始或中間位置:
3. 因此,必須指定在「off」的前後必須有一個空格,而空格在正則表達式中就是「\s」,也就是「反斜線與字母s」,這裡的字母s就是space(「空格」)這個英語單詞。
4. 英語單詞的主要形式是多個字母所組成,雖然也有一些單詞是字母與數字構成,或者是「純數字」構成。所以,絕大多數情況下,純粹字母構成的單詞是我們關注的對象。
5. 用正則表達式來表達一個字母,就是「[a-zA-Z]」,這裡的方括弧就是表示方括弧裡面的所有內容只是一個字元而已,a-z就是所有的小寫字母中的某一個,A-Z就是所有的大寫字母中的某一個,而[a-zA-Z]就表示「一個大寫或小寫字母」。那麼,英語單詞的開始和結束有什麼特徵呢?最主要的特徵就是前後都有一個空格,而空格的正則表達式就是「\s」,也就是反斜線後面有一個字母s。所以,要檢索「4個字母組成的單詞」就是下面的表達,即「\s[a-zA-Z]{4}\s」:
6. 要檢索「4個或5個或6個字母組成的單詞」就是下面的表達,即「\s[a-zA-Z]{4,6}\s」:
7. 要檢索「6個或更多字母組成的單詞」就是下面的表達:
8. 要檢索ful結尾的單詞,就是(表達式中的「+」表示至少1個的意思):
9. 要檢索ful或less結尾的單詞,就是:
10. 要檢索「un」為前綴的單詞,就是:
11. 要檢索「the * of」這種結構,這裡的*表示某個單詞,就用「\sthe\s[a-zA-Z]+\sof\s」:
12. 要檢索「the * * * of」這種結構,這裡的3個*表示3個單詞,就用「\sthe\s([a-zA-Z]+\s){3}of\s」,這裡的圓括弧就表示把圓括弧裡面的內容重複多次,重複的次數在後面的{}裡面用數字進行指定:
13. 要檢索「ed結尾的動詞與ly結尾的副詞的搭配」,就用「\s[a-zA-Z]+ed\s[a-zA-Z]+ly\s」:
14. 上面的檢索辦法並不完美,其實以ed結尾的卻不是動詞的單詞也會有一些,而且以ly結尾的單詞也未必就是副詞。要真正做到「對某種詞性的某個詞的檢索」,就必須先對所有句子段落都進行POS taggging(詞類標註,也叫「詞類標註」),這樣的標註就會把每個詞的後面都添加一個下劃線或斜線或反斜線,然後再添加一個標籤,例如用JJ表示形容詞,VV表示動詞(前面是兩個字母V),這樣的標籤有多套,每套都是不同的高校或開發者指定的,例如,美國賓西法尼亞州立大學的那套就是這個清單:
15. 下面就是在語料庫中檢索love這個詞的動詞用法的正則表達式,從前後詞的標註你也就明白了「被標註了詞性的語料」是什麼樣子的:
16. love的名詞用法的檢索就是:
17. 如果介詞都被標註為「IN」這個標籤,那麼,想要找「介詞+名詞」這種結構,就:
18. 如果被標註詞與標籤之間的連接符號不是下劃線,而是斜線,就需要輸入「/IN [a-zA-Z]+/NN」:
19. 如果被標註詞與標籤之間的連接符號是反斜線,就需要輸入「\\IN [a-zA-Z]+\\NN」,注意,因為反斜線是特殊符號,所以需要用兩個反斜線代表一個反斜線喲:
20. 同理,如果標籤左右是方括弧包住的,就需要輸入「\[IN\] [a-zA-Z]+\[NN\]」,注意,這是因為左方括弧和右方括弧都是特殊符號,所以需要用在方括弧的左側添加一個反斜線喲:
21. 上面的內容雖然只是讓你掌握到了正則表達式的初級水平,但是,你已經清晰地明白了「豎線、斜線、反斜線、方括弧、花括弧、加號、下劃線」這7種符號的威力,尤其是你能進行多重組合的時候,就能構建出相當複雜也相當廣泛的語言結構與語言現象了,恭喜你
本文作者:李亮博士
感謝李老師的無私分享