>백엔드 개발 >PHP 튜토리얼 >AI 및 TransformersPHP를 사용하여 프로그래밍 방식으로 콘텐츠를 번역하는 방법

AI 및 TransformersPHP를 사용하여 프로그래밍 방식으로 콘텐츠를 번역하는 방법

WBOY
WBOY원래의
2024-09-01 06:32:071028검색

이 기사에서는 TransformersPHP 라이브러리를 사용하여 PHP로 프로그래밍 방식으로 콘텐츠를 번역하는 방법을 보여 드리겠습니다.
텍스트 번역은 전 세계 시청자에게 다가가고 다양한 언어 사용자가 콘텐츠에 액세스할 수 있도록 하는 데 필수적입니다.

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: 이 클래스는 번역 모델의 설정 및 구성을 관리합니다.
  • 파이프라인: 이 함수는 특정 번역 파이프라인을 초기화합니다.

3단계: Transformers 클래스 초기화

콘텐츠를 번역하기 전에 Transformers 클래스를 구성해야 합니다.

Transformers::setup()->setCacheDir("./models")->apply();
  • setCacheDir(): 이 메소드는 모델 캐싱을 위한 디렉토리를 정의하여 반복적인 다운로드를 방지하여 프로세스 속도를 높입니다.
  • apply(): 설정을 마무리하고 구성을 적용합니다.

4단계: 번역 파이프라인 설정

다음 단계는 사전 학습된 모델을 사용하여 번역을 위한 파이프라인을 만드는 것입니다.

$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
  • 파이프라인("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)로 지정합니다.
  • Trim($output[0]["translation_text"]): 선행 또는 후행 공백을 제거하여 번역된 텍스트를 정리합니다.

이 모델은 다양한 언어를 지원합니다. tgtLang 매개변수를 사용하여 대상 언어를 정의하려면 언어 코드 FLORES-200을 사용해야 합니다. 여기에 목록이 있습니다: https://github.com/facebookresearch/flores/blob/main/flores200/README.md#언어s-in-flores-200

스크립트를 처음 실행할 때 파이프라인() 함수는 모든 모델 파일을 models/Xenova/nllb-200-distilled-600M 디렉터리에 다운로드합니다. 인내심을 가지세요. 모델은 800MB가 넘을 정도로 엄청납니다.

How to translate content programmatically using AI and TransformersPHP

결론

TransformsPHP를 사용하면 프로그래밍 방식으로 콘텐츠를 번역하는 과정이 간소화됩니다. 환경을 설정하고, 필요한 클래스를 초기화하고, 번역 파이프라인을 정의함으로써 텍스트를 한 언어에서 다른 언어로 쉽게 변환할 수 있습니다. 이는 다국어 웹사이트, 애플리케이션 또는 콘텐츠를 제작하여 더 많은 잠재고객에게 효과적으로 접근할 수 있는 데 특히 유용합니다.

참고자료

  • 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으로 문의하세요.