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 (например, "в два часа дня")