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 ответ

Несколько модулей, которые могут помочь:

  1. calendar модуль (предварительно установлен) -> Ссылка для получения дополнительной информации
  2. datetime модуль (также предварительно установлен) -> Ссылка для получения дополнительной информации
  3. dateutil модуль (предварительно не установлен). Тем не менее, установить его легко с помощью pip (pip install dateutil) -> Ссылка для получения дополнительной информации

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

Что касается фактического разбора строк, вероятно, вам придется вручную проверять наличие слов вроде "to" и "of". Однако в течение нескольких месяцев (например, "июль" и "декабрь") вы можете использовать list сохранить их, а затем рассчитать разницу в месяцах, используя индексы.

Другие вопросы по тегам