Maison  >  Article  >  développement back-end  >  Comment traduire du contenu par programmation à l'aide de l'IA et de TransformersPHP

Comment traduire du contenu par programmation à l'aide de l'IA et de TransformersPHP

WBOY
WBOYoriginal
2024-09-01 06:32:071001parcourir

Dans cet article, je vais vous montrer comment traduire du contenu par programmation avec PHP à l'aide de la bibliothèque TransformersPHP.
La traduction de texte est essentielle pour atteindre un public mondial et garantir que votre contenu est accessible aux locuteurs de différentes langues.

Étape 1 : Configurer le projet

Pour commencer, assurez-vous que la bibliothèque TransformersPHP est installée. Vous pouvez l'installer via Composer en exécutant :

composer require codewithkyrian/transformers

Lors de l'installation, vous devez répondre à une question :

Do you trust "codewithkyrian/transformers-libsloader" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]

Vous devrez répondre oui pour permettre au plugin Composer de télécharger toutes les bibliothèques partagées nécessaires à TransformersPHP.

Une fois installé, demandez au fichier de chargement automatique de charger toutes les classes et dépendances nécessaires :

<?php
require "./vendor/autoload.php";

Étape 2 : Importez les classes nécessaires

Ensuite, vous devrez importer les classes et fonctions pertinentes qui gèrent la traduction :

use Codewithkyrian\Transformers\Transformers;
use function Codewithkyrian\Transformers\Pipelines\pipeline;
  • Transformateurs : cette classe gère l'installation et la configuration des modèles de traduction.
  • pipeline : cette fonction initialise votre pipeline de traduction spécifique.

Étape 3 : initialiser la classe Transformers

Avant de traduire du contenu, vous devez configurer la classe Transformers :

Transformers::setup()->setCacheDir("./models")->apply();
  • setCacheDir() : Cette méthode définit le répertoire de mise en cache des modèles, ce qui accélère le processus en évitant les téléchargements répétés.
  • apply() : finalise l'installation et applique la configuration.

Étape 4 : configurer le pipeline de traduction

L'étape suivante consiste à créer un pipeline de traduction à l'aide d'un modèle pré-entraîné :

$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
  • pipeline("translation", 'Xenova/nllb-200-distilled-600M') : cette fonction configure un pipeline de traduction à l'aide du modèle spécifié, Xenova/nllb-200-distilled-600M, capable de gérer efficacement plusieurs langues.

Le modèle utilisé pour les traductions dans cet exemple est https://huggingface.co/Xenova/nllb-200-distilled-600M

Étape 5 : Fournir le contenu à traduire

Définissez les phrases que vous souhaitez traduire :

$inputs = [
    "The quality of tools in the PHP ecosystem has greatly improved in recent years",
    "Some developers don't like PHP as a programming language",
    "I appreciate Laravel as a development tool",
    "Laravel is a framework that improves my productivity",
    "Using an outdated version of Laravel is not a good practice",
    "I love Laravel",
];

Ce tableau contient des phrases anglaises qui seront traduites en italien.

Étape 6 : Traduire le contenu

Parcourez chaque phrase et traduisez-la :

foreach ($inputs as $input) {
    $output = $translationPipeline(
        $input,
        maxNewTokens: 256,
        tgtLang: 'ita_Latn'
    );
    echo "?? " . $input . PHP_EOL;
    echo "?? " . trim($output[0]["translation_text"]) . PHP_EOL;
    echo PHP_EOL;
}

  • $translationPipeline($input, maxNewTokens : 256, tgtLang : 'ita_Latn') : cet appel de fonction traduit chaque phrase anglaise en italien, avec maxNewTokens limitant la longueur de la traduction et tgtLang spécifiant la langue cible comme l'italien (ita_Latn).
  • trim($output[0]["translation_text"]) : nettoie le texte traduit en supprimant tout espace de début ou de fin.

Le modèle prend en charge de nombreuses langues. Pour définir la langue cible avec le paramètre tgtLang, vous devez utiliser le code langue FLORES-200. Voici une liste : https://github.com/facebookresearch/flores/blob/main/flores200/README.md#linguals-in-flores-200

Lors de la première exécution du script, la fonction pipeline() téléchargera tous les fichiers de modèle dans le répertoire : models/Xenova/nllb-200-distilled-600M. Soyez patient, le modèle est énorme, plus de 800 Mo.

How to translate content programmatically using AI and TransformersPHP

Conclusion

Avec TransformersPHP, la traduction du contenu par programmation est un processus rationalisé. En configurant l'environnement, en initialisant les classes nécessaires et en définissant un pipeline de traduction, vous pouvez facilement convertir du texte d'une langue à une autre. Ceci est particulièrement utile pour créer des sites Web, des applications ou du contenu multilingues, vous permettant ainsi d'atteindre efficacement un public plus large.

Références

  • Site Web TransformersPHP : https://codewithkyrian.github.io/transformers-php/
  • Code source de TransformersPHP : https://github.com/CodeWithKyrian/transformers-php
  • Article d'introduction sur TransformersPHP : https://dev.to/robertobutti/machine-learning-with-php-5gb
  • Comment générer du texte alternatif avec TransformersPHP https://dev.to/robertobutti/how-to-auto-generate-the-image-alt-text-using-ai-and-transformers-php-3onc
  • Documentation officielle de TransformersPHP : https://codewithkyrian.github.io/transformers-php/introduction
  • L'auteur, l'incroyable Kyrian https://x.com/CodeWithKyrian, merci pour tous vos efforts dans la construction de ce projet PHP open source ✨

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn