Разделение текста на предложения с помощью Томита-парсера

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


Если вы начнете это делать, то довольно быстро столкнетесь с тем, что точка — это не всегда разделитель предложений (“т.к.”, “т.д.”, “т.п.”, “пр.”, “S.T.A.L.K.E.R.”). Причем эти токены не всегда будут исключениями при разбивке текста на предложения. Например, “т.п.” может быть в середине предложения, а может и в конце.


Вопросительный и восклицательный знак тоже не всегда разделяют текст на предложения. Например, “Yachoo!”. Предложения могут разделять и другие знаки, например, двоеточие (когда следует список из отдельных утверждений).


Поэтому я долго не думая поискал готовый инструмент и остановился на Томита-парсере от Яндекса. О нем и расскажу.
Читать дальше →
Разделение текста на предложения с помощью Томита-парсера
Source: habrahabr

[Перевод] JSX — подробности

React. Продвинутые руководства. Часть Первая

Этой публикацией я открываю серию переводов раздела «Продвинутые руководства» (Advanced Guides) официальной документации библиотеки React.js.

JSX — подробности

Фундаментально, JSX является синтаксическим сахаром для функции React.createElement(component, props, ...children).

Читать дальше →
[Перевод] JSX — подробности
Source: habrahabr

Опыт создания инструмента мутационного тестирования для Erlang

Несколько недель назад, я услышал о мутационном тестировании для Clojure, это способ проверки качества тестов, при котором в исходный код вносятся небольшие изменения и тесты либо замечают это, либо нет. К примеру, если в программе использовалось условие «a > 1», а замена на «a < 1» никак не меняет результатов тестирования значит тесты могли бы быть лучше.


Я подумал, что такой инструмент будет несложно написать для Erlang, потому что язык предоставляет богатый спектр функций обработки внутренних представлений, генерируемых компилятором. Но всё оказалось не так просто. Под катом я описал проблемы и решение, к которому я в итоге пришёл.
Читать дальше →
Опыт создания инструмента мутационного тестирования для Erlang
Source: habrahabr

“Во все тяжкие 2”, Dark Forester — игра на дистанции в маленький плюс

Если вы не читали первой части истории, то эта часть вам будет не понятна или просто на просто покажется странной, о чем вообще пишет автор. Я пошел на поводу у читателей и все таки поменял порядок глав. Так что всем любителям UnityScript придется еще немного подождать.

Да и кстати, как это фото связано с Темным Лесником?
image


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

Горе разработчик очутился у родителей с женой и ребенком, в одной комнатушке в тридцать с лишним лет, не живя, с родителями с 18-ти. Основной компьютер сломан, Unity движок просрочен, куча долгов и безработица.
Читать дальше →
“Во все тяжкие 2”, Dark Forester — игра на дистанции в маленький плюс
Source: habrahabr

«Во все тяжкие 2», Dark Forester — игра на дистанции в маленький плюс

Если вы не читали первой части истории, то эта часть вам будет не понятна или просто на просто покажется странной, о чем вообще пишет автор. Я пошел на поводу у читателей и все таки поменял порядок глав. Так что всем любителям UnityScript придется еще немного подождать.


Да и кстати, как это фото связано с Темным Лесником?

image


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


Горе разработчик очутился у родителей с женой и ребенком, в одной комнатушке в тридцать с лишним лет, не живя, с родителями с 18-ти. Основной компьютер сломан, Unity движок просрочен, куча долгов и безработица.
Читать дальше →
«Во все тяжкие 2», Dark Forester — игра на дистанции в маленький плюс
Source: habrahabr

Мобильный OCR. Как всё начиналось (часть 2)

В предыдущем посте мы начали рассказывать, как OCR-технологии «переезжали» с настольных компьютеров в смартфоны – а началось всё с приложения для сканирования визиток Business Card Reader. Но сканирование визиток – это только один сценарий, где нужно мобильное распознавание. О том, как решались другие задачи хотелки пользователей, – читайте ниже.


Как мы уже говорили, перенос технологии распознавания на смартфоны связан с кучей ограничений и сложностей. Главной была и остаётся ресурсоёмкость технологии – невозможно перенести ее в мобильное устройство как есть. Но у нас уже с 2007 года был готовый инструментарий разработчика ABBYY Mobile OCR SDK, который позволял на мобильном оцифровать изображение и выдать результат в формате TXT без сохранения форматирования. И для начала в 2011 году мы решили воплотить в жизнь небольшие пользовательские сценарии, в которых такое «элементарное» распознавание вполне подходило. Читать дальше →
Мобильный OCR. Как всё начиналось (часть 2)
Source: habrahabr

Сравнительный анализ методов балансировки трафика

Сергей Зубов (CDNvideo)


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


Читать дальше →
Сравнительный анализ методов балансировки трафика
Source: habrahabr

[Из песочницы] Разработать и опубликовать игру под Android за неделю

Задумал я как-то написать игру. Причем, по-быстрому. Желательно за неделю при условии работы на полставки. Финальным этапом должна была стать публикация на Google Play (что, конечно, недостаточно, но об этом позже). Таким образом, это будет статья о разработке в стиле «вжух-вжух и в продакшен», или, как сказали друзья «устроил себе Ludum Dare». Технических деталей будет, впрочем, немного.

После небольшого брейнсторма родилась идея «складывания ленты». Лента бесконечной длины, её можно сгибать под прямым углом (количество сгибов ограничено), и её «лицевая» и «изнаночная» стороны разного цвета. Так же есть контрольные точки «лицевого» и «изнаночного» цветов. Игрок выигрывает когда лента пройдёт соответствующими сторонами по всем контрольным точкам. Быстрый поиск не дал ничего похожего.

screenshot

Читать дальше →
[Из песочницы] Разработать и опубликовать игру под Android за неделю
Source: habrahabr

Обработка нажатий кнопок для Arduino. Скрестить ООП и МКА. Часть 1

Пару месяцев назад я купил не сильно новый мотоцикл KTM 250EXC, открутил ручку газа в горку, моту пульнул в небо, а сам сел на задницу и что-то там сломал в спине. В результате, на мотоцикл не сесть два месяца как минимум. К чему я это? Да. У немного подуставшего мопеда оказалась неисправная приборная панель и я собрался, пока лежу дома, сделать самодельную новую свою.

image


Быстро собрал макет, циферки бегают, часики ходят, одометры запоминаются в FRAM — красота, но… понадобились кнопочки для управления этой красотой.


Сегодня с расскажу про кнопочки, потом про датчик зажигания, а уже потом про саму приборку, Ладно?


Рисовать на китайском экране 16х2 через i2c просто, датчики скорости и оборотов мотора сели на внешние прерывания, температура читается с аналогового порта, инфа хранится в FRAM, ну и часики тоже китайские воткнуты. Всё это крутится асинхронно примерно как SmartDelay, про который писал недавно здесь.
Читать дальше →
Обработка нажатий кнопок для Arduino. Скрестить ООП и МКА. Часть 1
Source: habrahabr

[Из песочницы] Oracle APEX: Interactive Report with Checkboxes

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

что читатель имеет базовые знания о среде разработки APEX и БД Oracle.

image


Отчет с возможностью отметки отдельных записей для обработки — вещь очень удобная, но к сожалению до сих пор не реализованная «из коробки». В APEX API имеется функция apex_item.checkbox2 которая позволяет показать в отчете чекбоксы, но обрабатывать их приходится программисту. Обработку сильно осложняет то, что в многостраничном отчете чекбоксы существуют только для текущей страницы, и при переходах между страницами отчета значения отмеченных чекбоксов нужно где-то сохранять. В данном случае для этого используется коллекция APEX.
Читать дальше →
[Из песочницы] Oracle APEX: Interactive Report with Checkboxes
Source: habrahabr