Pull to refresh
64
0
Денис Кулагин @kdenisk

Компьютерная лингвистика

Send message

Как и зачем работать медленнее? Метод Сергея Королёва

Reading time15 min
Views95K


Будущий «отец» советской космонавтики Сергей Королёв — по центру. Страсть к авиации у него зародилась в юности, когда он записался в планерный кружок. На его долю ещё выпадут тяжёлые испытания, но юношеский запал у него останется на всю жизнь.

«Можно сделать быстро, но плохо, а можно — медленно, но хорошо. Через некоторое время все забудут, что было быстро, но будут помнить, что было плохо. И наоборот.»
Сергей Королёв, конструктор

К этим словам можно было бы больше ничего не добавлять. Но после прочтения этой цитаты могут остаться вопросы, и у нас тут, в конце концов, не сборник «цитат успешных людей», поэтому я всё же осмелюсь продолжить. Ведь кто из нас не стоял когда-то перед дилеммой между принесением немедленных результатов и обеспечением высокого качества работы? Что ж, Сергей Королёв, одна из ключевых фигур в истории освоения человеком космоса, мог бы многое вам поведать.

Читать дальше →

Краткий разбор статьи «DeViSE: A Deep Visual-Semantic Embedding Model»

Reading time4 min
Views1.4K

Рассматриваемая статья.


Введение


Современные распознавательные системы лимитированы классифицировать на относительно не большое количество семантически не связанных между собой классов. Привлечение текстовой информации, даже несвязанной с картинками, позволяет обогатить модель и в некоторой степени решить следующие проблемы:


  1. если модель распознавания совершает ошибку, то часто эта ошибка семантически не близка к правильному классу;
  2. нет возможности предсказать объект, который относится к новому классу, который не был представлен в обучающем наборе данных.

Предложенный подход предлагает отображать картинки в богатое семантическое пространство, в котором метки более схожих классов находятся ближе к друг другу, чем метки менее похожих классов. Как результат, модель дает меньше семантически далеких от истинного класса предсказаний. Более того, модель, учитывая и визуальную и семантическую близость, может правильно классифицировать изображения, относящиеся к классу, который не был представлен в обучающем наборе данных.

Читать дальше →

Как заменить лампочку на рабочем месте так, чтобы тебя не уволили?

Reading time4 min
Views158K

Уже три года я живу и работаю в Германии. В декабре прошлого года в нашем кабинете перегорела одна из ламп дневного света. Но не просто перестала светить, а как это часто бывает у люминесцентных ламп со стартером, стала постоянно гаснуть и включаться снова с характерным щелчком. Мои коллеги сразу же позвонили секретарю, та вызвала электрика. Через три дня секретарь сказала, что лампу поменяют нескоро, так как их нет на складе и нужно заказывать. Меня эта ситуация категорически не устраивала. Это моргание раздражало очень сильно.



У нас на этаже есть кладовая, где стоят точно такие же лампы. Только в эту кладовку люди ходят раз в неделю. Самое простое решение – заменить лампу в кабинете на лампу из кладовки. А когда придут новые, сделать нормально.


Вообще эту лампу поменять очень легко. У меня были такие лампы и дома, и на работе. Я, будучи админом, проворачивал этот фокус с подменой ламп много раз.


Я взял барный стул и попросил коллегу-немца подвинуться – лампа висела прямо над его рабочим местом. Нильс спросил, что я задумал, и я поделился с ним своей идеей. Он радостно воскликнул: «Классно, мы будем тебе очень благодарны, а то она уже всем надоела!», а потом шепотом добавил: «… но я бы не советовал тебе этого делать!»

Андрей Гейм: Бойтесь технологического кризиса

Reading time4 min
Views40K
«Социальные сети не спасут нас от астероида, который мчится к Земле»
— Андрей Гейм (профессор Манчестерского университета, в 2010 году получил Нобелевскую премию по физике за работу над графеном)

image

«Что вы вообще здесь делаете?» — миллиардер, который разбогател на программном обеспечении, был крайне удивлен, когда я сказал ему, что я физик. Реакция была содержательной: будто бы он встретил сезонного рабочего на нашем месте встречи – Всемирном экономическом форуме в Давосе.

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

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

Рендеринг шрифтов с помощью масок покрытия, часть 1

Reading time12 min
Views5.5K
image

Когда мы приступали к разработке нашего профилировщика производительности, то знали, что будем выполнять почти весь рендеринг UI самостоятельно. Вскоре нам пришлось решать, какой подход выбрать для рендеринга шрифтов. У нас были следующие требования:

  1. Мы должны иметь возможность рендерить любой шрифт любого размера в реальном времени, чтобы адаптироваться к системным шрифтам и их размерам, выбранным пользователями Windows.
  2. Рендеринг шрифтов должен быть очень быстрым, никаких торможений при рендеринге шрифтов не допускается.
  3. В нашем UI куча плавных анимаций, поэтому текст должен иметь возможность плавно перемещаться по экрану.
  4. Он должен быть читаемым при малых размерах шрифтов.

Не будучи в то время большим специалистом в этом вопросе, я поискал информацию в Интернете и нашёл множество техник, используемых для рендеринга шрифтов. Также я пообщался с техническим директором Guerrilla Games Михилем ван дер Леу. Эта компания экспериментировала со множеством способов рендеринга шрифтов и их движок рендеринга был одним из лучших в мире. Михиль вкратце изложил мне свою идею новой техники рендеринга шрифтов. Хотя нам вполне было бы достаточно уже имевшихся техник, меня эта идея заинтриговала и я приступил к её реализации, не обращая внимания на открывшийся мне чудесный мир рендеринга шрифтов.
Читать дальше →

Особенности поиска работы в Европе

Reading time14 min
Views82K
Разработчик, с гуманитарным высшим, средним английским (сильный акцент и неправильное произношение), 15 годами опыта в десятке проектов, обремененный семьей – вдруг решил найти работу в Западной Европе.

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

Представляем вакуумный транзистор: устройство, сделанное из пустоты

Reading time10 min
Views48K

Любопытная смесь из электронной лампы и МОП-транзистора однажды, возможно, заменит традиционный кремний


image

В сентябре 1976 года, в разгаре Холодной войны, Виктор Иванович Беленко, советский лётчик и перебежчик, отклонился от курса тренировочного полёта над Сибирью, который он проводил в самолёте Миг-25П, быстро пересёк Японское море на малой высоте, и посадил самолёт в гражданском аэропорту Хоккайдо, когда топлива уже оставалось всего на 30 секунд. Его внезапная измена Родине стала манной небесной для американских военных аналитиков, у которых впервые появилась возможность вблизи изучить высокоскоростной советский истребитель, считавшийся ими одним из наиболее передовых самолётов. Но то, что они увидели, их поразило.

Корпус летательного аппарата был сделан грубее, чем у современных ему американских истребителей, и в основном состоял из стали, а не из титана. Приборные отсеки были заполнены оборудованием, работавшим на электронных лампах, а не на транзисторах. Очевидным заключением, несмотря на бытовавшие страхи, стало то, что даже самая передовая технология безнадёжно отстала от западной.
Читать дальше →

Минимальный почтовый сервер на основе Postfix и Dovecot. Часть 1: Dovecot

Reading time4 min
Views143K
Цель: получить минимально работающий почтовый сервер, используя только Postfix и Dovecot, с минимальным изменением настроек по умолчанию. Получить каркас системы, на основе которого можно, в дальнейшем, настраивать спам фильтры, работу с базами данных, LDAP…
Почтовая система должна:
  1. Поддерживать любое количество доменов и пользователей.
  2. Обслуживать пользователей, не привязанных к локальным учетным записям.
  3. Обеспечивать доступ к почтовым ящикам по протоколам POP3, IMAP с поддержкой TLS.
  4. Обеспечивать отправку и прием писем по протоколу SMTP с поддержкой TLS.

Настройка проводилась в CentOS 6. Postfix 2.6.6, Dovecot 2.0.9. Никакие особенности ОС не применялись.
Читать дальше →

Как заработать максимум на своем сайте. 22 способа и 240+ ссылок

Level of difficultyEasy
Reading time17 min
Views473K


Эта статья родилась из личного опыта. Я искал самые эффективные способы монетизации сайта (ныне уже проданного на Telderi) и в какой-то момент понял, что тема очень обширная и требует подробного исследования. А его результаты могут быть интересны не мне одному.

Рассматриваются способы, наиболее актуальные для России и СНГ и не требующие участия разработчиков или требующие в минимальной степени.

Статья ввиду большого объема писалась не один месяц, поэтому не серчайте сильно, если где-то встретите неточности (в расценках, форматах). Просто напишите об этом в комментариях.
Читать дальше →

Извлечение сущностей из текста с помощью Stanford NLP с нуля

Reading time4 min
Views14K
Данная статья предназначена для тех, кто никогда не работал со Stanford nlp и столкнулся с необходимостью в кратчайшие сроки изучить его и применить.

Данный софт достаточно распространен, и, в частности, наша фирма — БалтИнфоКом — использует эту программу.

Для начала надо понять простую вещь: Stanford NLP работает по принципу аннотирования слов, то есть на каждое слово «навешиваются» одна или более аннотаций, например POS (Part of Speech — часть речи), NER (Named-Entity Recognizing – именованная сущность) и т.д.

Первое, что видит новичок, зайдя на сайт Stanford NLP в раздел "быстрый старт", это следующую конструкцию:

Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,regexner,parse,depparse,coref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
// create a document object
CoreDocument document = new CoreDocument(text);
// annnotate the document
pipeline.annotate(document);

Здесь StanfordCoreNLP – это конвейер, на вход которому подается наш текст, предварительно упакованный в обьект CoreDocument. StanfordCoreNLP, это самый главный и часто используемый объект во всей структуре, с помощью которого происходит вся основная работа.

Сначала задаем параметры в StanfordCoreNLP и указываем, осуществление каких действий нам нужно. При этом все возможные комбинации этих параметров можно найти на официальном сайте по этой ссылке.

  • tokenize – соответственно разбиение на токены
  • ssplit – разбиение на предложение
  • pos — определение части речи
  • lemma – добавление к каждому слову его начальной формы
  • ner — определение именованных сущностей, таких как «Организация», «Лицо» и т.д.
Читать дальше →

Speech AI с Python & Google API

Reading time3 min
Views68K

Speech AI с Python & Google API


image


Добрый день!


Совсем недавно пришла в голову идея сделать "говорилку" на русском языке. В голове была простенькая схема наподобие:


1) Распознать речь с микрофона
2) Придумать более — менее разумный ответ.
В этом пункте можно сделать много интересного.
Например реализовать управление чем — нибудь физическим и не очень.
3) Преобразовать этот самый ответ в речь и воспроизвести.


Самое интересное, что для всех этих пунктов нашлись библиотеки под Python, чем я и воспользовался.


В итоге получилась связка, практически не зависящая от выбранного в качестве разговорного языка.

Использование Google Cloud Speech API v2 в Asterisk для распознавания русской речи

Reading time6 min
Views46K
Добрый вечер, коллеги. Недавно возникла необходимость добавить систему голосовых заявок в нашу ticket-систему. Но не всегда удобно каждый раз прослушивать голосовой файл, поэтому возникла идея добавить к этому систему автоматического распознавания голоса, к тому же в будущем она бы пригодилась в других проектах. В ходе этой работы были испробованы два варианта API наиболее популярных систем распознавания речи от google и yandex. В конечном итоге выбор пал на первый вариант. К сожалению, не нашел подробной информации об этом в интернете, поэтому решил поделиться полученным опытом. Если интересно, что из этого получилось добро пожаловать под кат.
Читать дальше →

Визуализация данных в браузере с помощью D3.js

Reading time13 min
Views23K


Михаил Дунаев ( war_hol )


С визуализацией данных и с различными диаграммами мы сталкиваемся каждый день, это какие-то Google Analitics, Интернет-банки, это Excel и т.д.



На самом деле графики преследуют человечество всю нашу историю. Одна из первых визуализаций данных — это Х век н.э. Неизвестный астроном изобразил с помощью диаграмм движение небесных тел:

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

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

Tsung: Нагрузочное тестирование Web-приложений

Reading time3 min
Views43K

Tsung — это распределенная система нагрузочного тестирования, написанная на Erlang'е. Заявлена поддержка HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and XMPP/Jabber. В этой статье я опишу как протестировать обычный web сайт на нагрузку.
Читать дальше

Инструкция как скомпилировать динамический модуль ngx_pagespeed для Nginx на Debian

Reading time3 min
Views9.2K
Цель: Предоставить инструкцию по сборке динамического модуля, дать понимание принципа сборки динамического модуля для Nginx поставленного из репозитория Debian.

Целевая аудитория: Администраторы серверов, продвинутые администраторы сайтов, сео-оптимизаторы и просто те кто хочет добиться хорошей оценки от сервиса Google PageSpeed.

Статей на эту тему не мало в поиске светится, но на мой взгляд ни одна не раскрыта как надо. Да и нет толковых пояснений. Для не опытного юзера это может оказаться сложным, да и большая часть статей поясняет как собирать Nginx вместе с модулем, и только единицы показывают что можно собрать динамический.

План действий такой:

1. Арендуем vps на час.
2. Собираем на арендованной vps динамический модуль на той же самой версии Nginx что была использована на боевом (это ВАЖНО!!!. Поддержка динамических модулей у Nginx появилась с версии 1.9.11).
3. Перекидываем модуль на новый сервер.
4. Конфигурируем Nginx.
5. Применяем настройки.
6. Замораживаем версию Nginx (Если это не сделать, то при ближайшем обновлении Nginx, произойдёт падение сервера. Причина в том что скомпилированный модуль будет работать только с конкретной версией Nginx. Если захотите обновиться, скомпилируете модуль для новой версии и обновитесь).

Или следим за тем что обновляем и своевременно добавляем новый собранный модуль.

Преимущество в том что боевой сервер не подвергается изменению и если Вам к примеру не понравится ngx_pagespeed, то вы просто уберёте строчки конфигурирующие его и сам модуль. Ну и если Вы используете несколько серверов с Nginx Вы можете один раз скомпилировать модуль для них всех.
Читать дальше →

Защита от DDoS на уровне веб-сервера

Reading time5 min
Views48K
Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

image

Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
Читать дальше →

Включаем поддержку TLS v1.3 в Nginx на примере Debian 9

Reading time6 min
Views40K
Всем доброго времени суток!

Данный пост написан вследствие победы желания докопаться до сути над усталостью, сонливостью, соблазном опрокинуть очередную бутылочку пива пятничным вечером. Сразу скажу, что ничего супер сложного не раскрываю, всего лишь включение TLS v1.3 в Nginx.

image

Наверняка на Хабре найдутся те, кто уже 100 раз это делал, поэтому данная статья — больше для новичков или для тех, кто хочет найти готовое решение в виде мануала, не тратя много времени на поиски, как я, например. Вспомнив, что давно не писал на Хабре и поставив статье метку «tutorial», принялся за дело.
Читать далее

Использование Percona XtraBackup в повседневной жизни

Reading time5 min
Views60K
Высокая распространенность баз данных MySQL приводит к её использованию в разнообразных проектах, в том числе, которые требуют безостановочной работы и минимального времени восстановления. Стандартные инструменты, такие как mysqldump неудобен для использования баз данных размер, которых измеряется десятками гигабайт. К сожалению mysqldump вызывает блокировку таблиц, и операция снятия дампа или восстановления базы может занимать далеко не один час, а порой и 5-10 часов.

Благо, к нам на помощь приходит Percona XtraBackup.

image

Читать дальше →

Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 1. Инструментарий

Reading time26 min
Views43K
image

Мой инструментарий социального архитектора состоит из 20 инструментов, каждый из которых соответствует какому-либо аспекту сообщества или группы. Их можно использовать двумя способами.


Во-первых, с их помощью вы можете делать измерения существующего сообщества, оценивая его по шкале от нуля и выше.


Во-вторых, вы можете использовать их для создания сообщества, при этом прилагая усилия там, где они наиболее необходимы.


  • Четкая миссия – заявленная причина существования группы.
  • Свободное участие – насколько легко люди могут присоединиться к группе.
  • Прозрачность – насколько открыто и публично принимаются решения.
  • Бесплатные участники – как много можно платить людям за участие.
  • Свобода работы с материалами (ремиксабельность) – насколько свободно участники могут использовать работу друг друга.
  • Четкость протокола – насколько хорошо прописаны правила.
  • Компетентность власти – насколько хорошо следят за соблюдением правил.
  • Нон-трайбализм – насколько далеко распространяются права группы над своими участниками.
  • Самоорганизация – насколько свободно могут участники определять свои задачи.
  • Толерантность – как группа разбирается с конфликтами.
  • Измеримый успех – как хорошо группа может отслеживать свой прогресс.
  • Высокое награждение – как группа вознаграждает своих участников.
  • Децентрализация – насколько широко распределены участники группы.
  • Свободная рабочая среда – насколько легко создавать новые проекты.
  • Стандартная структура – насколько общая структура стабильна и предсказуема.
  • Плавность обучения – насколько легко начать и продолжить учиться.
  • Позитивность – насколько группа движима позитивными целями.
  • Чувство юмора – насколько серьезно группа себя воспринимает.
  • Минимализм – сколько лишней работы делает группа.
  • Разумное финансирование – как группа борется за выживание в экономическом плане.

Спасибо Сергею Даньшину за помощь с переводом.

Читать дальше →

Information

Rating
Does not participate
Location
Железнодорожный (Московск.), Москва и Московская обл., Россия
Registered
Activity