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

WBOY
发布: 2024-09-01 06:32:07
原创
838 人浏览过

In this article, I'll show you how to translate content programmatically with PHP using the TransformersPHP library.
Translating text is essential for reaching a global audience and ensuring your content is accessible to speakers of different languages.

Step 1: Set up the project

To get started, please make sure you have the TransformersPHP library installed. You can install it via Composer by running:

composer require codewithkyrian/transformers
登录后复制

During the installation, you have to answer a question:

Do you trust "codewithkyrian/transformers-libsloader" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
登录后复制

You'll need to answer yes to enable the Composer plugin to download all shared libraries necessary for TransformersPHP.

Once installed, require the autoload file to load all necessary classes and dependencies:


        
登录后复制

Step 2: Import the necessary classes

Next, you’ll need to import the relevant classes and functions that handle translation:

use Codewithkyrian\Transformers\Transformers; use function Codewithkyrian\Transformers\Pipelines\pipeline;
登录后复制
  • Transformers: This class manages the setup and configuration for translation models.
  • pipeline: This function initializes your specific translation pipeline.

Step 3: Initialize the Transformers class

Before translating content, you must configure the Transformers class:

Transformers::setup()->setCacheDir("./models")->apply();
登录后复制
  • setCacheDir(): This method defines the directory for caching models, which speeds up the process by avoiding repeated downloads.
  • apply(): Finalizes the setup and applies the configuration.

Step 4: Set Up the Translation Pipeline

The next step is to create a pipeline for translation using a pre-trained model:

$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
登录后复制
  • pipeline("translation", 'Xenova/nllb-200-distilled-600M'): This function sets up a translation pipeline using the specified model, Xenova/nllb-200-distilled-600M, which is capable of handling multiple languages efficiently.

The model used for translations in this example is https://huggingface.co/Xenova/nllb-200-distilled-600M

Step 5: Provide content for translation

Define the sentences you want to translate:

$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", ];
登录后复制

This array contains English sentences that will be translated into Italian.

Step 6: Translate the content

Loop through each sentence and translate it:

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'): This function call translates each English sentence into Italian, with maxNewTokens limiting the length of the translation and tgtLang specifying the target language as Italian (ita_Latn).
  • trim($output[0]["translation_text"]): Cleans up the translated text by removing any leading or trailing whitespace.

The model supports a lot of languages. To define the target language with the tgtLang parameter, you must use the language code FLORES-200. Here there is a list: https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200

In the first execution of the script, the pipeline() function will download all the model files into the directory: models/Xenova/nllb-200-distilled-600M. Be patient, the model is huge, more than 800 MB.

How to translate content programmatically using AI and TransformersPHP

Conclusion

With TransformersPHP, translating content programmatically is a streamlined process. By setting up the environment, initializing the necessary classes, and defining a translation pipeline, you can easily convert text from one language to another. This is particularly useful for creating multilingual websites, applications, or content, allowing you to reach a broader audience effectively.

References

  • TransformersPHP website: https://codewithkyrian.github.io/transformers-php/
  • TransformersPHP source code: https://github.com/CodeWithKyrian/transformers-php
  • Intro article about TransformersPHP: https://dev.to/robertobutti/machine-learning-with-php-5gb
  • How to generate Alt Text with TransformersPHP https://dev.to/robertobutti/how-to-auto-generate-the-image-alt-text-using-ai-and-transformers-php-3onc
  • TransformersPHP official documentation: https://codewithkyrian.github.io/transformers-php/introduction
  • The author, the amazing Kyrian https://x.com/CodeWithKyrian, thank you for all your effort in building this open source PHP project ✨

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

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!