dateparser
dateparser copied to clipboard
Errors in processing dates in Russian text
OS: Ubuntu 20.04.2 LTS Python: Python 3.8 Dateparser version: 1.0.0
input: Сервис будет недоступен с 12 января по 30 апреля
search.search_dates result: [('января', datetime.datetime(2021, 1, 3, 0, 0)), ('30 апреля', datetime.datetime(2021, 4, 30, 0, 0))]
search.search_dates expected result: [('12 января', datetime.datetime(2021, 1, 12, 0, 0)), ('30 апреля', datetime.datetime(2021, 4, 30, 0, 0))]
Possible related.
In [70]: dateparser.search.search_dates(u'с 06.11.2012 по 09 мая 2022', languages=['ru'])
Out[70]: [('2012', datetime.datetime(2012, 7, 1, 0, 0)), ('09 мая 2022', datetime.datetime(2022, 5, 9, 0, 0))]
and
In [69]: dateparser.search.search_dates(u'с 12 апреля 2004 г. по 01 апреля 2009 г. ', languages=['ru'])
Out[69]: [ ('апреля', datetime.datetime(2021, 4, 1, 0, 0)), ('2004', datetime.datetime(2004, 4, 1, 0, 0)), ('г', datetime.datetime(2004, 4, 1, 0, 0)), ('01 апреля 2009 г', datetime.datetime(2009, 4, 1, 0, 0)) ]
search_dates("Сервис будет недоступен с 12 января по 30 апреля") returns
[('января', datetime.datetime(2022, 1, 25, 0, 0)),
('30 апреля', datetime.datetime(2022, 4, 30, 0, 0))]
It still does not select the date along with January, it should be 12 января instead января
Сервис будет недоступен с 12 января по 30 апреля
The issue is, the "c" symbol is considered to be a simplification for "second" (секунда).
Another issue I can bring up that I didn't find mentioned anywhere, is parsing dates like "двадцать четвёртое февраля", ignoring the first word, not being able to parse multi-word number representations and therefore producing incorrect results.