言語検出を使用する方法
言語検出機能を使うと、テキストを評価し、ドキュメントが書かれた言語を示す言語識別子を取得できます。
言語検出は、言語が不明な任意のテキストを収集するコンテンツ ストアに役立ちます。 この分析の結果を解析して、入力ドキュメントでいずれの言語が使用されるかを特定できます。 応答では、モデルの信頼度を反映する 0 から 1 の範囲のスコアも返されます。
言語検出機能では、さまざまな言語、変異形、方言のほか、一部の地方言語や文化言語も検出できます。
開発オプション
言語検出を使用するには、分析のために未加工の非構造化テキストを送信し、お使いのアプリケーションで API 出力を処理します。 分析はそのままの状態で行われ、データに使用されるモデルに対して追加のカスタマイズは行われません。 言語検出を使用するには、次の 3 つの方法があります。
開発オプション | 説明 |
---|---|
Language Studio | Language Studio は Web ベースのプラットフォームであり、Azure アカウントがなければテキストの例で、サインアップしたら独自のデータで、エンティティ リンクを試すことができます。 詳しくは、Language Studio の Web サイトまたは Language Studio のクイックスタートに関する記事をご覧ください。 |
REST API またはクライアント ライブラリ (Azure SDK) | さまざまな言語で使用できる REST API、またはクライアント ライブラリを使用して、言語検出をお使いのアプリケーションに統合します。 詳細については、言語検出のクイックスタートに関するページをご覧ください。 |
Docker コンテナー | 利用できる Docker コンテナーを使って、この機能をオンプレミスに展開します。 これらの Docker コンテナーを使用すると、コンプライアンス、セキュリティ、またはその他の運用上の理由により、データにいっそう近いところにサービスを持ってくることができます。 |
データの処理方法を決定する (省略可能)
言語検出モデルを指定する
既定では、使用できる最新の AI モデルがテキストで使われます。 特定のバージョンのモデルを使うように API 要求を構成することもできます。
入力言語
評価対象のドキュメントを送信すると、サポートされている言語のいずれかでテキストが書かれたかどうかの判定が、言語検出によって試みられます。
使用頻度の低い言語で表されるコンテンツがある場合、言語検出機能を試して、コードが返されるかどうか確認できます。 検出できない言語の応答は unknown
です。
データの送信
ヒント
言語検出には Docker コンテナーを使えるため、オンプレミスで API を使うことができます。
要求が受信されると分析が実行されます。 言語検出機能の同期的な使用はステートレスです。 データはアカウントに保存されず、結果がすぐに応答で返されます。
この機能を非同期的に使うと、API の結果は、応答で示される要求取り込み時刻から 24 時間利用できます。 この時間が経過すると、結果は消去され、取得できなくなります。
言語検出の結果の取得
言語検出から結果を取得するときは、結果をアプリケーションにストリーミングしたり、ローカル システム上のファイルに出力を保存したりできます。
言語検出は、送信したドキュメントごとに、1 つの主要言語と、その ISO 639-1 名、人間が判読できる名前、信頼度スコア、スクリプト名、ISO 15924 標準に従ったスクリプト コードを返します。 正のスコア 1 は、分析で可能な最も高い信頼度レベルを示します。
あいまいなコンテンツ
場合によっては、入力に基づいて言語を明確に区別するのが困難なことがあります。 countryHint
パラメーターを使用して、ISO 3166-1 alpha-2 国および地域コードを指定できます。 API では、国の既定のヒントとして "US" が使われます。 この動作を削除するには、この値を空の文字列(countryHint = ""
) に設定して、このパラメーターをリセットします。
たとえば、英語とフランス語の両方に共通の "communication" が、限られたコンテキストと共に指定されている場合、応答は "US" の国/地域ヒントに基づきます。 テキストがフランスに由来することがわかっている場合は、それをヒントとして指定することができます。
Note
あいまいなコンテンツにより、信頼度スコアが低くなる可能性があります。
応答の countryHint
は、信頼度スコアが 0.8 未満の場合にのみ適用されます。
入力
{
"documents": [
{
"id": "1",
"text": "communication"
},
{
"id": "2",
"text": "communication",
"countryHint": "fr"
}
]
}
2 番目のドキュメントでは、言語検出モデルには、上記の入力に 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"
}
}
スクリプト名とスクリプト コード
Note
- スクリプト検出は、現在、選択言語に制限されています。
- スクリプト検出は、長さが 12 文字を超えるテキスト入力でのみ使用できます。
言語検出では、ISO 15924 標準に従って、言語ごとに複数のスクリプトを検出できます。 具体的には、言語検出は 2 つのスクリプト関連のプロパティを返します。
script
: 識別されたスクリプトの人間が判読できる名前scriptCode
: 識別されたスクリプトの ISO 15924 コード
API の出力には、12 文字以上の長さで、サポートされている言語とスクリプトの一覧と一致する、ドキュメントの scriptCode
プロパティの値が含まれます。 スクリプト検出は、カザフ語やヒンディー語など、複数のスクリプトで言語を表記変換または記述できるユーザーに役立つように設計されています。
以前は、言語検出は、さまざまな言語、方言、地域バリアントのドキュメントの言語を検出するように設計されていましたが、"ローマ字化" によって制限されていました。 ローマ字化とは、1 つの書記体系からローマ語 (ラテン) スクリプトへのテキストの変換を指し、多くのインドヨーロッパ言語を検出するために必要です。 ただし、キリル語、ペルソアラビア語、ラテン語の文字で記述できるカザフ語のように、複数のスクリプトで記述される他の言語もあります。 また、デーバナーガリー文字のスクリプトをサポートするキーボードの可用性が限られているため、ユーザーが自分の言語を選択するか、複数のスクリプトで表記変換する必要がある場合もあります (ラテン語スクリプトで表記変換されたヒンディー語など)。
その結果、言語検出によるスクリプト検出のサポートが拡張されると、次のように動作します。
入力
{
"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"
}
}
サービスとデータの制限
分単位および秒単位で送信できる要求のサイズと数については、サービスの制限に関する記事を参照してください。