Анализ дат из строк, содержащих несвязанный текст, избегая анализа целых чисел как даты текущего месяца.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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