Мета-язык
Мне интересен такой вопрос: возможно ли создать мета-язык, который было бы удобно автоматически переводить в естественные языки?
Просто сейчас, насколько мне известно, системы автоматического перевода устроены из 2 частей: система анализа текста на естественном языке, дающая на выходе некоторую структуру данных, и система генерации текста на другом естественном языке, которая использует структуру данных, полученную в первой части.
Т.е. текст -1> структура данных -2> текст.
Было бы интересно обобщить и стандартизировать эту структуру данных для всех языков (создать мета-язык) и сделать её такой, чтобы вторая часть могла работать полностью автоматически.
И вот почему интересно: документ на мета-языке можно посмотреть на любом удобном языке (т.к. переводиться в естественный язык он может полностью автоматически).
Сейчас чаще всего переводят текст те, кому он не понятен на другом языке. Т.е. на все уточняющие вопросы системы автоматического перевода приходится отвечать тем, кто не знает сути текста. В случае если есть такой мета-язык, сторона, которая понимает текст может перевести его в мета-язык, ответить на все уточняющие вопросы и помочь компьютеру правильно понять текст и помочь сгенерировать правильное представление на мета-языке. После чего документ на мета-языке может передаваться куда угодно и публиковаться, и его можно просмотреть на любом удобном естественном языке.
Как выглядела бы бизнес-модель раскрутки такого мета-языка:
1) Компания разрабатывает и стандартизирует мета-язык и встраивает его в какой-нибудь распространенный формат документов, вроде pdf.
2) Пишет программу для просмотра документов на любом языке и распространяет ее бесплатно.
3) Пишет программу для генерации документов на мета-языке, которую продает за деньги.
Любой, кто сталкивается с проблемами перевода на другие языки (например, при бизнес общении с иностранными партнерами) покупают эту программу, так как самим генерировать документы, которые гарантировано смогут прочитать иностранные партнеры - удобно.
Как развитие, систему можно встроить в чаты - удобно при общении с иностранцами в реальном времени. Можно сделать веб-компонент, помогающий на лету генерировать сообщения на мета-языке, и серверную часть - генератор страниц с мета-языка в любой удобный. Как результат - междунароные форумы, каждый участник которого читает и пишет на родном языке, международная википедия (с очень большим количеством страниц) и т.д. Применений много.
Естественно, компания которая первая разработает такой мета-язык и опубликует стандарт (т.е. не станет его закрывать), а наоборот, создаст атмосферу взаимного сотрудничества и развития этого стандарта - надолго (если не навсегда) станет законодателем мод в сфере автоматического перевода =)
Так вот. Насколько реален такой мета-язык?
такие работы идут с 50-х годов, со времен старого-доброго Хомского и иже с ним, а если копнуть еще глубже, то, наверное, с Соссюра, если не раньше. реально таковой принцип (модифицированный правда) уже работает во многих коммерческих переводчиках, например в "промте". в приложении к порождени предложений из некоего массива данных этот подход разрабатывается в рамках NLP (natural language processing, не путать с neuro-linguistic programming 8))
идея мета-структуры, конечно, благая, но не все языки можно вписать в универсальную форму. к тому же мета-стуктура в системах машинного перевода (там такой подход называется interlingua) не всегда оправдана, т.к. игнорирует лексический компонент перевода, посему очень часто приходится пользоваться системой переводческих соотвествий (т.н transfer).
если тебя этот вопрос волнует, и ты хочешь им серьезно заниматься, напиши почту свою, я тебе отправлю книгу на английском, где описано использование такого подхода в системах МП.
моя почта kaval.22.13(собака)gmail.com =) спасибо =)
>реально таковой принцип (модифицированный правда) уже работает во многих коммерческих переводчиках, например в "промте"
Так да, это я понимаю. Идея не в том, как организовать перевод, а в том как распространять переведенные тексты. Я предлагаю переводить в метаязык и так распространять. Т.е. распространять промежуточный результат автоматического перевода. А уже конечный этап перевода производить по требованию.
Если автор текста хочет чтобы его мысль могла быть доступна на любом языке он может переводить автоматически на каждый язык - старательно отвечая переводчику на любой вопрос о двусмысленностях. А может перевести один раз в мета-язык, который уже переведется в любой другой.
Суть в том, что можно в таком случае зашифровать и лексический компонент перевода и любой другой смысл - просто задав больше вопросов автору текста. Первая часть перевода может идти интерактивно непосредственно с человеком, который понимает смысл текста - специально для того, чтобы вторая могла идти автоматически достаточно качественно =)
Помнится мне, что логлан/ложбан именно для этих целей и разрабытвали.
Не для этих целей. На логлане предполагалось говорить, а на мета-языке говорить не нужно =)
ага, Александр, я понял вашу мысль. интересная идея. я кстати вам выслал текст.
но я тут все равно небольшой ликбез проведу, может кто другой с его помощью сможет в дискуссии поучаствовать.
вообщем так: в теории МП есть понятие переводческого движка (engine). Они бывают двух типов: трансформационный и лингвистический. первый работает так, как вы в самом начале говорили - для предложения 1 специальный алгоритм членения (парсер) создает некоторую структуру (точнее результат этой операции сложно назвать структурой, предложение просто делится на некоторые части по типу "слева от глагола подлежащее, справа сказуемое и т.д), которая потом при помощи правил трансформируется в предложение 2. этот подход является очень грубым, так работали некоторые переводчики 80-90 годах, в т.ч. и "промт" в своем начале (тогда он по-моему назывался "prompt"), и дает такая система очень низкое качество. в то время конечно были и другие более серьезные академические разработки, но в коммерческих системах использовался только этот, т.к. мощность ibm386 не могла позволить использование сложных "лингвистических движков", очень прожорливых в плане системных требований.
На смену трансформационным движкам пришли движки нового поколения "лингвистические" (language knowledge engine). точнее не то, чтобы они пришли, они, повторюсь, и раньше были, но использовались лишь в недрах институтов и всяких вычислительных центров, однако как широко используемая технология начали использоваться где-то в середине 90-х. Главным отличием от предыдущих было именно то, что в них тщательно моделировались лингвистические явления, которые должны были повысить качество перевода. И вот тут то возник вопрос - либо строить модели для каждого языка в отдельности и потом проводить между ними трансформационные соответствия, либо смоделировать некую универсальную модель предложения (с универсальной лексикой) и разрабатывать только алгоритмы перевода с/генерации на определенный ествественный язык. и эти подходы, как и технологии МП, получили названия "transfer" и "interlingua". широко известный у нас переводчик "промт" использует технологию "трансфер".
Блин, ребята, бежать надо. я завтра закончу, ок.
Александр!
Ваша научная деятельность - системы машинного перевода? И Вам понравилась моя идея? Это очень здорово! =)
Я не знаю новая ли у меня идея, если новая - давайте напишем в соавторстве статью на эту тему и опубликуем в каком-нибудь научном журнале? =)
Если Вам нравится предложение, поговорите, пожалуйста, со своим научником на тему новизны идеи. Если идея новая - её нужно раскрутить, а лучше чем публикация в научном журнале для раскрутки - и придумать нельзя =)
Высланный текст, кстати, не дошел. Вы точно послали на почту [email protected] ? =)
и снова здравствуйте.
Александр, текст в самом деле не дошел потому что я его вместо gmail.com отправил на gmail.ru. такой вот конфуз, сейчас исправлю. там кстати очень хороший текст, читается легко и раскрывает базовые концепции МП, минус только в том, что он на инглише.
я сначала закончу свою мысль, а потом отнесусь к вашему предложению.
Итак: в машинном переводе стало два подхода к созданию систем: трансфер, использующий соотвествия в паре языков, и итнтерлингва (не путать с искусственным языком "интрелингва"), использующий переходную мета-структуру. Эти два подхода зиждятся на двух базовых подходах на стыке теории перевода и психолигвистики, касательно того как вообще человек переводит текст: либо человек понимает смысл текста и отражает его на другом языке (это реализовалось в интерлигва), либо человек трансформирует информацию закодированную на одном языке непосредственно в текст на другом языке (такой подход только сперва кажется наивным, при более детальном изучении, он вполне конкурентен модели "текст-смысл-текст").
большинство реально работающих программ-переводчиков работают именно с системой трансфер. т.к. он наиболее прост в реализации, дает готовый качественный результат. но "интерлингва" (как я понимаю вы именно этот подход подразумеваете 8)), в плане исследований более перспективен хотя по причине экономии времени. чтобы создать переводчик 10 языков на трансфере, нужно создать 10*10 = 100 отдельных модулей, которые соотносили структуры и лексику с одного языка на другой, т.к. при такой технологии операции трансфера могут идти только в конкретной паре языков, в конкретном направлении. для интерлингвы потребуется лишь 10 модулей анализа/порождения текста.
но однако не все так просто, и трансфер распространен именно потому, что он имеет дело с конкрентными языки и конкретными операциями.
интерлингва, по крайне мере в том виде в каком он изначально задумывался, должен представлять собой некую универсальную модель предложения, свойственную всем предложениям на всех языках. в здесь загвоздка: предположим, подлежащее, дополнение, сказуемое везде есть, их худо-бедно (на самом деле очень сложно) но в принципе можно формализовать. так ведь еще есть т.н. адъюнкты - определения, обстоятельства. последние вообще бывают времени, места, образа действия и т.п. это тоже надо как то формализовать. а кроме того, чтобы универсальная модель предложения могла работать в принципе с любым языком, то придется как то вписать сюда все имеющиеся лингвистические экзотизмы типа эргативного строя, тройственного числа, падежа темпоралиса, аористы, герундиии и т.п.
ну это еще полбеды, кроме универсальной грамматики необходима универсальная лексика, во первых возникает вопрос на каком языке будут эти слова. выбор какого либо из существующих проблемы не решит, т.к. мета-язык должен принимать принципиально все имеющиеся во всех языках слова и как-то переводить их в соответсвующие универсальные мета-понятия, причем одному понятию должно соотвествовать одно слово: например в китайском языке есть два слова со значением "бабушка" - со стороны отца и матери. представим, что в качестве мета-языка выбран английский, где есть только понятие granny. интерлингва должен, в идеале, суметь перевести язык в свою мета-структуру и потом из этой структуры построить правильное предложение. что будет если мы переведем это слово бабушка (мать отца) в мета-понятие на английском, а потом обратно. исходного предложения конечно не получится. разумеется можно использовать некий искуственный язык, и задавать такие сложные понятия через простые (например тоже самое мать отца, мать матери и т.д.), но тогда и надо в "словаре" этого мета-языка зарезервировать место под "мать отца", "мать матери", "просто бабушка". а вдруг отыщется какой-нибудь папуасский язык, где будут 4 значения для слова "прабабушка" - мать матери отца, мать отца отца, мать матери матери, мать отца матери, - и все ведь это надо как смоделировать.
а ведь новые слова постоянно появляются: их тоже надо успевать как то вписывать в универсальный мета-словарь. и если в трансфере мы можем тупо дать переводное соотвествие, то в интерлингве нам придется тонко разжевывать (при чем четко формализованно), что такое "остограммиться" 8)
так что интерлингва, как она задумывалась, является утопией машинного перевода, хотя изначально все надежды в машинном переводе возлагались именно на такой подход, в том числе и в знаменитом джорджтаунском эксперименте при использовании упрощенного английского в качестве мета-языка исследователи хотели именно интерлингву реализовать. хотя все же есть системы использующие ее, например DLT, там в качестве языка-посредника используется эсперанто. ну и здесь принцип интерлингва только "де юре" - "де факто" это упрощенный трансфер с одного языка на эсперанто, а потом с эсперанто на третий.
хотя, признаюсь честно, не смотря на мой скептицизм, я возлагаю большие надежды именно на такой подход интерлигва, и конечно считаю, что будуее именно за ним. ведь заметьте, что я не говорю что такой подход невозможен в принципе 8)
в 60 годах того века один ученый уже упрекал МП за то, что компьютер никогда не сможет перевести слово "pen" в предложении "the child lost his toy in the pen", то есть как значение "манеж", а не "ручка". сейчас программа-переводчик запросто бы с этим справилась, глядишь и универсальную мета-структуру когда-нибудь да изобретут.
мне ваша идея понравилась немного в другом разрезе, а именно создание неких мультиязыковых документов, вот это уже "земная" задача 8): например документ создается для ограниченного числа языков (например 6 международных), в которых текст переводится методом трансфер. тут для меня был бы интересен сам алгоритм создания текста для такого рода текстов, и решения трансферных проблем, а также модель клиент-серверного сообщения документа и программы (например в документе могут быть специальные "дополняющие" правила для разных языков, которые "специализуруют" перевод наряду с общими правилами по умолчанию, которые в свою очередь могут находиться на сервере, чтобы сделать перевод более качественным.
вот как вам такая идея? я понимаю, что это не совсем то, что вы предлагали, но это реализуемо, и про это можно написать хорошую статью.
что касается моего научника, то у меня его попросту пока что нет. я пишу диплом по машинному переводу в ин.язе в педагогическом вузе. с этим делом здесь туго, т.к. препода чистые гуманитарии, при появлении любого математического символа их бросает в дрожь. в техническую аспирантуру я буду поступать только следующей осенью. а пока что я сам себе научный руководитель. 8)
вообще, вам наверное как математику будет интересно изучить статистические переводчики. такие уже есть, по-моему, гугл сейчас над этим работает. еще могу посоветовать использование теории нейронных сетей в МП, насколько я знаю - очень новая тема.
У этой проблемы есть не только техническая сторона, которую очень хорошо изложил Александр, но и лингвистическая. Создание универсального метаязыка семантики - первоначально лингвистическая утопия, а еще раньше - философская. Декарт когда-то описал проект так называемого универсального искусственного философского языка, построенный на идеях Раймунда Луллия. В этом проекте он уже правильно поставил вопрос о том, каким должен быть словарь универсального языка, он должен состоять из алфавита идей, не разложимых на более простые идеи. Построить его можно, как считал Декарт, методом декомпозиции сложных идей на все более простые. Позже появились первые алфавиты таких философских языков, вначале - Далгарно, затем - Уилкинза, потом они посыпались как из рога изобилия. Философы при этом не учитывали, во-первых, что интенсионал языковых единиц по большей части строится на основе сравнений, метафор и прочих фигур. Система сравнений зависят от базового набора объектов и отношений между ними, от картины мира, картина мира зависит от мифологии и от трансформаций этих мифологий. Простой пример, обозначение резинки для женских чулок в русском языке идет через материал (резинка), а в немецком - через функцию - чулкодержатель. идеи несводимы друг к другу, значит и раскладывать их бесполезно. Во-вторых, в каждом языке имеются свои правила свертывания сложных семантических объектов и представления их в виде более простых с сохранением возможности развернуть то, что было свернуто. Идеальным полигоном для исследования подобных отношений являются числовые выражения. В языках мира существуют (на разных участках построения числовой системы) двоичная система счисления, троичная, четверичная, пятеричная и т. д. до шестидесятиричной в шумерском. Значит, правильным было бы изображение числа (натурального ряда) в идеальном семантической метаязыке в виде унарной системы счисления (по Пеано). Дальше надо свертывать глубинно-семантическое представление в поверхностно-семантические представления конкретных языков. Я написал на эту тему статью, в которой предложил делать это с помощью рекурсивной функции, которая для каждого языка оказывается своей и проследил, как должны строиться числовые выражения в русском (десятиричная система), чукотском (пятиричная система с вычитанием) и аинском языках. Выяснилось, что для того, чтобы построить числовое выражение необходима не только семантическая декомпозиция, но и синтаксическая с постулированием не более чем двухвалентных предикатов. Была изобретена элементарная единица семантического представления - элементарная смысловая формула и правила построения из элементарных смысловых формул сложных. Система получилась громоздкой, но стройной и логичной. Но такое можно сделать только на абсолютно регулярных семантических подсистемах.
кстати, господа. предлагаю немного отвлечься и пройти небольшой тест:
http://reverent.org/ru/machine_translation_or_platon...
сообщите пожалуйста, какие у вас блыи успехи.
У меня 75%
Мне казалось всегда, что смысл не существует вне языка; это значит, прежде всего не то, что смысл - только языковая реальность, (смысл как значимость - реальность и самих вещей) но то, что смысл невозможно извлечь как некоторый субстрат, бытующий в теле языка; переводимость всегда ограничена отсутствием инварианта. Структурализм искал такой языкойвой инвариант в структуре, совершая подмену: любой язык - структурен и может "мета"-описываться через структуры, но подлинный метаязык должен являться некоторой порождающей моделью естественных языков; однако же структура (та структура, которая вычленяется из естественных языков и генерализируется - в каких-то рамках очень успешно - в общий инвариант) сама скорее порождается языком. Насколько структура существует вне языка - важный вопрос: если существуют языки, в которых отсутствует подлежащее и сказуемое, то вопрос в том, как там передается субъект-объектная оппозиция и насколько она вообще может быть снята. Это несколько сторонний вопрос. Но меня он наталкивает на мысль: если полагается общий инвариант, то его очевидное несуществование вне языка можно понимать в разном отношении: либо этот инвариант не существует , либо он существует на уровне "молчания" (и не ДО языка и не ВНЕ языка, но как начало языка, само не являющееся языком). Это все, понятно, имеет прямое отношение к теме.
Также мне всегда казалось непонятным отношение к языку как к объекту наших "манипуляций": мы не можем занять внешнюю позицию к языку; не только мы говорим через язык, но и язык говорит через нас, наша "субъектность" - следствие слова, потому язык никогда не может быть до конца нами понят.
Вы задете вопрос об искусственном разуме. Тогда Вы, как требуется, должны задавать другие вопросы: не как формализовать, описать через какой-то язык, но что такео человеческое понимание текста и насколько распознавание ему несоответствует, и еще - как возникают новые коннотации слова, и как возможнн процесс их возникновения в формализованных системах.
Для меня (хоть это и не моя специальность, может быть я что-то профанирую, многое очевидно не знаю) ответы очевидны.
кирилл, не языков, где не было бы подлежащего и сказуемого. мне кажется, (я честно не хочу вас как-нибудь обидеть), что за рассуждениями о языке вы потеряли сам язык.
Справка из дисциплины под названием "логика науки". Всякое научное изыскание - не более чем модель объекта описания. Науки имеют дело в основном с моделью объекта. В этом смысле метаязык, с помощью которого описывается объект, - конструкт, метаязык описания семантики - конструкт, структура - конструкт. Трудно обвинять человека в том, что он строит конструкты. Можно говорить об адекватности, полноте и формальности модели. Но всякая модель строится под определенную задачу. В этой связи все Ваши разговоры о том, где существует структура, трудно назвать профессиональными. Генерализация модели - процедура, осуществляемая над конструктами. В этом смысле и можно говорить об универсальном метаязыке для описания семантики естественных языков. В языке вряд ли существуют и инварианты, и парадигмы, и склонения, все это конструкты. То, что мы не можем занять объективную позицию по потношению к языку, со времен фон Неймана очевидно: он показал, что и в физике нельзя занять объективную позицию, как физики это не скрывают. Именно поэтому и необходимо осознавать, что наука, описывая свой объект строит его модель, свойства модели зависят от того, кто строит, и от задачи, которую человек решает. Смысл - тоже конструкт, поэтому он уж точно существует вне языка.
А языки, где нет ни подлежащего, ни сказуемого, есть. Это детские языки, в которых каждое слово является законченным предложением.
поймите, кирилл, что ваши рассуждения о природе языка - это все хорошо, но не забывайте, что язык служит людям и для решения более земных прикладных задач, и системы МП решают вопрос перевода некоторых текстов вполне эффективно без участия философских построений - пока философы думают как бы этот лучше сделать и можно ли это сделать в принципе, машины уже работают и это делают.
ну про детские языки можно сказать, что в них нет подлежащего и сказуемого на поверхности. в любом случае, даже если это одно слово, например "дай" всегда подразумеваются некие актанты.
Нет. Подлежащее и сказуемое - это классы членов предложения в грамматике языка, который характеризуется двучленной структурой в качестве минимальной. Язык детей унаследовал свое свойство одночленности от зоосемиотических систем, в которых не предполагается двойного членения сообщения. В них один знак равен одному сообщению, и это - закон построения сообщений в зоосемиотических системах. Подлежащее и сказуемое отображают еще и темо-рематическое членение, а животные и дети говорят одними ремами.
1 2