Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Давайте. Переводчик. Моно.

Автор Алексей Гринь, мая 7, 2010, 19:03

0 Пользователи и 1 гость просматривают эту тему.

Алексей Гринь

Какую грамматику—представление использовать?
肏! Τίς πέπορδε;

Demetrius

 :-[
Цитата: Алексей Гринь от мая 19, 2010, 03:56
Цитата: Demetrius от мая 10, 2010, 14:13
Правда, я всё равно слабюо представляю, что делать со всеми этими падежами. Некоторые из них очень даже дублируют друг друга.
Например?
Банальный пример: Postessive, Genitive.

Вот ещё: Instrumental (using a phone), Instructive (by [means of] phone), Prolative (by [the way of] phone), Vialis (by [the way of] phone; Википедия говорит, что Prolative и Vialis — одно и то же, в разных языках), InstrumentalComitative (using a phone).

IMHO проще сделать свой набор падежей. Типа CaseFrom, CaseTo. Падежей почти всегда мало, поэтому у них очень размытое значение. С предлогами легче, хотя и они многозначны.

Кроме того, некоторые будут применимы не во всех случаях. Например, «на Украине» — это Adessive или Inessive? ;)

Offtop
Цитата: Алексей Гринь от мая 27, 2010, 05:17
Причём он такой интересный, не рассматривает китайское 三 как число. Не знаю, может, так прописано в Уникоде...
:o
Что-то тут не то.

Цитата: Алексей Гринь от мая 27, 2010, 06:07
Какую грамматику—представление использовать?
А какие бывают? :-[

RawonaM

Что-то меня терзают сомнения в подходе, ваще не с того края :) Однако в качестве эксперимента...
Я готов взять на себя какой-нибудь модуль, если что. По планам летом у меня должно быть времени выше крыши, но планы у меня меняются чуть быстрее, чем появляются...  :green:

myst

Цитата: RawonaM от мая 27, 2010, 16:17
Что-то меня терзают сомнения в подходе, ваще не с того края :)
По-моему, тоже...

Алексей Гринь

Цитата: RawonaM от мая 27, 2010, 16:17
ваще не с того края
Цитата: myst от мая 27, 2010, 16:41
По-моему, тоже...
Скажите уже, что это значит? :\

Во-первыха, не хочется углубляться в академику и бессмысленные теории.
Во-вторыха, подход упрощённо такой: модуль первого языка парсит текст в дерево, которое состоит из verb phrases, noun phrases и всего такого. Далее модуль второго языка пробегается по сгенеренному дереву и генерит текст. Что не так?

Программа = данные + алгоритм. Мисту усё не терпится алгоритм, а я пока думаю, как зафигачить данные. Тута ведь трабла в универсальности, нужно всё продумать так, чтобы большинство возможных языков легко вкрутилось. C# язык не функциональный, а ООП, поэтому тут нельзя думать об обобщённых алгоритмах, сперва не продумав обобщённые данные.

Цитата: Demetrius от мая 27, 2010, 16:10
Вот ещё: Instrumental (using a phone), Instructive (by [means of] phone), Prolative (by [the way of] phone), Vialis (by [the way of] phone; Википедия говорит, что Prolative и Vialis — одно и то же, в разных языках), InstrumentalComitative (using a phone).
Цитата: Demetrius от мая 27, 2010, 16:10
Типа CaseFrom, CaseTo.
В моей терминологии это NarrowCase и WidenCase :)
Синтаксическое дерево, которое должно передаваться из языкового модуля в модуль, всегда оперирует широкими падежами.

Допустим, есть финское talossa, это дом-ИНЕССИВ. Допустим, что ИНЕССИВ - это верх конкретики (т.е. широкий падеж), и оно так же и передаётся в синтаксическое дерево. В русском модуле должна быть таблица, которая сопоставляет широкие падежи со средствами русского языка (факультативный предлог + существительное * узкий падеж). Т.е., в русском языке инессив это "в + сущ. * PREP" (если для сущ. не указано иное). В контексте русского языка PREP является узким падежом, т.е. его назначение и смысл не являются сверхконкретизированными, он используется здесь только в контексте определённого языка, морфологически.

Сопоставление зависит конечно ещё от собственных характеристик существительного. Например, инессив для хаты был бы не в «в хате», а «на хате». Такая overriding-информация должна быть прописана в словаре.

Я пока не очень знаю, существует ли понятие "глагольное управление" на уровне универсального синтаксического дерева.
Мысля у меня такая, что verb phrase это собсно сам глагол + набор noun phrases с разными модификаторами (широкими "падежами" (которые могут раскрутиться в предлоги без узких падежей, в узкие падежи, предлоги с узкими падежами или в послелоги, допустим), широкими артиклями и т. д.). Так вот, если у глагола есть столько информации, то понятие глагольного управления, наверное, должно отсутствовать как атавизм узкопадежных языков?

Т.е., в русском допустим, «видеть» требует винительного падежа.
В универсальном же словаре «видеть» ничего не требует.
При переводе в универсальный «я вижу Маню» переводится как «видеть-(...) я-номинатив Маня-аккузатив». Мне не хочется вводить лишние сущности, поэтому всякие агенсы, эргативы — все должны маппиться на простые (семантические) номинативы/аккузативы.
Далее, в целевом языке идёт матчинг на глагол «видеть», который бы допускал при себе семантические аккузатив и номинатив. В английском это находится see. Далее падежи сужаются, ла-ла-ла, и получаем I see you.

Вот такая вот бредня.

Цитата: Demetrius от мая 27, 2010, 16:10
Вот ещё: Instrumental (using a phone), Instructive (by [means of] phone), Prolative (by [the way of] phone), Vialis (by [the way of] phone; Википедия говорит, что Prolative и Vialis — одно и то же, в разных языках), InstrumentalComitative (using a phone).
В таких случаях модуль для языка должен определять контекст.
1) Найти глагол и подсмотреть его управление. Может быть, by есть часть контракта с глаголом, тогда широкий падеж определяется просто по словарю.
2) В некоторых языках придётся делать hardcoded-сопоставление контекста.
3) Если ничего не удаётся, нужно fall back to most used, most generic wide case. Т.е. в этом случае, наверное, Instrumental (в случае с инессивом это был бы Locative).

Цитата: Demetrius от мая 27, 2010, 16:10
Например, «на Украине» — это Adessive или Inessive? ;)
«На Украине» это широкий инессив, но узкий адессив :) Информация об употреблении Украины с «на» должна храниться в словаре.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от мая 27, 2010, 17:53
Во-первыха, не хочется углубляться в академику и бессмысленные теории.
Есть же разработанные решения. Зачем велосипедить?
Учёные мужи плотно над этим работают, их всё равно не переплюнуть. Лучше воспользоваться их наработками.

Алексей Гринь

Как бы всякие Хаскели и Лиспы тоже идут из академий, но на них ничего полезного простому человеку не написано и не пишется. Лучше, имхо, думать в практически полезных категориях, чем пытаться скрестить грамматику с лямбда-исчислением (допустим), с комбинаторикой какой-нибудь или ещё каким бредом. Теория и практика разные вещи, точка.
肏! Τίς πέπορδε;

myst

Цитата: Алексей Гринь от мая 27, 2010, 17:53
Далее модуль второго языка пробегается по сгенеренному дереву и генерит текст. Что не так?
Я выше давал подвернувшуюся ссылку, она как раз намекает, что не всё так просто. А это только капля в море научной дискуссии по этому поводу.

myst

Цитата: Алексей Гринь от мая 27, 2010, 18:02
Теория и практика разные вещи, точка.
Что может быть практичнее хорошей теории?

Цитата: Алексей Гринь от мая 27, 2010, 18:02
Как бы всякие Хаскели и Лиспы тоже идут из академий, но на них ничего полезного простому человеку не написано и не пишется.
Всё-то ты знаешь. :negozhe:

Алексей Гринь

Я как-то давно делал переводчик с русского на эсперанто, всё прекрасно работало без всяких теорий :\
肏! Τίς πέπορδε;

Demetrius

Идея понятна. Но что-то мне всё это кажется подозрительным... Мне почему-то кажется, что надо разобраться с тем, что такое широкие падежи. Описать функцию каждого. Потому что такой функции «в чистом виде» ни в одном языке Вы не найдёте.

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

Например, будет ли в классе существительных притяжательность, или будет «сандыкым» — «я-посессив сундук-номинатив»? А если будет, то будет ли она в широком смысле? «Сундук-наш-но-не-твой» будет? Есть ли такое в ЕЯ?

Где гарантия, что мы учтём все категории? И может статься, что некоторые категории будут совершенно бесполезны: так, не будет тюрских модулей, а системе всё равно придётся переводить «мой сундук» в «мой-посессив сундук-1ед.притяж.» И где гарантия, что это будет не бесполезный расход памяти?

Demetrius

Offtop

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

Да, я фрик.

RawonaM

Цитата: Алексей Гринь от мая 27, 2010, 18:05
Я как-то давно делал переводчик с русского на эсперанто, всё прекрасно работало без всяких теорий :\
И где же он? :) Чего ж мы тогда заново все начинаем? :)

Алексей Гринь

Цитата: RawonaM от мая 27, 2010, 20:40
Чего ж мы тогда заново все начинаем? :)
Не заново вовсе, там перевод был захардкожен именно на русский <-> эсперанто, структура какбэ нерасширяемая.

Цитата: Demetrius от мая 27, 2010, 18:52
Только вот что-то у меня подозрение, что структура будет недостаточно гибкой. Падежи заранее забиты в существительное, а какие-нибудь другие классы — нет.
М-м-м. Гибкость тут ни при чём. То, что вы предлагаете - это синтаксический сахар. Т.е. как бы с ним приятнее, но обойтись можно легко. «сундук(я-поссессив)» это абсолютно то же самое.

Цитата: Demetrius от мая 27, 2010, 18:52
Например, будет ли в классе существительных притяжательность, или будет «сандыкым» — «я-посессив сундук-номинатив»? А если будет, то будет ли она в широком смысле? «Сундук-наш-но-не-твой» будет? Есть ли такое в ЕЯ?
Я думаю, тут надо разделять по функции.
1) По функции перевода. Мы должны уметь строить обобщённое, универсальное синтаксическое дерево, которое бы мог без труда читать любой модуль. Существительные + падежи-модификаторы (если пугает слово «падежи», можно думать о них как о «модификаторах») — это такая примитивная абстракция, к которой можно свести любую идею подобного вида. То есть смысл универсального дерева в том, чтобы уметь свести любую мысль к промежуточному построению, а потом распаковать промежуточную структуру обратно в мысль, но уже на другом языке. В этом плане притяжательность совершенно не нужна, здесь всё реализуется через NounPhrase («сундук(я-поссессив)»). Не стоит впихивать в корневые классы всё подряд. Можно например даже на уровне синтакс. дерева вообще отключить понятие «местоимения», ибо они реализуемы существительными легко. В общем, на этом уровне важно не описать, а перевести.
2) По функции «игры» с самим конкретным языком. Вот здесь никто не мешает сделать подкласс UzbekNoun, в который можно было бы вкрутить и притяжательность, и блекджеком со шл. Модуль во время перевода внутренне работает с притяжательностью — никто не мешает, но будь добр, при переводе мысли в «общественное достояние» избавься от всей этой «мишуры» (я бы назвал этот процесс языковым маршалингом). Не будем же мы из-за одного какого-нибудь вшивого конланга перелопачивать всю иерархию... На этом уровнее важнее описать, чем перевести.

Единственно, что падежи энумами не есть расширяемо. Но иначе нельзя, без чёткого понимания конечного числа модификаторов модули просто не смогут общаться друг с другом... Т.е. если язык А на публичный уровень введёт новый падеж  Пердитив (или ещё какой вид модификатора), то язык Б, читая дерево, не сможет определить смысл этого падежа, этого Пердитива — и попробуй машине объясни!

Поэтому нужно чётко определить минимально нужное число падежей, а более тонкие мысли выражать следует, комбинируя их (из + за = из-за), т.е. существительное просто может иметь на себя более чем один падеж в таких особых случаях.

Цитата: Demetrius от мая 27, 2010, 18:52
И где гарантия, что это будет не бесполезный расход памяти?
Я бы об этом думал в последнюю очередь.
肏! Τίς πέπορδε;

Алексей Гринь

Цитата: Demetrius от мая 27, 2010, 18:55
Потом, когда мы сделаем девятьсот девяносто девять языковых модулей, можно будет писать текст прямо во внутреннем представлении... Это будет сложно, нужно будет по словарю выбирать значение каждого слова, разрешать полисемию вручную, зато в конце можно будет получить довольно грамматный текст на тысяче языков.
Вот, кстати, проблемко со словарём. Словарь должен содержать два вида гнёзд: 1) сверхконкретизированные (старый-заброшенный-дом-с-приведением) 2) обобщённые (дом вообще).

Сверхконкретизированные нужно по идее хранить как сериализованные ветви синтакс. дерева, для случаев когда в языке для опр. термина — опа! — лакуна (или когда словарь тупо неполон).
Т.е. допустим, roommate будет описано как «сосед(комната-КАКОЙ-ТАМ-ПАДЕЖ)», тогда в русском будем иметь "сосед по комнате", а в языке кукарача даже если слово и есть, а просто в кукарачевском словаре отсутствует, то всё равно переводчик сослужит службу и выведет хотя бы "сосед по комнате", вместо "извините, не смог перевести".

Второй случай (дом вообще) — когда конкретизировать нельзя, ведём себя как обычный тупой переводчик.

Правильно мыслю?

p.s. У меня ещё мысль по контекстам. Каждое слово должно помечаться в словаре набором категорий (напр. "рука" и "нога" это "часть тела"). Когда переводчик анализирует слово, он выбирает тот перевод, чей контекст ближе к контексту близлежащих слов. Т.е. если где-то рядом говорилось про рыцарей, то скорей всего под "луком" имелось в виду оружие, а не растение... Здесь нужно хорошо соптимизировать, что-то насчёт глубины поиска (ибо категории могут иметь надкатегории, в рекурсию уйдёшь), как в шахматах...
肏! Τίς πέπορδε;

RawonaM

Цитата: Алексей Гринь от мая 28, 2010, 00:28
ЦитироватьЧего ж мы тогда заново все начинаем? :)
Не заново вовсе, там перевод был захардкожен именно на русский <-> эсперанто, структура какбэ нерасширяемая.
Так где он таки? Можно почитать примеры переводов?

arseniiv

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

Кстати, как дела с эллипсисом и подобными штуками? Будет ли сообразен перевод фразы «Давайте. Переводчик. Моно» переводу «Давайте переводчик моно»?

Алексей Гринь

Цитата: arseniiv от мая 29, 2010, 19:02
Кстати, как дела с эллипсисом и подобными штуками? Будет ли сообразен перевод фразы «Давайте. Переводчик. Моно» переводу «Давайте переводчик моно»?
тут такой уровень что для 100%-правильного перевода нужен полноценный искусственный интеллект, тут уж извините
肏! Τίς πέπορδε;

Bhudh

Цитата: Алексей Гриньинессив для хаты был бы не в «в хате», а «на хате».
А регистры тоже различать треба.
Ибо «на хате» это блатной сленг.

Цитата: Алексей ГриньТ.е., в русском допустим, «видеть» требует винительного падежа.
В универсальном же словаре «видеть» ничего не требует.
При переводе в универсальный «я вижу Маню» переводится как «видеть-(...) я-номинатив Маня-аккузатив». Мне не хочется вводить лишние сущности, поэтому всякие агенсы, эргативы — все должны маппиться на простые (семантические) номинативы/аккузативы.
Далее, в целевом языке идёт матчинг на глагол «видеть», который бы допускал при себе семантические аккузатив и номинатив. В английском это находится see.
А как различать русские «я вижу Маню» и «вижу Маню»? И переводить сие на English?
Прописыванием обязательных частей предложения?
Я тут проверил в гугляторе, так он I во втором ставит.
(А вот стал проверять не только Indicative Mood, тут-то он и скис:
Цитата: ОригиналВидел бы лес.
Видел бы это лес.
Цитата: ResultShould have seen the forest.
Should have seen a forest.
)

Цитата: Алексей Гринь(старый-заброшенный-дом-с-приведением)
Offtop
В смысле (старый-заброшенный-дом-с-приведением-к-...?...)?

Цитата: Алексей Гриньp.s. У меня ещё мысль по контекстам. Каждое слово должно помечаться в словаре набором категорий (напр. "рука" и "нога" это "часть тела"). Когда переводчик анализирует слово, он выбирает тот перевод, чей контекст ближе к контексту близлежащих слов. Т.е. если где-то рядом говорилось про рыцарей, то скорей всего под "луком" имелось в виду оружие, а не растение...
«Рыцарь кинул лук на луку седла, достал из кармана лук и стал смачно его жевать.»
Может, тогда уж сразу семантические деревья разворачивать?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Алексей Гринь

Цитата: Bhudh от мая 30, 2010, 02:48
Ибо «на хате» это блатной сленг.
Да ну?

Цитата: Bhudh от мая 30, 2010, 02:48
А как различать русские «я вижу Маню» и «вижу Маню»? И переводить сие на English?
Прописыванием обязательных частей предложения?
Ничё сложного нет.

Цитата: Bhudh от мая 30, 2010, 02:48
В смысле (старый-заброшенный-дом-с-приведением-к-...?...)?
?

Цитата: Bhudh от мая 30, 2010, 02:48
«Рыцарь кинул лук на луку седла, достал из кармана лук и стал смачно его жевать.»
Искусственный, нереальный пример.

Цитата: Bhudh от мая 30, 2010, 02:48
Может, тогда уж сразу семантические деревья разворачивать?
?
肏! Τίς πέπορδε;

Bhudh

Цитата: Алексей ГриньДа ну?
Лично я (носитель русского языка) никогда не скажу «Сижу на настоящей деревенской хате», если только действительно на крышу не залез.

Цитата: Алексей Гринь?
Ай-я-яй, «одеть» и «надеть», значит, нельзя путать, а «привидение» и «приведение» можно? :negozhe:

Цитата: Алексей ГриньИскусственный, нереальный пример.
А в учебниках мало искусственных примеров? Или всё Ваш транслейтор переводить не обязан? А уж распозиционировали-то его уже!‥

Цитата: Алексей Гринь?
То бишь не (только) жёсткие категории с элементами, а ещё и возможные смысловые корреляции типа «лук∈[овощ] <=> жевать» «лук∈[оружие] <≠> жевать» (символы <=> и <≠> означают вероятность/невероятность), поскольку корреляция «овощ <=> жевать» прописана в свойствах категории [овощ] (а также в категориях [фрукт], [мясо] и надкатегории [пища]).
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

arseniiv

Кстати, вот так делить слова на категории (но на мнооого вложенных, в целую иерархию), то есть раскладывать по понятиям (они ведь вполне могут быть вложенными; как там они называются, уже не помню; в эту же схему можно втолкнуть антонимы, синонимы, омонимы), может быть удобным — будет полная классификация слов языков для каждого модуля и слов метаязыка. Если в языке нет слова для «бабочки-капустницы», то отображённое в метаязык понятие «бабочка/капустная» переведётся как «бабочка» или «капустная бабочка». Так же можно будет при наличии терпения преобразовывать простые конструкции типа «light blue» в «голубой». Такая группировка слов притом естественна при работе человека с языком, что повысит натуральность перевода. Как?

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

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

myst


arseniiv

Цитата: Bhudh от мая 30, 2010, 12:07
Так SMF для того и создана.
Цитата: Bhudh от мая 30, 2010, 12:07
SMF
??? :o (Или это омоним?)

Offtop
С очередным возвращением, кстати!

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр