Przewodnik wykrywania języka w internecie

Zadanie MediaPipe Language Detector umożliwia identyfikowanie języka, w którym napisano tekst. Z tych instrukcji dowiesz się, jak używać narzędzia Language Detector w aplikacjach internetowych i JavaScript. Przykładowy kod opisany w tych instrukcjach jest dostępny na GitHub.

Możesz zobaczyć to zadanie w działaniu, oglądając demo. Więcej informacji o możliwościach, modelach i opcjach konfiguracji tego zadania znajdziesz w Przeglądzie.

Przykładowy kod

Przykładowy kod wykrywacza języka zawiera pełną implementację tego zadania w JavaScript. Ten kod pomoże Ci przetestować to zadanie i rozpocząć tworzenie własnej funkcji wykrywania języka. Przykład możesz wyświetlić, uruchomić i edytować w przeglądarce internetowej.

Konfiguracja

W tej sekcji opisujemy najważniejsze kroki konfigurowania środowiska programistycznego i projektów kodu pod kątem korzystania z usługi Language Detector. Ogólne informacje o konfigurowaniu środowiska programistycznego do korzystania z interfejsu MediaPipe Tasks, w tym wymagania dotyczące wersji platformy, znajdziesz w przewodniku po konfiguracji na potrzeby internetu.

Pakiety JavaScript

Kod detektora języka jest dostępny w pakiecie @mediapipe/tasks-text. Te biblioteki możesz znaleźć i pobrać, korzystając z linków podanych w przewodniku po konfiguracji platformy.

Wymagane pakiety możesz zainstalować za pomocą tego kodu w przypadku lokalnego środowiska testowego za pomocą tego polecenia:

npm install @mediapipe/tasks-text

Jeśli chcesz wdrożyć kod na serwerze, możesz użyć usługi sieci dostarczania treści (CDN), np. jsDelivr, aby dodać kod bezpośrednio do strony HTML w ten sposób:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Model

Zadanie MediaPipe Language Detector wymaga wytrenowanego modelu, który jest z nim zgodny. Więcej informacji o dostępnych wytrenowanych modelach wykrywania języka znajdziesz w sekcji Modele w omówieniu zadania.

Wybierz i pobierz model, a następnie zapisz go w katalogu projektu:

<dev-project-root>/app/shared/models

Określ ścieżkę modelu za pomocą parametru baseOptions obiektu modelAssetPath, jak pokazano poniżej:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Tworzenie zadania

Użyj jednej z funkcji LanguageDetector.createFrom...() wykrywania języka, aby przygotować zadanie do uruchomienia wnioskowania. Funkcji createFromModelPath() możesz używać ze ścieżką względną lub bezwzględną do wytrenowanego pliku modelu. Poniższy przykład kodu pokazuje, jak używać funkcji createFromOptions(). Więcej informacji o konfigurowaniu zadań znajdziesz w sekcji Opcje konfiguracji.

Poniższy kod pokazuje, jak utworzyć i skonfigurować to zadanie.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Opcje konfiguracji

To zadanie ma te opcje konfiguracji w przypadku aplikacji internetowych i aplikacji napisanych w języku JavaScript:

Nazwa opcji Opis Zakres wartości Wartość domyślna
maxResults Określa opcjonalną maksymalną liczbę prognoz językowych o najwyższych wynikach, które mają zostać zwrócone. Jeśli ta wartość jest mniejsza od zera, zwracane są wszystkie dostępne wyniki. dowolne liczby dodatnie, -1
scoreThreshold Ustawia próg wyniku prognozy, który zastępuje próg podany w metadanych modelu (jeśli taki istnieje). Wyniki poniżej tej wartości są odrzucane. Dowolna liczba zmiennoprzecinkowa Nie ustawiono
categoryAllowlist Ustawia opcjonalną listę dozwolonych kodów języków. Jeśli nie jest pusta, prognozy językowe, których kod języka nie znajduje się w tym zbiorze, zostaną odfiltrowane. Tej opcji nie można używać razem z opcją categoryDenylist. Użycie obu opcji powoduje błąd. Dowolne ciągi Nie ustawiono
categoryDenylist Ustawia opcjonalną listę kodów języków, które nie są dozwolone. Jeśli ten zbiór nie jest pusty, prognozy językowe, których kod języka znajduje się w tym zbiorze, zostaną odfiltrowane. Tej opcji nie można używać razem z opcją categoryAllowlist. Użycie obu opcji powoduje błąd. Dowolne ciągi Nie ustawiono

Przygotuj dane

Wykrywacz języka działa na podstawie danych tekstowych (string). Zadanie obsługuje wstępne przetwarzanie danych wejściowych, w tym tokenizację i przetwarzanie wstępne tensorów. Całe przetwarzanie wstępne jest obsługiwane w funkcji detect. Nie musisz wcześniej dodatkowo przetwarzać tekstu wejściowego.

const inputText = "The input text for the detector.";

Uruchamianie zadania

Detektor języka używa funkcji detect do wywoływania wnioskowania. W przypadku wykrywania języka oznacza to zwrócenie możliwych języków dla tekstu wejściowego.

Poniższy kod pokazuje, jak wykonać przetwarzanie za pomocą modelu zadania:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

Obsługa i wyświetlanie wyników

Zadanie wykrywania języka zwraca LanguageDetectorResult, czyli listę prognoz dotyczących języka wraz z prawdopodobieństwami tych prognoz. Poniżej znajduje się przykład danych wyjściowych tego zadania:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Ten wynik został uzyskany przez uruchomienie modelu na tekście wejściowym:"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."

Przykład kodu potrzebnego do przetworzenia i wizualizacji wyników tego zadania znajdziesz w przykładzie.