ML Kit を使用すると、テキスト文字列の言語を特定できます。Google Chat では 最も確率の高い言語と、その文字列に関連するすべての あります。
ML Kit では、ネイティブ スクリプトで 100 を超える言語のテキストを認識できます。 さらに、アラビア語、ブルガリア語、中国語、 ギリシャ語、ヒンディー語、日本語、ロシア語に対応しています。詳しくは、 サポートされている言語とスクリプトの完全なリストをご覧ください。
<ph type="x-smartling-placeholder">バンドル | バンドルされていません | |
---|---|---|
ライブラリ名 | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
実装 | モデルは、ビルド時にアプリに静的にリンクされます。 | モデルは Google Play 開発者サービスを介して動的にダウンロードされます。 |
アプリのサイズへの影響 | 約 900 KB のサイズ増加。 | 約 200 KB のサイズ増加。 |
初期化時間 | モデルはすぐに使用できます。 | 初めて使用するには、モデルがダウンロードされるのを待たなければならない場合があります。 |
試してみる
- サンプルアプリを試してみましょう。 この API の使用例をご覧ください
始める前に
<ph type="x-smartling-placeholder">プロジェクト レベルの
build.gradle
ファイルに、Google のbuildscript
セクションとallprojects
セクションの両方に Maven リポジトリML Kit Android ライブラリの依存関係をモジュールの アプリレベルの Gradle ファイル(通常は
app/build.gradle
)。次のいずれかを選択 必要に応じて次の依存関係を追加します。モデルをアプリにバンドルする場合:
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.6' }
Google Play 開発者サービスでモデルを使用する場合:
dependencies { // ... // Use this dependency to use the dynamically downloaded model in Google Play Services implementation 'com.google.android.gms:play-services-mlkit-language-id:17.0.0' }
Google Play 開発者サービスでモデルを使用することを選択した場合、 アプリがダウンロードされると、モデルが自動的にデバイスにダウンロードされるようになります。 ダウンロードする必要があります。そのためには、次の宣言を アプリの
AndroidManifest.xml
ファイルを次のように変更します。<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="langid" > <!-- To use multiple models: android:value="langid,model2,model3" --> </application>
モデルの提供状況を明示的に確認し、 Google Play 開発者サービスの ModuleInstallClient API。
インストール時のモデルのダウンロードを有効にしない場合、または明示的なダウンロードをリクエストしない場合、 モデルは、ID の初回実行時にダウンロードされます。お客様が行うリクエスト 結果が返されないことに注意してください。
文字列の言語を特定する
文字列の言語を特定するには、LanguageIdentification.getClient()
を呼び出して
LanguageIdentifier
のインスタンスを取得して、その文字列を
LanguageIdentifier
の identifyLanguage()
メソッド。
例:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyLanguage(text) .addOnSuccessListener { languageCode -> if (languageCode == "und") { Log.i(TAG, "Can't identify language.") } else { Log.i(TAG, "Language: $languageCode") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyLanguage(text) .addOnSuccessListener( new OnSuccessListener<String>() { @Override public void onSuccess(@Nullable String languageCode) { if (languageCode.equals("und")) { Log.i(TAG, "Can't identify language."); } else { Log.i(TAG, "Language: " + languageCode); } } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Model couldn’t be loaded or other internal error. // ... } });
呼び出しに成功すると、
BCP-47 言語コード
テキストの言語を示す、成功リスナーに渡されます。「いいえ」の場合
検出された場合、そのコードが
und
(不確定)が渡されます。
デフォルトでは、ML Kit は、特定された場合にのみ und
以外の値を返します。
言語を学習させるという意味になります。この設定は
LanguageIdentificationOptions
オブジェクトを getClient()
に渡してしきい値を指定します。
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build());
文字列の言語を取得する
文字列の中で最も可能性が高い言語の信頼値を取得するには、
LanguageIdentifier
のインスタンスを作成し、その文字列を
identifyPossibleLanguages()
メソッドを使用します。
例:
Kotlin
val languageIdentifier = LanguageIdentification.getClient() languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener { identifiedLanguages -> for (identifiedLanguage in identifiedLanguages) { val language = identifiedLanguage.languageTag val confidence = identifiedLanguage.confidence Log.i(TAG, "$language $confidence") } } .addOnFailureListener { // Model couldn’t be loaded or other internal error. // ... }
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient(); languageIdentifier.identifyPossibleLanguages(text) .addOnSuccessListener(new OnSuccessListener<List<IdentifiedLanguage>>() { @Override public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) { for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) { String language = identifiedLanguage.getLanguageTag(); float confidence = identifiedLanguage.getConfidence(); Log.i(TAG, language + " (" + confidence + ")"); } } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Model couldn’t be loaded or other internal error. // ... } });
呼び出しが成功すると、IdentifiedLanguage
オブジェクトのリストが
成功リスナー。各オブジェクトから言語の BCP-47 コードを取得し、
その言語における文字列の信頼度。注:
これらの値は、文字列全体が特定の確率で許容される
言語ML Kit では、1 つの文字列で複数の言語が識別されません。
デフォルトでは、ML Kit は信頼値が
0.01。このしきい値を変更するには、
LanguageIdentificationOptions
オブジェクト
getClient()
:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
Java
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
このしきい値を満たす言語がない場合、リストには
und
。