跳到主要內容

Concise Tutorial: 脈絡化的關鍵字 Concordance(Keyword in Context)


Concordancer

今天早上釋出了Concise 0.2.1b,修正了一些小小的問題,同時也為Concise的查詢增加了一個實用小功能——萬用字(wildcard)。在這篇Tutorial裡頭,我們就運用Concordancer來進行查詢的介紹,同時為關鍵詞進行脈絡化的工作。


1. 關鍵詞文脈(Keyword in Context)與詞語索引(concordance)

關鍵詞文脈(KWIC, Keyword in Context)的詞語索引(concordance)長久以來都是電腦化文本分析的一個重要工具。幾乎在每一個語料分析的工具中,都以某種類似的形式呈現。對搜尋引擎進行搜尋後,出現的部分內文預覽,就是這樣的一個概念。不單單是關鍵詞,連關鍵詞週遭的句子也一併呈現,使它構成一個簡短的文脈,這就是關鍵詞文脈(KWIC)的主要概念。而詞語索引(concordance)的工作則是將這些簡短的文脈,用比較清楚的方式呈現出來。

1.1. 關鍵詞搜尋

Concise中是以Concordancer來承擔詞語索引的工作。在上方的工具列中輸入想要搜尋的詞,並設定左右文脈的長度,按下放大鏡進行關鍵詞的脈絡化與詞語索引。這就是最簡單的詞語索引操作。

ToolBar

大部份的語料工具(如WordSmith和AntConc)是以視窗大小(window size or window span),也就是畫面中能夠容納多少的字元的方法來設定詞語索引的文脈大小。可是Concise的架構有點不同,是以詞語數來定義文脈的長短。並且以「段落」(純文字中則是以換行字元來界定段落)作為關鍵詞文脈的邊界。儘管設定左邊文脈的長度為10個詞,有時卻只會出現兩三個詞,甚至是空的。另外還有一點要注意,標點符號在Concordancer當中也被當成一個詞,在輸入搜尋條件的時候必須要考慮進去。

1.2. 脈絡化與再脈絡化

重新設定左右文脈的長度,可以調整詞語索引可見的範圍。然而,對於語料極少的眾多質化研究的使用者來說,只有一行簡短的文脈仍舊是不夠的,斷章取義的風險仍然太大。Concise提供了另一項再脈絡化的利器——File Viewer。在Concordancer的表格上,針對你想深入探究的文脈點兩下滑鼠,File Viewer便會出現在畫面右方,並且標出你所選取的關鍵詞位置,同時還凸顯出同樣關鍵詞在該檔案中的位置。這麼一來,應該可以避免過於片斷化、過於簡化的推論。

file viewer

File Viewer右方還提供了一個簡單的詞語索引的位置散佈圖,標示這個關鍵詞在整個檔案中的相對位置。假使你的文本是個演講稿,你就可以知道這個詞是否在某些時刻特別被強調。

不過File Viewer目前仍然限於使用小文章,無法開啟過大的語料檔案。如果要查看比較大的語料檔案的關鍵詞位置散佈狀況,請使用ConcordancePlotter來進行。


2. 進階搜尋

Concise提供三種搜尋方式,Word、Regex、還有Words List。

  • Word: 簡單的關鍵詞搜尋,可搭配萬用字使用(見2.1.與2.2.)
  • Regex: 使用正規表達式(regular expression)進行搜尋(見2.3.)
  • Words List: 使用詞表進行搜尋(見2.4.)

search action


2.1. 多個連續詞的搜尋

Concordancer除了進行單一個關鍵詞的搜尋之外,也可以進行多個連續詞的搜尋。比方說,我想知道「休閒農業」在這份語料檔中是怎麼被描述的,我就可以輸入「休閒 農業」。注意到,「休閒」與「農業」之間有個空格存在。換句話說,必須用空格來連接兩個連續的詞。再說得簡單一點,把中文當成英文來寫就對了,每個詞中間都要夾著空格。

mutiple words search

為什麼不能直接使用連續的「休閒農業」四個字進行搜尋呢?原因就出在中文對於詞的模糊定義。當然,如果你當初分詞的時候就將「休閒農業」視為一個詞,這麼做就沒有任何問題。只不過這麼一來,便會犧牲了「休閒」與「農業」單獨存在的意義解釋空間。在這份語料檔案中,「休閒」與「農業」是被當作兩個獨立的詞,要搜尋休閒農業就只能用空格將兩個詞給連起來了。


2.2. 使用萬用字(wildcard)

儘管Concise裡面提供了REGEX的搜尋方式(見2.3. REGEX),允許使用者用正規表達式(regular expression)來進行搜尋。但是對大部份的使用者來說,REGEX是個相當陌生的東西。所以,Concise決定在這個版本(0.2.1b)之後增加萬用字(wildcard)來解決這個問題。

wildcards

Concise提供下列萬用字,直接看例子應該比較容易瞭解。這些字都是可以替換的,你可以換成自己習慣使用的符號來用。

  • *:零或更多個字元(Zero or more characters)
  • ?:零或一個字元(Zero or one character)
  • +:任何一個字元(Any one character)
  • @:零或一個詞(Zero or one word)
  • #:任何一個詞(Any one word)
  • |:搜尋詞「或」搜尋詞(search term 'OR' search term)

使用「黑*」來搜尋時,可以找到「黑面琵鷺」、「黑豬」、「黑心」、「黑」等等。黑的後面可以有字,也可以沒有字。

wildcard star


使用「黑?」進行搜尋,則只能夠找到「黑豬」、「黑心」、還有「黑」。因為「?」的限制是零或一個字元。

wildcard question mark


用「黑+」搜尋的話,就只有「黑豬」、「黑心」兩個詞而已。「+」代表一定要有一個字元存在。

wildcard plus


使用「黑心@」來搜尋的話,則會找到「黑心」、「黑心 食品」。「@」代表的是詞,可以有一個也可以沒有。

wildcard at


使用「黑心#」來找的話,就只有「黑心 食品」了。「#」表示後面一定要接著一個詞才可以。

wildcard hash


用「黑心|黑豬」去找,就可以看到「黑心」或者「黑豬」構成的搜尋條件了。

wildcard pipe


熟練之後,可以使用更複雜的搜尋方式,像是「黑心|黑豬#等」來進行更精確的搜尋。

wildcard multiple search


2.3. REGEX

如果你會使用正規表達式(regular expression)的話,用Regex這個方法來搜尋會很方便。這裡不打算介紹正規表達式,有興趣的請看Java Pattern class的描述,或者使用線上的Regular Expression Test Page來嘗試。

只不過Concise因為架構的原因,針對正規表達式做了一個限制。在搜尋的正規表達式中,不能在()和[]之間夾著空格。空格對Concise來說,是詞與詞的連接符號。如果使用空格,表示的是前後兩個詞單獨的搜尋模板(pattern)。

regex search


2.4. WORDS LIST

運用詞表(Words List)來進行搜尋,則是單純將幾個詞的結果集合起來。不過,詞表當中無法使用萬用字或正規表達式,必須是精確的詞。

words list search


3. 小結

本文以Concordancer介紹了Concise中使用的搜尋模式,在Collocator和Word Cluster裡頭也可以使用相同的搜尋方式。事實上,Collocator和部份Word Cluster的資料基礎正是這些關鍵詞的簡短文脈所提供的。

回到關鍵詞文脈(Keyword in Context)的概念上,儘管Concise可以提供比較快速的方式去掌握文本,不過詮釋的功夫仍然在研究者或分析師的腦子中。因此,Concise在文脈的這個部分,提供了不同程度的再脈絡化工具,讓研究者能夠快速的穿梭在各種脈絡當中,掌握快速或全面的文本狀況。

留言

熱門文章

差不多食譜:手工巧克力餅乾 Chocolate Cookies

又是手工餅乾,最近一連出了兩份餅乾食譜,這個「手工巧克力餅乾」已經是第三份了。會不會有更多呢?我可以告訴大家,這是肯定的。 要怪就怪這個陰鬱的冬季雨天,哪裡都不方便去,也懶得出去。餅乾櫃空在那邊已經很久了,雖然有時候會嘴饞,但也沒有迫切去補貨的必要。反正經常開伙,平常該有的材料都會有,自己弄個成分完全透明的零食,也是個不錯的選擇。再說,用烤箱進行烘焙時,房間會變得比較乾燥,也比較溫暖。在夏天是個折磨,但到了冬天,這種感覺還滿不錯的。 話不多說,開始進行這一道「手工巧克力餅乾」的準備工作。

【豐原大蔥】免揉大蔥佛卡夏 No-knead Leek Focaccia - 差不多食譜

「豐原大蔥」的第二道食譜,就做 大蔥馬鈴薯濃湯 那篇提到的「大蔥佛卡夏」,而且用的還是懶人的免揉方法。不光是麵包,這份食譜還有一個衍生的副產品「大蔥油」,靈感來源就是蔥油拌麵。接著就來看看我是怎麼做的吧! 「大蔥佛卡夏」差不多需要這些材料:(20cm鑄鐵鍋) 豐原大蔥 ...... 1根 橄欖油 …… 適量(150ml左右) 高筋麵粉 …… 200g 鹽 …… 2g 酵母粉 …… 2-3g 水 …… 180-200g 「大蔥佛卡夏」差不多是這麼做的: Step 1. 製作「大蔥油」 說來你可能不相信,製作「大蔥佛卡夏」的「大蔥油」,靈感竟是來自於蔥油拌麵。但是大蔥油製作時需要人在旁邊顧著,而且炸過的大蔥也會拌進麵團裡面,正式製作佛卡夏前就先把這個大蔥油做好。 用小蔥製作蔥油的時候,只有切段丟進油裡去炸。可是我打算把炸過的大蔥一起揉到麵包裡,大蔥纖維比較不好咬斷,就先用刀子給它切碎。要注意的是,這裡我只用蔥白,以及稍微有點厚度的蔥綠,也就是蔥白和蔥綠交界那邊。 接下來,把切碎的大蔥放入鍋中,並倒入橄欖油,用中小火慢慢去炸大蔥。我不想要麵包裡黑黑的,所以炸到大蔥變軟,香味散出,顏色稍微黃一點的時候就可以關火,並將炸過的大蔥撈出放涼。 剩下的油就是大蔥油了,留下來炒菜、拌麵都很不錯。 Step 2. 製作佛卡夏麵團 拿個大碗,倒入高筋麵粉、鹽巴、酵母,再加上水攪拌成團。不用揉,只要成團就可以。 Step 3. 拌入大蔥發酵 往麵團中放入炸過而且放涼的大蔥,用湯匙或筷子拌進麵團。如果你的大蔥瀝的比較乾,再多補一兩匙大蔥油進去。當然,我這種差不多的作法,盛大蔥的碗底就差不多有一兩匙大蔥油了,整碗直接倒進去就好。 拌好後,找個蓋子蓋起來,室溫放一兩個鐘頭進行基礎發酵。也可以直接放進冰箱發酵,隔天再拿出來處理,就像其他的免揉麵包一樣。 Step 4. 移到烤盤 發酵完成,就可以把麵團轉移到烤盤上。我懶得洗鍋子,直接拿炸大蔥油的那個鑄鐵鍋當作烤盤來用。先在鑄鐵鍋(烤盤)底部抹些油,再灑些鹽巴,這樣麵包烤好之後表面就可以咬到一點鹹味。 接著就把麵團直接搬到烤盤,淋點大蔥油,開始用手指戳出佛卡夏特有的孔洞。操作之前記得洗手! 戳完孔後,切點蔥綠用大蔥油泡一下,均勻放在佛卡夏表面,並稍微壓進麵團裡。最後往表面再灑些鹽巴,同樣是在表面就可以嚐到些許的鹹味。這樣,就可以準備烘焙了! Step

差不多食譜:壽桃 Birthday Bunns

「壽桃」可不是老人家生日的專利,小巧玲瓏的壽桃超級受到小朋友歡迎,直說「好可愛喔!」其實壽桃就是一種造型饅頭/包子,只要掌握了這些方法,要做其他的造型都沒問題。