LINUX.ORG.RU
ФорумTalks

Чем перевести документ в направлении EN-RU на 150 000 символов?

 , ,


1

2

Имеется автосгенерированный текст на 150 000 символов (~25 000 строк).

Его нужно перевести в направлении EN-RU. Google Translate ограничен 5 000 символов. Yandex Translate вроде дает 10 000 символов, но это тоже мало.

Вопрос: каким методом можно бесплатно без СМС автоматически перевести текст такого объема?

★★★★★

бесплатно

Возьми словарь и переведи сам.

Во времена оные, можно было воспользоваться promt’ом. На сколько помню, ограничений на размер не было.

einhander ★★★★★
()

ChatGPT попроси. Он может правда что-то поправить на свое усмотрение, или бросить в начале пути) Правда такой длинны контекст будет платным.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

А может есть какая-то утилита, которая частями переводит?
Самое главное, чтобы перевод был строка-в-строку, чтобы не появилось новых строк и не удалилось существующих.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Переводилка для вашего ПекА

Повесь на горячую клавишу, выделил текст, нажал клавишу, в буфере обмена у тебя перевод уже, копипасть его куда-то и так до победного.

Можно написать скрипт без ручной дрочки, автоматически. Вот напиши, взял 1000 символов, перевёл, сохранил, следующие 1000 и так далее =)

Самое главное, чтобы перевод был строка-в-строку,

Это уже как получится.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)

Google Translate ограничен 5 000 символов

Он ограничен этим количеством за один раз. Можно скормить ему весь этот текст и он разобьет его на части и будет частями переводить.

vbcnthfkmnth123 ★★★★★
()

Дожили, посетитель лора уже не знает что автопереводчики бывают не только онлайн.

firkax ★★★★★
()
Ответ на: комментарий от Irma

Ну додумается чай что надо на слова бить или хоть просто до точки ближайшей идти переводя предложениями, он в курсе

LINUX-ORG-RU ★★★★★
()

автосгенерированный текст

А вообще выкинь свой спам в помойку сразу, не надо его никуда переводить.

firkax ★★★★★
()
Ответ на: комментарий от Xintrea

Доделай сам =) (это просто пример)

Перевод файла по предложению, до ближайшей точки берётся блок и до победного.

lua autotrans.lua input.txt output.txt
local help =
[[
Usage:  autotrans input.txt output.txt
]]

local input  = arg[1]
local output = arg[2]

if not input or not output then
   print(help)
   os.exit(1)
end

input  = io.open(input, 'r')
output = io.open(output,'w')

if not input then
   print('Failed open for read',arg[1])
   os.exit(2)
end

if not input then
   print('Failed open for write',arg[2])
   os.exit(3)
end

input = input:read('*a')

function shell_escape(text)
    return "' " .. text:gsub("'", "'\\''") .. " '"
end

for block in input:gmatch('[^%.]+') do
    exec = io.popen("trans   en:ru  -b "..shell_escape(block))
    local result = exec:read('*a')
    output:write(result)
    print(block)
    print('-------------------------------------------------')
    print(result)
    print('-------------------------------------------------')
end

Пример ввода

 Literal strings can be delimited by matching single or double quotes, and can contain the following C-like escape sequences: '\a' (bell), '\b' (backspace), '\f' (form feed), '\n' (newline), '\r' (carriage return), '\t' (horizontal tab), '\v' (vertical tab), '\\' (backslash), '\"' (quotation mark [double quote]), and '\'' (apostrophe [single quote]). Moreover, a backslash followed by a real newline results in a newline in the string. A character in a string can also be specified by its numerical value using the escape sequence \ddd, where ddd is a sequence of up to three decimal digits. (Note that if a numerical escape is to be followed by a digit, it must be expressed using exactly three digits.) Strings in Lua can contain any 8-bit value, including embedded zeros, which can be specified as '\0'.

Literal strings can also be defined using a long format enclosed by long brackets. We define an opening long bracket of level n as an opening square bracket followed by n equal signs followed by another opening square bracket. So, an opening long bracket of level 0 is written as [[, an opening long bracket of level 1 is written as [=[, and so on. A closing long bracket is defined similarly; for instance, a closing long bracket of level 4 is written as ]====]. A long string starts with an opening long bracket of any level and ends at the first closing long bracket of the same level. Literals in this bracketed form can run for several lines, do not interpret any escape sequences, and ignore long brackets of any other level. They can contain anything except a closing bracket of the proper level.

For convenience, when the opening long bracket is immediately followed by a newline, the newline is not included in the string. As an example, in a system using ASCII (in which 'a' is coded as 97, newline is coded as 10, and '1' is coded as 49), the five literal strings below denote the same string:

     a = 'alo\n123"'
     a = "alo\n123\""
     a = '\97lo\10\04923"'
     a = [[alo
     123"]]
     a = [==[
     alo
     123"]==]

A numerical constant can be written with an optional decimal part and an optional decimal exponent. Lua also accepts integer hexadecimal constants, by prefixing them with 0x. Examples of valid numerical constants are

     3   3.0   3.1416   314.16e-2   0.31416E1   0xff   0x56

Вывод

Строки-литералы могут быть разделены сопоставлением одинарных или двойных кавычек и могут содержать следующие escape-последовательности в стиле C: ' ' (колокольчик), ' ' (возврат), ' ' (перевод страницы), '
' (новая строка), '
' (возврат каретки), ' ' (горизонтальная табуляция), ' ' (вертикальная табуляция), '\' (обратная косая черта), '\"' (кавычка [двойная кавычка]) и '\'' (апостроф [одинарная кавычка] ])
Более того, обратная косая черта, за которой следует настоящая новая строка, приводит к появлению новой строки в строке.
Символ в строке также можно указать по его числовому значению с помощью escape-последовательности \ddd, где ddd — это последовательность, содержащая до трех десятичных цифр.
(Обратите внимание, что если за числовым escape-символом должна следовать цифра, она должна быть выражена ровно тремя цифрами.
) Строки в Lua могут содержать любое 8-битное значение, включая встроенные нули, которые можно указать как ' '
Литеральные строки также могут быть определены с использованием длинного формата, заключенного в длинные скобки.
Мы определяем открывающую длинную скобку уровня n как открывающую квадратную скобку, за которой следуют n знаков равенства, за которыми следует еще одна открывающая квадратная скобка.
Итак, открывающая длинная скобка уровня 0 записывается как [[, открывающая длинная скобка уровня 1 записывается как [=[, и так далее.
Закрывающая длинная скобка определяется аналогично; например, закрывающая длинная скобка уровня 4 записывается как ]====]
Длинная строка начинается с открывающей длинной скобки любого уровня и заканчивается на первой закрывающей длинной скобке того же уровня.
Литералы в этой форме в квадратных скобках могут занимать несколько строк, не интерпретировать escape-последовательности и игнорировать длинные скобки любого другого уровня.
Они могут содержать что угодно, кроме закрывающей скобки нужного уровня.
Для удобства, когда за открывающей длинной скобкой сразу следует новая строка, новая строка не включается в строку.
Например, в системе, использующей ASCII (в которой «a» кодируется как 97, новая строка кодируется как 10, а «1» кодируется как 49), пять литеральных строк ниже обозначают одну и ту же строку:

     а = 'ало
123 дюйма
     а = "ало
123""
     а = '\97lo 923"'
     а = [[ало
     123 дюйма]]
     а = [==[
     ало
     123 дюйма]==]

Числовая константа может быть записана с необязательной десятичной частью и необязательным десятичным показателем.
Lua также принимает целочисленные шестнадцатеричные константы, добавляя к ним префикс 0x.
Примеры допустимых числовых констант:

     3 3
0 3
1416 314
16e-2 0
31416E1 0xff 0x56

Огрехи неизбежны, нужно потом лоб в лоб сравнивать и рихтовать. И в целом так себе…

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 4)
Ответ на: комментарий от quickquest

PerevodSpell © – не проверял, но они утверждают, что без ограничений.

Конечно же, врут.

Результат онлайн перевода
Слишком большой текст...

Xintrea ★★★★★
() автор топика

Есть Deepl, MyMemory, IBM Watson. Ограничения на бесплатных планах есть везде, но через первый я когда-то прогонял Docx на сотни страниц, а он мне отдавал нередактируемый Docx. Как из него достать plain text, разберёшься сам, тыжепрограммист. У второго довольно жёсткие дневные лимиты. Третий, вроде как, Межделмаш похоронил. То есть, ключ доступа у меня до сих пор работает, но я не уверен, что можно создать новый.

Vidrele ★★★
()

Я у себя автоматизировал процесс перевода с помощью примерно 50 строк кода на Python, BeautifulSoup, Firefox webdriver и Deepl.

И это всё бесплатно без СМС.

gruy ★★★★★
()

автосгенерированный

Сгенерируй сразу на русском

buddhist ★★★★★
()

автосгенерированный текст на 150 000 символов

Интересно, а читать этот текст тоже нейросеть будет? Это то самое будущее, которого мы все ждали?

knovich
()

15 заходов по 10 тыс?

grem ★★★★★
()

Разбей по абзацам и отправляй частями.

Rodegast ★★★★★
()
Ответ на: комментарий от knovich

Ну так и отлично.

Один генератор генерирует текст. Автоматический переводчик его переводит. Нейросесть делает выжимку, а другая рисует иллюстрации. А скрипт на питоне добавляет всё это в базу для обучения новой нейросети. Замкнутая экосистема получается. А человек в это время везёт термосумку из бургер кинга заказчику. «Вкалывают роботы — счастлив человек».

Smacker ★★★★★
()
Ответ на: комментарий от Xintrea

Самое главное, чтобы перевод был строка-в-строку, чтобы не появилось новых строк и не удалилось существующих.

С этим как раз проблемы у гугл-переводчика. Он может потерять полабзаца. Такое редко бывает, но регулярно.

rechnick ★★★
()

как тебе такой вариант сделать текст сайтом, а его (сайт) перевести гуглом или яндексом?

s-warus ★★★
()
Ответ на: комментарий от s-warus

Это хороший вариант и я его проверил.

Гугол выдает ~25 000 строк, но переведены в них только ~3 500, остальное остается на английском.

У Яндекса, такое впечатление, что переводится только тот кусок который виден в браузере. Перевод заканчивается на 150-й строке. Остальное остается на английском. Видимо сделан какой-то динамический перевод, сплошной JavaScript. Прокрутка вешает браузер.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Гугол выдает ~25 000 строк, но переведены в них только ~3 500, остальное остается на английском

Там сайт переводится только по кускам что видно в браузере как и у яндекса. Попробовать надо перезагрузить страницу и чекнуть. Если не получится, то возможно что-то блочит отправку текста, и попробовать чекнуть с VPN.

vbcnthfkmnth123 ★★★★★
()

Имеется автосгенерированный текст

Просто автосгенерируй то же самое на русском.

ya-betmen ★★★★★
()

Сюда кусками по 20т символов можно Ж) https://t.me/kun4sun_bot

У gpt-4o-mini размер ответа до 60т русских символов, я пробовал это реально работает и стоит очень дешево. Войну и мир можно перевести меньше чем за 1 доллар и 10 запросов.

theurs ★★
()
Ответ на: комментарий от theurs

Кстати. Можно командой trans (apt install translate-shell) переводить большие файлы

trans --no-ansi --brief :en < in.txt > out.txt

theurs ★★
()

Конвертировать локально в html, перевести браузером? Можно и ff, там встроенный локальный перевод вроде работает

One ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)