共用方式為


如何使用語言偵測

語言偵測功能可以評估文字,並能指示出文件所使用語言的語言識別碼。

語言偵測很適合用於收集未知語言任意文字的內容存放區。 您可以剖析此分析的結果,以判斷輸入文件中使用的語言。 回應也會傳回範圍在 0 與 1 之間的分數來反映對模型的信賴度。

「語言偵測」功能適用於多種不同的語言、變體、方言,以及某些區域性/文化語言。

開發選項

若要使用語言偵測,您可以提交原始非結構化文字以進行分析,並在您的應用程式中處理 API 輸出。 分析是按原樣執行,對針對您的資料所使用的模型不會進行額外的自訂。 使用語言偵測的方式有三種:

開發選項 描述
Language Studio Language Studio 是以 Web 為基礎的平台,可讓您在沒有 Azure 帳戶的情況下嘗試使用文字範例進行實體連結,以及在註冊時使用自己的資料。 如需詳細資訊,請參閱 Language Studio 網站Language Studio 快速入門
REST API 或用戶端程式庫 (Azure SDK) 使用 REST API 或以各種語言提供的用戶端程式庫,將語言偵測整合至您的應用程式。 如需詳細資訊,請參閱語言偵測快速入門
Docker 容器 使用可用的 Docker 容器,在內部部署環境中部署此功能。 這些 Docker 容器可讓服務更加契合您的資料,以實現合規性、安全性或其他操作原因。

決定如何處理資料 (選擇性)

指定語言偵測模型

根據預設,語言偵測將會在您的文字上使用最新可用 AI 模型。 您也可以將 API 要求設定為使用特定的模型版本

輸入語言

當您提交要評估的文件時,語言偵測會嘗試判斷文字是否為以任何支援的語言所撰寫。

如果您有以較不常用的語言表示的內容,您可以嘗試使用「語言偵測」功能,看它是否會傳回代碼。 對於無法偵測到的語言,會產生 unknown 回應。

提交資料

提示

您可以使用 Docker 容器進行語言偵測,使您可以在內部部署情況下使用該 API。

分析會在接收要求時執行。 以同步方式使用語言偵測功能是無狀態的。 您的帳戶中不會儲存任何資料,且結果會在回應中立即傳回。

以非同步方式使用此功能時,API 結果可從要求內嵌的時間起 24 小時內供使用,且會在回應中指出。 在這段時間之後,結果將會被清除且無法再供擷取。

取得語言偵測結果

在取得語言偵測的結果後,您可以將結果串流至應用程式,或將輸出儲存到本機系統上的檔案。

語言偵測會根據 ISO 15924 標準,針對您提交的每份文件傳回一個主要語言,以及其 ISO 639-1 名稱、人類可讀取的名稱、信賴度分數、指令碼名稱和指令碼程式碼。 正 1 的分數為最高的分析信賴等級。

模稜兩可的內容

在某些情況下,可能難以根據輸入來區分語言。 您可以使用 countryHint 參數來指定以 ISO 3166-1 二位字母代碼表現的國碼/區域碼。 根據預設,API 會使用 "US" 作為預設的國家/地區提示。 若要移除此行為,您可以藉由將此數值設定為空字串 countryHint = "" 以重設此參數。

例如,"communication" 是英文和法文通用的詞彙,如果提供上下文有限的話,回應將會以 "US" 國家/區域的提示為準。 如果文字的來源已知是來自法國,這一點也可作為一項提示。

注意

模棱兩可的內容可能會導致信賴度分數降低。 只有在信賴度分數小於 0.8 時,回應中的 countryHint 才適用。

輸入

{
    "documents": [
        {
            "id": "1",
            "text": "communication"
        },
        {
            "id": "2",
            "text": "communication",
            "countryHint": "fr"
        }
    ]
}

在第二份文件中,您可以利用語言偵測模型的額外內容來做出更好的判斷,因為其中包含上述輸入中的 countryHint 屬性。 這將傳回下列輸出。

輸出

{
    "documents":[
        {
            "detectedLanguage":{
                "confidenceScore":0.62,
                "iso6391Name":"en",
                "name":"English"
            },
            "id":"1",
            "warnings":[
                
            ]
        },
        {
            "detectedLanguage":{
                "confidenceScore":1.0,
                "iso6391Name":"fr",
                "name":"French"
            },
            "id":"2",
            "warnings":[
                
            ]
        }
    ],
    "errors":[
        
    ],
    "modelVersion":"2022-10-01"
}

如果分析器無法剖析輸入,它會傳回 (Unknown)。 例如,如果您提交只包含數字的文字字串。

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": 0.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2023-12-01"
}

混合式語言內容

相同文件中的混合式語言內容會傳回佔據最多內容的語言,但其正面評等將會較低。 評等會反映評量的臨界強度。 在下列範例中,輸入會混合英文、西班牙文和法文。 分析器會計算每個區段中的字元來判斷出主要的語言。

輸入

{
    "documents": [
        {
            "id": "1",
            "text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
        }
    ]
}

輸出

結果輸出由主要語言組成,其分數小於 1.0,這表示信賴度較低。

{
    "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
            {
                "id": "1",
                "detectedLanguage": {
                    "name": "Spanish",
                    "iso6391Name": "es",
                    "confidenceScore": 0.97,
                    "script": "Latin",
                    "scriptCode": "Latn"
                },
                "warnings": []
            }
        ],
        "errors": [],
        "modelVersion": "2023-12-01"
    }
}

指令碼名稱和指令碼程式碼

注意

  • 指令碼偵測目前僅限於選取語言
  • 指令碼偵測僅適用於長度超過 12 個字元的文字輸入。

語言偵測會根據 ISO 15924 標準,針對每個語言偵測多個指令碼。 具體來說,語言偵測會傳回兩個指令碼相關屬性:

  • script:已識別指令碼的人類可讀取名稱
  • scriptCode:已識別指令碼的 ISO 15924 程式碼

API 的輸出包含文件的 scriptCode 屬性值 (長度至少 12 個字元以上),且符合支援的語言和指令碼清單。 指令碼偵測的設計目的是方便可以在多個指令碼中直譯或寫入其語言的使用者,例如哈薩克文或印地文。

之前,語言偵測的設計目的是以各種不同的語言、方言和地區變體來偵測文件語言,但受限於「羅馬化」。 羅馬化是指將文字從某一個書寫系統轉換成羅馬文 (拉丁文) 指令碼,而且必須偵測許多印歐語言。 不過,還有其他語言是以多種指令碼撰寫的,例如哈薩克文,可以用斯拉夫文、波斯-阿拉伯文和拉丁文指令碼撰寫。 另在有些其他情況下,使用者可能會選擇或需要以多個指令碼來直譯其語言,例如在拉丁文指令碼中直譯的印地文,這是因為支援梵文字母指令碼的鍵盤可用性有限。

因此,語言偵測對指令碼偵測的擴充支援運作方式如下:

輸入

{ 
    "kind": "LanguageDetection", 
    "parameters": { 
        "modelVersion": "latest" 
    }, 
    "analysisInput": { 
        "documents": [ 
            { 
                "id": "1", 
                "text": "आप कहाँ जा रहे हैं?" 
            }, 
            { 
                "id": "2", 
                "text": "Туған жерім менің - Қазақстаным" 
            } 
        ] 
    } 
} 

輸出

產生的輸出包含主要語言,以及指令碼名稱、指令碼程式碼和信賴度分數。

{ 
    "kind": "LanguageDetectionResults", 
    "results": { 
        "documents": [ 
            { 
                "id": "1", 
                "detectedLanguage": { 
                    "name": "Hindi", 
                    "iso6391Name": "hi", 
                    "confidenceScore": 1.0, 
                    "script": "Devanagari", 
                    "scriptCode": "Deva" 
                }, 
                "warnings": [] 
            }, 
            { 
                "id": "2", 
                "detectedLanguage": { 
                    "name": "Kazakh", 
                    "iso6391Name": "kk", 
                    "confidenceScore": 1.0, 
                    "script": "Cyrillic",  
                    "scriptCode": "Cyrl" 
                }, 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2023-12-01" 
    } 
}

服務和資料限制

如需每分鐘和每秒可傳送的要求大小和數目的相關資訊,請參閱服務限制一文。

另請參閱