Przewodnik po wykrywaniu języka w Pythonie

Zadanie Wykrywacz języka MediaPipe pozwala określić język tekstu. Te instrukcje pokazują, jak używać narzędzia do wykrywania języka w Pythonie. 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 Pythonie. Ten kod pomoże Ci przetestować to zadanie i rozpocząć tworzenie własnej funkcji wykrywania języka. Przykładowy kod 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 Pythona.

Pakiety

Detektor języka korzysta z pakietu pip Mediapipe. Możesz zainstalować zależność, używając tego kodu:

$ python -m pip install mediapipe

Importowane dane

Aby uzyskać dostęp do funkcji wykrywania języka, zaimportuj te klasy:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

Model

Zadanie MediaPipe Language Detector wymaga wytrenowanego modelu, który jest zgodny z tym zadaniem. Więcej informacji o dostępnych wytrenowanych modelach funkcji wykrywania języka znajdziesz w sekcji przeglądu zadań na stronie Modele.

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

model_path = '/absolute/path/to/language_detector.tflite'

Określ ścieżkę modelu za pomocą parametru model_asset_path obiektu BaseOptions, jak poniżej:

base_options = BaseOptions(model_asset_path=model_path)

Tworzenie zadania

Wykrywacz języka MediaPipe korzysta z funkcji create_from_options do skonfigurowania tego zadania. Funkcja create_from_options akceptuje wartości opcji konfiguracji w celu ustawiania opcji detektora. Możesz też zainicjować zadanie za pomocą funkcji fabrycznej create_from_model_path. Funkcja create_from_model_path akceptuje ścieżkę względną lub bezwzględną do wytrenowanego pliku modelu. Więcej informacji o konfigurowaniu zadań znajdziesz w artykule o opcjach konfiguracji.

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

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.LanguageDetectorOptions(base_options=base_options)

Opcje konfiguracji

To zadanie ma następujące opcje konfiguracji aplikacji w Pythonie:

Nazwa opcji Opis Zakres wartości Wartość domyślna
max_results 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
score_threshold 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
category_allowlist 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 category_denylist i korzystanie z obu daje błąd. Dowolne ciągi Nie ustawiono
category_denylist 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 category_allowlist, a korzystanie z obu daje błąd. Dowolne ciągi Nie ustawiono

Przygotuj dane

Wykrywacz języka obsługuje dane tekstowe (str). 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.

input_text = 'The input text to be classified.'

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.

Poniższy kod pokazuje, jak wykonać przetwarzanie za pomocą modelu zadań.

with python.text.LanguageDetector.create_from_options(options) as detector:
  detection_result = detector.detect(input_text)

Obsługa i wyświetlanie wyników

Wykrywacz języka generuje element LanguageDetectorResult zawierający listę przewidywanych języków wraz z prawdopodobieństwem tych prognoz. Poniżej znajdziesz przykład danych wyjściowych 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 artykule o przykładowej aplikacji w Pythonie.