Pull to refresh
324
0
Maxim Mozgovoy @rg_software

university professor and software developer

Send message

NLP: проверка правописания — взгляд изнутри (часть 1)

Reading time4 min
Views7.1K
Читавшие мои предыдущие публикации знают, что пишу я достаточно редко, но обычно сериями. Хочется собраться с мыслями на заданную тему и разложить их по полочкам, не втискивая себя в прокрустово ложе одной короткой статейки.

На сей раз появился новый повод поговорить об обработке текстов (natural language processing то бишь). Я разрабатываю модуль проверки правописания для одной конторы. На выходе должна получиться функциональность, аналогичная встроенной в MS Word, только лучше :) Не могу пока назвать себя крупным специалистом в этой области, но стараюсь учиться. В заметках постараюсь рассказать о том, куда движется наш проект, как устроен тот или иной этап обработки текста. Может, в комментариях услышу что-нибудь новое/интересное и для себя. Если проекту с этого будет польза — прекрасно. Как минимум, устаканю данные у себя в голове, а это тоже неплохо.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments14

GPL и некоторые опен-сорсеры: я негодую!

Reading time4 min
Views826
Заранее прошу прощения, что буду пересказывать давно известные вещи, но вот на днях столкнулся сам, и просто не могу не высказаться :)

[краткое содержание: хотел воспользоваться для своих нужд так называемым «свободным ПО», потратил кучу времени, и в итоге ушёл ни с чем].

История такова. Имеется заказчик, продающий некоторый программный продукт. Для этого продукта предлагается написать очень полезный, но в общем-то необязательный модуль (M). По моим представлениям, модуль состоит из двух крупных алгоритмов, один из которых (M1) в чистом виде в природе не существует (т.е. его-то и надо сочинить), а второй (M2) представляет собой по сути библиотечную процедуру, хоть и весьма нетривиальную.

Разумеется, можно самому написать как M1, так и M2, но зачем изобретать велосипед? И я отправился за M2 на просторы интернета. И что же я там увидел, на этих просторах?
Читать дальше →
Total votes 21: ↑10 and ↓11-1
Comments50

Заметки об NLP (часть 10)

Reading time9 min
Views8.3K
(Первые части: 1 2 3 4 5 6 7 8 9). Как говорилось в известной рекламе, «вы не ждали, а мы пришли» :)

За время, прошедшее после публикации девятой части, я прочитал одну хорошую книжку по теме (в to-read списке ещё парочка), множество статей, а также пообщался с несколькими специалистами. Соответственно, накопился новый объём материала, заслуживающий отдельной заметки. Как обычно, знакомлю других, параллельно структурирую знания для себя.

Сразу прошу прощения: эта часть для чтения и понимания достаточно трудна. Ну да, как говорится, не всё коту масленица. Сложным задачам соответствуют сложные тексты :)
Читать дальше →
Total votes 41: ↑31 and ↓10+21
Comments12

Секреты успешной системы образования

Reading time8 min
Views5K
Честно говоря, даже не думал подключаться к «дням образования на Хабре», но так уж вышло — наткнулся на свежевышедшую статью Бёрда Киви «Даёшь молодёжь!». Статья о том, какие действия в Штатах и в Великобритании государственные мужи предпринимают для роста интереса среди подростков к компьютерным технологиям. Проблема в том, что становиться специалистами как-то вот немногие рвутся, а кому-то работать в DARPA и тому подобных конторах завтра нужно. В конце приводится ссылка на статью из Wall Street Journal «What Makes Finnish Kids So Smart?», в которой описываются реалии финских школ. Как замечает уважаемый Бёрд, в Финляндии англо-американских проблем вроде бы не видно.

Вот именно статью из WSJ я и хочу предложить вашему вниманию. Как человек с семилетним опытом жизни в Финляндии (к сожалению, на неопределённый срок прерванным), я неплохо знаком с тамошними особенностями. Отчасти мой перевод является данью уважения организации финского общества, но основная цель — показать хорошую постановку образовательного процесса на понятном примере. Надо сказать, статья рисует совершенно пасторальную картинку, так что не забывайте — автор всё-таки не я, а некая Ellen Gamerman, и все претензии к ней :)

Речь в статье идёт о школе. Я думаю, это даже поважнее университета. Существует же преемственность: хороший школьник -> хороший студент. Все выделения жирным шрифтом мои, [комментарии в квадратных скобках] тоже. Статья достаточно длинная, так что я позволю себе не очень существенные сокращения текста.
Читать дальше →
Total votes 71: ↑54 and ↓17+37
Comments74

Заметки об NLP (часть 9)

Reading time7 min
Views5.5K
(Первые части: 1 2 3 4 5 6 7 8). Да возрадуются минусующие, сегодня представляю вниманию читателей последнюю, по всей видимости, часть «Заметок». Как и предполагалось, мы поговорим о дальнейшем семантическом анализе; также я порассуждаюю немного о том, чем в принципе можно заняться в нашей области и какие есть трудности «научно-политического» характера.
Читать дальше →
Total votes 60: ↑46 and ↓14+32
Comments16

Заметки об NLP (часть 8)

Reading time5 min
Views3.4K
(Первые части: 1 2 3 4 5 6 7). В этой части я расскажу о синтактико-семантическом анализаторе — как я его вижу. Обратите, кстати, внимание на часть 7 — она до главной страницы не добралась, так что не уверен, что все интересующиеся её видели.
Читать дальше →
Total votes 54: ↑36 and ↓18+18
Comments45

Заметки об NLP (часть 7)

Reading time6 min
Views4.2K
(Первые части: 1 2 3 4 5 6). Как и обещал вчера, продолжаем обсуждать XDG и движемся к следующим темам. Возможно, мы двигаемся слишком быстро, и действительно имело бы смысл публиковать одну статью раз в два-три дня, чтобы оставалось время всё обсудить. Но, наверно, пока «бензин есть», я буду продолжать писать. А потом можно будет вернуться и обговорить ранее освещённые вопросы. Мне кажется, что в компьютерной лингвистике разные темы настолько тесно связаны друг с другом, что разговор об одной из них без связи с другими малопродуктивен. А мы ещё не обо всём беседовали, так что лучше охватить взглядом как можно больше аспектов компьютерного анализа текста, а потом уже рассуждать о конкретике в рамках общей картины происходящего.
Читать дальше →
Total votes 39: ↑29 and ↓10+19
Comments17

Заметки об NLP (часть 6)

Reading time6 min
Views3.5K
(Первые части: 1 2 3 4 5). Надеюсь, разговор о естественном языке читателей ещё не утомил! По-моему, тематика действительно интересная (хотя популярность топиков явно идёт на убыль :) ). Что ж, посмотрим, на сколько частей меня ещё хватит. Думаю, экватор мы уже прошли, но три-четыре темы затронуть ещё можно.

На сей раз заметка полностью посвящена проекту XDG/XDK, который я пытаюсь изучать на досуге. Назвать себя специалистом по XDG пока ещё не могу. Но потихоньку двигаюсь.
Читать дальше →
Total votes 68: ↑53 and ↓15+38
Comments24

Заметки об NLP (часть 5)

Reading time5 min
Views6.5K
Что ж, продолжим. (Первые части: 1 2 3 4). Долго выбирал, что будет лучше для следующей темы — пофилософствовать о прагматике языка или поговорить конкретно об алгоритмах разбора. Учитывая, что предыдущая часть была неформальной, решил всё-таки переключиться на конкретику, а там посмотрим.

Итак, синтаксический анализ предложения. Давайте сразу определимся, что речь пойдёт о разборе в рамках концепции dependency parsing, причём определяющей методологией разбора будет точный анализ (не статистический). Начнём с небольшого обзора происходящего вокруг.
Читать дальше →
Total votes 55: ↑41 and ↓14+27
Comments41

Заметки об NLP (часть 4)

Reading time5 min
Views4.7K
(Начало: 1, 2, 3) На сей раз хочу немного отвлечься и порассуждать (а точнее, похоливарить) на тему статистических алгоритмов и вообще «обходных путей» компьютерной лингвистики.
В первых частях нашего разговора речь шла о «классическом пути» анализа текста — от слов к предложениям, от предложений к связному тексту. Но в наше безумное время появились и соблазны решить проблему «одним махом», найдя, если угодно, баг в системе или «царскую дорогу».
Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments52

Заметки об NLP (часть 3)

Reading time5 min
Views9.8K
(Начало: 1, 2) Что ж, подходим к самому интересному — разбору предложений. Тема эта многогранна и многоуровнева, так что подступиться к ней не очень просто. Но ведь трудности лишь закаляют :) Да и выходные, текст пишется легко…

Начнём с такого понятия, как синтаксический анализ предложений (по-английски parsing). Суть этого процесса состоит в построении графа, «каким-либо образом» отражающего структуру предложения.
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments53

Заметки об NLP (часть 2)

Reading time4 min
Views5.9K
Хотя в первой части я и говорил, что не собираюсь останавливаться на морфологии, видимо, совсем без неё не получится. Всё-таки обработка предложений сильно завязана на предшествующий морфологический анализ.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments43

Заметки об NLP (часть 1)

Reading time5 min
Views15K
В преддверии Нового года решил начать небольшой цикл статей, посвящённых наиболее интересующему меня лично направлению в обработке текстов на естественном языке. (То есть NLP в заголовке означает natural language processing — ваш К.О.) Синтаксический анализ, семантика, машинный перевод, поиск смысла слова в контексте — в общем, вся радость компьютерного лингвиста :)

Наверно, сразу имеет смысл определиться с уровнем изложения. Я сам пытаюсь заниматься компьютерной лингвистикой (с переменными успехами). Постараюсь рассказать о том, что конкретно волнует, чего уже можно, чего пока нельзя, и над чем как раз сейчас надо работать. Быть может, эти статьи помогут мне самому отструктурировать информацию в голове и опираться на уже готовую структуру в новом году. А если у читателей появятся свои идеи или мысли о сотрудничестве — ещё лучше.
Интересующихся прошу под кат
Total votes 67: ↑57 and ↓10+47
Comments54

Студент, маши лопатой

Reading time2 min
Views1.4K
Хочу привлечь внимание хабровчан (особенно студентов) к вчерашней заметке о замечательном Сибирском федеральном университете. Очень советую прочитать статью целиком, но вкратце суть такова. Расследуется дело о неправомерном направлении студентов на работы по ликвидации последствий известной аварии на Саяно-Шушенской ГЭС.

У меня по поводу прочитанного возникают следующие соображения.

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

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

А в-третьих, повторю свою любимую мысль о том, что европейская система образования нам нужна. Смотрите, студентов заставляли работать «под угрозой отчисления». Как это? Не может декан просто взять и без повода отчислить студента. А вот завалить его на экзамене в наше время проще простого. Потому что экзамены устные, и что там происходило — никому неизвестно. И не надо мне говорить, что на устном экзамене можно «вытянуть» человека — где эти святые люди? Мне опыт подсказывает, что скорее «утопят», да ещё и из совершенно левых соображений. А если бы всё было на бумаге (чёткий письменный экзамен с заранее оговоренными правилами оценивания), так просто «завалить» кого-либо и выгнать из университета было бы куда сложнее.

Резюме. Все эти методы брежневской эпохи а-ля «на картошку» должны умереть, и в первую очередь за их искоренением должны следить сами студенты и их родители.
Total votes 120: ↑97 and ↓23+74
Comments221

Финляндия

Reading time5 min
Views5.6K
Продолжим тему жизни по ту сторону границы небольшим рассказом о Финляндии (пока не опередили :) ). Живу в Финляндии уже семь лет, прошёл университет и аспирантуру, имею достаточно полное представление о повседневной жизни и немного менее полное представление (в основном через опыт друзей) о карьерных возможностях.
Читать дальше →
Total votes 155: ↑138 and ↓17+121
Comments128

Разрушая заклинание (Breaking the spell)

Reading time2 min
Views818


К сожалению, далеко не все заслуживающие внимания книги оперативно переводятся нашими издателями, и работа Дэниэла Деннетта Breaking the Spell (2006 год) относится к их разряду. Однако это не повод упускать достойную книгу из вида.

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

Деннетт — известный американский философ, работающий в области когнитивных наук. Будучи материалистом, живущим в достаточно религиозном американском обществе, Деннетт неоднократно обращался к феномену религии. В книге Breaking the spell он пытается изучить религию как «феномен естественной природы», развившийся в человечестве на протяжении тысячелетий естественным эволюционным путём — как в своё время прямохождение или речь.

Идея в том, что по Деннетту религиозное мировоззрение (в отличие от атеистического) так или иначе позитивно сказывалось на выживаемости человеческого вида, потому и сохранилось. Что, впрочем, не мешает нам критически относиться к нынешнему положению вещей.

В книге изучается идея эволюции элементов человеческой культуры (мемов), сильно перекликающаяся с книгами Докинза. Автор полагает, что к элементам культуры (к той же религии) применима теория эволюции Дарвина: полезные элементы выживают и мутируют, вредные вымирают.

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

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

Если говорить о настоящем времени, Деннетт критикует религиозное мировоззрение и религиозные организации, предлагая здравомыслящим людям разделить ценности Брайт-движения.

В целом, книга написана с большим юмором и легко читается (не то что моя рецензия :) ). По сути предлагается серьёзное научное исследование религии как явления природы, и этим книга оригинальна. В качестве расширителя кругозора весьма рекомендуется.

На Амазоне книга стоит всего 11 долларов.

Русскоязычному читателю автор уже знаком — прежде всего, как соавтор Дагласа Хофштадтера по книге Mind's I (Глаз разума). Вообще, что Хофштадтер, что Деннетт — замечательные авторы, и скудость их русскоязычных переводов — более чем печальное упущение. Ведь их книги можно читать одну за другой.

Остаётся лишь надеяться на энтузиазм возможных переводчиков. По правде говоря, я бы и сам взялся, да где столько времени изыскать :)
Total votes 23: ↑12 and ↓11+1
Comments6

Модернизация игр ZX Spectrum

Reading time1 min
Views1.4K
Недавно мы отмечали двадцатисемилетие любимого Speccy. Я решил, что это хороший повод выложить в открытый доступ свой пока ещё сыроватый, но вполне пригодный для использования проект ZX Recoloring (пока хостится на моей личной страничке, дальше подумаем).

Кратко о проекте (для тех, кому лень читать длинные тексты на основной странице): я предлагаю способ «раскраски» исходных спектрумовских игр, с помощью которого можно получить лучшее из двух миров — а именно, насладиться любимой игрой детства, при этом получая все прелести современного разрешения экрана и неограниченного количества цветов. Конечно, возможности описываемого способа не безграничны, но всё-таки достаточно широки.

Может, кому-то описанные идеи покажутся интересными. По крайней мере, я на это надеюсь. Буду рад отзывам! :)

UPD: Проект переехал. Новый адрес — www.zxrecolor.net
Total votes 56: ↑55 and ↓1+54
Comments55

Книги с якорями и без

Reading time2 min
Views667
Было дело, в название одной из моих книжек по просьбе издателя вставили слово «С++». Мне это казалось неправильным, ибо книга скорее о программировании вообще, а не о С++ в частности. Издатель же мотивировал свою позицию необходимостью создать простой и понятный «якорь» для тех, кто расставляет книги на полках в магазине. Иначе, говорил он, книгу запихнут туда, где ты и не догадаешься её искать.

Что ж, вот оно — подтверждение его правоты из магазина «Буквоед» славного города Санкт-Петербурга:



В центре композиции находится не так давно раскритикованная мною книжка «Идеальный код».
Книга (не будем обсуждать её достоинства и недостатки) однозначно рассчитана на программистов (90% всего текста — это листинги, которые предполагается изучать). Соседние же издания явно предназначены для иной аудитории.

Это, конечно, забавно, но глупость этих товарищей может легко привести к том, что покупатель не заметит интересующей его книги. Бывают ситуации и похуже. Например, в одном из книжных магазинов в отделе компьютерной литературы я купил замечательные «Записки автоматизатора» Андрея Орлова.

В другом книжном магазине эта же книга находилась совсем в другом помещении — в разделе «менеджмент», рядом с небезызвестной Ашмановской «Жизнью внутри пузыря». В этом есть известная логика. По крайней мере, книги одного издательства (в основном специализирующегося на менеджменте) оказались рядом. Но айтишник туда вряд ли бы заглянул.

В чём же «мораль сей басни»? Не знаю. Наверно, в том, что нынешняя структура магазина уже не совсем удовлетворяет наших потребностей. Найти книги по своей тематике (я говорю не о поиске конкретной книги, а о «серфинге» в магазине) становится сложно. Можно книги тегировать, наверно, но потом всё равно никто же не будет дублировать книги в двух разных отделах (т.е. выставлять того же Орлова в «Менеджменте» и в «IT»). Да и умственные способности тех, кто книги расставляет, не всегда самые высокие :)
Total votes 72: ↑56 and ↓16+40
Comments53

Начало научной карьеры (часть 7)

Reading time5 min
Views3.2K
Что ж, продолжим, не отходя от кассы.
В этой части речь пойдёт о «внешних» фондах и прочих способах закрепиться в университетских стенах. В конце концов, именно последняя задача соответствует заглавию всей серии статей :)
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments6

Начало научной карьеры (часть 6)

Reading time4 min
Views2.5K
Ну что ж, повествование потихоньку начинает выходить за рамки аспирантской деятельности и, стало быть, подходить к пределам моей компетенции :) Пока есть идеи, о чём писать, а дальше можно перейти на «заявки читателей» — если будут просьбы осветить какой-либо этап или вопрос подробнее, это можно устроить.

В этой же части поговорим о процессе поздней аспирантской и ранней постаспирантской деятельности.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments17

Information

Rating
3,857-th
Location
Фукусима, Япония
Date of birth
Registered
Activity