Przewodnik wykrywania języka w internecie

Zadanie Wykrywacz języka MediaPipe pozwala określić język tekstu. Z tych instrukcji dowiesz się, jak używać Wykrywacza języka w przypadku aplikacji internetowych i JavaScript. Przykładowy kod opisany w tych instrukcjach jest dostępny na GitHub.

Aby zobaczyć, jak działa to zadanie, obejrzyj prezentację. Więcej informacji o możliwościach, modelach i opcjach konfiguracji tego zadania znajdziesz w sekcji Omówienie.

Przykładowy kod

Przykładowy kod narzędzia do wykrywania języka zawiera pełną implementację tego zadania w języku JavaScript. Ten kod pomoże Ci przetestować to zadanie i rozpocząć tworzenie własnego wykrywania języka. Przykładowy kod narzędzia do wykrywania języka możesz wyświetlać, uruchamiać i edytować tylko w przeglądarce.

Konfiguracja

W tej sekcji opisujemy najważniejsze czynności, jakie należy wykonać, aby skonfigurować środowisko programistyczne i projekty kodu z myślą o wykrywaniu języka. Ogólne informacje o konfigurowaniu środowiska programistycznego na potrzeby zadań MediaPipe, w tym o wymaganiach dotyczących wersji platformy, znajdziesz w przewodniku konfiguracji dla aplikacji internetowych.

Pakiety JavaScript

Kod do wykrywania języka jest dostępny w pakiecie @mediapipe/tasks-text. Te biblioteki możesz znaleźć i pobrać za pomocą linków dostępnych w przewodniku po konfiguracji platformy.

Wymagane pakiety możesz zainstalować za pomocą tego polecenia na potrzeby lokalnego środowiska wykonawczego, korzystając z tego polecenia:

npm install @mediapipe/tasks-text

Jeśli chcesz przeprowadzić wdrożenie na serwerze, możesz użyć usługi sieci dostarczania treści (CDN) takiej jak 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 zgodny z tym zadaniem. Więcej informacji o dostępnych wytrenowanych modelach dotyczących funkcji wykrywania języka znajdziesz w sekcji omawiającej zadania w sekcji na temat modeli.

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 modelAssetPath obiektu baseOptions, jak poniżej:

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

Tworzenie zadania

Użyj jednej z funkcji wykrywacza języka LanguageDetector.createFrom...(), aby przygotować zadanie do uruchamiania wnioskowania. Możesz użyć funkcji createFromModelPath() ze ścieżką względną lub bezwzględną do wytrenowanego pliku modelu. W poniższym przykładzie kodu pokazano użycie funkcji createFromOptions(). Więcej informacji o konfigurowaniu zadań znajdziesz w artykule o opcjach konfiguracji.

Poniższy kod pokazuje, jak skompilować 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 następujące opcje konfiguracji dla aplikacji internetowych i JavaScript:

Nazwa opcji Opis Zakres wartości Wartość domyślna
maxResults Określa opcjonalną maksymalną liczbę prognozowanych języków o najwyższych wynikach do zwrócenia. 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 metadanych modelu (jeśli istnieją). 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 nie będzie pusty, podpowiedzi języka, których kodu języka nie ma w tym zestawie, zostaną odfiltrowane. Ta opcja wzajemnie się wyklucza categoryDenylist i korzystanie z obu daje błąd. Dowolne ciągi Nie ustawiono
categoryDenylist Ustawia opcjonalną listę niedozwolonych kodów języków. Jeśli nie są puste, prognozy języka, których kod języka jest w tym zbiorze, zostaną odfiltrowane. Ta opcja wzajemnie się wyklucza z categoryAllowlist, a korzystanie z obu daje błąd. Dowolne ciągi Nie ustawiono

Przygotuj dane

Wykrywacz języka obsługuje dane tekstowe (string). To zadanie obsługuje wstępne przetwarzanie danych wejściowych, w tym tokenizację i wstępne przetwarzanie tensorów. Przetwarzanie wstępne jest realizowane w ramach funkcji detect. Nie ma potrzeby wcześniejszego wstępnego przetwarzania tekstu wejściowego.

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

Uruchamianie zadania

Detektor języka używa funkcji detect do aktywowania wnioskowania. Na potrzeby wykrywania języka zwracana jest lista możliwych języków dla tekstu wejściowego.

Ten kod pokazuje, jak wykonać przetwarzanie za pomocą modelu zadań:

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

Obsługa i wyświetlanie wyników

Zadanie Wykrywacz języka zwraca LanguageDetectorResult, który składa się z listy przewidywanych języków wraz z ich prawdopodobieństwem. Poniżej znajdziesz przykładowe dane wyjściowe z tego zadania:

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

Wynik jest 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 wymaganego do przetwarzania i wizualizacji wyników tego zadania znajdziesz w sekcji Przykładowa aplikacja internetowa.