寫了篇文章,讓gpt4.0幫我調整了下,本覺不錯,細看之下,竟發現彼竟大肆修改措辭,減少「批評」言論,並將措辭俚俗化,只得再加修改。
簡繁轉換的挑戰與解決方案
當前的簡繁轉換工具,如OpenCC,主要採用單字+詞彙的模式進行轉換,即以詞彙優先,單字在無法匹配詞彙時發揮作用。這種模式雖然功能強大,但在實際應用中仍然會遇到一些挑戰。
詞頻問題
OpenCC在進行簡繁轉換時,首先考慮詞彙的匹配,然後才是單字。以「周」為例,當遇到「周一」時,它會被優先轉換為「週一」,因為「週一」作為詞彙是已經定義的。但當遇到「周明」這樣沒有特定詞彙匹配的情況,則會優先選擇單字「周」,結果轉換為「周明」。
然而,這種詞頻優先的模式有時會帶來問題。例如,OpenCC將「周济」轉換為「賙濟」,這在一般情況下是合理的,但詞學文本中常見清人「周濟」,這樣的轉換便不合適。因此,為了應對這樣的情況,可以刪除「賙濟」的詞彙條目,或將其改為「周濟」。
這反映了詞頻優先帶來的詞頻問題:過度依賴詞頻,可能會導致某些特殊情境下的轉換不準確。
選字問題
選字時,如果只依賴字的出現頻率,會導致不可避免的錯誤。例如,「于」對應於「於」和「于」兩個字,而市面上的簡繁轉換系統通常會將「於」放在「于」前面。這在人名轉換中會引發嚴重錯誤。比如,「于謙」常常被錯誤轉換爲「於謙」,這對於涉及人名的文本來說是災難性的。
實際上,今天讀yú的「於」文本中用「于」替代是極常見的,不足爲怪。(這裏給不熟悉簡化字的朋友們提醒:簡化字未將「於」一併簡爲「于」,wū的義項還是「於」)
鑑於一簡對多繁只有百來組,這種選字上的調整很簡單。
語境問題
語境對於簡繁轉換的影響亦不容忽視。以「发」字為例,它可以對應「發」和「髮」。在「明白发生」這樣的短語中,轉換工具經常會出錯,將其錯誤地轉換為「明『白髮』生」,而非「明『白發』生」,這是因為「髮」和前後的字都構成了詞彙,而轉換系統優先了錯誤的匹配。
針對這種情況,有幾種解決方案:
- 增加詞彙:加入「明白發生」這樣的固定詞組,使其能正確轉換。
- 建立糾錯機制:在轉換後進行二次檢查,將「髮生」糾正為「發生」。
- 詞頻調整:將「明白」加入詞彙,讓系統優先處理「明白」,從而避免「白髮」的構成。
繁化姬、opencc採用的均是第一種方法,不過繁化姬在其評論區有許多反饋,故正確率勝過opencc。
筆者則採用了第一種和第二種方法,收集語境並建立糾錯詞庫。第三種方案筆者曾嘗試導入rime八股文的高頻詞彙,但或許是引入的詞彙過多,效果不佳。
文本區分的必要性
不同的文本中,應選取各自合適的詞庫。例如,「髮生」在現代文本中可能是一個錯誤詞彙,但在古代文本中可能是正確的。「散髮」在古代比「散發」更常見,而在現代則正好相反。因此,簡繁轉換應該根據文本的類型進行區別處理,而非一刀切。
傳統轉換方法的局限性
需要強調的是,傳統的簡繁轉換方法無法窮盡所有的語境,無論怎麼優化,最終都只能減少人工校對的工作量。無法做到完美的轉換,這是這種方法的天然局限。
對此可以做到的是建立易錯詞彙供「排查」之用。
AI轉換的未來
目前AI在簡繁轉換上的應用尚未看到實際可行的案例。我並不樂觀