Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

זהה את שפת הטקסט באמצעות ML Kit ב- Android

אתה יכול להשתמש ב- ML Kit כדי לזהות את השפה של מחרוזת טקסט. אתה יכול לקבל את השפה הסבירה ביותר של המחרוזת או לקבל ציוני ביטחון עבור כל השפות האפשריות של המחרוזת.

ML Kit מזהה טקסט ב -103 שפות שונות בתסריטים המקומיים שלהם. בנוסף, ניתן לזהות טקסט ברומנציה בערבית, בולגרית, סינית, יוונית, הינדית, יפנית ורוסית.

לפני שאתה מתחיל

  1. אם לא עשית זאת עדיין, להוסיף Firebase לפרויקט Android שלך .
  2. מוסיפים את התלות עבור ספריות אנדרואיד קיט ML למודול שלך (ברמת האפליקציה) קובץ 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 קיט מחזיר ערך אחר מאשר 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 .