def __init__(self, mode: NumberMode = NumberMode.DEFAULT): self.__negative_number_terms = RegExpUtility.get_safe_reg_exp( FrenchNumeric.NegativeNumberTermsRegex) self.__regexes: List[ReVal] = list() cardinal_ex: FrenchCardinalExtractor = None if mode is NumberMode.PURE_NUMBER: cardinal_ex = FrenchCardinalExtractor( FrenchNumeric.PlaceHolderPureNumber) elif mode is NumberMode.CURRENCY: self.__regexes.append(ReVal(re=RegExpUtility.get_safe_reg_exp( FrenchNumeric.CurrencyRegex), val='IntegerNum')) if cardinal_ex is None: cardinal_ex = FrenchCardinalExtractor() self.__regexes.extend(cardinal_ex.regexes) fraction_ex = FrenchFractionExtractor(mode) self.__regexes.extend(fraction_ex.regexes) ambiguity_filters_dict: List[ReRe] = list() if mode != NumberMode.Unit: for key, value in BaseNumbers.AmbiguityFiltersDict.items(): ambiguity_filters_dict.append(ReRe(reKey=RegExpUtility.get_safe_reg_exp(key), reVal=RegExpUtility.get_safe_reg_exp(value))) for key, value in FrenchNumeric.AmbiguityFiltersDict.items(): ambiguity_filters_dict.append(ReRe(reKey=RegExpUtility.get_safe_reg_exp(key), reVal=RegExpUtility.get_safe_reg_exp(value))) self.__ambiguity_filters_dict = ambiguity_filters_dict
def __init__(self, mode: ChineseNumberExtractorMode = ChineseNumberExtractorMode.DEFAULT): self.__regexes: List[ReVal] = list() cardinal_ex = ChineseCardinalExtractor(mode) self.__regexes.extend(cardinal_ex.regexes) fraction_ex = ChineseFractionExtractor() self.__regexes.extend(fraction_ex.regexes) ambiguity_filters_dict: List[ReRe] = list() if mode != NumberMode.Unit: for key, value in ChineseNumeric.AmbiguityFiltersDict.items(): ambiguity_filters_dict.append(ReRe(reKey=RegExpUtility.get_safe_reg_exp(key), reVal=RegExpUtility.get_safe_reg_exp(value))) self.__ambiguity_filters_dict = ambiguity_filters_dict