Глубокое обучение на R, тренируем word2vec

Word2vec является практически единственным алгоритмом deep learning, который сравнительно легко можно запустить на обычном ПК (а не на видеокартах) и который строит распределенное представление слов за приемлемое время, по крайней мере так считают на Kaggle. Прочитав здесь про то, какие фокусы можно делать с тренированной моделью, я понял, что такую штуку просто обязан попробовать. Проблема только одна, я преимущественно работаю на языке R, а вот официальную реализацию word2vec под R мне найти не удалось, думаю её просто нет. (далее…)

Планировщик событий в MySQL

Начиная с версии 5.1 в MySQL появился планировщик событий, позволяющий выполнять различные действия в определенное время. Из этого следует то, что часть функционала можно перенести из Cron на сам MySQL. По умолчанию, планировщик отключен. Включим его в конфиге. (далее…)

Symfony 2 Joboard : Тестирование форм

Давайте откроем файл JobControllerTest и добавим в него функциональный тест охватывающий процесс создания и валидации вакансии. В конце файла добавьте следующий код: (далее…)

Я, РобоЛойер, или как искать аномалии в документах

Представляете ли вы, сколько нормативных документов в час приходится просматривать корпоративному юристу и к каким последствиям может привести его невнимательность? Бедолага юрист должен вчитываться в каждый договор, тем более, если для него нет типового шаблона, что случается часто. Глядя в уставшие глаза нашего корпоративного юриста, мы решили создать сервис, который будет находить проблемы в документах и сигнализировать о них задремавшему юристу. В результате мы создали решение с агрегацией знаний по некоторой базе договоров и подсказками юристам, на что следует обратить особое внимание. Конечно, не обошлось без магии. Математической магии под названием Anomaly Detection. В основном, подходы Anomaly Detection применяются для анализа поведения разнообразного оборудования для выявления отказов, или в банковском секторе для определения фрода. А мы попробовали применить эти алгоритмы для анализа юридических документов. Следуйте под кат, чтобы узнать, как мы это делали. (далее…)

Изучаем алгоритмы: полезные книги, веб-сайты, онлайн-курсы и видеоматериалы

В этой подборке представлен список книг, веб-сайтов и онлайн-курсов, дающих понимание как простых, так и продвинутых алгоритмов. Воодушевленный awesome-awesomeness и некоторыми другими шикарными библиотеками, я написал список лучших, на мой взгляд, источников для изучения и практики знаний алгоритмов. Если вы хотите поспособствовать развитию списка, пожалуйста, прочтите Гайд по развитию списка. (далее…)

Обзор компонентов Symfony2 : Templating

Компонент Шаблонизатор (Templating)

Как правило, для отрисовки самих шаблонов с использованием переменных, этот компонент использует какой-либо движок шаблонизатора. Хотя сам компонент позволяет создавать собственные шаблонизаторы, мы с вами узнаем, как правильно интегрировать сторонний движок, например Twig или Smarty. А также настроим загрузку правильного шаблонизатора в зависимости от расширения файла шаблона. (далее…)

Шаблоны проектирования в PHP : Цепочка обязанностей

Назначение паттерна?

  • Паттерн Chain of Responsibility (Цепочка обязянностей) позволяет избежать жесткой зависимости отправителя запроса от его получателя (т.е. обеспечивается слабая связанность компонентов системы), при этом запрос может быть обработан несколькими объектами.
  • Объекты-получатели связываются в цепочку. Запрос передается по этой цепочке, пока не будет обработан.
  • Вводит конвейерную обработку для запроса с множеством возможных обработчиков.
Многие зададут вопрос, а что такое запрос? В данном контексте запрос - это любая задача, которая должна быть обработана несколькими объектами (или одним если есть только один обработчик). Например мы должны записать сообщение в лог - то это конкретная задача т.е. запрос. Получатель в таком случае - это тот класс, который будет обрабатывать запрос (задачу). (далее…)

Nunjucks: Шаблонизатор для JavaScript

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

  • для совместного использования разметки на страницах;
  • для включения отдельных блоков с функциональностью (при необходимости);
  • в общем и целом для упрощения процесса построения в меру сложных макетов страниц c минимумом прилагаемых усилий.
(далее…)

Nested Set

Хранение иерархических структур при помощи модели вложенных множеств

Создание модели для хранения иерархических данных - совсем непростая задача. Что же мы подразумеваем под иерархическими данными? Представьте, что вам необходимо организовать список продуктов по категориям. Например, у вас будет несколько основных категорий: продукты, оборудование, электроника. А далее вам потребуется разбить их на подкатегории, а те в свою очередь, на более узкие категории. На бумаге всё выглядит довольно просто, а вот в таблице СУБД (система управления базами данных) дело обстоит совсем по другому. В этой статье я попробую рассказать об основной идее этой модели и когда её следует применять. Начну с объяснения более простой иерархической модели, а далее перейдём к модели вложенных множеств. (далее…)

Symfony 2 Joboard : Отправка писем через Mailer

Symfony по-умолчанию содержит в себе один из лучших решений в PHP для организации рассылки - Swift Mailer. Конечно же библиотека полностью интегрирована с Symfony и включает в себя некоторые дополнительные функции. Давайте начнем с отправки простого письма с токеном, в котором партнеру сообщается, что его аккаунт был активирован. Но сначала надо настроить несколько параметров в файле parameters.yml: (далее…)