開源實體解析

匹配中日韓姓名, 其他工具做不到

陳大文、Chan Tai Man 和 陈大文 是同一個人。純語音引擎識別不出來。Dataline 透過三個獨立信號 — 語音、字形和正規化 — 跨文字、羅馬化和字元形式進行匹配,讓真正的匹配不會遺漏。

loading matching engine...
Initializing WASM...

為什麼不直接轉寫成拉丁字母再做語音匹配?

因為將中日韓文字折疊為拉丁字母會在每個階段遺失資訊。拼音是多對一的。NYSIIS 合併不同聲母。聲調消失。OCR 錯誤變得不可見。Dataline 獨立評估三個信號,一個維度的弱分不會掩蓋另一個維度的強匹配。

多信號匹配

每對字元計算三個獨立信號 — 語音、字形和正規化 — 評分後再組合。高字形匹配分數不會被低語音分數稀釋。

語音距離

拼音和粵拼距離評分,保留 NYSIIS 會合併為同一組的聲母區分(zh/z/j、ch/c/q)。

字形相似度

筆畫序列比較能捕捉 OCR 和手寫錯誤 — 看起來幾乎相同但發音完全不同的字元。

簡繁互轉

自動跨字元形式正規化。陳 和 陈 無需先轉換為拼音即可識別為同一實體。

智慧分塊

分塊鍵 — 首字元、語音鍵、地址區域 — 將 O(n²) 比較降至線性時間。單機可擴展至千萬級記錄。

完整 MDM 管道

分詞 → 分塊 → 比較 → 聚類 → 存活。宣告式欄位級存活規則從匹配組中建構黃金記錄。

有基準測試,不只是口頭聲稱

基於真實中日韓資料的 Criterion 基準測試。所有數據均可透過 cargo bench 複現。

597K

每秒多信號比較次數

8.3M

每秒簡繁正規化次數

~63s

16 核處理一千萬筆記錄

千萬級記錄擴展性(首字元姓氏分塊)
核心數耗時硬體
1~17 min單執行緒
16~63 sec一般伺服器
64~16 sec雲端執行個體

多信號中日韓比較約 1.7µs/對。Rayon 工作竊取並行。假設姓氏均勻分佈 — 實際中日韓資料存在偏斜(常見姓氏如陳會產生更大的分塊),實際耗時可能有所不同。複合分塊鍵可解決此問題。

Rust 建構,五條命令即可體驗。

基於 Apache 2.0 協議免費開源。無需註冊、無需 API 金鑰,Cargo 之外無其他依賴。

快速開始
git clone https://github.com/digital-rain-tech/dataline.git
cd dataline
cargo build
cargo test
cargo bench