คุณใช้ ML Kit เพื่อระบุภาษาของสตริงข้อความได้ คุณสามารถ รับภาษาที่เป็นไปได้มากที่สุดของสตริง และคะแนนความเชื่อมั่นสำหรับ ภาษาที่เป็นไปได้ของสตริง
ML Kit จดจำข้อความในสคริปต์ในภาษาต่างๆ มากกว่า 100 ภาษา นอกจากนี้ ตัวอักษรภาษาอังกฤษสามารถจดจำสำหรับภาษาอาหรับ บัลแกเรีย ภาษาจีน กรีก ฮินดี ญี่ปุ่น และรัสเซีย โปรดดู รายการทั้งหมดของภาษาและสคริปต์ที่สนับสนุน
รวมกลุ่ม | ไม่ได้จัดกลุ่ม | |
---|---|---|
ชื่อไลบรารี | com.google.mlkit:language-id | com.google.android.gms:play-services-mlkit-language-id |
การใช้งาน | โมเดลลิงก์กับแอปของคุณแบบคงที่ ณ เวลาบิลด์ | โมเดลจะดาวน์โหลดแบบไดนามิกผ่านบริการ Google Play |
ผลกระทบของขนาดแอป | ขนาดเพิ่มขึ้นประมาณ 900 KB | ขนาดที่เพิ่มขึ้นประมาณ 200 KB |
เวลาในการเริ่มต้น | โมเดลจะพร้อมใช้งานทันที | อาจต้องรอให้โมเดลดาวน์โหลดก่อนใช้งานครั้งแรก |
ลองเลย
- ลองใช้แอปตัวอย่างเพื่อ ดูตัวอย่างการใช้ API นี้
ก่อนเริ่มต้น
ในไฟล์
build.gradle
ระดับโปรเจ็กต์ ตรวจสอบว่าได้รวม ที่เก็บ Maven ทั้งในส่วนbuildscript
และallprojects
เพิ่มทรัพยากร Dependency สำหรับไลบรารี ML Kit Android ลงในโมดูล ไฟล์ Gradle ระดับแอป ซึ่งมักจะเป็น
app/build.gradle
เลือก 1 ตัวเลือก ทรัพยากร Dependency ต่อไปนี้ตามความต้องการของคุณสำหรับการรวมโมเดลกับแอป
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 Store ซึ่งทำได้โดยเพิ่มการประกาศต่อไปนี้ลงใน ไฟล์
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>
คุณยังสามารถตรวจสอบความพร้อมใช้งานของโมเดลอย่างชัดเจนและขอดาวน์โหลดผ่าน ModuleInstallClient API ของบริการ Google Play
หากคุณไม่เปิดใช้การดาวน์โหลดโมเดลเวลาติดตั้งหรือขอการดาวน์โหลดอย่างชัดแจ้ง ระบบจะดาวน์โหลดโมเดลในครั้งแรกที่คุณเรียกใช้ตัวระบุ คําขอที่คุณสร้าง ก่อนที่การดาวน์โหลดจะเสร็จสิ้น จะไม่เกิดผลลัพธ์ใดๆ
ระบุภาษาของสตริง
หากต้องการระบุภาษาของสตริง ให้เรียก LanguageIdentification.getClient()
เพื่อ
รับอินสแตนซ์ของ LanguageIdentifier
แล้วส่งสตริงไปยัง
identifyLanguage()
เมธอดจาก LanguageIdentifier
เช่น
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
เฉพาะเมื่อมีการระบุ
ภาษาที่มีค่าความเชื่อมั่นอย่างน้อย 0.5 คุณสามารถเปลี่ยนแปลง
เกณฑ์โดยการส่งออบเจ็กต์ 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 จะระบุหลายภาษาในสตริงเดียวไม่ได้
โดยค่าเริ่มต้น 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());
หากไม่มีภาษาที่ตรงกับเกณฑ์นี้ รายการจะมี 1 รายการพร้อมค่า
und