-
-
Notifications
You must be signed in to change notification settings - Fork 992
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
加入規範繁轉簡 #465
The head ref may contain hidden characters: "\u52A0\u5165\u898F\u7BC4\u7E41\u8F49\u7C21"
加入規範繁轉簡 #465
Conversation
ae547bf
to
334f04e
Compare
這個提議不錯,我也一直想做異體字規範化。但是我覺得最好還是能把單字的簡繁關係和異體字規範化分成不同的字典,這樣也便於減少重複的詞組。 |
意思是比如增加個 TSVariants.txt,繁轉簡時先跑 TSVariants.txt 再跑 TSCharacters.txt 和 TSPhrases.txt? 的確,這樣做的話,比如繁轉簡有關「拿」的詞就不用「拿」「㧱」分別寫一次了。 不過要實做的話,水有點深…… 先說比較嚴重的問題好了,目前 OpenCC 的分詞似乎只支援單詞典,如果繁轉簡改成這樣的形式,分詞還是用 TSPhrases.txt 跑的話,涉及異體字的分詞貌似會失效。 |
沒錯,可能要做代碼改動,實現更加複雜的異體字規範化處理。我需要仔細考慮一下如何實現。 |
這會牽涉到要先收詞再分字典,或是先分好字典再收詞,或是邊收邊分字典的問題。 而且現在還有另一個可能要分字典的 #217 (comment) 我個人傾向,如果不預期分字典和重寫程式可以在短期內完成,就先收詞,之後有空再分字典。 或者,替代方案是邊收詞邊分字典,也就是先把這批轉換分到另一個字典TSVariants.txt,但先和 TSCharacters.txt 合併使用,並在文檔適當註明,之後有空再改寫代碼即可。但是這樣做也會有問題,因為在程式改寫前可能有些異體字規範化無法先分字典,例如「裡=>里」應該要拆成「裡=>裏」和「裏=>里」,但在程式改寫前只能先維持 TSCharacters.txt 用「裡=>里」。 |
- 「𰰨(U+30C28)」為「菕」的類推簡化字,二者互做簡繁轉換。「芲(U+82B2)」為「花」之異體字,不應與「菕」互轉。
- 繁轉簡時按《通用規範漢字表》附註將特殊情況下可使用的繁體字、異體字、類推簡化字列入候選。 - 原字只在特定詞語不按一般方式簡化時,該特殊字列為次選,如「劄=>札劄」「讎=>仇雠」。 - 原字用於人名、地名不按一般方式簡化時,若原字在其他地區不常用,該特殊字列為首選,如「仝=>仝同」「甯=>甯宁」;否則列為次選,如「秘=>秘祕」。
- 已有類推簡化者,以《通用規範漢字表》規範字優先。如「傌=>㐷」改為「傌=>骂㐷」。
我覺得這問題要先定義清楚,否則以後會很難進行適當操作。 首先,如何區分「異體字規範化」和「繁轉簡」? 我認為所謂的「異體字規範化」是「非 OpenCC 標準字轉為 OpenCC 標準字」。 OpenCC 的繁轉簡可以分成 4 種情況:
第1、2種都是《通用規範漢字表》和《簡化字總表》說的漢字簡化,我想沒有不視為簡繁轉換的理由。 第3種應該就是你所謂的異體字規範化。 第4種應該要拆成3+1,例如「眾=>衆」、「衆=>众」。第3種的一些情況應該要拆成3+2,例如「裡=>裏」、「裏=>里」。 這樣定義同時也避免了「異體字規範化」發生一對多的問題。因為 OpenCC 的做法是「能分則不合」,如果一個異體字可以在不同情況下對應多個 OpenCC 標準字,就表示此字有與眾不同的字義,那就必須也收入 OpenCC 標準字,於是這個字的轉換只能是上述的情況 2,而不會是情況 3。 |
原提案取消,分成 #484 + #492 處理。(#484 還加上了對應的簡轉繁部分) 關於實做異體字規範化的問題,我認為先把這批詞表加入,之後再慢慢處理異體字規範化的問題比較好。除了前面提到的幾個問題;
還有一個我在嘗試實做時發現的重要問題:需要大量考證。因為《通用規範漢字表》的認定不太嚴謹,不少被認定是異體字而兼併的字,其實都有不同的意思,比如該表把「彫、琱、鵰」都兼併為「雕」,但實際上四個字都有不完全互相重疊的字義,按 OpenCC 能分則不合的原則應分別視為標準字(目前的簡轉繁詞表已有「雕=>雕 鵰」,st_multi 還有「雕=>彫 鵰」),如果未經審核就放到異體字規範化字典裡,可能會衍生出大量錯誤。 如果要等異體字規範化的實做方法及相關程式修改完成,再逐字慢慢審核及加入異體字規範化字典,那可能會造成 OpenCC 在極長的一段時間內無法做到符合《通用規範漢字表》的簡繁轉換。 相對來說,這批收錄的字不過是按照《通用規範漢字表》的規定實做,大部分由程式自動完成,需要的審核量不多,而且直接放進目前的 TSCharacters 字典就立馬可用。異體字規範化未完成也不會影響正常使用,所以建議先收入,以後再分批處理異體字規範化的問題即可。 簡而言之,先求符合規範,之後再慢慢處理細節優化。 |
這個接在 #464 之後。