אתה יכול להשתמש ב-ML Kit כדי לזהות את השפה של מחרוזת טקסט. אתה יכול לקבל את השפה הסבירה ביותר של המחרוזת או לקבל ציוני ביטחון עבור כל השפות האפשריות של המחרוזת.
ML Kit מזהה טקסט ב-103 שפות שונות בסקריפטים המקוריים שלהם. בנוסף, ניתן לזהות טקסט רומני עבור ערבית, בולגרית, סינית, יוונית, הינדית, יפנית ורוסית.
לפני שאתה מתחיל
- אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
- הוסף את התלות של ספריות אנדרואיד של ML Kit לקובץ 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 אינה מזהה מספר שפות במחרוזת אחת.
כברירת מחדל, ML Kit מחזירה רק שפות עם ערכי ביטחון של 0.01 לפחות. אתה יכול לשנות את הסף הזה על ידי העברת אובייקט FirebaseLanguageIdentificationOptions
אל getLanguageIdentification()
:
FirebaseLanguageIdentification languageIdentifier = FirebaseNaturalLanguage
.getInstance()
.getLanguageIdentification(
new FirebaseLanguageIdentificationOptions.Builder()
.setIdentifyAllLanguagesConfidenceThreshold(0.5f)
.build());
אם אף שפה לא עומדת בסף הזה, לרשימה תהיה פריט אחד, עם הערך und
.