Skip to content
This repository has been archived by the owner on Mar 30, 2020. It is now read-only.

Recognize date and time in russian text and return datetime.datetime.

License

Notifications You must be signed in to change notification settings

orsinium-archive/rutimeparser

Repository files navigation

RuTimeParser

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

Установка

sudo pip3 install rutimeparser

Использование

Примеры ниже приведены для 2 апреля 2017 года.

Извлечение даты и времени:

>>> from rutimeparser import parse
>>> parse('завтра')
datetime.date(2017, 4, 3)
>>> parse('завтра утром')
datetime.datetime(2017, 4, 3, 9, 0)
>>> parse('Напомни мне завтра утром составить список дел.')
datetime.datetime(2017, 4, 3, 9, 0)

Извлечение текста, не относящегося к дате и времени:

>>> from rutimeparser import get_clear_text, get_last_clear_text
>>> get_clear_text('Напомни мне завтра утром составить список дел.')
'напомни мне составить список дел'
>>> get_last_clear_text('Напомни мне завтра утром составить список дел.')
'составить список дел'

Неявные ситуации

  • утром - в 09:00
  • днём - в 15:00
  • вечером - в 21:00
  • ночью - в 03:00
  • на следующей неделе - на следующей неделе в понедельник.
  • через неделю - ровно через 7 суток.
  • через неделю утром - через 7 дней утром.
  • в следующем месяце - 1 число следующего месяца.

Больше примеров в tests.py

API reference

Параметры rutimeparser.parse:

  • words (str, list, tuple) -- Строка с текстом или список слов. Параметр является необязательным, т.к. может быть передан непосредственно в метод parse.
  • tz (str) -- Название часового пояса. Если не указано, возвращается наивное время.
  • now (datetime.datetime) -- От какого момента считать текущее время
  • allowed_results (list, tuple) -- Список объектов, которые могут быть возвращены методом parse. Возможные значения -- datetime.datetime, datetime.date, datetime.time, None.
  • default_time (datetime.time) -- Время по умолчанию. Используется только в том случае, если из текста удалось получить только date, но необходимо вернуть datetime. По умолчанию 09:00.
  • default_datetime (datetime.datetime) -- Дата и время по умолчанию. Возвращается методом parse, если в тексте не удалось найти значение, подходящее под allowed_results. По умолчанию равен значению параметра now.

TODO

  • Перейти на pymorphy
  • Добавить поддержку AM/PM (например, "в два часа дня")