Анализ дат из строк, содержащих несвязанный текст, избегая анализа целых чисел как даты текущего месяца. ⇐ Python

Программы на Python
Anonymous
Анализ дат из строк, содержащих несвязанный текст, избегая анализа целых чисел как даты текущего месяца.

Сообщение Anonymous »

Чего я хочу достичь

Моя цель — извлечь дату, которая содержит по крайней мере день и месяц, но также может содержать минуту, час и год.
Я хочу, чтобы синтаксический анализатор не находил целые числа и не думал, что это подразумевает день текущего месяца.
Кроме того, я также хочу, чтобы синтаксический анализатор нашел дату, которая является лишь маленькой часть более крупной строки.
Подумайте:
'Сегодня самое чудесное 27 марта 2025 года' = datetime.datetime(2025, 3, 27, 0, 0)

'2 ГБ оперативной памяти' != datetime.datetime(2025, 3, 2, 0, 0) (Предполагая, что в настоящее время мы в марте)
Что я пробовал
Использование аргумента fuzzy=True в dateutils

Код: Выделить всё

from dateutil import parser

#OK: Correct Datetime is returned: datetime.datetime(2025, 3, 30, 0, 0)
parser.parse('Today is the most wonderful 30th March 2025', fuzzy=True)

#NOT OK: Integer is not ignored, Datetime is returned: datetime.datetime(2025, 3, 2, 0, 0)
parser.parse('2 is my lucky number', fuzzy=True)
Использование параметра REQUIRED_PARTS в dateparser

Код: Выделить всё

frome dateparser import parse

# OK: Returns correct datetime: datetime.datetime(2025, 3, 30, 0, 0
parse('30 March', settings={'REQUIRE_PARTS': ['month', 'day']})

#OK: Integer is Ignored, no datetime returned
parse('30', settings={'REQUIRE_PARTS': ['month', 'day']})

#NOT OK: Datetime Should be Found
parse('Today is the most wonderful 30th of March', settings={'REQUIRE_PARTS': ['month', 'day']})
Было бы здорово, если бы я мог объединить аргумент fuzzy=True из модуля dateutils с аргументом settings из модуля dateparser, но, поскольку это отдельные модули, это невозможно.
Есть ли другой способ добиться той же функциональности?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... parsing-in

Вернуться в «Python»