Мы в компании создаем сервис, который извлекает юридические факты из переписки между клиентом и заказчиком.
Сервис вырос из одной простой идеи — мои постоянные клиенты решили упростить работу менеджеров и создать «генератор контрактов».
Первую задачу - внесение в договор реквизитов клиента и заказчика - мы решили легко.
Появилась вторая идея - искать даты в переписке и вставлять их в технические условия, документы, автоматически.
Однако люди редко пишут даты в чатах и мессенджерах так, чтобы алгоритм мог их легко распознать.
«Начнем на следующей неделе», «в эту пятницу» — если менеджеры сравнительно легко научатся писать даты в правильном формате, то к клиентам такие требования предъявлять нельзя.
Пишу на питоне и на помощь пришла питоновая НЛП-библиотека spaCy* — NER (распознавание объектов по именам), модуль которой легко извлекал даты из переписки с англоязычными клиентами.
В результате мы получили кучу относительных дат: «через две недели», «пятница», «в эту пятницу», «в этот полдень», «в среду в полдень».
Но как перевести эти даты в объекты, которые принимает сервис (объект datetime)? Начался долгий путь в область «анализа удобочитаемых человеком данных».
Осмотревшись, я нашел только три библиотеки Python, которые заработали сразу и без страданий: timefhuman**, dateparser*** и datefinder***.
На картинке сравнение трёх библиотек:
В целом понятно, что не избалованный вниманием timefhuman оказался удобнее, хотя и с большим количеством ложных срабатываний, чем dateparser, которым пользуется большинство.
Логика разбора «Пятницы» разработчиками интересна: в случае timefhuman она давала будущую пятницу, а в dateparser — прошлую пятницу.
В целом timefhuman оказался более живым и был выбран для дальнейшей разработки и тестирования прототипа.
* spacy.io ** github.com/alvinwan/timefhuman *** github.com/scrapinghub/dateparser **** github.com/akoumjian/datefinder Теги: #python #nlp (обработка естественного языка) #python3 #ner #legaltech
-
Лейн, Эдвард Уильям
19 Oct, 24 -
Rest-Клиент Qt/Qml
19 Oct, 24 -
Wwdc 09 В Прямом Эфире
19 Oct, 24 -
Intel Выпустила Бесполезный Процессор
19 Oct, 24