Search
Write a publication
Pull to refresh
-24
0
Антон Холодцов @Error_403_Forbidden

User

Send message

SpeechMarkup API — превращаем речь в данные

Reading time8 min
Views18K

В статье пойдет речь о том, как из любого запроса на естественном языке получить реальные данные, с которыми может работать ваше приложение. А именно, о REST API сервиса SpeechMarkup, который преобразует обычную строчку текста в JSON со всеми найденными смысловыми сущностями с конкретными данными в каждой из них.

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

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

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

Ricochet — анонимный бессерверный протокол передачи мгновенных сообщений

Reading time6 min
Views46K
Перевод вводной части и введения в техническое описание проекта с открытым исходным кодом Ricochet (github).

Анонимная бессерверная система передачи мгновенных сообщений, которая просто работает


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

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

Примечание: проект недавно был переименован из Torsion.
Читать дальше →

Машинное обучение как сервис — бесплатно и в облаке

Reading time1 min
Views19K
Мы уже писали о машинном обучении как сервисе в облаке Microsoft Azure здесь. И, совсем недавно, Microsoft решили открыть (как ранее с Azure Web Sites) возможность бесплатного тестирования этого тестирования без аккаунта Microsoft Azure, без кредитной карты. Отличная возможность посмотреть, что умеет Machine Learning в облаке.


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

Строго типизированные комбинаторы для построения парсера и синтезатора естественного языка

Reading time13 min
Views7.1K
Известные ParserCombinator'ы и Parboiled предназначены исключительно для разбора формальных языков. Мы же решаем задачу разбора естественного языка и при этом хотим, чтобы с помощью той же грамматики можно было осуществлять синтез фраз на естественном языке, отражающих требуемую нам семантику. Было бы удобно иметь возможность описывать языковые конструкции вместе с правилами абстрагирования/конкретизации.

Например,

  1. Преобразование числительных в число («десять» -> 10:Int)
  2. и обратно (10:Int -> «десять» («десятый», «десяток» ...))
  3. Преобразование числительных вместе с единицей измерения («десять рублей» <-> NumberWithMeasurement(10, RUB))
  4. Неполный адрес («ул. Яблочная» <-> Address(street=«Яблочная»))
  5. Адрес в пределах города («улица Яблочная дом сто двадцать три квартира сорок пять» <-> Address(street=«Яблочная», building=123, flat=45))
  6. Телефон (256-00-21 («двести пятьдесят шесть ноль ноль двадцать один») <-> NumericalSequence(256,0,0,21))

Причём хотелось бы иметь следующие системные свойства:

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

Под катом — описание подхода, реализованного в библиотеке synapse-typed-expressions. Рассмотрены только числительные, но подход естественным образом распространяется на другие вышеупомянутые формальные языковые конструкции.
Читать дальше →

ASP.NET vNext Ликбез

Reading time5 min
Views42K
Ожидаемый релиз платформы ASP.NET (vNext) один из наиболее насыщенных в плане новшеств. Но вместе со всеми новинками к нам приходит и огромное число новых спецификаций, компонентов и других особенностей. В то же время мир .NET эволюционирует с такой скоростью, что просто следить за всеми новинками web-разработки от Microsoft почти не возможно. Особенно если вы до сих пор пишете на технологиях 10-летней давности (ASP.NET Web Forms, .NET 2.0) или выходец не из .NET мира веб-разработки. Возможно именно сейчас один из тех моментов когда можно пропустить все версии предыдущих обновлений и, начав с чистого листа, попасть в новый поток развития платформы. Рассмотрим основные пункты для этого:
  • vNext
  • Roslyn
  • OWIN
  • Katana
  • K

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

Изменение ConcurrentDictionary во время перебора

Reading time4 min
Views12K
Недавно решил разобраться с внутренним устройством потокобезопасных коллекций, отправной точкой в изучении устройства ConcurrentDictionary была выбрана публикация на Хабре. Принцип его работы описан просто и понятно, за что отдельное спасибо автору.

Мне показалось, один момент в публикации освещен не достаточно полно и я решил восполнить данный пробел.
Читать дальше →

Как я шифрую файлы в облаке

Reading time3 min
Views11K
Некоторое время назад, читая хабр, натолкнулся на статью, в которой автор говорит о необходимости шифрования файлов, загружаемых в облако. Будучи тем, кому неприятна одна только мысль о том, что «дядя», предоставляющий услугу облачного хранения данных, имеет возможность использовать по своему усмотрению мои файлы, я стал размышлять об их шифровании. Подталкивало к этим размышлениям и то, что облако предоставляется бесплатно. Разумеется, использование архива с паролем было жутко неудобным решением, когда речь шла о большом количестве загружаемых файлов. Давно как раз для этой цели создал себе специальную утилиту, и сейчас, коли был поднял вопрос, решил об этом рассказать.
Читать дальше →

Обзор наиболее интересных материалов по анализу данных и машинному обучению №20 (27 октября — 2 ноября 2014)

Reading time4 min
Views13K

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

Дополненная реальность помогает водителям видеть слепые зоны

Reading time3 min
Views8.8K
Автомобилями-роботами уже трудно удивить. Уже ездят прототипы, оборудование по функционалу напоминает оборудование самолетов-истребителей:

image
На этой картинке изображена Advanced Driver Assistance System (ADAS), предназанченная, если не заменить водителя, то максимально упростить вождение.

Функционал ADAS управляет переключением дальнего света, помогает удерживать автомобиль на полосе, реализует адаптивный круиз-контроль, распознает дорожные знаки, обнаруживает пешеходов/объекты, предотвращает столкновения, интерфейс реализует интеллектуальный 2D и 3D вид окружающей обстановки, предупреждает о столкновении при движении задним ходом. Дополнительно возможно расширение системы системой интеллектуального ночного видения, радаром большой дальности, лазерными дальномерами, системой заменяющей боковые зеркала. Казалось бы что придумать ничего другого нельзя. И остается только спорить о надежности этих систем и стоит ли им доверять. Но в ведущей японской лаборатории виртуальной реальности нашли еще одно направление по повышению безопасности автомобильного движения.
Читать дальше →

О Meteor подробно: почему это будущее веб-разработки

Reading time4 min
Views22K

Что такое Meteor?


Это не очередной javascript фреймворк. Ставить его в один ряд с derby, sails, angular или backbone некорректно. Meteor — это платформа для создания модульных высокоинтерактивных клиент-серверных приложений. Пусть это звучит слегка напыщенно и напоминает маркетинговый булщит слоган, но зато по сути очень точно отражает миссию и текущее состояние Meteor. Буквально несколько дней назад Meteor API выпустил первую стабильную версию (1.0).

Официальную информацию можете почитать на портале www.meteor.com, а я же хочу рассказать об особо горячо любимых мной фичах.
Что же хорошего предлагает Meteor?

Помнить все: Evernote и Anki

Reading time12 min
Views259K


Решил написать о системе, которую я использую, чтобы помнить практически все, что хочется, при минимальных затратах времени и других ресурсов. Под словом “помнить” имеется в виду любой способ найти нужную информацию — в личной памяти или в памяти компьютера, в зависимости от ситуации и от самой информации; основные требования при этом — экономия времени и контроль того, что мы запоминаем.

Я хочу достичь следующих целей при использовании системы:

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

Ниже я напишу о методах и правилах, которые составляют данную систему. Статья будет состоять из нескольких разделов:

  • Мой опыт по описанному вопросу
  • Проблемы запоминания
  • Теоретическое разрешение проблем
  • Практическое разрешение проблем с Evernote
  • Практическое разрешение проблем с Anki
Читать дальше →

Разбитие текста на предложения лингво-независимым методом на примере библиотеки AIF

Reading time9 min
Views16K
В прошлой статье мы уже рассказывали о новой NLP библиотеке. Однако тогда мы рассказали «обовсем» и не о чем конкретном. Сегодня мы поговорим о теоретических аспектах разбития предложения на токены лингво-независимыми алгоритмами. Теоретические выкладки будут подкреплены практической реализацией в библиотеке AIF. Поехали…
Читать дальше →

Хакспейс в столице Китая, что там?

Reading time4 min
Views80K


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

Продолжая нашу серию публикаций про хакспейсы — сегодня мы совершим экскурсию по хакспейсу в одном из самых больших мегаполисов мира в Пекине.

А в конце поста озвучим победителей конкурса по проектам по VoCore.
Читать дальше →

Использование подхода MVC в WinForms для самых маленьких

Reading time8 min
Views37K
В статье описаны общие принципы построения приложений, с использованием подхода MVC, на примере внедрения в приложение, использующее много лет Code Behind подход.

Не будет:
• Классического Unit Test;
• Принижения влияния Code Behind;
• Неожиданных открытий в MVC.

Будет:
• Unit Test и Stub;
• MVC;
• Внедрение подхода на базе существующего продукта.
Читать дальше →

Организация своего хоста виртуализации на Hetzner

Reading time4 min
Views47K
imageimage

Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Разрабатывается австрийской фирмой Proxmox Server Solutions GmbH, спонсируемой Internet Foundation Austria.

… и, надо сказать, очень приятная в обслуживании и эксплуатации система.

Я работаю со своими клиентами (в большинстве случаев студии веб-дизайна, или standalone-клиенты) уже около 5 лет. Все мои клиенты используют услуги немецкого хостера Hetzner. Можно долго рассуждать о качестве предоставляемых ими услуг, качестве железа в их серверах — но факт остается фактом: предложения Hetzner в сегменте root-серверов вне конкуренции по соотношению цена/качество.

Справка: по состоянию на время написания статьи стоимость ежемесячной аренды сервера линейки EX60 (Intel Core i7-920, 48 GB DDR3 RAM,2 x 2 TB SATA 3 Gb/s 7200 rpm HDD ) составляет всего 59€ в месяц. Согласитесь, совсем недорого.

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

Современные аспекты представления текстов при анализе естественного языка: классические и альтернативные подходы

Reading time9 min
Views10K

Введение


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

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

Отметим, что приводимые подходы применимы не только к текстам, а вообще к любым объектам, которые можно представить в виде символьных последовательностей, например, какие-нибудь макромолекулы (ДНК, РНК, протеины) из генетики. Всего мы рассмотрим 4 метода:

  1. Признаковое описание.
  2. Попарное наложение (выравнивание) текстов.
  3. Формирование профиля и скрытой марковской модели.
  4. Представление фрагментами.

Итак, приступим.
Читать дальше →

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 1

Reading time11 min
Views722K

Этой весной, Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

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

Конспект лекций — Питер Тиль (курс: CS183) Стартап — Стэнфорд, весна 2012 г.


Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →

Под капотом у Dictionary и ConcurrentDictionary

Reading time5 min
Views183K
Некоторое время назад, я решил, что хочу знать больше подробностей о работе многопоточности в .NET и что я уделял этому незаслуженно мало внимания в прошлом. Информации на эту тему великое множество (отправной точкой я для себя выбрал этот раздел книги «C# in a nutshell»), но, как оказалось, только малая часть ресурсов пытаются объяснить что-то в деталях.

Каждый мастер должен знать свои инструменты, а что может использоваться чаще коллекций? Поэтому я решил сделать небольшой обзор многопоточных коллекций и начать с ConcurrentDictionary (беглый обзор уже встречался здесь, но его там совсем мало). Вообще, я несколько удивился, что такой статьи для .NET еще нет (зато хватает по Java).

Итак, поехали.
Читать дальше →

Как устроен ConcurrentBag в .Net

Reading time6 min
Views39K
Среди concurrent коллекций наибольшей популярностью пользуется ConcurrentDictionary. Также часто исползуются ConcurrentQueue и ConcurrentStack.

Вообще, решение локкирования частей коллекции для thread-safe хеш-таблицы является очень простым, логичным и оттого ещё более красивым.

Структура ConcurrentDictionary даже была описана в статье на хабре Под капотом у Dictionary и ConcurrentDictionary. ConcurrentBag же является не столь популярной, так как используется в основном там, где реализуется паттерн Producer-Consumer. Причем данная структура наиболее оптимально работает тогда, когда один и тот же поток занимается добавлением и изъятием данных из коллекции. Почему так происходит, будет рассказано далее.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity