Skip to content

OpenCC 地區詞收錄標準 (草案) - #1281

Merged
frankslin merged 3 commits into
BYVoid:masterfrom
frankslin:regional-phrases-inclusion-principles
Jun 8, 2026
Merged

frankslin merged 3 commits into
BYVoid:masterfrom
frankslin:regional-phrases-inclusion-principles

Conversation

@frankslin

@frankslin frankslin commented Jun 5, 2026 •

Copy link
Copy Markdown
Collaborator

為配合 OpenCC 後續香港地區慣用詞詞表(如 HKPhrases.txt / HKPhrasesRev.txt)的建設工作,並減少地區詞收錄標準、詞表邊界及專有名詞處理方式等問題上的重複討論,現提出《OpenCC 地區詞收錄標準》,作為日後地區詞條新增、修改及爭議裁定的參考依據。

本文件涵蓋:

  • 地區詞詞表的適用範圍與邊界;
  • 地區詞收錄原則;
  • 方言詞與專有名詞的處理方式;
  • 關注度與證據要求;
  • 提交規範與測試要求;
  • 爭議處理原則。

文件內容主要根據 OpenCC 現有詞表維護實務、歷史討論以及近年來多次地區詞相關議題整理而成,目的是提高收錄標準的一致性與可預測性,並為未來新增地區詞詞表提供共同遵循的準則。

歡迎就文件內容提出意見,包括:

  • 收錄原則是否合理;
  • 各項條文是否清晰且具有可操作性;
  • 是否存在重要情況尚未涵蓋;
  • 是否有與現行詞表維護實務不符之處。

@frankslin frankslin changed the title Add regional phrase inclusion criteria OpenCC 地區詞收錄標準 (草案) Jun 5, 2026
chatgpt-codex-connector[bot]

This comment was marked as resolved.

@BYVoid

BYVoid commented Jun 5, 2026

Copy link
Copy Markdown
Owner

贊同這個標準,尤其是香港用詞部分,絕大多數情況下不應該包含普通話到粵語的相互轉換,除非是特殊的翻譯,且僅僅在香港使用如:「忌廉」與「奶油」。

@danny0838

danny0838 commented Jun 5, 2026 •

Copy link
Copy Markdown
Contributor

首先,這個檔案是否應該和 DESIGN_PRINCIPLES.md 合併?或至少二者互相連結?

其次,有個問題我覺得需要釐清:簡繁轉換和地區異體字、詞轉換如何區分?這會影響到在哪個詞典收字,以及寫在 characters-easy-to-misuse.md 的哪個區塊。

我個人的區分方法是:

  • 《通用規範漢字表》明確定義的簡繁轉換或異體字轉換,或《簡化字總表》明確定義的簡化字/類推簡化字,或 OpenCC 標準字和中國大陸標準正體字之間的轉換,屬簡繁轉換,即應在 s2t/t2s 處理。
  • 異體字中 OpenCC 標準字和各地標準正體字、異體字之間的轉換,屬地區異體字轉換,即應在 t2tw/tw2t/t2hk/hk2t 處理。(簡繁轉換和地區異體字轉換可同時存在)
  • 一個字詞有多種寫法,而在各地偏好不同時,屬地區詞彙轉換,即應在 s2twp/tw2sp/s2hkp/hk2sp 處理。可視實際需求不收(例如誤判風險過高)或收為單字轉換(例如:矽<=>硅)。

例如前面 #433, #515, #859, #861, #862 等 issue 都有討論到的畫/劃、着/著、沉/沈、冢/塚等字。

以下逐個探討,但這裡的重點不是談論各項具體如何處理,而是希望藉由討論部分案例,確立一套合理、有共識的區分原則,並寫入本草案或 DESIGN_PRINCIPLES.md。

畫/劃

二者未列於《通用規範漢字表》、《簡化字總表》、《異體字字典》,但在不同地區的使用偏好有明顯不同:

  • 中國大陸字典有收「计画」「计划」二詞,但實際上幾乎只用「计划」
  • 台灣「計畫」「計劃」都使用,且傾向二者含義不同(前者用於名詞,後者用於動詞)

我認為二者應屬地區詞彙轉換。

按此,以目前資料來看,TSPhrases 應移除「計劃=>计划」,可考慮加到 TWPhrasesRev 中。characters-easy-to-misuse.md 中「簡轉繁」的「劃」不應列入「畫」,但可新增一區「地區用字差異」(探討非異體字的習慣差異)探討此關係。

沉/沈

在《通用規範漢字表》、《簡化字總表》並未列出二者關係,《異體字字典》認為就「沉沒」義二者互為異體。

實際使用時,「沉沒」義中國大陸只用「沉」,台灣大多也用「沉」,但偶爾有人用「沈」。

我認為應屬地區異體字轉換。

按此,以目前資料來看,TSPhrases 應移除「沈默=>沉默」,可考慮加到 TWVariantsRevPhrases 中。characters-easy-to-misuse.md 中「繁轉簡」不應列入「沉/沈」,而是移到「異體字」一節探討。

着/著

在台灣認定「著」為正體,「着」為異體。中國大陸、香港則二者用於不同字義。我認為應屬地區異體字轉換。

按此,以目前資料來看,characters-easy-to-misuse.md 中「繁轉簡」不應列入「着/著」,而是移到「異體字」一節探討。

@frankslin

Copy link
Copy Markdown
Collaborator Author

這裡有一個前提上的差異,我想先說清楚。

我不認為 OpenCC 的詞表一定需要按「語言學上的分類」拆得很細。字表、詞表首先是為 conversion chain 服務的:某條規則應在哪個階段生效、是否只影響特定地區輸出、是否會造成反向轉換誤傷,這些才是決定放置位置的主要依據。

如果每一種細分差異都要求單獨建表,表面上分類更細緻,但實際只會增加所有人的負擔。很多條目本來就跨類,最後容易變成每新增一條都要先爭論分類,而不是判斷轉換結果是否合理。這不是詞表設計不夠精細的問題,而是 s2t 層本身的結構性限制——下面會說到。

characters-easy-to-misuse.md 目前的狀態,更接近歷史歸檔,不應反過來決定詞表結構。本 PR 的目標是給「地區慣用詞」建立可操作的收錄標準,而不是重新設計整個詞表分層。

你提到的「畫/劃」、「沉/沈」等案例,我認為正好可以說明這個 結構性限制 是什麼。

OpenCC 的簡繁轉換鏈在技術上是不可能完全對稱的,這一點不知 DESIGN_PRINCIPLES.md 是否沒有說清楚。

所謂「OpenCC 標準繁體」,更準確地說,其實是「簡體到各類繁體」轉換鏈中的一層通用中間輸出,不是一套獨立於輸入方向存在的完整繁體規範。這一點從 s2twp 的鏈路就能看出:

门德尔松 (s) -> 門德爾松 (t) -p-> 孟德爾頌 (tw)

反方向是:

孟德爾頌 (tw) -p-> 門德爾松 (t) -> 门德尔松 (s)

而並不是:

孟德爾頌 (tw) -> 孟德爾頌 (t) -p-> 门德尔松 (s)

也就是說,這裡的 OpenCC 標準繁體中間層並不是「台灣、香港繁體本身去掉地區特徵後所得的自然繁體文本」,而是為了後續簡體輸出所需要的通用繁體形式。假如存在一個「tw2tp」的模式,從「孟德爾頌」出發,它的輸出也一定是「門德爾松」,而不是「孟德爾頌」。

接受這一點後,很多案例就比較容易理解——也意味著,要求 OpenCC 在詞表層面嚴格區分「簡繁轉換」、「地區異體字」、「地區詞彙」等,其實預設了一個 s2t 層並不具備的精度。從簡體輸入出發,如果簡體字詞本身已經合併了若干繁體內部差異,OpenCC 的 s2t 層就無從可靠恢復這些區別。

回到你的例子,繁體中可以區分「計劃」、「計畫」,但現代簡體通常都寫作「计划」(字典裡的「计画」不被鼓励使用,如下)。因此「计划」轉 OpenCC 標準繁體時,不可能僅憑輸入可靠判斷應該是「計劃」還是「計畫」,只能選擇一個通用預設形式。從這個角度,要求 s2t 的中間層恢復「計劃/計畫」之別,意義不大。

image

同理,「沉/沈」、「着/著」等案例,也不能期待通用 s2t / t2s 層恢復所有繁體內部或各地用字差異。

據此,這幾個字引申出的歸類問題,也不應成為本 PR 「收錄標準」討論的前置條件。

@danny0838

danny0838 commented Jun 6, 2026 •

Copy link
Copy Markdown
Contributor

回到你的例子,繁體中可以區分「計劃」、「計畫」,但現代簡體通常都寫作「计划」(字典裡的「计画」不被鼓励使用,如下)。因此「计划」轉 OpenCC 標準繁體時,不可能僅憑輸入可靠判斷應該是「計劃」還是「計畫」,只能選擇一個通用預設形式。從這個角度,要求 s2t 的中間層恢復「計劃/計畫」之別,意義不大。
image

同理,「沉/沈」、「着/著」等案例,也不能期待通用 s2t / t2s 層恢復所有繁體內部或各地用字差異。

從這段就能看出你根本沒弄懂我在說什麼。

首先,我認為字典以括號標註的詞只是表示比較不常用的寫法,除非你能舉證該字典有明言,否則我不認為這能證明「计画」「不被鼓勵使用」。

不過根據我查到的語料,我大致可以相信中國大陸的確非常少「计画」的寫法,所以我並不反對做相應的轉換處理,你我的差異是在於把這種處理放在哪個層級。

按照我的說法,「畫/劃」不是簡繁差異,因此 s2t/t2s 完全不該處理它們的轉換,STPhrases/TSPhrases 和 TWVariantsPhrases/TWVariantsRevPhrases 一樣,只用於處理字轉換的歧異。也就是說,如果字層級不存在「畫 => 划」的轉換,TSPhrases 就不該存在「計畫 => 计划」。這是原則問題,也是未來可能引進檢查腳本處理的。

按此,s2t 只會是「计画=>計畫」或「计划=>計劃」,哪裡有你所謂「『计划』轉 OpenCC 標準繁體時判斷應該是『計劃』還是『計畫』」的問題?

t 本來就是中國大陸習慣用語,如果中國大陸幾乎只使用「计划」,那麼 t 就是只承認「計劃」為標準寫法,不預期會出現「計畫」,進一步言,STPhrases 輸出值和 TSPhrases 輸入值都不該有「計畫」。這是原則問題,也是未來可能引進檢查腳本處理的。

所以我根本沒有「要求 s2t 的中間層恢復『計劃/計畫』之別」,恰恰相反,我主張消除這個區別,只承認「計劃」;反而是你主張 t2s 存在「計畫 => 计划」,也就是主張 t 存在「計畫」這種標準寫法,你才是主張 t 這個中間層存在「計劃/計畫」之別。

會有問題的是台灣不少人習慣使用「計畫」,不符合中國大陸多數人的習慣,因此需要引入地區詞彙轉換:

計畫 (tw) -p-> 計劃 (t) -> 计划 (s)

為什麼我認為這個區分很重要?一方面是如上所述,這是未來潛在可以引進檢查腳本檢查和約束的地方。另一方面是同詞異寫的情況很多,如果不這樣限制,好比之前 #1036、#1031 處理的問題,繁體有「丁當/叮噹」,「當」和「噹」都簡化為「当」,但中國大陸幾乎沒有人用「叮当」,那照你的說法是不是 t2s 也要加上「叮噹=>丁当」?即使「丁」根本不是「叮」的簡化字。

「沉/沈」的問題同理,雖然它們的確有部分異體關係(所以應該屬於地區異體的轉換),但中國大陸極少用「沈默」就表示 t 只有「沉默」一種標準寫法,那麼 t2s 輸入值就不該有「沈默」,也不該有「沈默 => 沉默」這種轉換存在。

據此,這幾個字引申出的歸類問題,也不應成為本 PR 「收錄標準」討論的前置條件。

就是因為有這種問題,所以才需要討論。因為日後可能會基於相同理由引進香港的地區字/詞轉換:

計畫 (hk) -p-> 計劃 (t) -> 计划 (s)
沈默 (hk) --> 沉默 (t) -> 沉默 (s)

@frankslin

Copy link
Copy Markdown
Collaborator Author

關於 TWPhrases.txt 和其他詞表的邊界,實際操作上採用的是直觀區分方式:由字形或字音相近、相同字組構成的詞,酌情放入 STPhrases、TSPhrases、TWVariantsPhrases 或 TWVariantsRevPhrases 等詞表;而字組看起來明顯不同的才是地區慣用詞,例如「計程車 / 出租車」這類,放入 TWPhrases.txt。後者才是本次 PR 討論的範圍。

這個規則顯然不是你期待的嚴格的語言學定義,邊緣案例一定會存在;遇到時個案討論即可。我們不認為有必要為此建立一套精確的分類體系。從維護成本和實際收益看,為少數邊界案例引入更複雜的詞表分層,並不划算。

至於「畫/劃」、「沉/沈」、「着/著」等案例,不是本 PR 所要解決的「地區慣用詞」收錄標準問題。這些案例此前也已有相關 issues / PR 討論,沒有必要在本 PR 中重新展開。

另外感謝提醒。我會在 DESIGN_PRINCIPLES.md 中補充本文件的連結,以便未來查找。

Comment thread doc/regional-phrase-criteria.md Outdated
例如:

* 招聘 ↔ 招募(含義不同)
* 支持 ↔ 支援(各地都有使用)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

目前 TWPhrases/TWPhrasesRev 就有這個轉換,恐怕不是好範例。

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

早先 TWPhrases 曾經分成三個表:IT、專名、其他,後來再統一生成 TWPhrasesRev。這種分表設計的初衷,是考慮到未來若有人只要其中一部分,可以透過修改配置文件,只使用一到兩個表。

當時這些表裡爭議最小的是「專名」(主要問題在於關注度),其次是「IT」(少數條目如「內核/核心」可能有過度轉換問題);問題最多的是「其他」,因為極易引入很多導致荒謬輸出的例子。之前處理過的「通過/透過」就是一個明顯例子。

本次「收錄標準」的目的不是要重新审核既有詞表設計,而是約束新增的地區詞表内容,尤其是 HKPhrases,避免重蹈覆轍。至於目前既有 TWPhrases 詞表中不符合此標準的條目,如果將來實際遇到問題,再個案處理即可,不需要專門為此重新清理舊表。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我的意思是可以改成別的範例,以免文件與實情不符。

目前似乎沒有那麼多人不認同「支持」「支援」的轉換,或也許認為可以加詞處理歧義而非刪除,如果沒有相關 PR 或社群決定要刪,這個範例就不符合實情。

Comment thread doc/regional-phrase-criteria.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b8955699b7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread doc/regional-phrase-criteria.md
@danny0838

danny0838 commented Jun 7, 2026 •

Copy link
Copy Markdown
Contributor

就如 AI 分析提到的,目前的檢測腳本會在單向轉換時報錯,應該要更改檢測腳本,或在文件寫上相關說明(例如用 A => A B 的方式繞過) 。

@frankslin

Copy link
Copy Markdown
Collaborator Author

我來把字典中的「通道 / 信道」修改為單向轉換。
至於「日常用到的動詞收錄要謹慎」是維護者討論過的,只是舉的例子不夠好。
或許應該再加一節,討論對於已經收錄的詞彙「既往不咎」的原則?

關於 AI 不夠聰明的問題,可以在 AGENTS.md 裡面加特定知識補上。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cdd4a46232

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread doc/regional-phrase-criteria.md
@frankslin
frankslin force-pushed the regional-phrases-inclusion-principles branch from cdd4a46 to ec62ec0 Compare June 8, 2026 18:02
@frankslin
frankslin merged commit 7a20ab8 into BYVoid:master Jun 8, 2026
31 checks passed
@frankslin
frankslin deleted the regional-phrases-inclusion-principles branch June 8, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants