LINUX.ORG.RU

Вышла версия 0.4.0 переводчика


0

0

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

>>> Подробности



Проверено: Shaman007 ()

Ох уж эти сказочки... Ох уж эти сказочники... (С) Падал прошлогодний снег

anonymous
()

Почему не используется Qt, сказано в FAQ. Но вот почему не используется Tk???

anonymous
()

>>Во-первых, я считаю, что "текст-юзер-интерфейс" более соответствующим решаемой задаче. А во-вторых, Qt - это "Микрософт в мире ЮНИКС". То есть это удобная библиотека для создания интерфейсов. Но у нее слишком часто выходят новые версии, и при этом изменяется набор функций. Поскольку мы пишем программу не на год и даже не на десятилетие, мы должны выбрать другой инструмент. Более надежный, более "неизменный", более кроссплатформенный. (А на работе я Qt использую - очень приятные впечатления.)

Мля...

Keiko
()

Ужасть какая, зачем звуки на сайт засунули???

Это очень быстро отбивает желание перемещаться по сайту...

Inserter
()

За музычку спасибо :) Сохранил себе :). Но завопило голосом Хрущева неожиданно :)

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

есть еще GTK+, к которому пока ни у кого претензий нет.

Displacer ★★
()

Огромный респект авторам! Верной дорогой...

Davidov ★★★★
()

а чего сразу от анонимусов закрыли?

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

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

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

где-то с пол-года назад я попробовал посмотреть правду на предмет немного попинать. но.. просто стало слишком страшно. и сейчас ситуация ницуть не изменилась.

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

dmiceman ★★★★★
()

кто-нибудь покажите, как она переводит! (пример)

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

Вообще-то, и твой русский не менбше хромает. Уж точно. А ты на других сразу... Тебе это доставляет удовольствие?

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

Пока праздники не прошли, пусть Хрущев поорет. Потом уберу. На sourceforge заркало не мое. Там только третья версия лежит.

Ну, Вы понимаете, что программы бывают либо надежные, либо революционные. Эта версия революционная. Стало быть она имеет столько же проблемм, сколько их имела 0.1.0. Однако выкладывать надо, чтобы знать куда двигаться. Есть несколько вопросов, которые я хочу обсудить, когда подтянутся разумные люди.

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

Послушал я тут вопли. Сидит куча идиотов, не написавших и байта кода. И орут - ацтой, маздай, фтопку. Вместо того, чтобы улучшить. Мне проект понравился. Конечно ему ещё далеко до хорошего перевода. Но думаю, что ненадолго. ЗЫ: Пошёл приделывать к правде automake.

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

Программа замечена в записи промежуточных файлов туда же, где лежит prawda (в моём случае /usr/local/bin). Как отучить и/или заставить писать в ~ и/или /tmp?

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

например, создать в своём home файл с таким же именем, а в директории /usr/local/bin сделать ln -s ~/prawdaoptfile prawdaoptfile

но это уже будет грабля

swar0g ★★★★
()

Да ничего такая программа. IMHO под винду лучший Magic Goodie, но он не портирован и под wine запусть его не удалось. Вот его порт был бы супер. Ну а пока .. хорошо, хоть что-то есть. Верной дорогой идёте, камрады. Так держать.

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

>Есть несколько вопросов, которые я хочу обсудить, когда подтянутся разумные люди. Под разумными понимаются те, кто не выдаёт критику, это имелось в виду? Perfect! >Во-первых, я считаю, что "текст-юзер-интерфейс" более соответствующим решаемой задаче. А во-вторых, Qt - это "Микрософт в мире ЮНИКС". То есть это удобная библиотека для создания интерфейсов. Но у нее слишком часто выходят новые версии, и при этом изменяется набор функций. Поскольку мы пишем программу не на год и даже не на десятилетие, мы должны выбрать другой инструмент. Более надежный, более "неизменный", более кроссплатформенный. (А на работе я Qt использую - очень приятные впечатления.) Погрызём это предложение. Ну ладно бы RedHat обозвали "Микрософтом", это хоть как-то ещё можно было бы понять, но Qt? Она идёт по двойной лицензии, в т.ч. по GPL. Например KDE community уже приняло решение, что если троли закроют исходники, то будет использоваться и развиватся последняя GPL версия Qt. Закрытостью и не пахнет. Новые версии не так и часто выходят, а когда появляются, то сохрняют обратную совместимость, во всяком случае в 3-ке всё время так и было. В 4-ку встроили переконвертатор из 3-ки, об этом автору известно? А насчёт того, что планируется работать над прогой "..даже не на десятилетие.." Тут можно только помахать вслед белым платочком, предварительно окропив оный скупой мужской слезой. Ещё из "Частозадаваемых вопросов". >2.1) Что означает слово #фигня# в переводе? Слово #фигня# означает, что программа не смогла разобраться в грамматической структуре фразы. В этом случае программа дает простой подстрочный перевод. Слово #фиг# означает, что структура фразы понятна не до конца. Что может, программа переводит связно, дальше - снова подстрочник. Жду предложений, как более "прилично" обозначить эти две ситуации. Окей. Предлагаю "фи" заменить на "хе". Получится очень по пролетарски - выдержано по стилю с дизайном сайта и общим оформлением/подходом. Кроме того, до кучи, пользователь вспомнит В.И.Ленина. А взглянув на код просто становится дурно. ВЕЗДЕ используются массивы в стиле С, хотя написано и на С++. Неужели STL и array это запредельное табу?? А строчка goto AUSGANG; в файле common.cpp чего стоит. Это же не бэйсик, в самом деле, чтоб так делать. Автор явно не "подкован" в ОО подходе. И ещё ...short kommand_yxf1( short y, short x... Ага, _K_ommand.. И автор ещё хочет сделать путёвый переводчик? No comments. Потом, в *nix, разумеется, иногда затруднительно реализовать copy-paste, но для программы переводчика - это жизненно необходимая фича. А её нетути. Юзабилити стремится к нулю. Зато подхватывается утопический язык эсперанто! Это круто!

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

Тогда уж лучше сразу программу в ~ поставить.

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

> Однако выкладывать надо, чтобы знать куда двигаться.

Почитал faq перехода от 0.3 к 0.4. Особенно про сложности составления словарей. Пришла мысля - а не "wikiфицировать" ли вам его? Т.е. софтинка остаётся как есть. Но, выпускается она в плавание с возможностью пользователю "объяснить" программе где она ошиблась. Затем такие исправления отправляются к вам, для интеграции.

Тогда заполнение словарей связей не станет неподъёмной задачей...

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

> Вообще-то, и твой русский не менбше хромает. Уж точно. А ты на других сразу... Тебе это доставляет удовольствие?

вот уже не разу не утверждал что владею русским достаточно :-) ты меня совсем диаметрально понял.

но вообще-то, мой русский не хромает, он просто спецфический :-)

dmiceman ★★★★★
()

1)
зачем нужна директория {/usr/local,/usr}/share/prawda/fonts
если нужные шрифты идут с X ?
идущий с исходниками программы шрифт в иксах стоит,
прописан "как надо" и успешно используеться другими приложениями, а
prawda валиться, так как не может его загрузить
(путь к {/usr/local,/usr}/share/prawda/fonts в конфиг X не добавлял и не буду)

2)
почему и в rpm и при сборке из исходников
содержание format.rc всегда не соответствует действительности :
вместо
{/usr/local,/usr}/share/prawda/etc/format/
имеем
====================================================
/etc/format/text просто_текст
/etc/format/latex LaTex
/etc/format/html HTML
====================================================

botrops-schlegelii ★★
()

Ну-ну. Словари в текстовом файле. На скорость не жалуетесь? Даёшь переводчик на перле :)

GuGu
()

Классный challenge. _Я_думаю_, вам пора бы сделать описание по сделанным исследованиям в области машинного перевода (чтобы провести некую систематизацию накопленного опыта) и начать писать документацию по архитектуре (для себя и других!), одни вы не вытянете эту задачу в полном объёме.

ЗЫ желаю успехов в исследованиях и разработке лингвисту с длинным ремнём и программеру с железной задницей :)

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

> Погрызём это предложение. Хорошо погрыз, и лицензию и утилиты для переконвертирования вспомнил. Но неужели ты хочешь сказать, что тезис "текст-юзер-интерфейс Более надежный, более "неизменный", более кроссплатформенный чем Qt" - направда? А зачем грыз?

И разве там нет разделения на ядро и оболочку?

> А взглянув на код просто становится дурно. Это оставляю на душу автора, если он захочет отвечать после мегавесомого предложения "Окей. Предлагаю "фи" заменить на "хе"".

> Потом, в *nix, разумеется, иногда затруднительно реализовать copy-paste, но для программы переводчика - это жизненно необходимая фича. А её нетути. Средней кнопкой мышки не работает ?

> Юзабилити стремится к нулю. Для меня в проекте Правда это не суть важно. Цветастая оболочка - дело десятое.

>Зато подхватывается утопический язык эсперанто! Не вкурил, как язык может быть утопическим ???

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

> Не вкурил, как язык может быть утопическим ???

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

AP ★★★★★
()

Я уж думал, что проект помер. А он ничего - шевелиццо ещё, ластами ворочает :)

По поводу "покрова мистики над машинным переводом" - его ещё в середине прошлого века сорвали. Так и стоит он с тех пор нагишом, солнцем палимый, структуральную лингвистику свою фиговым листком прикрывает. И всем вроде бы нужен, но лучше от того не становится :)

Что касается cli/gui интерфейса, тут вопрос непростой. С одной стороны, получить перевод из графического интерфейса быстрее - хоть ты на люстре вешайся. С другой стороны, мало кто из девелоперов думает о слепых пользователях, а для них консольный софт оказывается в результате более удобным.

Словом, всяческих Вам узбеков в нелёгком деле вздымания сизифового камешка на гору. Глядишь, грядущее поколение спасибо скажет. А если звёзды особую загогулину на небе нарисуют, то и это поколение ;)

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

Боюсь надо отделить язык эсперанто от идеи эсперантизма. Я знаю язык, но я не следую наставлениям Заменгофа. Вот. Почему автор захотел поэксперементировать и с искусственным языком? Думаю потому, что там правила гораздо легче и логичнее. Почему выбран эсперанто? Он самый распространенный из искусственных - больше людей смогут тоже попробовать и оценить, или же автор выбрал единственный искусственный, который знал ... и им оказался эсперанто (вероятность-то была выше ;) ). Это конечно мы достоверно узнаем у автора. Но вот как язык назвали утопическим - первый раз такое встречаю ... мертвым - ладно, но утопическим ... ;)

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


to Fangorn
Ты что, сильно молодой что-ли? Не помнишь, что при советской власти сдача
обьекта всегда проводилась досрочно? :-) Сколько при этом оставалось недоделок -
это другой вопрос.

to Lumi
Напиши мне на адрес prawda@newmail.ru Не должна она туда писать...

to atrus
Была у меня мысль сделать как в Вики. Все равно остается проблема согласования
словаря и грамматики, и просто словаря самого с собой. То есть все равно перевод
с одного языка должен один человек делать (либо группа людей, которые активно
общаются)

to GuGu
> Ну-ну. Словари в текстовом файле. На скорость не жалуетесь? Даёшь переводчик
> на перле :)

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

Товарищей Lumi, atrus, GuGu, filin и bizanine приглашаю для дискуссии сюда*
http://www.linuxforum.ru/index.php?showtopic=12314&st=0&gopid=132417&...
Там я wolf68.

Я бы и eg0_dist0rti0n пригласил, парень он умный, но там модераторы строгие.
Такой эмоциональный стиль изложения там наказывается :-)

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


to eg0_dist0rti0n
Ты, конечно отчасти прав, вот только судишь ты со стороны "только программиста".
"Правда" - это не программный проект, это проект больше лингвистический.
Посмотри на размер сишников и размер словарей и сразу все поймешь. Почему
не используется STL? Ну давно был написан код ядра, и с тех пор не
переписывался. Работает - не трогай! Мне гораздо больше мешает многозначность
естественных языков, чем переполнение массивов и строк. По-этому новая версия
отличается от предыдущей контекстным словарем, а не обьектно-ориентированным
подходом. Ну не важно сейчас это...

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

2AP: Хочется добавить, что троли таки о калеках-пользователях т.ж. думают http://www.trolltech.com/newsroom/announcements/00000176.html 2Beria: Там, при упоминании STL vector с array попутал, так никто даже не фыркнул. И вообще, несколько странно соотносятся подходы "пишется надолго" и "работает - не трожь". Полагаю, лучше предварительно потратить пару месяцев на усваивание передовых фич Цэ-крест-крест и на проектирование, чем потом колупать идеологически дохнущий проект, который чем расширять и дополнять - развивать, словом - так проще или убиться или всё заново переписать. Понятно, что уже как есть так есть, но все же.. Советы давать все горазды =) но рекомендую прислушаться, и потратить время на осваивание техники кодинга, ибо иначе проект может однажды просто уперется в стену т.к. будет так много костылей, что дальше - шагу не ступить.

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

и всё равно спроектированная архитектура когда-нибудь устареет. См. Qt 2.x - 3.x - 4.x. Спроектировать "на десятилетия" нельзя. А если и можно, то всегда будешь ограничен рамками, когда вот-вот бы что-нибудь сломать и написать заново с утроенным функционалом и какой-нибудь новой прослойкой.

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

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

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

Смотрел тот файл common.cpp, действительно goto AUSGANG это перл, и он там не один такой :). Над программой действительно еще работать и работать, несогласен с автором что сначала надо отточить движок а потом уже приниматься за всякие другорядные вещи вроде интерфейса, все должно развиваться параллельно.

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

> Мне гораздо больше мешает многозначность естественных языков,...

А как работает ядро перевода? Т.е., например, перевод "английский -> русский" происходит напрямую (через англо-русский словарь)?

Если сами говорите:

> 2.4) Кто-нибудь использовал в качестве входного языка искусственные языки типа Эсперанто? Не упростится ли задача благодаря их регулярной (по слухам) структуре.

>Действительно ОЧЕНЬ СИЛЬНО упрощается. Сейчас программа умеет переводить с Эсперанто и с английского. Перевод с Эсперанто на порядок лучше - то есть работает в 10 раз быстрее, памяти жрет в 3 раза меньше, перевод получается несколько корявый, но понятный и не вызывающий смех. Все-таки люди, придумавшие Эсперанто, очень сильно головой подумали.

то не задумывались ли Вы над авриантом двухшагового перевода, т.е. "язык1 -> иск. промежуточный язык -> язык2". Тем более, что существуют проекты искусственных языков рассчитанных именно на такое применение?

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

> А как работает ядро перевода? Т.е., например, перевод "английский -> русский" происходит напрямую (через англо-русский словарь)?

В двух словах обьяснить не могу, но в архиве документации (который лежит отдельно) есть файл idea.ps где описан алгоритм перевода. В общем да, через словарь. Словарь, разумеется не простой - с выражениями и фразовыми глаголами.

> то не задумывались ли Вы над авриантом двухшагового перевода, т.е. "язык1 -> иск. промежуточный язык -> язык2". Тем более, что существуют проекты искусственных языков рассчитанных именно на такое применение?

Задумывался. Идея в настоящее время не реализуемая. Промежуточный язык должен быть надъязыком всех используемых языков. Например возьмем глагол. В русском языке есть совершенные и несовершенные глаголы. В английском есть простые и continues времена. В Эсперанто есть глаголы начального, однократного, продолжительного и моментного действия. Язык посредник должен уметь без искажений представлять это все. И так по всем грамматическим явлениям :-)

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

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

А Логлан/Ложбан не подходят? Эти языки как я понял делались с намереньем создать язык без двусмысленностей. Т.е. берем английскую фразу, переводим в Логлан, где, по идее, должно быть все учтено и сказано, потом эту фразу в русский. В теории вроде так должно быть, на практике не реализовывал ;) Сам Логлан тоже забавен. Глаголы там вроде шаблонов. Что-то вроде такого: идет <когда> <кто> <как быстро> ... и потом в нужные места вставляются нужные слова: "идет сейчас лошадь быстро" ;)

Вот две ветки с эсперантского форума, которые нашел: http://www.e-novosti.info/forumo/viewtopic.php?t=1671&highlight=%CB%EE%E3... http://www.e-novosti.info/forumo/viewtopic.php?t=305&highlight=%CB%EE%E3%...

Но с использованием такого языка появляется существенный минус: множество программистов, которые в теории могут стать напарниками, катастрофически сокращается - кому охота учить еще один язык?

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

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

нашел там ник wolf68, и думаю: "зачем я ссылки даю" ? ;)

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

>Промежуточный язык должен быть надъязыком всех используемых языков.

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

>Перевод в два шага приводит к росту ошибок в квадрат раз.

Если, скажем так, семантическая ёмкость промежуточного языка умещает в себе язык назначения, то на втором шаге перевода ошибки расти не должны, ественно, промежуточный язык должен быть однозначным.

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

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

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

> Почему не используется Qt, сказано в FAQ.

Ага, типа Qt удобен, но мы хотим трудностей. :)

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

> С другой стороны, мало кто из девелоперов думает о слепых пользователях, а для них консольный софт оказывается в результате более удобным.

Александр, про KDE с его KTTSD, конечно, мы не говорим, так как авторам претит всякое упоминание Qt/KDE?

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

>А Логлан/Ложбан не подходят?

Из Википедии:

Логлан (от англ. Logical language - логический язык) - искусственный язык, разработанный как средство лингвистических исследований, в частности, для экспериментальной проверки гипотезы лингвистической относительности Сепира-Уорфа. Создатель логлана, Джеймс Кук Браун (James Cooke Brown), начал работу над своим проектом около 1955 г.

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

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

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

to bizanie

Промежуточный язык должен быть надьязыком, отражать все ньюансы всех языков, которые участвуют в переводе. Я знаю, что есть логлан, но он мне "не нравится". Во-первых он сложный. Намного сложнее Эсперанто. Во-вторых (это субьективно) я не люблю позиционных языков. Ну да, я знаю, что в логлане пустые позиции заполняются, но все равно "не нравится". В-третьих, я не понял, является ли он надьязыком или это очередная вариация на тему "давайте сочиним еще один английский"? Может ли логлан, например, передавать вот такие варианты смысла?

http://www.e-novosti.info/forumo/viewtopic.php?t=788

Ну и в-четвертых (и самое главное) Помогает ли логлан от многозначности слов естественного языка? Эта проблема является самой главной в современном машинном переводе. (Я думаю, что от этого вообще никакой язык не спасает, ни естественный, ни искусственный :-) )

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