Skip to content

Commit 7534fab

Browse files
MichaelMWWMichael Wang (Centific Technologies Inc)
andauthored
Fix the issue with parsing sentences expressing the decade with century and number with unit in Spanish (#3154)
* Date range without accents - Draft commit * Date range without accents - Fix cannot recognize Spanish written in the 90s * Date range without accents - Revert local nuget config and program.cs change * DateRangeWithoutAccents - Resolved comments --------- Co-authored-by: Michael Wang (Centific Technologies Inc) <v-michwang@microsoft.com>
1 parent cb8f16d commit 7534fab

8 files changed

Lines changed: 298 additions & 61 deletions

File tree

.NET/Microsoft.Recognizers.Definitions.Common/Spanish/DateTimeDefinitions.cs

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public static class DateTimeDefinitions
5151
public const string RelativeMonthRegex = @"(?<relmonth>(de\s+)?((este|pr[oó]ximo|([uú]ltim(o|as|os)))\s+mes)|(del\s+)?(mes\s+((que\s+viene)|pasado)))\b";
5252
public const string MonthRegex = @"\b(?<month>abr(\.|(il)?\b)|ago(\.|(sto)?\b)|dic(\.|(iembre)?\b)|feb(\.|(rero)?\b)|ene(\.|(ro)?\b)|ju[ln](\.|(io)?\b)|mar(\.|(zo)?\b)|may(\.|(o)?\b)|nov(\.|(iembre)?\b)|oct(\.|(ubre)?\b)|sep?t(\.|(iembre)?\b)|sep(\.|\b))";
5353
public static readonly string MonthSuffixRegex = $@"(?<msuf>((del?|la|el)\s+)?({RelativeMonthRegex}|{MonthRegex}))";
54-
public const string DateUnitRegex = @"(?<unit>(año|(?<uoy>semana))(?<plural>s)?|(?<uoy>mes)(?<plural>es)?|(?<uoy>d[ií]a)(?<plural>s)?(?<business>\s+(h[aá]biles|laborales))?)\b";
54+
public const string DateUnitRegex = @"(?<unit>(a[nñ]o|(?<uoy>semana))(?<plural>s)?|(?<uoy>mes)(?<plural>es)?|(?<uoy>d[ií]a)(?<plural>s)?(?<business>\s+(h[aá]biles|laborales))?)\b";
5555
public const string PastRegex = @"(?<past>\b(pasad(a|o)(s)?|[uú]ltim[oa](s)?|anterior(es)?|previo(s)?)\b)";
5656
public const string FutureRegex = @"\b(siguiente(s)?|pr[oó]xim[oa](s)?)\b";
5757
public static readonly string SimpleCasesRegex = $@"\b((desde(\s+el)?|entre|del?)\s+)?({DayRegex})\s*{TillRegex}\s*({DayRegex})\s+{MonthSuffixRegex}((\s+|\s*,\s*)((en|del?)\s+)?{YearRegex})?\b";
@@ -83,7 +83,7 @@ public static class DateTimeDefinitions
8383
public static readonly string WhichWeekRegex = $@"\b(semana)(\s*)(?<number>5[0-3]|[1-4]\d|0?[1-9])(\s+del?\s+({YearRegex}|(?<order>pr[oó]ximo|[uú]ltimo|este)\s+año|año\s+(?<order>pasado)))?\b";
8484
public static readonly string WeekOfRegex = $@"((del?|el|la)\s+)?(semana)(\s*)({OfPrepositionRegex}|que\s+(inicia|comienza)\s+el|(que\s+va|a\s+partir)\s+del)";
8585
public static readonly string MonthOfRegex = $@"(mes)(\s+)({OfPrepositionRegex})";
86-
public const string RangeUnitRegex = @"\b(?<unit>años?|mes(es)?|semanas?)\b";
86+
public const string RangeUnitRegex = @"\b(?<unit>a[nñ]os?|mes(es)?|semanas?)\b";
8787
public const string BeforeAfterRegex = @"^[.]";
8888
public const string InConnectorRegex = @"\b(en)(?=\s*$)\b";
8989
public const string TodayNowRegex = @"\b(hoy|ahora|este entonces)\b";
@@ -178,7 +178,7 @@ public static class DateTimeDefinitions
178178
public const string DateTimeTimeOfDayRegex = @"\b(?<timeOfDay>mañana|madrugada|(?<pm>pasado\s+(el\s+)?medio\s?d[ií]a|tarde|noche))\b";
179179
public static readonly string PeriodTimeOfDayRegex = $@"\b((en\s+(el|la|lo)?\s+)?({LaterEarlyRegex}\s+)?(est[ae]\s+)?{DateTimeTimeOfDayRegex})\b";
180180
public static readonly string PeriodSpecificTimeOfDayRegex = $@"\b(({LaterEarlyRegex}\s+)?est[ae]\s+{DateTimeTimeOfDayRegex}|({StrictRelativeRegex}\s+{PeriodTimeOfDayRegex})|anoche)\b";
181-
public const string UnitRegex = @"(?<unit>años?|(bi|tri|cuatri|se)mestre|mes(es)?|semanas?|fin(es)?\s+de\s+semana|finde|d[ií]as?|horas?|hra?s?|hs?|minutos?|mins?|segundos?|segs?|noches?)\b";
181+
public const string UnitRegex = @"(?<unit>a[nñ]os?|(bi|tri|cuatri|se)mestre|mes(es)?|semanas?|fin(es)?\s+de\s+semana|finde|d[ií]as?|horas?|hra?s?|hs?|minutos?|mins?|segundos?|segs?|noches?)\b";
182182
public const string ConnectorRegex = @"^(,|t|(para|y|a|en|por) las?|(\s*,\s*)?((cerca|alrededor)\s+)?(de\s+las?|del))$";
183183
public const string TimeHourNumRegex = @"(?<hour>veint(i(uno|dos|tres|cuatro)|e)|cero|uno|dos|tres|cuatro|cinco|seis|siete|ocho|nueve|diez|once|doce|trece|catorce|quince|dieci(s([eé])is|siete|ocho|nueve))";
184184
public static readonly string PureNumFromTo = $@"((\b(desde|de)\s+(la(s)?\s+)?)?({BaseDateTime.HourRegex}|{TimeHourNumRegex})(?!\s+al?\b)(\s*(?<leftDesc>{DescRegex}))?|(\b(desde|de)\s+(la(s)?\s+)?)({BaseDateTime.HourRegex}|{TimeHourNumRegex})(\s*(?<leftDesc>{DescRegex}))?)\s*{TillRegex}\s*({BaseDateTime.HourRegex}|{TimeHourNumRegex})\s*(?<rightDesc>{PmRegex}|{AmRegex}|{DescRegex})?";
@@ -225,14 +225,14 @@ public static class DateTimeDefinitions
225225
public const string MiddlePauseRegex = @"^[.]";
226226
public const string PrefixArticleRegex = @"\b(e[ln]\s+(d[ií]a\s+)?)";
227227
public const string OrRegex = @"^[.]";
228-
public static readonly string SpecialYearTermsRegex = $@"\b(({SpecialYearPrefixes}\s+años?\s+|años?\s+({SpecialYearPrefixes}\s+)?)(de\s+)?)";
228+
public static readonly string SpecialYearTermsRegex = $@"\b(({SpecialYearPrefixes}\s+a[nñ]os?\s+|a[nñ]os?\s+({SpecialYearPrefixes}\s+)?)(de\s+)?)";
229229
public static readonly string YearPlusNumberRegex = $@"\b({SpecialYearTermsRegex}((?<year>(\d{{2,4}}))|{FullTextYearRegex}))\b";
230230
public static readonly string NumberAsTimeRegex = $@"\b({WrittenTimeRegex}|{HourRegex}(?<desc>\s*h(oras)?)?)\b";
231231
public static readonly string TimeBeforeAfterRegex = $@"\b((?<=\b(antes|no\s+m[aá]s\s+tard(e|ar)\s+(de|a\s+las?)|por| después)\s+)({WrittenTimeRegex}|{HourNumRegex}|{BaseDateTime.HourRegex}|{MidTimeRegex}))\b";
232232
public const string DateNumberConnectorRegex = @"^\s*(?<connector>a\s+las)\s*$";
233233
public const string CenturyRegex = @"^[.]";
234234
public const string DecadeRegex = @"(?<decade>diez|veinte|treinta|cuarenta|cincuenta|se[st]enta|ochenta|noventa)";
235-
public static readonly string DecadeWithCenturyRegex = $@"(los\s+)?((((d[ée]cada(\s+de)?)\s+)(((?<century>\d|1\d|2\d)?(?<decade>\d0))))|a[ñn]os\s+((((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}\s+)?{DecadeRegex})|((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex})(\s+{DecadeRegex}?)|((dos\s+)?mil)(\s+{WrittenOneHundredToNineHundredRegex}\s+)?{DecadeRegex}?))";
235+
public static readonly string DecadeWithCenturyRegex = $@"(los\s+)?((((d[ée]cada(\s+de)?)\s+)(((?<century>\d|1\d|2\d)?(?<decade>\d0))))|a[ñn]os\s+((?<century>\d|1\d|2\d)?(?<decade>\d0)\b)|a[ñn]os\s+(((?<century>((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}\s+)?)?{DecadeRegex})|(?<century>((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}))(\s+{DecadeRegex}?)|(?<century>((dos\s+)?mil)(\s+{WrittenOneHundredToNineHundredRegex}\s+)?){DecadeRegex}?))";
236236
public static readonly string RelativeDecadeRegex = $@"\b(((el|las?)\s+)?{RelativeRegex}\s+((?<number>[\w,]+)\s+)?(d[eé]cada|decenio)s?)\b";
237237
public static readonly string ComplexDatePeriodRegex = $@"(?:((de(sde)?)\s+)?(?<start>.+)\s*({StrictTillRegex})\s*(?<end>.+)|((entre)\s+)(?<start>.+)\s*({RangeConnectorRegex})\s*(?<end>.+))";
238238
public const string AmbiguousPointRangeRegex = @"^(mar\.?)$";
@@ -245,6 +245,8 @@ public static class DateTimeDefinitions
245245
{
246246
{ @"años", @"Y" },
247247
{ @"año", @"Y" },
248+
{ @"anos", @"Y" },
249+
{ @"ano", @"Y" },
248250
{ @"meses", @"MON" },
249251
{ @"mes", @"MON" },
250252
{ @"trimestre", @"3MON" },
@@ -287,6 +289,8 @@ public static class DateTimeDefinitions
287289
{
288290
{ @"años", 31536000 },
289291
{ @"año", 31536000 },
292+
{ @"anos", 31536000 },
293+
{ @"ano", 31536000 },
290294
{ @"meses", 2592000 },
291295
{ @"mes", 2592000 },
292296
{ @"semanas", 604800 },
@@ -639,7 +643,15 @@ public static class DateTimeDefinitions
639643
public static readonly string ModSuffixRegex = $@"\b({AgoRegex}|{LaterRegex}|{BeforeAfterRegex}|{FutureSuffixRegex}|{PastSuffixRegex})\b";
640644
public static readonly Dictionary<string, int> WrittenDecades = new Dictionary<string, int>
641645
{
642-
{ @"", 0 }
646+
{ @"diez", 10 },
647+
{ @"veinte", 20 },
648+
{ @"treinta", 30 },
649+
{ @"cuarenta", 40 },
650+
{ @"cincuenta", 50 },
651+
{ @"sesenta", 60 },
652+
{ @"setenta", 70 },
653+
{ @"ochenta", 80 },
654+
{ @"noventa", 90 }
643655
};
644656
public static readonly Dictionary<string, int> SpecialDecadeCases = new Dictionary<string, int>
645657
{
@@ -747,7 +759,9 @@ public static class DateTimeDefinitions
747759
public static readonly IList<string> YearTerms = new List<string>
748760
{
749761
@"año",
750-
@"años"
762+
@"años",
763+
@"ano",
764+
@"anos"
751765
};
752766
public static readonly IList<string> YearToDateTerms = new List<string>
753767
{
@@ -770,7 +784,7 @@ public static class DateTimeDefinitions
770784
public const string MonthTypeRegex = @"(mes(es)?|mensual(es|mente)?)$";
771785
public const string QuarterTypeRegex = @"(trimestral(es|mente)?)$";
772786
public const string SemiAnnualTypeRegex = @"(semestral(es|mente)?)$";
773-
public const string YearTypeRegex = @"(años?|anual(mente)?)$";
787+
public const string YearTypeRegex = @"(a[nñ]os?|anual(mente)?)$";
774788
public static readonly IList<string> ThisTerms = new List<string>
775789
{
776790
@"esta"

.NET/Microsoft.Recognizers.Definitions.Common/Spanish/NumbersWithUnitDefinitions.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,17 @@ public static class NumbersWithUnitDefinitions
2323
{
2424
public static readonly Dictionary<string, string> AgeSuffixList = new Dictionary<string, string>
2525
{
26-
{ @"Año", @"años|año" },
26+
{ @"Año", @"años|anos|año|ano" },
2727
{ @"Mes", @"meses|mes" },
2828
{ @"Semana", @"semanas|semana" },
2929
{ @"Día", @"dias|días|día|dia" }
3030
};
3131
public static readonly IList<string> AmbiguousAgeUnitList = new List<string>
3232
{
3333
@"años",
34+
@"anos",
3435
@"año",
36+
@"ano",
3537
@"meses",
3638
@"mes",
3739
@"semanas",
@@ -737,7 +739,7 @@ public static class NumbersWithUnitDefinitions
737739
{ @"Yarda", @"yd|yarda|yardas" },
738740
{ @"Pulgada", @"pulgada|pulgadas|""" },
739741
{ @"Pie", @"pie|pies|ft" },
740-
{ @"Año luz", @"año luz|años luz|al" }
742+
{ @"Año luz", @"año luz|ano luz|años luz|anos luz|al" }
741743
};
742744
public static readonly IList<string> AmbiguousLengthUnitList = new List<string>
743745
{

Patterns/Spanish/Spanish-DateTime.yaml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ MonthSuffixRegex: !nestedRegex
7373
def: (?<msuf>((del?|la|el)\s+)?({RelativeMonthRegex}|{MonthRegex}))
7474
references: [ RelativeMonthRegex, MonthRegex ]
7575
DateUnitRegex: !simpleRegex
76-
def: (?<unit>(año|(?<uoy>semana))(?<plural>s)?|(?<uoy>mes)(?<plural>es)?|(?<uoy>d[ií]a)(?<plural>s)?(?<business>\s+(h[aá]biles|laborales))?)\b
76+
def: (?<unit>(a[nñ]o|(?<uoy>semana))(?<plural>s)?|(?<uoy>mes)(?<plural>es)?|(?<uoy>d[ií]a)(?<plural>s)?(?<business>\s+(h[aá]biles|laborales))?)\b
7777
PastRegex: !simpleRegex
7878
def: (?<past>\b(pasad(a|o)(s)?|[uú]ltim[oa](s)?|anterior(es)?|previo(s)?)\b)
7979
FutureRegex: !simpleRegex
@@ -162,7 +162,7 @@ MonthOfRegex: !nestedRegex
162162
def: (mes)(\s+)({OfPrepositionRegex})
163163
references: [ OfPrepositionRegex ]
164164
RangeUnitRegex: !simpleRegex
165-
def: \b(?<unit>años?|mes(es)?|semanas?)\b
165+
def: \b(?<unit>a[nñ]os?|mes(es)?|semanas?)\b
166166
BeforeAfterRegex: !simpleRegex
167167
def: ^[.]
168168
InConnectorRegex: !simpleRegex
@@ -433,7 +433,7 @@ PeriodSpecificTimeOfDayRegex: !nestedRegex
433433
def: \b(({LaterEarlyRegex}\s+)?est[ae]\s+{DateTimeTimeOfDayRegex}|({StrictRelativeRegex}\s+{PeriodTimeOfDayRegex})|anoche)\b
434434
references: [ PeriodTimeOfDayRegex, StrictRelativeRegex, DateTimeTimeOfDayRegex, LaterEarlyRegex ]
435435
UnitRegex: !simpleRegex
436-
def: (?<unit>años?|(bi|tri|cuatri|se)mestre|mes(es)?|semanas?|fin(es)?\s+de\s+semana|finde|d[ií]as?|horas?|hra?s?|hs?|minutos?|mins?|segundos?|segs?|noches?)\b
436+
def: (?<unit>a[nñ]os?|(bi|tri|cuatri|se)mestre|mes(es)?|semanas?|fin(es)?\s+de\s+semana|finde|d[ií]as?|horas?|hra?s?|hs?|minutos?|mins?|segundos?|segs?|noches?)\b
437437
ConnectorRegex: !simpleRegex
438438
def: ^(,|t|(para|y|a|en|por) las?|(\s*,\s*)?((cerca|alrededor)\s+)?(de\s+las?|del))$
439439
# SpanishTimePeriodExtractorConfiguration
@@ -561,7 +561,7 @@ OrRegex: !simpleRegex
561561
# TODO: modify below regex according to the counterpart in English
562562
def: ^[.]
563563
SpecialYearTermsRegex: !nestedRegex
564-
def: \b(({SpecialYearPrefixes}\s+años?\s+|años?\s+({SpecialYearPrefixes}\s+)?)(de\s+)?)
564+
def: \b(({SpecialYearPrefixes}\s+a[nñ]os?\s+|a[nñ]os?\s+({SpecialYearPrefixes}\s+)?)(de\s+)?)
565565
references: [ SpecialYearPrefixes ]
566566
YearPlusNumberRegex: !nestedRegex
567567
def: \b({SpecialYearTermsRegex}((?<year>(\d{2,4}))|{FullTextYearRegex}))\b
@@ -580,7 +580,7 @@ CenturyRegex: !simpleRegex
580580
DecadeRegex: !simpleRegex
581581
def: (?<decade>diez|veinte|treinta|cuarenta|cincuenta|se[st]enta|ochenta|noventa)
582582
DecadeWithCenturyRegex: !nestedRegex
583-
def: (los\s+)?((((d[ée]cada(\s+de)?)\s+)(((?<century>\d|1\d|2\d)?(?<decade>\d0))))|a[ñn]os\s+((((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}\s+)?{DecadeRegex})|((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex})(\s+{DecadeRegex}?)|((dos\s+)?mil)(\s+{WrittenOneHundredToNineHundredRegex}\s+)?{DecadeRegex}?))
583+
def: (los\s+)?((((d[ée]cada(\s+de)?)\s+)(((?<century>\d|1\d|2\d)?(?<decade>\d0))))|a[ñn]os\s+((?<century>\d|1\d|2\d)?(?<decade>\d0)\b)|a[ñn]os\s+(((?<century>((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}\s+)?)?{DecadeRegex})|(?<century>((dos\s+)?mil\s+)?({WrittenOneHundredToNineHundredRegex}))(\s+{DecadeRegex}?)|(?<century>((dos\s+)?mil)(\s+{WrittenOneHundredToNineHundredRegex}\s+)?){DecadeRegex}?))
584584
references: [ WrittenOneHundredToNineHundredRegex, DecadeRegex ]
585585
RelativeDecadeRegex: !nestedRegex
586586
def: \b(((el|las?)\s+)?{RelativeRegex}\s+((?<number>[\w,]+)\s+)?(d[eé]cada|decenio)s?)\b
@@ -609,6 +609,8 @@ UnitMap: !dictionary
609609
entries:
610610
años: Y
611611
año: Y
612+
anos: Y
613+
ano: Y
612614
meses: MON
613615
mes: MON
614616
trimestre: 3MON
@@ -651,6 +653,8 @@ UnitValueMap: !dictionary
651653
entries:
652654
años: 31536000
653655
año: 31536000
656+
anos: 31536000
657+
ano: 31536000
654658
meses: 2592000
655659
mes: 2592000
656660
semanas: 604800
@@ -1048,9 +1052,16 @@ ModSuffixRegex: !nestedRegex
10481052
references: [AgoRegex, LaterRegex, BeforeAfterRegex, FutureSuffixRegex, PastSuffixRegex]
10491053
WrittenDecades: !dictionary
10501054
types: [ string, int ]
1051-
# TODO: modify below dictionary according to the counterpart in English
10521055
entries:
1053-
"": 0
1056+
'diez': 10
1057+
'veinte': 20
1058+
'treinta': 30
1059+
'cuarenta': 40
1060+
'cincuenta': 50
1061+
'sesenta': 60
1062+
'setenta': 70
1063+
'ochenta': 80
1064+
'noventa': 90
10541065
SpecialDecadeCases: !dictionary
10551066
types: [ string, int ]
10561067
# TODO: modify below dictionary there're special cases for written decades
@@ -1167,6 +1178,8 @@ YearTerms: !list
11671178
entries:
11681179
- año
11691180
- años
1181+
- ano
1182+
- anos
11701183
YearToDateTerms: !list
11711184
types: [ string ]
11721185
entries:
@@ -1198,7 +1211,7 @@ QuarterTypeRegex: !simpleRegex
11981211
SemiAnnualTypeRegex: !simpleRegex
11991212
def: (semestral(es|mente)?)$
12001213
YearTypeRegex: !simpleRegex
1201-
def: (años?|anual(mente)?)$
1214+
def: (a[nñ]os?|anual(mente)?)$
12021215
ThisTerms: !list
12031216
types: [ string ]
12041217
entries:

Patterns/Spanish/Spanish-NumbersWithUnit.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
AgeSuffixList: !dictionary
44
types: [ string, string ]
55
entries:
6-
Año: años|año
6+
Año: años|anos|año|ano
77
Mes: meses|mes
88
Semana: semanas|semana
99
Día: dias|días|día|dia
@@ -12,7 +12,9 @@ AmbiguousAgeUnitList: !list
1212
types: [ string ]
1313
entries:
1414
- años
15+
- anos
1516
- año
17+
- ano
1618
- meses
1719
- mes
1820
- semanas
@@ -969,7 +971,7 @@ LengthSuffixList: !dictionary
969971
Yarda: yd|yarda|yardas
970972
Pulgada: pulgada|pulgadas|"
971973
Pie: pie|pies|ft
972-
Año luz: año luz|años luz|al
974+
Año luz: año luz|ano luz|años luz|anos luz|al
973975
AmbiguousLengthUnitList: !list
974976
types: [ string ]
975977
entries:

Specs/DateTime/Spanish/DatePeriodExtractor.json

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3482,10 +3482,10 @@
34823482
"NotSupportedByDesign": "javascript, python",
34833483
"Results": [
34843484
{
3485-
"Text": "años 1970",
3485+
"Text": "los años 1970",
34863486
"Type": "daterange",
3487-
"Start": 7,
3488-
"Length": 9
3487+
"Start": 3,
3488+
"Length": 13
34893489
}
34903490
]
34913491
},
@@ -3495,10 +3495,10 @@
34953495
"NotSupportedByDesign": "javascript, python",
34963496
"Results": [
34973497
{
3498-
"Text": "años 2000",
3498+
"Text": "los años 2000",
34993499
"Type": "daterange",
3500-
"Start": 13,
3501-
"Length": 9
3500+
"Start": 9,
3501+
"Length": 13
35023502
}
35033503
]
35043504
},
@@ -3521,10 +3521,36 @@
35213521
"NotSupportedByDesign": "javascript, python",
35223522
"Results": [
35233523
{
3524-
"Text": "años 70",
3524+
"Text": "los años 70",
35253525
"Type": "daterange",
3526-
"Start": 7,
3527-
"Length": 7
3526+
"Start": 3,
3527+
"Length": 11
3528+
}
3529+
]
3530+
},
3531+
{
3532+
"Input": "escrito en los anos 90",
3533+
"NotSupported": "java",
3534+
"NotSupportedByDesign": "javascript, python",
3535+
"Results": [
3536+
{
3537+
"Text": "los anos 90",
3538+
"Type": "daterange",
3539+
"Start": 11,
3540+
"Length": 11
3541+
}
3542+
]
3543+
},
3544+
{
3545+
"Input": "escritos en los ultimos 3 anos",
3546+
"NotSupported": "java",
3547+
"NotSupportedByDesign": "javascript, python",
3548+
"Results": [
3549+
{
3550+
"Text": "ultimos 3 anos",
3551+
"Type": "daterange",
3552+
"Start": 16,
3553+
"Length": 14
35283554
}
35293555
]
35303556
},

0 commit comments

Comments
 (0)