首页  >  文章  >  后端开发  >  如何使用 AI 和 TransformersPHP 以编程方式翻译内容

如何使用 AI 和 TransformersPHP 以编程方式翻译内容

WBOY
WBOY原创
2024-09-01 06:32:071001浏览

在本文中,我将向您展示如何使用 TransformersPHP 库以编程方式翻译内容。
翻译文本对于吸引全球受众并确保不同语言的使用者都能访问您的内容至关重要。

第 1 步:设置项目

首先,请确保您已安装 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";

第2步:导入必要的类

接下来,您需要导入处理翻译的相关类和函数:

use Codewithkyrian\Transformers\Transformers;
use function Codewithkyrian\Transformers\Pipelines\pipeline;
  • Transformers:此类管理翻译模型的设置和配置。
  • pipeline:此函数初始化您的特定翻译管道。

第 3 步:初始化 Transformers 类

在翻译内容之前,您必须配置 Transformers 类:

Transformers::setup()->setCacheDir("./models")->apply();
  • setCacheDir():此方法定义缓存模型的目录,这可以避免重复下载,从而加快进程。
  • apply():完成设置并应用配置。

第 4 步:设置翻译管道

下一步是使用预训练模型创建翻译管道:

$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
  • pipeline("translation", 'Xenova/nllb-200-distilled-600M'):该函数使用指定模型 Xenova/nllb-200-distilled-600M 设置翻译管道,该模型能够有效处理多种语言。

本例中用于翻译的模型是 https://huggingface.co/Xenova/nllb-200-distilled-600M

第 5 步:提供翻译内容

定义您要翻译的句子:

$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",
];

此数组包含将被翻译成意大利语的英语句子。

第6步:翻译内容

循环每个句子并翻译它:

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'):此函数调用将每个英语句子翻译成意大利语,maxNewTokens 限制翻译的长度,tgtLang 指定目标语言为意大利语 (ita_Latn)。
  • rim($output[0]["translation_text"]):通过删除任何前导或尾随空格来清理翻译文本。

该模型支持多种语言。要使用 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。

How to translate content programmatically using AI and TransformersPHP

结论

使用 TransformersPHP,以编程方式翻译内容是一个简化的过程。通过设置环境、初始化必要的类并定义翻译管道,您可以轻松地将文本从一种语言转换为另一种语言。这对于创建多语言网站、应用程序或内容特别有用,可以让您有效地覆盖更广泛的受众。

参考

  • TransformersPHP 网站:https://codewithkyrian.github.io/transformers-php/
  • TransformersPHP 源代码:https://github.com/CodeWithKyrian/transformers-php
  • 关于 TransformersPHP 的介绍文章:https://dev.to/robertobutti/machine-learning-with-php-5gb
  • 如何使用 TransformersPHP 生成替代文本 https://dev.to/robertobutti/how-to-auto-generate-the-image-alt-text-using-ai-and-transformers-php-3onc
  • TransformersPHP 官方文档:https://codewithkyrian.github.io/transformers-php/introduction
  • 作者,令人惊叹的 Kyrian https://x.com/CodeWithKyrian,感谢您为构建这个开源 PHP 项目所做的一切努力 ✨

以上是如何使用 AI 和 TransformersPHP 以编程方式翻译内容的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn