Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menterjemah kandungan secara pengaturcaraan menggunakan AI dan TransformersPHP

Bagaimana untuk menterjemah kandungan secara pengaturcaraan menggunakan AI dan TransformersPHP

WBOY
WBOYasal
2024-09-01 06:32:071021semak imbas

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.

Langkah 1: Sediakan projek

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";

Langkah 2: Import kelas yang diperlukan

Seterusnya, anda perlu mengimport kelas dan fungsi berkaitan yang mengendalikan terjemahan:

use Codewithkyrian\Transformers\Transformers;
use function Codewithkyrian\Transformers\Pipelines\pipeline;
  • Transformers: Kelas ini mengurus persediaan dan konfigurasi untuk model terjemahan.
  • saluran paip: Fungsi ini memulakan saluran paip terjemahan khusus anda.

Langkah 3: Mulakan kelas Transformers

Sebelum menterjemah kandungan, anda mesti mengkonfigurasi kelas Transformers:

Transformers::setup()->setCacheDir("./models")->apply();
  • setCacheDir(): Kaedah ini mentakrifkan direktori untuk model caching, yang mempercepatkan proses dengan mengelakkan muat turun berulang.
  • apply(): Memuktamadkan persediaan dan menggunakan konfigurasi.

Langkah 4: Sediakan Saluran Paip Terjemahan

Langkah seterusnya ialah membuat saluran paip untuk terjemahan menggunakan model terlatih:

$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
  • pipeline("terjemahan", 'Xenova/nllb-200-distilled-600M'): Fungsi ini menyediakan saluran paip terjemahan menggunakan model yang ditentukan, Xenova/nllb-200-distilled-600M, yang mampu mengendalikan berbilang bahasa dengan cekap.

Model yang digunakan untuk terjemahan dalam contoh ini ialah https://huggingface.co/Xenova/nllb-200-distilled-600M

Langkah 5: Sediakan kandungan untuk terjemahan

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.

Langkah 6: Terjemahkan kandungan

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;
}

  • $translationPipeline($input, maxNewTokens: 256, tgtLang: 'ita_Latn'): Panggilan fungsi ini menterjemah setiap ayat bahasa Inggeris ke dalam bahasa Itali, dengan maxNewTokens mengehadkan panjang terjemahan dan tgtLang menyatakan bahasa sasaran sebagai bahasa Itali (ita_Latn).
  • trim($output[0]["translation_text"]): Membersihkan teks terjemahan dengan mengalih keluar mana-mana ruang putih di hadapan atau di belakang.

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.

How to translate content programmatically using AI and TransformersPHP

Kesimpulan

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.

Rujukan

  • Tapak web TransformersPHP: https://codewithkyrian.github.io/transformers-php/
  • Kod sumber TransformersPHP: https://github.com/CodeWithKyrian/transformers-php
  • Artikel pengenalan tentang TransformersPHP: https://dev.to/robertobutti/machine-learning-with-php-5gb
  • Cara menjana Teks Alt dengan TransformersPHP https://dev.to/robertobutti/how-to-auto-generate-the-image-alt-text-using-ai-and-transformers-php-3onc
  • Dokumentasi rasmi TransformersPHP: https://codewithkyrian.github.io/transformers-php/introduction
  • Pengarang, Kyrian yang menakjubkan https://x.com/CodeWithKyrian, terima kasih atas segala usaha anda dalam membina projek PHP sumber terbuka ini ✨

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn