Zadanie MediaPipe Language Detector pozwala określić język tekstu. Te instrukcje pokazują, jak używać Wykrywacza języka z aplikacjami na Androida. Kod przykład opisany w tych instrukcjach jest dostępny GitHub
Aby zobaczyć, jak działa to zadanie, wyświetl demo. Więcej informacji o funkcjach, modelach i opcjach konfiguracji zapoznaj się z Przeglądem.
Przykładowy kod
Przykładowy kod Wykrywanie języka pozwala w prosty sposób . Ten kod pomoże Ci przetestować to zadanie i zacząć tworząc własną funkcję wykrywania języka. Możesz przeglądać Przykładowy kod wykrywania języka w GitHubie.
Pobieranie kodu
Poniżej znajdziesz instrukcje tworzenia lokalnej kopii przykładu. za pomocą narzędzia wiersza poleceń git do kontroli wersji.
Aby pobrać przykładowy kod:
- Sklonuj repozytorium git za pomocą tego polecenia:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Opcjonalnie możesz skonfigurować instancję git tak, aby wykorzystywała rozproszony proces płatności,
masz więc tylko pliki przykładowej aplikacji Wykrywacz języka:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Aby dowiedzieć się, jak skonfigurować i uruchomić przykład w Android Studio, znajdziesz w sekcji z przykładowymi instrukcjami konfiguracji kodu Przewodnik po konfiguracji na Androida
Kluczowe elementy
Te pliki zawierają kluczowy kod klasyfikacji tekstu przykładowa aplikacja:
- LanguageDetectorHelper.kt – Inicjuje detektor języka i obsługuje wybór modelu.
- ResultsAdapter.kt – Obsługuje i formatuje wyniki wykrywania.
- MainActivity.kt –
Implementuje aplikację, w tym wywołuje funkcję
LanguageDetectorHelper
orazResultsAdapter
Konfiguracja
W tej sekcji opisujemy najważniejsze czynności związane z konfigurowaniem środowiska programistycznego oraz w projektach kodu służących do wykrywania języka. Ogólne informacje na temat: skonfigurować środowisko programistyczne do korzystania z zadań MediaPipe, w tym wymagań wersji platformy, patrz Przewodnik po konfiguracji na Androida
Zależności
Wykrywacz języka korzysta z bibliotek com.google.mediapipe:tasks-text
. Dodaj to
zależności od pliku build.gradle
projektu programowania aplikacji na Androida.
Wymagane zależności możesz zaimportować przy użyciu tego kodu:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Model
Zadanie wykrywania języka MediaPipe wymaga wytrenowanego modelu zgodnego z tym zadanie. Więcej informacji o dostępnych wytrenowanych modelach z Wykrywaczem języka znajdziesz w sekcji artykułu zapoznaj się z omówieniem zadania sekcją Modele.
Wybierz i pobierz model, a następnie zapisz go w katalogu projektu:
<dev-project-root>/src/main/assets
Określ ścieżkę modelu w parametrze ModelName
.
Tworzenie zadania
Do utworzenia zadania możesz użyć jednej z funkcji createFrom...()
.
Funkcja createFromOptions()
akceptuje opcje konfiguracji dla języka
detektorem. Możesz też zainicjować zadanie, używając fabryki createFromFile()
. Funkcja createFromFile()
akceptuje ścieżkę względną lub bezwzględną do
z plikiem wytrenowanego modelu. Więcej informacji o konfigurowaniu zadań znajdziesz w artykule
Opcje konfiguracji:
Poniższy kod ilustruje, jak utworzyć i skonfigurować to zadanie.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
Przykład tworzenia zadania znajdziesz w przykładowym kodzie
LanguageDetectorHelper
funkcji initDetector()
klasy.
Opcje konfiguracji
To zadanie zawiera te opcje konfiguracji aplikacji na Androida:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
maxResults |
Ustawia opcjonalną maksymalną liczbę prognoz dotyczących najlepiej ocenianych języków na . Jeśli ta wartość jest mniejsza niż 0, zwracane są wszystkie dostępne wyniki. | Dowolne liczby dodatnie | -1 |
scoreThreshold |
Ustawia próg wyniku prognozy, który zastępuje próg podany w polu metadane modelu (jeśli występują). Wyniki poniżej tej wartości zostały odrzucone. | Dowolna liczba zmiennoprzecinkowa | Nie ustawiono |
categoryAllowlist |
Ustawia opcjonalną listę dozwolonych kodów języków. Jeśli pole nie jest puste,
prognozy dotyczące języka, których kod języka nie znajduje się w tym zestawie, zostaną
zostały odfiltrowane. Ta opcja wyklucza się wzajemnie z:
categoryDenylist i użycie obu spowoduje błąd. |
Dowolne ciągi | Nie ustawiono |
categoryDenylist |
Ustawia opcjonalną listę niedozwolonych kodów języków. Jeśli
niepuste, prognozy dotyczące języka, których kod języka znajduje się w tym zestawie, zostaną odfiltrowane
na zewnątrz. Ta opcja nie działa z: categoryAllowlist i
użycie obydwu spowoduje błąd. |
Dowolne ciągi | Nie ustawiono |
Przygotuj dane
Wykrywanie języka obsługuje dane tekstowe (String
). Zadanie obsługuje wprowadzanie danych
w tym wstępnego przetwarzania danych, w tym tokenizacji i tensorów. Wszystkie
wstępne przetwarzanie jest obsługiwane w ramach funkcji detect()
. Nie ma potrzeby
dodatkowego wstępnego przetwarzania tekstu wejściowego.
String inputText = "Some input text for the language detector";
Uruchamianie zadania
Wykrywanie języka używa metody LanguageDetector.detect()
do przetwarzania danych wejściowych
i prognozować język tekstu. Użyj oddzielnego wykonania
wątek wykonywania wykrywania w celu uniknięcia zablokowania użytkownika Androida
z Twoją aplikacją.
Ten kod pokazuje, jak wykonać przetwarzanie za pomocą zadania używając osobnego wątku wykonania.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
Przykład uruchomienia zadania znajdziesz w przykładowym kodzie
LanguageDetectorHelper
funkcji detect()
klasy.
Obsługa i wyświetlanie wyników
Wykrywanie języka zwraca wynik LanguageDetectorResult
składający się z listy
z prognozami językowymi oraz prawdopodobieństwo ich uzyskania.
kategorie językowe zdefiniowane w modelu, zobacz przegląd zadania
Sekcja Modele, w której znajdziesz szczegółowe informacje o używanym modelu.
Poniżej znajdziesz przykładowe dane wyjściowe tego zadania:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Ten wynik uzyskano przez uruchomienie modelu na tekście wejściowym:
"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
W przykładowym kodzie możesz zobaczyć, jak wyświetlić wyniki
ResultsAdapter
i ViewHolder
klasy wewnętrznej.