Обсуждение участника:Sokirko

Содержимое страницы недоступно на других языках.
Материал из Викисловаря

Привет, меня зовут Алексей Сокирко. Я представляю сайт www.aot.ru, на котором с 2002 года публикуется морфологический словарь под лицензией LGPL. Можно было перегрузить наши статьи в ваш викисловарь. Если вам это интересно, давайте поговорим о том, как это делать. Наша стандартная статья выглядит так:

$type_grm = но,
сто'л    С мр,им,ед,
стола'     С мр,рд,ед,
столу'     С мр,дт,ед,
сто'л     С мр,вн,ед,
столо'м     С мр,тв,ед,
столе'     С мр,пр,ед,
столы'     С мр,им,мн,
столо'в     С мр,рд,мн,
стола'м     С мр,дт,мн,
столы'     С мр,вн,мн,
стола'ми     С мр,тв,мн,
стола'х    С мр,пр,мн,


У нас сейчас 174785 статьи. Описания констант тут

Варианты взаимодействия[править]

(Я довольно плохо понимаю соотношения между GNU FDL и LGPL, но будем считать, что с этим проблем не возникнет.)

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

Не очень ясно, как в aot соотносятся внутреннее представление и вид статьи. Если словоформы там хранятся только в виде жестко зашитых сочетаний типа стола'ми стола'х, - это не пойдет, в таком случае здесь можно будет использовать только словник (например для очередной "тупой" заливки статей-болванок, на этот раз - по списку aot, с указанием части речи и первичных грамматических признаков). Если же внутреннее представление там включает, как здесь, тип словоизменения по Зализняку и нужное число (псевдо)основ - тогда можно сделать прямое преобразование и заливать уже более осмысленные болванки, с указанием также индекса (1a, 2*b и т. п.) и (псевдо)основ, чтобы сразу строилась парадигматическая таблица. Тогда остается только договориться о параметрах такого преобразования. --Al Silonov 08:50, 28 июля 2008 (UTC)[ответить]


Смотрите сами[править]

К сожалению, у нас нет указания типа словоизменения по Зализняку, но, конечно, внутри программы мы храним отдельно псевдооснову и набор окончаний. Набор окончаний получается по парадигме выкидыванием неизменяемой левой части (псевдоосновы), поэтому, я думаю, вы (или я) можете написать конвертор прямо по "зашитой" парадигме, и мне кажется, это более практичное решение для взаимодействия разных морфологий. --Sokirko 09:24, 28 июля 2008 (UTC)[ответить]

Я точно не напишу по зашитой парадигме - да и никому не советую. Зачем, если есть "внутреннее представление"? Надо использовать именно его. Неужели у вас наборы окончаний никак не классифицированы? Если классифицированы, то нетрудно перевести их классы в индексы Зализняка. Тогда преобразования будут минимальными: у нас ударение обозначается по-другому, значит, надо а' е' и' о' у' э' ю' я' превращать в а́ е́ и́ о́ у́ э́ ю́ я́ (апострофы -> в значки острого акцента). После этого по списку формировать из ваших параметров имена наших шаблонов, например С мр -> СущМуж (кстати, я не вижу у вас указания признака одушевленности?), вообще-то у нас имена шаблонов содержат еще и признак Одуш / Неодуш и индекс, например: СущМужНеодуш3b. При вызове в параметрах указываются псеводосновы и слоги:
   {{СущМужНеодуш3b|основа=ледни́к|основа1=ледник|слоги=лед-ни́к}}. 
Это оптимальный путь, ИМХО. Но если наборы окончаний не классифицированы и нет признака одушевленности - остается только "тупая" закачка с шаблонами-дженериками типа СущМужXX, СущЖенXX, ГлXX и т. п. Наборы окончаний как таковые нам не нужны, они у нас встроены в шаблоны. Принципиальная установка: ничего морфологического не описывать вручную ad hoc, всё зашивать в шаблоны, которые не только рисуют таблицы, но и в явном виде указывают тип и проставляют категории (типа Категория:Существительные, склонение 3b). --Al Silonov 10:13, 28 июля 2008 (UTC)[ответить]

Хорошо[править]

Написать конвертор могу я сам. Буду писать по "зашитой" парадигме, хотя всю внутреннюю знаю назубок. Главная проблема не в этом, мне нужно, чтобы вся информация, которая есть у нас в словаре, не пропала. В конце концов, я хочу, чтобы наши анализаторы перешли на викисловарь, а для этого нужно, чтобы викисловарь был таким же большим, как и наш словарь, и чтобы мы не потеряли информацию. Конечно, мы можем поместить часть информации за пределами словаря, но в этом и заключается проблема, сможем ли мы согласовать наши логики описания морфологии слов? Возьмем два ярких примера:
1. Если у прилагательного есть превосходная степень, мы ее включаем в парадигму положительной степени. Это соответствует моей интуиции и практике описания многих других языков. У Зализняка эти прилагательные разделены.
2. Мы включаем отчество в парадигму имени. Это кажется так же логичным, как включать причастие в парадигму глагола. Что вы об этом думаете? Готовы ли вы пойти на такие изменения?

Одушевленность у нас есть, записана на первой строке: $type_grm = но,


PS Поставил "следить" на эту страницу, а оповещения не приходят.

(Тут нет оповещений об отслеживаемых страницах - просто они в списке последних изменений показаны жирным шрифтом, и их можно вызвать через верхнее меню "список наблюдения".)
Так, если есть одушевленность, уже хорошо, значит, можно в болванки статей сразу ставить имя шаблона вроде СущСрОдушXX. Превосходную степень мы легко можем включить в парадигму прилагательного; пока этого, кажется, нет, но уже сейчас можно ставить при вызове шаблонов типа ПрилXX соответсвующий параметр (он не пропадет и после доработки шаблона станет видимым), например: |превосходная=наивы́сший. Отчество, действительно, надо включать в парадигму мужского имени, будем дорабатывать (я просто здесь не занимался вплотную мужскими именами). Насчет конвертора "по зашитой парадигме" - хотелось бы пример: что берется на входе и что получается на выходе. Тогда я смогу написать шаблон для подстановки при создании болванок. Думаю, все получится ! :) --Al Silonov 13:17, 28 июля 2008 (UTC)[ответить]
===[править]
Давайте кто-то один будет писать код, так будет дешевле. Я буду рад, если напишите вы, если нет, напишу я. Я выгружу весь наш словарь в вашем формате, вам останется только добавить. Где я могу получить список всех шаблонов и инструкций для формирования файлов, которые понимает ваша система?

Принцип такой. Ваш бот должен проверять, существует ли уже статья с данным именем - если да, то он пропускает слово, если нет - создает статью. Создание статей о русских знаменательных словах производится с помощью механизма подстановки специальных шаблонов (subst:<имя шаблона подстановки>), примеры полного синкаксиса:

  • {{subst:trudo-subst|класс=МужОдуш|слоги=ку́чер|основа=ку́чер|основа1=кучер|индекс=1c(1)}}.
  • {{subst:trudo-subst-Прил|слоги=пате́нтный|основа=пате́нтн|основа1=пате́нтен|индекс=1*a}}
  • {{subst:Trudo-adv|слоги=пра́-виль-но}}.

Эти конструкции в заполненном виде вносятся в пустое окно редактирования создаваемой статьи, после чего наживается кнопка "Записать страницу". Всё. Для данной цели готовы четыре шаблона.

Шаблоны для подстановки:

  • Шаблон для статей о существительных - Шаблон:trudo-subst. Параметры шаблона (почти все - необязательные):
    • класс = МужОдуш, МужНеодуш, ЖенОдуш, ЖенНеодуш, СрОдуш, СрНеодуш
    • индекс = 1a, 2a, 3a, 4a... 1b, 2b, 3b, 1*a и т. п. - по Зализняку, или =XX (латинское, если индекс неизвестен).
    • основа - основа нормализованной формы, с простановкой ударения (символ ́ после гласной, если основа ударная)
    • основа1 - измененный вариант основы
    • слоги - слово с проставленным ударением, желательно (но не обязательно) разделенное на слоги символами дефисов
  • Шаблон для статей о прилагательных - Шаблон:trudo-subst-Прил. Параметры:
    • индекс = 1a, 2a, 3a, 4a... 1b, 2b, 3b, 1*a и т. п. - по Зализняку.
    • основа - основа нормализованной формы, с простановкой ударения (символ ́ после гласной, если основа ударная)
    • основа1 - измененный вариант основы
    • слоги - слово с проставленным ударением, желательно (но не обязательно) разделенное на слоги
  • Шаблон для статей о глаголах - Шаблон:trudo-subst-Гл. Параметры:
    • класс =-ся (для возвратных несовершенного вида), или = -сяСВ (для возвратных совершенного вида), или =СВ (для совершенного вида), или остается пустым (обычные, несовершенный вид)
    • индекс = 1a, 2a, 3a, 4a...
  • Шаблон для статей о наречиях Шаблон:Trudo-adv. Параметр:
    • слоги - слово с проставленным ударением, желательно (но не обязательно) разделенное на слоги

Также см. страницы обсуждения этих шаблонов (есть не у всех, но принцип там везде один), если будут неясности - обращаться ко мне. --Al Silonov 14:37, 28 июля 2008 (UTC)[ответить]

Самый простой способ создания статей, наверное, использовать файл Pagefromfile.py – я так и поступал. Раз такое дело, то уже не буду заливать слова с несколькими значениями, которые остались в моей БД :). Эх, обратились бы Вы месяцем раньше… Даже напоминает резонанс в распределенном общемировом хранилище мыслей и идей – за последний месяц уж очень синхронистично про Викисловарь вспоминают многие программисты…
Если использовать Pagefromfile.py с опцией –safe для пропуска существующих статей (а по другому и не рекомендуется), то около 80 тысяч недавно созданных TrudoBot’ом статей будут мешать внесению новой информации. Промежуточное решение – запустить как есть, и таким образом создать статьи, все еще отсутствующие в викисловре. Идеальным, но слишком трудозатратным решением было бы добавление отсутствующей информации в уже существующие статьи – в том числе редактировавшиеся людьми. А в качестве компромиссного решения можно придумать, как внести правки в статьи, которые редактировал только TrudoBot. Можно предварительно удалить все статьи, которые редактировал только TrudoBot, и которые есть в Вашем словаре. Или можно было бы перед внесением изменений и перезаписыванием поверх проверять, были ли какие-то изменения статей после создания статьи TrudoBot”ом – и если не было, то смело перезаписывать.
Нельзя ли автоматически определять индекс по Зализняку на основе информации в Вашем словаре? Вроде бы по типу слова и набору окончаний можно узнать многое… Уверен, что, по крайней мере для некоторого подмножества всех типов склонений по Зализняку, можно написать распознаватели, которые будут по набору окончаний, типу слова, и, возможно, некоторой дополнительной информации из анализа самого слова (гласная ли последняя буква и т. д.) давать индекс по Зализняку.
Если вы собрались в дальнейшем работать с Викисловарем, то, возможно, Вам будет целесообразно проделать такую дополнительную работу – по определению индексов и по работе с болванками TrudoBot”а. Pywikipediabot framework – не единственный набор инструментов для редактирования викисловаря, есть и на Джаве. Так что можно выбирать, что удобнее. Но более проработанным является именно Pywikipediabot framework.
Кстати, подпись в сообщения можно ставить при помощи ~~~~ - так было бы легче определять, где кончается Ваше сообщение и начинается ответ. Neurocod 15:40, 28 июля 2008 (UTC)[ответить]

Сурово[править]

Довольно все трудно. Неужели у вас нет возможности получить весь словарь одним файлом (например, xml), проапдейтить его, а затем развернуть все снова? Для меня и других программных пользователей это самый естественный путь. Я хочу отдать все наши словарные статьи вам, чтобы потом получить от вас новые. Как я смогу получать новые статьи?
Зализняковские пометы когда-то порождал Коля Кецарис, я спрошу у него. Имеете ли вы отношение к проекту ОмегаВики? Что за проект?
--Sokirko 13:25, 29 июля 2008 (UTC)[ответить]

Вы предлагаете американским друзьям остановить работу викисловаря из-за каких-то русских? Они вообще против болванок – считают, что мы их не успеваем наполнять, и только засоряем ссылками их полновесные статьи. Посмотрите, как происходя дампы - http://www.infodisiac.com/cgi-bin/WikimediaDownload.pl . По многу дней. Вы можете получить все в виде xml или sql файлов, но только раз в пол года. Быстрее никак не получается. Оно и ясно - при трафике в терабайт-другой в день.
Если так сложно, то ограничьтесь просто генерацией файла для заливки – выйдет около (174-124)=50 тыс. новых статей
К ОмегаВики отношение имеют совсем немного людей, и я с этим проектом никак не связан.
Я вообще тут мимолетом, пролетал и решил залить имеющийся словарь. Neurocod 18:21, 29 июля 2008 (UTC)[ответить]

Кецарис мне... ну, не обещал, но намекал на некоторую помощь в автоматизации создания "морфологически умных" болванок, но, видно, руки не дошли, да и специфика у нас не очень простая. А действительно: если есть база, где записаны 1) лемматизированая форма 2) ее основа 3) измененная основа 4) грамматические признаки; - то можно сгенерировать файл с регулярной структурой, по которой любой из наших ботов может пройтись и сделать очередную серию. Структура, например, такая:

* плашка пла́шк пла́шек сущ жен неодуш
* плошка пло́шк пло́шек сущ жен неодуш
* плюшка плю́шк плю́шек сущ жен неодуш
* плавать пла́ва гл несов неперех

(то есть: имя статьи, основа, основа1, тип, грамматические признаки; поля могут быть в другом порядке). --Al Silonov 18:58, 29 июля 2008 (UTC)[ответить]


Надо думать[править]

1. Я выложил весь наш лексикон в формате, который я описал выше, на наш сайт. Занимает 26 МБ. Мне кажется, что по смыслу это ничем не отличается от

* плашка пла́шк пла́шек сущ жен неодуш
...

Берите и заливайте болванки, если хотите.

2. Мне очень жаль, что я не могу быстро скачать весь русский wiki-словарь. Это нужно менять, если хочется, чтобы викисловарь стал не только полезным для простых людей, но и для программных комплексов. В этом смысле нужно брать пример с Wordnet, который бесплатен и прекрасно скачивается. Есть много фирм, которым нужен словарь, и которые готовы его обновлять, если они смогут его использовать в своих программах.


--Sokirko 06:35, 30 июля 2008 (UTC)[ответить]

Скачать целиком можно download.wikimedia.org, см. там ruwiktionary. А залить - только ботами. -- AKA MBG 08:45, 30 июля 2008 (UTC)[ответить]
По смыслу, возможно, не отличается, но работать с таким файлом я бы не взялся: при объеме в десятки мегабайт примерно 80% занимает бесполезная информация, которую, полагаю, можно было легко удалить при генерации файла и очень трудно - из-за простой нехватки памяти - при обработке. --Al Silonov 08:57, 30 июля 2008 (UTC)[ответить]
Программистам размер не помеха. Я при переконвертации в формат викисловаря тоже работал с файлами в сотни мегабайт. Так как лучше всего знаю С++, а не всякие perl”ы и т. д., то написал код для работы на С++. Если кому нужно – могу дать. Самое главное в нем – это набор итераторов (на C++/Qt4), которые принимают имя файла и разделитель, и дают текст между разделителями. Например, с разделителем '====’ в файле all_paradigms.slf найдено 174652 записей. Потом отдельную строку словарной карточки вместе со всеми внутренними переводами строк можно скормить еще одному итератору, который разделителями будут считать, например, уже просто переводы строк. То есть, в итераторах применен шаблон «декоратор», по аналогии с классами ввода/вывода в джаве – можно читать из файлов, строк, других итераторов, перенаправлять одно в другое.
Также большие файлы можно просматривать при помощи программы, входящей в Total Commander.
Еще один плюс словаря - присутствует буква ё. Но в идеале было бы получить классификацию по Зализняку, а я этого делать пока не умею. Neurocod 10:11, 30 июля 2008 (UTC)[ответить]

Письмо Erik Moeller[править]

Три дня назад написал письмо Erik Moeller, так я понял, он один из организаторов OmegaWiki. Ответов пока нет, похоже, что wiktionary - более живой проект. Правда, может, он мой английский не понял:
Hi, my name is Alexey Sokirko. I represent www.aot.ru. We started to distribute Russian lexicon under LGPL license in 2002. During this time we updated our lexicon many times and also we tried to get updates from other users. The idea is that the dictionary is not a private resource but should be deveoped by the community. Today aot.ru's lexicon is used in many commercial and non-profiatable organizations. It contains 174.000 entries (= 5 million word forms). I think that wiki-media is quite consonant with our principles. As far as I know there are two projects:

  1. Omegawiki;
  2. Wiktionary.

Omegawiki could be downloaded in DB-format. But there is no user-interface to update separate entries in internet. Wiktionary is a perfect web-dictionary, and is going to replace all other dictionaries like Wikipedia replaces Britannica, but there is no DB-format or xml-format.

1. Is it possible to union these projects? Could Omegawiki get regular updates from Wiktionary? 2. Is it interesting for Omegawiki to import our Russian lexicon? Is there already a person who deals with Russian? 3. Does Omegawiki have progress? Does it have a brilliant future?

Best regards, Alexey Sokirko --Sokirko 06:34, 1 августа 2008 (UTC)[ответить]

Это письмо в принципе должно быть понятно, хотя там есть огрехи, но взаимодействие с тем проектом - непростая вещь. Я для себя решил, что пока не буду заниматься ОмегаВики. НАсколько я понимаю, это вроде очередной попытки создать лингвонезависимую реализацию модели смысл-текст, но это уже совсем мудреная вивилонская башня. Главный у них там, по-моему, GerardM, может, обращаться лучше к нему? --Al Silonov 08:55, 1 августа 2008 (UTC)[ответить]
Omegawiki could be downloaded in DB-format Дампы викисловаря тоже можно загрузить и в xml, и в sql (ну понятно) форматах. Только обновлять не выйдет в этих форматах – только для анализа. А ОмегаВики – там очень маленькая аудитория, развернуть проект в технической части (получить что-то работающее, стоящее и сбалансированное) и серьезно наполнить к 2012 году, скорее всего, не успеют. Вывод: полезнее вкладываться в что-то более перспективное. Neurocod 09:49, 1 августа 2008 (UTC)[ответить]