語言偵測 API:三元組偵測的運作原理
三元組頻率語言偵測的做法,是計算文字中包含的三字元序列,並將其分佈與預先計算好的各語言特徵檔比較,藉此判斷文字的語言。這是一種精簡、快速的統計技術,不需要神經網路模型,也是 ipto 語言偵測器所採用的方法,涵蓋 76 種語言。
三元組偵測如何運作
每種語言都有其特有的字母組合。在英文中,「the」、「ing」和「ion」之類的序列隨處可見;在西班牙文中,取而代之的是「ión」、「que」和「los」;在德文中,「sch」、「ein」和「der」則很常見。三元組就是從文字中取出的連續三個字元,通常會先轉成小寫並移除數字與標點,同時保留空格,使詞的邊界成為模式的一部分。例如字串「 th」就表示一個以「th」開頭的字。
偵測器事先會對大型參考語料庫計算三元組並依頻率排序,為每種語言建立特徵檔。查詢時,它對你的文字做同樣的處理,並衡量該分佈與每個已儲存特徵檔的接近程度。距離最小的語言勝出,而最佳與次佳候選者之間的差距則提供信心值。由於特徵檔是查找表,每次請求的工作量只有對文字的一次掃描,再加上幾次比較。不需要任何遠端服務,所以文字的任何內容都不必離開伺服器。
書寫系統與三元組
當許多語言共用同一種書寫系統時,三元組統計最為有用。拉丁、西里爾、阿拉伯與天城體文字各自容納許多語言,偵測器必須仰賴頻率模式,才能區分葡萄牙文與西班牙文,或俄文與烏克蘭文。對於擁有自己專屬文字的語言,例如希臘文、泰文、韓文、泰米爾文或孟加拉文,通常光憑文字系統就足以判斷語言,因此不需要頻率比較。中文與日文則需要稍微多加留意,因為日文會混用假名與漢字,而假名是辨識日文的強烈線索。在 ipto 中,76 種語言裡有 61 種是以三元組頻率區分,其餘 15 種則依其文字系統辨識。
何時表現良好、何時不然
對於標題、留言、搜尋查詢與支援工單等簡短的網頁文字,三元組方法相當合適。它們只需極少的輸入就能產生有用的猜測、執行成本低,而且完全具確定性,因此行為容易測試與除錯。大型神經網路分類器在困難案例上可能更準確,尤其是極短或雜訊多的文字,但執行成本較高,也更難檢視。哪一種比較好,取決於你對準確度的需求與限制;對於路由與標記而言,輕量的偵測器往往就已足夠。
在依賴它之前,請先了解它的失效模式:
- 極短的輸入。寥寥幾個字元所提供的三元組太少。ipto API 對於短於 10 個字元的輸入會回傳 null 語言,而對於約 30 個字元以下的輸入,可能會給出最佳猜測,但會將
reliable標記為 false。 - 關係密切的語言。挪威文與丹麥文,或克羅埃西亞文與塞爾維亞文,共用大部分三元組。當信心偏低時,請查看次佳候選者。
- 混合語言的文字。特徵檔比對假設有一種主要語言。中途切換語言的段落,會回傳佔據大多數字元的那種語言。
- 雜訊。URL、程式碼、主題標籤與產品代碼會加入不屬於任何語言的三元組。偵測前請先移除它們。
- 罕見語言。不在支援範圍內的語言,會回傳統計上最接近的結果,而不是精確的結果。
實際使用方式
你可以將文字貼到語言偵測器中,查看勝出的語言、信心值以及次佳候選者。從程式碼呼叫時,請使用 GET /v1/language?text=Bonjour;請求在本機分析,文字不會傳送給第三方供應商或 AI 模型,也不會記錄任何內容。免費方案每天允許 1,000 次請求,無需註冊,回應欄位則在 API 文件中說明。
常見用途包括選擇翻譯的來源語言、設定頁面的 lang 屬性,以及將支援工單轉給正確的團隊。另一個實用的模式是將文字語言與網路情境搭配使用。語言是關於撰寫者的訊號,而不是關於連線的訊號,因此它經常與連線的來源地不一致;一位在法國或使用 VPN 的說西班牙語的使用者,完全是正常現象。如果你想比較這兩種訊號,對該 IP 位址進行 VPN 與 Proxy 檢查,有助於你了解位置不符是否有網路層面的解釋,而 User-Agent 解析器則可顯示瀏覽器與裝置的情境。請把任何不一致視為提示,而絕非有問題的證據。