diff --git a/.NET/Microsoft.Recognizers.Definitions.Common/English/NumbersDefinitions.cs b/.NET/Microsoft.Recognizers.Definitions.Common/English/NumbersDefinitions.cs index 35fc78404b..768aa481aa 100644 --- a/.NET/Microsoft.Recognizers.Definitions.Common/English/NumbersDefinitions.cs +++ b/.NET/Microsoft.Recognizers.Definitions.Common/English/NumbersDefinitions.cs @@ -44,7 +44,7 @@ public static class NumbersDefinitions public const string NumberOrdinalRegex = @"(first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|eighteenth|nineteenth|twentieth|thirtieth|fortieth|fiftieth|sixtieth|seventieth|eightieth|ninetieth)"; public const string RelativeOrdinalRegex = @"((next|previous) one|(the second|next) to last|the one before the last( one)?|the last but one|(ante)?penultimate|last|next|previous)"; public static readonly string BasicOrdinalRegex = $@"({NumberOrdinalRegex}|{RelativeOrdinalRegex})"; - public static readonly string RelativeOrdinalFilterRegex = $@"(? = new Map([["cero", 0],["un", 1],["una", 1],["uno", 1],["dos", 2],["tres", 3],["cuatro", 4],["cinco", 5],["seis", 6],["siete", 7],["ocho", 8],["nueve", 9],["diez", 10],["once", 11],["doce", 12],["docena", 12],["docenas", 12],["trece", 13],["catorce", 14],["quince", 15],["dieciseis", 16],["dieciséis", 16],["diecisiete", 17],["dieciocho", 18],["diecinueve", 19],["veinte", 20],["ventiuna", 21],["ventiuno", 21],["veintiun", 21],["veintiún", 21],["veintiuno", 21],["veintiuna", 21],["veintidos", 22],["veintidós", 22],["veintitres", 23],["veintitrés", 23],["veinticuatro", 24],["veinticinco", 25],["veintiseis", 26],["veintiséis", 26],["veintisiete", 27],["veintiocho", 28],["veintinueve", 29],["treinta", 30],["cuarenta", 40],["cincuenta", 50],["sesenta", 60],["setenta", 70],["ochenta", 80],["noventa", 90],["cien", 100],["ciento", 100],["doscientas", 200],["doscientos", 200],["trescientas", 300],["trescientos", 300],["cuatrocientas", 400],["cuatrocientos", 400],["quinientas", 500],["quinientos", 500],["seiscientas", 600],["seiscientos", 600],["setecientas", 700],["setecientos", 700],["ochocientas", 800],["ochocientos", 800],["novecientas", 900],["novecientos", 900],["mil", 1000],["millon", 1000000],["millón", 1000000],["millones", 1000000],["billon", 1000000000000],["billón", 1000000000000],["billones", 1000000000000],["trillon", 1000000000000000000],["trillón", 1000000000000000000],["trillones", 1000000000000000000]]); - export const OrdinalNumberMap: ReadonlyMap = new Map([["primero", 1],["primera", 1],["primer", 1],["segundo", 2],["segunda", 2],["medio", 2],["media", 2],["tercero", 3],["tercera", 3],["tercer", 3],["tercio", 3],["cuarto", 4],["cuarta", 4],["quinto", 5],["quinta", 5],["sexto", 6],["sexta", 6],["septimo", 7],["septima", 7],["octavo", 8],["octava", 8],["noveno", 9],["novena", 9],["decimo", 10],["decima", 10],["undecimo", 11],["undecima", 11],["duodecimo", 12],["duodecima", 12],["decimotercero", 13],["decimotercera", 13],["decimocuarto", 14],["decimocuarta", 14],["decimoquinto", 15],["decimoquinta", 15],["decimosexto", 16],["decimosexta", 16],["decimoseptimo", 17],["decimoseptima", 17],["decimoctavo", 18],["decimoctava", 18],["decimonoveno", 19],["decimonovena", 19],["vigesimo", 20],["vigesima", 20],["trigesimo", 30],["trigesima", 30],["cuadragesimo", 40],["cuadragesima", 40],["quincuagesimo", 50],["quincuagesima", 50],["sexagesimo", 60],["sexagesima", 60],["septuagesimo", 70],["septuagesima", 70],["octogesimo", 80],["octogesima", 80],["nonagesimo", 90],["nonagesima", 90],["centesimo", 100],["centesima", 100],["ducentesimo", 200],["ducentesima", 200],["tricentesimo", 300],["tricentesima", 300],["cuadringentesimo", 400],["cuadringentesima", 400],["quingentesimo", 500],["quingentesima", 500],["sexcentesimo", 600],["sexcentesima", 600],["septingentesimo", 700],["septingentesima", 700],["octingentesimo", 800],["octingentesima", 800],["noningentesimo", 900],["noningentesima", 900],["milesimo", 1000],["milesima", 1000],["millonesimo", 1000000],["millonesima", 1000000],["billonesimo", 1000000000000],["billonesima", 1000000000000]]); + export const OrdinalNumberMap: ReadonlyMap = new Map([["primero", 1],["primera", 1],["primer", 1],["segundo", 2],["segunda", 2],["medio", 2],["media", 2],["tercero", 3],["tercera", 3],["tercer", 3],["tercio", 3],["cuarto", 4],["cuarta", 4],["quinto", 5],["quinta", 5],["sexto", 6],["sexta", 6],["septimo", 7],["septima", 7],["octavo", 8],["octava", 8],["noveno", 9],["novena", 9],["decimo", 10],["décimo", 10],["decima", 10],["décima", 10],["undecimo", 11],["undecima", 11],["duodecimo", 12],["duodecima", 12],["decimotercero", 13],["decimotercera", 13],["decimocuarto", 14],["decimocuarta", 14],["decimoquinto", 15],["decimoquinta", 15],["decimosexto", 16],["decimosexta", 16],["decimoseptimo", 17],["decimoseptima", 17],["decimoctavo", 18],["decimoctava", 18],["decimonoveno", 19],["decimonovena", 19],["vigesimo", 20],["vigesima", 20],["trigesimo", 30],["trigesima", 30],["cuadragesimo", 40],["cuadragesima", 40],["quincuagesimo", 50],["quincuagesima", 50],["sexagesimo", 60],["sexagesima", 60],["septuagesimo", 70],["septuagesima", 70],["octogesimo", 80],["octogesima", 80],["nonagesimo", 90],["nonagesima", 90],["centesimo", 100],["centesima", 100],["ducentesimo", 200],["ducentesima", 200],["tricentesimo", 300],["tricentesima", 300],["cuadringentesimo", 400],["cuadringentesima", 400],["quingentesimo", 500],["quingentesima", 500],["sexcentesimo", 600],["sexcentesima", 600],["septingentesimo", 700],["septingentesima", 700],["octingentesimo", 800],["octingentesima", 800],["noningentesimo", 900],["noningentesima", 900],["milesimo", 1000],["milesima", 1000],["millonesimo", 1000000],["millonesima", 1000000],["billonesimo", 1000000000000],["billonesima", 1000000000000]]); export const PrefixCardinalMap: ReadonlyMap = new Map([["dos", 2],["tres", 3],["cuatro", 4],["cinco", 5],["seis", 6],["siete", 7],["ocho", 8],["nueve", 9],["diez", 10],["once", 11],["doce", 12],["trece", 13],["catorce", 14],["quince", 15],["dieciseis", 16],["dieciséis", 16],["diecisiete", 17],["dieciocho", 18],["diecinueve", 19],["veinte", 20],["ventiuna", 21],["veintiun", 21],["veintiún", 21],["veintidos", 22],["veintitres", 23],["veinticuatro", 24],["veinticinco", 25],["veintiseis", 26],["veintisiete", 27],["veintiocho", 28],["veintinueve", 29],["treinta", 30],["cuarenta", 40],["cincuenta", 50],["sesenta", 60],["setenta", 70],["ochenta", 80],["noventa", 90],["cien", 100],["doscientos", 200],["trescientos", 300],["cuatrocientos", 400],["quinientos", 500],["seiscientos", 600],["setecientos", 700],["ochocientos", 800],["novecientos", 900]]); export const SuffixOrdinalMap: ReadonlyMap = new Map([["milesimo", 1000],["millonesimo", 1000000],["billonesimo", 1000000000000]]); export const RoundNumberMap: ReadonlyMap = new Map([["mil", 1000],["milesimo", 1000],["millon", 1000000],["millón", 1000000],["millones", 1000000],["millonesimo", 1000000],["billon", 1000000000000],["billón", 1000000000000],["billones", 1000000000000],["billonesimo", 1000000000000],["trillon", 1000000000000000000],["trillón", 1000000000000000000],["trillones", 1000000000000000000],["trillonesimo", 1000000000000000000],["docena", 12],["docenas", 12],["k", 1000],["m", 1000000],["g", 1000000000],["b", 1000000000],["t", 1000000000000]]); diff --git a/Patterns/English/English-Numbers.yaml b/Patterns/English/English-Numbers.yaml index 6df6dd8e4b..0832927d89 100644 --- a/Patterns/English/English-Numbers.yaml +++ b/Patterns/English/English-Numbers.yaml @@ -56,8 +56,8 @@ BasicOrdinalRegex: !nestedRegex def: ({NumberOrdinalRegex}|{RelativeOrdinalRegex}) references: [ NumberOrdinalRegex, RelativeOrdinalRegex ] RelativeOrdinalFilterRegex: !nestedRegex - def: (?