Как стать автором
Обновить
25
0
Александр Кузнецов @akuznetsov

Пользователь

Отправить сообщение

Русская морфология, основанная на памяти

Время на прочтение 3 мин
Количество просмотров 5.1K
Один из перспективных подходов в машинном обучении базируется на запоминании уже разобранных примеров и поиске похожего образца. Например, у нас уже есть коллекция расшифрованных аудиозаписей, и если появляется новый звуковой файл, мы ищем похожий образец и на его основе строим распознавание. Рассмотрим, как базируясь на этом принципе, можно построить морфологию русского языка.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Комментарии 37

Модификация байт-кода виртуальной машины Java

Время на прочтение 7 мин
Количество просмотров 12K
Данный пост является продолжением статьи о байт-коде виртуальной машины Java, и мы считаем, что читатель имеет представление о его структуре. Наиболее распространенной библиотекой для модификации байт-кода является фрейморк ASM от object web. На нем построено большинство высокоуровневых библиотек, в частности cglib.

Библиотека ASM имеет два варианта API. Что бы лучше представить отличие между ними, проведем следующую аналогию. Класса это некое дерево. Корень его- сам класс. Переменные, методы, подклассы это его листья. Инструкции — листья методов. Таким образом можно провести параллель с XML и двумя типами его парсеров. Первый вариант Core API похож на SAX парсер. Когда нужно прочитать, создать или внести изменения, делается обход дерева представления класса. Второй вариант (Tree API) работает по прицепу DOM парсера. Сначала строиться дерево представления, а затем с ним производиться необходимые манипуляции. Очевидно, что первый вариант API менее ресурсоемкий, более подходящей для внесения небольших изменений. Второй требует больше ресурсов, но и дает более гибкие возможности. Мы рассмотрим только первый вариант API.

Читать дальше →
Всего голосов 35: ↑26 и ↓9 +17
Комментарии 2

Структура байт-кода виртуальной машины Java

Время на прочтение 4 мин
Количество просмотров 27K
В последнее время на Хабре появились статьи которые затрагивают манипуляцию байт-кода. Что заставило меня опубликовать следую статью посвященную его структуре.

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

Такая техника широко применяется для реализации AOP, создания тестовых фреймворков, ORM. Особенно хочется отметить terracotta, продукт с красивой идеей кластеризации jvm и на всю катушку использующей модификации байт-кода. Эта заметка будет посвящена обзору структуры байт-кода, первой части этой сильной связки.
Читать дальше →
Всего голосов 41: ↑37 и ↓4 +33
Комментарии 13

Гибридная реализация русской морфологии

Время на прочтение 3 мин
Количество просмотров 2K
При создание поисковых решение одним из первых с чем приходиться сталкивать разработчику это предварительная обработка текста. Разбивка на термины, фильтрация стоп слов. Важной операцией влияющей на качество поиска на данном этапе является приведение слов к нормальной форме. Ниже приведены основные подходы к этой проблеме.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 4

Информация

В рейтинге
Не участвует
Откуда
Саратов, Саратовская обл., Россия
Дата рождения
Зарегистрирован
Активность