コード例 #1
0
        public JapaneseDateExtractorConfiguration(IDateTimeOptionsConfiguration config)
            : base(config)
        {
            var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None);

            DurationExtractor = new BaseCJKDurationExtractor(new JapaneseDurationExtractorConfiguration(durationConfig));

            ImplicitDateList = new List <Regex>
            {
                LunarRegex, SpecialDayWithNumRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex,
                WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, WeekDayAndDayRegex,
            };

            // 2016年12月1日
            var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags);

            // # 2016年12月 (this is not a Date)
            // var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags);

            // (2015年)?(农历)?十月二十(星期三)?
            var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags);

            // 2015-12-23
            var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags);

            // 23/7
            var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags);

            // 7/23
            var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags);

            // 23-3-2017
            var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags);

            // 3-23-2015
            var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags);

            // 12月1日
            var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags);

            // 2015/12/23
            var dateRegex10 = new Regex(DateTimeDefinitions.DateRegexList10, RegexFlags);

            // 2016/12 (this is not a Date)
            // var dateRegex11 = new Regex(DateTimeDefinitions.DateRegexList11, RegexFlags);

            // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback
            var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY;

            DateRegexList = new List <Regex> {
                dateRegex1, dateRegex10, /*dateRegex2, */ dateRegex9, dateRegex3, dateRegex4, dateRegex5
            };
            DateRegexList = DateRegexList.Concat(
                enableDmy ?
                new[] { dateRegex7, dateRegex6, dateRegex8 /*, dateRegex11*/ } :
                new[] { dateRegex6, dateRegex7, dateRegex8 /*, dateRegex11*/ });

            NormalizeCharMap = DateTimeDefinitions.NormalizeCharMap;
        }
コード例 #2
0
        public KoreanDateExtractorConfiguration(IDateTimeOptionsConfiguration config)
            : base(config)
        {
            var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None);

            DurationExtractor = new BaseCJKDurationExtractor(new KoreanDurationExtractorConfiguration(durationConfig));

            ImplicitDateList = new List <Regex>
            {
                LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex,
                WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, DurationFromSpecialDayRegex,
            };

            // (음력)? (2016)? 1 월 3 일 (수)?
            var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags);

            // (2015)? (음력)? 10 월 1 일 (수)?
            var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags);

            // (2015)? (음력)? 10 월 20 일 (수)?
            var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags);

            // 2015-12-23
            var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags);

            var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags);

            // 23/7
            var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags);

            // 7/23
            var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags);

            // 23-3-2017
            var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags);

            // 3-23-2015
            var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags);

            // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback
            var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY;
            var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD;

            DateRegexList = new List <Regex> {
                dateRegex1, dateRegex2, dateRegex3, dateRegex8, dateRegex9
            };
            DateRegexList = DateRegexList.Concat(
                enableDmy ?
                new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } :
                enableYmd ?
                new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } :
                new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 });

            NormalizeCharMap = null;
        }
コード例 #3
0
        public ChineseDateExtractorConfiguration(IDateTimeOptionsConfiguration config)
            : base(config)
        {
            var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None);

            DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig));

            ImplicitDateList = new List <Regex>
            {
                LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex,
                WeekDayRegex, WeekDayOfMonthRegex, SpecialDate,
            };

            // (农历)?(2016年)?一月三日(星期三)?
            var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags);

            // (2015年)?(农历)?十月初一(星期三)?
            var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags);

            // (2015年)?(农历)?十月二十(星期三)?
            var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags);

            // 2015-12-23 - This regex represents the standard format in Chinese dates (YMD) and has precedence over other orderings
            var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags);

            // 23/7
            var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags);

            // 7/23
            var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags);

            // 23-3-2017
            var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags);

            // 3-23-2015
            var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags);

            // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback
            var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY;
            var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD;

            DateRegexList = new List <Regex> {
                dateRegex1, dateRegex2, dateRegex3, dateRegex8
            };
            DateRegexList = DateRegexList.Concat(
                enableDmy ?
                new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } :
                enableYmd ?
                new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } :
                new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 });

            NormalizeCharMap = null;
        }
コード例 #4
0
        public TestDateTimeRecognizerInitialization()
        {
            var defaultConfig = new BaseDateTimeOptionsConfiguration(Culture.English, DateTimeOptions.None, false);
            var dmyConfig     = new BaseDateTimeOptionsConfiguration(Culture.EnglishOthers, DateTimeOptions.None, true);

            defaultEnglishControlModel = new DateTimeModel(
                new BaseMergedDateTimeParser(new EnglishMergedParserConfiguration(defaultConfig)),
                new BaseMergedDateTimeExtractor(new EnglishMergedExtractorConfiguration(defaultConfig)));

            otherEnglishControlModel = new DateTimeModel(
                new BaseMergedDateTimeParser(new EnglishMergedParserConfiguration(dmyConfig)),
                new BaseMergedDateTimeExtractor(new EnglishMergedExtractorConfiguration(dmyConfig)));
        }
        public ChineseDurationParserConfiguration(ICJKCommonDateTimeParserConfiguration config)
            : base(config)
        {
            InternalParser = new NumberWithUnitParser(new DurationParserConfiguration());

            var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None);

            DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig), false);

            YearRegex              = ChineseDurationExtractorConfiguration.YearRegex;
            DurationUnitRegex      = ChineseDurationExtractorConfiguration.DurationUnitRegex;
            DurationConnectorRegex = ChineseDurationExtractorConfiguration.DurationConnectorRegex;

            UnitMap      = config.UnitMap;
            UnitValueMap = config.UnitValueMap;
        }