README
CeCC - Colorless echo Chinese converter
在人工智慧讀通文義、繁簡轉換前,應用自然語言處理中文分詞、標注詞性、判斷語境之後再做轉換,應比單純詞彙比對更準確。辭典應可如維基百科般由眾人編輯,且記錄改變原由,加進 test suit。
Concepts
- 先中文分詞(附帶詞義、詞性標注)+自動判斷句子、段落的語境(配合維基百科專有名詞轉換)
- 再繁簡轉換(輕量化繁簡轉換辭典負擔)
Process
繁簡轉換流程:
- 中文分詞(採用外包程式中文斷詞)
- TODO: 判別語境
- 依照相應詞典轉換各詞彙
Features
- 經由判斷詞性,可簡單判斷如何轉換。例如動詞用
幹,形容詞用乾。 - 自帶條件式生成功能,可快速生成辭典用的候選條件式。
- 自附 cache 功能,可大大降低多次轉譯長文的時間(例如在測試期間、修改辭典條件欲重新轉換)。
Installation
Install LTP first. 您可能需要 6 GB 記憶體來啟動 LTP server。
經實測,採用哈工大 LTP 4.1.3、Small(v3) 模型的服務端版本,配合相對應辭典,可正確 繁→簡→繁 轉換測試檔中的文字。
Install 中文分詞: LTP
On Windows, install LTP:
安裝 Pytorch。如果
pip install ltp不成功則 至 Pytorch 官方網站選擇合適版本離線安裝。 e.g.,cu101/torch-1.7.0%2Bcu101-cp38-cp38-win_amd64.whlCUDA version:
"%ProgramFiles%\NVIDIA Corporation\NVSMI\nvidia-smi.exe"or"%SystemRoot%\System32\nvidia-smi.exe"pip install torch-*.whlInstall tornado:
pip install tornado
- Install LTP:
pip install ltp
- Upgrade LTP:
pip install --upgrade ltp
Alternative: Install 中文分詞: nodejieba
Alternative method: On Windows, install nodejieba:
REM run as Administrator
npm install --global windows-build-tools
REM Waiting for some minutes...
npm install --global node-gyp
npm install --global node-pre-gyp
npm install nodejieba
REM Waiting for some minutes...
Install cecc
And then install cecc:
npm install cecc
Usage
啟動 LTP server,預設為 http://localhost:5000/ 。
Try codes:
// load module const CeCC = require('cecc'); // chinese_converter const cecc = new CeCC({ LTP_URL : 'http://localhost:5000/' }); cecc.to_TW('简体中文'); cecc.to_CN('繁體中文');完整測試。
# 重新生成 .converted.* 解答檔案。 npm test regenerate_converted # TODO: 重新生成所有詞性查詢 cache。 npm test ignore_cache
Mechanism 文字替換機制
- 若有符合附帶詞性字典檔的文字,則依之變換。其他未符合的交由 CeL.extension.zh_conversion 處理。
- zh_conversion 基本上採用 OpenCC 的辭典,並以 generate_additional_table.js 合併新同文堂和 ConvertZZ 的字典檔成 additional.to_TW.auto-generated.txt 與 additional.to_CN.auto-generated.txt。依照 CeL.extension.zh_conversion 中 Converter.options 之字典檔順序,每個序列由長至短轉換。實際文字替換轉換作業在 CeL.data.Convert_Pairs 中的
function convert_using_pair_Map_by_length(text)。
辭典修訂流程
一次正常的單句式辭典修訂流程
- 閱讀轉換過的文字,發現轉換錯誤。
- 改成正確的句子,填入測試檔 general.TW.txt 或 general.TW.answer.txt。
- 啟動 LTP server,
npm test跑測試。 - 檢核測試工具自動生成的條件式,將合適的條件式填入辭典檔 CN_to_TW.LTP.PoS.txt 或 TW_to_CN.LTP.PoS.txt。必要時添加新 filter 功能函數於 CN_to_TW.LTP.filters.js。
npm test確認無衝突。- 通過測試後 push 新辭典檔。
邊閱讀文本邊修訂流程
有時另外挑出句子會解析出不同語法,此時必須透過完整轉換文本修訂辭典:通過 work_crawler 選擇繁簡轉換功能,並隨時修訂辭典,應先設定 .cache_directory(work_crawler 會自動設定)。
- 閱讀轉換過的文字,發現轉換錯誤。
- 改成正確的句子,填入作品相應的測試檔
_test suite/articles/watch_target.作品名稱.(TW|CN).txt(e.g., watch_target.第一序列.TW.txt),會在每次轉換都測試是否有相符之文字。 - 持續修改辭典檔至能通過
npm test nowiki測試。 - 重新生成繁簡轉換後文本,檢核測試工具自動生成的條件式,將合適的條件式填入辭典檔 CN_to_TW.LTP.PoS.txt 或 TW_to_CN.LTP.PoS.txt。
- 全部閱讀檢核完後,將作品相應的測試檔的文句填入測試檔 general.TW.txt 或 general.TW.answer.txt。
Defect
- LTP 轉換速率過慢。
- 詞典仍過於薄弱、有缺陷,尚待加強。
- 因為當前語言解析程式仍處於粗糙階段,解析結果不甚穩定;更換 LTP 程式版本就需要大幅改變辭典。
See also
中文分詞
- “结巴”中文分词 繁體版本
- pkuseg:一个多领域中文分词工具包
- Ansj中文分词
- 中文分词工具比较、中文分词器分词效果评估对比、中文分词工具评估、五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
久未更新
詞性標記 词性标注
久未更新
簡繁轉換
未考慮詞性之簡繁轉換: