|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сложность задачи состоит в том, что многие языки не имеют деления фразы на слова с помощью пробела (или иного знака). Чтобы определить словарный состав фразы, приходится перебрать огромное число возможных комбинаций. Причем длинные фразы совсем не редкость. Например, вот длинная фраза из классической Сутры Сердца Праджняпарамиты – ее увидит каждый, кто только посмотрит в сторону тибетского языка: ཇི་ལྟར་ཁྱོད་ཀྱིས་བསྟན་པ་བཞིན་དུ་ཤེས་རབ་ཀྱི་ཕ་རོལ་ཏུ་ཕྱིན་པ་ཟབ་མོ་ལ་སྤྱད་ One should practice this profound Perfection of Wisdom just as you have taught it (перевод взят откуда-то из сети). Эта фраза имеет 20 слогов, что дает 524,288 возможных комбинаций сочетаний возможных сегментов. Если анализировать подобные количества комбинаций в лоб, то мой домашний ноутбук Asus-i-7 задумывается на долгие минуты. Тем не менее Pecha.js работает практически мгновенно. Как это достигается, смотрите в коде, там всего-то:
ПлагиныОднако «Морфей» не ограничивает пользователя только интересом к древней грамматике. Для решения современных лингвистических задач к анализаторам «Морфей» можно подключать плагины (см. раздел Plugins на сайте Pecha.js). Плагином является обычный в Node.js npm-пакет (можно не публиковать его, а подключать локально). Однако если пользователю необходимо использовать утилиту на ином языке программирования, он может ее вызвать из подключаемого npm-пакета (плагина) обычным для Node.js способом. То есть в результате можно использовать утилиты на любом языке. В процессе выполнения плагин получает доступ крезультату работы «Морфея» для данного текста, активированным словарям и к самому тексту. diglossa.js: plain text против информационных монстровВ сети можно найти (почти) любые тексты. Все они имеют одно общее свойство – качество их неизвестно. Разве можно найти, скажем, стихотворение Пушкина в виде текста за цифровой подписью какого-либо уважаемого пушкиноведа? Их нет. Лучшее, что мы можем сделать, – скопировать текст мышкой с более-менее надежного сайта – а на сайте нет текста, там html. (Я напомню, сейчас XXI век, между прочим.) В общем, это кошмар, и, попросту говоря, текстов (никаких) в сети нет, есть неизвестно что, грязь. Научные и государственные институции создают огромные информационные монстры типа «Персея» или Национального корпуса русского языка, где нужная каждому читателю (и принадлежащая читателю, я говорю о нашем общем достоянии) информация погребена в подземельях – джавах, эскьюэлях, иксэмелях – и охраняется кастой жрецов – лингвистов и айтишников. Конечно, хорошо, что хоть в таком виде тексты все же существуют. Можно написать админу Васе, Вася укажет API, по которому можно получить то, что мне нужно. А почему это будет авторитетный результат, а не очередная грязь? Я должен на слово верить Васе, что у него нет багов в программе? Что я получил то, что хотел? Где «авторитетность»? Меня лично наукообразный антураж в качественности результата не убеждает, и никого не убеждает. Вы думаете, что в недрах храма лингвистики авторитетные тексты все же существуют? В это трудно поверить из-за самого принятого способа работы информационного монстра с текстом. Лингвисты верят, что работают с качественным текстом в этой системе. Блажен, кто верует. Еще раз, конечно, хорошо, что хоть так. Но чтобы удостовериться в качестве результата работы инфомонстра, этот результат нужно сравнить с исходным текстом. А исходника нет. А если бы он был, зачем тогда инфомонстр? Вдобавок научные и государственные институции создают ресурсы на базе современной лингвистики. Иное попросту немыслимо. А как мы видели в предыдущем разделе, результат работы лингвистического ресурса не может помочь нам в чтении и адекватном понимании автора. Ресурсов, учитывающих древнюю грамматику наравне с современной лингвистикой, я пока не знаю.
Ресурсы, создаваемые религиозными институциями, лучше, по крайней мере они ориентируются на традицию (см., например, великолепный сайт https://sanskritdocuments.org). Но они диктуют свою интерпретацию, сложившуюся в результате долгого развития данной религиозной традиции. Прорваться к мысли автора в этом случае может быть не легче. Налицо проблема, проблема доступности авторитетного (классического, но не только) текста. Проблема, по-моему, решение имеет. Под авторитетным текстом я понимаю текст (пусть для простоты обычный .txt, utf-8), происхождение которого мне известно и подконтрольно. Например, группа людей получает сканированные изображения текста и первоначальные OCR текстовые файлы и последовательно и постепенно вносит исправления в них, сравнивая вручную тексты и изображения. При этом авторитетность текста определяется авторитетом этой группы людей. При этом люди в группе имеют «право на запись», это важно. Я могу проверить, удостовериться в адекватности текста на каждом этапе. Очевидно, что для этой цели удобно использовать систему контроля версий. И для простоты предположим, что по умолчанию мы будем использовать http://github.com, свое сообщество редакторов для каждого текста. Сравните этот подход с подходом информационных монстров, где «авторитетность» текста определяется авторитетом именитой редакционной коллегии, каждый член которой, хотя и достойный и безусловно уважаемый человек, но который и в глаза мог не видеть рассматриваемый текст и понятия не имеет о том, что происходит с текстом в подземельях инфомонстра. То есть здесь мы имеем лишь иллюзию авторитетности текста. Идея авторитетного, голого plain-text используется в утилите Diglossa.js, http://diglossa.org/diglossa.js. Подробнее о работе с «Диглоссой» можно прочитать на сайте. Работа с ней не сложнее, чем работа с хорошо известной программой FB2-Reader. Важно, что работа построена на голом исходном авторитетном тексте, в который не вносятся изменения и который хранится в системе контроля версий (github.com). К тексту последовательно пристраиваются слои (layers), привязанные к конкретному месту текста якорями. Таким образом можно получить результат любой сложности, сохранив исходный текст в неприкосновенности. Обработав текст или группу текстов, мы можем опубликовать его в вебе (в удобном интерфейсе, с полнотекстовым поиском, etc). Естественно, по умолчанию на десктопе включается также интеграция с семейством анализаторов «Морфей», если таковой уже есть для текущего языка. Но важно, что мы можем также и опубликовать текст в системе контроля версий, то есть создать новый авторитетный источник. Тогда следующий редактор-читатель может загрузить в «Диглоссу» (и куда угодно также, разумеется) этот текст уже из системы контроля версий напрямую, то есть наш новый авторитетный источник использовать. В «Диглоссе» к исходному тексту могут быть добавлены, например, параллельные тексты целиком или любой текст к любому месту в исходном тексте. Основной целью при создании «Диглоссы» была работа с параллельными текстами. Однако параллельные тексты являются лишь одним из примеров слоя. Другие примеры: предисловия и справочники, комментарии, пагинации, логические разметки, картинки и примечания издателей, любая мета-информация и режим учебника, когда исходный текст представляется вставками, цитатами в обрамлении нового текста. (Эти возможности будут добавляться постепенно в следующих версиях.) Использовать сложную систему слоев без необходимости не обязательно. Например, в большинство текстов логическая разметка может быть внесена попросту в текст. Однако, если мы хотим наш добавочный параллельный текст тоже сделать авторитетным, мы имеем эту возможность. При этом исходный текст в обычной работе никак не затрагивается. А если в него действительно вносится изменение (исправляется опечатка), в репозитории исходного текста результат появится в виде git merge request и может быть принят или отклонен. Очередной следующий читатель может подключить и загрузить и исходный текст, и добавочные тексты (и слои-layers), которые ему необходимы в настоящий момент. Таким образом, работа проистекает не с файлами текстов, а с одним файлом манифеста (в формате .json), в котором описаны лишь необходимые ресурсы и способы их подключения и обработки. Свободная лицензияТаким образом, появляется возможность использовать свободную лицензию на результат. Несколько лет назад в сети активно обсуждалась возможность использования свободных лицензий для художественных, а не программных тестов, музыкальных и изобразительных произведений и т.д. Вывод был сделан не утешительный – свободные лицензии в художественных текстах использовать невозможно, поскольку сама их художественность связана с личностью автора и любое внесение изменения автоматически нарушит не отменяемое никакой лицензией авторское право. В случае же подхода, использующего авторитетный источник текста, появляется пространство для работы над текстом, не вносящее изменений в текст. И если лицензия исходного текста (и любых добавочных) позволяет только его распространение, но не модификацию, то он может быть включен в результат, сам имеющий свободную лицензию. Локальные словариВажным частным случаем работы с текстом являются словари. Как вы, наверное, знаете, со словарями у нас беда (я имею в виду XXI век вообще). Точнее, две беды, которые я здесь уже описывал. Во-первых, каждая статья словаря сама по себе – типичный инфомонстр. Там нагромождение всего: и грамматических сведений, и примеров перевода из всех контекстов без разбора, и ссылок на тексты. И никакой системы нет, а есть неконтролируемое умножение сущностей, без тени рефлексии по этому поводу. Ясно, что если вопрос, что такое словарь, и задается, то ответа на него нет. Вторая беда еще хуже – все классические словари, и Моньер-Вильямс, и Лиддел-Скотт, и что угодно – составлены (гигантами, да, и низкий поклон, etc) в XIX веке людьми, постигшими истину. Истиной для них была ньютоновская физика и ньютоновская картина мира. А все прочие люди, люди, чьи языки они изучали, и не имеющие «научной» картины мира в своем интеллектуальном бэкграунде, рассматривались как люди, э-м-м-м, думавшие ошибочно. Это отношение можно увидеть практически в любом классическом словаре. Впрочем, это вообще беда научного метода. Ведь лингвисты думают не о попытке понимания автора, а о возможности, например, создания системы автоматического перевода (чтобы вообще исключить возможность диалога с автором, подсунув суррогат). Но еще раз – относиться к слову как к объекту можно, и это вполне продуктивно. Но считать, что слово объектом исчерпывается и полностью описывается и моделируется, как минимум наивно. Но это так, к слову. Между тем создание словаря – такой же поступок, как и произнесение слова, и такой же поступок, как понимание слова. Поэтому в «Диглоссе» и «Морфее» предусмотрена возможность создания локального словаря для данного текста или группы текстов. Сложность состоит в том, что для языков, имеющих склоняемые словоформы, мы можем легко сгенерировать частотный словарь всех форм. Но для создания словаря нужно сгруппировать все зависимые формы, и в словарь поместить только так называемую словарную форму, что требует подключения грамматики и значительной вычислительной мощности. Тем не менее задача постепенно решается, и в будущих версиях «Морфеи» будут иметь возможность генерации локального авторского словаря в виде файла-пустографки, в каждую строку (словарную статью) которой автор сможет добавить свой перевод, актуальный только для данного текста. И затем его опубликовать в один клик для использования другими читателями данного текста и возможной совместной дальнейшей работы. Заключение: сообщество и unix wayТаким образом, я надеюсь, Diglossa.js и семейство «Морфей» являются неким предварительным прообразом библиотеки будущего, когда распространяется не книга в переплете, а только лишь необходимая часть текста с необходимым адекватным аппаратом и адекватным локальным словарем. Превращению простого текста в чудовищных информационных монстров может быть противопоставлена культура распространения авторитетного текста со свободной лицензией, а касте служителей информационных систем – сообщество грамотных читателей. Если программисты могут создать сообщество и совместно развивать продукт, то почему филологи не справятся? eof
Ключевые слова: Node.js, Electron.js, CouchDB, герменевтика, тибетский, китайский, греческий, санскрит, сообщество, free software, free license. Комментарии отсутствуют
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|