Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menterjemah kandungan secara pengaturcaraan menggunakan AI dan TransformersPHP
Dalam artikel ini, saya akan menunjukkan kepada anda cara menterjemah kandungan secara pemprograman dengan PHP menggunakan perpustakaan TransformersPHP.
Menterjemah teks adalah penting untuk menjangkau khalayak global dan memastikan kandungan anda boleh diakses oleh penutur bahasa yang berbeza.
Untuk bermula, sila pastikan anda telah memasang perpustakaan TransformersPHP. Anda boleh memasangnya melalui Komposer dengan menjalankan:
composer require codewithkyrian/transformers
Semasa pemasangan, anda perlu menjawab soalan:
Do you trust "codewithkyrian/transformers-libsloader" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
Anda perlu menjawab ya untuk membolehkan pemalam Komposer memuat turun semua perpustakaan kongsi yang diperlukan untuk TransformersPHP.
Setelah dipasang, perlukan fail autoload untuk memuatkan semua kelas dan kebergantungan yang diperlukan:
<?php require "./vendor/autoload.php";
Seterusnya, anda perlu mengimport kelas dan fungsi berkaitan yang mengendalikan terjemahan:
use Codewithkyrian\Transformers\Transformers; use function Codewithkyrian\Transformers\Pipelines\pipeline;
Sebelum menterjemah kandungan, anda mesti mengkonfigurasi kelas Transformers:
Transformers::setup()->setCacheDir("./models")->apply();
Langkah seterusnya ialah membuat saluran paip untuk terjemahan menggunakan model terlatih:
$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
Model yang digunakan untuk terjemahan dalam contoh ini ialah https://huggingface.co/Xenova/nllb-200-distilled-600M
Tentukan ayat yang ingin anda terjemah:
$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", ];
Susun atur ini mengandungi ayat bahasa Inggeris yang akan diterjemahkan ke dalam bahasa Itali.
Gelung setiap ayat dan terjemahkannya:
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; }
Model menyokong banyak bahasa. Untuk menentukan bahasa sasaran dengan parameter tgtLang, anda mesti menggunakan kod bahasa FLORES-200. Di sini terdapat senarai: https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200
Dalam pelaksanaan pertama skrip, fungsi pipeline() akan memuat turun semua fail model ke dalam direktori: models/Xenova/nllb-200-distilled-600M. Sabar, modelnya besar, melebihi 800 MB.
Dengan TransformersPHP, menterjemah kandungan secara pengaturcaraan adalah proses yang diperkemas. Dengan menyediakan persekitaran, memulakan kelas yang diperlukan, dan menentukan saluran paip terjemahan, anda boleh menukar teks daripada satu bahasa ke bahasa lain dengan mudah. Ini amat berguna untuk membuat tapak web, aplikasi atau kandungan berbilang bahasa, yang membolehkan anda menjangkau khalayak yang lebih luas dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk menterjemah kandungan secara pengaturcaraan menggunakan AI dan TransformersPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!