Найти тему
Безумные идеи

Универсальный переводчик c поддержкой эльфийского языка

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

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

Для простоты восприятия, рассмотрим пример:

Уникальный номер : 1

Тип значения : Объект

Смысловое значение: «... женщина зачавшая, выносившая и родившая ребёнка...» - https://ru.wikipedia.org/wiki/Мать

Уникальный номер : 2

Тип значения : Действие

Смысловое значение: «...очищать водою, вообще чистить жидкостью...» - https://ru.wikisource.org/wiki/ТСД2/Мыть

Уникальный номер : 3

Тип значения : Объект

Смысловое значение: «...многоярусная оконная конструкция...» - https://construction_materials.academic.ru/6712/Оконная

Уникальный номер : 4

Тип значения : Объект

Смысловое значение: «...верхняя конечность человека...» - https://ru.wikipedia.org/wiki/Рука

Уникальный номер : 5

Тип значения : Свойство объекта

Смысловое значение: «...значительный по величине, размерам...» - https://kartaslov.ru/значение-слова/большой

Теперь представим, что у нас уже есть готовый транслятор для русского языка, который учитывает контекст всего текста и отдельного предложения, устоявшиеся речевые обороты и прочее и прочее. Передаём этому транслятору на вход текст «Мама мыла раму», получая на выходе перевод «1→2→3». Что, имея наш «словарь», довольно легко прочитать на самом высоком уровне абстракции как: «Объект (1) воздействует (2) на объект (3)». Согласитесь, потеря точности, относительно изначального значения предложения велика, но суть передана, верно. Немного более сложный обратный транслятор легко переведёт это в «Мать мыть оконная рама», а это уже вполне информативно. Но не менее просто будет создать и обратный транслятор, например для английского языка, который преобразует нам этот «цифровой код» в «Mother to wash the window frame».

А теперь немного усложним, и транслируем такое предложение - «Мама мыла большую раму руками». Результат может выглядеть, например, так: «1→2(4)→3(5))». Думаю, вы уже догадались до предложенной логики: «Объект (1) воздействует (2 с использованием Объект (4)) на Объект (3 со свойством (5))». Что при примитивной обратной трансляции даст: «Мать мыть рукой большой оконная рама».

Подобная модель может быть хороша для восприятия идеи (концепции), но, безусловно, неприемлема для реального использования. Такая потеря точности слишком сильно «округляет» картину. Что бы подобная трансляция имела смысл, необходимо усложнить «цифровой код», добавив в него хотя бы число и время. Пускай, единственное число будет 0, а множественное 1. А время обозначается так:

Время:

0 - Настоящее время

1 - Прошедшее время

2 - Будущее время

Тип действия:

0 - Неопределённое (простое) действие

1 - Длительное (продолженное) действие

2 - Завершённое (совершённое) действие

3 - Длительно-завершённое действие

На базе 12-ти «времён» в английском языке.

И вернёмся к нашему первому примеру («Мама мыла раму»). Теперь наш код будет выглядеть так - «1/0→2/1/1→3/0». Что следует читать как - «Объект (1 в ед. числе) воздействует (2 в прошедшем продолженном времени) на Объект (3 в ед. числе)». Так же будем считать, что обратный транслятор на русский, умеет учитывать род и падеж, а также учитывает время. Тогда обратно мы получим «Мать мыла оконную раму». А если мы изменим наш код на «1/0→2/2/2→3/1», то получим - «Мать помоет рамы». Потеря точности опять есть, но в данном случае, такая погрешность нас устроит.

В результате, мы получаем три основные составные части системы:

1. Нумерованный набор смысловых значений.

2. Набор трансляторов текстов(в т.ч. для разных языков) в «код».

3. Набор трансляторов «кода» в текст (обратных трансляторов).

Пункт 3 — задача наиболее простая, которая легко реализуется, при наличии списка из п. 1.

Пункт 2 — задача нетривиальная, которую, на данный момент, сколько-то успешно решили лишь несколько организаций в мире (каждый решил как-то по-своему).

Пункт 1 — задача глобальная, требующая ресурсов и серьёзной организации. Я бы назвал её невыполнимой, если бы не существовало успешных примеров, таких как «Википедия».

Вы спросите - «Зачем это всё вообще нужно, когда гугль-транслейт и яндекс-транслейт и так переводят с приемлемой точностью?». Отвечу - «Переводят, но смотря, о каких языках, идёт речь. На эльфийский ни один из них точно не переведёт». Создание же и стандартизация подобного словаря (например, ISO или RFC) позволит подключиться к созданию трансляторов огромному количеству любителей, часто владеющих только одним языком, носителем которого они и являются, которые смогут предложить множество собственных идей и алгоритмов прямой и обратной трансляции. Это можно сравнить с процессом компиляции и декомпиляции программного кода в инструкции процессора, что позволяет создавать бесконечное множество языков программирования с собственными компиляторами и трансляторами. А в данном случае, такая платформа позволит создавать искусственные языки общения, со своими словами и своими правилами. И это будет работать, даже если вы пишете язык эльфов. При должном развитии, транслированный текст можно будет «декомпилировать» в комикс или мультик. Сохранённый «смысловой код» можно будет выдать не только на определённом языке, но и на отдельном диалекте или даже прочитать «Ромео и Джульетту», например, на «фене» (кто помнит х/ф «Джентльмены удачи») или «Русско-матерной интерпретации». Системы распознавания чего-либо графического смогу записывать, а затем и озвучивать то, что распознали - «...красный автомобиль движется по встречной полосе, подрезает жёлтый грузовик, движется прямо в столб...». Да, Уильям Шекспир, вряд ли одобрил бы перевод своего творения на иностранные языки таким вот «смысловым» способом «с погрешностью», но представьте, насколько бы более точными и адекватными стали бесконечные инструкции к программам, бытовой технике и описания товаров в интернет-магазинах, если бы они были записаны не на языке оригинала с машинным переводом, а в формате подобного «кода». Возможно, изысканное описание - «Только приобретая наш товар, вы потратите деньги с чувством глубокого удовлетворения и захотите попробовать ещё раз», превратившееся после компиляции/декомпиляции в «Только в случае покупки наших изделий, вы испытаете удовольствие от расхода денежных средств...» и не передаст всех витиеватостей слога, но определённо будет проще и информативней чем то, что есть сейчас:

https://sun9-3.userapi.com/c627118/v627118964/21498/BgQtwOx1y1o.jpg

https://www.publy.ru/wp-content/uploads/2018/06/post_5b2b21d751fba-620x307.jpeg

https://www.publy.ru/wp-content/uploads/2018/06/post_5b2b21d072c91-620x416.jpeg

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

Также подобная схема имеет потенциал применения и в другом направлении, о котором я напишу отдельную статью.

З.Ы. Автор никогда не занимался машинным переводом и не является специалистом в данной области, но с удовольствием услышит ваше мнение. Просто интересно.