在本文中,我將向您展示如何使用 TransformersPHP 函式庫以程式設計方式翻譯內容。
翻譯文字對於吸引全球受眾並確保不同語言的使用者都能存取您的內容至關重要。
首先,請確保您已安裝 TransformersPHP 庫。您可以透過執行以下命令透過 Composer 安裝它:
composer require codewithkyrian/transformers
安裝過程中,您必須回答一個問題:
Do you trust "codewithkyrian/transformers-libsloader" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
您需要回答「是」才能啟用 Composer 外掛程式來下載 TransformersPHP 所需的所有共用程式庫。
安裝後,要求自動載入檔案載入所有必要的類別和相依性:
<?php require "./vendor/autoload.php";
接下來,您需要匯入處理翻譯的相關類別和函數:
use Codewithkyrian\Transformers\Transformers; use function Codewithkyrian\Transformers\Pipelines\pipeline;
在翻譯內容之前,您必須設定 Transformers 類別:
Transformers::setup()->setCacheDir("./models")->apply();
下一步是使用預訓練模型建立翻譯管道:
$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
本例中用於翻譯的模型是 https://huggingface.co/Xenova/nllb-200-distilled-600M
定義您要翻譯的句子:
$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", ];
此陣列包含將翻譯成義大利文的英文句子。
循環每個句子並翻譯它:
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; }
此模型支援多種語言。若要使用 tgtLang 參數定義目標語言,必須使用語言代碼 FLORES-200。這裡有一個清單:https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200
第一次執行腳本時,pipeline()函數會將所有模型檔案下載到目錄:models/Xenova/nllb-200-distilled-600M中。請耐心等待,模型很大,超過 800 MB。
使用 TransformersPHP,以程式方式翻譯內容是一個簡化的過程。透過設定環境、初始化必要的類別並定義翻譯管道,您可以輕鬆地將文字從一種語言轉換為另一種語言。這對於創建多語言網站、應用程式或內容特別有用,可以讓您有效地接觸更廣泛的受眾。
以上是如何使用 AI 和 TransformersPHP 以程式設計方式翻譯內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!