在本文中,我将向您展示如何使用 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中文网其他相关文章!