Übersetzen Sie Sprachen mit MarianMT und Hugging Face TransformersÜbersetzen Sie Sprachen mit MarianMT und Hugging Face Transformers
Bild vom Autor | Canva

In unserer zunehmend globalisierten Welt ist die Sprachübersetzung zu einem unverzichtbaren Werkzeug geworden. Egal, ob Sie Entwickler, Forscher oder Reisender sind, Sie werden immer mit Menschen aus verschiedenen Kulturen kommunizieren müssen. Daher kann die Fähigkeit, Texte schnell und genau zu übersetzen, für Sie sehr hilfreich sein. Eine leistungsstarke Ressource hierfür ist das MarianMT-Modell, ein Teil der Hugging Face Transformers-Bibliothek.

In dieser Anleitung führen wir Sie durch den Prozess der Verwendung von MarianMT zum Übersetzen von Texten zwischen mehreren Sprachen und machen es sogar für Personen mit minimalem technischen Hintergrund zugänglich.

Was ist MarianMT?

MarianMT ist ein Framework für maschinelle Übersetzung, das auf der Transformer-Architektur basiert, die für ihre Effektivität bei der Verarbeitung natürlicher Sprache weithin anerkannt ist. Die MarianMT-Modelle wurden mithilfe der Marian C++-Bibliothek entwickelt und haben den großen Vorteil, dass sie schnell sind. Hugging Face hat MarianMT in seine Transformers-Bibliothek integriert, wodurch der Zugriff und die Verwendung über Python erleichtert wird.

Schritt-für-Schritt-Anleitung zur Verwendung von MarianMT

1. Set up

Zu Beginn müssen Sie die erforderlichen Bibliotheken installieren. Stellen Sie sicher, dass Python auf Ihrem System installiert ist, und führen Sie dann den folgenden Befehl aus, um die Bibliothek Hugging Face Transformers zu installieren:

Sie benötigen außerdem die Torch-Bibliothek zur Durchführung der Modellberechnungen:

2. Auswahl eines Modells

MarianMT-Modelle sind auf verschiedene Sprachpaare vortrainiert. Die Modelle folgen einer Namenskonvention von Helsinki-NLP/opus-mt-{src}-{tgt} im umarmenden Gesicht, wo {src} Und {tgt} sind die Quell- bzw. Zielsprachencodes. Wenn Sie beispielsweise suchen Helsinki-NLP/opus-mt-en-fr in „Umarmendes Gesicht“ würde das entsprechende Modell vom Englischen ins Französische übersetzt.

3. Laden des Modells und des Tokenizers

Angenommen, Sie möchten Englisch in eine bestimmte Sprache übersetzen, z. B. Französisch. Dann müssen Sie das richtige Modell und den entsprechenden Tokenizer laden. So laden Sie das Modell und den Tokenizer:

from transformers import MarianMTModel, MarianTokenizer

# Specify the mannequin identify
model_name = "Helsinki-NLP/opus-mt-en-fr"

# Load the tokenizer and mannequin
tokenizer = MarianTokenizer.from_pretrained(model_name)
mannequin = MarianMTModel.from_pretrained(model_name)

4. Textual content übersetzen

Jetzt, da Ihr Modell und Ihr Tokenizer bereit sind, können Sie Textual content in nur 4 einfachen Schritten übersetzen! Hier ist ein einfaches Beispiel. Zunächst geben Sie den Quelltext in einer Variablen an, die Sie übersetzen möchten.

# Outline the supply textual content
src_text = ("this can be a sentence in English that we wish to translate to French")

Da Transformatoren (oder jedes andere maschinelle Lernmodell) keinen Textual content verstehen, möchten wir den Quelltext in eine numerische Type umwandeln. Dazu würden wir unseren Textual content tokenisieren. Um ein umfassendes Verständnis der Tokenisierung zu erhalten, können Sie sich auf meine Tokenisierung Artikel.

# Tokenize the supply textual content
inputs = tokenizer(src_text, return_tensors="pt", padding=True)

Dann übergeben wir den tokenisierten Satz an das Modell und es gibt einige Zahlen aus.

# Generate the interpretation
translated = mannequin.generate(**inputs)

Beachten Sie, dass das Modell Token und nicht direkt Textual content ausgibt. Wir müssten diese Token wieder in Textual content dekodieren, damit Menschen die übersetzte Ausgabe des Modells verstehen können.

# Decode the translated textual content
tgt_text = (tokenizer.decode(t, skip_special_tokens=True) for t in translated)
print(tgt_text)

Im obigen Code ist die Ausgabe der übersetzte Textual content ins Französische:

c'est une phrase en anglais que nous voulons traduire en français

5. Übersetzen in mehrere Sprachen

Wenn Sie englischen Textual content in mehrere Sprachen übersetzen möchten, können Sie mehrsprachige Modelle verwenden. Beispielsweise das Modell Helsinki-NLP/opus-mt-en-ROMANCE kann Englisch in mehrere romanische Sprachen übersetzen (Französisch, Portugiesisch, Spanisch usw.). Geben Sie die Zielsprache an, indem Sie dem Quelltext den Zielsprachencode voranstellen:

src_text = (
    ">>fr<< this can be a sentence in English that we wish to translate to French",
    ">>pt<< This could go to Portuguese",
    ">>es<< And this to Spanish",
)

# Specify the multilingual mannequin
model_name = "Helsinki-NLP/opus-mt-en-ROMANCE"
tokenizer = MarianTokenizer.from_pretrained(model_name)
mannequin = MarianMTModel.from_pretrained(model_name)

# Tokenize the supply textual content
inputs = tokenizer(src_text, return_tensors="pt", padding=True)

# Generate the translations
translated = mannequin.generate(**inputs)

# Decode the translated textual content
tgt_text = (tokenizer.decode(t, skip_special_tokens=True) for t in translated)
print(tgt_text)

Die Ausgabe würde folgendermaßen aussehen:

("c'est une phrase en anglais que nous voulons traduire en français",
 'Isto deve ir para o português.',
 'Y esto al español')

Mit diesem Setup können Sie Ihren englischen Textual content problemlos ins Französische, Portugiesische und Spanische übersetzen. Es gibt auch einige andere Sprachgruppen als die ROMANTISCHEN Sprachen. Hier ist eine Liste davon:

GROUP_MEMBERS = {
 'ZH': ('cmn', 'cn', 'yue', 'ze_zh', 'zh_cn', 'zh_CN', 'zh_HK', 'zh_tw', 'zh_TW', 'zh_yue', 'zhs', 'zht', 'zh'),
 'ROMANCE': ('fr', 'fr_BE', 'fr_CA', 'fr_FR', 'wa', 'frp', 'oc', 'ca', 'rm', 'lld', 'fur', 'lij', 'lmo', 'es', 'es_AR', 'es_CL', 'es_CO', 'es_CR', 'es_DO', 'es_EC', 'es_ES', 'es_GT', 'es_HN', 'es_MX', 'es_NI', 'es_PA', 'es_PE', 'es_PR', 'es_SV', 'es_UY', 'es_VE', 'pt', 'pt_br', 'pt_BR', 'pt_PT', 'gl', 'lad', 'an', 'mwl', 'it', 'it_IT', 'co', 'nap', 'scn', 'vec', 'sc', 'ro', 'la'),
 'NORTH_EU': ('de', 'nl', 'fy', 'af', 'da', 'fo', 'is', 'no', 'nb', 'nn', 'sv'),
 'SCANDINAVIA': ('da', 'fo', 'is', 'no', 'nb', 'nn', 'sv'),
 'SAMI': ('se', 'sma', 'smj', 'smn', 'sms'),
 'NORWAY': ('nb_NO', 'nb', 'nn_NO', 'nn', 'nog', 'no_nb', 'no'),
 'CELTIC': ('ga', 'cy', 'br', 'gd', 'kw', 'gv')
}

Einpacken

Die Verwendung von MarianMT-Modellen mit der Hugging Face Transformers-Bibliothek bietet eine leistungsstarke und versatile Möglichkeit, Sprachübersetzungen durchzuführen. Egal, ob Sie Texte für den persönlichen Gebrauch oder für die Forschung übersetzen oder Übersetzungsfunktionen in Ihre Anwendungen integrieren, MarianMT bietet eine zuverlässige und benutzerfreundliche Lösung. Mit den in diesem Handbuch beschriebenen Schritten können Sie effizient und effektiv mit der Übersetzung von Sprachen beginnen.

Kanwal Mehreen Kanwal ist Ingenieurin für maschinelles Lernen und technische Autorin mit einer tiefen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Technology Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Range in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist eine leidenschaftliche Verfechterin des Wandels und hat FEMCodes gegründet, um Frauen in MINT-Fächern zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert