Python - синтаксический анализатор дат, который может получить все даты из определенного строкового ввода
В настоящее время я выполняю задание, которое отчасти связано с машинным обучением. Задача состоит в том, чтобы проанализировать вводимые пользователем строки в дату, учитывая, что у меня может быть 2 параметра для функции: date_from и date_to; что-то вроде приведенного ниже примера.
Любые классы / функции, которые могут помочь, или идея о том, как это сделать, могут мне помочь.
2.a 8th of July -> 2018-07-08
2.b July to December -> 2018-07 to 2018-12
2.c July -> 2018-07
2.d July 1st -> 2018-07-01
2.e Last week -> 2018-08-02 (curr_date - 7days)
2.f next week -> 2018-08-16 (curr_date + 7days)
2.g today -> 2018-08-09
2.h tomorrow -> 2018-08-10
2.i next monday -> 2018-08-13
2.j last monday -> 2018-07-30
2.k next month -> 2018-09 (or curr_date + 30days)
2.l last month -> 2018-07 (or curr_date - 30days)
В настоящее время я использую Flask для разработки и тестирования.
1 ответ
Несколько модулей, которые могут помочь:
calendar
модуль (предварительно установлен) -> Ссылка для получения дополнительной информацииdatetime
модуль (также предварительно установлен) -> Ссылка для получения дополнительной информацииdateutil
модуль (предварительно не установлен). Тем не менее, установить его легко с помощьюpip
(pip install dateutil
) -> Ссылка для получения дополнительной информации
В вышеупомянутых модулях есть множество функций и методов, которые позволяют вам работать с датами (и временем).
Что касается фактического разбора строк, вероятно, вам придется вручную проверять наличие слов вроде "to" и "of". Однако в течение нескольких месяцев (например, "июль" и "декабрь") вы можете использовать list
сохранить их, а затем рассчитать разницу в месяцах, используя индексы.