rime/plum

詞典共享計劃

lotem opened this issue · 6 comments

lotem commented

問題

「八股文」詞典及各部韻書缺少常用詞彙,尤其是

  • 最近幾年產生並廣泛使用的新詞
  • 極其高頻的詞組及固定搭配

用家持續使用輸入法,會在用戶詞典記下衆多新詞、缺詞,並按使用習慣調整詞頻,從而逐漸提升輸入體驗。然而這些屬於隱私數據,無法用於改善「八股文」及各部韻書,也無法安全地分享給其他用家。

共享計劃,以衆包的模式改進詞典,其關鍵是設計一套嚴密保護隱私數據、彙總、發現新詞、人工審查彙總結果的機制,並實現相關工具。

構想

這套工具鏈的第一環節是用家通過 GitHub 帳號訂閱一期詞典共享計劃。
分期的目的是每期之間可以更新流程及工具,變更分享內容,並使用不同的加密密鑰。
使用不同輸入語言(編碼方案)的用家可加入不同的共享計劃,或只參加八股文詞典共享。
將來這一概念可以擴展到共享專業\行業詞典,等等。

訂閱要求用家的用於參加分享用戶詞典積累了達到一定量的數據。訂閱後先由工具分析詞典內容,抽樣產生一份報表(可能包含新詞及詞頻相對於預設值有顯著更新的詞),呈用戶審閱(可手動刪除部份不願共享的內容,或重新抽樣)後,做雙層不對稱加密,將密文提交到該期共享計劃的資料庫。

第二環節,由執鍵人完成彙總。
在收集到大量用家提交的報表後,由當值執鍵人在安全操作環境中,持外層密鑰的私鑰對報表解除一層加密。執鍵人不持有內層密鑰。
這將使每條記錄的用戶識別碼(並非個人身份信息)、詞頻等字段可讀,而詞條內容(加鹽)仍受第二層加密保護。執行腳本彙總所有用家提交的資料,濾去使用人數、累計詞頻折算權重不足設定閾值的記錄,結果再次加密後,寫入另一資料庫。

第三環節,審覈團隊人工處理彙總結果。
審覈團隊必須排除當值執鍵人,並獨立設計本期共享計劃的記錄格式、加鹽算法,配製用於內層加密的密鑰。審覈團隊不持有外層加密的私鑰,因此只能解密查看彙總後的資料。
審覈團隊須排除惡意提交的記錄,分析、討論詞條及編碼的正確性,並確定有效記錄的歸屬。
例如,一份方言輸入方案的新詞記錄,除連帶編碼匯入所屬韻書外,屬於通用語的詞彙,另可去除編碼匯入「八股文」詞典。然而該方言特有的詞彙只應進入方言詞典。對詩詞、歇後語、專業術語、常用的固定搭配等也應考慮收集到專門的詞典。

第四環節,審覈後確定的更新內容,加密後推送給本期計劃訂閱者。
訂閱者提交一定數量的報表後,用家可獲得解密密鑰,以訪問本期計劃資料庫中已共享的內容。

第五環節,該期共享計劃結束後,在相應代碼庫發出 pull request,將所有 PR 鏈接記錄在共享計劃結果記錄頁(Issues)。

願意加入

lotem commented

@netzrh 这里讨论的不是在线输入。

@lotem 请问目前计划有更新进度吗?

小鹤音形词库有共享的吗?

alswl commented

@lemos1235 小鹤音形库不是单纯的表码,还需要做一些代码逻辑调整。

lotem commented

哇,真是有趣的計劃。lotem的點子還真多呢。
不過想要實行,需要一個技術團隊。
還得完成一項先期任務:製作一個成熟的命令行(配方管理器)工具,先替代目前的腳本用作數據分發,再依託這一工具做數據共享。