Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
繁簡轉換函式庫 追求正確率 先解析詞性再繁簡轉換 繁體中文↔簡體中文轉換 Chinese converter between Traditional Chinese and Simplified Chinese.
在人工智慧讀通文義、繁簡轉換前,應用自然語言處理中文分詞、標注詞性、判斷語境之後再做轉換,應比單純詞彙比對更準確。辭典應可如維基百科般由眾人編輯,且記錄改變原由,加進 test suit。
Chinese_converter 採用先中文分詞(附帶詞義、詞性標注),再以 CeL.zh_conversion 繁簡轉換的方法,來輕量化繁簡轉換辭典,同時達到較為精確的繁簡轉換。
CeL.zh_conversion 採用與 OpenCC 和新同文堂相同的技術,從前至後,於每個字元位置檢查符合辭典檔中詞彙的最長詞彙,一旦符合就置換並跳到下一個字元位置。
這種方法在遇到某些字詞必須與前一個字詞連動時,就可能漏失掉。例如「干」預設會轉成「幹」。(轉換標的通常是用途雜亂,最難找出規則又常出現、例外多的字詞。)因此當辭典檔中有「芒果」卻沒有「芒果乾」時,遇到「芒果干」就可能換成「芒果幹」。 我們可以藉由把這些需要連動的詞彙全部加入辭典檔來完善轉換結果,例如令「芒果干」轉換成「芒果乾」,additional.to_TW.txt 與 CN_to_TW.LTP.PoS.txt 中就有許多例子。但這造成辭典檔複雜龐大,就本例來說,我們畢竟不可能把所有動植物,如蘋果乾、響尾蛇乾全加進去。 而且每次加入新的詞彙也得考慮是否會影響到上下文。例如加入「上千」將造成「算得上千钧一发」因為先符合了「上千」,「钧一发」本身不在辭典檔中,將造成轉換錯誤。而加入了「下游」→「下游」,也得同時加入「下游戏」→「下游戏」以防止「玩一下游戏」、「停下游戏」被錯誤轉換。
此外這種做法最大的問題是不能依上下文判斷。例如「这颗梨子干你什么事」、「我拿水蜜桃干他朋友什么事」就不容易正確轉換。而有些詞像「排泄」、「排洩」,「自制」、「自製」有兩種可能性,也必須依上下文來判斷。
先中文分詞來判斷,可依句子與片語的結構來轉換。不但較靈活,也更能應對特殊情況。例如 zh_conversion 指定了許多 这只→這隻、一只→一隻 之類的轉換。在遇到「這隻是小鳥」、「這只是妄想」時常常出錯。若能判斷出「只」是否為量詞,則可減少許多錯誤。
雖然中文分詞有其優勢,可惜現在中文分詞精確度尚待加強。辭典檔規則極為依賴中文分詞系統,加上 zh_conversion 執行速度快許多,因此 Chinese_converter 只對分詞極少出錯,或者要寫成 zh_conversion 形式規則太過繁雜的特殊情況,才採用中文分詞辭典。
歡迎提供句子以做測試,也歡迎提交辭典檔規則。
繁簡轉換流程:
幹
,形容詞用乾
。Install LTP first.
經實測,採用哈工大 LTP 4.1.5.post2 Base(v3) 模型的服務端版本,配合相對應辭典;以 繁→簡→繁 轉換測試檔中的文字,可轉換回原先之內容。
On Windows, install LTP:
pip install ltp
pip install tornado
pip install fire
pip install --upgrade ltp
Install Node.js, and then install cecc:
npm install cecc
直接下載 LTP server 原始碼並改 'small'
為 'base'
。
啟動 LTP server,預設為 http://localhost:5000/ 。您可能需要 6 GB 記憶體來啟動 server。第一次執行需要下載超過 500 MiB 的辭典檔。
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
function convert_using_pair_Map_by_length(text)
。npm test
跑測試。npm test
確認無衝突。有時另外挑出句子會解析出不同語法,此時必須透過完整轉換文本修訂辭典:通過 work_crawler 選擇繁簡轉換功能,並隨時修訂辭典,應先設定 .cache_directory(work_crawler 會自動設定)。
_test suite/articles/watch_target.作品名稱.(TW|CN).txt
(e.g., watch_target.第一序列.TW.txt),會在每次轉換都測試是否有相符之文字。npm test nowiki
測試。久未更新
久未更新
未考慮詞性之簡繁轉換:
FAQs
繁簡轉換函式庫 追求正確率 先解析詞性再繁簡轉換 繁體中文↔簡體中文轉換 Chinese converter between Traditional Chinese and Simplified Chinese.
We found that cecc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.