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
- | \\d+(\\.\\d+)? | 數字(1或多個;代表整數部分),後面有「可有可無」的小數點及1或多個數字」 |
175
- +====================================+=========================================================================+
176
- | \\s? | 空格「可有可無」 |
177
- +------------------------------------+-------------------------------------------------------------------------+
178
- | (km\|GB\|%) | 3選1: km 或 GB 或 % |
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
- | ![](media/Colab_OpenSubtitles2024_runall.png){width="5.854166666666667in" \| height="3.0in"} |
190
- | |
191
- | 因系統 須下載語料庫,故請耐心等候數分鐘。系統完成搜尋後會將結果顯示於下方: |
192
- | |
193
- | ![](media/Colab_OpenSubtitles2024_search_results.png){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
- ![](media/image4.png){width="5.854166666666667in" height="2.2916666666666665in"}
208
 
209
  ------------------------------------------------------------------------
210
 
211
  對譯者特別重要的,是正規表示式在品管與前處理上的用途。很多雙語資料在進入對齊或TM之前,都需要先過濾雜訊,如頁首頁尾、重複空白、編號殘片、複製貼上留下的斷行、OCR造成的錯字、HTML標記、網址、程式碼片段、電子郵件地址等,若不先處理,後續比對與對齊的品質就會大幅下降。regex 的價值,正在於能快速批次抓出這些形式,免去逐行人工檢查的勞費。
212
 
213
- 如果說基本 regex是在找形式,那麼進階語法則是在處理「關係」。這裡最常用的是群組(group)、回參(backreference)與前後查找(lookahead與 lookbehind)。所謂群組,就是用括號 ()把某一段模式包起來,讓整段模式成為可重用的單位。舉例來說,(Chapter\|Section)\\s+`\d+`可以同時抓到 Chapter 3 與 Section 2。若括號內的內容被捕捉下來,就可以在後續替換時引用,常寫成 \\1、\\2等。
214
 
215
- 回參對譯者很實用,因為很多清理工作其實是「把找到的東西重排」。例如,可能從一批資料裡擷取到English Term(中文譯名) 的形式,想改成 中文譯名(English Term)以符合雙語註記習慣。若搜尋模式寫成 (\[A-Za-z\]\[A-Za-z0-9 .\_-\]+)((\[\^)\]+)),那麼替換時便可用 \\2(\\1)把順序交換。又例如,若欲找出連續重複的標點,如 `!!`、`,,` 或 `。。`,可以用 (\[,。!?;:\])\\1+ 這種帶回參的寫法。回參的本質,是讓regex 不只認得某種字形,也認得「前面出現過的同一段內容」。
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
+ | ![](media/Colab_OpenSubtitles2024_runall.png) |
 
 
 
 
187
  | |
188
+ | 因系統 須下載語料庫,故請耐心等候數分鐘。系統完成搜尋後會將結果顯示於 |
189
+ +-------------------------------------------------------------+
190
+
191
+ ![](media/Colab_OpenSubtitles2024_search_results_zh.png)
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
+ ![](media/Colab_OpenSubtitles2024_search_results_en.png)
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

  • SHA256: 3d41574279152262bef70efb92734a52d20dafd723b1505ecfa48091e28a8e13
  • Pointer size: 131 Bytes
  • Size of remote file: 378 kB
src/media/{Colab_OpenSubtitles2024_search_results.png → Colab_OpenSubtitles2024_search_results_zh.png} RENAMED
File without changes