rutimeparser
rutimeparser copied to clipboard
Recognize date and time in russian text and return datetime.datetime.
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 (например, "в два часа дня")