Как стать автором
Обновить
0
Георгий Докучаев @gdokuchaevread⁠-⁠only

Пользователь

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

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Время на прочтение12 мин
Количество просмотров89K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →

Введение в аннотации типов Python

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

Введение



Автор иллюстрации — Magdalena Tomczyk


Вторая часть


Python — язык с динамической типизацией и позволяет нам довольно вольно оперировать переменными разных типов. Однако при написании кода мы так или иначе предполагаем переменные каких типов будут использоваться (это может быть вызвано ограничением алгоритма или бизнес логики). И для корректной работы программы нам важно как можно раньше найти ошибки, связанные с передачей данных неверного типа.


Сохраняя идею динамической утиной типизации в современных версиях Python (3.6+) поддерживает аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций:



Аннотации типов просто считываются интерпретатором Python и никак более не обрабатываются, но доступны для использования из стороннего кода и в первую очередь рассчитаны для использования статическими анализаторами.


Меня зовут Тихонов Андрей и я занимаюсь backend-разработкой в Lamoda.


В этой статье я хочу объяснить основы использования аннотаций типов и рассмотреть типичные примеры, реализуемые аннотациями из пакета typing.

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

Линейные модели: простая регрессия

Время на прочтение7 мин
Количество просмотров76K
В прошлый раз мы подробно рассмотрели многообразие линейных моделей. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy.
Читать дальше →

Объясняем p-значения для начинающих Data Scientist’ов

Время на прочтение9 мин
Количество просмотров271K
Я помню, когда я проходил свою первую зарубежную стажировку в CERN в качестве практиканта, большинство людей все еще говорили об открытии бозона Хиггса после подтверждения того, что он соответствует порогу «пять сигм» (что означает наличие p-значения 0,0000003).

image

Тогда я ничего не знал о p-значении, проверке гипотез или даже статистической значимости.

Я решил загуглить слово — «p-значение», и то, что я нашел в Википедии, заставило меня еще больше запутаться…
При проверке статистических гипотез p-значение или значение вероятности для данной статистической модели — это вероятность того, что при истинности нулевой гипотезы статистическая сводка (например, абсолютное значение выборочной средней разницы между двумя сравниваемыми группами) будет больше или равна фактическим наблюдаемым результатам.
Wikipedia
Хорошая работа, Википедия.

Ладно. Я не понял, что на самом деле означает р-значение.

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

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

Обезл***вание д***ных — это не просто рандомизация

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


В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.

Казалось бы, достаточно просто поменять всё на какие-нибудь несимметричные хеши, и всё будет хорошо.

Так вот, не будет.

Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.

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

То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных.
Читать дальше →

ML и DS оттенки кредитного риск-менеджмента | LGD, или Жизнь после дефолта

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


Хабр, привет!

Мы продолжаем цикл статей ([1], [2], [3]), посвященных применению ML-методов в ряде задач управления кредитным риском. В этой мы расскажем про задачу, которая возникает в ходе жизненного цикла кредитного договора: моделирование доли невозврата по договору в случае его дефолта (loss given default, LGD). 

Зачем это нужно делать, ведь дефолт случился и на первый взгляд кажется, что прогнозировать уже ничего не нужно? Действительно, можно считать, что клиент уже ничего не вернет и под такие договоры закладывать 100%-ное резервирование. 

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

Также стоит обратить внимание, что для банковской сферы (в других индустриях зависит от продукта и политики резервирования) прогноз должен производиться как по договорам, находящимся в дефолте $(PD = 100\%)$ (default сегмент), так и по тем, по которым нет дефолта на момент расчета резервов $(PD \neq 100\%)$ (non-default сегмент). Разработка прогнозной модели возможна только на договорах в дефолте. В этом случае возникает проблема переноса модели на сегмент недефолтных договоров. 

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

Бегите, глупцы. Добро пожаловать под кат!
Читать дальше →

ML и DS оттенки кредитного риск-менеджмента | EAD или деньги в дефолте

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


Привет, Хабр!

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

Как спрогнозировать сумму кредитного требования в момент дефолта, при условии, что момент дефолта неизвестен, и вообще может не настать? Как поступать с экстремальными, особенно большими по абсолютному значению, EAD? А если кредитный продукт, по которому нужно оценить риск — это так называемый револьверный кредит, где нет установленных регулярных платежей,- как, например, кредитка с кредитным лимитом? 

Эти и подобные им вопросы возникают при моделировании компоненты. Их и рассмотрим под катом.
Читать дальше →

ML и DS оттенки кредитного риск-менеджмента

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


Всем привет.

Мы команда Advanced Analytics GlowByte и запускаем цикл статей о моделировании в задачах управления кредитным риском. Цель цикла — кратко рассказать о сфере, расширить словарь профессиональных терминов и дать ссылки на полезные статьи и книги. В вводной статье мы покажем особенности применения ML и DS в сфере кредитного риска, без глубокого погружения в предметную область.

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

Основа публикаций — наш проектный опыт по разработке и внедрению аналитических моделей в банковской сфере.

А теперь под кат.
Читать дальше →

Наивный Байес, или о том, как математика позволяет фильтровать спам

Время на прочтение5 мин
Количество просмотров41K
Привет! В этой статье я расскажу про байесовский классификатор, как один из вариантов фильтрации спам-писем. Пройдемся по теории, затем закрепим практикой, ну и в конце предоставлю свой набросок кода на мною обожаемом языке R. Буду стараться излагать максимально легкими выражениями и формулировками. Приступим!

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

Возможности SQLite, которые вы могли пропустить

Время на прочтение8 мин
Количество просмотров44K
Если вы используете SQLite, но не следите за его развитием, то возможно некоторые вещи, позволяющие сделать код проще, а запросы быстрее, прошли незамеченными. Под катом я постарался перечислить наиболее важные из них.
Читать дальше →

ML и DS оттенки кредитного риск-менеджмента | Компоненты

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

Привет!

В предыдущей статье цикла о моделировании в задачах управления кредитным риском (здесь) мы провели обзор трех задач кредитного риск-менеджмента, нашли возможные точки приложения ML и DS к этим задачам и попутно ввели набор терминов для дальнейшей работы.

Сейчас мы расскажем о трех компонентах (PD, LGD, EAD), которые участвуют при расчете ожидаемых потерь: рассмотрим основные драйверы и методологию построения моделей. В конце статьи приведем сводную таблицу с особенностями работы с компонентами на различных этапах разработки, сформированную на основе нашего проектного опыта. 

За подробностями добро пожаловать под кат.
Читать дальше →

Шаблон удостоверяющей печати, когда нужно правильно и не как у всех

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

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

Читать далее

С помощью Python создаём математические анимации, как на канале 3Blue1Brown

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

Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим нравится 3Blue1Brown за прекрасные объяснения Гранта и великолепные анимации.

21 мая стартует новый поток курса о математике для Data Science. Специально к его запуску мы делимся переводом, в котором автор решил рассказать, как делать анимации, подобные анимациям на канале 3Blue1Brown, чтобы вы могли иллюстрировать свои идеи и рассуждения о математике и не только.

Читать далее

Как бесплатно автоматизировать мониторинг госзакупок

Время на прочтение4 мин
Количество просмотров28K
Скажу сразу, статья скорее техническая, это инструкция.
Но начну с истории.

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

Год назад я запустил здесь новый процесс — участие в госзакупках. Да — да, вот так бывает, госкомпания не участвовала в госзакупках.

Попытки запустить это были, но безуспешные.

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

Я был в недоумении некоторое время, пока не решил перезапустить этот процесс, выпросив оплатить аккаунт на Контур.Закупках.

Всё настроил и стал мониторить сам. Находил конкурсы отдавал в отдел продаж, завертелось, закружилось.

Людям нравится когда что-то происходит. Отдел продаж загорелся.

Если кратко описать, что нужно, чтобы запустить процесс участия в госзакупках, то вам надо:
1. Настроить мониторинг госзакупок
2. Чтобы кто то отбирал проекты, понимая ФЗ и читая все требования. Убирать лишнее.
3. Вести учет состояния проектов в едином интерфейсе.
4. Готовить заявку на участие в конкурсе, понимая структуру вашей цены
5. Иметь аккаунты на электронных торговых площадках (ЭТП)
6. Уметь писать жалобы в ФАС на снос конкурсов (юрист)
7. Проводить аналитику своего, извиняюсь, рынка
Читать дальше →

Как удалить «неудаляемые» приложения со смартфона

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


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →

Моя интеграция с 1С

Время на прочтение11 мин
Количество просмотров186K
Привет Хабравчанам!

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

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

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

Открытый курс машинного обучения. Тема 3. Классификация, деревья решений и метод ближайших соседей

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

Привет всем, кто проходит курс машинного обучения на Хабре!


В первых двух частях (1, 2) мы попрактиковались в первичном анализе данных с Pandas и в построении картинок, позволяющих делать выводы по данным. Сегодня наконец перейдем к машинному обучению. Поговорим о задачах машинного обучения и рассмотрим 2 простых подхода – деревья решений и метод ближайших соседей. Также обсудим, как с помощью кросс-валидации выбирать модель для конкретных данных.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.

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

RSA: от простых чисел до электронной подписи

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

Выясняем, как и откуда можно получить электронную подпись на примере криптосистемы RSA.

Читать далее

Особенности Jupyter Notebook, о которых вы (может быть) не слышали

Время на прочтение10 мин
Количество просмотров372K
Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:



Ниже мы расскажем о некоторых фишках, которые делают Jupyter очень крутым. О них можно прочитать и в других местах, но если специально не задаваться этим вопросом, то никогда и не прочитаешь.
Читать дальше →

Добавляем в Jupyter Notebooks красоту и интерактивность

Время на прочтение7 мин
Количество просмотров84K
Многие используют в своей работе Jupyter Notebooks. Но с ростом сложности проекта появляются проблемы. В блокноте появляются ячейки с красными пометками для самого себя «перед запуском укажи число...» или «задай количество итераций исходя из...». Какой-то откат к командной строке получается.

Да и вывод данных на экран не всегда воспринимается без пояснений сторонним человеком, который привык к красивым таблицам, картинкам и прочим современным элементам интерфейса.
Читать дальше →
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность