ML Kit를 사용하면 텍스트 문자열의 언어를 식별할 수 있습니다. 다음과 같은 작업을 할 수 있습니다. 문자열의 언어일 가능성이 가장 높으며 모든 문자열에 대한 신뢰도 점수를 문자열의 가능한 언어를 나타냅니다.
ML Kit는 기본 스크립트에서 100개 이상의 다양한 언어로 된 텍스트를 인식합니다. 또한 아랍어, 불가리아어, 중국어, 일본어로 된 로마자 텍스트도 그리스어, 힌디어, 일본어, 러시아어 자세한 내용은 전체 목록을 확인하세요.
<ph type="x-smartling-placeholder">번들 | 번들로 묶이지 않음 | |
---|---|---|
도서관 이름 | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
구현 | 모델은 빌드 시간에 앱에 정적으로 연결됩니다. | 모델은 Google Play 서비스를 통해 동적으로 다운로드됩니다. |
앱 크기 영향 | 크기가 약 900KB 증가했습니다. | 크기가 약 200KB 늘어났습니다. |
초기화 시간 | 모델을 즉시 사용할 수 있습니다. | 처음 사용하기 전에 모델이 다운로드될 때까지 기다려야 할 수 있습니다. |
사용해 보기
- 샘플 앱을 사용하여 이 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 서비스에서 모델을 사용하도록 선택한 경우 모델을 다운로드한 후 모델을 기기에 자동으로 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
설치 시간 모델 다운로드를 사용 설정하지 않거나 명시적 다운로드를 요청하지 않으면 식별자를 처음 실행할 때 모델이 다운로드됩니다. 내가 한 요청 결과가 나오지 않습니다.
문자열의 언어 식별
문자열의 언어를 식별하려면 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. // ... }
자바
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
이외의 값을 반환합니다.
신뢰값이 0.5 이상인 언어를 선택해야 합니다. 이
LanguageIdentificationOptions
객체를 getClient()
에 전달하여 임곗값을 지정합니다.
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.34f) .build())
자바
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. // ... }
자바
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는 단일 문자열에서 여러 언어를 식별하지 않습니다.
기본적으로 ML Kit는 신뢰도 값이 최소
0.01. 이 임곗값을 변경하려면
객체 LanguageIdentificationOptions
개가
getClient()
:
Kotlin
val languageIdentifier = LanguageIdentification .getClient(LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build())
자바
LanguageIdentifier languageIdentifier = LanguageIdentification.getClient( new LanguageIdentificationOptions.Builder() .setConfidenceThreshold(0.5f) .build());
이 기준을 충족하는 언어가 없으면 목록에
und