Ruben Tsui commited on
Commit ·
194e7c5
1
Parent(s): 1263ea0
Update book content
Browse files
src/index.qmd
CHANGED
|
@@ -96,7 +96,7 @@ Regex 工具 (2):Zed (開源文字編輯軟體;下載網址:[[https://zed.
|
|
| 96 |
|
| 97 |
最常用的基本符號,包括幾類。句點 `.` 代表任意單一字元;星號 `*` 代表前一個模式可出現零次以上;加號 `+` 代表前一個模式至少出現一次;問號 `?` 代表可有可無。方括號 `[]` 用來指定字元集合,例如 `[A-Z]` 表示任一大寫英文字母。脫字符號 `^` 與錢字號 `$` 常用來分別表示行首與行尾。`\d` 代表數字,`\s` 代表空白,`\w` 在許多 regex engine中代表英數底線組成的字元。這些基本積木,就足以描述許多譯者常碰到的形式。
|
| 98 |
|
| 99 |
-
## 正規表示式摘要
|
| 100 |
|
| 101 |
+-----------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
| 102 |
| 字元 | 意義 / 用法 | 備註 |
|
|
@@ -170,15 +170,12 @@ Regex 工具 (2):Zed (開源文字編輯軟體;下載網址:[[https://zed.
|
|
| 170 |
|
| 171 |
以上可看到符合該 regex 的文字在編輯器中標示出來。此 regex 以3個部分分析如下:
|
| 172 |
|
| 173 |
-
|
| 174 |
-
|
|
| 175 |
-
+
|
| 176 |
-
| \
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
+------------------------------------+-------------------------------------------------------------------------+
|
| 180 |
-
| 以上為要出現在同一行: 分 3 rows \| | |
|
| 181 |
-
+------------------------------------+-------------------------------------------------------------------------+
|
| 182 |
|
| 183 |
::: {.callout-note title="實務操作 (1) OpenSubtitles 2024"}
|
| 184 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
@@ -186,12 +183,14 @@ Regex 工具 (2):Zed (開源文字編輯軟體;下載網址:[[https://zed.
|
|
| 186 |
| |
|
| 187 |
| 選單:先點選 Runtime ⇒ Run all 讓系統下載程式套件及語料庫 (OpenSubtitles 2024) |
|
| 188 |
| |
|
| 189 |
-
| 
|
| 190 |
-
| |
|
| 191 |
-
| 因系統 須下載語料庫,故請耐心等候數分鐘。系統完成搜尋後會將結果顯示於下方: |
|
| 192 |
-
| |
|
| 193 |
-
| {width="5.854166666666667in" \| height="2.2222222222222223in"} |
|
| 194 |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
| 使用者可更改搜尋語言及 字串(中、英字串輸入方格分開)。如要儲存搜尋結果,可先點一下表格,按 Ctrl-A 或 ⌘A (全選), 再剪貼至 Word、Excel 或文字編輯器即可。 |
|
| 196 |
+==========================================================================================================================================================================+
|
| 197 |
| |
|
|
@@ -204,15 +203,15 @@ Regex 工具 (2):Zed (開源文字編輯軟體;下載網址:[[https://zed.
|
|
| 204 |
|
| 205 |
... **throwing** *you* under the bus. ... **throw** *me* under the bus! I **threw** *four people* under the bus for \$35,000, ... 等等
|
| 206 |
|
| 207 |
-
、回參(backreference)與前後查找(lookahead與 lookbehind)。所謂群組,就是用括號 ()把某一段模式包起來,讓整段模式成為可重用的單位。舉例來說,(Chapter\|Section)\
|
| 214 |
|
| 215 |
-
回參對譯者很實用,因為很多清理工作其實是「把找到的東西重排」。例如,可能從一批資料裡擷取到English Term(中文譯名) 的形式,想改成 中文譯名(English Term)以符合雙語註記習慣。若搜尋模式寫成 (
|
| 216 |
|
| 217 |
另一類很實用的進階語法,是 lookahead 與lookbehind,也就是前後查找。這兩種語法的特色是只檢查條件是否成立,卻不會將該條件納入最終的匹配字串中(non-consuming)。這在譯者處理格式時特別方便。假設只想擷取第12條 中的數字,而不欲將「第」與「條」一併納入,便可使用(?\<=第)`\d+`(?=條)。再例如,欲找出所有後面接全形括號的英文術語,卻不將括號內容一併納入,可使用某種(?=()的前瞻寫法。這種語法的實務價值,在於能協助精確鎖定目標,而不破壞周邊結構。
|
| 218 |
|
|
@@ -228,7 +227,7 @@ Regex 工具 (2):Zed (開源文字編輯���體;下載網址:[[https://zed.
|
|
| 228 |
|
| 229 |
從這個角度看,regex其實不是工程師的專利,而是譯者的放大鏡。當資料量增加、文本來源變雜、格式問題變複雜時,此工具能幫助譯者看見肉眼不易穩定捕捉的規律。也因為如此,regex不只是「搜尋技巧」,更是語料工作中非常核心的一種整理能力。
|
| 230 |
|
| 231 |
-
|
| 232 |
|
| 233 |
公開語料庫很有幫助,但終究不是為特定專案量身打造。譯者若想建立貼近自己工作領域的資源,最終仍要學會自行建資料。這裡所謂的「建立雙語平行資料」,並不一定是指建構龐大的學術型語料庫;很多時候只需把一批原本零散的中英文材料整理成可對照、可搜尋、可匯出的形式。語料規模可以很小,但只要結構合理、來源清楚、品質可控,這樣就已經很有實務價值。
|
| 234 |
|
|
|
|
| 96 |
|
| 97 |
最常用的基本符號,包括幾類。句點 `.` 代表任意單一字元;星號 `*` 代表前一個模式可出現零次以上;加號 `+` 代表前一個模式至少出現一次;問號 `?` 代表可有可無。方括號 `[]` 用來指定字元集合,例如 `[A-Z]` 表示任一大寫英文字母。脫字符號 `^` 與錢字號 `$` 常用來分別表示行首與行尾。`\d` 代表數字,`\s` 代表空白,`\w` 在許多 regex engine中代表英數底線組成的字元。這些基本積木,就足以描述許多譯者常碰到的形式。
|
| 98 |
|
| 99 |
+
### 正規表示式摘要
|
| 100 |
|
| 101 |
+-----------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
| 102 |
| 字元 | 意義 / 用法 | 備註 |
|
|
|
|
| 170 |
|
| 171 |
以上可看到符合該 regex 的文字在編輯器中標示出來。此 regex 以3個部分分析如下:
|
| 172 |
|
| 173 |
+
| Regex | 說明 |
|
| 174 |
+
| ----- | ----- |
|
| 175 |
+
| `\d+(\.\d+)?` | 數字(1或多個;代表整數部分),後面有「可有可無」的小數點及1或多個數字」 |
|
| 176 |
+
| `\s?` | 空格「可有可無」 |
|
| 177 |
+
| `(km\|GB\|%)` | 3選1: km 或 GB 或 % |
|
| 178 |
+
以上3個部分必須連在一起寫成一行,此處我們分3個部分說明。
|
|
|
|
|
|
|
|
|
|
| 179 |
|
| 180 |
::: {.callout-note title="實務操作 (1) OpenSubtitles 2024"}
|
| 181 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
| 183 |
| |
|
| 184 |
| 選單:先點選 Runtime ⇒ Run all 讓系統下載程式套件及語料庫 (OpenSubtitles 2024) |
|
| 185 |
| |
|
| 186 |
+
|  |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 187 |
| |
|
| 188 |
+
| 因系統 須下載語料庫,故請耐心等候數分鐘。系統完成搜尋後會將結果顯示於 |
|
| 189 |
+
+-------------------------------------------------------------+
|
| 190 |
+
|
| 191 |
+

|
| 192 |
+
|
| 193 |
+
+-------------------------------------------------------------+
|
| 194 |
| 使用者可更改搜尋語言及 字串(中、英字串輸入方格分開)。如要儲存搜尋結果,可先點一下表格,按 Ctrl-A 或 ⌘A (全選), 再剪貼至 Word、Excel 或文字編輯器即可。 |
|
| 195 |
+==========================================================================================================================================================================+
|
| 196 |
| |
|
|
|
|
| 203 |
|
| 204 |
... **throwing** *you* under the bus. ... **throw** *me* under the bus! I **threw** *four people* under the bus for \$35,000, ... 等等
|
| 205 |
|
| 206 |
+

|
| 207 |
|
| 208 |
------------------------------------------------------------------------
|
| 209 |
|
| 210 |
對譯者特別重要的,是正規表示式在品管與前處理上的用途。很多雙語資料在進入對齊或TM之前,都需要先過濾雜訊,如頁首頁尾、重複空白、編號殘片、複製貼上留下的斷行、OCR造成的錯字、HTML標記、網址、程式碼片段、電子郵件地址等,若不先處理,後續比對與對齊的品質就會大幅下降。regex 的價值,正在於能快速批次抓出這些形式,免去逐行人工檢查的勞費。
|
| 211 |
|
| 212 |
+
如果說基本 regex是在找形式,那麼進階語法則是在處理「關係」。這裡最常用的是群組(group)、回參(backreference)與前後查找(lookahead與 lookbehind)。所謂群組,就是用括號 ()把某一段模式包起來,讓整段模式成為可重用的單位。舉例來說,(Chapter\|Section)`\s+`\d+`可以同時抓到 Chapter 3 與 Section 2。若括號內的內容被捕捉下來,就可以在後續替換時引用,常寫成 `\1`、`\2`等。
|
| 213 |
|
| 214 |
+
回參對譯者很實用,因為很多清理工作其實是「把找到的東西重排」。例如,可能從一批資料裡擷取到English Term(中文譯名) 的形式,想改成 中文譯名(English Term)以符合雙語註記習慣。若搜尋模式寫成 `([A-Za-z][A-Za-z0-9 .\_-]+)(([^)]+))`,那麼替換時便可用 `\2(\1)` 把順序交換。又例如,若欲找出連續重複的標點,如 `!!`、`,,` 或 `。。`,可以用 `([,。!?;:])\1+` 這種帶回參的寫法。回參的本質,是讓regex 不只認得某種字形,也認得「前面出現過的同一段內容」。
|
| 215 |
|
| 216 |
另一類很實用的進階語法,是 lookahead 與lookbehind,也就是前後查找。這兩種語法的特色是只檢查條件是否成立,卻不會將該條件納入最終的匹配字串中(non-consuming)。這在譯者處理格式時特別方便。假設只想擷取第12條 中的數字,而不欲將「第」與「條」一併納入,便可使用(?\<=第)`\d+`(?=條)。再例如,欲找出所有後面接全形括號的英文術語,卻不將括號內容一併納入,可使用某種(?=()的前瞻寫法。這種語法的實務價值,在於能協助精確鎖定目標,而不破壞周邊結構。
|
| 217 |
|
|
|
|
| 227 |
|
| 228 |
從這個角度看,regex其實不是工程師的專利,而是譯者的放大鏡。當資料量增加、文本來源變雜、格式問題變複雜時,此工具能幫助譯者看見肉眼不易穩定捕捉的規律。也因為如此,regex不只是「搜尋技巧」,更是語料工作中非常核心的一種整理能力。
|
| 229 |
|
| 230 |
+
## 第三節 如何自行建立雙語平行資料
|
| 231 |
|
| 232 |
公開語料庫很有幫助,但終究不是為特定專案量身打造。譯者若想建立貼近自己工作領域的資源,最終仍要學會自行建資料。這裡所謂的「建立雙語平行資料」,並不一定是指建構龐大的學術型語料庫;很多時候只需把一批原本零散的中英文材料整理成可對照、可搜尋、可匯出的形式。語料規模可以很小,但只要結構合理、來源清楚、品質可控,這樣就已經很有實務價值。
|
| 233 |
|
src/media/Colab_OpenSubtitles2024_search_results_en.png
ADDED
|
Git LFS Details
|
src/media/{Colab_OpenSubtitles2024_search_results.png → Colab_OpenSubtitles2024_search_results_zh.png}
RENAMED
|
File without changes
|