簡單的方法使用字元 n-gram 統計:每種語言都有獨特的字元模式(「th」在英語中常見,「tion」在法語中常見,「ung」在德語中常見)。FastText 的語言識別模型使用字元 n-gram 加上淺層神經網路,可以從短短一個句子中以高準確率識別 176 種語言。對於非常短的文字(幾個詞),準確率會下降,因為訊號不足。
某些語言對極難區分:塞爾維亞語(西里爾字母)vs. 塞爾維亞語(拉丁字母)vs. 克羅埃西亞語 vs. 波士尼亞語共享大部分詞彙和文法。簡體中文 vs. 繁體中文需要檢查特定的用字選擇。像「no」這樣的短曖昧文字可能是英語、西班牙語、義大利語或葡萄牙語。語碼轉換文字(「I went to the tienda to buy leche」)在句子中混合語言。穩健的系統透過統計信心分數而非硬性分類來處理這些邊緣案例。
對於大多數應用場景,Google 的 CLD3、FastText 的 lid.176.bin 或 Python 的 langdetect 函式庫已提供足夠的準確率。LLM 也能作為訓練的副產品偵測語言,但用 70B 模型來做語言偵測就像用電鋸切奶油。實用的架構是:先做快速語言偵測(FastText,<1ms),然後路由到語言特定的處理流程。