LINUX.ORG.RU

Сам об этом думал одно время, но, по-моему, нет.

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

Это что ж велосипед придется пилить?

Это будет целый локомотив. Тебе ведь придётся придумать какой-то плановый язык, может быть, на основе английского, написать для него формальную грамматику и интерпретатор, словарь составить... или ты придумал, как к этому проще подойти?

proud_anon ★★★★★
()

Правил слишком много, языки очень не похожи друг на друга. Если бы на эту тему было создано что-то нормальное, то «Переводчик Google» не смешил бы нас забавными переводами.

peregrine ★★★★★
()

Если я правильно понял вопрос, то кажется ABBYY занимаются чем-то подобным (им вроде бы несколько лет назад даже правительство денег отсыпало на это). Но там работает мощный коллектив специалистов и уже не один год.

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

Если бы на эту тему было создано что-то нормальное, то «Переводчик Google» не смешил бы нас забавными переводами.

Так ведь ТС не занимается машинным переводом в обычном смысле. Ему не надо переводить произвольные тексты. Ему надо переводить тексты, написанные специально обученным человеком на специально сконструированном языке, если я его правильно понял.

Это можно себе теоретически представить, но практических реализаций я не знаю. Для людей, конечно, разрабатываются всякие Simple English, языки для технических мануалов и так далее, но чтобы их компьютер мог точно переводить...

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

Представить это можно, конечно. Но если бы была возможность внятно представить этот специальный язык в виде языка, годящегося на перевод на любой язык, то и обратную процедуру было бы сделать примерно так же сложно (правда чуть посложнее, но не суть). Таким образом тот же переводчик гугл переводил бы сначала на этот язык, потом с него. Кстати, для русско-китайского перевода раньше он, вроде, перегонял сначала на английский. Таким образом, раз он перегонял текст на английский, значит внутри он работает с английским, если нет возможности перевода «напрямую», а если бы такой язык был создан, то гугл переводчик, скорее работал бы с ним.

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

А разве ТС имеет ввиду именно перевод? Мне показалось имеется ввиду нечто вроде библиотеки почти табличного соответствия. Интерфейс программ, ограничен большим но вполне конечным и отнюдь не огромным набором языковых конструкций. Ну например «Сохранить», «Сохранить файл», «Открыть», «Осталось N секунд|байт|депутатов» и т.п.

Для языка интерфейсов навреное можно бы было запилить нечто подобное. Вот уж кстати был бы unix-way. А запилив грамотно, можно бы было сделать возможность расширения библиотеки файлами которые тащили бы с собой разные программы.

Не?

Suntechnic ★★★★★
()

Можно что-то подобное на ложбане сделать, но нужно вводить дополнительные ограничения на грамматику. Например, будет ложбан, стилизованный под русскую грамматику, ложбан стилизованный под японскую грамматику. Из ложбанского выражения выводим соответствующие ему в стилизованных грамматиках, а затем уже получаем вполне однозначный перевод.

ieeya
()
Ответ на: комментарий от Suntechnic

А вообще такую штуку не плохо бы иметь в виде системной службы. Простейшая прога разбирающая простую машинную грамматику и формирующая в ответ фразы на естественных языках. Простейший интерфейс взаимоедействия - получаем список конструкций, отвечаем списком переводов на естественном языке системы. Машинный язык может вообще быть только письменным получая все инструменты форматирования и служебные печатные символы. Чем идея плоха?

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

Но если бы была возможность внятно представить этот специальный язык в виде языка, годящегося на перевод на любой язык, то и обратную процедуру было бы сделать примерно так же сложно (правда чуть посложнее, но не суть).

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

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

Интерфейс программ, ограничен большим но вполне конечным и отнюдь не огромным набором языковых конструкций. Ну например «Сохранить», «Сохранить файл», «Открыть», «Осталось N секунд|байт|депутатов» и т.п.

Не уверен.

Во-первых, ведь мануалы тоже надо как-то переводить.

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

В-третьих, если ты прав, то для этого ведь не нужно никаких новых библиотек. Достаточно gettext. Только, возможно, оригинальный интерфейс пришлось бы писать на какой-то особой версии английского или другого языка, чтобы там всё толковалось однозначно вне зависимости от контекста. Однако почеу-то пока никто ничего похожего не сделал. Есть, конечно, банки памяти переводов, но они предназначены для помощи переводчикам, а не для «воткнул в систему — и готово».

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

Во-первых, ведь мануалы тоже надо как-то переводить.

И кинофильмы тоже. Но мы не их обсуждаем.

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

Я не о простом табличном соответствии, а о плановом языке который должен хорошо описывать большинство выражений для оформления интерфейса. Ну и + конечно константы, для случаев на которые язык не рассчитан. Программы могли бы таскать новые определения с собой или коммитить в базу службы.

для этого ведь не нужно никаких новых библиотек. Достаточно gettext.

gettex не использует никакого языка, а юзает обычный английский. Как он переведет Open? А нужен именно язык, в котором можно бы было описать хотя бы что это - глагол, прилагательное, в какой форме, числе, времени.

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

И кинофильмы тоже. Но мы не их обсуждаем.

ТС говорил о локализации. В локализацию, по-хорошему, входит не только перевод руководства пользователя, но и создание местного сообщества, а ты это понятие, наоборот, сузил до одного интерфейса. Ну и что будет делать человек, если программа сложная? Интерфейс переведён, а руководство — нет, что делать — непонятно.

gettex не использует никакого языка, а юзает обычный английский.

Так ведь ничего теоретически не мешает вместо Open писать Open[context: file] (кроме того, что программа без перевода на английский будет выглядеть крайне странно).

proud_anon ★★★★★
()

корректные фразы на естественных языках

если ограничиться десятком близких по происхождению языков, это не так сложно.

если взять десяток наиболее популярных, тоже, в принципе, можно, правда, для этого надо собрать команду лингвистов и заставить их работать пару лет

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

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

В некотором смысле такой язык уже есть: это идеограммы/иконки в пунктах меню, кнопках итд. Можно дать им перевод названия в зыках, и получится самое то.

ieeya
()
Ответ на: комментарий от Suntechnic

Вот, да что-то примерно такое хотелось бы найти...

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

Но хотелось бы ограничится велосипедом (в виду довольно узкой задачи), желательно трёхколёсным. Т.е. иметь небольшие (десятки слов) словари для существительных, глаголов. Для каждого слова иметь набор необходимых свойств (для этого языка) ( грамматический род, формы числительных, ... ).

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

В некотором смысле такой язык уже есть: это идеограммы/иконки в пунктах меню, кнопках итд.

Не годится. Эти иконки чем дальше, тем менее понятны. Вообще трудно передать в виде изображения какое-то абстрактное понятие.

Deleted
()

Существуют ли библиотеки отображающие сентенции описанные с помощью некого синтетического языка в синтаксически корректные фразы на естественных языках?

Думаю, такое можно сделать только для заранее ивестного набора языков. Потому что все особенности смысла текста придется излагать на синтетическом языке с учетом особенностей всех нужных тебе естественных. Представь, написал ты целый «рассказ» на своем «новоязе», и он классно «компилируется» в русский, английский и китайский. Потом окажется, что надо добавить, например, поддержку иврита, ну или просто финского. Придется не только код движка менять, но и все написанные на «новоязе» «рассказы». Потому как каждый новый естественный язык имеет какие-то концепции, отсутствующие в остальных естественных языках.

Deleted
()
Ответ на: комментарий от ieeya

Понятия «сохранить» или «открыть» тебе недостаточно абстрактны?

Ну и какими иконками они нынче отображаются? А десять лет назад?

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

Количество естественных язков на конкретное время вполне себе ограничено.

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

Вот прямо сейчас смотрю и вижу: изображение трехдюймовой дискеты - это «сохранить». Да кто вообще помнит, что это за предмет? Они же из обихода вышли уже лет десять как.

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

И что не так. Из обихода вышли, как символь остались. Идеографицеская письменность всегда такая.

ieeya
()
Ответ на: комментарий от Deleted

Не совсем так.

1) Мне не нужно писать целый рассказ

2) Чтобы добавить новый язык: Придется добавить описание нового языка. Возможно придется добавить словам новые свойства ( которые были не нужны для используемых языков ), однако исходник самого текста вполне может остаться неизменным

mike666
() автор топика

Аффтар, ты по-моему даже не понимаешь, решения какой задачи ты требуешь. Намекну тебе лишь, что впервые эту задачу сформулировали, афаик, в 17-м веке, и продолжают решать до сих пор.

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

С одной стороны да (изначально пытались создать такую агду для человеков), но с другой стороны (по педивикии)

These projects aimed not only to reduce or model grammar, but also to arrange all human knowledge into «characters» or hierarchies.

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

Да это все не то, у всех этих проектов были несколько иные цели. Если мы хотим универсальный язык для GUI, он уже одним этим желанием переводим на любой естественный язык. Всё что нам осталось, это добиться более-менее однозначного перевода в разном контексте.

ieeya
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.