MyTetra Share
Делитесь знаниями!
Какие OpenSource инструменты можно использовать для создания самодельной локальной системы перевода текста?
Время создания: 01.06.2023 10:27
Текстовые метки: нейронная, сеть, язык, перевод, translate, open source, инструменты, русский, английский
Раздел: Компьютер - Программирование - Нейронные сети
Запись: xintrea/mytetra_syncro/master/base/1685604427wtuj58ybav/text.html на raw.github.com

Есть такой проект - CTranslate, который является частью проекта OpenNMT. Эти проекты написаны на языках C++ и Python, и предназначенны для эффективного использования (с использованием оптимизаций для CPU и GPU) натренированных моделей в системах машинного перевода. Лицензия MIT.


Перевод с английского на немецкий (en-de), с использованием данных инструментов, выглядит так:



import ctranslate2

import sentencepiece as spm


translator = ctranslate2.Translator("ende_ctranslate2/", device="cpu")

sp = spm.SentencePieceProcessor("sentencepiece.model")


input_text = "Hello world!"

input_tokens = sp.encode(input_text, out_type=str)


results = translator.translate_batch([input_tokens])


output_tokens = results[0].hypotheses[0]

output_text = sp.decode(output_tokens)


print(output_text)



Текст на исходном языке разбивается на токены (encode), а затем последовательность этих токенов преобразуется в текст на другом языке (decode).


Соответственно, для энкодинга требуется одна нейросетевая модель (sentencepiece.model), а для декодинга другая модель (ende_ctranslate2).


Токенизатор, занимающийся энкодингом, является библиотекой Python и называется sentencepiece. Надо разобраться, где его найти, возможно здесь: https://opennmt.net/


Транслятор, занимающийся декодингом, находится здесь: https://opennmt.net/CTranslate2


Большое количество предтренированных моделей можно найти в проекте Opus-MT: https://github.com/Helsinki-NLP/Opus-MT-train/tree/master/models


Там же есть модели для перевода между русским и английским в направлениях и en-ru, и ru-en.


Некоторые подробности можно почитать в следующем обсуждении:



https://www.linux.org.ru/news/opensource/17244223?cid=17244721



В принципе, этих инструментов достаточно, чтобы сделать локальный, независимый от наличия сети Интернет, переводчик.


 
MyTetra Share v.0.59
Яндекс индекс цитирования