Как стать автором
Обновить
17
0

Руководитель проектов

Отправить сообщение

OCR для PDF в среде .NET — как извлечь текст из недоступных для поиска PDF документов

Время на прочтение19 мин
Количество просмотров22K

Извлечение текста — одна из популярных задач обработки PDF документов. Вам потребуется извлечь текст из PDF, чтобы:


  • проиндексировать документ для полнотекстового поиска
  • распарсить некоторые данные (например, названия и цены товаров в прайс-листе)
  • выделить, удалить или заменить некоторое слово или фразу

Извлечь текст вручную можно так: откройте документ в любом PDF просмотрщике, выделите и скопируйте текст. В большинстве документов это сработает. Такие документы называются "доступные для поиска PDF" или "searchable PDF". Текст в них выводится с помощью специальных PDF операторов, а связанные объекты шрифтов содержат правильную информация о соответствии глифов значениям Unicode.


Многие PDF библиотеки умеют извлекать текст из доступных для поиска PDF.


Однако, часто встречаются и недоступные для поиска PDF ("non-searchable PDF") документы. В них текст обычно выводится как растровое изображение. Типичный пример — сканированный PDF документ. Также текст в недоступных для поиска PDF может выводиться векторными путями без использования шрифтов и специальных PDF операторов.


Для извлечения текста из недоступных для поиска PDF выполняйте оптическое распознавание текста (OCR). Оптическое распознавание не гарантирует правильного извлечения текста в 100% случаев. Результат зависит от качества документа и алгоритма распознавания. Также OCR существенно медленней, чем извлечение текста из доступных для поиска PDF.


Посмотрим, как выполнить оптическое распознавание и извлечь текст из PDF документов в программе для платформы .NET.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии7

Делаем действительно умный поиск: пошаговый гайд

Время на прочтение16 мин
Количество просмотров29K

Поиск в корпоративной информационной системе — уже от самой этой фразы вязнет во рту. Хорошо если он вообще есть, о положительном user experience можно даже не задумываться. Как перевернуть отношение пользователей, избалованных поисковыми системами, и создать быстрый, точный, понимающий с полуслова продукт? Надо взять хороший кусок Elasticsearch, горсть интеллектуальных сервисов и замешать их по этому гайду.


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


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

Окей, сразу на ультимативное решение замахиваться не будем, но что можно сделать чтобы приблизить обычный полнотекстовый поиск к умному?

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии3

Умный парсер числа, записанного прописью

Время на прочтение10 мин
Количество просмотров30K


Пролог


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


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


Для ленивых:
Ссылка на проект github: ссылка.


Читать дальше →
Всего голосов 137: ↑136 и ↓1+135
Комментарии59

Мониторинг Windows серверов на чистом MS SQL, и как я это тайно внедрил

Время на прочтение4 мин
Количество просмотров25K
Однажды, в далекой-далекой галактике, была фирма, давно выросшая из стартапа, но которая по прежнему оставалась довольно компактной и эффективной. Фирма хостила (на своем железе) сотни Windows-серверов, и это надо было как то мониторить. Еще до того, как я в нее пришел, в качестве решения была выбрана система NetIQ.

Настраивать NetIQ поручили мне, и тот, кто это делал до меня, не сказал о ней ни единого слова. Печатного. Вскоре я понял, почему. Стив Джобс наверное вертится в могиле, глядя на подобный интерфейс:

image

В одной строчке логика «птички» положительная (Raise event). В другой отрицательная (Do not raise event). Как работает «Only raise events when» с разным набором галочек я вообще понял только экспериментально (и уже забыл).
Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии86

Что не так с 3D PDF и eDrawings. Как мы заменили просмотрщик 3D-моделей в своем приложении

Время на прочтение6 мин
Количество просмотров11K
Это рассказ о том, как мы встроили новый просмотрщик C3D Viewer в систему управления жизненным циклом изделия ЛОЦМАН:PLM, почему мы это сделали, и что у нас получилось.

image
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Как лучше разбираться в людях

Время на прочтение31 мин
Количество просмотров104K
Рассказывать айтишникам про психологию то еще дело, некоторые читатели скажут: «Bullshit!», и вообще не поверят, потому что психологию, даже прикладную, нельзя назвать точной наукой. Тем не менее, задача этой статьи — показать и доказать вам, что некоторые модели действительно работают. В основе доклад Сергея Котырева из UMI на РИТ++ 2017, от его лица дальше и пойдет повествование.



Я — IT-предприниматель с 20 летним стажем. Так получилось, что с самого начала карьеры мне пришлось управлять людьми. Как выпускник технического вуза и айтишник, я изначально понял, что люди сложно поддаются алгоритмизации, и вообще осознанию, пониманию и прогнозированию.

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

Мне кажется, о поведении и предсказании поведения спиральных галактик мы знаем больше, чем о том, как поведет себя человек, например, моя жена, сотрудник, или особенно сотрудница моего отдела маркетинга, не говоря уже о пиарщицах. О том, что ближайшая к нам Галактика летит, и через сколько-то миллиардов лет столкнется с нашей, мы уже знаем точно.
Всего голосов 127: ↑113 и ↓14+99
Комментарии63

Как перестать беспокоиться и начать говорить

Время на прочтение8 мин
Количество просмотров26K


Сложно представить человека, у которого перед выходом на сцену не дрожали бы коленки. Особенно, если ТАМ ждут 100 (200) человек, а за плечами у вас только выступление на школьном утреннике.


Но есть несколько проверенных советов, как бороться со страхом перед выступлениями, которыми и хочу поделиться в статье.

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии17

Защита в виртуальной среде: чеклист угроз

Время на прочтение19 мин
Количество просмотров48K

Защита данных в виртуальной среде — это «дивный новый мир», означающий серьёзное изменение мировоззрения в отношении понимания угроз.

Я работаю с защитой персональных данных, у меня и коллег собралась огромная таблица возможных угроз безопасности, по которой можно проверять, что не так на конкретных объектах.
Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии22

Тюнинг SQL Server 2012 под SharePoint 2013/2016. Часть 2

Время на прочтение24 мин
Количество просмотров10K
Здравствуйте! Сегодня с вами снова я — Любовь Волкова, системный архитектор департамента разработки бизнес-решений. В предыдущей статье мы начали обсуждение темы тюнинга SQL-серверов для работы с базами данных SharePoint 2013/2016. В материале были подробно рассмотрены вопросы выбора между физическим и виртуальным сервером, планирование размера, размещения баз данных, подготовка дисковой подсистемы и оптимизация передачи данных по сети.

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

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

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии3

Тюнинг SQL Server 2012 под SharePoint 2013/2016. Часть 1

Время на прочтение22 мин
Количество просмотров15K
Здравствуйте. Меня зовут Любовь Волкова, я системный архитектор департамента разработки бизнес-решений. Время от времени я пишу прикладные посты о серверных продуктах Microsoft (например про мониторинг серверов SharePoint и про обслуживание баз данных, связанных с базами контента, службами и компонентами этой платформы.

Этот пост является первым из двух, в которых я расскажу о важной с точки зрения администрирования порталов SharePoint теме – по тюнингу серверов SQL, нацеленного на достижение высокой производительности. Крайне важно обеспечить тщательное планирование, корректную инсталляцию и последующую настройку SQL-сервера, который будет использоваться для хранения данных, размещенных на корпоративном портале.

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

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии15

Стандарты и шаблоны для ТЗ на разработку ПО

Время на прочтение7 мин
Количество просмотров781K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии22

Почему большие БД работают не как хочется, или про несбыточные мечты SQL-запросов

Время на прочтение11 мин
Количество просмотров25K

image


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


Microsoft SQL Server давно нашел свое место в семействе продуктов Яндекс.Денег и успешно решает задачу сбора разрозненной информации обо всех операциях из множества отдельных сервисов. Без такой сборки воедино нельзя было бы отследить платеж, собрать статистику или решить проблему.


Все сказанное далее будет полезно администраторам крупных БД – тем, кто заботится о быстрой и точной работе аналитики Microsoft SQL Server 2012-2014.


Если информация окажется вам полезной и интересной — обязательно дайте знать в комментариях, чтобы автор не расслаблялся.

Итак, чем занимается MS SQL в Яндекс.Деньгах
Всего голосов 21: ↑21 и ↓0+21
Комментарии24

Интеграция ИС с ЕСИА посредством SAML

Время на прочтение8 мин
Количество просмотров52K
Интеграция с ЕСИА

При выполнении очередного госзаказа наша команда столкнулась с проблемой интеграции сайта с ЕСИА. Инструкции по решению этой задачи в сети нет, кроме информации в официальных документах МинКомСвязи (примерно 300 страниц в трех регламентах). Также есть компании, которые оказывают платные услуги по интеграции ЕСИА. Мы реализовали, описали процесс интеграции и решили поделиться с сообществом habrahabr.

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии50

«Сим-Сим, откройся!», или как открыть ссылку через RemoteApp

Время на прочтение4 мин
Количество просмотров7.9K
Все чаще и чаще мы стали выводить свои программы в облака. Хорошо это или плохо — рассуждать не станем, но вот о ситуации, когда необходимо состыковать локальные программы с облачными, мы сегодня с вами немного поговорим: в разрезе нашей СЭД Docsvision и установленного локально на пользовательский ПК любого почтового клиента. Представим себе задачу: открыть ссылку на «карточку» Docsvision, которая пришла по почте пользователю в почтовый клиент, установленный локально на его компьютере. Изучив вопрос, проанализировав опыт наших партнеров, мы нашли решение, которым и хотим с вами поделиться.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Утки, Таиланд и T-SQL… или что может подстерегать программистов при работе с SQL Server?

Время на прочтение33 мин
Количество просмотров49K

Все начиналось довольно обыденно… Зачитывался Рихтером и усиленно штудировал Шилдта. Думал, что буду заниматься разработкой под .NET, но судьба на первом месяце работы распорядилась иначе. Один из сотрудников неожиданно покинул проект и во вновь образовавшуюся дыру докинули свежего людского материала. Именно тогда и началось мое знакомство с SQL Server.

С тех пор прошло чуть меньше 6 лет и вспомнить можно многое…

Про бывшего клиента Джозефа из Англии, который переосмыслил жизнь, за время отпуска в Таиланде, и в моем скайпе стал подписываться Жозефиной. Про веселых соседей по офису, с которыми приходилось сидеть в одной комнате: один страдал от аллергии на свежий воздух, а другой маялся от неразделенной любви к С++ дополняя это аллергией на солнечный свет. Один раз по команде свыше пришлось на время стать Александром отцом двух детей, чтобы изображать из себя обросшего скилами сениора по JS.
Подробнее
Всего голосов 76: ↑73 и ↓3+70
Комментарии48

Что скрывает в себе DEFAULT TRACE?

Время на прочтение11 мин
Количество просмотров15K


Часто вспоминается первая работа… Средненький офис, моник 943N и обогреватель Pentium D под ногами. Как возникал из ниоткуда Борис (нет… не Борис «Бритва») с линейкой в руках и настойчиво просил не делать «больно» серверу.

Именно в те далекие времена я впервые познакомился с профайлером. Пользовательские трейсы оказались очень кстати при отладке приложений и поиске медленных запросов. Потом для себя я открыл DMV и XEvents… и профайлером стал пользоваться реже. Причина такого поступка проста – трейсы очень ресурсоемкие.

Однако, данную функциональность не стоит преждевременно придавать анафеме. Начиная с 2005 версии при установке SQL Server по умолчанию создается легковесный системный трейс, который хранит в себе много полезной информации.
Подробнее
Всего голосов 12: ↑11 и ↓1+10
Комментарии4

Веб-синхронизация слиянием на MS SQL

Время на прочтение10 мин
Количество просмотров15K


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

Информация по настройке в интернете имеется, но как мне показалось, что все очень разрознено и по большей части нет практической части в настройке. Возможно плохо искал.
Поехали!
Всего голосов 20: ↑20 и ↓0+20
Комментарии2

[ScanDoc] предобработка сканов

Время на прочтение10 мин
Количество просмотров11K


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

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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии4

Улучшаем свой английский: изобретаем субтитры заново

Время на прочтение5 мин
Количество просмотров50K

1. Intro




— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.

Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.

Далее
Всего голосов 60: ↑58 и ↓2+56
Комментарии119

Remote reflection в .NET runtime

Время на прочтение3 мин
Количество просмотров9.7K
Автор статьи — Сердар Курбанов SerdarKurbanov, основатель команды и ведущий разработчик Telescope.


При использовании программного обеспечения могут встречаться ситуации, когда приложение нельзя или нежелательно останавливать даже при возникновении неполадки. В таких ситуациях, когда использование отладчика невозможно, обнаружение ошибки может представлять нетривиальную задачу.
Ситуация может быть еще запутаннее, если приложение использует многопоточность. Определить какой именно из потоков вызвал ошибку может помочь логирование, но более универсальным решением была бы возможность взглянуть внутрь работающей программы и увидеть состояния объектов в ней, не останавливая ее. Одним из подходов к этой задаче может быть использование возможностей System.Reflection.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность