public KoreanDateTimePeriodParserConfiguration(ICJKCommonDateTimeParserConfiguration config) : base(config) { var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); CardinalExtractor = config.CardinalExtractor; CardinalParser = AgnosticNumberParserFactory.GetParser( AgnosticNumberParserType.Cardinal, new KoreanNumberParserConfiguration(numConfig)); DateExtractor = config.DateExtractor; DurationExtractor = config.DurationExtractor; DateTimeExtractor = config.DateTimeExtractor; TimeExtractor = config.TimeExtractor; TimePeriodExtractor = config.TimePeriodExtractor; DateParser = config.DateParser; TimeParser = config.TimeParser; DateTimeParser = config.DateTimeParser; TimePeriodParser = config.TimePeriodParser; SpecificTimeOfDayRegex = KoreanDateTimePeriodExtractorConfiguration.SpecificTimeOfDayRegex; TimeOfDayRegex = KoreanDateTimePeriodExtractorConfiguration.TimeOfDayRegex; NextRegex = KoreanDateTimePeriodExtractorConfiguration.NextRegex; LastRegex = KoreanDateTimePeriodExtractorConfiguration.LastRegex; PastRegex = KoreanDateTimePeriodExtractorConfiguration.PastRegex; FutureRegex = KoreanDateTimePeriodExtractorConfiguration.FutureRegex; UnitRegex = KoreanDateTimePeriodExtractorConfiguration.UnitRegex; UnitMap = config.UnitMap; }
public DutchNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new DutchNumberParserConfiguration()); this.ConnectorToken = string.Empty; }
private static IModel GetPercentageModel() { return (new PercentModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Percentage, new EnglishNumberParserConfiguration()), new PercentageExtractor())); }
private static IModel GetNumberModel() { return (new NumberModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new EnglishNumberParserConfiguration()), new NumberExtractor(NumberMode.PureNumber))); }
private static IModel GetOrdinalModel() { return (new OrdinalModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Ordinal, new EnglishNumberParserConfiguration()), new OrdinalExtractor())); }
public FrenchNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new FrenchNumberParserConfiguration()); this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken; }
private static IModel GetWithoutWhiteListNumberModel() { return (new NumberModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new ChineseNumberParserConfiguration()), new NumberExtractor(ChineseNumberMode.ExtractAll))); }
public TestNumberRecognizerInitialization() { controlModel = new NumberModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new EnglishNumberParserConfiguration(new BaseNumberOptionsConfiguration(EnglishCulture))), NumberExtractor.GetInstance(NumberMode.PureNumber)); }
public JapaneseNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = new NumberExtractor(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new JapaneseNumberParserConfiguration()); this.ConnectorToken = string.Empty; }
public PortugueseNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new PortugueseNumberParserConfiguration( new BaseNumberOptionsConfiguration(ci.Name))); this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken; }
public EnglishNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new EnglishNumberParserConfiguration( new BaseNumberOptionsConfiguration(ci.Name))); this.ConnectorToken = string.Empty; }
public void TestKoreanParser() { var config = new KoreanNumberParserConfiguration(new BaseNumberOptionsConfiguration(Culture.Korean, NumberOptions.None)); IParser parserNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, config); Assert.IsTrue(parserNumber is BaseCJKNumberParser); }
public void TestKoreanParser() { IParser parserNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new KoreanNumberParserConfiguration()); IParser parserCardinal = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Cardinal, new KoreanNumberParserConfiguration()); Assert.IsTrue(parserNumber is BaseCJKNumberParser); Assert.IsTrue(parserCardinal is BaseCJKNumberParser); }
public void ParseTest(ArabicType type, string query, string value) { char decimalSep = '.', nonDecimalSep = ','; switch (type) { case ArabicType.DoubleNumBlankComma: case ArabicType.DoubleNumBlankDot: case ArabicType.IntegerNumBlank: nonDecimalSep = ' '; break; case ArabicType.DoubleNumCommaCdot: case ArabicType.DoubleNumCommaDot: case ArabicType.IntegerNumComma: nonDecimalSep = ','; break; case ArabicType.DoubleNumDotComma: case ArabicType.IntegerNumDot: nonDecimalSep = '.'; break; case ArabicType.DoubleNumQuoteComma: case ArabicType.IntegerNumQuote: nonDecimalSep = '\''; break; } switch (type) { case ArabicType.DoubleNumQuoteComma: case ArabicType.DoubleNumBlankComma: case ArabicType.DoubleNumDotComma: decimalSep = ','; break; case ArabicType.DoubleNumBlankDot: case ArabicType.DoubleNumCommaDot: decimalSep = '.'; break; case ArabicType.DoubleNumCommaCdot: decimalSep = '·'; break; } var parser = AgnosticNumberParserFactory.GetParser( AgnosticNumberParserType.Double, new ArabicNumberTestConfiguration(decimalSep, nonDecimalSep)); var resultJson = parser.Parse( new ExtractResult() { Text = query, Start = 0, Length = query.Length, Type = "builtin.num.double", Data = "Num" }); Assert.AreEqual(value, resultJson.ResolutionStr); }
public ChineseNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(ci.Name, NumberOptions.None); this.InternalNumberExtractor = new NumberExtractor(numConfig); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new ChineseNumberParserConfiguration(numConfig)); this.ConnectorToken = string.Empty; }
public void TestGermanParser() { IParser parseNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new GermanNumberParserConfiguration()); IParser parseCardinal = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Cardinal, new GermanNumberParserConfiguration()); IParser parsePercentage = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Percentage, new GermanNumberParserConfiguration()); Assert.IsTrue(parseNumber is BaseNumberParser); Assert.IsTrue(parseCardinal is BaseNumberParser); Assert.IsTrue(parsePercentage is BasePercentageParser); }
public void TestJapaneseParser() { IParser parserNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new JapaneseNumberParserConfiguration()); IParser parserCardinal = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Cardinal, new JapaneseNumberParserConfiguration()); IParser parserPercentaje = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Percentage, new JapaneseNumberParserConfiguration()); Assert.IsTrue(parserNumber is BaseCJKNumberParser); Assert.IsTrue(parserCardinal is BaseCJKNumberParser); Assert.IsTrue(parserPercentaje is BaseCJKNumberParser); }
public ItalianNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(Culture.Italian, NumberOptions.None); this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new ItalianNumberParserConfiguration(numConfig)); this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken; }
public TurkishNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(Culture.Turkish, NumberOptions.None); this.InternalNumberExtractor = NumberExtractor.GetInstance(); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new TurkishNumberParserConfiguration(numConfig)); this.ConnectorToken = string.Empty; }
public PortugueseNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(Culture.Portuguese, NumberOptions.None); this.InternalNumberExtractor = NumberExtractor.GetInstance(numConfig); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new PortugueseNumberParserConfiguration(numConfig)); this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken; this.TypeList = DimensionExtractorConfiguration.DimensionTypeList; }
public EnglishNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(Culture.English, NumberOptions.None); this.InternalNumberExtractor = NumberExtractor.GetInstance(numConfig); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new EnglishNumberParserConfiguration(numConfig)); this.ConnectorToken = string.Empty; this.TypeList = DimensionExtractorConfiguration.DimensionTypeList; }
public void TestJapaneseParser() { var config = new JapaneseNumberParserConfiguration(new BaseNumberOptionsConfiguration(Culture.Japanese, NumberOptions.None)); IParser parserNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, config); IParser parserCardinal = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Cardinal, config); IParser parserPercentage = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Percentage, config); Assert.IsTrue(parserNumber is BaseCJKNumberParser); Assert.IsTrue(parserCardinal is BaseCJKNumberParser); Assert.IsTrue(parserPercentage is BaseCJKNumberParser); }
public void TestFrenchParser() { var config = new FrenchNumberParserConfiguration(new BaseNumberOptionsConfiguration(Culture.French)); IParser parseNumber = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, config); IParser parseCardinal = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Cardinal, config); IParser parsePercentage = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Percentage, config); Assert.IsTrue(parseNumber is BaseNumberParser); Assert.IsTrue(parseCardinal is BaseNumberParser); Assert.IsTrue(parsePercentage is BasePercentageParser); }
private static IModel GetCustomModelFor(string language) { switch (language) { case Culture.Chinese: return(new NumberModel( AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new ChineseNumberParserConfiguration()), new NumberExtractor(ChineseNumberMode.ExtractAll))); } throw new Exception($"Custom Model for '{language}' not supported"); }
public FrenchNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { var numConfig = new BaseNumberOptionsConfiguration(Culture.French, NumberOptions.None); this.InternalNumberExtractor = NumberExtractor.GetInstance(numConfig); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new FrenchNumberParserConfiguration(numConfig)); // A space is added to the token to avoid interpreting part of a unit as a connector (e.g. 'de' in 'degrés') this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken + " "; this.TypeList = DimensionExtractorConfiguration.DimensionTypeList; }
public void ParseTest(LongFormatType type, string query, string value) { char decimalSep = type.DecimalsMark, nonDecimalSep = type.ThousandsMark; var parser = AgnosticNumberParserFactory.GetParser( AgnosticNumberParserType.Double, new LongFormTestConfiguration(decimalSep, nonDecimalSep)); var resultJson = parser.Parse(new ExtractResult() { Text = query, Start = 0, Length = query.Length, Type = "builtin.num.double", Data = "Num", }); Assert.AreEqual(value, resultJson.ResolutionStr); }
public JapaneseDateTimePeriodParserConfiguration(IFullDateTimeParserConfiguration configuration) { config = configuration; var numOptions = NumberOptions.None; if ((config.Options & DateTimeOptions.NoProtoCache) != 0) { numOptions = NumberOptions.NoProtoCache; } var numConfig = new BaseNumberOptionsConfiguration(config.Culture, numOptions); cardinalParser = AgnosticNumberParserFactory.GetParser( AgnosticNumberParserType.Cardinal, new JapaneseNumberParserConfiguration(numConfig)); }
public SpanishNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = new NumberExtractor(NumberMode.Default); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new SpanishNumberParserConfiguration()); this.ConnectorToken = NumbersWithUnitDefinitions.ConnectorToken; }
public PortugueseNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = new NumberExtractor(NumberMode.Default); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new PortugueseNumberParserConfiguration()); this.ConnectorToken = "de"; }
public EnglishNumberWithUnitParserConfiguration(CultureInfo ci) : base(ci) { this.InternalNumberExtractor = new NumberExtractor(NumberMode.Default); this.InternalNumberParser = AgnosticNumberParserFactory.GetParser(AgnosticNumberParserType.Number, new EnglishNumberParserConfiguration()); this.ConnectorToken = string.Empty; }