Рубрика «Блог компании ABBYY» - 8

1Y@ABBYY: Часть 1 – Поиск работы и первые впечатления - 1Добрый день всем. Надеюсь, вы помните меня по рассказу о внутренней “кухне” разработки мобильного приложения к Играм в Сочи-2014. После окончания Игр мне часто поступали вопросы о том, куда и каким образом я устроился, нравится ли мне и пригодился ли опыт такого большого проекта, так что я решил посвятить этой истории отдельный пост и считаю, что он может быть полезен, стоящим на распутье или только начинающим свой карьерный путь.

На мой взгляд, историй поиска и нахождения работы сильно не хватает на Хабре, а ведь это очень важный вопрос. При всей любви творческих профессионалов к своему бизнесу, предпринимательству и стартаперству, работа в отличной компании позволяет усилить множество компетенций, повысить скиллы практически по всем аспектам бизнеса и в целом дать возможность общаться с отличными людьми из разных областей бесплатно/без смс.
Читать полностью »

10 способов бумажного шифрования для школьников с помощью ABBYY FineReader - 1

Способ раз

Создание шифровки

10 способов бумажного шифрования для школьников с помощью ABBYY FineReader - 2

Скопируем текст в MS Word, сделаем его одного размера и форматирования, и применим к нему какой-нибудь иконочный шрифт, такой как Webdings или любой другой. Распечатаем и отправим полученную шифровку другу.

Ваш друг, конечно, моряк, и легко и быстро прочитает полученную шифровку. Но представим, что вы отправили другу не строчку, а много строчек. Что делать тогда?Читать полностью »

Вычислите окружность круга - 1«Пожалуйста, напишите на C++ функцию, которая получает диаметр круга как float и возвращает длину окружности как float».

Звучит как задание на первой неделе курса по C++. Но это только на первый взгляд. Сложности возникают уже на первых этапах решения задачи. Предлагаю рассмотреть несколько подходов.

Студент: Как вам такой вариант?

#include <math.h>
float CalcCircumference1(float d)
{
    return d * M_PI;
}

Преподаватель: Да, этот код может нормально откомпилироваться. А может и нет. Читать полностью »

Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

Лекция 1. Основы

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


Читать полностью »

Арабская локализация: окна и рисование - 1Однажды в очередную версию ABBYY FineReader Sprint (программа для распознавания текста, которая поставляется вместе с МФУ и сканерами) потребовалось добавить арабский язык интерфейса. И все заверте…

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

Городские легенды о медленных вызовах виртуальных функций - 1Традиционно компиляторы реализуют вызовы виртуальных функций через двойную косвенную адресацию — если класс содержит хотя бы одну виртуальную функцию, то в начале каждого объекта этого класса хранится адрес таблицы виртуальных функций. Если компилятор не знает конкретный тип объекта, на который указывает указатель, то для вызова виртуальной функции нужно сначала взять указатель на объект, прочитать адрес начала таблицы, затем по номеру метода прочитать адрес, где хранится реализация функции, затем вызвать функцию.

Процесс поиска конкретной функции по указателю на объект называется поздним связыванием и выполняется во время работы программы. Позднее связывание не только увеличивает накладные расходы на вызов, но и препятствует оптимизации кода компилятором. Из-за этого сами виртуальные функции принято считать замедляющими работу.

В тексте выше ключевое слово «если». Что, если компилятор знает, какую функцию на самом деле надо вызывать?
Читать полностью »

Онтоинженер: от сотворения мира к порождению сущностей - 1В этом посте я продолжу рассказ о той части Compreno, которая связана с профессией онтоинженера. Ну или о той работе онтоинженера, которая связана с упомянутой технологией — это уж кому как удобнее воспринимать.

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

Семь битв – одно поддерево

Основную часть рабочего времени онтоинженер посвящает не «моделированию мира» (хотя это и звучит очень гордо), а созданию системы извлечения. И хотя мы всё больше экспериментируем со статистикой, машинным обучением и автоматическим извлечением паттернов, пока в наших продуктах и проектах используются правила, написанные вручную. Однако правила эти представляют собой не какие-то жесткие шаблоны, опирающиеся на линейный порядок слов в предложении, а описания фрагментов семантико-синтаксических деревьев ABBYY Compreno. Это позволяет нам сравнительно легко обходить вариативность и неоднозначность языка, кратко задавая множество вариантов, используемых для выражения одного и того же смысла. Читать полностью »

Онтоинженер: работа по понятиям - 1Привет! Меня зовут Даня, и я работаю в группе извлечения знаний ДогадайтесьКакойКомпании. В двух постах я расскажу,

  • как мы извлекаем факты и сущности из текстов,
  • кто такие онтоинженеры,
  • зачем они отделяют трупы от костей,
  • причём здесь Лев Толстой.

На Хабре уже было несколько публикаций, посвященных извлечению информации из неструктурированного текста (много чего ищется по тегами Text Mining, Information Extraction). Вот здесь, например, приведен краткий джентльменский набор того, что желательно сделать с текстом, прежде чем из него будет удобно что-нибудь извлечь (спойлер: мы все это тоже делаем). А вот тут коллеги из Яндекса описывают свой подход с использованием КС-грамматик (кстати, там тоже замешан Толстой). В общем, тема для Хабра не новая, но и нельзя сказать, что достаточно раскрытая. Потому мы и решили поделиться нашим опытом.
Читать полностью »

«Уроки английского»: Habrahabr vs Geektimes - 1Товарищи читатели, хотим обсудить с вами свежие события в нашем блоге, а также его светлое будущее.

HeadMatters написала интересные вещи с уже почти легендарным тегом «уроки английского». По этому поводу мы, конечно, запилили пост на ГТ, но остались в смешанных чувствах по результатам этого мероприятия: мало же.

Читатель сейчас, конечно, может возмутиться и сказать, мол, зажрались вы там совсем, +58 им недостаточно. Но нет, речь не о плюсах, речь о просмотрах, которых для такой годноты (это моё личное оценочное суждение), кажется, маловато. Поэтому хочется понять, в чём дело.
Читать полностью »

Драма you и thou, или шекспировские страстиВ современном английском (я сейчас про «язык королевы» — RP) тыканье и выканье управляется местоимением you, отчего у иностранцев складывается примерно такая картина мира: «о, удобно, не то, что у нас!» или «а мне сейчас тыкнули или что?». Открою тайну: технически и по идейным соображениям англичане выкают всем подряд вот уже 500 лет. Почему так вышло, и какие они – настоящие шекспировские страсти – читайте под катом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js