Участник:TrudoBot
Что этот бот делает
- Добавляет новые статьи-болванки в соответствии с шаблонами по частям речи
- Добавляет шаблоны «длина слова» для проставления соответствующих категорий в статьях
- Распознает слова, подходящие под некоторый шаблон словоизменений. Подробнее см. тут
На чем написан
Вначале, бот использовал Pywikipediabot framework. В частности, первая заливка статей летом 2008 года, использовала pagefromfile.py, со следующими результатами:
правок: 177828, первая правка: Июль 11, 2008, последняя правка: Август 03, 2008.
Весной 2009-го, с нуля, был написан новый бот - на С++/Qt. Для редактирования статей используется wikimedia API. Исходные данные для редактирования берутся из разных источников, в частности, из дампов викисловаря в xml формате, из словаря Зализняка с сайта , а также из запросов к API. Независимо от заранее подготовленных данных, перед заливкой статьи на сервер новый текст сверяется с текущей статьей. Код написан в объектно-ориентированном стиле и включает:
- классы для синхронной работы с сетью через Qt
- классы для облегчения парсинга xml и проверок xml на соответствие формату (необходимые теги/атрибуты, количество тегов каждого типа)
- классы для работы с Wikimedia API, авторизации, получения и редактирования статьи
- классы для сохранения настроек, логирования, вывода оконных сообщений
- классы-итераторы для чтения файлов по секциям (например, по строкам, или по тексту внутри <page> и </page>, и т. д.)
- эти классы-итераторы можно применять в качестве адаптеров, они могут читать текст из файла, из строки, из другого итератора. Это дает возможность быстро писать код для чтения больших текстовых структурированных файлов
- классы GUI: показа/редактирования настроек, выбора текущего действия, просмотра текущего статуса
- и другие…
Если кого-то заинтересуют исходники бота, обращайтесь. Исходники пока не открываю, так как они слишком «молодые» для публикации (сегодня дописал до рабочего состояния :) ). Neurocod 23:34, 5 мая 2009 (UTC)
Результаты работы
http://stats.wikimedia.org/wiktionary/RU/
http://stats.wikimedia.org/wiktionary/RU/TablesWikipediaRU.htm
http://stats.wikimedia.org/wiktionary/RU/ChartsWikipediaRU.htm
Незалитые-ru
Участник:TrudoBot/незалитые-ru:А
Участник:TrudoBot/незалитые-ru:Б
Участник:TrudoBot/незалитые-ru:В
Участник:TrudoBot/незалитые-ru:Г
Участник:TrudoBot/незалитые-ru:Д
Участник:TrudoBot/незалитые-ru:Е
Участник:TrudoBot/незалитые-ru:Ж
Участник:TrudoBot/незалитые-ru:З
Участник:TrudoBot/незалитые-ru:И
Участник:TrudoBot/незалитые-ru:Й
Участник:TrudoBot/незалитые-ru:К
Участник:TrudoBot/незалитые-ru:Л
Участник:TrudoBot/незалитые-ru:М
Участник:TrudoBot/незалитые-ru:Н
Участник:TrudoBot/незалитые-ru:О
Участник:TrudoBot/незалитые-ru:П
Участник:TrudoBot/незалитые-ru:Р
Участник:TrudoBot/незалитые-ru:С
Участник:TrudoBot/незалитые-ru:Т
Участник:TrudoBot/незалитые-ru:У
Участник:TrudoBot/незалитые-ru:Ф
Участник:TrudoBot/незалитые-ru:Х
Участник:TrudoBot/незалитые-ru:Ц
Участник:TrudoBot/незалитые-ru:Ч
Участник:TrudoBot/незалитые-ru:Ш
Участник:TrudoBot/незалитые-ru:Щ
Участник:TrudoBot/незалитые-ru:Э
Участник:TrudoBot/незалитые-ru:Ю
Участник:TrudoBot/незалитые-ru:Я
Участник:TrudoBot/незалитые-ru:И
TrudoBot:Индекс:Украинский_язык
Возникли проблемы при заливке списков всех украинских слов. Некоторые из слов в списке не были залиты (нет информации, либо многозначные слова), потому и желательно сохранить список всех слов. Не залиты, либо залиты с ошибками, списки слов, начинающихся на такие буквы: В, З, Н, П, С
- Индекс:TrudoBot:Украинский_язык/А
- Индекс:TrudoBot:Украинский_язык/Б
- Индекс:TrudoBot:Украинский_язык/В
- Индекс:TrudoBot:Украинский_язык/Г
- Индекс:TrudoBot:Украинский_язык/Ґ
- Индекс:TrudoBot:Украинский_язык/Д
- Индекс:TrudoBot:Украинский_язык/Е
- Индекс:TrudoBot:Украинский_язык/Є
- Индекс:TrudoBot:Украинский_язык/Ж
- Индекс:TrudoBot:Украинский_язык/З
- Индекс:TrudoBot:Украинский_язык/І
- Индекс:TrudoBot:Украинский_язык/Ї
- Индекс:TrudoBot:Украинский_язык/Й
- Индекс:TrudoBot:Украинский_язык/К
- Индекс:TrudoBot:Украинский_язык/Л
- Индекс:TrudoBot:Украинский_язык/М
- Индекс:TrudoBot:Украинский_язык/Н
- Индекс:TrudoBot:Украинский_язык/О
- Индекс:TrudoBot:Украинский_язык/П
- Индекс:TrudoBot:Украинский_язык/Р
- Индекс:TrudoBot:Украинский_язык/С
- Индекс:TrudoBot:Украинский_язык/Т
- Индекс:TrudoBot:Украинский_язык/У
- Индекс:TrudoBot:Украинский_язык/Ф
- Индекс:TrudoBot:Украинский_язык/Х
- Индекс:TrudoBot:Украинский_язык/Ц
- Индекс:TrudoBot:Украинский_язык/Ч
- Индекс:TrudoBot:Украинский_язык/Ш
- Индекс:TrudoBot:Украинский_язык/Щ
- Индекс:TrudoBot:Украинский_язык/Ю
- Индекс:TrudoBot:Украинский_язык/Я
Проблемы были вида
PHP fatal error in /usr/local/apache/common-local/php-1.5/includes/parser/Parser.php line 4281: Allowed memory size of 83886080 bytes exhausted (tried to allocate 4107435 bytes)
Имеет смысл повторить попытку в дальнейшем - как обновят оборудование, либо увеличат количество памяти, отведенное под сервер русского викисловаря.