คุณใช้ ML Kit เพื่อระบุภาษาของสตริงข้อความได้ คุณสามารถ รับภาษาที่เป็นไปได้มากที่สุดของสตริง หรือรับคะแนนความเชื่อมั่นสำหรับค่าใกล้เคียงทั้งหมด ภาษาที่เป็นไปได้ของสตริง
ML Kit จดจำข้อความในสคริปต์ในภาษาต่างๆ ได้ถึง 103 ภาษา นอกจากนี้ ตัวอักษรภาษาอังกฤษสามารถจดจำสำหรับภาษาอาหรับ บัลแกเรีย ภาษาจีน กรีก ฮินดี ญี่ปุ่น และรัสเซีย
ก่อนเริ่มต้น
- หากคุณยังไม่ได้ดำเนินการ เพิ่ม Firebase ลงในโปรเจ็กต์ Android
- เพิ่มทรัพยากร Dependency สำหรับไลบรารี ML Kit Android ลงในโมดูล
ไฟล์ Gradle (ระดับแอป) (ปกติราคา
app/build.gradle
):apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0' implementation 'com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7' }
ระบุภาษาของสตริง
หากต้องการระบุภาษาของสตริง รับอินสแตนซ์ของ
FirebaseLanguageIdentification
แล้วส่งสตริงไปยัง
identifyLanguage()
วิธี
เช่น
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyLanguage(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(@Nullable String languageCode) {
if (languageCode != "und") {
Log.i(TAG, "Language: " + languageCode);
} else {
Log.i(TAG, "Can't identify language.");
}
}
})
.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 คุณสามารถเปลี่ยนแปลง
เกณฑ์โดยการส่งออบเจ็กต์ FirebaseLanguageIdentificationOptions
ไปยัง
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyLanguageConfidenceThreshold(0.34f)
.build());
ดูภาษาที่เป็นไปได้ของสตริง
หากต้องการค่าความเชื่อมั่นของภาษาที่มีแนวโน้มมากที่สุดของสตริง ให้ใช้
อินสแตนซ์ของ FirebaseLanguageIdentification
แล้วส่งสตริงไปยัง
identifyAllLanguages()
วิธี
เช่น
FirebaseLanguageIdentification languageIdentifier =
FirebaseNaturalLanguage.getInstance().getLanguageIdentification();
languageIdentifier.identifyAllLanguages(text)
.addOnSuccessListener(
new OnSuccessListener<String>() {
@Override
public void onSuccess(List<IdentifiedLanguage> identifiedLanguages) {
for (IdentifiedLanguage identifiedLanguage : identifiedLanguages) {
String language = identifiedLanguage.getLanguageCode();
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 คุณสามารถเปลี่ยนเกณฑ์นี้ได้โดยการส่ง
FirebaseLanguageIdentificationOptions
ออบเจ็กต์ที่
getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
หากไม่มีภาษาที่ตรงกับเกณฑ์นี้ รายการจะมี 1 รายการพร้อมค่า
und