def __init__(self, culture_info=None): if culture_info is None: culture_info = CultureInfo(Culture.German) self._culture_info = culture_info self._lang_marker = GermanNumeric.LangMarker self._decimal_separator_char = GermanNumeric.DecimalSeparatorChar self._fraction_marker_token = GermanNumeric.FractionMarkerToken self._non_decimal_separator_char = GermanNumeric.NonDecimalSeparatorChar self._half_a_dozen_text = GermanNumeric.HalfADozenText self._word_separator_token = GermanNumeric.WordSeparatorToken self._written_decimal_separator_texts = GermanNumeric.WrittenDecimalSeparatorTexts self._written_group_separator_texts = GermanNumeric.WrittenGroupSeparatorTexts self._written_integer_separator_texts = GermanNumeric.WrittenIntegerSeparatorTexts self._written_fraction_separator_texts = GermanNumeric.WrittenFractionSeparatorTexts self._cardinal_number_map = GermanNumeric.CardinalNumberMap self._ordinal_number_map = GermanNumeric.OrdinalNumberMap self._round_number_map = GermanNumeric.RoundNumberMap self._negative_number_sign_regex = RegExpUtility.get_safe_reg_exp( GermanNumeric.NegativeNumberSignRegex) self._half_a_dozen_regex = RegExpUtility.get_safe_reg_exp( GermanNumeric.HalfADozenRegex) self._digital_number_regex = RegExpUtility.get_safe_reg_exp( GermanNumeric.DigitalNumberRegex)
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.French) super().__init__(culture_info) self._internal_number_extractor = FrenchNumberExtractor(NumberMode.DEFAULT) self._internal_number_parser = AgnosticNumberParserFactory.get_parser(ParserType.NUMBER, FrenchNumberParserConfiguration(culture_info)) self._connector_token = FrenchNumericWithUnit.ConnectorToken
def __init__(self, culture_info=None): if culture_info is None: culture_info = CultureInfo(Culture.Spanish) self._culture_info = culture_info self._lang_marker = SpanishNumeric.LangMarker self._decimal_separator_char = SpanishNumeric.DecimalSeparatorChar self._fraction_marker_token = SpanishNumeric.FractionMarkerToken self._non_decimal_separator_char = SpanishNumeric.NonDecimalSeparatorChar self._half_a_dozen_text = SpanishNumeric.HalfADozenText self._word_separator_token = SpanishNumeric.WordSeparatorToken self._written_decimal_separator_texts = SpanishNumeric.WrittenDecimalSeparatorTexts self._written_group_separator_texts = SpanishNumeric.WrittenGroupSeparatorTexts self._written_integer_separator_texts = SpanishNumeric.WrittenIntegerSeparatorTexts self._written_fraction_separator_texts = SpanishNumeric.WrittenFractionSeparatorTexts ordinal_number_map: Dict[str, int] = dict( SpanishNumeric.OrdinalNumberMap) for prefix_key in SpanishNumeric.PrefixCardinalMap: for suffix_key in SpanishNumeric.SuffixOrdinalMap: if not prefix_key+suffix_key in ordinal_number_map: prefix_value = SpanishNumeric.PrefixCardinalMap[prefix_key] suffix_value = SpanishNumeric.SuffixOrdinalMap[suffix_key] ordinal_number_map[prefix_key + suffix_key] = prefix_value*suffix_value self._cardinal_number_map = SpanishNumeric.CardinalNumberMap self._ordinal_number_map = ordinal_number_map self._round_number_map = SpanishNumeric.RoundNumberMap self._negative_number_sign_regex = RegExpUtility.get_safe_reg_exp( SpanishNumeric.NegativeNumberSignRegex) self._half_a_dozen_regex = RegExpUtility.get_safe_reg_exp( SpanishNumeric.HalfADozenRegex) self._digital_number_regex = RegExpUtility.get_safe_reg_exp( SpanishNumeric.DigitalNumberRegex)
def __init__(self, culture_info=None): if culture_info is None: culture_info = CultureInfo(Culture.Chinese) self._culture_info = culture_info self._lang_marker = ChineseNumeric.LangMarker self._decimal_separator_char = ChineseNumeric.DecimalSeparatorChar self._fraction_marker_token = ChineseNumeric.FractionMarkerToken self._non_decimal_separator_char = ChineseNumeric.NonDecimalSeparatorChar self._half_a_dozen_text = ChineseNumeric.HalfADozenText self._word_separator_token = ChineseNumeric.WordSeparatorToken self._round_number_map = ChineseNumeric.RoundNumberMap self._digital_number_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.DigitalNumberRegex) self.zero_to_nine_map_chs = ChineseNumeric.ZeroToNineMap self.round_number_map_chs = ChineseNumeric.RoundNumberMapChar self.full_to_half_map_chs = ChineseNumeric.FullToHalfMap self.trato_sim_map_chs = ChineseNumeric.TratoSimMap self.unit_map_chs = ChineseNumeric.UnitMap self.round_direct_list_chs = ChineseNumeric.RoundDirectList self.digit_num_regex = ChineseNumeric.DigitNumRegex self.dozen_regex = ChineseNumeric.DozenRegex self.percentage_regex = ChineseNumeric.PercentageRegex self.double_and_round_chs_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.DoubleAndRoundRegex) self.frac_split_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.FracSplitRegex) self._negative_number_sign_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.NegativeNumberSignRegex) self.point_regex_chs = ChineseNumeric.PointRegex self.spe_get_number_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.SpeGetNumberRegex) self.pair_regex = RegExpUtility.get_safe_reg_exp(ChineseNumeric.PairRegex)
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Spanish) super().__init__(culture_info) self._unit_num_extractor = SpanishNumberExtractor() self._build_prefix = SpanishNumericWithUnit.BuildPrefix self._build_suffix = SpanishNumericWithUnit.BuildSuffix
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.English) super().__init__(culture_info) self._unit_num_extractor = EnglishNumberExtractor() self._build_prefix = EnglishNumericWithUnit.BuildPrefix self._build_suffix = EnglishNumericWithUnit.BuildSuffix self._compound_unit_connector_regex = RegExpUtility.get_safe_reg_exp(EnglishNumericWithUnit.CompoundUnitConnectorRegex)
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Chinese) super().__init__(culture_info) self._internal_number_extractor = ChineseNumberExtractor( ChineseNumberExtractorMode.EXTRACT_ALL) self._internal_number_parser = AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, ChineseNumberParserConfiguration(culture_info))
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Portuguese) super().__init__(culture_info) self._internal_number_extractor = PortugueseNumberExtractor( NumberMode.DEFAULT) self._internal_number_parser = AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, PortugueseNumberParserConfiguration(culture_info))
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Chinese) super().__init__(culture_info) self._unit_num_extractor = ChineseNumberExtractor( ChineseNumberExtractorMode.EXTRACT_ALL) self._build_prefix = ChineseNumericWithUnit.BuildPrefix self._build_suffix = ChineseNumericWithUnit.BuildSuffix
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.French) super().__init__(culture_info) self._unit_num_extractor = FrenchNumberExtractor() self._build_prefix = FrenchNumericWithUnit.BuildPrefix self._build_suffix = FrenchNumericWithUnit.BuildSuffix self._connector_token = FrenchNumericWithUnit.ConnectorToken
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Chinese) super().__init__(culture_info) self._unit_num_extractor = ChineseNumberExtractor(ChineseNumberExtractorMode.EXTRACT_ALL) self._build_prefix = ChineseNumericWithUnit.BuildPrefix self._build_suffix = ChineseNumericWithUnit.BuildSuffix self._compound_unit_connector_regex = RegExpUtility.get_safe_reg_exp(ChineseNumericWithUnit.CompoundUnitConnectorRegex) self._pm_non_unit_regex = RegExpUtility.get_safe_reg_exp(BaseUnits.PmNonUnitRegex)
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.Chinese) super().__init__(culture_info) self._internal_number_extractor = ChineseNumberExtractor( ChineseNumberExtractorMode.EXTRACT_ALL) self._internal_number_parser = AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, ChineseNumberParserConfiguration(culture_info)) self.currency_name_to_iso_code_map = ChineseNumericWithUnit.CurrencyNameToIsoCodeMap self.currency_fraction_code_list = ChineseNumericWithUnit.FractionalUnitNameToCodeMap
def __init__(self): super().__init__(CultureInfo(Culture.Chinese)) self._year_regex = RegExpUtility.get_safe_reg_exp( ChineseDateTime.DurationYearRegex) self._half_suffix_regex = RegExpUtility.get_safe_reg_exp( ChineseDateTime.DurationHalfSuffixRegex) self._extract_type = Constants.SYS_DATETIME_DURATION self._suffix_list = ChineseDateTime.DurationSuffixList self._prefix_list = dict() self._ambiguous_unit_list = ChineseDateTime.DurationAmbiguousUnits
def __init__(self, culture_info: CultureInfo): if culture_info is None: culture_info = CultureInfo(Culture.French) super().__init__(culture_info) self._unit_num_extractor = FrenchNumberExtractor() self._build_prefix = FrenchNumericWithUnit.BuildPrefix self._build_suffix = FrenchNumericWithUnit.BuildSuffix self._connector_token = FrenchNumericWithUnit.ConnectorToken self._compound_unit_connector_regex = RegExpUtility.get_safe_reg_exp(FrenchNumericWithUnit.CompoundUnitConnectorRegex) self._pm_non_unit_regex = RegExpUtility.get_safe_reg_exp(BaseUnits.PmNonUnitRegex)
def __init__(self, culture_info=None): if culture_info is None: culture_info = CultureInfo(Culture.Japanese) self._culture_info = culture_info self._lang_marker = JapaneseNumeric.LangMarker self._decimal_separator_char = JapaneseNumeric.DecimalSeparatorChar self._fraction_marker_token = JapaneseNumeric.FractionMarkerToken self._non_decimal_separator_char = JapaneseNumeric.NonDecimalSeparatorChar self._half_a_dozen_text = JapaneseNumeric.HalfADozenText self._word_separator_token = JapaneseNumeric.WordSeparatorToken self._zero_char = JapaneseNumeric.ZeroChar self._pair_char = JapaneseNumeric.PairChar self._non_standard_separator_variants = [] self._is_multi_decimal_separator_culture = JapaneseNumeric.MultiDecimalSeparatorCulture self._round_number_map = JapaneseNumeric.RoundNumberMap self._digital_number_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.DigitalNumberRegex) self._zero_to_nine_map = JapaneseNumeric.ZeroToNineMap self._round_number_map_char = JapaneseNumeric.RoundNumberMapChar self._full_to_half_map = JapaneseNumeric.FullToHalfMap self._unit_map = JapaneseNumeric.UnitMap self._round_direct_list = JapaneseNumeric.RoundDirectList self._ten_chars = JapaneseNumeric.TenChars self._digit_num_regex = JapaneseNumeric.DigitNumRegex self._dozen_regex = JapaneseNumeric.DozenRegex self._percentage_regex = JapaneseNumeric.PercentageRegex self._double_and_round_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.DoubleAndRoundRegex) self._frac_split_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.FracSplitRegex) self._negative_number_sign_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.NegativeNumberSignRegex) self._point_regex = JapaneseNumeric.PointRegex self._spe_get_number_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.SpeGetNumberRegex) self._pair_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.PairRegex) self._round_number_integer_regex = RegExpUtility.get_safe_reg_exp( JapaneseNumeric.RoundNumberIntegerRegex)
def initialize_configuration(self): # region English self.register_model('CurrencyModel', Culture.English, lambda options: CurrencyModel( [ExtractorParserModel(BaseMergedUnitExtractor(EnglishCurrencyExtractorConfiguration( )), BaseMergedUnitParser(EnglishCurrencyParserConfiguration()))] )) self.register_model('TemperatureModel', Culture.English, lambda options: TemperatureModel( [ExtractorParserModel(NumberWithUnitExtractor(EnglishTemperatureExtractorConfiguration( )), NumberWithUnitParser(EnglishTemperatureParserConfiguration()))] )) self.register_model('DimensionModel', Culture.English, lambda options: DimensionModel( [ExtractorParserModel(NumberWithUnitExtractor(EnglishDimensionExtractorConfiguration( )), NumberWithUnitParser(EnglishDimensionParserConfiguration()))] )) self.register_model('AgeModel', Culture.English, lambda options: AgeModel( [ExtractorParserModel(NumberWithUnitExtractor(EnglishAgeExtractorConfiguration( )), NumberWithUnitParser(EnglishAgeParserConfiguration()))] )) # endregion # region Chinese self.register_model('CurrencyModel', Culture.Chinese, lambda options: CurrencyModel([ ExtractorParserModel( BaseMergedUnitExtractor( ChineseCurrencyExtractorConfiguration()), BaseMergedUnitParser(ChineseCurrencyParserConfiguration())), ExtractorParserModel( NumberWithUnitExtractor( EnglishCurrencyExtractorConfiguration()), NumberWithUnitParser(EnglishCurrencyParserConfiguration())) ])) self.register_model('TemperatureModel', Culture.Chinese, lambda options: TemperatureModel([ ExtractorParserModel( NumberWithUnitExtractor( ChineseTemperatureExtractorConfiguration()), NumberWithUnitParser(ChineseTemperatureParserConfiguration())), ExtractorParserModel( NumberWithUnitExtractor( EnglishTemperatureExtractorConfiguration()), NumberWithUnitParser(EnglishTemperatureParserConfiguration())) ])) self.register_model('DimensionModel', Culture.Chinese, lambda options: DimensionModel([ ExtractorParserModel( NumberWithUnitExtractor( ChineseDimensionExtractorConfiguration()), NumberWithUnitParser(ChineseDimensionParserConfiguration())), ExtractorParserModel( NumberWithUnitExtractor( EnglishDimensionExtractorConfiguration()), NumberWithUnitParser(EnglishDimensionParserConfiguration())) ])) self.register_model('AgeModel', Culture.Chinese, lambda options: AgeModel([ ExtractorParserModel( NumberWithUnitExtractor(ChineseAgeExtractorConfiguration()), NumberWithUnitParser(ChineseAgeParserConfiguration())), ExtractorParserModel( NumberWithUnitExtractor(EnglishAgeExtractorConfiguration()), NumberWithUnitParser(EnglishAgeParserConfiguration())) ])) # endregion # region French self.register_model('CurrencyModel', Culture.French, lambda options: CurrencyModel([ ExtractorParserModel( NumberWithUnitExtractor( FrenchCurrencyExtractorConfiguration()), NumberWithUnitParser(FrenchCurrencyParserConfiguration())) ])) self.register_model('TemperatureModel', Culture.French, lambda options: TemperatureModel([ ExtractorParserModel( NumberWithUnitExtractor( FrenchTemperatureExtractorConfiguration()), NumberWithUnitParser(FrenchTemperatureParserConfiguration())) ])) self.register_model('DimensionModel', Culture.French, lambda options: DimensionModel([ ExtractorParserModel( NumberWithUnitExtractor( FrenchDimensionExtractorConfiguration()), NumberWithUnitParser(FrenchDimensionParserConfiguration())) ])) self.register_model('AgeModel', Culture.French, lambda options: AgeModel([ ExtractorParserModel( NumberWithUnitExtractor(FrenchAgeExtractorConfiguration()), NumberWithUnitParser(FrenchAgeParserConfiguration())) ])) # endregion # region Portuguese self.register_model('CurrencyModel', Culture.Portuguese, lambda options: CurrencyModel( [ExtractorParserModel(BaseMergedUnitExtractor(PortugueseCurrencyExtractorConfiguration( )), BaseMergedUnitParser(PortugueseCurrencyParserConfiguration()))] )) self.register_model('TemperatureModel', Culture.Portuguese, lambda options: TemperatureModel([ ExtractorParserModel( NumberWithUnitExtractor( PortugueseTemperatureExtractorConfiguration()), NumberWithUnitParser(PortugueseTemperatureParserConfiguration())) ])) self.register_model('DimensionModel', Culture.Portuguese, lambda options: DimensionModel([ ExtractorParserModel( NumberWithUnitExtractor( PortugueseDimensionExtractorConfiguration()), NumberWithUnitParser(PortugueseDimensionParserConfiguration())) ])) self.register_model('AgeModel', Culture.Portuguese, lambda options: AgeModel([ ExtractorParserModel( NumberWithUnitExtractor(PortugueseAgeExtractorConfiguration()), NumberWithUnitParser(PortugueseAgeParserConfiguration())) ])) # endregion # region Spanish self.register_model('CurrencyModel', Culture.Spanish, lambda options: CurrencyModel( [ExtractorParserModel(BaseMergedUnitExtractor(SpanishCurrencyExtractorConfiguration( )), BaseMergedUnitParser(SpanishCurrencyParserConfiguration()))] )) self.register_model('TemperatureModel', Culture.Spanish, lambda options: TemperatureModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishTemperatureExtractorConfiguration( )), NumberWithUnitParser(SpanishTemperatureParserConfiguration()))] )) self.register_model('DimensionModel', Culture.Spanish, lambda options: DimensionModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishDimensionExtractorConfiguration( )), NumberWithUnitParser(SpanishDimensionParserConfiguration()))] )) self.register_model('AgeModel', Culture.Spanish, lambda options: AgeModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishAgeExtractorConfiguration( )), NumberWithUnitParser(SpanishAgeParserConfiguration()))] )) # endregion # region Spanish Mexican self.register_model('CurrencyModel', Culture.SpanishMexican, lambda options: CurrencyModel( [ExtractorParserModel(BaseMergedUnitExtractor(SpanishCurrencyExtractorConfiguration( )), BaseMergedUnitParser( SpanishCurrencyParserConfiguration(culture_info=CultureInfo(Culture.SpanishMexican))))] )) self.register_model('TemperatureModel', Culture.SpanishMexican, lambda options: TemperatureModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishTemperatureExtractorConfiguration( )), NumberWithUnitParser( SpanishTemperatureParserConfiguration(culture_info=CultureInfo(Culture.SpanishMexican))))] )) self.register_model('DimensionModel', Culture.SpanishMexican, lambda options: DimensionModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishDimensionExtractorConfiguration( )), NumberWithUnitParser( SpanishDimensionParserConfiguration(culture_info=CultureInfo(Culture.SpanishMexican))))] )) self.register_model('AgeModel', Culture.SpanishMexican, lambda options: AgeModel( [ExtractorParserModel(NumberWithUnitExtractor(SpanishAgeExtractorConfiguration( )), NumberWithUnitParser(SpanishAgeParserConfiguration(culture_info=CultureInfo(Culture.SpanishMexican))))] ))
def __init__(self): super().__init__(CultureInfo(Culture.Chinese)) self._extract_type = Constants.SYS_DATETIME_DURATION self._suffix_list = ChineseDateTime.DurationSuffixList self._prefix_list = dict() self._ambiguous_unit_list = ChineseDateTime.DurationAmbiguousUnits
def initialize_configuration(self): # region English self.register_model( 'NumberModel', Culture.English, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, EnglishNumberParserConfiguration()), EnglishNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.English, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, EnglishNumberParserConfiguration()), EnglishOrdinalExtractor())) self.register_model( 'PercentModel', Culture.English, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, EnglishNumberParserConfiguration()), EnglishPercentageExtractor())) # endregion # region German self.register_model( 'NumberModel', Culture.German, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, GermanNumberParserConfiguration()), GermanNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.German, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, GermanNumberParserConfiguration()), GermanOrdinalExtractor())) self.register_model( 'PercentModel', Culture.German, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, GermanNumberParserConfiguration()), GermanPercentageExtractor())) # endregion # region Chinese self.register_model( 'NumberModel', Culture.Chinese, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, ChineseNumberParserConfiguration()), ChineseNumberExtractor())) self.register_model( 'OrdinalModel', Culture.Chinese, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, ChineseNumberParserConfiguration()), ChineseOrdinalExtractor())) self.register_model( 'PercentModel', Culture.Chinese, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, ChineseNumberParserConfiguration()), ChinesePercentageExtractor())) # endregion # region Japanese self.register_model( 'NumberModel', Culture.Japanese, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, JapaneseNumberParserConfiguration()), JapaneseNumberExtractor())) self.register_model( 'OrdinalModel', Culture.Japanese, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, JapaneseNumberParserConfiguration()), JapaneseOrdinalExtractor())) self.register_model( 'PercentModel', Culture.Japanese, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, JapaneseNumberParserConfiguration() ), JapanesePercentageExtractor())) # endregion # region Spanish self.register_model( 'NumberModel', Culture.Spanish, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, SpanishNumberParserConfiguration()), SpanishNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.Spanish, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, SpanishNumberParserConfiguration()), SpanishOrdinalExtractor())) self.register_model( 'PercentModel', Culture.Spanish, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, SpanishNumberParserConfiguration()), SpanishPercentageExtractor())) # endregion # region Spanish Mexican self.register_model( 'NumberModel', Culture.SpanishMexican, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, SpanishNumberParserConfiguration( CultureInfo(Culture.SpanishMexican))), SpanishNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.SpanishMexican, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, SpanishNumberParserConfiguration( CultureInfo(Culture.SpanishMexican))), SpanishOrdinalExtractor())) self.register_model( 'PercentModel', Culture.SpanishMexican, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, SpanishNumberParserConfiguration( CultureInfo(Culture.SpanishMexican))), SpanishPercentageExtractor())) # endregion # region Portuguese self.register_model( 'NumberModel', Culture.Portuguese, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, PortugueseNumberParserConfiguration()), PortugueseNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.Portuguese, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, PortugueseNumberParserConfiguration()), PortugueseOrdinalExtractor())) self.register_model( 'PercentModel', Culture.Portuguese, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, PortugueseNumberParserConfiguration( )), PortuguesePercentageExtractor())) # endregion # region French self.register_model( 'NumberModel', Culture.French, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, FrenchNumberParserConfiguration()), FrenchNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.French, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, FrenchNumberParserConfiguration()), FrenchOrdinalExtractor())) self.register_model( 'PercentModel', Culture.French, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, FrenchNumberParserConfiguration()), FrenchPercentageExtractor())) # endregion # region Italian self.register_model( 'NumberModel', Culture.Italian, lambda options: NumberModel( AgnosticNumberParserFactory.get_parser( ParserType.NUMBER, ItalianNumberParserConfiguration()), ItalianNumberExtractor(NumberMode.PURE_NUMBER))) self.register_model( 'OrdinalModel', Culture.Italian, lambda options: OrdinalModel( AgnosticNumberParserFactory.get_parser( ParserType.ORDINAL, ItalianNumberParserConfiguration()), ItalianOrdinalExtractor())) self.register_model( 'PercentModel', Culture.Italian, lambda options: PercentModel( AgnosticNumberParserFactory.get_parser( ParserType.PERCENTAGE, ItalianNumberParserConfiguration()), ItalianPercentageExtractor()))