คุณใช้ 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 ของ Google ทั้งในbuildscript
และallprojects
เพิ่มทรัพยากร Dependency สําหรับไลบรารี Android ของ ML Kit ไปยังไฟล์ Gradle ระดับแอปของโมดูล ซึ่งปกติจะเป็น
app/build.gradle
เลือกทรัพยากร Dependency ต่อไปนี้ 1 รายการตามที่ต้องการสําหรับการรวมแพ็กเกจกับแอปของคุณ ให้ทําดังนี้
dependencies { // ... // Use this dependency to bundle the model with your app implementation 'com.google.mlkit:language-id:17.0.4' }
สําหรับการใช้โมเดลในบริการ 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 ไปยัง Listener ที่ประสบความสําเร็จซึ่งระบุภาษาของข้อความ หากไม่พบภาษาที่มั่นใจ ระบบจะส่งรหัส
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
ไปยัง Listener ที่ประสบความสําเร็จ จากออบเจ็กต์แต่ละรายการ คุณจะรับรหัสโค้ด 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