A simple Dart package to extract date and time from natural speech. Currently works only with russian language.
To use this package you need to create a Hors object with list of TokenParser and list
of Recognizer.
Out of the box there is rich collection of both types, see Recognizer.all and TokenParsers.all.
Base example looks like this:
import 'package:hors/hors.dart';
final hors = Hors(
recognizers: Recognizer.all,
tokenParsers: TokenParsers.all,
);
final result = hors.parse('Завтра состоится событие в 11 часов вечера');parse method also has optional arguments:
DateTime fromDatetime– the date relative to which the intervals are to be measured.int closestSteps– the maximum number of words between two dates at which will try to combine these dates into one, if possible.
- Some recognizers is relate with each-other, so you should know in which order they used or you can get unpredictable results.
> Завтра состоится событие в 11 часов
Text: Состоится событие
DateTimeToken, fixed:
2023-04-24 11:00:00.000
> Через 2 дня в 15 часов 30 минут к врачу
Text: К врачу
DateTimeToken, spanForward:
Date: 2023-04-25 15:30:00.000
Span: 63:30:00.000000
> Отправимся на рыбалку с 25 до 28 числа
Text: Отправимся на рыбалку
DateTimeToken, period:
From: 2023-04-25 00:00:00.000
To: 2023-04-28 00:00:00.000
Original library is created by DenisNP with C#.
This is a port of library to the Dart language.
For now this library is backward compatible with the original one. But this implementation written a little bit different.
For some info how this library works you can read this article (ru).