Распознавание Дат, Написанных На Естественном Языке, С Использованием Python3

Мы в компании создаем сервис, который извлекает юридические факты из переписки между клиентом и заказчиком.

Сервис вырос из одной простой идеи — мои постоянные клиенты решили упростить работу менеджеров и создать «генератор контрактов».

Первую задачу - внесение в договор реквизитов клиента и заказчика - мы решили легко.

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

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

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

Пишу на питоне и на помощь пришла питоновая НЛП-библиотека spaCy* — NER (распознавание объектов по именам), модуль которой легко извлекал даты из переписки с англоязычными клиентами.

В результате мы получили кучу относительных дат: «через две недели», «пятница», «в эту пятницу», «в этот полдень», «в среду в полдень».

Но как перевести эти даты в объекты, которые принимает сервис (объект datetime)? Начался долгий путь в область «анализа удобочитаемых человеком данных».

Осмотревшись, я нашел только три библиотеки Python, которые заработали сразу и без страданий: timefhuman**, dateparser*** и datefinder***.

На картинке сравнение трёх библиотек:

Распознавание дат, написанных на естественном языке, с использованием Python3

В целом понятно, что не избалованный вниманием timefhuman оказался удобнее, хотя и с большим количеством ложных срабатываний, чем dateparser, которым пользуется большинство.

Логика разбора «Пятницы» разработчиками интересна: в случае timefhuman она давала будущую пятницу, а в dateparser — прошлую пятницу.

В целом timefhuman оказался более живым и был выбран для дальнейшей разработки и тестирования прототипа.

* spacy.io ** github.com/alvinwan/timefhuman *** github.com/scrapinghub/dateparser **** github.com/akoumjian/datefinder Теги: #python #nlp (обработка естественного языка) #python3 #ner #legaltech

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.