duckling 0.1.4.0 → 0.1.5.0
raw patch · 377 files changed
+21872/−12510 lines, 377 filesdep ~aesondep ~basedep ~deepseqnew-component:exe:custom-dimension-examplenew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson, base, deepseq, dependent-sum, hashable, text, text-show, unordered-containers
API changes (from Hackage documentation)
- Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.AmountOfMoney.Types.AmountOfMoneyValue
- Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.AmountOfMoney.Types.Currency
- Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.AmountOfMoney.Types.SingleValue
- Duckling.Debug: debugContext :: Context -> Text -> [Some Dimension] -> IO [Entity]
- Duckling.Dimensions.Types: instance Data.GADT.Compare.GEq Duckling.Dimensions.Types.Dimension
- Duckling.Dimensions.Types: instance Data.GADT.Show.GShow Duckling.Dimensions.Types.Dimension
- Duckling.Dimensions.Types: instance Data.Hashable.Class.Hashable (Data.Some.Some Duckling.Dimensions.Types.Dimension)
- Duckling.Dimensions.Types: instance Data.Hashable.Class.Hashable (Duckling.Dimensions.Types.Dimension a)
- Duckling.Dimensions.Types: instance GHC.Show.Show (Duckling.Dimensions.Types.Dimension a)
- Duckling.Dimensions.Types: instance TextShow.Classes.TextShow (Data.Some.Some Duckling.Dimensions.Types.Dimension)
- Duckling.Dimensions.Types: instance TextShow.Classes.TextShow (Duckling.Dimensions.Types.Dimension a)
- Duckling.Distance.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Distance.Types.DistanceValue
- Duckling.Distance.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Distance.Types.SingleValue
- Duckling.Distance.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Distance.Types.Unit
- Duckling.Duration.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Duration.Types.DurationData
- Duckling.Email.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Email.Types.EmailData
- Duckling.Numeral.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Numeral.Types.NumeralValue
- Duckling.Ordinal.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Ordinal.Types.OrdinalData
- Duckling.PhoneNumber.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.PhoneNumber.Types.PhoneNumberValue
- Duckling.Quantity.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Quantity.Types.QuantityValue
- Duckling.Quantity.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Quantity.Types.SingleValue
- Duckling.Quantity.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Quantity.Types.Unit
- Duckling.Temperature.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Temperature.Types.TemperatureUnit
- Duckling.Temperature.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Temperature.Types.TemperatureValue
- Duckling.Time.EN.US.Rules: ruleMMDD :: Rule
- Duckling.Time.EN.US.Rules: ruleMMDDYYYY :: Rule
- Duckling.Time.EN.US.Rules: ruleMMDDYYYYDot :: Rule
- Duckling.Time.EN.US.Rules: ruleThanksgiving :: Rule
- Duckling.Time.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Time.Types.InstantValue
- Duckling.Time.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Time.Types.SingleTimeValue
- Duckling.Time.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Time.Types.TimeValue
- Duckling.TimeGrain.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.TimeGrain.Types.Grain
- Duckling.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Types.Entity
- Duckling.Url.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Url.Types.UrlData
- Duckling.Volume.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Volume.Types.Unit
- Duckling.Volume.Types: instance Data.Aeson.Types.ToJSON.ToJSON Duckling.Volume.Types.VolumeValue
+ Duckling.AmountOfMoney.Helpers: isCent :: Predicate
+ Duckling.AmountOfMoney.Helpers: isCurrencyOnly :: Predicate
+ Duckling.AmountOfMoney.Helpers: isDime :: Predicate
+ Duckling.AmountOfMoney.Helpers: isSimpleAmountOfMoney :: Predicate
+ Duckling.AmountOfMoney.NL.Corpus: corpus :: Corpus
+ Duckling.AmountOfMoney.NL.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.Types: CNY :: Currency
+ Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.AmountOfMoney.Types.AmountOfMoneyValue
+ Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.AmountOfMoney.Types.Currency
+ Duckling.AmountOfMoney.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.AmountOfMoney.Types.SingleValue
+ Duckling.AmountOfMoney.ZH.Corpus: corpus :: Corpus
+ Duckling.AmountOfMoney.ZH.Rules: rules :: [Rule]
+ Duckling.Core: Options :: Bool -> Options
+ Duckling.Core: TA :: Lang
+ Duckling.Core: [CustomDimension] :: CustomDimension a => a -> Dimension (DimensionData a)
+ Duckling.Core: [latent] :: Entity -> Bool
+ Duckling.Core: [withLatent] :: Options -> Bool
+ Duckling.Core: newtype Options
+ Duckling.Debug: debugCustom :: Context -> Options -> Text -> [Some Dimension] -> IO [Entity]
+ Duckling.Dimensions.TA: allDimensions :: [Some Dimension]
+ Duckling.Dimensions.Types: [CustomDimension] :: CustomDimension a => a -> Dimension (DimensionData a)
+ Duckling.Distance.BG.Corpus: corpus :: Corpus
+ Duckling.Distance.BG.Rules: rules :: [Rule]
+ Duckling.Distance.SV.Corpus: corpus :: Corpus
+ Duckling.Distance.SV.Rules: rules :: [Rule]
+ Duckling.Distance.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Distance.Types.DistanceValue
+ Duckling.Distance.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Distance.Types.SingleValue
+ Duckling.Distance.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Distance.Types.Unit
+ Duckling.Distance.ZH.Corpus: corpus :: Corpus
+ Duckling.Distance.ZH.Rules: rules :: [Rule]
+ Duckling.Duration.BG.Corpus: corpus :: Corpus
+ Duckling.Duration.BG.Rules: rules :: [Rule]
+ Duckling.Duration.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Duration.Types.DurationData
+ Duckling.Duration.Types: instance Data.Semigroup.Semigroup Duckling.Duration.Types.DurationData
+ Duckling.Duration.Types: withGrain :: Grain -> DurationData -> DurationData
+ Duckling.Email.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Email.Types.EmailData
+ Duckling.Locale: TA :: Lang
+ Duckling.Numeral.Helpers: diffIntegerDigits :: Double -> Double -> Int
+ Duckling.Numeral.Helpers: hasGrain :: Predicate
+ Duckling.Numeral.TA.Corpus: corpus :: Corpus
+ Duckling.Numeral.TA.Rules: rules :: [Rule]
+ Duckling.Numeral.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Numeral.Types.NumeralValue
+ Duckling.Ordinal.BG.Corpus: corpus :: Corpus
+ Duckling.Ordinal.BG.Rules: rules :: [Rule]
+ Duckling.Ordinal.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Ordinal.Types.OrdinalData
+ Duckling.PhoneNumber.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.PhoneNumber.Types.PhoneNumberValue
+ Duckling.Quantity.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Quantity.Types.QuantityValue
+ Duckling.Quantity.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Quantity.Types.SingleValue
+ Duckling.Quantity.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Quantity.Types.Unit
+ Duckling.Ranking.Classifiers.TA_XX: classifiers :: Classifiers
+ Duckling.Resolve: Options :: Bool -> Options
+ Duckling.Resolve: [withLatent] :: Options -> Bool
+ Duckling.Resolve: instance GHC.Classes.Eq Duckling.Resolve.Options
+ Duckling.Resolve: instance GHC.Show.Show Duckling.Resolve.Options
+ Duckling.Resolve: newtype Options
+ Duckling.Rules.TA: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.TA: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.TA: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Temperature.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Temperature.Types.TemperatureUnit
+ Duckling.Temperature.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Temperature.Types.TemperatureValue
+ Duckling.Testing.Types: simpleCheck :: ToJSON a => a -> TestPredicate
+ Duckling.Testing.Types: testOptions :: Options
+ Duckling.Time.Computed: chanukah :: TimeData
+ Duckling.Time.Computed: chineseNewYear :: TimeData
+ Duckling.Time.Computed: dhanteras :: TimeData
+ Duckling.Time.Computed: easterSunday :: TimeData
+ Duckling.Time.Computed: eidalAdha :: TimeData
+ Duckling.Time.Computed: eidalFitr :: TimeData
+ Duckling.Time.Computed: lagBaOmer :: TimeData
+ Duckling.Time.Computed: mawlid :: TimeData
+ Duckling.Time.Computed: muharram :: TimeData
+ Duckling.Time.Computed: navaratri :: TimeData
+ Duckling.Time.Computed: orthodoxEaster :: TimeData
+ Duckling.Time.Computed: passover :: TimeData
+ Duckling.Time.Computed: rajab :: TimeData
+ Duckling.Time.Computed: rakshaBandhan :: TimeData
+ Duckling.Time.Computed: ramadan :: TimeData
+ Duckling.Time.Computed: roshHashana :: TimeData
+ Duckling.Time.Computed: thaiPongal :: TimeData
+ Duckling.Time.Computed: thiruOnam :: TimeData
+ Duckling.Time.Computed: tishaBAv :: TimeData
+ Duckling.Time.Computed: tuBishvat :: TimeData
+ Duckling.Time.Computed: vasantPanchami :: TimeData
+ Duckling.Time.Computed: yomHaatzmaut :: TimeData
+ Duckling.Time.Corpus: datetimeHoliday :: Datetime -> Grain -> Text -> Context -> TimeValue
+ Duckling.Time.Corpus: datetimeIntervalHoliday :: (Datetime, Datetime) -> Grain -> Text -> Context -> TimeValue
+ Duckling.Time.EN.Corpus: latentCorpus :: Corpus
+ Duckling.Time.EN.US.Rules: rulesBackwardCompatible :: [Rule]
+ Duckling.Time.Helpers: durationIntervalAgo :: DurationData -> TimeData
+ Duckling.Time.Helpers: inDurationInterval :: DurationData -> TimeData
+ Duckling.Time.Helpers: mkRuleHolidays' :: [(Text, String, Maybe TimeData)] -> [Rule]
+ Duckling.Time.Helpers: mkRuleMonthsWithLatent :: [(Text, String, Bool)] -> [Rule]
+ Duckling.Time.Helpers: predNthClosest :: Int -> TimeData -> TimeData -> TimeData
+ Duckling.Time.Helpers: season :: TimeData
+ Duckling.Time.Helpers: timeComputed :: [TimeObject] -> Predicate
+ Duckling.Time.Helpers: weekday :: TimeData
+ Duckling.Time.Types: Fall :: SeasonName
+ Duckling.Time.Types: Season :: Integer -> SeasonName -> Season
+ Duckling.Time.Types: Spring :: SeasonName
+ Duckling.Time.Types: Summer :: SeasonName
+ Duckling.Time.Types: Winter :: SeasonName
+ Duckling.Time.Types: [holiday] :: TimeData -> Maybe Text
+ Duckling.Time.Types: [seasonName] :: Season -> SeasonName
+ Duckling.Time.Types: [startYear] :: Season -> Integer
+ Duckling.Time.Types: data Season
+ Duckling.Time.Types: data SeasonName
+ Duckling.Time.Types: diffStartTime :: TimeObject -> TimeObject -> NominalDiffTime
+ Duckling.Time.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Time.Types.InstantValue
+ Duckling.Time.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Time.Types.SingleTimeValue
+ Duckling.Time.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Time.Types.TimeValue
+ Duckling.Time.Types: instance GHC.Classes.Eq Duckling.Time.Types.Season
+ Duckling.Time.Types: instance GHC.Classes.Eq Duckling.Time.Types.SeasonName
+ Duckling.Time.Types: instance GHC.Classes.Ord Duckling.Time.Types.Season
+ Duckling.Time.Types: instance GHC.Classes.Ord Duckling.Time.Types.SeasonName
+ Duckling.Time.Types: instance GHC.Enum.Enum Duckling.Time.Types.SeasonName
+ Duckling.Time.Types: instance GHC.Show.Show Duckling.Time.Types.Season
+ Duckling.Time.Types: instance GHC.Show.Show Duckling.Time.Types.SeasonName
+ Duckling.Time.Types: nextSeason :: Season -> Season
+ Duckling.Time.Types: prevSeason :: Season -> Season
+ Duckling.Time.Types: seasonEnd :: Season -> Day
+ Duckling.Time.Types: seasonOf :: Day -> Season
+ Duckling.Time.Types: seasonPredicate :: Predicate
+ Duckling.Time.Types: seasonStart :: Season -> Day
+ Duckling.Time.Types: toMidnight :: Day -> UTCTime
+ Duckling.Time.Types: weekdayPredicate :: Predicate
+ Duckling.TimeGrain.BG.Rules: rules :: [Rule]
+ Duckling.TimeGrain.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.TimeGrain.Types.Grain
+ Duckling.Types: [AmountOfMoney] :: Dimension AmountOfMoneyData
+ Duckling.Types: [CustomDimension] :: CustomDimension a => a -> Dimension (DimensionData a)
+ Duckling.Types: [Distance] :: Dimension DistanceData
+ Duckling.Types: [Duration] :: Dimension DurationData
+ Duckling.Types: [Email] :: Dimension EmailData
+ Duckling.Types: [Numeral] :: Dimension NumeralData
+ Duckling.Types: [Ordinal] :: Dimension OrdinalData
+ Duckling.Types: [PhoneNumber] :: Dimension PhoneNumberData
+ Duckling.Types: [Quantity] :: Dimension QuantityData
+ Duckling.Types: [RegexMatch] :: Dimension GroupMatch
+ Duckling.Types: [Temperature] :: Dimension TemperatureData
+ Duckling.Types: [TimeGrain] :: Dimension Grain
+ Duckling.Types: [Time] :: Dimension TimeData
+ Duckling.Types: [Url] :: Dimension UrlData
+ Duckling.Types: [Volume] :: Dimension VolumeData
+ Duckling.Types: [isLatent] :: ResolvedToken -> Bool
+ Duckling.Types: [latent] :: Entity -> Bool
+ Duckling.Types: class (Show a, Typeable a) => CustomDimension a where {
+ Duckling.Types: data Dimension a
+ Duckling.Types: dimDependents :: CustomDimension a => a -> HashSet (Some Dimension)
+ Duckling.Types: dimLangRules :: CustomDimension a => Lang -> a -> [Rule]
+ Duckling.Types: dimLocaleRules :: CustomDimension a => Region -> a -> [Rule]
+ Duckling.Types: dimRules :: CustomDimension a => a -> [Rule]
+ Duckling.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Types.Entity
+ Duckling.Types: instance Data.GADT.Compare.GEq Duckling.Types.Dimension
+ Duckling.Types: instance Data.GADT.Show.GShow Duckling.Types.Dimension
+ Duckling.Types: instance Data.Hashable.Class.Hashable (Data.Some.Some Duckling.Types.Dimension)
+ Duckling.Types: instance Data.Hashable.Class.Hashable (Duckling.Types.Dimension a)
+ Duckling.Types: instance GHC.Show.Show (Duckling.Types.Dimension a)
+ Duckling.Types: instance TextShow.Classes.TextShow (Data.Some.Some Duckling.Types.Dimension)
+ Duckling.Types: instance TextShow.Classes.TextShow (Duckling.Types.Dimension a)
+ Duckling.Types: type family DimensionData a;
+ Duckling.Types: }
+ Duckling.Url.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Url.Types.UrlData
+ Duckling.Volume.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Volume.Types.Unit
+ Duckling.Volume.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Volume.Types.VolumeValue
- Duckling.Api: analyze :: Text -> Context -> HashSet (Some Dimension) -> [ResolvedToken]
+ Duckling.Api: analyze :: Text -> Context -> Options -> HashSet (Some Dimension) -> [ResolvedToken]
- Duckling.Api: parse :: Text -> Context -> [Some Dimension] -> [Entity]
+ Duckling.Api: parse :: Text -> Context -> Options -> [Some Dimension] -> [Entity]
- Duckling.Core: Entity :: Text -> Text -> Value -> Int -> Int -> Node -> Entity
+ Duckling.Core: Entity :: Text -> Text -> Value -> Int -> Int -> Bool -> Node -> Entity
- Duckling.Core: parse :: Text -> Context -> [Some Dimension] -> [Entity]
+ Duckling.Core: parse :: Text -> Context -> Options -> [Some Dimension] -> [Entity]
- Duckling.Engine: parseAndResolve :: [Rule] -> Text -> Context -> [ResolvedToken]
+ Duckling.Engine: parseAndResolve :: [Rule] -> Text -> Context -> Options -> [ResolvedToken]
- Duckling.Resolve: resolve :: Resolve a => Context -> a -> Maybe (ResolvedValue a)
+ Duckling.Resolve: resolve :: Resolve a => Context -> Options -> a -> Maybe (ResolvedValue a, Bool)
- Duckling.Testing.Types: type Corpus = (Context, [Example])
+ Duckling.Testing.Types: type Corpus = (Context, Options, [Example])
- Duckling.Testing.Types: type NegativeCorpus = (Context, [Text])
+ Duckling.Testing.Types: type NegativeCorpus = (Context, Options, [Text])
- Duckling.Testing.Types: withLocale :: (Context, [a]) -> Locale -> [a] -> (Context, [a])
+ Duckling.Testing.Types: withLocale :: (Context, Options, [a]) -> Locale -> [a] -> (Context, Options, [a])
- Duckling.Time.Corpus: datetime :: Datetime -> Grain -> Context -> SingleTimeValue
+ Duckling.Time.Corpus: datetime :: Datetime -> Grain -> Context -> TimeValue
- Duckling.Time.Corpus: datetimeInterval :: (Datetime, Datetime) -> Grain -> Context -> SingleTimeValue
+ Duckling.Time.Corpus: datetimeInterval :: (Datetime, Datetime) -> Grain -> Context -> TimeValue
- Duckling.Time.Corpus: datetimeOpenInterval :: IntervalDirection -> Datetime -> Grain -> Context -> SingleTimeValue
+ Duckling.Time.Corpus: datetimeOpenInterval :: IntervalDirection -> Datetime -> Grain -> Context -> TimeValue
- Duckling.Time.Types: TimeData :: Predicate -> Bool -> Grain -> Bool -> Maybe Form -> Maybe IntervalDirection -> Bool -> TimeData
+ Duckling.Time.Types: TimeData :: Predicate -> Bool -> Grain -> Bool -> Maybe Form -> Maybe IntervalDirection -> Bool -> Maybe Text -> TimeData
- Duckling.Time.Types: TimeValue :: SingleTimeValue -> [SingleTimeValue] -> TimeValue
+ Duckling.Time.Types: TimeValue :: SingleTimeValue -> [SingleTimeValue] -> (Maybe Text) -> TimeValue
- Duckling.Types: Entity :: Text -> Text -> Value -> Int -> Int -> Node -> Entity
+ Duckling.Types: Entity :: Text -> Text -> Value -> Int -> Int -> Bool -> Node -> Entity
- Duckling.Types: Resolved :: Range -> Node -> Value -> ResolvedToken
+ Duckling.Types: Resolved :: Range -> Node -> Value -> Bool -> ResolvedToken
Files
- Duckling/AmountOfMoney/AR/Corpus.hs +2/−1
- Duckling/AmountOfMoney/AR/Rules.hs +17/−1
- Duckling/AmountOfMoney/BG/Corpus.hs +1/−1
- Duckling/AmountOfMoney/BG/Rules.hs +17/−3
- Duckling/AmountOfMoney/EN/Corpus.hs +2/−2
- Duckling/AmountOfMoney/EN/Rules.hs +17/−1
- Duckling/AmountOfMoney/ES/Corpus.hs +1/−1
- Duckling/AmountOfMoney/ES/Rules.hs +18/−2
- Duckling/AmountOfMoney/FR/Corpus.hs +1/−1
- Duckling/AmountOfMoney/FR/Rules.hs +17/−1
- Duckling/AmountOfMoney/GA/Corpus.hs +1/−1
- Duckling/AmountOfMoney/GA/Rules.hs +18/−2
- Duckling/AmountOfMoney/HR/Corpus.hs +1/−1
- Duckling/AmountOfMoney/HR/Rules.hs +18/−2
- Duckling/AmountOfMoney/Helpers.hs +27/−1
- Duckling/AmountOfMoney/ID/Corpus.hs +1/−1
- Duckling/AmountOfMoney/ID/Rules.hs +19/−3
- Duckling/AmountOfMoney/KO/Corpus.hs +1/−1
- Duckling/AmountOfMoney/KO/Rules.hs +20/−1
- Duckling/AmountOfMoney/NB/Corpus.hs +1/−1
- Duckling/AmountOfMoney/NB/Rules.hs +18/−2
- Duckling/AmountOfMoney/NL/Corpus.hs +106/−0
- Duckling/AmountOfMoney/NL/Rules.hs +270/−0
- Duckling/AmountOfMoney/PT/Corpus.hs +1/−1
- Duckling/AmountOfMoney/PT/Rules.hs +18/−2
- Duckling/AmountOfMoney/RO/Corpus.hs +1/−1
- Duckling/AmountOfMoney/RO/Rules.hs +18/−2
- Duckling/AmountOfMoney/RU/Corpus.hs +1/−1
- Duckling/AmountOfMoney/RU/Rules.hs +17/−1
- Duckling/AmountOfMoney/Rules.hs +5/−17
- Duckling/AmountOfMoney/SV/Corpus.hs +1/−1
- Duckling/AmountOfMoney/SV/Rules.hs +18/−2
- Duckling/AmountOfMoney/Types.hs +11/−9
- Duckling/AmountOfMoney/VI/Corpus.hs +7/−7
- Duckling/AmountOfMoney/VI/Rules.hs +18/−2
- Duckling/AmountOfMoney/ZH/Corpus.hs +68/−0
- Duckling/AmountOfMoney/ZH/Rules.hs +274/−0
- Duckling/Api.hs +9/−8
- Duckling/Core.hs +4/−4
- Duckling/Debug.hs +8/−7
- Duckling/Dimensions.hs +5/−1
- Duckling/Dimensions/BG.hs +4/−1
- Duckling/Dimensions/SV.hs +2/−1
- Duckling/Dimensions/TA.hs +18/−0
- Duckling/Dimensions/Types.hs +4/−122
- Duckling/Dimensions/ZH.hs +2/−1
- Duckling/Distance/BG/Corpus.hs +66/−0
- Duckling/Distance/BG/Rules.hs +50/−0
- Duckling/Distance/CS/Corpus.hs +1/−1
- Duckling/Distance/EN/Corpus.hs +4/−3
- Duckling/Distance/ES/Corpus.hs +1/−1
- Duckling/Distance/FR/Corpus.hs +1/−1
- Duckling/Distance/GA/Corpus.hs +1/−1
- Duckling/Distance/HR/Corpus.hs +1/−1
- Duckling/Distance/KO/Corpus.hs +1/−1
- Duckling/Distance/NL/Corpus.hs +1/−1
- Duckling/Distance/PT/Corpus.hs +1/−1
- Duckling/Distance/RO/Corpus.hs +1/−1
- Duckling/Distance/RU/Corpus.hs +1/−1
- Duckling/Distance/Rules.hs +1/−1
- Duckling/Distance/SV/Corpus.hs +50/−0
- Duckling/Distance/SV/Rules.hs +84/−0
- Duckling/Distance/TR/Corpus.hs +1/−1
- Duckling/Distance/Types.hs +9/−9
- Duckling/Distance/ZH/Corpus.hs +72/−0
- Duckling/Distance/ZH/Rules.hs +129/−0
- Duckling/Duration/AR/Corpus.hs +1/−1
- Duckling/Duration/BG/Corpus.hs +95/−0
- Duckling/Duration/BG/Rules.hs +134/−0
- Duckling/Duration/EL/Corpus.hs +2/−2
- Duckling/Duration/EN/Corpus.hs +9/−2
- Duckling/Duration/EN/Rules.hs +29/−6
- Duckling/Duration/FR/Corpus.hs +2/−2
- Duckling/Duration/GA/Corpus.hs +1/−1
- Duckling/Duration/HU/Corpus.hs +1/−1
- Duckling/Duration/JA/Corpus.hs +1/−1
- Duckling/Duration/KO/Corpus.hs +1/−1
- Duckling/Duration/NB/Corpus.hs +1/−1
- Duckling/Duration/NL/Corpus.hs +2/−2
- Duckling/Duration/PL/Corpus.hs +1/−1
- Duckling/Duration/PT/Corpus.hs +1/−1
- Duckling/Duration/RO/Corpus.hs +1/−1
- Duckling/Duration/RU/Corpus.hs +1/−1
- Duckling/Duration/Rules.hs +2/−1
- Duckling/Duration/SV/Corpus.hs +1/−1
- Duckling/Duration/TR/Corpus.hs +1/−1
- Duckling/Duration/Types.hs +18/−1
- Duckling/Duration/ZH/Corpus.hs +1/−1
- Duckling/Email/Corpus.hs +2/−2
- Duckling/Email/EN/Corpus.hs +2/−2
- Duckling/Email/FR/Corpus.hs +1/−1
- Duckling/Email/IT/Corpus.hs +1/−1
- Duckling/Email/Types.hs +1/−1
- Duckling/Engine.hs +10/−8
- Duckling/Locale.hs +1/−0
- Duckling/Numeral/AR/Corpus.hs +1/−1
- Duckling/Numeral/AR/Rules.hs +1/−1
- Duckling/Numeral/BG/Corpus.hs +1/−1
- Duckling/Numeral/BG/Rules.hs +1/−2
- Duckling/Numeral/CS/Corpus.hs +1/−1
- Duckling/Numeral/DA/Corpus.hs +1/−1
- Duckling/Numeral/DA/Rules.hs +2/−2
- Duckling/Numeral/DE/Corpus.hs +1/−1
- Duckling/Numeral/DE/Rules.hs +2/−2
- Duckling/Numeral/EL/Corpus.hs +1/−1
- Duckling/Numeral/EL/Rules.hs +2/−2
- Duckling/Numeral/EN/Corpus.hs +5/−1
- Duckling/Numeral/EN/Rules.hs +4/−4
- Duckling/Numeral/ES/Corpus.hs +1/−1
- Duckling/Numeral/ES/Rules.hs +1/−1
- Duckling/Numeral/ET/Corpus.hs +1/−1
- Duckling/Numeral/ET/Rules.hs +2/−2
- Duckling/Numeral/FR/Corpus.hs +1/−1
- Duckling/Numeral/FR/Rules.hs +1/−1
- Duckling/Numeral/GA/Corpus.hs +1/−1
- Duckling/Numeral/HE/Corpus.hs +1/−1
- Duckling/Numeral/HE/Rules.hs +3/−3
- Duckling/Numeral/HI/Corpus.hs +1/−1
- Duckling/Numeral/HR/Corpus.hs +1/−1
- Duckling/Numeral/HR/Rules.hs +2/−2
- Duckling/Numeral/HU/Corpus.hs +1/−1
- Duckling/Numeral/Helpers.hs +18/−0
- Duckling/Numeral/ID/Corpus.hs +1/−1
- Duckling/Numeral/ID/Rules.hs +2/−2
- Duckling/Numeral/IT/Corpus.hs +1/−1
- Duckling/Numeral/JA/Corpus.hs +1/−1
- Duckling/Numeral/KA/Corpus.hs +1/−1
- Duckling/Numeral/KO/Corpus.hs +1/−1
- Duckling/Numeral/KO/Rules.hs +1/−1
- Duckling/Numeral/MY/Corpus.hs +1/−1
- Duckling/Numeral/NB/Corpus.hs +1/−1
- Duckling/Numeral/NB/Rules.hs +3/−3
- Duckling/Numeral/NE/Corpus.hs +1/−1
- Duckling/Numeral/NL/Corpus.hs +1/−1
- Duckling/Numeral/NL/Rules.hs +1/−1
- Duckling/Numeral/PL/Corpus.hs +1/−1
- Duckling/Numeral/PL/Rules.hs +3/−3
- Duckling/Numeral/PT/Corpus.hs +1/−1
- Duckling/Numeral/PT/Rules.hs +4/−4
- Duckling/Numeral/RO/Corpus.hs +1/−1
- Duckling/Numeral/RO/Rules.hs +2/−2
- Duckling/Numeral/RU/Corpus.hs +1/−1
- Duckling/Numeral/RU/Rules.hs +1/−1
- Duckling/Numeral/SV/Corpus.hs +1/−1
- Duckling/Numeral/SV/Rules.hs +3/−3
- Duckling/Numeral/TA/Corpus.hs +88/−0
- Duckling/Numeral/TA/Rules.hs +137/−0
- Duckling/Numeral/TR/Corpus.hs +1/−1
- Duckling/Numeral/TR/Rules.hs +2/−2
- Duckling/Numeral/Types.hs +1/−1
- Duckling/Numeral/UK/Corpus.hs +1/−1
- Duckling/Numeral/UK/Rules.hs +1/−1
- Duckling/Numeral/VI/Corpus.hs +15/−15
- Duckling/Numeral/VI/Rules.hs +8/−8
- Duckling/Numeral/ZH/Corpus.hs +34/−3
- Duckling/Numeral/ZH/Rules.hs +87/−63
- Duckling/Ordinal/AR/Corpus.hs +1/−1
- Duckling/Ordinal/AR/Rules.hs +0/−1
- Duckling/Ordinal/BG/Corpus.hs +262/−0
- Duckling/Ordinal/BG/Rules.hs +110/−0
- Duckling/Ordinal/DA/Corpus.hs +1/−1
- Duckling/Ordinal/DE/Corpus.hs +2/−2
- Duckling/Ordinal/EL/Corpus.hs +1/−1
- Duckling/Ordinal/EN/Corpus.hs +4/−3
- Duckling/Ordinal/EN/Rules.hs +0/−1
- Duckling/Ordinal/ES/Corpus.hs +1/−1
- Duckling/Ordinal/ET/Corpus.hs +1/−1
- Duckling/Ordinal/FR/Corpus.hs +1/−1
- Duckling/Ordinal/GA/Corpus.hs +1/−1
- Duckling/Ordinal/HE/Corpus.hs +1/−1
- Duckling/Ordinal/HI/Corpus.hs +1/−1
- Duckling/Ordinal/HR/Corpus.hs +1/−1
- Duckling/Ordinal/HU/Corpus.hs +1/−1
- Duckling/Ordinal/ID/Corpus.hs +1/−1
- Duckling/Ordinal/IT/Corpus.hs +1/−1
- Duckling/Ordinal/JA/Corpus.hs +1/−1
- Duckling/Ordinal/KO/Corpus.hs +1/−1
- Duckling/Ordinal/NB/Corpus.hs +1/−1
- Duckling/Ordinal/NL/Corpus.hs +1/−1
- Duckling/Ordinal/PL/Corpus.hs +1/−1
- Duckling/Ordinal/PT/Corpus.hs +1/−1
- Duckling/Ordinal/RO/Corpus.hs +1/−1
- Duckling/Ordinal/RU/Corpus.hs +1/−1
- Duckling/Ordinal/RU/Rules.hs +47/−47
- Duckling/Ordinal/SV/Corpus.hs +1/−1
- Duckling/Ordinal/TR/Corpus.hs +1/−1
- Duckling/Ordinal/Types.hs +1/−1
- Duckling/Ordinal/UK/Corpus.hs +1/−1
- Duckling/Ordinal/VI/Corpus.hs +1/−1
- Duckling/Ordinal/ZH/Corpus.hs +1/−1
- Duckling/PhoneNumber/Corpus.hs +2/−2
- Duckling/PhoneNumber/PT/Corpus.hs +1/−1
- Duckling/PhoneNumber/Types.hs +2/−2
- Duckling/Quantity/AR/Corpus.hs +1/−1
- Duckling/Quantity/EN/Corpus.hs +1/−1
- Duckling/Quantity/FR/Corpus.hs +1/−1
- Duckling/Quantity/HR/Corpus.hs +1/−1
- Duckling/Quantity/KO/Corpus.hs +1/−1
- Duckling/Quantity/PT/Corpus.hs +1/−1
- Duckling/Quantity/RO/Corpus.hs +1/−1
- Duckling/Quantity/RU/Corpus.hs +1/−1
- Duckling/Quantity/Types.hs +9/−9
- Duckling/Ranking/Classifiers.hs +2/−0
- Duckling/Ranking/Classifiers/DE_XX.hs +294/−295
- Duckling/Ranking/Classifiers/EN_CA.hs +3096/−2383
- Duckling/Ranking/Classifiers/EN_GB.hs +3041/−2392
- Duckling/Ranking/Classifiers/EN_US.hs +3108/−2383
- Duckling/Ranking/Classifiers/EN_XX.hs +2995/−2383
- Duckling/Ranking/Classifiers/ES_XX.hs +20/−12
- Duckling/Ranking/Classifiers/NL_XX.hs +251/−269
- Duckling/Ranking/Classifiers/PL_XX.hs +32/−17
- Duckling/Ranking/Classifiers/TA_XX.hs +22/−0
- Duckling/Ranking/Classifiers/ZH_CN.hs +248/−223
- Duckling/Ranking/Classifiers/ZH_HK.hs +248/−223
- Duckling/Ranking/Classifiers/ZH_MO.hs +248/−223
- Duckling/Ranking/Classifiers/ZH_TW.hs +248/−223
- Duckling/Ranking/Classifiers/ZH_XX.hs +247/−222
- Duckling/Regex/Types.hs +1/−1
- Duckling/Resolve.hs +8/−2
- Duckling/Rules.hs +4/−0
- Duckling/Rules/AR.hs +2/−0
- Duckling/Rules/BG.hs +10/−4
- Duckling/Rules/CS.hs +2/−0
- Duckling/Rules/Common.hs +1/−0
- Duckling/Rules/DA.hs +2/−0
- Duckling/Rules/DE.hs +2/−0
- Duckling/Rules/EL.hs +2/−0
- Duckling/Rules/EN.hs +5/−8
- Duckling/Rules/ES.hs +2/−0
- Duckling/Rules/ET.hs +2/−0
- Duckling/Rules/FR.hs +2/−0
- Duckling/Rules/GA.hs +2/−0
- Duckling/Rules/HE.hs +2/−0
- Duckling/Rules/HI.hs +2/−0
- Duckling/Rules/HR.hs +2/−0
- Duckling/Rules/HU.hs +2/−0
- Duckling/Rules/ID.hs +2/−0
- Duckling/Rules/IT.hs +2/−0
- Duckling/Rules/JA.hs +2/−0
- Duckling/Rules/KA.hs +2/−0
- Duckling/Rules/KO.hs +2/−0
- Duckling/Rules/MY.hs +2/−0
- Duckling/Rules/NB.hs +2/−0
- Duckling/Rules/NE.hs +2/−0
- Duckling/Rules/NL.hs +4/−1
- Duckling/Rules/PL.hs +2/−0
- Duckling/Rules/PT.hs +2/−0
- Duckling/Rules/RO.hs +2/−0
- Duckling/Rules/RU.hs +2/−0
- Duckling/Rules/SV.hs +4/−1
- Duckling/Rules/TA.hs +44/−0
- Duckling/Rules/TR.hs +2/−0
- Duckling/Rules/UK.hs +2/−0
- Duckling/Rules/VI.hs +2/−0
- Duckling/Rules/ZH.hs +7/−3
- Duckling/Temperature/AR/Corpus.hs +1/−1
- Duckling/Temperature/EN/Corpus.hs +1/−1
- Duckling/Temperature/ES/Corpus.hs +1/−1
- Duckling/Temperature/FR/Corpus.hs +1/−1
- Duckling/Temperature/GA/Corpus.hs +1/−1
- Duckling/Temperature/HR/Corpus.hs +1/−1
- Duckling/Temperature/Helpers.hs +1/−1
- Duckling/Temperature/IT/Corpus.hs +1/−1
- Duckling/Temperature/JA/Corpus.hs +1/−1
- Duckling/Temperature/KO/Corpus.hs +1/−1
- Duckling/Temperature/KO/Rules.hs +1/−1
- Duckling/Temperature/PT/Corpus.hs +1/−1
- Duckling/Temperature/RO/Corpus.hs +1/−1
- Duckling/Temperature/TR/Corpus.hs +1/−1
- Duckling/Temperature/Types.hs +3/−3
- Duckling/Temperature/ZH/Corpus.hs +1/−1
- Duckling/Testing/Types.hs +14/−6
- Duckling/Time/AR/Corpus.hs +2/−2
- Duckling/Time/AR/Rules.hs +1/−2
- Duckling/Time/Computed.hs +1571/−0
- Duckling/Time/Corpus.hs +34/−12
- Duckling/Time/DA/Corpus.hs +1/−1
- Duckling/Time/DE/Corpus.hs +12/−13
- Duckling/Time/DE/Rules.hs +8/−8
- Duckling/Time/EL/Corpus.hs +2/−2
- Duckling/Time/EN/AU/Corpus.hs +47/−5
- Duckling/Time/EN/AU/Rules.hs +70/−11
- Duckling/Time/EN/BZ/Corpus.hs +35/−5
- Duckling/Time/EN/BZ/Rules.hs +17/−11
- Duckling/Time/EN/CA/Corpus.hs +90/−5
- Duckling/Time/EN/CA/Rules.hs +54/−11
- Duckling/Time/EN/Corpus.hs +470/−65
- Duckling/Time/EN/GB/Corpus.hs +41/−8
- Duckling/Time/EN/GB/Rules.hs +34/−11
- Duckling/Time/EN/IE/Corpus.hs +36/−5
- Duckling/Time/EN/IE/Rules.hs +16/−11
- Duckling/Time/EN/IN/Corpus.hs +47/−5
- Duckling/Time/EN/IN/Rules.hs +28/−11
- Duckling/Time/EN/JM/Corpus.hs +35/−5
- Duckling/Time/EN/JM/Rules.hs +13/−11
- Duckling/Time/EN/NZ/Corpus.hs +35/−5
- Duckling/Time/EN/NZ/Rules.hs +28/−11
- Duckling/Time/EN/PH/Corpus.hs +41/−5
- Duckling/Time/EN/PH/Rules.hs +24/−11
- Duckling/Time/EN/Rules.hs +604/−86
- Duckling/Time/EN/TT/Corpus.hs +38/−5
- Duckling/Time/EN/TT/Rules.hs +22/−11
- Duckling/Time/EN/US/Corpus.hs +88/−5
- Duckling/Time/EN/US/Rules.hs +177/−17
- Duckling/Time/EN/ZA/Corpus.hs +44/−5
- Duckling/Time/EN/ZA/Rules.hs +27/−11
- Duckling/Time/ES/Corpus.hs +1/−1
- Duckling/Time/ES/Rules.hs +8/−51
- Duckling/Time/FR/Corpus.hs +2/−2
- Duckling/Time/GA/Corpus.hs +1/−1
- Duckling/Time/HE/Corpus.hs +1/−1
- Duckling/Time/HR/Corpus.hs +1/−1
- Duckling/Time/HU/Corpus.hs +1/−1
- Duckling/Time/Helpers.hs +104/−14
- Duckling/Time/IT/Corpus.hs +2/−2
- Duckling/Time/KO/Corpus.hs +1/−1
- Duckling/Time/NB/Corpus.hs +1/−1
- Duckling/Time/NL/Corpus.hs +12/−14
- Duckling/Time/NL/Rules.hs +10/−10
- Duckling/Time/PL/Corpus.hs +13/−2
- Duckling/Time/PL/Rules.hs +11/−11
- Duckling/Time/PT/Corpus.hs +2/−2
- Duckling/Time/RO/Corpus.hs +2/−2
- Duckling/Time/SV/Corpus.hs +1/−1
- Duckling/Time/Types.hs +98/−14
- Duckling/Time/VI/Corpus.hs +1/−1
- Duckling/Time/ZH/Corpus.hs +1/−2
- Duckling/Time/ZH/Rules.hs +0/−14
- Duckling/TimeGrain/BG/Rules.hs +41/−0
- Duckling/TimeGrain/EN/Rules.hs +6/−5
- Duckling/TimeGrain/Types.hs +1/−1
- Duckling/Types.hs +153/−16
- Duckling/Url/Corpus.hs +2/−2
- Duckling/Url/Helpers.hs +0/−2
- Duckling/Url/Types.hs +1/−2
- Duckling/Volume/AR/Corpus.hs +1/−1
- Duckling/Volume/EN/Corpus.hs +1/−1
- Duckling/Volume/ES/Corpus.hs +1/−1
- Duckling/Volume/FR/Corpus.hs +1/−1
- Duckling/Volume/GA/Corpus.hs +1/−1
- Duckling/Volume/HR/Corpus.hs +1/−1
- Duckling/Volume/IT/Corpus.hs +1/−1
- Duckling/Volume/KO/Corpus.hs +1/−1
- Duckling/Volume/NL/Corpus.hs +1/−1
- Duckling/Volume/PT/Corpus.hs +1/−1
- Duckling/Volume/RO/Corpus.hs +1/−1
- Duckling/Volume/RU/Corpus.hs +1/−1
- Duckling/Volume/TR/Corpus.hs +1/−1
- Duckling/Volume/Types.hs +3/−3
- duckling.cabal +46/−1
- exe/CustomDimensionExample.hs +82/−0
- exe/Duckling/Ranking/Generate.hs +13/−12
- exe/Duckling/Ranking/Train.hs +5/−5
- exe/ExampleMain.hs +10/−3
- tests/Duckling/AmountOfMoney/EN/Tests.hs +3/−3
- tests/Duckling/AmountOfMoney/NL/Tests.hs +24/−0
- tests/Duckling/AmountOfMoney/Tests.hs +7/−1
- tests/Duckling/AmountOfMoney/ZH/Tests.hs +23/−0
- tests/Duckling/Api/Tests.hs +5/−5
- tests/Duckling/Distance/BG/Tests.hs +24/−0
- tests/Duckling/Distance/EN/Tests.hs +3/−2
- tests/Duckling/Distance/SV/Tests.hs +23/−0
- tests/Duckling/Distance/Tests.hs +11/−3
- tests/Duckling/Distance/ZH/Tests.hs +41/−0
- tests/Duckling/Duration/BG/Tests.hs +24/−0
- tests/Duckling/Duration/Tests.hs +2/−0
- tests/Duckling/Numeral/EN/Tests.hs +4/−3
- tests/Duckling/Numeral/TA/Tests.hs +22/−0
- tests/Duckling/Numeral/Tests.hs +2/−0
- tests/Duckling/Ordinal/BG/Tests.hs +23/−0
- tests/Duckling/Ordinal/Tests.hs +2/−0
- tests/Duckling/PhoneNumber/Tests.hs +2/−1
- tests/Duckling/Testing/Asserts.hs +50/−28
- tests/Duckling/Time/EN/Tests.hs +7/−5
- tests/Duckling/Time/SV/Tests.hs +1/−1
- tests/Duckling/Time/Tests.hs +1/−1
- tests/Duckling/Url/Tests.hs +1/−1
Duckling/AmountOfMoney/AR/Corpus.hs view
@@ -21,7 +21,8 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing},+ testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/AR/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.AR.Rules@@ -28,6 +29,20 @@ import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ rulePounds :: Rule rulePounds = Rule { name = "£"@@ -373,7 +388,8 @@ rules :: [Rule] rules =- [ ruleCent+ [ ruleUnitAmount+ , ruleCent , rulePounds , ruleDinars , ruleDirhams
Duckling/AmountOfMoney/BG/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale BG Nothing}, allExamples)+corpus = (testContext {locale = makeLocale BG Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/BG/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.BG.Rules@@ -16,18 +17,30 @@ import Data.Maybe import Data.String import Prelude-import qualified Data.Text as Text import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..))-import Duckling.Regex.Types import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleBGN :: Rule ruleBGN = Rule { name = "лв"@@ -255,7 +268,8 @@ rules :: [Rule] rules =- [ ruleBGN+ [ ruleUnitAmount+ , ruleBGN , ruleDollar , ruleCent , ruleEUR
Duckling/AmountOfMoney/EN/Corpus.hs view
@@ -20,14 +20,14 @@ import Duckling.Testing.Types negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "exactly dollars" ] corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/EN/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.EN.Rules@@ -28,6 +29,20 @@ import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ rulePounds :: Rule rulePounds = Rule { name = "£"@@ -310,7 +325,8 @@ rules :: [Rule] rules =- [ ruleACurrency+ [ ruleUnitAmount+ , ruleACurrency , ruleBucks , ruleCent , ruleDinars
Duckling/AmountOfMoney/ES/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/ES/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.ES.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleDollar :: Rule ruleDollar = Rule { name = "dollar"@@ -115,7 +130,8 @@ rules :: [Rule] rules =- [ ruleCent+ [ ruleUnitAmount+ , ruleCent , ruleDollar , ruleIntersect , ruleIntersectAndNumeral
Duckling/AmountOfMoney/FR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/FR/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.FR.Rules@@ -26,6 +27,20 @@ import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule { name = "intersect (and number)"@@ -242,7 +257,8 @@ rules :: [Rule] rules =- [ ruleCent+ [ ruleUnitAmount+ , ruleCent , ruleIntersect , ruleIntersectAndNumeral , ruleIntersectAndXCents
Duckling/AmountOfMoney/GA/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/GA/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.GA.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency (..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleDollar :: Rule ruleDollar = Rule { name = "$"@@ -148,7 +163,8 @@ rules :: [Rule] rules =- [ ruleAmountofmoneyGlan+ [ ruleUnitAmount+ , ruleAmountofmoneyGlan , ruleCent , ruleDollar , ruleInr
Duckling/AmountOfMoney/HR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/HR/Rules.hs view
@@ -6,6 +6,7 @@ -- of patent rights can be found in the PATENTS file in the same directory. {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.HR.Rules@@ -21,13 +22,27 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Regex.Types import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumber :: Rule ruleIntersectAndNumber = Rule { name = "intersect (and number)"@@ -185,7 +200,8 @@ rules :: [Rule] rules =- [ ruleDollar+ [ ruleUnitAmount+ , ruleDollar , rulePound , ruleOtherPounds , ruleAed
Duckling/AmountOfMoney/Helpers.hs view
@@ -12,7 +12,11 @@ module Duckling.AmountOfMoney.Helpers ( currencyOnly , financeWith+ , isSimpleAmountOfMoney+ , isCent , isCents+ , isCurrencyOnly+ , isDime , isMoneyWithValue , isWithoutCents , withCents@@ -27,7 +31,7 @@ import Prelude import Duckling.AmountOfMoney.Types (Currency (..), AmountOfMoneyData (..))-import Duckling.Numeral.Types (isInteger)+import Duckling.Numeral.Types (getIntValue, isInteger) import Duckling.Dimensions.Types import Duckling.Types hiding (Entity(..)) @@ -53,6 +57,28 @@ isMoneyWithValue (Token AmountOfMoney AmountOfMoneyData{value = v1, minValue = v2, maxValue = v3}) = any isJust [v1, v2, v3] isMoneyWithValue _ = False++isCurrencyOnly :: Predicate+isCurrencyOnly (Token AmountOfMoney AmountOfMoneyData+ {value = Nothing, minValue = Nothing, maxValue = Nothing}) = True+isCurrencyOnly _ = False++isSimpleAmountOfMoney :: Predicate+isSimpleAmountOfMoney (Token AmountOfMoney AmountOfMoneyData+ {minValue = Nothing, maxValue = Nothing}) = True+isSimpleAmountOfMoney _ = False++isDime :: Predicate+isDime (Token AmountOfMoney AmountOfMoneyData+ {value = Just d, currency = Cent}) =+ maybe False (\i -> (i `mod` 10) == 0) $ getIntValue d+isDime _ = False++isCent :: Predicate+isCent (Token AmountOfMoney AmountOfMoneyData+ {value = Just c, currency = Cent}) =+ maybe False (\i -> i >= 0 && i <= 9) $ getIntValue c+isCent _ = False -- ----------------------------------------------------------------- -- Production
Duckling/AmountOfMoney/ID/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/ID/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.ID.Rules@@ -18,14 +19,28 @@ import Prelude import Duckling.AmountOfMoney.Helpers-import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData(..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleDollar :: Rule ruleDollar = Rule { name = "$"@@ -78,7 +93,8 @@ rules :: [Rule] rules =- [ ruleDollar+ [ ruleUnitAmount+ , ruleDollar , ruleIdr , ruleIntersect , ruleJpy
Duckling/AmountOfMoney/KO/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/KO/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.KO.Rules@@ -20,9 +21,26 @@ import Duckling.Dimensions.Types import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney+import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleAmountofmoneyAbout :: Rule ruleAmountofmoneyAbout = Rule { name = "<amount-of-money> about"@@ -147,7 +165,8 @@ rules :: [Rule] rules =- [ ruleAboutAmountofmoney+ [ ruleUnitAmount+ , ruleAboutAmountofmoney , ruleAmountofmoneyAbout , ruleAud , ruleCent
Duckling/AmountOfMoney/NB/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/NB/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.NB.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency (..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule { name = "intersect (and number)"@@ -152,7 +167,8 @@ rules :: [Rule] rules =- [ ruleAboutAmountofmoney+ [ ruleUnitAmount+ , ruleAboutAmountofmoney , ruleCent , ruleDirham , ruleIntersect
+ Duckling/AmountOfMoney/NL/Corpus.hs view
@@ -0,0 +1,106 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.NL.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (simple Dollar 1)+ [ "$1"+ , "1 dollar"+ ]+ , examples (simple Dollar 10)+ [ "$10"+ , "$ 10"+ , "10$"+ , "10 dollars"+ , "tien dollar"+ ]+ , examples (simple Cent 10)+ [ "10 cent"+ , "tien pennies"+ , "tien cents"+ , "10 c"+ , "10¢"+ ]+ , examples (simple Dollar 10000)+ [ "$10K"+ , "10k$"+ , "$10000"+ , "10000,00 $"+ ]+ , examples (simple USD 3.14)+ [ "USD3,14"+ , "3,14US$"+ , "US$ 3,14"+ ]+ , examples (simple EUR 20)+ [ "20\x20ac"+ , "20 euros"+ , "20 Euro"+ , "20 Euros"+ , "EUR 20"+ , "EUR 20,0"+ , "20€"+ , "20 €ur"+ ]+ , examples (simple Dollar 20.43)+ [ "$20 en 43c"+ , "$20,43"+ , "20 dollar 43c"+ , "20 dollars 43 cents"+ , "20 dollar 43"+ ]+ , examples (simple GBP 3.01)+ [ "GBP3,01"+ , "GBP 3,01"+ , "3 GBP een penny"+ ]+ , examples (simple Unnamed 42)+ [ "42 bucks"+ , "ongeveer twee-en-veertig bucks"+ , "precies 42 bucks"+ ]+ , examples (between Dollar (10, 20))+ [ "vanaf 10 dollars tot 20 dollars"+ , "rond de 10-20 dollars"+ , "tussen 10 dollars en 20 dollars"+ , "ongeveer $10-$20"+ , "10-20 dollars"+ ]+ , examples (between Dollar (1.1, 1.3))+ [ "tussen 1,1 dollar en 1,3 dollars"+ , "van 1,1$ en 1,3 dollars"+ ]+ , examples (under EUR 7)+ [ "minder dan 7 euros"+ , "minder dan zeven EUR"+ , "lager dan 7€"+ ]+ , examples (above Dollar 1.42)+ [ "meer dan 1 dollar en 42 cents"+ , "minstens $1,42"+ , "boven de 1,42 dollars"+ , "boven de 1 dollar en 42 cents"+ ]+ ]
+ Duckling/AmountOfMoney/NL/Rules.hs view
@@ -0,0 +1,270 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.NL.Rules+ ( rules+ ) where++import Data.Maybe+import Data.String+import Prelude+import qualified Data.Text as Text++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..))+import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (isNatural, isPositive)+import Duckling.Numeral.Types (NumeralData (..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney+import qualified Duckling.Numeral.Types as TNumeral++ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }++rulePounds :: Rule+rulePounds = Rule+ { name = "£"+ , pattern =+ [ regex "pou?nds?"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Pound+ }++ruleCent :: Rule+ruleCent = Rule+ { name = "cent"+ , pattern =+ [ regex "cents?|penn(y|ies)|pence|sens?"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent+ }++ruleBucks :: Rule+ruleBucks = Rule+ { name = "bucks"+ , pattern =+ [ regex "bucks?"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Unnamed+ }++ruleIntersectAndXCents :: Rule+ruleIntersectAndXCents = Rule+ { name = "intersect (and X cents)"+ , pattern =+ [ Predicate isWithoutCents+ , regex "en"+ , Predicate isCents+ ]+ , prod = \tokens -> case tokens of+ (Token AmountOfMoney fd:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++ruleIntersect :: Rule+ruleIntersect = Rule+ { name = "intersect"+ , pattern =+ [ Predicate isWithoutCents+ , Predicate isNatural+ ]+ , prod = \tokens -> case tokens of+ (Token AmountOfMoney fd:+ Token Numeral NumeralData{TNumeral.value = c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++ruleIntersectAndNumeral :: Rule+ruleIntersectAndNumeral = Rule+ { name = "intersect (and number)"+ , pattern =+ [ Predicate isWithoutCents+ , regex "en"+ , Predicate isNatural+ ]+ , prod = \tokens -> case tokens of+ (Token AmountOfMoney fd:+ _:+ Token Numeral NumeralData{TNumeral.value = c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++ruleIntersectXCents :: Rule+ruleIntersectXCents = Rule+ { name = "intersect (X cents)"+ , pattern =+ [ Predicate isWithoutCents+ , Predicate isCents+ ]+ , prod = \tokens -> case tokens of+ (Token AmountOfMoney fd:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++rulePrecision :: Rule+rulePrecision = Rule+ { name = "about|exactly <amount-of-money>"+ , pattern =+ [ regex "precies|ongeveer|over|dicht|bijna|in de buurt|rond de"+ , Predicate isMoneyWithValue+ ]+ , prod = \tokens -> case tokens of+ (_:token:_) -> Just token+ _ -> Nothing+ }++ruleIntervalBetweenNumeral :: Rule+ruleIntervalBetweenNumeral = Rule+ { name = "between|from <numeral> to|and <amount-of-money>"+ , pattern =+ [ regex "tussen|vanaf|van"+ , Predicate isPositive+ , regex "tot|en"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (_:+ Token Numeral NumeralData{TNumeral.value = from}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) | from < to ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c+ _ -> Nothing+ }++ruleIntervalBetween :: Rule+ruleIntervalBetween = Rule+ { name = "between|from <amount-of-money> to|and <amount-of-money>"+ , pattern =+ [ regex "tussen|vanaf|van"+ , financeWith TAmountOfMoney.value isJust+ , regex "tot|en"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (_:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,+ TAmountOfMoney.currency = c1}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c2}:+ _) | from < to && c1 == c2 ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+ _ -> Nothing+ }++ruleIntervalNumeralDash :: Rule+ruleIntervalNumeralDash = Rule+ { name = "<numeral> - <amount-of-money>"+ , pattern =+ [ Predicate isNatural+ , regex "\\-"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (Token Numeral NumeralData{TNumeral.value = from}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) | from < to ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c+ _ -> Nothing+ }++ruleIntervalDash :: Rule+ruleIntervalDash = Rule+ { name = "<amount-of-money> - <amount-of-money>"+ , pattern =+ [ financeWith TAmountOfMoney.value isJust+ , regex "\\-"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,+ TAmountOfMoney.currency = c1}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c2}:+ _) | from < to && c1 == c2 ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+ _ -> Nothing+ }++ruleIntervalMax :: Rule+ruleIntervalMax = Rule+ { name = "under/less/lower/no more than <amount-of-money>"+ , pattern =+ [ regex "(minder|lager|niet? meer) dan"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (_:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) -> Just . Token AmountOfMoney . withMax to $ currencyOnly c+ _ -> Nothing+ }++ruleIntervalMin :: Rule+ruleIntervalMin = Rule+ { name = "over/above/at least/more than <amount-of-money>"+ , pattern =+ [ regex "boven de|minstens|meer dan"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \tokens -> case tokens of+ (_:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) -> Just . Token AmountOfMoney . withMin to $ currencyOnly c+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleUnitAmount+ , ruleBucks+ , ruleCent+ , ruleIntersect+ , ruleIntersectAndNumeral+ , ruleIntersectAndXCents+ , ruleIntersectXCents+ , ruleIntervalBetweenNumeral+ , ruleIntervalBetween+ , ruleIntervalMax+ , ruleIntervalMin+ , ruleIntervalNumeralDash+ , ruleIntervalDash+ , rulePounds+ , rulePrecision+ ]
Duckling/AmountOfMoney/PT/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/PT/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.PT.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule { name = "intersect (and number)"@@ -124,7 +139,8 @@ rules :: [Rule] rules =- [ ruleBrl+ [ ruleUnitAmount+ , ruleBrl , ruleCent , ruleDollar , ruleIntersect
Duckling/AmountOfMoney/RO/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/RO/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.RO.Rules@@ -21,13 +22,27 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Regex.Types import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule { name = "intersect (and number)"@@ -195,7 +210,8 @@ rules :: [Rule] rules =- [ ruleAed+ [ ruleUnitAmount+ , ruleAed , ruleCent , ruleDollar , ruleInr
Duckling/AmountOfMoney/RU/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/RU/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.RU.Rules@@ -28,6 +29,20 @@ import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleRuble :: Rule ruleRuble = Rule { name = "руб"@@ -284,7 +299,8 @@ rules :: [Rule] rules =- [ ruleBucks+ [ ruleUnitAmount+ , ruleBucks , ruleCent , ruleDollar , ruleEUR
Duckling/AmountOfMoney/Rules.hs view
@@ -40,6 +40,9 @@ , ("byn", BYN) , ("¢", Cent) , ("c", Cent)+ , ("cny", CNY)+ , ("rmb", CNY)+ , ("yuan", CNY) , ("$", Dollar) , ("dinar", Dinar) , ("dinars", Dinar)@@ -103,7 +106,7 @@ ruleCurrencies = Rule { name = "currencies" , pattern =- [ regex "(aed|aud|bgn|brl|byn|¢|c|\\$|dinars?|dollars?|egp|(e|€)uro?s?|€|gbp|hrk|idr|ils|inr|iqd|jod|¥|jpy|krw|kwd|lbp|mad|myr|rm|nok|£|pta?s?|qar|₽|rs\\.?|riy?als?|ron|rub|rupees?|sar|sek|sgb|shekels?|us(d|\\$)|vnd|yen)"+ [ regex "(aed|aud|bgn|brl|byn|¢|c|cny|\\$|dinars?|dollars?|egp|(e|€)uro?s?|€|gbp|hrk|idr|ils|inr|iqd|jod|¥|jpy|krw|kwd|lbp|mad|myr|rm|nok|£|pta?s?|qar|₽|rs\\.?|riy?als?|ron|rub|rupees?|sar|sek|sgb|shekels?|us(d|\\$)|vnd|yen|yuan)" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (match:_)):_) -> do@@ -117,7 +120,7 @@ { name = "<amount> <unit>" , pattern = [ Predicate isPositive- , financeWith TAmountOfMoney.value isNothing+ , Predicate isCurrencyOnly ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v}:@@ -126,23 +129,8 @@ _ -> Nothing } -ruleUnitAmount :: Rule-ruleUnitAmount = Rule- { name = "<unit> <amount>"- , pattern =- [ financeWith TAmountOfMoney.value isNothing- , Predicate isPositive- ]- , prod = \tokens -> case tokens of- (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:- Token Numeral NumeralData{TNumeral.value = v}:- _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c- _ -> Nothing- }- rules :: [Rule] rules = [ ruleAmountUnit , ruleCurrencies- , ruleUnitAmount ]
Duckling/AmountOfMoney/SV/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/SV/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.SV.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule { name = "intersect (and number)"@@ -157,7 +172,8 @@ rules :: [Rule] rules =- [ ruleAboutAmountofmoney+ [ ruleUnitAmount+ , ruleAboutAmountofmoney , ruleCent , ruleDirham , ruleExactlyAmountofmoney
Duckling/AmountOfMoney/Types.hs view
@@ -41,6 +41,7 @@ | BGN | BRL | BYN+ | CNY | EGP | EUR | GBP@@ -82,6 +83,7 @@ toJSON BGN = "BGN" toJSON BRL = "BRL" toJSON BYN = "BYN"+ toJSON CNY = "CNY" toJSON EGP = "EGP" toJSON EUR = "EUR" toJSON GBP = "GBP"@@ -118,19 +120,19 @@ instance Resolve AmountOfMoneyData where type ResolvedValue AmountOfMoneyData = AmountOfMoneyValue- resolve _ AmountOfMoneyData {value = Nothing, minValue = Nothing+ resolve _ _ AmountOfMoneyData {value = Nothing, minValue = Nothing , maxValue = Nothing} = Nothing- resolve _ AmountOfMoneyData {value = Just value, currency} =- Just $ simple currency value- resolve _ AmountOfMoneyData {value = Nothing, currency = c+ resolve _ _ AmountOfMoneyData {value = Just value, currency} =+ Just (simple currency value, False)+ resolve _ _ AmountOfMoneyData {value = Nothing, currency = c , minValue = Just from, maxValue = Just to} =- Just $ between c (from, to)- resolve _ AmountOfMoneyData {value = Nothing, currency = c+ Just (between c (from, to), False)+ resolve _ _ AmountOfMoneyData {value = Nothing, currency = c , minValue = Just v, maxValue = Nothing} =- Just $ above c v- resolve _ AmountOfMoneyData {value = Nothing, currency = c+ Just (above c v, False)+ resolve _ _ AmountOfMoneyData {value = Nothing, currency = c , minValue = Nothing, maxValue = Just v} =- Just $ under c v+ Just (under c v, False) data IntervalDirection = Above | Under deriving (Eq, Generic, Hashable, Ord, Show, NFData)
Duckling/AmountOfMoney/VI/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat@@ -37,12 +37,12 @@ , "mười xu" ] , examples (simple Dollar 10000)- [ "$10,000"+ [ "$10.000" , "10K$" , "$10k" ] , examples (simple USD 1.23)- [ "USD1.23"+ [ "USD1,23" ] , examples (simple Dollar 2.23) [ "2 đô la và 23 xen"@@ -56,7 +56,7 @@ [ "mười đồng" ] , examples (simple VND 10000)- [ "10,000 đồng"+ [ "10.000 đồng" , "10K đồng" , "10k đồng" ]@@ -72,7 +72,7 @@ , "EUR 20" ] , examples (simple EUR 29.99)- [ "EUR29.99"+ [ "EUR29,99" ] , examples (simple INR 20) [ "Rs. 20"@@ -94,8 +94,8 @@ , "chín pounds" ] , examples (simple GBP 3.01)- [ "GBP3.01"- , "GBP 3.01"+ [ "GBP3,01"+ , "GBP 3,01" ] , examples (simple AED 1) [ "1 AED."
Duckling/AmountOfMoney/VI/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.AmountOfMoney.VI.Rules@@ -20,12 +21,26 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural)+import Duckling.Numeral.Helpers (isNatural, isPositive) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Types import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney import qualified Duckling.Numeral.Types as TNumeral +ruleUnitAmount :: Rule+ruleUnitAmount = Rule+ { name = "<unit> <amount>"+ , pattern =+ [ Predicate isCurrencyOnly+ , Predicate isPositive+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+ Token Numeral NumeralData{TNumeral.value = v}:+ _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+ _ -> Nothing+ }+ ruleNg :: Rule ruleNg = Rule { name = "đồng"@@ -142,7 +157,8 @@ rules :: [Rule] rules =- [ ruleCent+ [ ruleUnitAmount+ , ruleCent , ruleDirham , ruleDollar , ruleIntersect
+ Duckling/AmountOfMoney/ZH/Corpus.hs view
@@ -0,0 +1,68 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.ZH.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale ZH Nothing},+ testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (simple Cent 5)+ [ "五分"+ , "5分"+ ]+ , examples (simple Cent 20)+ [ "20分"+ , "二十分"+ , "2角"+ , "两毛"+ ]+ , examples (simple Cent 25)+ [ "25分"+ , "二十五分"+ , "两角五分"+ , "两毛五"+ ]+ , examples (simple Dollar 7)+ [ "7块"+ , "七元"+ ]+ , examples (simple CNY 3.14)+ [ "3.14人民币"+ , "人民幣3.14"+ ]+ , examples (under Dollar 1.2)+ [ "1.2元以下"+ , "最多一块二角"+ , "最多一块二"+ ]+ , examples (above Dollar 3.04)+ [ "3.04块以上"+ , "至少三块四分"+ , "至少三块零四"+ ]+ , examples (between Dollar (5.6, 5.78))+ [ "5.6到5.78元"+ , "五元六角-五元七毛八分"+ , "五块六到五块七毛八"+ ]+ ]
+ Duckling/AmountOfMoney/ZH/Rules.hs view
@@ -0,0 +1,274 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.ZH.Rules+ ( rules+ ) where++import Data.Maybe+import Data.String+import Prelude+import qualified Data.Text as Text++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency (..), AmountOfMoneyData (..))+import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (isNatural, isPositive, oneOf)+import Duckling.Numeral.Types (NumeralData (..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney+import qualified Duckling.Numeral.Types as TNumeral++ruleCNY :: Rule+ruleCNY = Rule+ { name = "cny"+ , pattern =+ [ regex "人民币|人民幣"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly CNY+ }++ruleCNYPrefix :: Rule+ruleCNYPrefix = Rule+ { name = "cny prefix"+ , pattern =+ [ regex "人民币|人民幣"+ , Predicate isPositive+ ]+ , prod = \case+ (_:Token Numeral NumeralData{TNumeral.value = v}:_) ->+ Just . Token AmountOfMoney . withValue v $ currencyOnly CNY+ _ -> Nothing+ }++ruleCent :: Rule+ruleCent = Rule+ { name = "cent"+ , pattern =+ [ regex "分"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent+}++ruleDime :: Rule+ruleDime = Rule+ { name = "dime"+ , pattern =+ [ Predicate isPositive+ , regex "角|毛"+ ]+ , prod = \case+ (Token Numeral NumeralData{TNumeral.value = v}:_) ->+ Just . Token AmountOfMoney $+ withCents (v * 10) $ currencyOnly Cent+ _ -> Nothing+ }++ruleDollar :: Rule+ruleDollar = Rule+ { name = "dollar"+ , pattern =+ [ regex "元|圆|块"+ ]+ , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar+ }++rulePrecision :: Rule+rulePrecision = Rule+ { name = "exactly/about <amount-of-money>"+ , pattern =+ [ regex "刚好|恰好|大概"+ , Predicate isMoneyWithValue+ ]+ , prod = \case+ (_:token:_) -> Just token+ _ -> Nothing+ }++rulePrecision2 :: Rule+rulePrecision2 = Rule+ { name = "about <amount-of-money>"+ , pattern =+ [ Predicate isMoneyWithValue+ , regex "左右"+ ]+ , prod = \case+ (token:_) -> Just token+ _ -> Nothing+ }++ruleIntersectDimesAndCents :: Rule+ruleIntersectDimesAndCents = Rule+ { name = "intersect (X dimes and X cents)"+ , pattern =+ [ Predicate $ and . sequence [isSimpleAmountOfMoney, isDime]+ , Predicate $ and . sequence [isSimpleAmountOfMoney, isCent]+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just d}:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just c}:+ _) ->+ Just . Token AmountOfMoney $ withCents (c + d) $ currencyOnly Cent+ _ -> Nothing+ }++ruleIntersectDollarsAndDimesCents :: Rule+ruleIntersectDollarsAndDimesCents = Rule+ { name = "intersect (X dollars and X dimes/cents)"+ , pattern =+ [ Predicate $ and . sequence [isSimpleAmountOfMoney, isWithoutCents]+ , Predicate $ and . sequence [isSimpleAmountOfMoney, isCents]+ ]+ , prod = \case+ (Token AmountOfMoney fd:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++ruleIntersect :: Rule+ruleIntersect = Rule+ { name = "intersect (implicit 0 delimited cents)"+ , pattern =+ [ Predicate $ and . sequence [isSimpleAmountOfMoney, isWithoutCents]+ , regex "0|零|〇"+ , oneOf [1..9]+ ]+ , prod = \case+ (Token AmountOfMoney fd:_:+ Token Numeral NumeralData{TNumeral.value = c}:+ _) -> Just . Token AmountOfMoney $ withCents c fd+ _ -> Nothing+ }++ruleIntersect2 :: Rule+ruleIntersect2 = Rule+ { name = "intersect (implicit unitless cents)"+ , pattern =+ [ Predicate $ and . sequence [isSimpleAmountOfMoney, isDime]+ , Predicate isNatural+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just v}:+ Token Numeral NumeralData{TNumeral.value = c}:+ _) -> Just . Token AmountOfMoney $ withCents (v + c) $ currencyOnly Cent+ _ -> Nothing+ }++ruleIntersect3 :: Rule+ruleIntersect3 = Rule+ { name = "intersect (implicit unitless dimes)"+ , pattern =+ [ Predicate $ and . sequence [isSimpleAmountOfMoney, isWithoutCents]+ , Predicate isNatural+ ]+ , prod = \case+ (Token AmountOfMoney fd:+ Token Numeral NumeralData{TNumeral.value = d}:+ _) -> Just . Token AmountOfMoney $ withCents (d * 10) fd+ _ -> Nothing+ }++ruleIntervalNumeralDash :: Rule+ruleIntervalNumeralDash = Rule+ { name = "<numeral> - <amount-of-money>"+ , pattern =+ [ Predicate isPositive+ , regex "-|~|到"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \case+ (Token Numeral NumeralData{TNumeral.value = from}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) | from < to ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c+ _ -> Nothing+ }++ruleIntervalDash :: Rule+ruleIntervalDash = Rule+ { name = "<amount-of-money> - <amount-of-money>"+ , pattern =+ [ financeWith TAmountOfMoney.value isJust+ , regex "-|~|到"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,+ TAmountOfMoney.currency = c1}:+ _:+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c2}:+ _) | from < to && c1 == c2 ->+ Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+ _ -> Nothing+ }++ruleIntervalBound :: Rule+ruleIntervalBound = Rule+ { name = "under/less/lower/no more than <amount-of-money> (最多|至少|最少)"+ , pattern =+ [ regex "(最多|至少|最少)"+ , financeWith TAmountOfMoney.value isJust+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):+ Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ _) -> case match of+ "最多" -> Just . Token AmountOfMoney . withMax to $ currencyOnly c+ "最少" -> Just . Token AmountOfMoney . withMin to $ currencyOnly c+ "至少" -> Just . Token AmountOfMoney . withMin to $ currencyOnly c+ _ -> Nothing+ _ -> Nothing+ }++ruleIntervalBound2 :: Rule+ruleIntervalBound2 = Rule+ { name = "under/less/lower/no more than <amount-of-money> (以下|以上)"+ , pattern =+ [ financeWith TAmountOfMoney.value isJust+ , regex "(以下|以上)"+ ]+ , prod = \case+ (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+ TAmountOfMoney.currency = c}:+ Token RegexMatch (GroupMatch (match:_)):+ _) -> case match of+ "以下" -> Just . Token AmountOfMoney . withMax to $ currencyOnly c+ "以上" -> Just . Token AmountOfMoney . withMin to $ currencyOnly c+ _ -> Nothing+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleCent+ , ruleCNY+ , ruleCNYPrefix+ , ruleDime+ , ruleDollar+ , ruleIntersect+ , ruleIntersect2+ , ruleIntersect3+ , ruleIntersectDimesAndCents+ , ruleIntersectDollarsAndDimesCents+ , ruleIntervalDash+ , ruleIntervalNumeralDash+ , ruleIntervalBound+ , ruleIntervalBound2+ , rulePrecision+ , rulePrecision2+ ]
Duckling/Api.hs view
@@ -21,7 +21,6 @@ import Data.HashSet (HashSet) import Data.Text (Text) import Prelude-import TextShow import qualified Data.HashMap.Strict as HashMap import qualified Data.HashSet as HashSet import qualified Data.Text as Text@@ -37,8 +36,9 @@ import Duckling.Types -- | Parses `input` and returns a curated list of entities found.-parse :: Text -> Context -> [Some Dimension] -> [Entity]-parse input ctx = map (formatToken input) . analyze input ctx . HashSet.fromList+parse :: Text -> Context -> Options -> [Some Dimension] -> [Entity]+parse input ctx options = map (formatToken input) . analyze input ctx options .+ HashSet.fromList supportedDimensions :: HashMap Lang [Some Dimension] supportedDimensions =@@ -46,18 +46,19 @@ -- | Returns a curated list of resolved tokens found -- When `targets` is non-empty, returns only tokens of such dimensions.-analyze :: Text -> Context -> HashSet (Some Dimension) -> [ResolvedToken]-analyze input context@Context{..} targets =+analyze :: Text -> Context -> Options -> HashSet (Some Dimension)+ -> [ResolvedToken]+analyze input context@Context{..} options targets = rank (classifiers locale) targets . filter (\Resolved{node = Node{token = (Token d _)}} -> HashSet.null targets || HashSet.member (This d) targets )- $ parseAndResolve (rulesFor locale targets) input context+ $ parseAndResolve (rulesFor locale targets) input context options -- | Converts the resolved token to the API format formatToken :: Text -> ResolvedToken -> Entity formatToken sentence- (Resolved (Range start end) node@Node{token = Token dimension _} value) =- Entity (toName dimension) body value start end node+ (Resolved (Range start end) node@Node{token = Token dimension _} value latent)+ = Entity (toName dimension) body value start end latent node where body = Text.drop start $ Text.take end sentence
Duckling/Core.hs view
@@ -12,13 +12,14 @@ module Duckling.Core ( Context(..)- , Region(..) , Dimension(..) , Entity(..)- , Node(..)- , Range(..) , Lang(..) , Locale+ , Node(..)+ , Options(..)+ , Range(..)+ , Region(..) , Some(..) , fromName , makeLocale@@ -36,7 +37,6 @@ ) where import Data.HashMap.Strict (HashMap)-import Data.Maybe import Data.Text (Text) import Data.Time import Data.Time.LocalTime.TimeZone.Series
Duckling/Debug.hs view
@@ -13,7 +13,7 @@ module Duckling.Debug ( allParses , debug- , debugContext+ , debugCustom , fullParses , ptree ) where@@ -38,7 +38,7 @@ -- API debug :: Locale -> Text -> [Some Dimension] -> IO [Entity]-debug locale = debugContext testContext {locale = locale}+debug locale = debugCustom testContext {locale = locale} testOptions allParses :: Locale -> Text -> [Some Dimension] -> IO [Entity] allParses l sentence targets = debugTokens sentence $ parses l sentence targets@@ -50,8 +50,13 @@ where n = Text.length sentence +debugCustom :: Context -> Options -> Text -> [Some Dimension] -> IO [Entity]+debugCustom context options sentence targets = debugTokens sentence .+ analyze sentence context options $ HashSet.fromList targets+ ptree :: Text -> Entity -> IO () ptree sentence Entity {enode} = pnode sentence 0 enode+ -- ----------------------------------------------------------------- -- Internals @@ -62,12 +67,8 @@ [] -> True _ -> elem (This d) targets where- tokens = parseAndResolve rules sentence testContext {locale = l}+ tokens = parseAndResolve rules sentence testContext {locale = l} testOptions rules = rulesFor l $ HashSet.fromList targets--debugContext :: Context -> Text -> [Some Dimension] -> IO [Entity]-debugContext context sentence targets =- debugTokens sentence . analyze sentence context $ HashSet.fromList targets debugTokens :: Text -> [ResolvedToken] -> IO [Entity] debugTokens sentence tokens = do
Duckling/Dimensions.hs view
@@ -19,6 +19,8 @@ import qualified Data.HashSet as HashSet import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Dimensions.Common as CommonDimensions import qualified Duckling.Dimensions.AR as ARDimensions import qualified Duckling.Dimensions.BG as BGDimensions@@ -49,11 +51,11 @@ import qualified Duckling.Dimensions.RO as RODimensions import qualified Duckling.Dimensions.RU as RUDimensions import qualified Duckling.Dimensions.SV as SVDimensions+import qualified Duckling.Dimensions.TA as TADimensions import qualified Duckling.Dimensions.TR as TRDimensions import qualified Duckling.Dimensions.UK as UKDimensions import qualified Duckling.Dimensions.VI as VIDimensions import qualified Duckling.Dimensions.ZH as ZHDimensions-import Duckling.Locale allDimensions :: Lang -> [Some Dimension] allDimensions lang = CommonDimensions.allDimensions ++ langDimensions lang@@ -81,6 +83,7 @@ dependents (This TimeGrain) = HashSet.empty dependents (This Url) = HashSet.empty dependents (This Volume) = HashSet.singleton (This Numeral)+dependents (This (CustomDimension dim)) = dimDependents dim langDimensions :: Lang -> [Some Dimension] langDimensions AR = ARDimensions.allDimensions@@ -112,6 +115,7 @@ langDimensions RO = RODimensions.allDimensions langDimensions RU = RUDimensions.allDimensions langDimensions SV = SVDimensions.allDimensions+langDimensions TA = TADimensions.allDimensions langDimensions TR = TRDimensions.allDimensions langDimensions UK = UKDimensions.allDimensions langDimensions VI = VIDimensions.allDimensions
Duckling/Dimensions/BG.hs view
@@ -14,5 +14,8 @@ allDimensions :: [Some Dimension] allDimensions =- [ This Numeral+ [ This Distance+ , This Duration+ , This Numeral+ , This Ordinal ]
Duckling/Dimensions/SV.hs view
@@ -14,7 +14,8 @@ allDimensions :: [Some Dimension] allDimensions =- [ This Duration+ [ This Distance+ , This Duration , This Numeral , This Ordinal , This Time
+ Duckling/Dimensions/TA.hs view
@@ -0,0 +1,18 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Dimensions.TA+ ( allDimensions+ ) where++import Duckling.Dimensions.Types++allDimensions :: [Some Dimension]+allDimensions =+ [ This Numeral+ ]
Duckling/Dimensions/Types.hs view
@@ -6,12 +6,8 @@ -- of patent rights can be found in the PATENTS file in the same directory. --{-# LANGUAGE ExistentialQuantification #-}-{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE NoRebindableSyntax #-}-{-# LANGUAGE TypeOperators #-} module Duckling.Dimensions.Types@@ -22,99 +18,14 @@ , toName ) where -import Data.GADT.Compare-import Data.GADT.Show-import Data.Hashable-import qualified Data.HashMap.Strict as HashMap import Data.Maybe import Data.Some import Data.Text (Text)--- Intentionally limit use of Typeable to avoid casting or typeOf usage-import Data.Typeable ((:~:)(..))-import TextShow (TextShow(..))-import qualified TextShow as TS import Prelude--import Duckling.AmountOfMoney.Types (AmountOfMoneyData)-import Duckling.Distance.Types (DistanceData)-import Duckling.Duration.Types (DurationData)-import Duckling.Email.Types (EmailData)-import Duckling.Numeral.Types (NumeralData)-import Duckling.Ordinal.Types (OrdinalData)-import Duckling.PhoneNumber.Types (PhoneNumberData)-import Duckling.Quantity.Types (QuantityData)-import Duckling.Regex.Types (GroupMatch)-import Duckling.Temperature.Types (TemperatureData)-import Duckling.Time.Types (TimeData)-import Duckling.TimeGrain.Types (Grain)-import Duckling.Url.Types (UrlData)-import Duckling.Volume.Types (VolumeData)---- -------------------------------------------------------------------- Dimension---- | GADT for differentiating between dimensions--- Each dimension should have its own constructor and provide the data structure--- for its parsed data-data Dimension a where- RegexMatch :: Dimension GroupMatch- AmountOfMoney :: Dimension AmountOfMoneyData- Distance :: Dimension DistanceData- Duration :: Dimension DurationData- Email :: Dimension EmailData- Numeral :: Dimension NumeralData- Ordinal :: Dimension OrdinalData- PhoneNumber :: Dimension PhoneNumberData- Quantity :: Dimension QuantityData- Temperature :: Dimension TemperatureData- Time :: Dimension TimeData- TimeGrain :: Dimension Grain- Url :: Dimension UrlData- Volume :: Dimension VolumeData---- Show-instance Show (Dimension a) where- show RegexMatch = "RegexMatch"- show Distance = "Distance"- show Duration = "Duration"- show Email = "Email"- show AmountOfMoney = "AmountOfMoney"- show Numeral = "Numeral"- show Ordinal = "Ordinal"- show PhoneNumber = "PhoneNumber"- show Quantity = "Quantity"- show Temperature = "Temperature"- show Time = "Time"- show TimeGrain = "TimeGrain"- show Url = "Url"- show Volume = "Volume"-instance GShow Dimension where gshowsPrec = showsPrec---- TextShow-instance TextShow (Dimension a) where- showb d = TS.fromString $ show d-instance TextShow (Some Dimension) where- showb (This d) = showb d---- Hashable-instance Hashable (Some Dimension) where- hashWithSalt s (This a) = hashWithSalt s a-instance Hashable (Dimension a) where- hashWithSalt s RegexMatch = hashWithSalt s (0::Int)- hashWithSalt s Distance = hashWithSalt s (1::Int)- hashWithSalt s Duration = hashWithSalt s (2::Int)- hashWithSalt s Email = hashWithSalt s (3::Int)- hashWithSalt s AmountOfMoney = hashWithSalt s (4::Int)- hashWithSalt s Numeral = hashWithSalt s (5::Int)- hashWithSalt s Ordinal = hashWithSalt s (6::Int)- hashWithSalt s PhoneNumber = hashWithSalt s (7::Int)- hashWithSalt s Quantity = hashWithSalt s (8::Int)- hashWithSalt s Temperature = hashWithSalt s (9::Int)- hashWithSalt s Time = hashWithSalt s (10::Int)- hashWithSalt s TimeGrain = hashWithSalt s (11::Int)- hashWithSalt s Url = hashWithSalt s (12::Int)- hashWithSalt s Volume = hashWithSalt s (13::Int)+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text as Text +import Duckling.Types toName :: Dimension a -> Text toName RegexMatch = "regex"@@ -131,6 +42,7 @@ toName TimeGrain = "time-grain" toName Url = "url" toName Volume = "volume"+toName (CustomDimension dim) = Text.pack (show dim) fromName :: Text -> Maybe (Some Dimension) fromName name = HashMap.lookup name m@@ -149,33 +61,3 @@ , ("url", This Url) , ("volume", This Volume) ]--instance GEq Dimension where- geq RegexMatch RegexMatch = Just Refl- geq RegexMatch _ = Nothing- geq Distance Distance = Just Refl- geq Distance _ = Nothing- geq Duration Duration = Just Refl- geq Duration _ = Nothing- geq Email Email = Just Refl- geq Email _ = Nothing- geq AmountOfMoney AmountOfMoney = Just Refl- geq AmountOfMoney _ = Nothing- geq Numeral Numeral = Just Refl- geq Numeral _ = Nothing- geq Ordinal Ordinal = Just Refl- geq Ordinal _ = Nothing- geq PhoneNumber PhoneNumber = Just Refl- geq PhoneNumber _ = Nothing- geq Quantity Quantity = Just Refl- geq Quantity _ = Nothing- geq Temperature Temperature = Just Refl- geq Temperature _ = Nothing- geq Time Time = Just Refl- geq Time _ = Nothing- geq TimeGrain TimeGrain = Just Refl- geq TimeGrain _ = Nothing- geq Url Url = Just Refl- geq Url _ = Nothing- geq Volume Volume = Just Refl- geq Volume _ = Nothing
Duckling/Dimensions/ZH.hs view
@@ -14,7 +14,8 @@ allDimensions :: [Some Dimension] allDimensions =- [ This Duration+ [ This Distance+ , This Duration , This Numeral , This Ordinal , This Temperature
+ Duckling/Distance/BG/Corpus.hs view
@@ -0,0 +1,66 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.BG.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.Locale+import Duckling.Resolve+import Duckling.Distance.Types+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale BG Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (simple Kilometre 3)+ [ "3 километра"+ , "3 км"+ , "3км"+ , "3.0 км"+ ]+ , examples (simple Mile 8)+ [ "8 мили"+ , "осем мили"+ ]+ , examples (simple Metre 1)+ [ "1 м",+ "1 метър",+ "един метър"+ ]+ , examples (simple Centimetre 2)+ [ "2см"+ , "2 сантиметра"+ ]+ , examples (simple Millimetre 4)+ [ "4мм"+ , "4 милиметра"+ ]+ , examples (simple Inch 5)+ [ "5 инча"+ , "5''"+ , "пет инча"+ , "5\""+ ]+ , examples (simple Foot 35)+ [ "35 фута"+ , "35'"+ , "тридесет и пет фута"+ ]+ , examples (simple Yard 47)+ [ "47 ярда"+ , "четиридесет и седем ярда"+ ]+ ]
+ Duckling/Distance/BG/Rules.hs view
@@ -0,0 +1,50 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.BG.Rules+ ( rules+ ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.Dimensions.Types+import Duckling.Distance.Helpers+import Duckling.Distance.Types (DistanceData(..))+import Duckling.Types+import qualified Duckling.Distance.Types as TDistance++distances :: [(Text, String, TDistance.Unit)]+distances = [ ("<latent dist> km", "км|километ(ра|ри|ър)", TDistance.Kilometre)+ , ("<latent dist> feet", "('|фут(а|ове)?)", TDistance.Foot)+ , ("<latent dist> inch", "(\"|''|инч(а|ове)?)", TDistance.Inch)+ , ("<latent dist> yard", "ярд(а|ове)?", TDistance.Yard)+ , ("<dist> meters", "м(етър|етр(а|и))?", TDistance.Metre)+ , ("<dist> centimeters", "см|сантимет(ри|ра|ър)", TDistance.Centimetre)+ , ("<dist> millimeters", "мм|милимет(ра|ри|ър)", TDistance.Millimetre)+ , ("<dist> miles", "мил(я|и)", TDistance.Mile)+ ]++ruleDistances :: [Rule]+ruleDistances = map go distances+ where+ go :: (Text, String, TDistance.Unit) -> Rule+ go (name, regexPattern, u) = Rule+ { name = name+ , pattern = [ dimension Distance, regex regexPattern ]+ , prod = \tokens -> case tokens of+ (Token Distance dd:_) -> Just . Token Distance $ withUnit u dd+ _ -> Nothing+ }++rules :: [Rule]+rules = ruleDistances
Duckling/Distance/CS/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale CS Nothing}, allExamples)+corpus = (testContext {locale = makeLocale CS Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/EN/Corpus.hs view
@@ -9,16 +9,17 @@ {-# LANGUAGE OverloadedStrings #-} module Duckling.Distance.EN.Corpus- ( corpus ) where+ ( corpus+ ) where -import Prelude import Data.String+import Prelude import Duckling.Distance.Types import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/ES/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/FR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/GA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/NL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/PT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/RU/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/Rules.hs view
@@ -20,8 +20,8 @@ import Duckling.Dimensions.Types import Duckling.Distance.Helpers import Duckling.Numeral.Types (NumeralData (..))-import qualified Duckling.Numeral.Types as TNumeral import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral ruleNumeralAsDistance :: Rule ruleNumeralAsDistance = Rule
+ Duckling/Distance/SV/Corpus.hs view
@@ -0,0 +1,50 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.SV.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.Distance.Types+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (simple Kilometre 3)+ [ "3 kilometer"+ , "3 km"+ , "3km"+ , "3k"+ ]+ , examples (simple Kilometre 30)+ [ "3 mil"+ , "tre mil"+ , "några få mil"+ ]+ , examples (simple Kilometre 3.0)+ [ "3,0 km"+ ]+ , examples (simple Metre 9)+ [ "9 meter"+ , "9m"+ ]+ , examples (simple Centimetre 2)+ [ "2cm"+ , "2 centimeter"+ ]+ ]
+ Duckling/Distance/SV/Rules.hs view
@@ -0,0 +1,84 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.SV.Rules+ ( rules+ ) where++import Data.String+import Prelude++import Duckling.Dimensions.Types+import Duckling.Distance.Helpers+import Duckling.Distance.Types (DistanceData(..))+import Duckling.Types+import qualified Duckling.Distance.Types as TDistance++ruleLatentDistKm :: Rule+ruleLatentDistKm = Rule+ { name = "<latent dist> km"+ , pattern =+ [ dimension Distance+ , regex "k(ilo)?m?(eter)?"+ ]+ , prod = \tokens -> case tokens of+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Kilometre dd+ _ -> Nothing+ }++ruleDistMeters :: Rule+ruleDistMeters = Rule+ { name = "<dist> meter"+ , pattern =+ [ dimension Distance+ , regex "m(eter)?"+ ]+ , prod = \tokens -> case tokens of+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Metre dd+ _ -> Nothing+ }++ruleDistCentimeters :: Rule+ruleDistCentimeters = Rule+ { name = "<dist> centimeters"+ , pattern =+ [ dimension Distance+ , regex "cm|centimeter"+ ]+ , prod = \tokens -> case tokens of+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Centimetre dd+ _ -> Nothing+ }++ruleDistMils :: Rule+ruleDistMils = Rule+ { name = "<dist> mils"+ , pattern =+ [ dimension Distance+ , regex "mils?"+ ]+ , prod = \tokens -> case tokens of+ (Token Distance dd@DistanceData {TDistance.value = Just x}:_) ->+ Just . Token Distance . withValue (10 * x)+ $ withUnit TDistance.Kilometre dd+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleDistCentimeters+ , ruleDistMeters+ , ruleDistMils+ , ruleLatentDistKm+ ]
Duckling/Distance/TR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Distance/Types.hs view
@@ -51,18 +51,18 @@ instance Resolve DistanceData where type ResolvedValue DistanceData = DistanceValue- resolve _ DistanceData {unit = Just unit, value = Just val} =- Just $ simple unit val- resolve _ DistanceData {unit = Just unit, value = Nothing+ resolve _ _ DistanceData {unit = Just unit, value = Just val} =+ Just (simple unit val, False)+ resolve _ _ DistanceData {unit = Just unit, value = Nothing , minValue = Just from, maxValue = Just to} =- Just $ between unit (from, to)- resolve _ DistanceData {unit = Just unit, value = Nothing+ Just (between unit (from, to), False)+ resolve _ _ DistanceData {unit = Just unit, value = Nothing , minValue = Just from, maxValue = Nothing} =- Just $ above unit from- resolve _ DistanceData {unit = Just unit, value = Nothing+ Just (above unit from, False)+ resolve _ _ DistanceData {unit = Just unit, value = Nothing , minValue = Nothing, maxValue = Just to} =- Just $ under unit to- resolve _ _ = Nothing+ Just (under unit to, False)+ resolve _ _ _ = Nothing data IntervalDirection = Above | Under deriving (Eq, Generic, Hashable, Ord, Show, NFData)
+ Duckling/Distance/ZH/Corpus.hs view
@@ -0,0 +1,72 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.ZH.Corpus+ ( corpus ) where++import Data.String+import Prelude++import Duckling.Distance.Types+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (simple Centimetre 2)+ [ "2cm"+ , "2 厘米"+ , "二厘米"+ , "2公分"+ , "二公分"+ ]+ , examples (simple Metre 9)+ [ "9m"+ , "9 m"+ , "九米"+ , "9公尺"+ ]+ , examples (simple Kilometre 3)+ [ "3公里"+ , "三公裏"+ , "3 km"+ , "3km"+ ]+ , examples (simple Kilometre 3.0)+ [ "3.0 公里"+ ]+ , examples (simple Foot 8)+ [ "8 foot"+ , "8 feet"+ , "8 foots"+ , "8 feets"+ , "8'"+ , "8英尺"+ , "8呎"+ ]+ , examples (simple Inch 4)+ [ "4 inch"+ , "4 inches"+ , "4''"+ , "4英寸"+ , "4英吋"+ , "四吋"+ ]+ , examples (simple Mile 1)+ [ "1 mile"+ , "1 miles"+ , "1英里"+ , "一英裏"+ ]+ ]
+ Duckling/Distance/ZH/Rules.hs view
@@ -0,0 +1,129 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Distance.ZH.Rules+ ( rules ) where++import Data.String+import Prelude++import Duckling.Dimensions.Types+import Duckling.Distance.Helpers+import Duckling.Numeral.Types (NumeralData (..))+import Duckling.Types+import qualified Duckling.Distance.Types as TDistance+import qualified Duckling.Numeral.Types as TNumeral++ruleDistCentimeters :: Rule+ruleDistCentimeters = Rule+ { name = "<dist> centimeters"+ , pattern =+ [ dimension Distance+ , regex "cm|厘米|公分"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Centimetre dd+ _ -> Nothing+ }++ruleDistMeters :: Rule+ruleDistMeters = Rule+ { name = "<dist> meters"+ , pattern =+ [ dimension Distance+ , regex "m|米|公尺"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Metre dd+ _ -> Nothing+ }++ruleDistKm :: Rule+ruleDistKm = Rule+ { name = "<dist> km"+ , pattern =+ [ dimension Distance+ , regex "km|千米|公(里|裏)"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Kilometre dd+ _ -> Nothing+ }+++ruleDistFeetAndDistInch :: Rule+ruleDistFeetAndDistInch = Rule+ { name = "<dist> feet and <dist> inch "+ , pattern =+ [ dimension Distance+ , regex "'|f(oo|ee)?ts?|英尺|呎"+ , dimension Distance+ , regex "''|inch(es)?|英寸|英吋|吋"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Foot dd+ _ -> Nothing+ }++ruleDistInch :: Rule+ruleDistInch = Rule+ { name = "<dist> inch"+ , pattern =+ [ dimension Distance+ , regex "''|inch(es)?|英寸|英吋|吋"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Inch dd+ _ -> Nothing+ }++ruleDistFeet :: Rule+ruleDistFeet = Rule+ { name = "<dist> feet"+ , pattern =+ [ dimension Distance+ , regex "'|f(oo|ee)?ts?|英尺|呎"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Foot dd+ _ -> Nothing+ }++ruleDistMiles :: Rule+ruleDistMiles = Rule+ { name = "<dist> miles"+ , pattern =+ [ dimension Distance+ , regex "miles?|英(里|裏)"+ ]+ , prod = \case+ (Token Distance dd:_) ->+ Just . Token Distance $ withUnit TDistance.Mile dd+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleDistCentimeters+ , ruleDistFeet+ , ruleDistFeetAndDistInch+ , ruleDistInch+ , ruleDistKm+ , ruleDistMeters+ , ruleDistMiles+ ]
Duckling/Duration/AR/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
+ Duckling/Duration/BG/Corpus.hs view
@@ -0,0 +1,95 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Duration.BG.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.Duration.Types+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Types+import Duckling.TimeGrain.Types (Grain(..))++corpus :: Corpus+corpus = (testContext {locale = makeLocale BG Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (DurationData 1 Second)+ [ "1 сек"+ , "1 секунда"+ , "секунда"+ , "1\""+ ]+ , examples (DurationData 15 Minute)+ [ "15 мин"+ , "петнадесет минути"+ , "15'"+ ]+ , examples (DurationData 30 Minute)+ [ "30 минути"+ , "половин час"+ , "тридесет минути"+ ]+ , examples (DurationData 90 Minute)+ [ "час и половина"+ , "90 мин"+ ]+ , examples (DurationData 5400 Second)+ [ "1.5 часа"+ , "5400 секунди"+ ]+ , examples (DurationData 8 Hour)+ [ "8 часа"+ , "8 ч"+ , "осем часа"+ ]+ , examples (DurationData 15 Day)+ [ "15 дни"+ , "петнадесет дни"+ , "половин месец"+ ]+ , examples (DurationData 7 Week)+ [ "7 седмици"+ , "седем седмици"+ ]+ , examples (DurationData 1 Month)+ [ "1 месец"+ , "месец"+ ]+ , examples (DurationData 6 Month)+ [ "6 месеца"+ , "шест месеца"+ , "половин година"+ ]+ , examples (DurationData 9072000 Second)+ [ "3.5 месеца"+ , "приблизително 3.5 месеца"+ ]+ , examples (DurationData 30 Month)+ [ "две години и половина"+ , "2 години и половина"+ ]+ , examples (DurationData 3 Quarter)+ [ "3 тримесечия"+ ]+ , examples (DurationData 2 Year)+ [ "2 години"+ , "две години"+ ]+ , examples (DurationData 12 Hour)+ [ "12 часа"+ , "дванадесет часа"+ ]+ ]
+ Duckling/Duration/BG/Rules.hs view
@@ -0,0 +1,134 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE NoRebindableSyntax #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Duration.BG.Rules+ ( rules+ ) where++import Data.String+import Data.Text (Text)+import Prelude+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Duration.Helpers+import Duckling.Numeral.Helpers (numberWith)+import Duckling.Numeral.Types (NumeralData(..), isInteger)+import Duckling.Duration.Types (DurationData (DurationData))+import Duckling.Regex.Types+import Duckling.Types+import Duckling.TimeGrain.Types+import qualified Duckling.Numeral.Types as TNumeral++ruleHalves :: Rule+ruleHalves = Rule+ { name = "half of a <time-grain>"+ , pattern =+ [ regex "половин"+ , dimension TimeGrain+ ]+ , prod = \tokens -> case tokens of+ (_:Token TimeGrain grain:_) -> Token Duration <$> timesOneAndAHalf grain 0+ _ -> Nothing+ }++ruleGrainAndAHalf :: Rule+ruleGrainAndAHalf = Rule+ { name = "<time-grain> and a half"+ , pattern =+ [ dimension TimeGrain+ , regex "и половина"+ ]+ , prod = \tokens -> case tokens of+ (Token TimeGrain grain:_) -> Token Duration <$> timesOneAndAHalf grain 1+ _ -> Nothing+ }++ruleDurationAndAHalf :: Rule+ruleDurationAndAHalf = Rule+ { name = "<positive-numeral> <time-grain> and a half"+ , pattern =+ [ Predicate isNatural+ , dimension TimeGrain+ , regex "и половина"+ ]+ , prod = \tokens -> case tokens of+ (Token Numeral NumeralData{TNumeral.value = v}:+ Token TimeGrain grain:+ _) -> timesOneAndAHalf grain (floor $ v) >>= Just . Token Duration+ _ -> Nothing+ }++ruleNumeralQuotes :: Rule+ruleNumeralQuotes = Rule+ { name = "<integer> + '\""+ , pattern =+ [ Predicate isNatural+ , regex "(['\"])"+ ]+ , prod = \tokens -> case tokens of+ (Token Numeral NumeralData{TNumeral.value = v}:+ Token RegexMatch (GroupMatch (x:_)):+ _) -> case x of+ "'" -> Just . Token Duration . duration Minute $ floor v+ "\"" -> Just . Token Duration . duration Second $ floor v+ _ -> Nothing+ _ -> Nothing+ }++ruleDurationPrecision :: Rule+ruleDurationPrecision = Rule+ { name = "about|exactly <duration>"+ , pattern =+ [ regex "(към|приблизително|примерно|някъде)"+ , dimension Duration+ ]+ , prod = \tokens -> case tokens of+ (_:token:_) -> Just token+ _ -> Nothing+ }++ruleGrainAsDuration :: Rule+ruleGrainAsDuration = Rule+ { name = "a <unit-of-duration>"+ , pattern =+ [ dimension TimeGrain+ ]+ , prod = \tokens -> case tokens of+ (Token TimeGrain grain:_) -> Just . Token Duration $ duration grain 1+ _ -> Nothing+ }++rulePositiveDuration :: Rule+rulePositiveDuration = Rule+ { name = "<positive-numeral> <time-grain>"+ , pattern =+ [ numberWith TNumeral.value $ and . sequence [not . isInteger, (>0)]+ , dimension TimeGrain+ ]+ , prod = \tokens -> case tokens of+ (Token Numeral NumeralData{TNumeral.value = v}:+ Token TimeGrain grain:+ _) -> Just . Token Duration . duration Second . floor $ inSeconds grain v+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleDurationAndAHalf+ , ruleGrainAndAHalf+ , rulePositiveDuration+ , ruleDurationPrecision+ , ruleNumeralQuotes+ , ruleGrainAsDuration+ , ruleHalves+ ]
Duckling/Duration/EL/Corpus.hs view
@@ -26,10 +26,10 @@ context = testContext {locale = makeLocale EL Nothing} corpus :: Corpus-corpus = (context, allExamples)+corpus = (context, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (context, examples)+negativeCorpus = (context, testOptions, examples) where examples = [ "για μήνες"
Duckling/Duration/EN/Corpus.hs view
@@ -21,10 +21,10 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "for months"@@ -61,5 +61,12 @@ ] , examples (DurationData 2 Year) [ "2 years"+ ]+ , examples (DurationData 27 Month)+ [ "2 years and 3 months"+ , "2 years, 3 months"+ ]+ , examples (DurationData 31719604 Second)+ [ "1 year, 2 days, 3 hours and 4 seconds" ] ]
Duckling/Duration/EN/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoRebindableSyntax #-} {-# LANGUAGE OverloadedStrings #-} @@ -14,16 +15,19 @@ ( rules ) where +import Data.Semigroup ((<>)) import Data.String import Prelude import qualified Data.Text as Text import Duckling.Dimensions.Types import Duckling.Duration.Helpers+import Duckling.Duration.Types (DurationData(..)) import Duckling.Numeral.Helpers (parseInt, parseInteger) import Duckling.Numeral.Types (NumeralData(..)) import Duckling.Regex.Types import Duckling.Types+import qualified Duckling.Duration.Types as TDuration import qualified Duckling.Numeral.Types as TNumeral import qualified Duckling.TimeGrain.Types as TG @@ -70,7 +74,7 @@ [ Predicate isNatural , regex "(['\"])" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token Numeral NumeralData{TNumeral.value = v}: Token RegexMatch (GroupMatch (x:_)): _) -> case x of@@ -88,7 +92,7 @@ , regex "more|less" , dimension TimeGrain ]- , prod = \tokens -> case tokens of+ , prod = \case (Token Numeral nd:_:Token TimeGrain grain:_) -> Just . Token Duration . duration grain . floor $ TNumeral.value nd _ -> Nothing@@ -100,7 +104,7 @@ , pattern = [ regex "(\\d+)\\.(\\d+) *hours?" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token RegexMatch (GroupMatch (h:m:_)):_) -> do hh <- parseInteger h mnum <- parseInteger m@@ -116,7 +120,7 @@ [ Predicate isNatural , regex "and (an? )?half hours?" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token Numeral NumeralData{TNumeral.value = v}:_) -> Just . Token Duration . duration TG.Minute $ 30 + 60 * floor v _ -> Nothing@@ -129,7 +133,7 @@ [ regex "an?" , dimension TimeGrain ]- , prod = \tokens -> case tokens of+ , prod = \case (_:Token TimeGrain grain:_) -> Just . Token Duration $ duration grain 1 _ -> Nothing }@@ -141,11 +145,29 @@ [ regex "(about|around|approximately|exactly)" , dimension Duration ]- , prod = \tokens -> case tokens of+ , prod = \case (_:token:_) -> Just token _ -> Nothing } +ruleCompositeDuration :: Rule+ruleCompositeDuration = Rule+ { name = "composite <duration>"+ , pattern =+ [ Predicate isNatural+ , dimension TimeGrain+ , regex ",|and"+ , dimension Duration+ ]+ , prod = \case+ (Token Numeral NumeralData{TNumeral.value = v}:+ Token TimeGrain g:+ _:+ Token Duration dd@DurationData{TDuration.grain = dg}:+ _) | g > dg -> Just . Token Duration $ duration g (floor v) <> dd+ _ -> Nothing+ }+ rules :: [Rule] rules = [ ruleDurationQuarterOfAnHour@@ -158,4 +180,5 @@ , ruleDurationA , ruleDurationPrecision , ruleNumeralQuotes+ , ruleCompositeDuration ]
Duckling/Duration/FR/Corpus.hs view
@@ -23,10 +23,10 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale FR Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale FR Nothing}, testOptions, examples) where examples = [ "les jours"
Duckling/Duration/GA/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/HU/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale HU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HU Nothing}, testOptions, allExamples) allExamples :: [Example]
Duckling/Duration/JA/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/KO/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/NB/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/NL/Corpus.hs view
@@ -23,10 +23,10 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale NL Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale NL Nothing}, testOptions, examples) where examples = [ "voor maanden"
Duckling/Duration/PL/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/PT/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/RO/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/RU/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.Duration.Rules@@ -29,7 +30,7 @@ [ Predicate isNatural , dimension TimeGrain ]- , prod = \tokens -> case tokens of+ , prod = \case (Token Numeral NumeralData{TNumeral.value = v}: Token TimeGrain grain: _) -> Just . Token Duration . duration grain $ floor v
Duckling/Duration/SV/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/TR/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain (..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Duration/Types.hs view
@@ -18,7 +18,9 @@ import Control.DeepSeq import Data.Aeson import Data.Hashable+import Data.Semigroup import Data.Text (Text)+import Data.Tuple.Extra (both) import GHC.Generics import TextShow (showt) import Prelude@@ -34,8 +36,14 @@ instance Resolve DurationData where type ResolvedValue DurationData = DurationData- resolve _ x = Just x+ resolve _ _ x = Just (x, False) +instance Semigroup DurationData where+ d1@(DurationData _ g1) <> d2@(DurationData _ g2) = DurationData (v1+v2) g+ where+ g = g1 `min` g2+ (DurationData v1 _, DurationData v2 _) = both (withGrain g) (d1,d2)+ instance ToJSON DurationData where toJSON DurationData {value, grain} = object [ "type" .= ("value" :: Text)@@ -47,3 +55,12 @@ , "value" .= inSeconds grain value ] ]++-- | Convert a duration to the given grain, rounded to the+-- nearest integer. For example, 1 month is converted to 4 weeks.+withGrain :: Grain -> DurationData -> DurationData+withGrain g d@(DurationData v1 g1)+ | g == g1 = d+ | otherwise = DurationData v g+ where+ v = round $ inSeconds g1 (fromIntegral v1 :: Double) / inSeconds g 1
Duckling/Duration/ZH/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types (Grain(..)) corpus :: Corpus-corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Email/Corpus.hs view
@@ -20,10 +20,10 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "hey@6"
Duckling/Email/EN/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "fitness at 6.40"@@ -35,7 +35,7 @@ ] corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Email/FR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Email/IT/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Email/Types.hs view
@@ -29,7 +29,7 @@ instance Resolve EmailData where type ResolvedValue EmailData = EmailData- resolve _ x = Just x+ resolve _ _ x = Just (x, False) instance ToJSON EmailData where toJSON EmailData {value} = object [ "value" .= value ]
Duckling/Engine.hs view
@@ -19,7 +19,7 @@ import Control.DeepSeq import Control.Monad.Extra-import Data.Aeson+import Data.Aeson (toJSON) import Data.ByteString (ByteString) import Data.Functor.Identity import Data.Maybe@@ -48,10 +48,10 @@ runDuckling :: Duckling a -> a runDuckling ma = runIdentity ma -parseAndResolve :: [Rule] -> Text -> Context -> [ResolvedToken]-parseAndResolve rules input context = mapMaybe (resolveNode context) .- force $ Stash.toPosOrderedList $ runDuckling $- parseString rules (Document.fromText input)+parseAndResolve :: [Rule] -> Text -> Context -> Options -> [ResolvedToken]+parseAndResolve rules input context options =+ mapMaybe (resolveNode context options) . force $ Stash.toPosOrderedList $+ runDuckling $ parseString rules (Document.fromText input) produce :: Match -> Maybe Node produce (_, _, []) = Nothing@@ -218,11 +218,13 @@ headPredicateRules = [ rule | rule@Rule{pattern = (Predicate _ : _)} <- rules ] -resolveNode :: Context -> Node -> Maybe ResolvedToken-resolveNode context n@Node{token = (Token _ dd), nodeRange = nodeRange} = do- val <- resolve context dd+resolveNode :: Context -> Options -> Node -> Maybe ResolvedToken+resolveNode context options n@Node{token = (Token _ dd), nodeRange = nodeRange}+ = do+ (val, latent) <- resolve context options dd Just Resolved { range = nodeRange , node = n , jsonValue = toJSON val+ , isLatent = latent }
Duckling/Locale.hs view
@@ -60,6 +60,7 @@ | RO | RU | SV+ | TA | TR | UK | VI
Duckling/Numeral/AR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/AR/Rules.hs view
@@ -310,7 +310,7 @@ , pattern = [ dimension Numeral , regex "فاصل[ةه]"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/BG/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale BG Nothing}, allExamples)+corpus = (testContext {locale = makeLocale BG Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/BG/Rules.hs view
@@ -16,7 +16,6 @@ import Data.HashMap.Strict (HashMap) import Data.Maybe-import Data.String import Data.Text (Text) import Prelude import qualified Data.HashMap.Strict as HashMap@@ -164,7 +163,7 @@ , pattern = [ dimension Numeral , regex "цяло и"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/CS/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale CS Nothing}, allExamples)+corpus = (testContext {locale = makeLocale CS Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/DA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/DA/Rules.hs view
@@ -110,7 +110,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -269,7 +269,7 @@ , pattern = [ dimension Numeral , regex "komma"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/DE/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/DE/Rules.hs view
@@ -151,7 +151,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -294,7 +294,7 @@ , pattern = [ dimension Numeral , regex "komma"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/EL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale EL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale EL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/EL/Rules.hs view
@@ -190,7 +190,7 @@ ruleSum = Rule { name = "intersect 2 numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -230,7 +230,7 @@ , pattern = [ dimension Numeral , regex "κόμμα"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/EN/Corpus.hs view
@@ -18,7 +18,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat@@ -126,6 +126,10 @@ , examples (NumeralValue 5000) [ "5 thousand" , "five thousand"+ ]+ , examples (NumeralValue (-504))+ [ "-504"+ , "negative five hundred and four" ] , examples (NumeralValue (-1.2e6)) [ "- 1,200,000"
Duckling/Numeral/EN/Rules.hs view
@@ -205,7 +205,7 @@ , pattern = [ dimension Numeral , regex "point|dot"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->@@ -218,7 +218,7 @@ { name = "point 77" , pattern = [ regex "point|dot"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (_:Token Numeral nd:_) -> double . decimalsToDouble $ TNumeral.value nd@@ -282,7 +282,7 @@ ruleSum = Rule { name = "intersect 2 numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate $ and . sequence [hasGrain, isPositive] , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -296,7 +296,7 @@ ruleSumAnd = Rule { name = "intersect 2 numbers (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate $ and . sequence [hasGrain, isPositive] , regex "and" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]
Duckling/Numeral/ES/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/ES/Rules.hs view
@@ -260,7 +260,7 @@ , pattern = [ dimension Numeral , regex "punto"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/ET/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ET Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ET Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/ET/Rules.hs view
@@ -121,7 +121,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -247,7 +247,7 @@ , pattern = [ dimension Numeral , regex "dot|point"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/FR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/FR/Rules.hs view
@@ -270,7 +270,7 @@ ruleSum = Rule { name = "intersect 2 numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of
Duckling/Numeral/GA/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/HE/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/HE/Rules.hs view
@@ -38,7 +38,7 @@ ruleIntersectNumerals = Rule { name = "intersect numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -52,7 +52,7 @@ ruleIntersectWithAnd = Rule { name = "intersect (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "ו" , Predicate isMultipliable ]@@ -324,7 +324,7 @@ , pattern = [ dimension Numeral , regex "נקודה"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/HI/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HI Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HI Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/HR/Rules.hs view
@@ -158,7 +158,7 @@ ruleSum = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -309,7 +309,7 @@ , pattern = [ dimension Numeral , regex "cijela|to(c|č)ka|zarez"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/HU/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/Helpers.hs view
@@ -11,12 +11,14 @@ module Duckling.Numeral.Helpers ( decimalsToDouble+ , diffIntegerDigits , double , integer , multiply , isMultipliable , isNatural , isPositive+ , hasGrain , divide , notOkForAnyTime , numberBetween@@ -79,6 +81,18 @@ [] -> 0 (multiplier : _) -> x / multiplier +-- diffIntegerDigits a b = # of digits in a - # of digits in b+-- ignores the nondecimal components+diffIntegerDigits :: Double -> Double -> Int+diffIntegerDigits a b = digitsOf a - digitsOf b+ where+ digitsOf :: Double -> Int+ digitsOf = digitsOfInt . floor . abs++ digitsOfInt :: Int -> Int+ digitsOfInt 0 = 0+ digitsOfInt a = 1 + digitsOfInt (a `div` 10)+ -- ----------------------------------------------------------------- -- Patterns @@ -107,6 +121,10 @@ isMultipliable :: Predicate isMultipliable (Token Numeral nd) = multipliable nd isMultipliable _ = False++hasGrain :: Predicate+hasGrain (Token Numeral NumeralData {grain = Just g}) = g > 1+hasGrain _ = False oneOf :: [Double] -> PatternItem oneOf vs = Predicate $ \x ->
Duckling/Numeral/ID/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/ID/Rules.hs view
@@ -62,7 +62,7 @@ , pattern = [ dimension Numeral , regex "koma"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->@@ -146,7 +146,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of
Duckling/Numeral/IT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/JA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/KA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/KO/Rules.hs view
@@ -206,7 +206,7 @@ ruleSum = Rule { name = "intersect 2 numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of
Duckling/Numeral/MY/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale MY Nothing}, allExamples)+corpus = (testContext {locale = makeLocale MY Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/NB/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/NB/Rules.hs view
@@ -32,7 +32,7 @@ ruleIntersectWithAnd = Rule { name = "intersect (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "og" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]@@ -129,7 +129,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -268,7 +268,7 @@ , pattern = [ dimension Numeral , regex "komma"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/NE/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NE Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/NL/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/NL/Rules.hs view
@@ -115,7 +115,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of
Duckling/Numeral/PL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/PL/Rules.hs view
@@ -65,7 +65,7 @@ ruleIntersectWithAnd = Rule { name = "intersect (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "i|a" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]@@ -328,7 +328,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -514,7 +514,7 @@ , pattern = [ dimension Numeral , regex "dot|point"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/PT/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/PT/Rules.hs view
@@ -249,7 +249,7 @@ , pattern = [ dimension Numeral , regex "ponto"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->@@ -262,7 +262,7 @@ { name = "point 77" , pattern = [ regex "ponto"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (_:Token Numeral nd:_) -> double . decimalsToDouble $ TNumeral.value nd@@ -326,7 +326,7 @@ ruleSum = Rule { name = "intersect 2 numbers" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -340,7 +340,7 @@ ruleSumAnd = Rule { name = "intersect 2 numbers (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "e" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]
Duckling/Numeral/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/RO/Rules.hs view
@@ -109,7 +109,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -123,7 +123,7 @@ ruleIntersectCuI = Rule { name = "intersect (cu și)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "(s|ș)i" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]
Duckling/Numeral/RU/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/RU/Rules.hs view
@@ -248,7 +248,7 @@ , pattern = [ dimension Numeral , regex "точка"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/SV/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/SV/Rules.hs view
@@ -32,7 +32,7 @@ ruleIntersectWithAnd = Rule { name = "intersect (with and)" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , regex "och" , Predicate $ and . sequence [not . isMultipliable, isPositive] ]@@ -119,7 +119,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -264,7 +264,7 @@ , pattern = [ dimension Numeral , regex "komma"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
+ Duckling/Numeral/TA/Corpus.hs view
@@ -0,0 +1,88 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Numeral.TA.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.Locale+import Duckling.Numeral.Types+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale TA Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (NumeralValue 0)+ [ "பூஜ்ஜியம்"+ ]+ , examples (NumeralValue 1)+ [ "ஒன்று"+ ]+ , examples (NumeralValue 2)+ [ "இரண்டு"+ ]+ , examples (NumeralValue 3)+ [ "மூன்று"+ ]+ , examples (NumeralValue 4)+ [ "நான்கு"+ ]+ , examples (NumeralValue 5)+ [ "ஐந்து"+ ]+ , examples (NumeralValue 6)+ [ "ஆறு"+ ]+ , examples (NumeralValue 7)+ [ "ஏழு"+ ]+ , examples (NumeralValue 8)+ [ "எட்டு"+ ]+ , examples (NumeralValue 9)+ [ "ஒன்பது"+ ]+ , examples (NumeralValue 10)+ [ "பத்து"+ ]+ , examples (NumeralValue 11)+ [ "பதினொன்று"+ ]+ , examples (NumeralValue 12)+ [ "பன்னிரண்டு"+ ]+ , examples (NumeralValue 20)+ [ "இருபது"+ ]+ , examples (NumeralValue 21)+ [ "இருபத்திஒன்று"+ ]+ , examples (NumeralValue 22)+ [ "இருபத்திஇரண்டு"+ ]+ , examples (NumeralValue 26)+ [ "இருபத்திஆறு"+ ]+ , examples (NumeralValue 30)+ [ "முப்பது"+ ]+ , examples (NumeralValue 33)+ [ "முப்பத்துமூன்று"+ ]+ , examples (NumeralValue 50)+ [ "ஐம்பது"+ ]+ ]
+ Duckling/Numeral/TA/Rules.hs view
@@ -0,0 +1,137 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoRebindableSyntax #-}+{-# LANGUAGE LambdaCase #-}++module Duckling.Numeral.TA.Rules+ ( rules+ ) where++import Data.HashMap.Strict (HashMap)+import Data.Maybe+import Data.String+import Data.Text (Text)+import Prelude+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers+import Duckling.Numeral.Types (NumeralData (..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral++zeroToNineMap :: HashMap Text Integer+zeroToNineMap = HashMap.fromList+ [ ( "பூஜ்ஜியம்", 0 )+ , ( "ஒன்று", 1 )+ , ( "இரண்டு", 2 )+ , ( "மூன்று", 3 )+ , ( "நான்கு", 4 )+ , ( "ஐந்து", 5 )+ , ( "ஆறு", 6 )+ , ( "ஏழு", 7 )+ , ( "எட்டு", 8 )+ , ( "ஒன்பது", 9 )+ ]++ruleZeroToNine :: Rule+ruleZeroToNine = Rule+ { name = "integer (0..9)"+ , pattern =+ [ regex "(பூஜ்ஜியம்|ஒன்று|இரண்டு|மூன்று|நான்கு|ஐந்து|ஆறு|ஏழு|எட்டு|ஒன்பது)"+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ HashMap.lookup (Text.toLower match) zeroToNineMap >>= integer+ _ -> Nothing+ }++tenToNineteenMap :: HashMap Text Integer+tenToNineteenMap = HashMap.fromList+ [ ( "பத்து", 10 )+ , ( "பதினொன்று", 11 )+ , ( "பன்னிரண்டு", 12 )+ , ( "பதின்மூன்று", 13 )+ , ( "பதினான்கு", 14 )+ , ( "பதினைந்து", 15 )+ , ( "பதினாறு", 16 )+ , ( "பதினேழு", 17 )+ , ( "பதினெட்டு", 18 )+ , ( "பத்தொன்பது", 19 )+ ]++ruleTenToNineteen :: Rule+ruleTenToNineteen = Rule+ { name = "integer (10..19)"+ , pattern =+ [ regex "(பத்து|பதினொன்று|பன்னிரண்டு|பதின்மூன்று|பதினான்கு|பதினைந்து|பதினாறு|பதினேழு|பதினெட்டு|பத்தொன்பது)"+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ HashMap.lookup (Text.toLower match) tenToNineteenMap >>= integer+ _ -> Nothing+ }++tensMap :: HashMap Text Integer+tensMap = HashMap.fromList+ [ ( "இருபது", 20 )+ , ( "இருபத்தி", 20 )+ , ( "முப்பது", 30 )+ , ( "முப்பத்து", 30 )+ , ( "நாற்பது", 40 )+ , ( "நாற்பத்து", 40 )+ , ( "ஐம்பது", 50 )+ , ( "ஐம்பத்தி", 50 )+ , ( "அறுபது", 60 )+ , ( "அறுபத்", 60 )+ , ( "எழுபது", 70 )+ , ( "எழுபத்தி", 70 )+ , ( "எண்பது", 80 )+ , ( "எண்பத்", 80 )+ , ( "தொண்ணூறு", 90 )+ , ( "தொண்ணுற்று", 90 )+ ]++ruleTens :: Rule+ruleTens = Rule+ { name = "integer (20..90)"+ , pattern =+ [ regex "(இருபது|முப்பது|நாற்பது|ஐம்பது|அறுபது|எழுபது|எண்பது|தொண்ணூறு)"+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ HashMap.lookup (Text.toLower match) tensMap >>= integer+ _ -> Nothing+ }++ruleCompositeTens :: Rule+ruleCompositeTens = Rule+ { name = "integer ([2-9][1-9])"+ , pattern =+ [ regex "(இருபத்தி|முப்பத்து|நாற்பத்து|ஐம்பத்தி|அறுபத்|எழுபத்தி|எண்பத்|தொண்ணுற்று)(ஒன்று|இரண்டு|மூன்று|நான்கு|ஐந்து|ஆறு|ஏழு|எட்டு|ஒன்பது)"+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (m1:m2:_)):_) -> do+ v1 <- HashMap.lookup (Text.toLower m1) tensMap+ v2 <- HashMap.lookup (Text.toLower m2) zeroToNineMap+ integer $ v1 + v2+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleZeroToNine+ , ruleTenToNineteen+ , ruleTens+ , ruleCompositeTens+ ]
Duckling/Numeral/TR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/TR/Rules.hs view
@@ -305,7 +305,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -666,7 +666,7 @@ , pattern = [ dimension Numeral , regex "nokta|virgül"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral NumeralData{TNumeral.value = v1}:
Duckling/Numeral/Types.hs view
@@ -39,7 +39,7 @@ instance Resolve NumeralData where type ResolvedValue NumeralData = NumeralValue- resolve _ NumeralData {value} = Just NumeralValue {vValue = value}+ resolve _ _ NumeralData {value} = Just (NumeralValue {vValue = value}, False) newtype NumeralValue = NumeralValue { vValue :: Double } deriving (Eq, Show)
Duckling/Numeral/UK/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale UK Nothing}, allExamples)+corpus = (testContext {locale = makeLocale UK Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Numeral/UK/Rules.hs view
@@ -225,7 +225,7 @@ , pattern = [ dimension Numeral , regex "крапка"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->
Duckling/Numeral/VI/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat@@ -61,16 +61,16 @@ , "tră" ] , examples (NumeralValue 1.1)- [ "1.1"- , "1.10"- , "01.10"+ [ "1,1"+ , "1,10"+ , "01,10" ] , examples (NumeralValue 0.77)- [ "0.77"- , ".77"+ [ "0,77"+ , ",77" ] , examples (NumeralValue 100000)- [ "100,000"+ [ "100.000" , "100000" , "100K" , "100k"@@ -79,22 +79,22 @@ [ "3M" , "3000K" , "3000000"- , "3,000,000"+ , "3.000.000" ] , examples (NumeralValue 1200000)- [ "1,200,000"+ [ "1.200.000" , "1200000"- , "1.2M"+ , "1,2M" , "1200K"- , ".0012G"+ , ",0012G" ] , examples (NumeralValue (-1200000))- [ "- 1,200,000"+ [ "- 1.200.000" , "-1200000"- , "âm 1,200,000"- , "-1.2M"+ , "âm 1.200.000"+ , "-1,2M" , "-1200K"- , "-.0012G"+ , "-,0012G" ] , examples (NumeralValue 5000) [ "5 nghìn"
Duckling/Numeral/VI/Rules.hs view
@@ -79,11 +79,11 @@ ruleDecimalWithThousandsSeparator = Rule { name = "decimal with thousands separator" , pattern =- [ regex "(\\d+(,\\d\\d\\d)+\\.\\d+)"+ [ regex "(\\d+(\\.\\d\\d\\d)+,\\d+)" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (match:_)):_) ->- parseDouble (Text.replace "," Text.empty match) >>= double+ parseDouble (Text.replace "." Text.empty match) >>= double _ -> Nothing } @@ -91,10 +91,10 @@ ruleDecimalNumeral = Rule { name = "decimal number" , pattern =- [ regex "(\\d*\\.\\d+)"+ [ regex "(\\d*,\\d+)" ] , prod = \tokens -> case tokens of- (Token RegexMatch (GroupMatch (match:_)):_) -> parseDecimal True match+ (Token RegexMatch (GroupMatch (match:_)):_) -> parseDecimal False match _ -> Nothing } @@ -118,7 +118,7 @@ , pattern = [ dimension Numeral , regex "chấm|phẩy"- , numberWith TNumeral.grain isNothing+ , Predicate $ not . hasGrain ] , prod = \tokens -> case tokens of (Token Numeral nd1:_:Token Numeral nd2:_) ->@@ -130,7 +130,7 @@ ruleIntersect = Rule { name = "intersect" , pattern =- [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)+ [ Predicate hasGrain , Predicate $ and . sequence [not . isMultipliable, isPositive] ] , prod = \tokens -> case tokens of@@ -275,11 +275,11 @@ ruleIntegerWithThousandsSeparator = Rule { name = "integer with thousands separator ," , pattern =- [ regex "(\\d{1,3}(,\\d\\d\\d){1,5})"+ [ regex "(\\d{1,3}(\\.\\d\\d\\d){1,5})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (match:_)):- _) -> let fmt = Text.replace "," Text.empty match+ _) -> let fmt = Text.replace "." Text.empty match in parseDouble fmt >>= double _ -> Nothing }
Duckling/Numeral/ZH/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat@@ -66,6 +66,24 @@ [ "96" , "九十六" ]+ , examples (NumeralValue 203)+ [ "203"+ , "二百零三"+ ]+ , examples (NumeralValue 534)+ [ "534"+ , "五百三十四"+ ]+ , examples (NumeralValue 34567)+ [ "34567"+ , "34,567"+ , "三万四千五百六十七"+ ]+ , examples (NumeralValue 10040)+ [ "10040"+ , "10,040"+ , "一万零四十"+ ] , examples (NumeralValue 1.1) [ "1.1" , "1.10"@@ -75,24 +93,36 @@ [ "0.77" , ".77" ]+ , examples (NumeralValue 34507)+ [ "34507"+ , "34,507"+ , "三万四千五百零七"+ ] , examples (NumeralValue 100000) [ "100,000" , "100000" , "100K" , "100k"+ , "十万" ] , examples (NumeralValue 3000000) [ "3M"- , "3000K" , "3000000" , "3,000,000"+ , "三百万" ]+ , examples (NumeralValue 1040000)+ [ "1,040,000"+ , "1040000"+ , "1.04M"+ , "一百零四万"+ ] , examples (NumeralValue 1200000) [ "1,200,000" , "1200000" , "1.2M"- , "1200K" , ".0012G"+ , "一百二十万" ] , examples (NumeralValue (-1200000)) [ "- 1,200,000"@@ -105,5 +135,6 @@ , "-1.2M" , "-1200K" , "-.0012G"+ , "负一百二十万" ] ]
Duckling/Numeral/ZH/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Duckling.Numeral.ZH.Rules@@ -15,6 +16,7 @@ import Data.Maybe import Data.String+import Data.Text (Text) import Prelude import qualified Data.HashMap.Strict as HashMap import qualified Data.Text as Text@@ -26,19 +28,19 @@ import Duckling.Types import qualified Duckling.Numeral.Types as TNumeral -ruleInteger5 :: Rule-ruleInteger5 = Rule+ruleInteger :: Rule+ruleInteger = Rule { name = "integer (0..10)" , pattern =- [ regex "(〇|零|一|二|两|兩|三|四|五|六|七|八|九|十)(个|個)?"+ [ regex "(〇|零|一|二|两|兩|三|四|五|六|七|八|九|十)" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token RegexMatch (GroupMatch (match:_)):_) -> HashMap.lookup match integerMap >>= integer _ -> Nothing } -integerMap :: HashMap.HashMap Text.Text Integer+integerMap :: HashMap.HashMap Text Integer integerMap = HashMap.fromList [ ( "〇", 0 ) , ( "零", 0 )@@ -64,7 +66,7 @@ [ regex "-|负|負" , Predicate isPositive ]- , prod = \tokens -> case tokens of+ , prod = \case (_:Token Numeral nd:_) -> double (TNumeral.value nd * (-1)) _ -> Nothing }@@ -75,7 +77,7 @@ , pattern = [ regex "(\\d+(,\\d\\d\\d)+\\.\\d+)" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token RegexMatch (GroupMatch (match:_)):_) -> parseDouble (Text.replace "," Text.empty match) >>= double _ -> Nothing@@ -87,102 +89,124 @@ , pattern = [ regex "(\\d*\\.\\d+)" ]- , prod = \tokens -> case tokens of+ , prod = \case (Token RegexMatch (GroupMatch (match:_)):_) -> parseDecimal True match _ -> Nothing } ruleNumeral :: Rule ruleNumeral = Rule- { name = "<number>个"+ { name = "<number>个/個" , pattern = [ dimension Numeral- , regex "个"+ , regex "个|個" ]- , prod = \tokens -> case tokens of+ , prod = \case (token:_) -> Just token _ -> Nothing } -ruleInteger3 :: Rule-ruleInteger3 = Rule- { name = "integer (20..90)"- , pattern =- [ numberBetween 2 10- , regex "十"- ]- , prod = \tokens -> case tokens of- (Token Numeral NumeralData{TNumeral.value = v}:_) -> double $ v * 10- _ -> Nothing- }+numeralSuffixList :: [(Text, Maybe Token)]+numeralSuffixList =+ [ ("K", double 1e3 >>= withGrain 3 >>= withMultipliable)+ , ("M", double 1e6 >>= withGrain 6 >>= withMultipliable)+ , ("G", double 1e9 >>= withGrain 9 >>= withMultipliable)+ , ("十", double 1e1 >>= withGrain 1 >>= withMultipliable)+ , ("百", double 1e2 >>= withGrain 2 >>= withMultipliable)+ , ("千", double 1e3 >>= withGrain 3 >>= withMultipliable)+ , ("万", double 1e4 >>= withGrain 4 >>= withMultipliable)+ , ("亿", double 1e8 >>= withGrain 8 >>= withMultipliable)+ ] -ruleNumeralsSuffixesKMG :: Rule-ruleNumeralsSuffixesKMG = Rule- { name = "numbers suffixes (K, M, G)"+ruleNumeralSuffixes :: [Rule]+ruleNumeralSuffixes = uncurry constructNumeralSuffixRule <$> numeralSuffixList+ where+ constructNumeralSuffixRule :: Text -> Maybe Token -> Rule+ constructNumeralSuffixRule suffixName production = Rule+ { name = "number suffix: " `mappend` suffixName+ , pattern =+ [ regex $ Text.unpack suffixName+ ]+ , prod = const production+ }+++ruleMultiply :: Rule+ruleMultiply = Rule+ { name = "compose by multiplication" , pattern = [ dimension Numeral- , regex "([kmg])"+ , Predicate isMultipliable ]- , prod = \tokens -> case tokens of- (Token Numeral NumeralData{TNumeral.value = v}:- Token RegexMatch (GroupMatch (match:_)):- _) -> case Text.toLower match of- "k" -> double $ v * 1e3- "m" -> double $ v * 1e6- "g" -> double $ v * 1e9- _ -> Nothing+ , prod = \case+ (token1:token2:_) -> multiply token1 token2 _ -> Nothing } -ruleInteger4 :: Rule-ruleInteger4 = Rule- { name = "integer 21..99"+ruleIntegerWithThousandsSeparator :: Rule+ruleIntegerWithThousandsSeparator = Rule+ { name = "integer with thousands separator ," , pattern =- [ oneOf [70, 20, 60, 50, 40, 90, 30, 80]- , numberBetween 1 10+ [ regex "(\\d{1,3}(,\\d\\d\\d){1,5})" ]- , prod = \tokens -> case tokens of- (Token Numeral NumeralData{TNumeral.value = v1}:- Token Numeral NumeralData{TNumeral.value = v2}:- _) -> double $ v1 + v2+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):+ _) -> let fmt = Text.replace "," Text.empty match+ in parseDouble fmt >>= double _ -> Nothing } -ruleInteger2 :: Rule-ruleInteger2 = Rule- { name = "integer (11..19)"+ruleNumeralsIntersectNonconsectiveUnit :: Rule+ruleNumeralsIntersectNonconsectiveUnit = Rule+ { name = "integer with nonconsecutive unit modifiers" , pattern =- [ regex "十"- , numberBetween 1 10+ [ Predicate isPositive+ , regex "零|〇"+ , Predicate isPositive ]- , prod = \tokens -> case tokens of- (_:Token Numeral NumeralData{TNumeral.value = v}:_) -> double $ 10 + v+ , prod = \case+ (Token Numeral NumeralData{TNumeral.value = v1}:_:+ Token Numeral NumeralData{TNumeral.value = v2}:_) ->+ sumConnectedNumbers v1 v2 (diffIntegerDigits v1 v2)+ >>= double _ -> Nothing }+ where+ sumConnectedNumbers :: Double -> Double -> Int -> Maybe Double+ sumConnectedNumbers v1 v2 d+ | d <= 1 = Nothing+ | otherwise = Just $ v1 + v2 -ruleIntegerWithThousandsSeparator :: Rule-ruleIntegerWithThousandsSeparator = Rule- { name = "integer with thousands separator ,"+ruleNumeralsIntersectConsecutiveUnit :: Rule+ruleNumeralsIntersectConsecutiveUnit = Rule+ { name = "integer with consecutive unit modifiers" , pattern =- [ regex "(\\d{1,3}(,\\d\\d\\d){1,5})"+ [ Predicate isPositive+ , Predicate isPositive ]- , prod = \tokens -> case tokens of- (Token RegexMatch (GroupMatch (match:_)):- _) -> let fmt = Text.replace "," Text.empty match- in parseDouble fmt >>= double+ , prod = \case+ (Token Numeral NumeralData{TNumeral.value = v1}:+ Token Numeral NumeralData{TNumeral.value = v2}:_) ->+ sumConnectedNumbers v1 v2 (diffIntegerDigits v1 v2)+ >>= double _ -> Nothing }+ where+ sumConnectedNumbers :: Double -> Double -> Int -> Maybe Double+ sumConnectedNumbers v1 v2 d+ | d == 1 = Just $ v1 + v2+ | otherwise = Nothing rules :: [Rule] rules = [ ruleDecimalNumeral , ruleDecimalWithThousandsSeparator- , ruleInteger2- , ruleInteger3- , ruleInteger4- , ruleInteger5+ , ruleInteger , ruleIntegerWithThousandsSeparator , ruleNumeral+ , ruleNumeralsIntersectConsecutiveUnit+ , ruleNumeralsIntersectNonconsectiveUnit , ruleNumeralsPrefixWithNegativeOrMinus- , ruleNumeralsSuffixesKMG+ , ruleMultiply ]+ ++ ruleNumeralSuffixes
Duckling/Ordinal/AR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/AR/Rules.hs view
@@ -15,7 +15,6 @@ ) where import Data.HashMap.Strict (HashMap)-import Data.String import Data.Text (Text) import Prelude import qualified Data.Text as Text
+ Duckling/Ordinal/BG/Corpus.hs view
@@ -0,0 +1,262 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.Ordinal.BG.Corpus+ ( corpus+ ) where++import Data.String+import Prelude++import Duckling.Locale+import Duckling.Ordinal.Types+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale BG Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+ [ examples (OrdinalData 1)+ [ "първи"+ , "първите"+ , "първия"+ , "първият"+ , "първо"+ , "първото"+ , "първа"+ , "първата"+ , "1ви"+ , "1-ви"+ , "1вите"+ , "1-вите"+ , "1вия"+ , "1-вия"+ , "1вият"+ , "1-вият"+ , "1во"+ , "1-во"+ , "1вото"+ , "1-вото"+ , "1ва"+ , "1-ва"+ , "1вата"+ , "1-вата"+ ]+ , examples (OrdinalData 3)+ [ "трети"+ , "третите"+ , "третия"+ , "третият"+ , "трето"+ , "третото"+ , "трета"+ , "третата"+ , "3ти"+ , "3-ти"+ , "3тите"+ , "3-тите"+ , "3тия"+ , "3-тия"+ , "3тият"+ , "3-тият"+ , "3то"+ , "3-то"+ , "3тото"+ , "3-тото"+ , "3та"+ , "3-та"+ , "3тата"+ , "3-тата"+ ]+ , examples (OrdinalData 8)+ [ "осми"+ , "осмите"+ , "осмия"+ , "осмият"+ , "осмо"+ , "осмото"+ , "осма"+ , "осмата"+ , "8ми"+ , "8-ми"+ , "8мите"+ , "8-мите"+ , "8мия"+ , "8-мия"+ , "8мият"+ , "8-мият"+ , "8мо"+ , "8-мо"+ , "8мото"+ , "8-мото"+ , "8ма"+ , "8-ма"+ , "8мата"+ , "8-мата"+ ]+ , examples (OrdinalData 15)+ [ "петнадесети"+ , "петнадесетите"+ , "петнадесетия"+ , "петнадесетият"+ , "петнадесето"+ , "петнадесетото"+ , "петнадесета"+ , "петнадесетата"+ , "15ти"+ , "15-ти"+ , "15тите"+ , "15-тите"+ , "15тия"+ , "15-тия"+ , "15тият"+ , "15-тият"+ , "15то"+ , "15-то"+ , "15тото"+ , "15-тото"+ , "15та"+ , "15-та"+ , "15тата"+ , "15-тата"+ ]+ , examples (OrdinalData 21)+ [ "двадесет и първи"+ , "двадесет и първите"+ , "двадесет и първия"+ , "двадесет и първият"+ , "двадесет и първо"+ , "двадесет и първото"+ , "двадесет и първа"+ , "двадесет и първата"+ , "21ви"+ , "21-ви"+ , "21вите"+ , "21-вите"+ , "21вия"+ , "21-вия"+ , "21вият"+ , "21-вият"+ , "21во"+ , "21-во"+ , "21вото"+ , "21-вото"+ , "21ва"+ , "21-ва"+ , "21вата"+ , "21-вата"+ ]+ , examples (OrdinalData 23)+ [ "двадесет и трети"+ , "двадесет и третите"+ , "двадесет и третия"+ , "двадесет и третият"+ , "двадесет и трето"+ , "двадесет и третото"+ , "двадесет и трета"+ , "двадесет и третата"+ , "23ти"+ , "23-ти"+ , "23тите"+ , "23-тите"+ , "23тия"+ , "23-тия"+ , "23тият"+ , "23-тият"+ , "23то"+ , "23-то"+ , "23тото"+ , "23-тото"+ , "23та"+ , "23-та"+ , "23тата"+ , "23-тата"+ ]+ , examples (OrdinalData 31)+ [ "тридесет и първи"+ , "тридесет и първите"+ , "тридесет и първия"+ , "тридесет и първият"+ , "тридесет и първо"+ , "тридесет и първото"+ , "тридесет и първа"+ , "тридесет и първата"+ , "31ви"+ , "31-ви"+ , "31вите"+ , "31-вите"+ , "31вия"+ , "31-вия"+ , "31вият"+ , "31-вият"+ , "31во"+ , "31-во"+ , "31вото"+ , "31-вото"+ , "31ва"+ , "31-ва"+ , "31вата"+ , "31-вата"+ ]+ , examples (OrdinalData 48)+ [ "четирдесет и осми"+ , "четирдесет и осмите"+ , "четирдесет и осмия"+ , "четирдесет и осмият"+ , "четирдесет и осмо"+ , "четирдесет и осмото"+ , "четирдесет и осма"+ , "четирдесет и осмата"+ , "48ми"+ , "48-ми"+ , "48мите"+ , "48-мите"+ , "48мия"+ , "48-мия"+ , "48мият"+ , "48-мият"+ , "48мо"+ , "48-мо"+ , "48мото"+ , "48-мото"+ , "48ма"+ , "48-ма"+ , "48мата"+ , "48-мата"+ ]+ , examples (OrdinalData 99)+ [ "деветдесет и девети"+ , "деветдесет и деветите"+ , "деветдесет и деветия"+ , "деветдесет и деветият"+ , "деветдесет и девето"+ , "деветдесет и деветото"+ , "деветдесет и девета"+ , "деветдесет и деветата"+ , "99ти"+ , "99-ти"+ , "99тите"+ , "99-тите"+ , "99тия"+ , "99-тия"+ , "99тият"+ , "99-тият"+ , "99то"+ , "99-то"+ , "99тото"+ , "99-тото"+ , "99та"+ , "99-та"+ , "99тата"+ , "99-тата"+ ]+ ]
+ Duckling/Ordinal/BG/Rules.hs view
@@ -0,0 +1,110 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoRebindableSyntax #-}++module Duckling.Ordinal.BG.Rules+ ( rules+ ) where++import Data.HashMap.Strict (HashMap)+import Data.Text (Text)+import Prelude+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (parseInt)+import Duckling.Ordinal.Helpers+import Duckling.Regex.Types+import Duckling.Types++ordinalsMap :: HashMap Text Int+ordinalsMap = HashMap.fromList+ [ ( "първ" , 1 )+ , ( "втор" , 2 )+ , ( "трет" , 3 )+ , ( "четвърт" , 4 )+ , ( "пет" , 5 )+ , ( "шест" , 6 )+ , ( "седм" , 7 )+ , ( "осм" , 8 )+ , ( "девет" , 9 )+ , ( "десет" , 10 )+ , ( "единадесет" , 11 )+ , ( "дванадесет" , 12 )+ , ( "тринадесет" , 13 )+ , ( "четиринадесет", 14 )+ , ( "петнадесет" , 15 )+ , ( "шестнадесет" , 16 )+ , ( "седемнадесет" , 17 )+ , ( "осемнадесет" , 18 )+ , ( "деветнадесет" , 19 )+ , ( "двадесет" , 20 )+ ]++ruleOrdinalsFirstth :: Rule+ruleOrdinalsFirstth = Rule+ { name = "ordinals (first..19th)"+ , pattern =+ [ regex "(първ|втор|трет|четвърт|пет|шест|седм|осм|девет|десет|единадесет|дванадесет|тринадесет|четиринадесет|петнадесет|шестнадесет|седемнадесет|осемнадесет|деветнадесет|двадесет)(и(я(т)?|те)?|а(та)?|о(то)?)"+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ ordinal <$> HashMap.lookup (Text.toLower match) ordinalsMap+ _ -> Nothing+ }++dozensMap :: HashMap Text Int+dozensMap = HashMap.fromList+ [ ( "двадесет" , 20 )+ , ( "тридесет" , 30 )+ , ( "четирдесет", 40 )+ , ( "петдесет" , 50 )+ , ( "шестдесет" , 60 )+ , ( "седемдесет", 70 )+ , ( "осемдесет" , 80 )+ , ( "деветдесет", 90 )+ ]++ruleOrdinal :: Rule+ruleOrdinal = Rule+ { name = "ordinal 21..99"+ , pattern =+ [ regex "(двадесет|тридесет|четирдесет|петдесет|шестдесет|седемдесет|осемдесет|деветдесет)"+ , regex "и (първ|втор|трет|четвърт|пет|шест|седм|осм|девет)(и(ят?|те)?|а(та)?|о(то)?)"+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (m1:_)):+ Token RegexMatch (GroupMatch (m2:_)):+ _) -> do+ dozen <- HashMap.lookup (Text.toLower m1) dozensMap+ unit <- HashMap.lookup (Text.toLower m2) ordinalsMap+ Just . ordinal $ dozen + unit+ _ -> Nothing+ }++ruleOrdinalDigits :: Rule+ruleOrdinalDigits = Rule+ { name = "ordinal (digits)"+ , pattern =+ [ regex "0*(\\d+)-?((в|р|м|т)(и(я(т)?|те)?|а(та)?|о(то)?))"+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match+ _ -> Nothing+ }++rules :: [Rule]+rules =+ [ ruleOrdinal+ , ruleOrdinalDigits+ , ruleOrdinalsFirstth+ ]
Duckling/Ordinal/DA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples =
Duckling/Ordinal/DE/Corpus.hs view
@@ -22,10 +22,10 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale DE Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale DE Nothing}, testOptions, examples) where examples = [ "1.1"
Duckling/Ordinal/EL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale EL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale EL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/EN/Corpus.hs view
@@ -9,16 +9,17 @@ {-# LANGUAGE OverloadedStrings #-} module Duckling.Ordinal.EN.Corpus- ( corpus ) where+ ( corpus+ ) where -import Prelude import Data.String+import Prelude import Duckling.Ordinal.Types import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/EN/Rules.hs view
@@ -70,7 +70,6 @@ , ( "ninety", 90 ) ] - ruleOrdinals :: Rule ruleOrdinals = Rule { name = "ordinals (first..twentieth,thirtieth,...)"
Duckling/Ordinal/ES/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/ET/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ET Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ET Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples =
Duckling/Ordinal/FR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/GA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HE/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HI/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HI Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HI Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HU/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/ID/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/IT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/JA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples =
Duckling/Ordinal/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/NB/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/NL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/PL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples =
Duckling/Ordinal/PT/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/RU/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/RU/Rules.hs view
@@ -8,14 +8,17 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoRebindableSyntax #-} module Duckling.Ordinal.RU.Rules- ( rules ) where+ ( rules+ ) where -import Control.Monad (join)-import qualified Data.Text as Text-import Prelude+import Data.HashMap.Strict (HashMap) import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text as Text import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt)@@ -23,6 +26,42 @@ import Duckling.Regex.Types import Duckling.Types +ordinalsFirstthMap :: HashMap Text.Text Int+ordinalsFirstthMap = HashMap.fromList+ [ ( "перв", 1 )+ , ( "втор", 2 )+ , ( "трет", 3 )+ , ( "четверт", 4 )+ , ( "пят", 5 )+ , ( "шест", 6 )+ , ( "седьм", 7 )+ , ( "восьм", 8 )+ , ( "девят", 9 )+ , ( "десят", 10 )+ , ( "одинадцат", 11 )+ , ( "двенадцат", 12 )+ , ( "тринадцат", 13 )+ , ( "четырнадцат", 14 )+ , ( "пятнадцат", 15 )+ , ( "шестнадцат", 16 )+ , ( "семнадцат", 17 )+ , ( "восемнадцат", 18 )+ , ( "девятнадцат", 19 )+ , ( "двадцат", 20 )+ ]++cardinalsMap :: HashMap Text.Text Int+cardinalsMap = HashMap.fromList+ [ ( "двадцать", 20 )+ , ( "тридцать", 30 )+ , ( "сорок", 40 )+ , ( "пятьдесят", 50 )+ , ( "шестьдесят", 60 )+ , ( "семьдесят", 70 )+ , ( "восемьдесят", 80 )+ , ( "девяносто", 90 )+ ]+ ruleOrdinalsFirstth :: Rule ruleOrdinalsFirstth = Rule { name = "ordinals (first..19th)"@@ -30,28 +69,8 @@ [ regex "(перв|втор|трет|четверт|пят|шест|седьм|восьм|девят|десят|одинадцат|двенадцат|тринадцат|четырнадцат|пятнадцат|шестнадцат|семнадцат|восемнадцат|девятнадцат|двадцат)(ье(го|й)?|ого|ый|ой|ий|ая|ое|ья)" ] , prod = \tokens -> case tokens of- (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of- "перв" -> Just $ ordinal 1- "втор" -> Just $ ordinal 2- "трет" -> Just $ ordinal 3- "четверт" -> Just $ ordinal 4- "пят" -> Just $ ordinal 5- "шест" -> Just $ ordinal 6- "седьм" -> Just $ ordinal 7- "восьм" -> Just $ ordinal 8- "девят" -> Just $ ordinal 9- "десят" -> Just $ ordinal 10- "одинадцат" -> Just $ ordinal 11- "двенадцат" -> Just $ ordinal 12- "тринадцат" -> Just $ ordinal 13- "четырнадцат" -> Just $ ordinal 14- "пятнадцат" -> Just $ ordinal 15- "шестнадцат" -> Just $ ordinal 16- "семнадцат" -> Just $ ordinal 17- "восемнадцат" -> Just $ ordinal 18- "девятнадцат" -> Just $ ordinal 19- "двадцат" -> Just $ ordinal 20- _ -> Nothing+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ ordinal <$> HashMap.lookup (Text.toLower match) ordinalsFirstthMap _ -> Nothing } @@ -66,27 +85,8 @@ (Token RegexMatch (GroupMatch (m1:_)): Token RegexMatch (GroupMatch (m2:_)): _) -> do- dozen <- case Text.toLower m1 of- "двадцать" -> Just 20- "тридцать" -> Just 30- "сорок" -> Just 40- "пятьдесят" -> Just 50- "шестьдесят" -> Just 60- "семьдесят" -> Just 70- "восемьдесят" -> Just 80- "девяносто" -> Just 90- _ -> Nothing- unit <- case Text.toLower m2 of- "перв" -> Just 1- "втор" -> Just 2- "трет" -> Just 3- "четверт" -> Just 4- "пят" -> Just 5- "шест" -> Just 6- "седьм" -> Just 7- "восьм" -> Just 8- "девят" -> Just 9- _ -> Nothing+ dozen <- HashMap.lookup (Text.toLower m1) cardinalsMap+ unit <- HashMap.lookup (Text.toLower m2) ordinalsFirstthMap Just . ordinal $ dozen + unit _ -> Nothing }
Duckling/Ordinal/SV/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/TR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/Types.hs view
@@ -28,7 +28,7 @@ instance Resolve OrdinalData where type ResolvedValue OrdinalData = OrdinalData- resolve _ x = Just x+ resolve _ _ x = Just (x, False) instance ToJSON OrdinalData where toJSON (OrdinalData value) = object
Duckling/Ordinal/UK/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale UK Nothing}, allExamples)+corpus = (testContext {locale = makeLocale UK Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/VI/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Ordinal/ZH/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/PhoneNumber/Corpus.hs view
@@ -20,10 +20,10 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "12345"
Duckling/PhoneNumber/PT/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/PhoneNumber/Types.hs view
@@ -37,8 +37,8 @@ instance Resolve PhoneNumberData where type ResolvedValue PhoneNumberData = PhoneNumberValue- resolve _ PhoneNumberData {prefix, number, extension} = Just PhoneNumberValue- {value = Text.concat [p, number, e]}+ resolve _ _ PhoneNumberData {prefix, number, extension} = Just+ (PhoneNumberValue {value = Text.concat [p, number, e]}, False) where p = case prefix of Just p -> "(+" <> TS.showt p <> ") "
Duckling/Quantity/AR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/EN/Corpus.hs view
@@ -18,7 +18,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/FR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/PT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/RU/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Quantity/Types.hs view
@@ -55,33 +55,33 @@ instance Resolve QuantityData where type ResolvedValue QuantityData = QuantityValue - resolve _ QuantityData {value = Just value+ resolve _ _ QuantityData {value = Just value , unit = Just unit , aproduct = aproduct}- = Just $ simple unit value aproduct+ = Just (simple unit value aproduct, False) - resolve _ QuantityData {value = Nothing+ resolve _ _ QuantityData {value = Nothing , unit = Just unit , aproduct = aproduct , minValue = Just from , maxValue = Just to}- = Just $ between unit (from, to) aproduct+ = Just (between unit (from, to) aproduct, False) - resolve _ QuantityData {value = Nothing+ resolve _ _ QuantityData {value = Nothing , unit = Just unit , aproduct = aproduct , minValue = Just from , maxValue = Nothing}- = Just $ above unit from aproduct+ = Just (above unit from aproduct, False) - resolve _ QuantityData {value = Nothing+ resolve _ _ QuantityData {value = Nothing , unit = Just unit , aproduct = aproduct , minValue = Nothing , maxValue = Just to}- = Just $ under unit to aproduct+ = Just (under unit to aproduct, False) - resolve _ _ = Nothing+ resolve _ _ _ = Nothing data IntervalDirection = Above | Under deriving (Eq, Generic, Hashable, Ord, Show, NFData)
Duckling/Ranking/Classifiers.hs view
@@ -45,6 +45,7 @@ import qualified Duckling.Ranking.Classifiers.RO_XX as RO_XXClassifiers import qualified Duckling.Ranking.Classifiers.RU_XX as RU_XXClassifiers import qualified Duckling.Ranking.Classifiers.SV_XX as SV_XXClassifiers+import qualified Duckling.Ranking.Classifiers.TA_XX as TA_XXClassifiers import qualified Duckling.Ranking.Classifiers.TR_XX as TR_XXClassifiers import qualified Duckling.Ranking.Classifiers.UK_XX as UK_XXClassifiers import qualified Duckling.Ranking.Classifiers.VI_XX as VI_XXClassifiers@@ -82,6 +83,7 @@ classifiers (Locale RO _) = RO_XXClassifiers.classifiers classifiers (Locale RU _) = RU_XXClassifiers.classifiers classifiers (Locale SV _) = SV_XXClassifiers.classifiers+classifiers (Locale TA _) = TA_XXClassifiers.classifiers classifiers (Locale TR _) = TR_XXClassifiers.classifiers classifiers (Locale UK _) = UK_XXClassifiers.classifiers classifiers (Locale VI _) = VI_XXClassifiers.classifiers
Duckling/Ranking/Classifiers/DE_XX.hs view
@@ -35,11 +35,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("integer (numeric)", Classifier{okData =- ClassData{prior = -0.9246589815446716, unseen = -4.795790545596741,+ ClassData{prior = -0.921320080279157, unseen = -4.795790545596741, likelihoods = HashMap.fromList [("", 0.0)], n = 119}, koData =- ClassData{prior = -0.5052854433903752, unseen = -5.209486152841421,- likelihoods = HashMap.fromList [("", 0.0)], n = 181}}),+ ClassData{prior = -0.507486722500476, unseen = -5.204006687076795,+ likelihoods = HashMap.fromList [("", 0.0)], n = 180}}), ("exactly <time-of-day>", Classifier{okData = ClassData{prior = 0.0, unseen = -2.3025850929940455,@@ -52,13 +52,6 @@ koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("<hour-of-day> <half> (as relative minutes)", Classifier{okData = ClassData{prior = -infinity, unseen = -1.0986122886681098,@@ -216,6 +209,13 @@ ("<time-of-day> am|pm", -1.9095425048844386), ("hour", -1.349926716949016), ("minute", -2.1972245773362196)], n = 8}}),+ ("Neujahr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("absorption of , after named day", Classifier{okData = ClassData{prior = -7.410797215372185e-2,@@ -301,6 +301,13 @@ [("hh:mmtime-of-day (latent)", -1.0986122886681098), ("minutehour", -1.0986122886681098)], n = 1}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("between <datetime> and <datetime> (interval)", Classifier{okData = ClassData{prior = -0.6931471805599453,@@ -365,6 +372,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("Valentinstag",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("hour (grain)", Classifier{okData = ClassData{prior = -0.15415067982725836,@@ -391,285 +405,286 @@ n = 1}}), ("intersect", Classifier{okData =- ClassData{prior = -0.2639842810219578, unseen = -6.92951677076365,+ ClassData{prior = -0.26452876747706405,+ unseen = -6.926577033222725, likelihoods = HashMap.fromList- [("Samstag<time-of-day> o'clock", -6.23539063760472),- ("hourday", -4.982627669109352),- ("<datetime> - <datetime> (interval)year", -4.982627669109352),- ("dayhour", -2.571828991475074),- ("daymonth", -3.167337702471103),+ [("Samstag<time-of-day> o'clock", -6.2324480165505225),+ ("hourday", -4.979685048055154),+ ("<datetime> - <datetime> (interval)year", -4.979685048055154),+ ("dayhour", -2.568886370420876),+ ("daymonth", -3.1879255788270995), ("<day-of-month>(ordinal) <named-month> year<time-of-day> o'clock",- -6.23539063760472),- ("monthyear", -4.5306425453662955),- ("yearhour", -6.23539063760472),- ("Juliintersect", -6.23539063760472),- ("intersect<time-of-day> o'clock", -4.095324474108449),- ("christmasyear", -6.23539063760472),- ("after lunchat <time-of-day>", -6.23539063760472),+ -6.2324480165505225),+ ("monthyear", -4.527699924312097),+ ("yearhour", -6.2324480165505225),+ ("Juliintersect", -6.2324480165505225),+ ("intersect<time-of-day> o'clock", -4.092381853054252),+ ("after lunchat <time-of-day>", -6.2324480165505225), ("absorption of , after named daymm/dd/yyyy",- -6.23539063760472),- ("intersectJuli", -5.5422434570447745),- ("<day-of-month> (ordinal)Dienstag", -6.23539063760472),- ("intersect by 'of', 'from', 'syear", -5.829925529496556),- ("<time-of-day> am|pmintersect", -5.136778348936611),- ("<day-of-month> (ordinal)September", -5.829925529496556),- ("intersect<time> <part-of-day>", -4.155949095924885),- ("<time-of-day> o'clockafter lunch", -5.5422434570447745),- ("<day-of-month> (ordinal)Mittwoch", -6.23539063760472),- ("Montagthis <cycle>", -6.23539063760472),+ -6.2324480165505225),+ ("intersectJuli", -5.539300835990577),+ ("<day-of-month> (ordinal)Dienstag", -6.2324480165505225),+ ("intersect by 'of', 'from', 'syear", -5.826982908442359),+ ("<time-of-day> am|pmintersect", -5.133835727882413),+ ("<day-of-month> (ordinal)September", -5.826982908442359),+ ("intersect<time> <part-of-day>", -4.153006474870687),+ ("<time-of-day> o'clockafter lunch", -5.539300835990577),+ ("<day-of-month> (ordinal)Mittwoch", -6.2324480165505225),+ ("Montagthis <cycle>", -6.2324480165505225), ("<time> <part-of-day><time-of-day> o'clock",- -6.23539063760472),- ("Oktoberyear", -5.136778348936611),- ("today<time-of-day> o'clock", -6.23539063760472),- ("<time-of-day> o'clockon <date>", -5.829925529496556),- ("<time-of-day> am|pmintersect by ','", -5.5422434570447745),- ("intersect by ','year", -5.136778348936611),- ("on <date><time-of-day> o'clock", -6.23539063760472),- ("exactly <time-of-day>tomorrow", -5.829925529496556),- ("mm/dd<time-of-day> o'clock", -6.23539063760472),- ("monthhour", -5.829925529496556),+ -6.2324480165505225),+ ("Oktoberyear", -5.133835727882413),+ ("today<time-of-day> o'clock", -6.2324480165505225),+ ("<time-of-day> o'clockon <date>", -5.826982908442359),+ ("<time-of-day> am|pmintersect by ','", -5.539300835990577),+ ("intersect by ','year", -5.133835727882413),+ ("on <date><time-of-day> o'clock", -6.2324480165505225),+ ("exactly <time-of-day>tomorrow", -5.826982908442359),+ ("mm/dd<time-of-day> o'clock", -6.2324480165505225),+ ("monthhour", -5.826982908442359), ("on <date>between <datetime> and <datetime> (interval)",- -6.23539063760472),- ("last <day-of-week> of <time>year", -6.23539063760472),- ("hourmonth", -5.829925529496556),- ("todayat <time-of-day>", -5.5422434570447745),- ("mm/ddabout <time-of-day>", -5.829925529496556),+ -6.2324480165505225),+ ("last <day-of-week> of <time>year", -6.2324480165505225),+ ("hourmonth", -5.826982908442359),+ ("todayat <time-of-day>", -5.539300835990577),+ ("mm/ddabout <time-of-day>", -5.826982908442359), ("Donnerstagfrom <datetime> - <datetime> (interval)",- -5.829925529496556),+ -5.826982908442359), ("on <date>between <time-of-day> and <time-of-day> (interval)",- -6.23539063760472),- ("on <date>at <time-of-day>", -5.829925529496556),- ("dayday", -3.0573368072567746),- ("<time> <part-of-day>at <time-of-day>", -5.829925529496556),+ -6.2324480165505225),+ ("on <date>at <time-of-day>", -5.826982908442359),+ ("dayday", -3.054394186202577),+ ("<time> <part-of-day>at <time-of-day>", -5.826982908442359), ("<time-of-day> am|pmabsorption of , after named day",- -6.23539063760472),- ("about <time-of-day>on <date>", -6.23539063760472),+ -6.2324480165505225),+ ("about <time-of-day>on <date>", -6.2324480165505225), ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",- -5.829925529496556),- ("<day-of-month> (ordinal)intersect", -5.136778348936611),- ("hourhour", -3.7096619932964647),- ("hh:mmintersect by ','", -4.982627669109352),+ -5.826982908442359),+ ("<day-of-month> (ordinal)intersect", -5.133835727882413),+ ("hourhour", -3.7067193722422673),+ ("hh:mmintersect by ','", -4.979685048055154), ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",- -5.5422434570447745),- ("Dienstagthis <cycle>", -6.23539063760472),- ("<part-of-day> of <time>Februar", -5.829925529496556),- ("dayyear", -3.317619905520441),- ("Mittwochthis <cycle>", -6.23539063760472),+ -5.539300835990577),+ ("Dienstagthis <cycle>", -6.2324480165505225),+ ("<part-of-day> of <time>Februar", -5.826982908442359),+ ("dayyear", -3.3146772844662435),+ ("Mittwochthis <cycle>", -6.2324480165505225), ("<time-of-day> o'clockin|during the <part-of-day>",- -5.136778348936611),- ("tomorrow<time-of-day> o'clock", -6.23539063760472),- ("<time-of-day> o'clocktomorrow", -5.5422434570447745),+ -5.133835727882413),+ ("tomorrow<time-of-day> o'clock", -6.2324480165505225),+ ("<time-of-day> o'clocktomorrow", -5.539300835990577), ("<day-of-month>(ordinal) <named-month>year",- -5.829925529496556),+ -5.826982908442359), ("half <integer> (german style hour-of-day)after lunch",- -6.23539063760472),+ -6.2324480165505225), ("absorption of , after named day<day-of-month>(ordinal) <named-month>",- -4.982627669109352),- ("hourminute", -5.5422434570447745),- ("the <day-of-month> (ordinal)Juli", -6.23539063760472),+ -4.979685048055154),+ ("hourminute", -5.539300835990577),+ ("the <day-of-month> (ordinal)Juli", -6.2324480165505225), ("on <date><day-of-month>(ordinal) <named-month>",- -5.829925529496556),- ("minutemonth", -3.5612419881781916),- ("minutehour", -3.984098838998225),+ -5.826982908442359),+ ("minutemonth", -3.558299367123994),+ ("minutehour", -3.9811562179440276), ("at <time-of-day>in|during the <part-of-day>",- -5.319099905730565),+ -5.316157284676367), ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",- -5.829925529496556),+ -5.826982908442359), ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -5.136778348936611),+ -5.133835727882413), ("<day-of-month>(ordinal) <named-month> year<time> <part-of-day>",- -6.23539063760472),+ -6.2324480165505225), ("<hour-of-day> <integer> (as relative minutes)after lunch",- -6.23539063760472),- ("Donnerstag<time> timezone", -5.829925529496556),- ("Samstagat <time-of-day>", -5.829925529496556),- ("<time-of-day> am|pmSamstag", -6.23539063760472),+ -6.2324480165505225),+ ("Donnerstag<time> timezone", -5.826982908442359),+ ("Samstagat <time-of-day>", -5.826982908442359),+ ("<time-of-day> am|pmSamstag", -6.2324480165505225), ("intersect<day-of-month>(ordinal) <named-month>",- -4.84909627648483),- ("this <part-of-day><time-of-day> o'clock", -6.23539063760472),+ -4.846153655430633),+ ("this <part-of-day><time-of-day> o'clock",+ -6.2324480165505225), ("<day-of-month>(ordinal) <named-month>intersect",- -6.23539063760472),- ("hh:mmintersect", -3.793043602235516),- ("Donnerstaghh:mm", -6.23539063760472),- ("<day-of-month> (ordinal)Juli", -5.5422434570447745),- ("intersect by ','intersect", -4.982627669109352),- ("intersect by 'of', 'from', 'sJuli", -6.23539063760472),- ("<day-of-month> (ordinal)Oktober", -6.23539063760472),+ -6.2324480165505225),+ ("hh:mmintersect", -3.790100981181318),+ ("Donnerstaghh:mm", -6.2324480165505225),+ ("Weihnachtenyear", -6.2324480165505225),+ ("<day-of-month> (ordinal)Juli", -5.539300835990577),+ ("intersect by ','intersect", -4.979685048055154),+ ("intersect by 'of', 'from', 'sJuli", -6.2324480165505225), ("half <integer> (german style hour-of-day)in|during the <part-of-day>",- -5.829925529496556),+ -5.826982908442359), ("from <datetime> - <datetime> (interval)year",- -5.5422434570447745),- ("at <time-of-day>intersect", -4.443631168376665),+ -5.539300835990577),+ ("at <time-of-day>intersect", -4.440688547322468), ("on <date>from <time-of-day> - <time-of-day> (interval)",- -5.829925529496556),+ -5.826982908442359), ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",- -6.23539063760472),+ -6.2324480165505225), ("absorption of , after named day<day-of-month> (ordinal)",- -4.982627669109352),+ -4.979685048055154), ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",- -6.23539063760472),- ("dayminute", -3.984098838998225),+ -6.2324480165505225),+ ("dayminute", -3.9811562179440276), ("on <date>from <datetime> - <datetime> (interval)",- -6.23539063760472),- ("Mittwochnext <cycle>", -6.23539063760472),+ -6.2324480165505225),+ ("Mittwochnext <cycle>", -6.2324480165505225), ("Donnerstagbetween <datetime> and <datetime> (interval)",- -6.23539063760472),+ -6.2324480165505225), ("<time> <part-of-day>from <datetime> - <datetime> (interval)",- -6.23539063760472),- ("intersectyear", -4.443631168376665),- ("on <date>intersect", -5.829925529496556),- ("on <date><day-of-month> (ordinal)", -5.829925529496556),- ("intersectSeptember", -3.4945506136795195),- ("<ordinal> <cycle> of <time>year", -6.23539063760472),- ("minuteday", -2.2557089837027595),+ -6.2324480165505225),+ ("intersectyear", -4.440688547322468),+ ("on <date>intersect", -5.826982908442359),+ ("on <date><day-of-month> (ordinal)", -5.826982908442359),+ ("intersectSeptember", -3.4916079926253216),+ ("<ordinal> <cycle> of <time>year", -6.2324480165505225),+ ("minuteday", -2.252766362648562), ("absorption of , after named dayintersect",- -3.8374953648063497),- ("intersect by ','September", -4.731313240828446),- ("year<time-of-day> o'clock", -6.23539063760472),- ("Juliyear", -5.829925529496556),- ("at <time-of-day>intersect by ','", -5.5422434570447745),- ("hh:mmabsorption of , after named day", -5.829925529496556),- ("intersect by ','<time> <part-of-day>", -5.319099905730565),- ("hh:mmon <date>", -3.793043602235516),+ -3.8345527437521523),+ ("intersect by ','September", -4.728370619774249),+ ("year<time-of-day> o'clock", -6.2324480165505225),+ ("Juliyear", -5.826982908442359),+ ("at <time-of-day>intersect by ','", -5.539300835990577),+ ("hh:mmabsorption of , after named day", -5.826982908442359),+ ("intersect by ','<time> <part-of-day>", -5.316157284676367),+ ("hh:mmon <date>", -3.790100981181318), ("at <time-of-day>absorption of , after named day",- -6.23539063760472),- ("until <time-of-day>after lunch", -6.23539063760472),- ("mm/ddyear", -5.829925529496556),- ("intersect by ','<time-of-day> o'clock", -5.319099905730565),- ("intersect<day-of-month> (ordinal)", -4.84909627648483),- ("absorption of , after named daymm/dd", -6.23539063760472),- ("on <date>September", -5.319099905730565),- ("Septemberyear", -5.829925529496556),+ -6.2324480165505225),+ ("until <time-of-day>after lunch", -6.2324480165505225),+ ("mm/ddyear", -5.826982908442359),+ ("intersect by ','<time-of-day> o'clock", -5.316157284676367),+ ("intersect<day-of-month> (ordinal)", -4.846153655430633),+ ("absorption of , after named daymm/dd", -6.2324480165505225),+ ("on <date>September", -5.316157284676367),+ ("Septemberyear", -5.826982908442359), ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",- -5.5422434570447745),- ("at <time-of-day>on <date>", -4.363588460703129),- ("intersectintersect", -4.095324474108449),- ("<day-of-month> (ordinal)Februar", -5.136778348936611),- ("dayweek", -5.136778348936611),- ("intersect by ','Juli", -5.5422434570447745),+ -5.539300835990577),+ ("at <time-of-day>on <date>", -4.360645839648932),+ ("intersectintersect", -4.092381853054252),+ ("<day-of-month> (ordinal)Februar", -5.133835727882413),+ ("dayweek", -5.133835727882413),+ ("intersect by ','Juli", -5.539300835990577), ("absorption of , after named daythe <day-of-month> (ordinal)",- -6.23539063760472),- ("weekyear", -5.829925529496556),- ("hh:mmin|during the <part-of-day>", -5.319099905730565),- ("Marzyear", -6.23539063760472),- ("tomorrowat <time-of-day>", -5.829925529496556),+ -6.2324480165505225),+ ("weekyear", -5.826982908442359),+ ("hh:mmin|during the <part-of-day>", -5.316157284676367),+ ("Marzyear", -6.2324480165505225),+ ("tomorrowat <time-of-day>", -5.826982908442359), ("<hour-of-day> <integer> (as relative minutes)on <date>",- -6.23539063760472),+ -6.2324480165505225), ("Donnerstag<time-of-day> - <time-of-day> (interval)",- -6.23539063760472),+ -6.2324480165505225), ("Donnerstag<datetime> - <datetime> (interval)",- -6.23539063760472),- ("Sonntaglast <cycle>", -6.23539063760472),- ("at <time-of-day>tomorrow", -6.23539063760472),+ -6.2324480165505225),+ ("Sonntaglast <cycle>", -6.2324480165505225),+ ("at <time-of-day>tomorrow", -6.2324480165505225), ("about <time-of-day>in|during the <part-of-day>",- -5.829925529496556),+ -5.826982908442359), ("half <integer> (german style hour-of-day)on <date>",- -6.23539063760472),- ("this <part-of-day>at <time-of-day>", -5.829925529496556),- ("<datetime> - <datetime> (interval)Juli", -5.829925529496556),+ -6.2324480165505225),+ ("this <part-of-day>at <time-of-day>", -5.826982908442359),+ ("<datetime> - <datetime> (interval)Juli", -5.826982908442359), ("after lunch<hour-of-day> <integer> (as relative minutes)",- -5.829925529496556),- ("<day-of-month> (ordinal)Marz", -6.23539063760472),- ("last <cycle> of <time>year", -5.829925529496556),+ -5.826982908442359),+ ("<day-of-month> (ordinal)Marz", -6.2324480165505225),+ ("last <cycle> of <time>year", -5.826982908442359), ("<named-month> <day-of-month> (non ordinal)year",- -6.23539063760472),+ -6.2324480165505225), ("<day-of-month> (non ordinal) <named-month>year",- -6.23539063760472)],- n = 427},+ -6.2324480165505225)],+ n = 426}, koData =- ClassData{prior = -1.4609558898889103, unseen = -6.05443934626937,+ ClassData{prior = -1.4591557093847622, unseen = -6.052089168924417, likelihoods = HashMap.fromList [("Juli<day-of-month> (non ordinal) <named-month>",- -5.358941988364472),+ -5.356586274672012), ("absorption of , after named daythe <day-of-month> (non ordinal)",- -5.358941988364472),- ("<datetime> - <datetime> (interval)year", -5.358941988364472),- ("dayhour", -4.665794807804526),+ -5.356586274672012),+ ("<datetime> - <datetime> (interval)year", -5.356586274672012),+ ("dayhour", -4.663439094112067), ("<named-month> <day-of-month> (non ordinal)Juli",- -5.358941988364472),- ("daymonth", -3.48713981146288),- ("monthday", -4.953476880256307),- ("monthyear", -5.358941988364472),- ("yearhour", -5.358941988364472),- ("after lunchat <time-of-day>", -4.953476880256307),- ("mm/dduntil <time-of-day>", -4.953476880256307),- ("until <time-of-day>year", -4.953476880256307),- ("<day-of-month> (ordinal)Dienstag", -4.953476880256307),- ("absorption of , after named dayFebruar", -4.260329699696362),- ("on <date>Februar", -5.358941988364472),- ("intersect by 'of', 'from', 'syear", -4.665794807804526),- ("<time-of-day> am|pmintersect", -3.654193896126046),- ("intersect<time> <part-of-day>", -5.358941988364472),- ("<time-of-day> o'clockafter lunch", -5.358941988364472),- ("<day-of-month> (ordinal)Mittwoch", -5.358941988364472),- ("after lunch<time-of-day> o'clock", -5.358941988364472),- ("absorption of , after named dayhh:mm", -5.358941988364472),- ("<time-of-day> am|pmintersect by ','", -4.106179019869104),+ -5.356586274672012),+ ("daymonth", -3.484784097770421),+ ("monthday", -4.951121166563848),+ ("monthyear", -5.356586274672012),+ ("yearhour", -5.356586274672012),+ ("after lunchat <time-of-day>", -4.951121166563848),+ ("mm/dduntil <time-of-day>", -4.951121166563848),+ ("until <time-of-day>year", -4.951121166563848),+ ("<day-of-month> (ordinal)Dienstag", -4.951121166563848),+ ("absorption of , after named dayFebruar", -4.257973986003902),+ ("on <date>Februar", -5.356586274672012),+ ("intersect by 'of', 'from', 'syear", -4.663439094112067),+ ("<time-of-day> am|pmintersect", -3.651838182433587),+ ("intersect<time> <part-of-day>", -5.356586274672012),+ ("<time-of-day> o'clockafter lunch", -5.356586274672012),+ ("<day-of-month> (ordinal)Mittwoch", -5.356586274672012),+ ("after lunch<time-of-day> o'clock", -5.356586274672012),+ ("absorption of , after named dayhh:mm", -5.356586274672012),+ ("<time-of-day> am|pmintersect by ','", -4.103823306176644), ("<time-of-day> o'clock<time> <part-of-day>",- -4.442651256490317),- ("<time-of-day> am|pmFreitag", -4.953476880256307),- ("mm/ddhh:mm", -4.442651256490317),- ("monthhour", -5.358941988364472),+ -4.440295542797857),+ ("<time-of-day> am|pmFreitag", -4.951121166563848),+ ("mm/ddhh:mm", -4.440295542797857),+ ("monthhour", -5.356586274672012), ("on <date>between <datetime> and <datetime> (interval)",- -5.358941988364472),- ("todayat <time-of-day>", -5.358941988364472),+ -5.356586274672012),+ ("todayat <time-of-day>", -5.356586274672012), ("Donnerstagfrom <datetime> - <datetime> (interval)",- -4.953476880256307),+ -4.951121166563848), ("on <date>between <time-of-day> and <time-of-day> (interval)",- -5.358941988364472),- ("dayday", -3.972647627244581),+ -5.356586274672012),+ ("dayday", -3.970291913552122), ("<time-of-day> am|pmabsorption of , after named day",- -4.953476880256307),- ("hourhour", -3.8548645915881976),+ -4.951121166563848),+ ("hourhour", -3.8525088778957386), ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",- -4.665794807804526),- ("Donnerstagafter <time-of-day>", -5.358941988364472),- ("dayyear", -3.2795004466846356),- ("minutemonth", -3.48713981146288),- ("Aprilyear", -5.358941988364472),- ("Dienstagafter <time-of-day>", -5.358941988364472),+ -4.663439094112067),+ ("Donnerstagafter <time-of-day>", -5.356586274672012),+ ("dayyear", -3.2771447329921766),+ ("minutemonth", -3.484784097770421),+ ("Aprilyear", -5.356586274672012),+ ("Dienstagafter <time-of-day>", -5.356586274672012), ("intersect<day-of-month>(ordinal) <named-month>",- -4.665794807804526),- ("Donnerstaghh:mm", -4.953476880256307),- ("<day-of-month> (ordinal)Juli", -4.953476880256307),- ("<day-of-month> (ordinal)hh:mm", -4.442651256490317),+ -4.663439094112067),+ ("Donnerstaghh:mm", -4.951121166563848),+ ("<day-of-month> (ordinal)Juli", -4.951121166563848),+ ("<day-of-month> (ordinal)hh:mm", -4.440295542797857), ("<named-month> <day-of-month> (non ordinal)August",- -5.358941988364472),+ -5.356586274672012), ("August<day-of-month> (non ordinal) <named-month>",- -5.358941988364472),- ("at <time-of-day>intersect", -4.260329699696362),+ -5.356586274672012),+ ("at <time-of-day>intersect", -4.257973986003902), ("on <date>from <time-of-day> - <time-of-day> (interval)",- -4.953476880256307),+ -4.951121166563848), ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",- -5.358941988364472),- ("dayminute", -2.6847933389379426),+ -5.356586274672012),+ ("dayminute", -2.6824376252454836), ("on <date>from <datetime> - <datetime> (interval)",- -5.358941988364472),+ -5.356586274672012), ("Donnerstagbetween <datetime> and <datetime> (interval)",- -5.358941988364472),- ("until <time-of-day>Juli", -5.358941988364472),- ("intersectSeptember", -3.7495040759303713),- ("minuteday", -2.3632097148104805),- ("intersect by ','September", -4.665794807804526),- ("at <time-of-day>intersect by ','", -4.665794807804526),- ("at <time-of-day>Freitag", -5.358941988364472),+ -5.356586274672012),+ ("until <time-of-day>Juli", -5.356586274672012),+ ("intersectSeptember", -3.747148362237912),+ ("minuteday", -2.3608540011180215),+ ("intersect by ','September", -4.663439094112067),+ ("at <time-of-day>intersect by ','", -4.663439094112067),+ ("at <time-of-day>Freitag", -5.356586274672012), ("at <time-of-day>absorption of , after named day",- -5.358941988364472),- ("year<time> <part-of-day>", -5.358941988364472),- ("mm/ddyear", -3.8548645915881976),- ("intersect<day-of-month> (ordinal)", -4.665794807804526),+ -5.356586274672012),+ ("year<time> <part-of-day>", -5.356586274672012),+ ("mm/ddyear", -3.8525088778957386),+ ("intersect<day-of-month> (ordinal)", -4.663439094112067), ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",- -4.953476880256307),- ("intersectintersect", -4.665794807804526),- ("Donnerstag<part-of-day> of <time>", -5.358941988364472),- ("<day-of-month> (ordinal)April", -5.358941988364472),+ -4.951121166563848),+ ("intersectintersect", -4.663439094112067),+ ("Donnerstag<part-of-day> of <time>", -5.356586274672012),+ ("<day-of-month> (ordinal)April", -5.356586274672012), ("Donnerstag<time-of-day> - <time-of-day> (interval)",- -5.358941988364472),- ("after <time-of-day>year", -5.358941988364472),- ("on <date>after <time-of-day>", -5.358941988364472),- ("tomorrownoon", -5.358941988364472)],+ -5.356586274672012),+ ("after <time-of-day>year", -5.356586274672012),+ ("on <date>after <time-of-day>", -5.356586274672012),+ ("tomorrownoon", -5.356586274672012)], n = 129}}), ("<ordinal> <cycle> of <time>", Classifier{okData =@@ -730,6 +745,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("Muttertag",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.15415067982725836,@@ -778,6 +800,13 @@ [("hh:mmtime-of-day (latent)", -1.0986122886681098), ("minutehour", -1.0986122886681098)], n = 3}}),+ ("Silvester",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("year (latent)", Classifier{okData = ClassData{prior = -infinity, unseen = -0.6931471805599453,@@ -828,6 +857,13 @@ ClassData{prior = -2.4849066497880004, unseen = -1.0986122886681098, likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Weihnachten",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("quarter to|till|before <integer> (hour-of-day)", Classifier{okData = ClassData{prior = 0.0, unseen = -1.6094379124341003,@@ -881,6 +917,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("Vatertag",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("week (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -3.332204510175204,@@ -908,13 +951,6 @@ [("hourhour", -1.3862943611198906), ("morningtime-of-day (latent)", -1.3862943611198906)], n = 1}}),- ("valentine's day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("Sonntag", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -961,24 +997,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<day-of-month>(ordinal) <named-month>", Classifier{okData =- ClassData{prior = -0.2231435513142097,- unseen = -3.4657359027997265,+ ClassData{prior = -0.2411620568168881, unseen = -3.367295829986474, likelihoods = HashMap.fromList- [("ordinal (digits)Juli", -2.0476928433652555),- ("ordinal (digits)September", -2.3353749158170367),- ("ordinal (digits)Oktober", -2.740840023925201),- ("month", -0.8690378470236094),- ("ordinal (digits)Februar", -1.6422277352570913),- ("ordinals (first..19th)Marz", -2.740840023925201)],- n = 12},+ [("ordinal (digits)Juli", -1.9459101490553135),+ ("ordinal (digits)September", -2.2335922215070942),+ ("month", -0.8472978603872037),+ ("ordinal (digits)Februar", -1.540445040947149),+ ("ordinals (first..19th)Marz", -2.639057329615259)],+ n = 11}, koData =- ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+ ClassData{prior = -1.540445040947149, unseen = -2.5649493574615367, likelihoods = HashMap.fromList- [("ordinal (digits)Juli", -1.466337068793427),- ("ordinal (digits)April", -1.8718021769015913),- ("month", -1.1786549963416462)],+ [("ordinal (digits)Juli", -1.3862943611198906),+ ("ordinal (digits)April", -1.791759469228055),+ ("month", -1.0986122886681098)], n = 3}}), ("numbers prefix with -, negative or minus", Classifier{okData =@@ -1006,13 +1040,6 @@ [("after lunch", -1.252762968495368), ("hour", -1.252762968495368)], n = 1}}),- ("new year's eve",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("tomorrow", Classifier{okData = ClassData{prior = -0.13353139262452263,@@ -1022,13 +1049,6 @@ ClassData{prior = -2.0794415416798357, unseen = -1.0986122886681098, likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("<time> after next", Classifier{okData = ClassData{prior = 0.0, unseen = -2.0794415416798357,@@ -1245,8 +1265,8 @@ ClassData{prior = 0.0, unseen = -2.0794415416798357, likelihoods = HashMap.fromList- [("a <unit-of-duration>christmas", -1.252762968495368),- ("<integer> <unit-of-duration>christmas", -1.252762968495368),+ [("<integer> <unit-of-duration>Weihnachten", -1.252762968495368),+ ("a <unit-of-duration>Weihnachten", -1.252762968495368), ("yearday", -0.8472978603872037)], n = 2}, koData =@@ -1273,8 +1293,8 @@ likelihoods = HashMap.fromList [], n = 0}}), ("Oktober", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),@@ -1505,15 +1525,14 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<day-of-month> (ordinal)", Classifier{okData =- ClassData{prior = -0.5520685823000397,- unseen = -3.0910424533583156,+ ClassData{prior = -0.5753641449035618, unseen = -3.044522437723423, likelihoods = HashMap.fromList- [("ordinals (first..19th)", -1.6582280766035324),- ("ordinal (digits)", -0.2113090936672069)],- n = 19},+ [("ordinals (first..19th)", -1.6094379124341003),+ ("ordinal (digits)", -0.2231435513142097)],+ n = 18}, koData =- ClassData{prior = -0.8574502318512216, unseen = -2.833213344056216,+ ClassData{prior = -0.8266785731844679, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("ordinals (first..19th)", -0.8266785731844679),@@ -1627,13 +1646,6 @@ ("day", -1.791759469228055), ("day (grain)", -1.791759469228055)], n = 2}}),- ("christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("Tag der Deutschen Einheit", Classifier{okData = ClassData{prior = 0.0, unseen = -1.0986122886681098,@@ -1641,13 +1653,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("new year's day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData = ClassData{prior = 0.0, unseen = -4.143134726391533,@@ -1677,13 +1682,6 @@ koData = ClassData{prior = -infinity, unseen = -3.1354942159291497, likelihoods = HashMap.fromList [], n = 0}}),- ("halloween day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("by the end of <time>", Classifier{okData = ClassData{prior = -infinity, unseen = -1.6094379124341003,@@ -1823,9 +1821,9 @@ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055, likelihoods = HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..19th)Dienstagchristmas",- -0.916290731874155)],+ [("ordinals (first..19th)DienstagWeihnachten",+ -0.916290731874155),+ ("dayday", -0.916290731874155)], n = 1}}), ("<named-month> <day-of-month> (non ordinal)", Classifier{okData =@@ -1893,10 +1891,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = -0.2876820724517809, unseen = -2.995732273553991,- likelihoods = HashMap.fromList [("", 0.0)], n = 18},+ ClassData{prior = -0.3022808718729337,+ unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17}, koData =- ClassData{prior = -1.3862943611198906,+ ClassData{prior = -1.3437347467010947, unseen = -2.0794415416798357, likelihoods = HashMap.fromList [("", 0.0)], n = 6}}), ("quarter (grain)",@@ -1969,10 +1968,10 @@ HashMap.fromList [("<time-of-day> o'clock", -2.3025850929940455), ("intersect", -2.3025850929940455),+ ("Weihnachten", -1.8971199848858813), ("day", -1.6094379124341003), ("time-of-day (latent)", -2.3025850929940455), ("hh:mm", -2.3025850929940455), ("hour", -1.8971199848858813),- ("christmas", -1.8971199848858813), ("minute", -2.3025850929940455)], n = 6}}), ("day (grain)",
Duckling/Ranking/Classifiers/EN_CA.hs view
@@ -21,2389 +21,3102 @@ classifiers :: Classifiers classifiers = HashMap.fromList- [("<integer> to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("integer (numeric)noon|midnight|EOD|end of day",- -0.916290731874155),- ("hour", -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.13353139262452263,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hour", -0.7537718023763802),- ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],- n = 7}}),- ("<time> timezone",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -1.824549292051046),- ("<time-of-day> am|pm", -1.6422277352570913),- ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),- ("minute", -1.824549292051046)],- n = 13},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thursday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (numeric)",- Classifier{okData =- ClassData{prior = -0.7765287894989963, unseen = -5.225746673713201,- likelihoods = HashMap.fromList [("", 0.0)], n = 184},- koData =- ClassData{prior = -0.616186139423817, unseen = -5.384495062789089,- likelihoods = HashMap.fromList [("", 0.0)], n = 216}}),- ("<duration> hence|ago",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.784189633918261,- likelihoods =- HashMap.fromList- [("week", -1.563975538357343), ("day", -1.8152899666382492),- ("year", -2.662587827025453),- ("<integer> <unit-of-duration>", -1.0531499145913523),- ("a <unit-of-duration>", -2.662587827025453),- ("month", -2.662587827025453),- ("fortnight", -2.662587827025453)],- n = 18},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("noon|midnight|EOD|end of day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<cycle> after|before <time>",- Classifier{okData =- ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.6094379124341003),- ("dayday", -1.0986122886681098),- ("day (grain)yesterday", -1.6094379124341003)],- n = 4},- koData =- ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("dayhour", -1.466337068793427),- ("year (grain)Christmas", -1.8718021769015913),- ("day (grain)intersect", -1.466337068793427),- ("yearday", -1.8718021769015913)],- n = 3}}),- ("Martin Luther King's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (20..90)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("mm/yyyy",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("integer after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("hour", -0.8109302162163288),- ("integer (numeric)time-of-day (latent)", -1.0986122886681098),- ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal or number) <named-month>",- Classifier{okData =- ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("ordinal (digits)December", -2.1400661634962708),- ("ordinal (digits)February", -2.1400661634962708),- ("integer (numeric)April", -2.1400661634962708),- ("month", -1.4469189829363254)],- n = 3},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -3.4011973816621555,- likelihoods =- HashMap.fromList- [("ordinal (digits)October", -2.6741486494265287),- ("ordinal (digits)July", -2.6741486494265287),- ("integer (numeric)September", -2.268683541318364),- ("ordinal (digits)August", -2.6741486494265287),- ("integer (numeric)August", -2.6741486494265287),- ("ordinal (digits)April", -2.6741486494265287),- ("month", -1.0647107369924282),- ("integer (numeric)July", -2.268683541318364)],- n = 9}}),- ("<time> <part-of-day>",- Classifier{okData =- ClassData{prior = -9.844007281325252e-2,- unseen = -4.430816798843313,- likelihoods =- HashMap.fromList- [("<day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("dayhour", -1.5284688499004333),- ("Mondayearly morning", -3.3202283191284883),- ("time-of-day (latent)tonight", -3.3202283191284883),- ("hourhour", -2.339399066116762),- ("<time-of-day> o'clockin|during the <part-of-day>",- -3.7256934272366524),- ("todaypart of days", -3.7256934272366524),- ("minutehour", -2.627081138568543),- ("at <time-of-day>in|during the <part-of-day>",- -3.3202283191284883),- ("time-of-day (latent)this <part-of-day>", -3.7256934272366524),- ("Mondayin|during the <part-of-day>", -3.7256934272366524),- ("intersectpart of days", -3.7256934272366524),- ("intersectin|during the <part-of-day>", -3.7256934272366524),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -3.7256934272366524),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("tomorrowpart of days", -2.339399066116762),- ("hh:mmin|during the <part-of-day>", -3.0325462466767075),- ("time-of-day (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("hhmm (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("yesterdaypart of days", -3.7256934272366524),- ("Mondaypart of days", -3.7256934272366524)],- n = 29},- koData =- ClassData{prior = -2.367123614131617, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("yearhour", -2.740840023925201),- ("monthhour", -2.740840023925201),- ("hourhour", -2.740840023925201),- ("past year (latent)in|during the <part-of-day>",- -2.740840023925201),- ("Februaryin|during the <part-of-day>", -2.740840023925201),- ("time-of-day (latent)in|during the <part-of-day>",- -2.740840023925201)],- n = 3}}),- ("today",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd",- Classifier{okData =- ClassData{prior = -1.4271163556401458,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,- likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),- ("at <time-of-day>",- Classifier{okData =- ClassData{prior = -9.381875521765486e-2,- unseen = -4.90527477843843,- likelihoods =- HashMap.fromList- [("<time> timezone", -3.7992275112828016),- ("noon|midnight|EOD|end of day", -3.7992275112828016),- ("integer after|past <hour-of-day>", -3.7992275112828016),- ("half after|past <hour-of-day>", -4.204692619390966),- ("time-of-day (latent)", -1.7197859696029658),- ("hhmm (latent)", -3.5115454388310208),- ("<time-of-day> am|pm", -1.8067973465925955),- ("hh:mm", -3.288401887516811),- ("about|exactly <time-of-day>", -3.7992275112828016),- ("hour", -1.0911773101805915),- ("<time-of-day> sharp|exactly", -4.204692619390966),- ("minute", -2.0074680420547466)],- n = 61},- koData =- ClassData{prior = -2.412933150162911, unseen = -3.2188758248682006,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -1.2321436812926323),- ("hour", -1.2321436812926323)],- n = 6}}),- ("December",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("absorption of , after named day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("on <date>", -2.1972245773362196),- ("Wednesday", -2.6026896854443837),- ("Saturday", -2.6026896854443837),- ("Monday", -2.1972245773362196),- ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),- ("Sunday", -2.6026896854443837)],- n = 10},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("September",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("tonight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("last|past|next <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("week", -2.456735772821304), ("second", -2.639057329615259),- ("day", -2.3025850929940455), ("year", -2.639057329615259),- ("<integer> <unit-of-duration>", -0.7827593392496325),- ("hour", -2.639057329615259), ("month", -2.639057329615259),- ("minute", -2.639057329615259)],- n = 31},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("the ides of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("on <date>",- Classifier{okData =- ClassData{prior = -0.1670540846631662, unseen = -4.007333185232471,- likelihoods =- HashMap.fromList- [("Thursday", -1.791759469228055), ("mm/dd", -3.295836866004329),- ("absorption of , after named day", -2.890371757896165),- ("intersect", -2.890371757896165),- ("Saturday", -2.6026896854443837),- ("Friday", -3.295836866004329), ("day", -0.8979415932059586),- ("the <day-of-month> (ordinal)", -2.890371757896165),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -2.6026896854443837),- ("hour", -3.295836866004329)],- n = 22},- koData =- ClassData{prior = -1.8718021769015913,- unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("intersect", -1.791759469228055), ("day", -1.2809338454620642),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -1.791759469228055)],- n = 4}}),- ("integer (0..19)",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.784189633918261,- likelihoods = HashMap.fromList [("", 0.0)], n = 42},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),- ("between <time-of-day> and <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("minuteminute", -0.916290731874155),- ("hh:mmhh:mm", -0.916290731874155)],- n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -0.916290731874155),- ("minutehour", -0.916290731874155)],- n = 3}}),- ("Halloween",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),- ("Augustordinal (digits)integer (numeric)",- -1.6094379124341003),- ("month", -0.916290731874155),- ("Augustordinal (digits)ordinal (digits)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("October",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods = HashMap.fromList [("", 0.0)], n = 16},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from|since|after <time-of-day>",- Classifier{okData =- ClassData{prior = -1.5040773967762742, unseen = -4.02535169073515,- likelihoods =- HashMap.fromList- [("July", -3.3141860046725258),- ("time-of-day (latent)", -2.3978952727983707),- ("<time-of-day> am|pm", -2.3978952727983707),- ("hh:mm", -2.3978952727983707), ("hour", -1.8101086078962516),- ("month", -2.908720896564361), ("minute", -2.3978952727983707),- ("August", -3.3141860046725258)],- n = 14},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -4.836281906951478,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.7297014486341915),- ("week", -4.135166556742356),- ("<day-of-month> (ordinal or number) <named-month>",- -4.135166556742356),- ("today", -4.135166556742356),- ("intersect", -2.7488721956224653),- ("second", -4.135166556742356), ("now", -3.4420193761824103),- ("tomorrow", -3.7297014486341915),- ("this|last|next <cycle>", -4.135166556742356),- ("day", -1.995100393246085),- ("time-of-day (latent)", -4.135166556742356),- ("<time-of-day> am|pm", -3.7297014486341915),- ("nograin", -3.4420193761824103),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- -4.135166556742356),- ("Christmas", -3.4420193761824103),- ("hour", -2.8824035882469876),- ("<datetime> - <datetime> (interval)", -2.7488721956224653),- ("<time-of-day> - <time-of-day> (interval)",- -2.430418464503931),- ("<named-month> <day-of-month> (non ordinal)",- -3.7297014486341915),- ("minute", -1.6928195213731514),- ("right now", -4.135166556742356),- ("<month> dd-dd (interval)", -3.4420193761824103),- ("dd-dd <month> (interval)", -3.7297014486341915)],- n = 49}}),- ("month (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> more <unit-of-duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("integer (numeric)minute (grain)", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> o'clock",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("in|within|after <duration>",- Classifier{okData =- ClassData{prior = -4.652001563489282e-2,- unseen = -4.61512051684126,- likelihoods =- HashMap.fromList- [("week", -3.2188758248682006),- ("<integer> more <unit-of-duration>", -3.912023005428146),- ("three-quarters of an hour", -2.995732273553991),- ("<integer> + '\"", -3.2188758248682006),- ("number.number hours", -3.912023005428146),- ("second", -3.506557897319982), ("day", -3.2188758248682006),- ("half an hour", -2.995732273553991),- ("<integer> <unit-of-duration>", -1.6094379124341003),- ("a <unit-of-duration>", -2.995732273553991),- ("quarter of an hour", -2.995732273553991),- ("hour", -2.5257286443082556),- ("about|exactly <duration>", -3.912023005428146),- ("<integer> and an half hour", -3.912023005428146),- ("minute", -1.2729656758128873)],- n = 42},- koData =- ClassData{prior = -3.0910424533583156, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("quarter", -1.8971199848858813),- ("<integer> <unit-of-duration>", -2.3025850929940455),- ("a <unit-of-duration>", -2.3025850929940455)],- n = 2}}),- ("three-quarters of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Wednesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> + '\"",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half <integer> (UK style hour-of-day)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("July",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hour (grain)",- Classifier{okData =- ClassData{prior = -0.8209805520698302,- unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),- ("<ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -1.1786549963416462),- ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",- -1.466337068793427),- ("quarter", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.8109302162163288),- ("quarter", -0.8109302162163288)],- n = 3}}),- ("one twenty two",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("intersect",- Classifier{okData =- ClassData{prior = -0.4957877464014501, unseen = -6.293419278846481,- likelihoods =- HashMap.fromList- [("<datetime> - <datetime> (interval)on <date>",- -4.345658990503007),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -4.345658990503007),- ("hourday", -3.8936738667599493),- ("dayhour", -2.765208614942159),- ("daymonth", -4.90527477843843),- ("monthday", -5.19295685089021),- ("monthyear", -3.9889840465642745),- ("Tuesdaythe <day-of-month> (ordinal)", -5.598421958998375),- ("Christmasyear", -5.598421958998375),- ("from <datetime> - <datetime> (interval)July",- -5.598421958998375),- ("houryear", -5.598421958998375),- ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.90527477843843),- ("<time-of-day> am|pmintersect", -4.345658990503007),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -5.598421958998375),- ("Marchyear", -5.598421958998375),- ("<named-month>|<named-day> <day-of-month> (ordinal)year",- -5.19295685089021),- ("intersect<time-of-day> am|pm", -5.598421958998375),- ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.598421958998375),- ("monthhour", -5.19295685089021),- ("last <day-of-week> of <time>year", -5.598421958998375),- ("todayat <time-of-day>", -5.598421958998375),- ("Thursday<time> timezone", -3.8936738667599493),- ("this <time>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("dayday", -3.58351893845611),- ("Thanksgiving Dayyear", -4.499809670330265),- ("<time> <part-of-day>at <time-of-day>", -5.598421958998375),- ("Tuesdayin <named-month>", -5.598421958998375),- ("mm/ddat <time-of-day>", -5.598421958998375),- ("tonightat <time-of-day>", -5.598421958998375),- ("<time-of-day> am|pmabsorption of , after named day",- -4.90527477843843),- ("today<time-of-day> am|pm", -5.598421958998375),- ("Februarythe <day-of-month> (ordinal)", -5.19295685089021),- ("at <time-of-day><time> <part-of-day>", -5.598421958998375),- ("mm/dd<time-of-day> am|pm", -5.598421958998375),- ("hourhour", -4.345658990503007),- ("<time-of-day> am|pmon <date>", -3.58351893845611),- ("Wednesdaythis|last|next <cycle>", -5.598421958998375),- ("intersect<named-month> <day-of-month> (non ordinal)",- -4.0943445622221),- ("dayyear", -3.1560749236291703),- ("last weekend of <named-month>year", -5.598421958998375),- ("<time-of-day> o'clockin|during the <part-of-day>",- -5.598421958998375),- ("Thursdayat <time-of-day>", -5.19295685089021),- ("<time-of-day> am|pmtomorrow", -4.90527477843843),- ("minutehour", -4.68213122712422),- ("Mother's Dayyear", -5.598421958998375),- ("at <time-of-day>in|during the <part-of-day>",- -5.19295685089021),- ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -3.8936738667599493),- ("for <duration> from <time>December", -5.598421958998375),- ("tomorrow<time-of-day> sharp|exactly", -5.598421958998375),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.68213122712422),- ("on <date><named-month> <day-of-month> (non ordinal)",- -5.19295685089021),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.68213122712422),- ("Mondayin|during the <part-of-day>", -5.598421958998375),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.19295685089021),- ("intersectin|during the <part-of-day>", -5.598421958998375),- ("Thursday<datetime> - <datetime> (interval)",- -4.68213122712422),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -5.598421958998375),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.345658990503007),- ("from <time-of-day> - <time-of-day> (interval)on <date>",- -4.90527477843843),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -4.68213122712422),- ("at <time-of-day>intersect", -5.19295685089021),- ("<time-of-day> - <time-of-day> (interval)tomorrow",- -5.598421958998375),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.598421958998375),- ("dayminute", -2.924273309571846),- ("from <datetime> - <datetime> (interval)on <date>",- -5.19295685089021),- ("<datetime> - <datetime> (interval)tomorrow",- -5.598421958998375),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.19295685089021),- ("<ordinal> <cycle> of <time>year", -5.598421958998375),- ("minuteday", -2.132686056198648),- ("absorption of , after named dayintersect",- -5.598421958998375),- ("Octoberyear", -4.345658990503007),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -5.598421958998375),- ("at <time-of-day>absorption of , after named day",- -5.598421958998375),- ("<day-of-month> (ordinal or number) <named-month>year",- -5.598421958998375),- ("year<time-of-day> am|pm", -5.598421958998375),- ("Septemberyear", -5.19295685089021),- ("at <time-of-day>on <date>", -4.499809670330265),- ("between <time-of-day> and <time-of-day> (interval)on <date>",- -4.90527477843843),- ("Halloweenyear", -5.598421958998375),- ("dayweek", -5.598421958998375),- ("Thursday<time-of-day> am|pm", -5.598421958998375),- ("weekyear", -5.19295685089021),- ("hh:mmin|during the <part-of-day>", -4.90527477843843),- ("Father's Dayyear", -5.598421958998375),- ("<cycle> after|before <time><time-of-day> am|pm",- -5.19295685089021),- ("February<time> <part-of-day>", -5.598421958998375),- ("Martin Luther King's Dayyear", -5.19295685089021),- ("tomorrowat <time-of-day>", -4.90527477843843),- ("between <time> and <time>on <date>", -4.90527477843843),- ("Thursdayfrom|since|after <time-of-day>", -4.90527477843843),- ("at <time-of-day>tomorrow", -5.19295685089021),- ("tomorrow<time-of-day> am|pm", -5.598421958998375),- ("in|during the <part-of-day>at <time-of-day>",- -5.598421958998375),- ("Labor Dayyear", -5.598421958998375),- ("Februaryintersect", -5.598421958998375),- ("last <cycle> of <time>year", -4.90527477843843),- ("<named-month> <day-of-month> (non ordinal)year",- -5.598421958998375),- ("yearminute", -5.598421958998375),- ("Black Fridayyear", -5.19295685089021)],- n = 201},- koData =- ClassData{prior = -0.9392802500988537, unseen = -5.983936280687191,- likelihoods =- HashMap.fromList- [("in <named-month>year", -5.288267030694535),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -5.288267030694535),- ("hourday", -5.288267030694535),- ("<named-month> <day-of-month> (non ordinal)July",- -5.288267030694535),- ("dayhour", -2.890371757896165),- ("daymonth", -3.2088254890146994),- ("monthday", -4.882801922586371),- ("monthyear", -4.59511985013459),- ("intersecthh:mm", -5.288267030694535),- ("from <datetime> - <datetime> (interval)July",- -5.288267030694535),- ("houryear", -5.288267030694535),- ("from <time-of-day> - <time-of-day> (interval)July",- -5.288267030694535),- ("until <time-of-day><time-of-day> am|pm", -5.288267030694535),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.59511985013459),- ("<time-of-day> am|pmintersect", -4.035504062199167),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.37197629882038),- ("from|since|after <time-of-day>on <date>", -4.37197629882038),- ("July<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("absorption of , after named dayJuly", -4.882801922586371),- ("monthhour", -5.288267030694535),- ("hourmonth", -4.59511985013459),- ("todayat <time-of-day>", -5.288267030694535),- ("from|since|after <time-of-day>July", -5.288267030694535),- ("dayday", -4.882801922586371),- ("mm/ddat <time-of-day>", -4.882801922586371),- ("<time-of-day> am|pmon <date>", -4.035504062199167),- ("dayyear", -4.035504062199167),- ("Thursdaymm/dd", -5.288267030694535),- ("Thursdayat <time-of-day>", -4.035504062199167),- ("<integer> to|till|before <hour-of-day>September",- -5.288267030694535),- ("monthminute", -5.288267030694535),- ("<time-of-day> am|pmtomorrow", -5.288267030694535),- ("Thursdayhh:mm", -4.37197629882038),- ("August<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("Fridayyear", -4.882801922586371),- ("minutemonth", -3.4965075614664802),- ("Sundayfrom|since|after <time-of-day>", -5.288267030694535),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.882801922586371),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("Aprilyear", -5.288267030694535),- ("mm/dd<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.288267030694535),- ("<duration> after|before|from <time>December",- -5.288267030694535),- ("yesterday<time-of-day> am|pm", -5.288267030694535),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -4.37197629882038),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("<named-month> <day-of-month> (non ordinal)August",- -5.288267030694535),- ("until <time-of-day>on <date>", -4.59511985013459),- ("at <time-of-day>intersect", -4.882801922586371),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("dayminute", -2.7625383863862796),- ("intersectSeptember", -3.784189633918261),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("minuteday", -2.3704962986102562),- ("absorption of , after named dayintersect",- -5.288267030694535),- ("Februaryin|during the <part-of-day>", -5.288267030694535),- ("week-endin <named-month>", -5.288267030694535),- ("Octoberyear", -5.288267030694535),- ("from|since|after <time-of-day>year", -5.288267030694535),- ("yearhh:mm", -5.288267030694535),- ("hh:mmon <date>", -3.784189633918261),- ("from|since|after <time-of-day><time-of-day> am|pm",- -5.288267030694535),- ("absorption of , after named daySeptember", -4.37197629882038),- ("on <date>September", -4.882801922586371),- ("at <time-of-day>on <date>", -4.882801922586371),- ("dayweek", -5.288267030694535),- ("Thursday<time-of-day> am|pm", -4.882801922586371),- ("absorption of , after named dayFebruary", -4.37197629882038),- ("July<integer> to|till|before <hour-of-day>",- -5.288267030694535),- ("tomorrowat <time-of-day>", -5.288267030694535),- ("<integer> to|till|before <hour-of-day>July",- -5.288267030694535),- ("Thursdayfrom|since|after <time-of-day>", -3.6788291182604347),- ("tomorrow<time-of-day> am|pm", -5.288267030694535),- ("Tuesdayfrom|since|after <time-of-day>", -5.288267030694535),- ("yearminute", -5.288267030694535)],- n = 129}}),- ("one eleven",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("after lunch/work/school",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("early morning",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <number> (implicit minutes)",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.3184537311185346),- ("integer (0..19)", -1.2992829841302609)],- n = 9},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.16251892949777494),- ("integer (0..19)", -1.8971199848858813)],- n = 18}}),- ("<ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("daymonth", -2.0149030205422647),- ("quarteryear", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)day (grain)October",- -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",- -2.0149030205422647),- ("weekmonth", -1.6094379124341003),- ("ordinal (digits)quarter (grain)year", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)October",- -2.0149030205422647)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("year (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.1354942159291497,- likelihoods = HashMap.fromList [("", 0.0)], n = 21},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -1.0116009116784799,- unseen = -3.6375861597263857,- likelihoods =- HashMap.fromList- [("minuteminute", -2.001480000210124),- ("<day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("hh:mmhh:mm", -2.001480000210124),- ("dayday", -2.512305623976115),- ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),- ("hourhour", -2.512305623976115),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],- n = 8},- koData =- ClassData{prior = -0.45198512374305727,- unseen = -3.912023005428146,- likelihoods =- HashMap.fromList- [("hourday", -3.1986731175506815),- ("dayhour", -2.793208009442517),- ("<day-of-month> (ordinal)time-of-day (latent)",- -3.1986731175506815),- ("hh:mmtime-of-day (latent)", -2.2823823856765264),- ("minuteminute", -2.793208009442517),- ("time-of-day (latent)time-of-day (latent)",- -2.793208009442517),- ("dayday", -3.1986731175506815),- ("hourhour", -2.505525936990736),- ("dayyear", -3.1986731175506815),- ("<named-month>|<named-day> <day-of-month> (ordinal)past year (latent)",- -3.1986731175506815),- ("minutehour", -2.2823823856765264),- ("hh:mmintersect", -2.793208009442517),- ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("time-of-day (latent)<time-of-day> am|pm",- -3.1986731175506815),- ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",- -3.1986731175506815)],- n = 14}}),- ("Saturday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",- -1.7346010553881064),- ("weekmonth", -1.7346010553881064),- ("week (grain)October", -1.7346010553881064),- ("week (grain)<named-month> <day-of-month> (non ordinal)",- -1.7346010553881064),- ("weekday", -1.2237754316221157)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("number.number hours",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("minuteminute", -1.6094379124341003),- ("hh:mmhh:mm", -1.6094379124341003),- ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),- ("hourhour", -2.3025850929940455),- ("hourminute", -2.3025850929940455),- ("time-of-day (latent)<time-of-day> sharp|exactly",- -2.70805020110221),- ("time-of-day (latent)hh:mm", -2.70805020110221),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],- n = 9},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.6094379124341003),- ("time-of-day (latent)time-of-day (latent)",- -2.0149030205422647),- ("hourhour", -1.791759469228055),- ("minutehour", -1.6094379124341003),- ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],- n = 9}}),- ("integer 21..99",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)", -0.6931471805599453),- ("integer (20..90)integer (0..19)", -0.6931471805599453)],- n = 4}}),- ("yyyy-mm-dd",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd/yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -1.6094379124341003,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("Monday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("yesterday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<ordinal> quarter <year>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh:mm:ss",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<hour-of-day> <integer>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("at <time-of-day>integer (20..90)", -1.3862943611198906),- ("hour", -0.9808292530117262),- ("at <time-of-day>integer (numeric)", -1.3862943611198906)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>integer (numeric)",- -1.0986122886681098),- ("hour", -1.0986122886681098)],- n = 1}}),- ("nth <time> of <time>",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("daymonth", -0.9808292530117262),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -2.0794415416798357),- ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",- -1.6739764335716716),- ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",- -1.6739764335716716)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.5649493574615367,- likelihoods =- HashMap.fromList- [("daymonth", -1.0986122886681098),- ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",- -1.791759469228055),- ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",- -1.3862943611198906)],- n = 3}}),- ("Valentine's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("April",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("end of month",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("week (grain)",- Classifier{okData =- ClassData{prior = -8.004270767353637e-2,- unseen = -3.6375861597263857,- likelihoods = HashMap.fromList [("", 0.0)], n = 36},- koData =- ClassData{prior = -2.5649493574615367,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("<part-of-day> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",- -1.6094379124341003),- ("hourday", -0.916290731874155),- ("part of daysthe <day-of-month> (ordinal)",- -1.6094379124341003),- ("part of daysthe <day-of-month> (number)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("past year (latent)",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 2}}),- ("six thirty six a.m.",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("integer (numeric)", -1.252762968495368),- ("one twenty two", -0.8472978603872037),- ("one eleven", -1.252762968495368)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("now",- Classifier{okData =- ClassData{prior = -0.15415067982725836,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -1.9459101490553135,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("<day-of-month> (ordinal or number) of <named-month>",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.0910424533583156,- likelihoods =- HashMap.fromList- [("ordinal (digits)July", -2.3513752571634776),- ("ordinals (first..twentieth,thirtieth,...)March",- -2.3513752571634776),- ("ordinal (digits)February", -2.3513752571634776),- ("integer (numeric)February", -1.9459101490553135),- ("month", -0.9650808960435872),- ("ordinal (digits)March", -2.3513752571634776),- ("integer (numeric)July", -2.3513752571634776)],- n = 7},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)February", -1.5040773967762742),- ("month", -1.5040773967762742)],- n = 1}}),- ("this <part-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("hour", -0.6931471805599453),- ("part of days", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Friday",- Classifier{okData =- ClassData{prior = -0.3677247801253174,- unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("in|during the <part-of-day>",- Classifier{okData =- ClassData{prior = -8.701137698962981e-2,- unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("early morning", -2.5257286443082556),- ("hour", -0.7339691750802004),- ("part of days", -0.8209805520698302)],- n = 11},- koData =- ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("hour", -0.916290731874155),- ("part of days", -0.916290731874155)],- n = 1}}),- ("tomorrow",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh(:mm) - <time-of-day> am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("this|last|next <cycle>",- Classifier{okData =- ClassData{prior = -0.15822400521489416,- unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("week", -1.5488132906176655),- ("month (grain)", -2.995732273553991),- ("year (grain)", -1.817077277212345),- ("week (grain)", -1.5488132906176655),- ("quarter", -2.772588722239781), ("year", -1.817077277212345),- ("month", -2.995732273553991),- ("quarter (grain)", -2.772588722239781)],- n = 35},- koData =- ClassData{prior = -1.9218125974762528,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("week", -1.4816045409242156),- ("week (grain)", -1.4816045409242156),- ("day", -1.9924301646902063),- ("day (grain)", -1.9924301646902063)],- n = 6}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Eve",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("by <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -2.1972245773362196),- ("end of month", -2.1972245773362196),- ("time-of-day (latent)", -2.1972245773362196),- ("<time-of-day> am|pm", -2.1972245773362196),- ("hh:mm", -2.1972245773362196), ("hour", -1.791759469228055),- ("month", -2.1972245773362196), ("minute", -1.791759469228055)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("half an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2006706954621511,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("ordinals (first..twentieth,thirtieth,...)",- -1.7047480922384253),- ("ordinal (digits)", -0.2006706954621511)],- n = 9},- koData =- ClassData{prior = -1.7047480922384253,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],- n = 2}}),- ("last weekend of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("October", -0.9555114450274363), ("July", -1.8718021769015913),- ("month", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (number)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("fractional number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),- ("Sunday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("February",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("minute (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1}}),- ("time-of-day (latent)",- Classifier{okData =- ClassData{prior = -0.5315058290035293,- unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.12136085700426748),- ("integer (0..19)", -2.3025850929940455)],- n = 67},- koData =- ClassData{prior = -0.8860508466844369,- unseen = -3.9318256327243257,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.10536051565782628),- ("integer (0..19)", -2.8134107167600364),- ("integer 21..99", -3.2188758248682006)],- n = 47}}),- ("year",- Classifier{okData =- ClassData{prior = -0.23483959107740107, unseen = -3.58351893845611,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 34},- koData =- ClassData{prior = -1.563975538357343, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 9}}),- ("last <day-of-week> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("daymonth", -0.916290731874155),- ("SundayMarch", -1.6094379124341003),- ("MondayMarch", -1.6094379124341003),- ("Sundayintersect", -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.1479201300766222,- unseen = -5.0875963352323845,- likelihoods =- HashMap.fromList- [("week", -2.4423470353692043),- ("integer (0..19)year (grain)", -3.289644895756408),- ("integer (numeric)day (grain)", -2.6835090921860925),- ("integer (0..19)second (grain) ", -3.6951100038645723),- ("integer (0..19)hour (grain)", -3.001962823304627),- ("second", -3.289644895756408),- ("integer (numeric)second (grain) ", -3.982792076316353),- ("integer (numeric)year (grain)", -3.6951100038645723),- ("day", -2.4423470353692043), ("year", -2.8841797876482436),- ("integer (numeric)week (grain)", -3.001962823304627),- ("integer (0..19)month (grain)", -3.4719664525503626),- ("hour", -2.5964977151964628), ("month", -3.1354942159291497),- ("integer (numeric)minute (grain)", -3.1354942159291497),- ("integer (0..19)minute (grain)", -3.001962823304627),- ("integer (numeric)month (grain)", -3.982792076316353),- ("minute", -2.4423470353692043),- ("integer (numeric)hour (grain)", -3.4719664525503626),- ("integer (0..19)day (grain)", -3.6951100038645723),- ("integer (0..19)week (grain)", -3.1354942159291497)],- n = 69},- koData =- ClassData{prior = -1.984131361875511, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),- ("integer (numeric)hour (grain)", -1.4087672169719492),- ("integer (0..19)quarter (grain)", -3.1135153092103742)],- n = 11}}),- ("hhmm (latent)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> am|pm",- Classifier{okData =- ClassData{prior = -0.2929871246814741,- unseen = -5.3230099791384085,- likelihoods =- HashMap.fromList- [("integer after|past <hour-of-day>", -3.9318256327243257),- ("at <time-of-day>", -2.2270775404859005),- ("from|since|after <time-of-day>", -3.708682081410116),- ("<time-of-day> o'clock", -4.219507705176107),- ("half after|past <hour-of-day>", -4.219507705176107),- ("time-of-day (latent)", -1.7346010553881064),- ("hhmm (latent)", -4.624972813284271),- ("hh:mm", -2.2735975561207935),- ("quarter after|past <hour-of-day>", -4.624972813284271),- ("about|exactly <time-of-day>", -4.624972813284271),- ("until <time-of-day>", -3.9318256327243257),- ("hour", -1.2237754316221157),- ("<time-of-day> sharp|exactly", -4.624972813284271),- ("minute", -1.7346010553881064)],- n = 94},- koData =- ClassData{prior = -1.3705460041517514, unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.283414346005772),- ("from|since|after <time-of-day>", -3.283414346005772),- ("<hour-of-day> <integer>", -3.6888794541139363),- ("time-of-day (latent)", -1.0498221244986778),- ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],- n = 32}}),- ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("ordinal (digits)ordinal (digits)July", -1.252762968495368),- ("integer (numeric)integer (numeric)July", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thanksgiving Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("a <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.5753641449035618,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("week", -2.0794415416798357),- ("year (grain)", -2.772588722239781),- ("second", -2.772588722239781),- ("week (grain)", -2.0794415416798357),- ("day", -2.0794415416798357),- ("minute (grain)", -2.772588722239781),- ("year", -2.772588722239781),- ("second (grain) ", -2.772588722239781),- ("minute", -2.772588722239781),- ("day (grain)", -2.0794415416798357)],- n = 9},- koData =- ClassData{prior = -0.8266785731844679, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("hour (grain)", -1.7227665977411035),- ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),- ("quarter (grain)", -1.9459101490553135)],- n = 7}}),- ("hh:mm",- Classifier{okData =- ClassData{prior = -6.782259633876106e-2,- unseen = -4.07753744390572,- likelihoods = HashMap.fromList [("", 0.0)], n = 57},- koData =- ClassData{prior = -2.7245795030534206, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("quarter of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("second (grain) ",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinals (first..twentieth,thirtieth,...)",- Classifier{okData =- ClassData{prior = -6.899287148695143e-2,- unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14},- koData =- ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("quarter after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> after|before <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.252762968495368),- ("dayday", -0.8472978603872037),- ("day (grain)yesterday", -1.252762968495368)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("about|exactly <time-of-day>",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("week", -2.639057329615259),- ("hh(:mm) - <time-of-day> am|pm", -2.639057329615259),- ("this|last|next <cycle>", -2.639057329615259),- ("day", -2.2335922215070942),- ("time-of-day (latent)", -2.639057329615259),- ("hhmm (latent)", -2.2335922215070942),- ("<time-of-day> am|pm", -2.639057329615259),- ("hour", -1.9459101490553135),- ("next <time>", -2.639057329615259),- ("this|next <day-of-week>", -2.639057329615259),- ("minute", -2.2335922215070942)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),- ("time-of-day (latent)", -2.0794415416798357),- ("hour", -2.0794415416798357)],- n = 2}}),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- Classifier{okData =- ClassData{prior = -0.48130318449966897,- unseen = -5.170483995038151,- likelihoods =- HashMap.fromList- [("Wednesday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayhour", -3.2188758248682006),- ("daymonth", -3.2188758248682006),- ("<named-month> <day-of-month> (non ordinal)Friday",- -4.471638793363569),- ("Friday<named-month> <day-of-month> (non ordinal)",- -3.7784916128036232),- ("Wednesdayintersect", -4.471638793363569),- ("Labor Daythis|last|next <cycle>", -4.471638793363569),- ("Black Fridaythis|last|next <cycle>", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.471638793363569),- ("<part-of-day> of <time>February", -4.471638793363569),- ("Saturday<time-of-day> am|pm", -4.471638793363569),- ("Martin Luther King's Daythis|last|next <cycle>",- -4.471638793363569),- ("on <date><time-of-day> am|pm", -4.471638793363569),- ("hourmonth", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.471638793363569),- ("dayday", -2.5998366164619773),- ("the <day-of-month> (ordinal)February", -4.0661736852554045),- ("WednesdayOctober", -4.471638793363569),- ("Wednesdaythis|last|next <cycle>", -4.0661736852554045),- ("intersect<named-month> <day-of-month> (non ordinal)",- -3.5553480614894135),- ("dayyear", -2.8622008809294686),- ("Saturday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.471638793363569),- ("Thursdayhh:mm", -4.0661736852554045),- ("Thanksgiving Daythis|last|next <cycle>", -4.471638793363569),- ("Memorial Daythis|last|next <cycle>", -4.471638793363569),- ("on <date><named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("TuesdayOctober", -4.471638793363569),- ("the <day-of-month> (ordinal)March", -4.471638793363569),- ("Mondaythis|last|next <cycle>", -4.471638793363569),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.0661736852554045),- ("Fridayintersect", -4.471638793363569),- ("Thursday<datetime> - <datetime> (interval)",- -3.7784916128036232),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.5553480614894135),- ("Tuesdaythis|last|next <cycle>", -4.471638793363569),- ("Sunday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayminute", -2.6798793241355137),- ("intersectyear", -4.471638793363569),- ("minuteday", -3.5553480614894135),- ("this|last|next <cycle>Sunday", -4.471638793363569),- ("Sundaythis|last|next <cycle>", -4.471638793363569),- ("intersectintersect", -4.471638793363569),- ("weekday", -4.471638793363569),- ("dayweek", -3.373026504695459),- ("Thursday<time-of-day> am|pm", -4.471638793363569),- ("Monday<named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("<named-month> <day-of-month> (non ordinal)year",- -4.0661736852554045)],- n = 55},- koData =- ClassData{prior = -0.9622758451159785, unseen = -4.897839799950911,- likelihoods =- HashMap.fromList- [("week-endJuly", -4.197201947661808),- ("week-endOctober", -3.5040547671018634),- ("daymonth", -1.9999773703255892),- ("TuesdaySeptember", -4.197201947661808),- ("Wednesdayintersect", -4.197201947661808),- ("hourmonth", -3.0985896589936988),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.197201947661808),- ("Fridaythis|last|next <cycle>", -4.197201947661808),- ("SundayFebruary", -4.197201947661808),- ("WednesdayOctober", -4.197201947661808),- ("week-endintersect", -4.197201947661808),- ("dayyear", -4.197201947661808),- ("FridayJuly", -3.791736839553644),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.197201947661808),- ("FridaySeptember", -4.197201947661808),- ("WednesdayFebruary", -4.197201947661808),- ("minutemonth", -3.2809112157876537),- ("SundayMarch", -4.197201947661808),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.197201947661808),- ("MondayFebruary", -3.791736839553644),- ("Fridayintersect", -4.197201947661808),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.791736839553644),- ("dayminute", -2.810907586541918),- ("SaturdaySeptember", -4.197201947661808),- ("intersectSeptember", -3.2809112157876537),- ("MondayMarch", -4.197201947661808),- ("on <date>September", -3.791736839553644),- ("intersectintersect", -4.197201947661808),- ("Tuesdayintersect", -4.197201947661808),- ("Sundayintersect", -4.197201947661808)],- n = 34}}),- ("last <time>",- Classifier{okData =- ClassData{prior = -0.6286086594223742, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("Father's Day", -2.6026896854443837),- ("Martin Luther King's Day", -2.6026896854443837),- ("Memorial Day", -2.6026896854443837),- ("Mother's Day", -2.6026896854443837),- ("day", -1.2163953243244932), ("Sunday", -2.6026896854443837),- ("Thanksgiving Day", -2.6026896854443837),- ("hour", -2.6026896854443837), ("Tuesday", -2.6026896854443837),- ("week-end", -2.6026896854443837)],- n = 8},- koData =- ClassData{prior = -0.7621400520468967, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Monday", -2.5257286443082556), ("day", -2.120263536200091),- ("Sunday", -2.5257286443082556), ("hour", -1.4271163556401458),- ("week-end", -1.4271163556401458)],- n = 7}}),- ("March",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Octoberordinal (digits)", -2.120263536200091),- ("Thursdayordinal (digits)", -2.5257286443082556),- ("day", -2.120263536200091),- ("Augustordinal (digits)", -2.5257286443082556),- ("Marchordinals (first..twentieth,thirtieth,...)",- -2.120263536200091),- ("Tuesdayordinal (digits)", -2.5257286443082556),- ("month", -1.2729656758128873),- ("Marchordinal (digits)", -2.5257286443082556)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("from|since|after <time-of-day>ordinal (digits)",- -1.8718021769015913),- ("Augustordinal (digits)", -1.8718021769015913),- ("month", -1.466337068793427)],- n = 2}}),- ("Labor Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("until <time-of-day>",- Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -2.3025850929940455),- ("<time-of-day> am|pm", -1.6094379124341003),- ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),- ("minute", -1.3862943611198906)],- n = 6},- koData =- ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("intersect", -1.7227665977411035),- ("yesterday", -2.2335922215070942),- ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),- ("hour", -2.639057329615259), ("minute", -1.252762968495368)],- n = 10}}),- ("mm.dd.yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<duration> after|before|from <time>",- Classifier{okData =- ClassData{prior = -0.35667494393873245,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("a <unit-of-duration>now", -2.70805020110221),- ("a <unit-of-duration>Christmas", -2.70805020110221),- ("<integer> <unit-of-duration>today", -2.70805020110221),- ("daysecond", -2.70805020110221),- ("a <unit-of-duration>right now", -2.70805020110221),- ("minutenograin", -2.70805020110221),- ("<integer> <unit-of-duration>Christmas", -2.70805020110221),- ("secondnograin", -2.70805020110221),- ("yearday", -2.0149030205422647),- ("daynograin", -2.70805020110221),- ("<integer> <unit-of-duration>now", -2.3025850929940455)],- n = 7},- koData =- ClassData{prior = -1.2039728043259361,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("dayhour", -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal)",- -2.3978952727983707),- ("dayday", -1.9924301646902063),- ("<integer> <unit-of-duration>time-of-day (latent)",- -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -2.3978952727983707)],- n = 3}}),- ("Independence Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("decimal number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("next <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5263605246161616,- likelihoods =- HashMap.fromList- [("Martin Luther King's Day", -2.803360380906535),- ("Halloween", -2.803360380906535),- ("Wednesday", -2.803360380906535),- ("Memorial Day", -2.803360380906535),- ("Monday", -2.803360380906535),- ("Mother's Day", -2.803360380906535),- ("day", -1.0986122886681098),- ("Thanksgiving Day", -2.803360380906535),- ("March", -2.803360380906535), ("month", -2.803360380906535),- ("Tuesday", -2.1102132003465894)],- n = 11},- koData =- ClassData{prior = -infinity, unseen = -2.4849066497880004,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> sharp|exactly",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -2.1400661634962708),- ("time-of-day (latent)", -2.1400661634962708),- ("hhmm (latent)", -2.1400661634962708),- ("<time-of-day> am|pm", -2.1400661634962708),- ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),- ("minute", -1.4469189829363254)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("negative numbers",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("integer (numeric)", -7.696104113612832e-2),- ("integer (0..19)", -2.6026896854443837)],- n = 25}}),- ("about|exactly <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("half an hour", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time> before last|after next",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("Wednesday", -1.8718021769015913),- ("Friday", -1.466337068793427), ("day", -1.1786549963416462),- ("March", -1.8718021769015913), ("month", -1.8718021769015913)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("by the end of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("this|last|next <cycle>", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hhmm (military) am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,- likelihoods =- HashMap.fromList- [("intersecthh:mm", -3.1918471524802814),- ("intersect<time-of-day> am|pm", -3.1918471524802814),- ("minuteminute", -1.457246097092175),- ("hh:mmhh:mm", -2.093234863812172),- ("dayday", -3.1918471524802814),- ("hourhour", -2.093234863812172),- ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -3.597312260588446),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.597312260588446),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),- ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],- n = 26},- koData =- ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("<named-month> <day-of-month> (non ordinal)July",- -3.1135153092103742),- ("daymonth", -2.70805020110221),- ("from|since|after <time-of-day>intersect", -2.70805020110221),- ("<time-of-day> am|pmintersect", -3.1135153092103742),- ("hh:mm<time-of-day> am|pm", -2.70805020110221),- ("minuteminute", -1.8607523407150064),- ("hourhour", -2.70805020110221),- ("minutehour", -2.70805020110221),- ("hh:mmintersect", -2.1972245773362196),- ("<named-month> <day-of-month> (non ordinal)August",- -3.1135153092103742),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.1135153092103742)],- n = 12}}),- ("Tuesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Day",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),- ("fortnight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> and an half hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <named-month>",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -1.252762968495368), ("March", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -0.8472978603872037),- ("month", -0.8472978603872037)],- n = 2}}),- ("<time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,- likelihoods =- HashMap.fromList- [("minuteminute", -1.529395204760564),- ("hh:mmhh:mm", -1.8971199848858813),- ("<time-of-day> am|pmtime-of-day (latent)",- -2.4849066497880004),- ("hourhour", -1.6964492894237302),- ("from|since|after <time-of-day>time-of-day (latent)",- -3.4011973816621555),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.4011973816621555),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),- ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],- n = 22},- koData =- ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>time-of-day (latent)",- -3.4657359027997265),- ("hh:mmtime-of-day (latent)", -1.7609878105613013),- ("hh:mm<time-of-day> am|pm", -3.0602707946915624),- ("<time-of-day> am|pmtime-of-day (latent)",- -3.4657359027997265),- ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),- ("hourhour", -2.2129729343043585),- ("minutehour", -1.2144441041932315),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.4657359027997265),- ("from|since|after <time-of-day>time-of-day (latent)",- -2.5494451709255714),- ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),- ("<integer> to|till|before <hour-of-day>time-of-day (latent)",- -3.0602707946915624)],- n = 24}}),- ("military spelled out numbers am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods =- HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("winter",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("nth <time> after <time>",- Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",- -0.916290731874155)],- n = 1}}),- ("<named-month> <day-of-month> (non ordinal)",- Classifier{okData =- ClassData{prior = -0.42121346507630353,- unseen = -3.951243718581427,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.5455312716044354),- ("Marchinteger (numeric)", -2.833213344056216),- ("Aprilinteger (numeric)", -3.2386784521643803),- ("month", -0.8407831793660099),- ("Februaryinteger (numeric)", -1.9859154836690123),- ("Septemberinteger (numeric)", -2.833213344056216),- ("Octoberinteger (numeric)", -2.833213344056216),- ("Julyinteger (numeric)", -2.1400661634962708)],- n = 21},- koData =- ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.3353749158170367),- ("Marchinteger (numeric)", -2.740840023925201),- ("Aprilinteger (numeric)", -2.740840023925201),- ("month", -0.9490805546971459),- ("from|since|after <time-of-day>integer (numeric)",- -2.3353749158170367),- ("Julyinteger (numeric)", -1.6422277352570913)],- n = 11}}),- ("this|next <day-of-week>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,- likelihoods =- HashMap.fromList- [("Thursday", -2.2512917986064953),- ("Wednesday", -2.2512917986064953),- ("Monday", -1.845826690498331), ("day", -0.8649974374866046),- ("Tuesday", -1.55814461804655)],- n = 7},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinal (digits)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5553480614894135,- likelihoods = HashMap.fromList [("", 0.0)], n = 33},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter (grain)",- Classifier{okData =- ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("last <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("day (grain)October", -1.791759469228055),- ("daymonth", -1.2809338454620642),- ("day (grain)intersect", -1.791759469228055),- ("weekmonth", -1.791759469228055),- ("week (grain)intersect", -2.1972245773362196),- ("week (grain)September", -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month>(ordinal) <named-month> year",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)April", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Black Friday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Labor Day",- Classifier{okData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("week-end",- Classifier{okData =- ClassData{prior = -1.5040773967762742,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),- ("day (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.2188758248682006,- likelihoods = HashMap.fromList [("", 0.0)], n = 23},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("right now",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("for <duration> from <time>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("<integer> <unit-of-duration><day-of-month> (ordinal)",- -1.5040773967762742),- ("dayday", -1.0986122886681098),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -1.5040773967762742)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("dayhour", -1.252762968495368),- ("<integer> <unit-of-duration>time-of-day (latent)",- -1.252762968495368)],- n = 1}}),- ("between <time> and <time>",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("minuteminute", -1.0116009116784799),- ("hh:mmhh:mm", -1.0116009116784799)],- n = 3},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.4469189829363254),- ("minuteminute", -1.4469189829363254),- ("minutehour", -1.4469189829363254),- ("hh:mmintersect", -1.4469189829363254)],- n = 6}}),- ("<month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),- ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",- -2.740840023925201),- ("from|since|after <time-of-day>integer (numeric)integer (numeric)",- -2.740840023925201),- ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",- -2.740840023925201),- ("Augustordinal (digits)integer (numeric)",- -2.3353749158170367),- ("month", -0.8690378470236094),- ("Augustordinal (digits)ordinal (digits)",- -2.3353749158170367)],- n = 12},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of days",- Classifier{okData =- ClassData{prior = -4.0821994520255166e-2,- unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -3.2188758248682006,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("summer",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("dd-dd <month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)September",- -1.791759469228055),- ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),- ("ordinal (digits)ordinal (digits)October",- -2.1972245773362196),- ("integer (numeric)integer (numeric)July", -2.1972245773362196),- ("month", -0.9444616088408514),- ("ordinal (digits)ordinal (digits)August",- -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("this <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Thursday", -2.5257286443082556),- ("Martin Luther King's Day", -2.5257286443082556),- ("Monday", -2.5257286443082556), ("day", -1.1394342831883648),- ("Thanksgiving Day", -2.5257286443082556),- ("hour", -2.5257286443082556), ("winter", -2.5257286443082556),- ("week-end", -2.5257286443082556),- ("summer", -2.120263536200091)],- n = 8},- koData =- ClassData{prior = -infinity, unseen = -2.3025850929940455,+ [("Bhai Dooj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)noon|midnight|EOD|end of day",+ -0.916290731874155),+ ("hour", -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.13353139262452263,+ unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("hour", -0.7537718023763802),+ ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],+ n = 7}}),+ ("<time> timezone",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -1.824549292051046),+ ("<time-of-day> am|pm", -1.6422277352570913),+ ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),+ ("minute", -1.824549292051046)],+ n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thursday",+ Classifier{okData =+ ClassData{prior = -9.53101798043249e-2,+ unseen = -3.4657359027997265,+ likelihoods = HashMap.fromList [("", 0.0)], n = 30},+ koData =+ ClassData{prior = -2.3978952727983707,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("integer (numeric)",+ Classifier{okData =+ ClassData{prior = -0.6142532380902823, unseen = -5.676753802268282,+ likelihoods = HashMap.fromList [("", 0.0)], n = 290},+ koData =+ ClassData{prior = -0.7788026251384392,+ unseen = -5.5134287461649825,+ likelihoods = HashMap.fromList [("", 0.0)], n = 246}}),+ ("<duration> hence|ago",+ Classifier{okData =+ ClassData{prior = -5.406722127027582e-2,+ unseen = -3.784189633918261,+ likelihoods =+ HashMap.fromList+ [("week", -1.563975538357343), ("day", -1.8152899666382492),+ ("year", -2.662587827025453),+ ("<integer> <unit-of-duration>", -1.0531499145913523),+ ("a <unit-of-duration>", -2.662587827025453),+ ("month", -2.662587827025453),+ ("fortnight", -2.662587827025453)],+ n = 18},+ koData =+ ClassData{prior = -2.9444389791664407,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("year", -1.5040773967762742),+ ("<integer> <unit-of-duration>", -1.5040773967762742)],+ n = 1}}),+ ("noon|midnight|EOD|end of day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Father's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.6739764335716716),+ ("dayday", -1.1631508098056809),+ ("day (grain)yesterday", -1.6739764335716716)],+ n = 4},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.6739764335716716),+ ("year (grain)Christmas", -2.0794415416798357),+ ("dayday", -2.0794415416798357),+ ("day (grain)intersect", -1.6739764335716716),+ ("day (grain)Easter Sunday", -2.0794415416798357),+ ("yearday", -2.0794415416798357)],+ n = 4}}),+ ("Easter Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Navaratri",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Martin Luther King's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("integer (20..90)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Shemini Atzeret",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ramadan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lazarus Saturday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect 2 numbers",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("compose by multiplicationinteger (0..19)",+ -0.2231435513142097)],+ n = 3},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("powers of tensinteger (0..19)", -0.2231435513142097)],+ n = 3}}),+ ("mm/yyyy",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("integer after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("hour", -0.8109302162163288),+ ("integer (numeric)time-of-day (latent)", -1.0986122886681098),+ ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom HaShoah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal or number) <named-month>",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)December", -2.1400661634962708),+ ("ordinal (digits)February", -2.1400661634962708),+ ("integer (numeric)April", -2.1400661634962708),+ ("month", -1.4469189829363254)],+ n = 3},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.4011973816621555,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)October", -2.6741486494265287),+ ("ordinal (digits)July", -2.6741486494265287),+ ("integer (numeric)September", -2.268683541318364),+ ("ordinal (digits)August", -2.6741486494265287),+ ("integer (numeric)August", -2.6741486494265287),+ ("ordinal (digits)April", -2.6741486494265287),+ ("month", -1.0647107369924282),+ ("integer (numeric)July", -2.268683541318364)],+ n = 9}}),+ ("<time> <part-of-day>",+ Classifier{okData =+ ClassData{prior = -9.237332013101517e-2,+ unseen = -4.48863636973214,+ likelihoods =+ HashMap.fromList+ [("<day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("dayhour", -1.4816045409242156),+ ("Mondayearly morning", -3.378724525810097),+ ("time-of-day (latent)tonight", -3.378724525810097),+ ("hourhour", -2.3978952727983707),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -3.784189633918261),+ ("todaypart of days", -3.784189633918261),+ ("minutehour", -2.6855773452501515),+ ("at <time-of-day>in|during the <part-of-day>",+ -3.378724525810097),+ ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+ ("Mondayin|during the <part-of-day>", -3.784189633918261),+ ("intersectpart of days", -3.784189633918261),+ ("intersectin|during the <part-of-day>", -3.784189633918261),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -3.784189633918261),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("tomorrowpart of days", -2.3978952727983707),+ ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+ ("time-of-day (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("hhmm (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("yesterdaypart of days", -3.378724525810097),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -3.784189633918261),+ ("Mondaypart of days", -3.784189633918261)],+ n = 31},+ koData =+ ClassData{prior = -2.4277482359480516,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("yearhour", -2.772588722239781),+ ("monthhour", -2.772588722239781),+ ("hourhour", -2.772588722239781),+ ("year (latent)in|during the <part-of-day>",+ -2.772588722239781),+ ("Februaryin|during the <part-of-day>", -2.772588722239781),+ ("time-of-day (latent)in|during the <part-of-day>",+ -2.772588722239781)],+ n = 3}}),+ ("today",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("mm/dd",+ Classifier{okData =+ ClassData{prior = -1.2729656758128873,+ unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7},+ koData =+ ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+ likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+ ("at <time-of-day>",+ Classifier{okData =+ ClassData{prior = -8.961215868968717e-2,+ unseen = -4.948759890378168,+ likelihoods =+ HashMap.fromList+ [("<time> timezone", -3.8430301339411947),+ ("noon|midnight|EOD|end of day", -3.8430301339411947),+ ("integer after|past <hour-of-day>", -3.8430301339411947),+ ("half after|past <hour-of-day>", -4.248495242049359),+ ("time-of-day (latent)", -1.6835458845878222),+ ("hhmm (latent)", -3.5553480614894135),+ ("<time-of-day> am|pm", -1.8061482066801546),+ ("hh:mm", -3.332204510175204),+ ("about|exactly <time-of-day>", -3.8430301339411947),+ ("hour", -1.0704414117014134),+ ("<time-of-day> sharp|exactly", -4.248495242049359),+ ("minute", -2.05127066471314)],+ n = 64},+ koData =+ ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -1.2321436812926323),+ ("hour", -1.2321436812926323)],+ n = 6}}),+ ("December",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("absorption of , after named day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("on <date>", -2.1972245773362196),+ ("Wednesday", -2.6026896854443837),+ ("Saturday", -2.6026896854443837),+ ("Monday", -2.1972245773362196),+ ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+ ("Sunday", -2.6026896854443837)],+ n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("September",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("tonight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|past|next <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.2626798770413155,+ likelihoods =+ HashMap.fromList+ [("week", -2.456735772821304), ("second", -2.639057329615259),+ ("day", -2.3025850929940455), ("year", -2.639057329615259),+ ("<integer> <unit-of-duration>", -0.7827593392496325),+ ("hour", -2.639057329615259), ("month", -2.639057329615259),+ ("minute", -2.639057329615259)],+ n = 31},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the ides of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("on <date>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -4.204692619390966,+ likelihoods =+ HashMap.fromList+ [("Thursday", -1.4816045409242156),+ ("mm/dd", -3.4965075614664802),+ ("absorption of , after named day", -3.0910424533583156),+ ("intersect", -3.0910424533583156),+ ("Saturday", -2.803360380906535),+ ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+ ("the <day-of-month> (ordinal)", -3.0910424533583156),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -2.803360380906535),+ ("hour", -3.4965075614664802)],+ n = 28},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -1.791759469228055)],+ n = 4}}),+ ("integer (0..19)",+ Classifier{okData =+ ClassData{prior = -0.11122563511022437,+ unseen = -3.970291913552122,+ likelihoods = HashMap.fromList [("", 0.0)], n = 51},+ koData =+ ClassData{prior = -2.2512917986064953,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+ ("between <time-of-day> and <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.7884573603642702),+ ("hh:mmhh:mm", -0.7884573603642702)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -0.7884573603642702),+ ("minutehour", -0.7884573603642702)],+ n = 9}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Passover",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+ ("Augustordinal (digits)integer (numeric)",+ -1.6094379124341003),+ ("month", -0.916290731874155),+ ("Augustordinal (digits)ordinal (digits)",+ -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("October",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods = HashMap.fromList [("", 0.0)], n = 16},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from|since|after <time-of-day>",+ Classifier{okData =+ ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("July", -3.332204510175204),+ ("time-of-day (latent)", -2.4159137783010487),+ ("<time-of-day> am|pm", -2.4159137783010487),+ ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),+ ("month", -2.9267394020670396), ("minute", -2.4159137783010487),+ ("August", -3.332204510175204)],+ n = 14},+ koData =+ ClassData{prior = -0.22677331936478848,+ unseen = -4.9344739331306915,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.828641396489095),+ ("week", -4.23410650459726),+ ("<day-of-month> (ordinal or number) <named-month>",+ -4.23410650459726),+ ("today", -4.23410650459726), ("intersect", -2.362304327695668),+ ("second", -4.23410650459726), ("now", -3.5409593240373143),+ ("tomorrow", -3.828641396489095),+ ("this|last|next <cycle>", -4.23410650459726),+ ("day", -1.8827312474337816),+ ("time-of-day (latent)", -4.23410650459726),+ ("<time-of-day> am|pm", -3.828641396489095),+ ("nograin", -3.5409593240373143),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ -4.23410650459726),+ ("Easter Sunday", -4.23410650459726),+ ("Christmas", -3.5409593240373143),+ ("hour", -2.981343536101891), ("month", -4.23410650459726),+ ("<datetime> - <datetime> (interval)", -2.847812143477369),+ ("<time-of-day> - <time-of-day> (interval)",+ -2.5293584123588344),+ ("<named-month> <day-of-month> (non ordinal)",+ -3.828641396489095),+ ("minute", -1.749199854809259),+ ("right now", -4.23410650459726),+ ("<month> dd-dd (interval)", -3.5409593240373143),+ ("dd-dd <month> (interval)", -3.828641396489095)],+ n = 55}}),+ ("month (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> more <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)minute (grain)", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> o'clock",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in|within|after <duration>",+ Classifier{okData =+ ClassData{prior = -0.11000089521432846,+ unseen = -4.6443908991413725,+ likelihoods =+ HashMap.fromList+ [("week", -3.248434627109745),+ ("<integer> more <unit-of-duration>", -3.9415818076696905),+ ("three-quarters of an hour", -3.0252910757955354),+ ("<integer> + '\"", -3.248434627109745),+ ("number.number hours", -3.9415818076696905),+ ("second", -3.536116699561526), ("day", -3.248434627109745),+ ("half an hour", -3.0252910757955354),+ ("year", -3.9415818076696905),+ ("<integer> <unit-of-duration>", -1.5902065505062128),+ ("a <unit-of-duration>", -3.0252910757955354),+ ("quarter of an hour", -3.0252910757955354),+ ("hour", -2.5552874465498),+ ("about|exactly <duration>", -3.9415818076696905),+ ("<integer> and an half hour", -3.9415818076696905),+ ("minute", -1.3025244780544318)],+ n = 43},+ koData =+ ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),+ ("<integer> <unit-of-duration>", -1.9095425048844386),+ ("a <unit-of-duration>", -2.1972245773362196)],+ n = 5}}),+ ("January",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("three-quarters of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Mattu Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Wednesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> + '\"",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half <integer> (UK style hour-of-day)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Family Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("July",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hour (grain)",+ Classifier{okData =+ ClassData{prior = -0.8209805520698302,+ unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),+ ("Shavuot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Vimy Ridge Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> <duration> hence|ago",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("dayyear", -0.6931471805599453),+ ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -1.1786549963416462),+ ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+ -1.466337068793427),+ ("quarter", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.8109302162163288),+ ("quarter", -0.8109302162163288)],+ n = 3}}),+ ("Boss's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Orthodox Easter Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("one twenty two",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect",+ Classifier{okData =+ ClassData{prior = -0.44339892331178415,+ unseen = -6.7464121285733745,+ likelihoods =+ HashMap.fromList+ [("Navaratriyear (latent)", -6.052089168924417),+ ("Father's Dayyear (latent)", -6.052089168924417),+ ("Ramadanyear (latent)", -6.052089168924417),+ ("<datetime> - <datetime> (interval)on <date>",+ -4.799326200429049),+ ("Bhai Doojyear (latent)", -6.052089168924417),+ ("<time-of-day> - <time-of-day> (interval)on <date>",+ -4.799326200429049),+ ("hourday", -4.347341076685992),+ ("dayhour", -3.134318436840138),+ ("Martin Luther King's Dayyear (latent)", -5.646624060816253),+ ("Shemini Atzeretyear (latent)", -6.052089168924417),+ ("daymonth", -5.358941988364472),+ ("monthday", -5.646624060816253),+ ("monthyear", -4.442651256490317),+ ("Yom Ha'atzmautyear (latent)", -6.052089168924417),+ ("Vijayadashamiyear (latent)", -6.052089168924417),+ ("Thanksgiving Dayyear (latent)", -4.953476880256307),+ ("Thai Pongalyear (latent)", -5.358941988364472),+ ("Thiru Onamyear (latent)", -5.358941988364472),+ ("Tuesdaythe <day-of-month> (ordinal)", -6.052089168924417),+ ("from <datetime> - <datetime> (interval)July",+ -6.052089168924417),+ ("houryear", -5.358941988364472),+ ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+ -6.052089168924417),+ ("Christmas<time-of-day> am|pm", -6.052089168924417),+ ("last <day-of-week> of <time>year (latent)",+ -6.052089168924417),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -5.358941988364472),+ ("<time-of-day> am|pmintersect", -4.799326200429049),+ ("Family Dayyear (latent)", -5.135798437050262),+ ("Octoberyear (latent)", -4.799326200429049),+ ("intersect<time-of-day> am|pm", -6.052089168924417),+ ("Mattu Pongalyear (latent)", -6.052089168924417),+ ("Shavuotyear (latent)", -6.052089168924417),+ ("Dhanterasin <named-month>|year", -6.052089168924417),+ ("at <time-of-day>in|within|after <duration>",+ -6.052089168924417),+ ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.052089168924417),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -5.646624060816253),+ ("Marchyear (latent)", -6.052089168924417),+ ("Sukkotyear (latent)", -5.646624060816253),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -6.052089168924417),+ ("Clean Mondayyear (latent)", -5.646624060816253),+ ("monthhour", -5.646624060816253),+ ("todayat <time-of-day>", -6.052089168924417),+ ("Thursday<time> timezone", -4.347341076685992),+ ("this <time>hh(:mm) - <time-of-day> am|pm",+ -6.052089168924417),+ ("Palm SundaySunday", -5.646624060816253),+ ("dayday", -3.8548645915881976),+ ("<time> <part-of-day>at <time-of-day>", -6.052089168924417),+ ("mm/ddat <time-of-day>", -6.052089168924417),+ ("tonightat <time-of-day>", -6.052089168924417),+ ("<time-of-day> am|pmabsorption of , after named day",+ -5.358941988364472),+ ("today<time-of-day> am|pm", -6.052089168924417),+ ("Februarythe <day-of-month> (ordinal)", -5.646624060816253),+ ("at <time-of-day><time> <part-of-day>", -6.052089168924417),+ ("mm/dd<time-of-day> am|pm", -6.052089168924417),+ ("hourhour", -4.799326200429049),+ ("<time-of-day> am|pmon <date>", -4.037186148382152),+ ("National Patriots' Dayyear (latent)", -5.358941988364472),+ ("Wednesdaythis|last|next <cycle>", -6.052089168924417),+ ("Lentyear (latent)", -6.052089168924417),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -4.548011772148143),+ ("Boghiyear (latent)", -6.052089168924417),+ ("dayyear", -1.9330519941119446),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -6.052089168924417),+ ("Thursdayat <time-of-day>", -5.646624060816253),+ ("Islamic New Yearyear (latent)", -5.646624060816253),+ ("Laylat al-Qadryear (latent)", -5.135798437050262),+ ("Chhathin <named-month>|year", -6.052089168924417),+ ("Vasant Panchamiin <named-month>|year", -6.052089168924417),+ ("Diwaliin <named-month>|year", -6.052089168924417),+ ("Discovery Dayyear (latent)", -5.646624060816253),+ ("Shrove Tuesdayyear (latent)", -6.052089168924417),+ ("<time-of-day> am|pmtomorrow", -5.358941988364472),+ ("Yom Kippuryear (latent)", -6.052089168924417),+ ("<part-of-day> of <time>year (latent)", -6.052089168924417),+ ("minutehour", -5.135798437050262),+ ("Kaanum Pongalyear (latent)", -5.646624060816253),+ ("Maha Saptamiyear (latent)", -6.052089168924417),+ ("at <time-of-day>in|during the <part-of-day>",+ -5.646624060816253),+ ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+ -4.347341076685992),+ ("for <duration> from <time>December", -6.052089168924417),+ ("tomorrow<time-of-day> sharp|exactly", -6.052089168924417),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.135798437050262),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -5.646624060816253),+ ("Pentecostyear (latent)", -6.052089168924417),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.135798437050262),+ ("Eid al-Fitryear (latent)", -6.052089168924417),+ ("Mondayin|during the <part-of-day>", -6.052089168924417),+ ("Raksha Bandhanyear (latent)", -6.052089168924417),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.646624060816253),+ ("Navaratriin <named-month>|year", -6.052089168924417),+ ("Ashurayear (latent)", -6.052089168924417),+ ("Chinese New Yearyear (latent)", -6.052089168924417),+ ("Sundayyear (latent)", -6.052089168924417),+ ("Lag BaOmeryear (latent)", -6.052089168924417),+ ("last weekend of <named-month>year (latent)",+ -6.052089168924417),+ ("Eid al-Adhayear (latent)", -5.135798437050262),+ ("intersectin|during the <part-of-day>", -6.052089168924417),+ ("Christmasat <time-of-day>", -6.052089168924417),+ ("Passoveryear (latent)", -6.052089168924417),+ ("Lazarus Saturdayyear (latent)", -6.052089168924417),+ ("<day-of-month> (ordinal or number) <named-month>year (latent)",+ -6.052089168924417),+ ("Yom HaShoahyear (latent)", -5.646624060816253),+ ("Thursday<datetime> - <datetime> (interval)",+ -5.135798437050262),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -6.052089168924417),+ ("Thai Pongalin <named-month>|year", -6.052089168924417),+ ("Septemberyear (latent)", -5.646624060816253),+ ("mm/ddyear (latent)", -6.052089168924417),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -4.799326200429049),+ ("Halloweenyear (latent)", -6.052089168924417),+ ("from <time-of-day> - <time-of-day> (interval)on <date>",+ -5.358941988364472),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -5.135798437050262),+ ("at <time-of-day>intersect", -5.646624060816253),+ ("Rosh Hashanahyear (latent)", -6.052089168924417),+ ("Dhanterasyear (latent)", -6.052089168924417),+ ("Tu BiShvatyear (latent)", -6.052089168924417),+ ("Holiyear (latent)", -5.358941988364472),+ ("<time-of-day> - <time-of-day> (interval)tomorrow",+ -6.052089168924417),+ ("Holika Dahanyear (latent)", -5.358941988364472),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -6.052089168924417),+ ("dayminute", -3.4130318393091583),+ ("Mawlidyear (latent)", -6.052089168924417),+ ("from <datetime> - <datetime> (interval)on <date>",+ -5.646624060816253),+ ("<datetime> - <datetime> (interval)tomorrow",+ -6.052089168924417),+ ("Jumu'atul-Widayear (latent)", -5.135798437050262),+ ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+ -6.052089168924417),+ ("minuteday", -2.414503009198031),+ ("absorption of , after named dayintersect",+ -6.052089168924417),+ ("intersectyear (latent)", -6.052089168924417),+ ("Orthodox Easter Sundayyear (latent)", -6.052089168924417),+ ("<ordinal> <cycle> of <time>year (latent)",+ -6.052089168924417),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -6.052089168924417),+ ("Boss's Dayyear (latent)", -5.646624060816253),+ ("Tisha B'Avyear (latent)", -6.052089168924417),+ ("Isra and Mi'rajyear (latent)", -5.135798437050262),+ ("at <time-of-day>absorption of , after named day",+ -6.052089168924417),+ ("Christmasyear (latent)", -5.646624060816253),+ ("Naraka Chaturdashiyear (latent)", -5.646624060816253),+ ("at <time-of-day>on <date>", -4.953476880256307),+ ("between <time-of-day> and <time-of-day> (interval)on <date>",+ -4.442651256490317),+ ("dayweek", -6.052089168924417),+ ("Easter Sundayyear (latent)", -5.358941988364472),+ ("Thursday<time-of-day> am|pm", -6.052089168924417),+ ("Labour Dayyear (latent)", -6.052089168924417),+ ("weekyear", -5.646624060816253),+ ("hh:mmin|during the <part-of-day>", -5.358941988364472),+ ("<cycle> after|before <time><time-of-day> am|pm",+ -5.646624060816253),+ ("Hanukkahyear (latent)", -6.052089168924417),+ ("February<time> <part-of-day>", -6.052089168924417),+ ("Tuesdayin <named-month>|year", -6.052089168924417),+ ("Great Lentyear (latent)", -6.052089168924417),+ ("tomorrowat <time-of-day>", -5.358941988364472),+ ("between <time> and <time>on <date>", -4.442651256490317),+ ("Thursdayfrom|since|after <time-of-day>", -5.358941988364472),+ ("last <cycle> of <time>year (latent)", -5.358941988364472),+ ("at <time-of-day>tomorrow", -5.646624060816253),+ ("tomorrow<time-of-day> am|pm", -6.052089168924417),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -6.052089168924417),+ ("Diwaliyear (latent)", -6.052089168924417),+ ("Black Fridayyear (latent)", -5.646624060816253),+ ("in|during the <part-of-day>at <time-of-day>",+ -6.052089168924417),+ ("Chhathyear (latent)", -5.646624060816253),+ ("Vasant Panchamiyear (latent)", -6.052089168924417),+ ("Palm Sundayintersect", -6.052089168924417),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -6.052089168924417),+ ("Februaryintersect", -6.052089168924417),+ ("Mother's Dayyear (latent)", -6.052089168924417),+ ("Simchat Torahyear (latent)", -6.052089168924417),+ ("Victoria Dayyear (latent)", -5.646624060816253)],+ n = 319},+ koData =+ ClassData{prior = -1.0268064758045434, unseen = -6.343880434126331,+ likelihoods =+ HashMap.fromList+ [("<time-of-day> - <time-of-day> (interval)on <date>",+ -5.648974238161206),+ ("hourday", -5.648974238161206),+ ("<named-month> <day-of-month> (non ordinal)July",+ -5.648974238161206),+ ("dayhour", -3.2066272027920015),+ ("daymonth", -3.56953269648137),+ ("monthday", -5.243509130053042),+ ("monthyear", -4.396211269665838),+ ("<time-of-day> am|pmyear (latent)", -5.243509130053042),+ ("Thai Pongalyear (latent)", -4.955827057601261),+ ("intersecthh:mm", -5.648974238161206),+ ("from <datetime> - <datetime> (interval)July",+ -5.648974238161206),+ ("houryear", -4.732683506287051),+ ("from <time-of-day> - <time-of-day> (interval)July",+ -5.648974238161206),+ ("until <time-of-day><time-of-day> am|pm", -5.648974238161206),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.955827057601261),+ ("<time-of-day> am|pmintersect", -4.396211269665838),+ ("Octoberyear (latent)", -5.648974238161206),+ ("from|since|after <time-of-day>year (latent)",+ -4.396211269665838),+ ("from|since|after <time-of-day>on <date>", -4.732683506287051),+ ("July<day-of-month> (ordinal or number) <named-month>",+ -5.648974238161206),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -4.396211269665838),+ ("about|exactly <time-of-day>year (latent)",+ -5.648974238161206),+ ("absorption of , after named dayJuly", -5.243509130053042),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.732683506287051),+ ("Clean Mondayyear (latent)", -5.648974238161206),+ ("monthhour", -5.648974238161206),+ ("hourmonth", -4.955827057601261),+ ("todayat <time-of-day>", -5.648974238161206),+ ("from|since|after <time-of-day>July", -5.648974238161206),+ ("Mondayyear (latent)", -4.955827057601261),+ ("dayday", -5.243509130053042),+ ("mm/ddat <time-of-day>", -5.243509130053042),+ ("<time-of-day> am|pmon <date>", -4.396211269665838),+ ("dayyear", -2.678559772591505),+ ("Thursdaymm/dd", -5.648974238161206),+ ("New Year's Dayyear (latent)", -5.243509130053042),+ ("Thursdayat <time-of-day>", -4.396211269665838),+ ("<integer> to|till|before <hour-of-day>September",+ -5.648974238161206),+ ("Aprilyear (latent)", -5.648974238161206),+ ("monthminute", -5.648974238161206),+ ("<time-of-day> am|pmtomorrow", -5.648974238161206),+ ("Thursdayhh:mm", -4.732683506287051),+ ("August<day-of-month> (ordinal or number) <named-month>",+ -5.648974238161206),+ ("minutemonth", -3.857214768933151),+ ("Sundayfrom|since|after <time-of-day>", -5.648974238161206),+ ("week-endin <named-month>|year", -5.648974238161206),+ ("Augustyear (latent)", -5.243509130053042),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.243509130053042),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.243509130053042),+ ("mm/dd<time-of-day> - <time-of-day> (interval)",+ -5.243509130053042),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.648974238161206),+ ("Sundayyear (latent)", -4.955827057601261),+ ("Christmasat <time-of-day>", -5.648974238161206),+ ("<duration> after|before|from <time>December",+ -5.648974238161206),+ ("yesterday<time-of-day> am|pm", -5.648974238161206),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -4.732683506287051),+ ("mm/ddyear (latent)", -5.648974238161206),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -5.243509130053042),+ ("<named-month> <day-of-month> (non ordinal)August",+ -5.648974238161206),+ ("until <time-of-day>on <date>", -4.955827057601261),+ ("at <time-of-day>intersect", -5.243509130053042),+ ("hh:mmyear (latent)", -4.550361949493096),+ ("Holiyear (latent)", -5.648974238161206),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -5.648974238161206),+ ("dayminute", -3.164067588373206),+ ("intersectSeptember", -4.144896841384932),+ ("minuteday", -2.580921303027589),+ ("absorption of , after named dayintersect",+ -5.648974238161206),+ ("Februaryin|during the <part-of-day>", -5.648974238161206),+ ("hh:mmon <date>", -3.634071217618941),+ ("Saturdayyear (latent)", -5.648974238161206),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -5.648974238161206),+ ("absorption of , after named daySeptember",+ -4.732683506287051),+ ("Naraka Chaturdashiyear (latent)", -5.648974238161206),+ ("on <date>September", -5.243509130053042),+ ("at <time-of-day>on <date>", -5.243509130053042),+ ("in <named-month>|yearyear (latent)", -5.648974238161206),+ ("dayweek", -5.648974238161206),+ ("Easter Sundayyear (latent)", -5.243509130053042),+ ("Thursday<time-of-day> am|pm", -5.243509130053042),+ ("absorption of , after named dayFebruary", -4.732683506287051),+ ("July<integer> to|till|before <hour-of-day>",+ -5.648974238161206),+ ("tomorrowat <time-of-day>", -5.648974238161206),+ ("<integer> to|till|before <hour-of-day>July",+ -5.648974238161206),+ ("Thursdayfrom|since|after <time-of-day>", -4.039536325727106),+ ("tomorrow<time-of-day> am|pm", -5.648974238161206),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -4.955827057601261),+ ("Diwaliyear (latent)", -5.243509130053042),+ ("Tuesdayfrom|since|after <time-of-day>", -5.648974238161206),+ ("Fridayyear (latent)", -5.243509130053042),+ ("minuteyear", -4.396211269665838)],+ n = 178}}),+ ("one eleven",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("after lunch/work/school",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("early morning",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <number> (implicit minutes)",+ Classifier{okData =+ ClassData{prior = -1.2039728043259361,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.3184537311185346),+ ("integer (0..19)", -1.2992829841302609)],+ n = 9},+ koData =+ ClassData{prior = -0.35667494393873245,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.19105523676270922),+ ("integer (0..19)", -1.749199854809259)],+ n = 21}}),+ ("<ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.791759469228055),+ ("ordinal (digits)quarter (grain)year (latent)",+ -2.1972245773362196),+ ("quarteryear", -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+ -2.1972245773362196),+ ("ordinal (digits)day (grain)this|last|next <cycle>",+ -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+ -2.1972245773362196),+ ("weekmonth", -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+ -2.1972245773362196)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods = HashMap.fromList [("", 0.0)], n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -1.0116009116784799,+ unseen = -3.6375861597263857,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -2.001480000210124),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("hh:mmhh:mm", -2.001480000210124),+ ("dayday", -2.512305623976115),+ ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+ ("hourhour", -2.512305623976115),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+ n = 8},+ koData =+ ClassData{prior = -0.45198512374305727,+ unseen = -3.912023005428146,+ likelihoods =+ HashMap.fromList+ [("hourday", -3.1986731175506815),+ ("dayhour", -2.793208009442517),+ ("<day-of-month> (ordinal)time-of-day (latent)",+ -3.1986731175506815),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -3.1986731175506815),+ ("hh:mmtime-of-day (latent)", -2.2823823856765264),+ ("minuteminute", -2.793208009442517),+ ("time-of-day (latent)time-of-day (latent)",+ -2.793208009442517),+ ("dayday", -3.1986731175506815),+ ("hourhour", -2.505525936990736),+ ("dayyear", -3.1986731175506815),+ ("minutehour", -2.2823823856765264),+ ("hh:mmintersect", -2.793208009442517),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("time-of-day (latent)<time-of-day> am|pm",+ -3.1986731175506815),+ ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+ -3.1986731175506815)],+ n = 14}}),+ ("Saturday",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("the <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+ -1.7346010553881064),+ ("weekmonth", -1.7346010553881064),+ ("week (grain)October", -1.7346010553881064),+ ("week (grain)<named-month> <day-of-month> (non ordinal)",+ -1.7346010553881064),+ ("weekday", -1.2237754316221157)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("number.number hours",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.6094379124341003),+ ("hh:mmhh:mm", -1.6094379124341003),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+ ("hourhour", -2.3025850929940455),+ ("hourminute", -2.3025850929940455),+ ("time-of-day (latent)<time-of-day> sharp|exactly",+ -2.70805020110221),+ ("time-of-day (latent)hh:mm", -2.70805020110221),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.6094379124341003),+ ("time-of-day (latent)time-of-day (latent)",+ -2.0149030205422647),+ ("hourhour", -1.791759469228055),+ ("minutehour", -1.6094379124341003),+ ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+ n = 9}}),+ ("integer 21..99",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)", -0.6931471805599453),+ ("integer (20..90)integer (0..19)", -0.6931471805599453)],+ n = 4}}),+ ("Tisha B'Av",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("yyyy-mm-dd",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (latent)",+ Classifier{okData =+ ClassData{prior = -0.14892327639210656,+ unseen = -4.955827057601261,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -4.348511193973878e-2),+ ("intersect 2 numbers", -3.5624655292582776)],+ n = 137},+ koData =+ ClassData{prior = -1.9778617488619157, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.3121863889661687),+ ("negative numbers", -0.6190392084062235),+ ("compose by multiplication", -1.8718021769015913)],+ n = 22}}),+ ("mm/dd/yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Civic Holiday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Memorial Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Monday",+ Classifier{okData =+ ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.2237754316221157,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+ ("yesterday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm:ss",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Hanukkah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<hour-of-day> <integer>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>integer (20..90)", -1.3862943611198906),+ ("hour", -0.9808292530117262),+ ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>integer (numeric)",+ -1.0986122886681098),+ ("hour", -1.0986122886681098)],+ n = 1}}),+ ("Labour Day",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("nth <time> of <time>",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.9808292530117262),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -2.0794415416798357),+ ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+ -1.6739764335716716),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+ -1.6739764335716716)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.0986122886681098),+ ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+ -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+ -1.3862943611198906)],+ n = 3}}),+ ("Valentine's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("April",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maha Saptami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Discovery Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week (grain)",+ Classifier{okData =+ ClassData{prior = -4.0821994520255166e-2,+ unseen = -4.304065093204169,+ likelihoods = HashMap.fromList [("", 0.0)], n = 72},+ koData =+ ClassData{prior = -3.2188758248682006,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("<part-of-day> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+ -2.3513752571634776),+ ("part of daysintersect", -2.3513752571634776),+ ("hourday", -0.9650808960435872),+ ("part of daysthe <day-of-month> (ordinal)",+ -2.3513752571634776),+ ("part of daysthe <day-of-month> (number)",+ -2.3513752571634776),+ ("part of daysthis <time>", -2.3513752571634776),+ ("part of daysChristmas", -1.9459101490553135)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("six thirty six a.m.",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.252762968495368),+ ("one twenty two", -0.8472978603872037),+ ("one eleven", -1.252762968495368)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Shrove Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("now",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("<day-of-month> (ordinal or number) of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.3513752571634776),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.3513752571634776),+ ("ordinal (digits)February", -2.3513752571634776),+ ("integer (numeric)February", -1.9459101490553135),+ ("month", -0.9650808960435872),+ ("ordinal (digits)March", -2.3513752571634776),+ ("integer (numeric)July", -2.3513752571634776)],+ n = 7},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.5040773967762742),+ ("month", -1.5040773967762742)],+ n = 1}}),+ ("this <part-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("hour", -0.6931471805599453),+ ("part of days", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Kaanum Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom Kippur",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("The Twelfth",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("powers of tens",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Friday",+ Classifier{okData =+ ClassData{prior = -0.3677247801253174,+ unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ koData =+ ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("in|during the <part-of-day>",+ Classifier{okData =+ ClassData{prior = -8.701137698962981e-2,+ unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("early morning", -2.5257286443082556),+ ("hour", -0.7339691750802004),+ ("part of days", -0.8209805520698302)],+ n = 11},+ koData =+ ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("hour", -0.916290731874155),+ ("part of days", -0.916290731874155)],+ n = 1}}),+ ("tomorrow",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh(:mm) - <time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Groundhog Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|last|next <cycle>",+ Classifier{okData =+ ClassData{prior = -7.503518594291408e-2,+ unseen = -5.10594547390058,+ likelihoods =+ HashMap.fromList+ [("week", -1.1295745142720766),+ ("month (grain)", -2.797281334830153),+ ("year (grain)", -2.5349170703626616),+ ("week (grain)", -1.1295745142720766),+ ("quarter", -3.4904285153900982), ("year", -2.5349170703626616),+ ("month", -2.797281334830153),+ ("quarter (grain)", -3.4904285153900982)],+ n = 77},+ koData =+ ClassData{prior = -2.627081138568543, unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("week", -1.4816045409242156),+ ("week (grain)", -1.4816045409242156),+ ("day", -1.9924301646902063),+ ("day (grain)", -1.9924301646902063)],+ n = 6}}),+ ("Mother's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Simchat Torah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Victoria Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Eve",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Raksha Bandhan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ashura",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Palm Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Adha",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -1.9459101490553135),+ ("time-of-day (latent)", -1.9459101490553135),+ ("<time-of-day> am|pm", -1.9459101490553135),+ ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+ ("minute", -1.540445040947149)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinals (first..twentieth,thirtieth,...)",+ -1.7047480922384253),+ ("ordinal (digits)", -0.2006706954621511)],+ n = 9},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("ordinals (first..twentieth,thirtieth,...)",+ -0.916290731874155),+ ("ordinal (digits)", -0.5108256237659907)],+ n = 3}}),+ ("last weekend of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("October", -0.9555114450274363), ("July", -1.8718021769015913),+ ("month", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (number)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lag BaOmer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("fractional number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+ ("Sunday",+ Classifier{okData =+ ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Chinese New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("February",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods = HashMap.fromList [("", 0.0)], n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("minute (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|this|next <season>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1}}),+ ("time-of-day (latent)",+ Classifier{okData =+ ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.11778303565638351),+ ("integer (0..19)", -2.330755969960742)],+ n = 69},+ koData =+ ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -9.352605801082348e-2),+ ("integer (0..19)", -2.9267394020670396),+ ("integer 21..99", -3.332204510175204)],+ n = 53}}),+ ("beginning of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last <day-of-week> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.916290731874155),+ ("SundayMarch", -1.6094379124341003),+ ("MondayMarch", -1.6094379124341003),+ ("Sundayintersect", -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.13858616328614667,+ unseen = -5.147494476813453,+ likelihoods =+ HashMap.fromList+ [("week", -2.5026062268874014),+ ("integer (0..19)year (grain)", -3.062222014822824),+ ("integer (numeric)day (grain)", -2.743768283704289),+ ("integer (0..19)second (grain) ", -3.7553691953827695),+ ("integer (0..19)hour (grain)", -3.062222014822824),+ ("second", -3.349904087274605),+ ("integer (numeric)second (grain) ", -4.04305126783455),+ ("integer (numeric)year (grain)", -3.349904087274605),+ ("day", -2.4336133554004498), ("year", -2.576714199041123),+ ("integer (numeric)week (grain)", -3.062222014822824),+ ("integer (0..19)month (grain)", -3.5322256440685593),+ ("hour", -2.6567569067146595), ("month", -3.1957534074473464),+ ("integer (numeric)minute (grain)", -3.1957534074473464),+ ("integer (0..19)minute (grain)", -3.062222014822824),+ ("integer (numeric)month (grain)", -4.04305126783455),+ ("minute", -2.5026062268874014),+ ("integer (numeric)hour (grain)", -3.5322256440685593),+ ("integer (0..19)day (grain)", -3.5322256440685593),+ ("integer (0..19)week (grain)", -3.1957534074473464)],+ n = 74},+ koData =+ ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+ ("integer (numeric)hour (grain)", -1.4087672169719492),+ ("integer (0..19)quarter (grain)", -3.1135153092103742)],+ n = 11}}),+ ("hhmm (latent)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,+ likelihoods =+ HashMap.fromList+ [("integer after|past <hour-of-day>", -3.951243718581427),+ ("at <time-of-day>", -2.202043863772168),+ ("from|since|after <time-of-day>", -3.7281001672672174),+ ("<time-of-day> o'clock", -4.238925791033208),+ ("half after|past <hour-of-day>", -4.238925791033208),+ ("time-of-day (latent)", -1.7266201670570935),+ ("hhmm (latent)", -4.6443908991413725),+ ("hh:mm", -2.293015641977895),+ ("quarter after|past <hour-of-day>", -4.6443908991413725),+ ("about|exactly <time-of-day>", -4.6443908991413725),+ ("until <time-of-day>", -3.951243718581427),+ ("hour", -1.2104036946562264),+ ("<time-of-day> sharp|exactly", -4.6443908991413725),+ ("minute", -1.754019141245208)],+ n = 96},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.283414346005772),+ ("from|since|after <time-of-day>", -3.283414346005772),+ ("<hour-of-day> <integer>", -3.6888794541139363),+ ("time-of-day (latent)", -1.0498221244986778),+ ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],+ n = 32}}),+ ("Yom Ha'atzmaut",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+ ("integer (numeric)integer (numeric)July", -1.252762968495368),+ ("month", -0.8472978603872037)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thiru Onam",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thai Pongal",+ Classifier{okData =+ ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -0.8472978603872037,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Vijayadashami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thanksgiving Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("a <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.5306282510621704,+ unseen = -3.5553480614894135,+ likelihoods =+ HashMap.fromList+ [("week", -2.1400661634962708),+ ("year (grain)", -2.4277482359480516),+ ("second", -2.833213344056216),+ ("week (grain)", -2.1400661634962708),+ ("day", -2.1400661634962708),+ ("minute (grain)", -2.833213344056216),+ ("year", -2.4277482359480516),+ ("second (grain) ", -2.833213344056216),+ ("minute", -2.833213344056216),+ ("day (grain)", -2.1400661634962708)],+ n = 10},+ koData =+ ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("hour (grain)", -1.7227665977411035),+ ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+ ("quarter (grain)", -1.9459101490553135)],+ n = 7}}),+ ("at the beginning|end of <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("year (latent)", -0.6931471805599453),+ ("year", -0.6931471805599453)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Dhanteras",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Tu BiShvat",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Whit Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm",+ Classifier{okData =+ ClassData{prior = -5.6352936551131744e-2,+ unseen = -4.2626798770413155,+ likelihoods = HashMap.fromList [("", 0.0)], n = 69},+ koData =+ ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("Holi",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Rosh Hashanah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Holika Dahan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("second (grain) ",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinals (first..twentieth,thirtieth,...)",+ Classifier{okData =+ ClassData{prior = -0.1941560144409575, unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14},+ koData =+ ClassData{prior = -1.7346010553881064,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Mawlid",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Jumu'atul-Wida",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.252762968495368),+ ("dayday", -0.8472978603872037),+ ("day (grain)yesterday", -1.252762968495368)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("about|exactly <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("week", -1.791759469228055),+ ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+ ("this|last|next <cycle>", -1.791759469228055),+ ("day", -2.4849066497880004),+ ("time-of-day (latent)", -2.890371757896165),+ ("hhmm (latent)", -2.4849066497880004),+ ("<time-of-day> am|pm", -2.890371757896165),+ ("hour", -2.1972245773362196),+ ("next <time>", -2.890371757896165),+ ("this|next <day-of-week>", -2.890371757896165),+ ("minute", -2.4849066497880004)],+ n = 12},+ koData =+ ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+ ("time-of-day (latent)", -2.0794415416798357),+ ("hour", -2.0794415416798357)],+ n = 2}}),+ ("Sukkot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> in <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("monthyear", -1.2992829841302609),+ ("Marcha <unit-of-duration>", -1.7047480922384253),+ ("March<integer> <unit-of-duration>", -1.7047480922384253),+ ("Vijayadashami<integer> <unit-of-duration>",+ -1.7047480922384253),+ ("dayyear", -1.7047480922384253)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("World Vegan Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ Classifier{okData =+ ClassData{prior = -0.46262352194811296,+ unseen = -5.099866427824199,+ likelihoods =+ HashMap.fromList+ [("Wednesday<named-month> <day-of-month> (non ordinal)",+ -4.400603020246817),+ ("dayhour", -3.147840051751449),+ ("daymonth", -3.147840051751449),+ ("<named-month> <day-of-month> (non ordinal)Friday",+ -4.400603020246817),+ ("Friday<named-month> <day-of-month> (non ordinal)",+ -3.7074558396868715),+ ("Wednesdayintersect", -4.400603020246817),+ ("Black Fridaythis|last|next <cycle>", -4.400603020246817),+ ("Labour Daythis|last|next <cycle>", -4.400603020246817),+ ("<part-of-day> of <time>February", -4.400603020246817),+ ("Saturday<time-of-day> am|pm", -4.400603020246817),+ ("Martin Luther King's Daythis|last|next <cycle>",+ -3.9951379121386528),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.400603020246817),+ ("on <date><time-of-day> am|pm", -4.400603020246817),+ ("hourmonth", -4.400603020246817),+ ("dayday", -2.5288008433452256),+ ("the <day-of-month> (ordinal)February", -3.9951379121386528),+ ("WednesdayOctober", -4.400603020246817),+ ("Wednesdaythis|last|next <cycle>", -3.9951379121386528),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -3.484312288372662),+ ("dayyear", -2.791165107812717),+ ("Saturday<named-month> <day-of-month> (non ordinal)",+ -4.400603020246817),+ ("Thursdayhh:mm", -3.9951379121386528),+ ("Thanksgiving Daythis|last|next <cycle>", -4.400603020246817),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -3.9951379121386528),+ ("TuesdayOctober", -4.400603020246817),+ ("the <day-of-month> (ordinal)March", -4.400603020246817),+ ("Mondaythis|last|next <cycle>", -4.400603020246817),+ ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.400603020246817),+ ("Fridayintersect", -4.400603020246817),+ ("Thursday<datetime> - <datetime> (interval)",+ -3.7074558396868715),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.484312288372662),+ ("Tuesdaythis|last|next <cycle>", -4.400603020246817),+ ("Sunday<named-month> <day-of-month> (non ordinal)",+ -4.400603020246817),+ ("dayminute", -3.0143086591269266),+ ("minuteday", -3.484312288372662),+ ("this|last|next <cycle>Sunday", -4.400603020246817),+ ("intersectyear (latent)", -4.400603020246817),+ ("Sundaythis|last|next <cycle>", -4.400603020246817),+ ("weekday", -4.400603020246817),+ ("dayweek", -3.3019907315787074),+ ("Thursday<time-of-day> am|pm", -4.400603020246817),+ ("Monday<named-month> <day-of-month> (non ordinal)",+ -3.9951379121386528),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -3.9951379121386528)],+ n = 51},+ koData =+ ClassData{prior = -0.9932517730102834, unseen = -4.804021044733257,+ likelihoods =+ HashMap.fromList+ [("week-endJuly", -4.102643365036796),+ ("week-endOctober", -3.4094961844768505),+ ("daymonth", -1.9054187877005764),+ ("TuesdaySeptember", -4.102643365036796),+ ("Wednesdayintersect", -4.102643365036796),+ ("hourmonth", -3.004031076368686),+ ("Fridaythis|last|next <cycle>", -4.102643365036796),+ ("SundayFebruary", -4.102643365036796),+ ("WednesdayOctober", -4.102643365036796),+ ("week-endintersect", -4.102643365036796),+ ("dayyear", -4.102643365036796),+ ("FridayJuly", -3.6971782569286313),+ ("FridaySeptember", -4.102643365036796),+ ("WednesdayFebruary", -4.102643365036796),+ ("minutemonth", -3.186352633162641),+ ("SundayMarch", -4.102643365036796),+ ("MondayFebruary", -3.6971782569286313),+ ("Fridayintersect", -4.102643365036796),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.6971782569286313),+ ("dayminute", -3.4094961844768505),+ ("SaturdaySeptember", -4.102643365036796),+ ("intersectSeptember", -3.186352633162641),+ ("MondayMarch", -4.102643365036796),+ ("on <date>September", -3.6971782569286313),+ ("Tuesdayintersect", -4.102643365036796),+ ("Sundayintersect", -4.102643365036796)],+ n = 30}}),+ ("last <time>",+ Classifier{okData =+ ClassData{prior = -0.5306282510621704,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("Father's Day", -2.772588722239781),+ ("Martin Luther King's Day", -2.772588722239781),+ ("Mother's Day", -2.772588722239781),+ ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),+ ("Chinese New Year", -2.367123614131617),+ ("Thanksgiving Day", -2.772588722239781),+ ("Easter Sunday", -2.772588722239781),+ ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),+ ("week-end", -2.772588722239781)],+ n = 10},+ koData =+ ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("Monday", -2.5649493574615367), ("day", -2.159484249353372),+ ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),+ ("week-end", -1.466337068793427)],+ n = 7}}),+ ("March",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods = HashMap.fromList [("", 0.0)], n = 19},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("Octoberordinal (digits)", -2.120263536200091),+ ("Thursdayordinal (digits)", -2.5257286443082556),+ ("day", -2.120263536200091),+ ("Augustordinal (digits)", -2.5257286443082556),+ ("Marchordinals (first..twentieth,thirtieth,...)",+ -2.120263536200091),+ ("Tuesdayordinal (digits)", -2.5257286443082556),+ ("month", -1.2729656758128873),+ ("Marchordinal (digits)", -2.5257286443082556)],+ n = 8},+ koData =+ ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("from|since|after <time-of-day>ordinal (digits)",+ -1.8718021769015913),+ ("Augustordinal (digits)", -1.8718021769015913),+ ("month", -1.466337068793427)],+ n = 2}}),+ ("Clean Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Easter Sunday",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("Christmas",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("until <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -2.3025850929940455),+ ("<time-of-day> am|pm", -1.6094379124341003),+ ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),+ ("minute", -1.3862943611198906)],+ n = 6},+ koData =+ ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.7227665977411035),+ ("yesterday", -2.2335922215070942),+ ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),+ ("hour", -2.639057329615259), ("minute", -1.252762968495368)],+ n = 10}}),+ ("mm.dd.yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Isra and Mi'raj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<duration> after|before|from <time>",+ Classifier{okData =+ ClassData{prior = -0.3184537311185346,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("a <unit-of-duration>now", -2.803360380906535),+ ("a <unit-of-duration>Christmas", -2.803360380906535),+ ("dayday", -2.803360380906535),+ ("<integer> <unit-of-duration>today", -2.803360380906535),+ ("daysecond", -2.803360380906535),+ ("a <unit-of-duration>right now", -2.803360380906535),+ ("minutenograin", -2.803360380906535),+ ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+ ("<integer> <unit-of-duration>Easter Sunday",+ -2.803360380906535),+ ("secondnograin", -2.803360380906535),+ ("yearday", -2.1102132003465894),+ ("daynograin", -2.803360380906535),+ ("<integer> <unit-of-duration>now", -2.3978952727983707)],+ n = 8},+ koData =+ ClassData{prior = -1.2992829841302609,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("dayhour", -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -2.4423470353692043),+ ("dayday", -2.03688192726104),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -2.4423470353692043)],+ n = 3}}),+ ("<day-of-month> (ordinal or number) of <month>",+ Classifier{okData =+ ClassData{prior = -8.004270767353637e-2,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.803360380906535),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.803360380906535),+ ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+ ("integer (numeric)this|last|next <cycle>",+ -2.3978952727983707),+ ("ordinal (digits)February", -2.803360380906535),+ ("integer (numeric)February", -2.3978952727983707),+ ("month", -0.9315582040049435),+ ("ordinal (digits)March", -2.803360380906535),+ ("integer (numeric)July", -2.803360380906535)],+ n = 12},+ koData =+ ClassData{prior = -2.5649493574615367,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.7047480922384253),+ ("month", -1.7047480922384253)],+ n = 1}}),+ ("decimal number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Labour Day weekend",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Naraka Chaturdashi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("beginning of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("next <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6888794541139363,+ likelihoods =+ HashMap.fromList+ [("Martin Luther King's Day", -2.9704144655697013),+ ("Halloween", -2.9704144655697013),+ ("Wednesday", -2.9704144655697013),+ ("Boss's Day", -2.9704144655697013),+ ("Memorial Day", -2.9704144655697013),+ ("Monday", -2.9704144655697013),+ ("Discovery Day", -2.9704144655697013),+ ("Mother's Day", -2.9704144655697013),+ ("day", -1.0986122886681098),+ ("Thanksgiving Day", -2.9704144655697013),+ ("March", -2.9704144655697013), ("month", -2.9704144655697013),+ ("Tuesday", -2.277267285009756)],+ n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> sharp|exactly",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -2.1400661634962708),+ ("time-of-day (latent)", -2.1400661634962708),+ ("hhmm (latent)", -2.1400661634962708),+ ("<time-of-day> am|pm", -2.1400661634962708),+ ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+ ("minute", -1.4469189829363254)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <named-month>|year",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("October", -2.4423470353692043),+ ("year (latent)", -1.0560526742493137),+ ("year", -1.0560526742493137), ("March", -2.4423470353692043),+ ("month", -2.03688192726104)],+ n = 9},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("October", -1.2992829841302609),+ ("year (latent)", -1.7047480922384253),+ ("year", -1.7047480922384253), ("month", -1.2992829841302609)],+ n = 3}}),+ ("Islamic New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("negative numbers",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -7.696104113612832e-2),+ ("integer (0..19)", -2.6026896854443837)],+ n = 25}}),+ ("about|exactly <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("half an hour", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time> before last|after next",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("Wednesday", -1.8718021769015913),+ ("Friday", -1.466337068793427), ("day", -1.1786549963416462),+ ("March", -1.8718021769015913), ("month", -1.8718021769015913)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by the end of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("this|last|next <cycle>", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hhmm (military) am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,+ likelihoods =+ HashMap.fromList+ [("intersecthh:mm", -3.1918471524802814),+ ("intersect<time-of-day> am|pm", -3.1918471524802814),+ ("minuteminute", -1.457246097092175),+ ("hh:mmhh:mm", -2.093234863812172),+ ("dayday", -3.1918471524802814),+ ("hourhour", -2.093234863812172),+ ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -3.597312260588446),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.597312260588446),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),+ ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],+ n = 26},+ koData =+ ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("<named-month> <day-of-month> (non ordinal)July",+ -3.1135153092103742),+ ("daymonth", -2.70805020110221),+ ("from|since|after <time-of-day>intersect", -2.70805020110221),+ ("<time-of-day> am|pmintersect", -3.1135153092103742),+ ("hh:mm<time-of-day> am|pm", -2.70805020110221),+ ("minuteminute", -1.8607523407150064),+ ("hourhour", -2.70805020110221),+ ("minutehour", -2.70805020110221),+ ("hh:mmintersect", -2.1972245773362196),+ ("<named-month> <day-of-month> (non ordinal)August",+ -3.1135153092103742),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.1135153092103742)],+ n = 12}}),+ ("Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Day",+ Classifier{okData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+ ("fortnight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> and an half hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("National Patriots' Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Laylat al-Qadr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Boghi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("at the beginning|end of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("January", -1.3862943611198906),+ ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+ n = 4},+ koData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("October", -1.0986122886681098),+ ("month", -1.0986122886681098)],+ n = 1}}),+ ("<time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.529395204760564),+ ("hh:mmhh:mm", -1.8971199848858813),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -2.4849066497880004),+ ("hourhour", -1.6964492894237302),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -3.4011973816621555),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.4011973816621555),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),+ ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],+ n = 22},+ koData =+ ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>time-of-day (latent)",+ -3.4657359027997265),+ ("hh:mmtime-of-day (latent)", -1.7609878105613013),+ ("hh:mm<time-of-day> am|pm", -3.0602707946915624),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -3.4657359027997265),+ ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),+ ("hourhour", -2.2129729343043585),+ ("minutehour", -1.2144441041932315),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.4657359027997265),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -2.5494451709255714),+ ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),+ ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+ -3.0602707946915624)],+ n = 24}}),+ ("military spelled out numbers am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods =+ HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("winter",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("nth <time> after <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+ -0.916290731874155)],+ n = 1}}),+ ("<named-month> <day-of-month> (non ordinal)",+ Classifier{okData =+ ClassData{prior = -0.42121346507630353,+ unseen = -3.951243718581427,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.5455312716044354),+ ("Marchinteger (numeric)", -2.833213344056216),+ ("Aprilinteger (numeric)", -3.2386784521643803),+ ("month", -0.8407831793660099),+ ("Februaryinteger (numeric)", -1.9859154836690123),+ ("Septemberinteger (numeric)", -2.833213344056216),+ ("Octoberinteger (numeric)", -2.833213344056216),+ ("Julyinteger (numeric)", -2.1400661634962708)],+ n = 21},+ koData =+ ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.3353749158170367),+ ("Marchinteger (numeric)", -2.740840023925201),+ ("Aprilinteger (numeric)", -2.740840023925201),+ ("month", -0.9490805546971459),+ ("from|since|after <time-of-day>integer (numeric)",+ -2.3353749158170367),+ ("Julyinteger (numeric)", -1.6422277352570913)],+ n = 11}}),+ ("Diwali",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("last night",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|next <day-of-week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.995732273553991,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.2512917986064953),+ ("Wednesday", -2.2512917986064953),+ ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+ ("Tuesday", -1.55814461804655)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinal (digits)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6635616461296463,+ likelihoods = HashMap.fromList [("", 0.0)], n = 37},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter (grain)",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("last <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("day (grain)October", -1.791759469228055),+ ("daymonth", -1.2809338454620642),+ ("day (grain)intersect", -1.791759469228055),+ ("weekmonth", -1.791759469228055),+ ("week (grain)intersect", -2.1972245773362196),+ ("week (grain)September", -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Chhath",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Vasant Panchami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month>(ordinal) <named-month> year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)April", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Black Friday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week-end",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+ ("Great Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maundy Thursday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("day (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.295836866004329,+ likelihoods = HashMap.fromList [("", 0.0)], n = 25},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("right now",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("for <duration> from <time>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -1.5040773967762742),+ ("dayday", -1.0986122886681098),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -1.5040773967762742)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.252762968495368),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -1.252762968495368)],+ n = 1}}),+ ("compose by multiplication",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("between <time> and <time>",+ Classifier{okData =+ ClassData{prior = -1.0986122886681098,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.832909122935104),+ ("hh:mmhh:mm", -0.832909122935104)],+ n = 9},+ koData =+ ClassData{prior = -0.40546510810816444,+ unseen = -3.7376696182833684,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.410986973710262),+ ("minuteminute", -1.410986973710262),+ ("minutehour", -1.410986973710262),+ ("hh:mmintersect", -1.410986973710262)],+ n = 18}}),+ ("<month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+ ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",+ -2.740840023925201),+ ("from|since|after <time-of-day>integer (numeric)integer (numeric)",+ -2.740840023925201),+ ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",+ -2.740840023925201),+ ("Augustordinal (digits)integer (numeric)",+ -2.3353749158170367),+ ("month", -0.8690378470236094),+ ("Augustordinal (digits)ordinal (digits)",+ -2.3353749158170367)],+ n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of days",+ Classifier{okData =+ ClassData{prior = -3.509131981127006e-2,+ unseen = -3.4011973816621555,+ likelihoods = HashMap.fromList [("", 0.0)], n = 28},+ koData =+ ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("at the beginning|end of <week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.330733340286331,+ likelihoods =+ HashMap.fromList+ [("week", -0.706570200892086),+ ("this|last|next <cycle>", -0.8209805520698302),+ ("about|exactly <time-of-day>", -2.70805020110221)],+ n = 36},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Fitr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("summer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Trinity Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("dd-dd <month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)September",+ -1.791759469228055),+ ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),+ ("ordinal (digits)ordinal (digits)October",+ -2.1972245773362196),+ ("integer (numeric)integer (numeric)July", -2.1972245773362196),+ ("month", -0.9444616088408514),+ ("ordinal (digits)ordinal (digits)August",+ -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Pentecost",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.639057329615259),+ ("Martin Luther King's Day", -2.639057329615259),+ ("Monday", -2.639057329615259), ("day", -1.1349799328389845),+ ("Thanksgiving Day", -2.639057329615259),+ ("Christmas", -2.639057329615259), ("hour", -2.639057329615259),+ ("winter", -2.639057329615259),+ ("week-end", -2.639057329615259),+ ("summer", -2.2335922215070942)],+ n = 9},+ koData =+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("August", Classifier{okData =
Duckling/Ranking/Classifiers/EN_GB.hs view
@@ -21,2395 +21,3044 @@ classifiers :: Classifiers classifiers = HashMap.fromList- [("<integer> to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("integer (numeric)noon|midnight|EOD|end of day",- -0.916290731874155),- ("hour", -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.13353139262452263,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hour", -0.7537718023763802),- ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],- n = 7}}),- ("<time> timezone",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -1.824549292051046),- ("<time-of-day> am|pm", -1.6422277352570913),- ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),- ("minute", -1.824549292051046)],- n = 13},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thursday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (numeric)",- Classifier{okData =- ClassData{prior = -0.7889513094975535, unseen = -5.225746673713201,- likelihoods = HashMap.fromList [("", 0.0)], n = 184},- koData =- ClassData{prior = -0.6057243655887863, unseen = -5.407171771460119,- likelihoods = HashMap.fromList [("", 0.0)], n = 221}}),- ("<duration> hence|ago",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.784189633918261,- likelihoods =- HashMap.fromList- [("week", -1.563975538357343), ("day", -1.8152899666382492),- ("year", -2.662587827025453),- ("<integer> <unit-of-duration>", -1.0531499145913523),- ("a <unit-of-duration>", -2.662587827025453),- ("month", -2.662587827025453),- ("fortnight", -2.662587827025453)],- n = 18},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("noon|midnight|EOD|end of day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<cycle> after|before <time>",- Classifier{okData =- ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.6094379124341003),- ("dayday", -1.0986122886681098),- ("day (grain)yesterday", -1.6094379124341003)],- n = 4},- koData =- ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("dayhour", -1.466337068793427),- ("year (grain)Christmas", -1.8718021769015913),- ("day (grain)intersect", -1.466337068793427),- ("yearday", -1.8718021769015913)],- n = 3}}),- ("Martin Luther King's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (20..90)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("mm/yyyy",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("integer after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("hour", -0.8109302162163288),- ("integer (numeric)time-of-day (latent)", -1.0986122886681098),- ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal or number) <named-month>",- Classifier{okData =- ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("ordinal (digits)December", -2.1400661634962708),- ("ordinal (digits)February", -2.1400661634962708),- ("integer (numeric)April", -2.1400661634962708),- ("month", -1.4469189829363254)],- n = 3},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -3.4011973816621555,- likelihoods =- HashMap.fromList- [("ordinal (digits)October", -2.6741486494265287),- ("ordinal (digits)July", -2.6741486494265287),- ("integer (numeric)September", -2.268683541318364),- ("ordinal (digits)August", -2.6741486494265287),- ("integer (numeric)August", -2.6741486494265287),- ("ordinal (digits)April", -2.6741486494265287),- ("month", -1.0647107369924282),- ("integer (numeric)July", -2.268683541318364)],- n = 9}}),- ("<time> <part-of-day>",- Classifier{okData =- ClassData{prior = -9.844007281325252e-2,- unseen = -4.430816798843313,- likelihoods =- HashMap.fromList- [("<day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("dayhour", -1.5284688499004333),- ("Mondayearly morning", -3.3202283191284883),- ("time-of-day (latent)tonight", -3.3202283191284883),- ("hourhour", -2.339399066116762),- ("<time-of-day> o'clockin|during the <part-of-day>",- -3.7256934272366524),- ("todaypart of days", -3.7256934272366524),- ("minutehour", -2.627081138568543),- ("at <time-of-day>in|during the <part-of-day>",- -3.3202283191284883),- ("time-of-day (latent)this <part-of-day>", -3.7256934272366524),- ("Mondayin|during the <part-of-day>", -3.7256934272366524),- ("intersectpart of days", -3.7256934272366524),- ("intersectin|during the <part-of-day>", -3.7256934272366524),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -3.7256934272366524),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("tomorrowpart of days", -2.339399066116762),- ("hh:mmin|during the <part-of-day>", -3.0325462466767075),- ("time-of-day (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("hhmm (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("yesterdaypart of days", -3.7256934272366524),- ("Mondaypart of days", -3.7256934272366524)],- n = 29},- koData =- ClassData{prior = -2.367123614131617, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("yearhour", -2.740840023925201),- ("monthhour", -2.740840023925201),- ("hourhour", -2.740840023925201),- ("past year (latent)in|during the <part-of-day>",- -2.740840023925201),- ("Februaryin|during the <part-of-day>", -2.740840023925201),- ("time-of-day (latent)in|during the <part-of-day>",- -2.740840023925201)],- n = 3}}),- ("dd/mm",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -0.2876820724517809, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24}}),- ("today",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("at <time-of-day>",- Classifier{okData =- ClassData{prior = -9.381875521765486e-2,- unseen = -4.90527477843843,- likelihoods =- HashMap.fromList- [("<time> timezone", -3.7992275112828016),- ("noon|midnight|EOD|end of day", -3.7992275112828016),- ("integer after|past <hour-of-day>", -3.7992275112828016),- ("half after|past <hour-of-day>", -4.204692619390966),- ("time-of-day (latent)", -1.7197859696029658),- ("hhmm (latent)", -3.5115454388310208),- ("<time-of-day> am|pm", -1.8067973465925955),- ("hh:mm", -3.288401887516811),- ("about|exactly <time-of-day>", -3.7992275112828016),- ("hour", -1.0911773101805915),- ("<time-of-day> sharp|exactly", -4.204692619390966),- ("minute", -2.0074680420547466)],- n = 61},- koData =- ClassData{prior = -2.412933150162911, unseen = -3.2188758248682006,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -1.2321436812926323),- ("hour", -1.2321436812926323)],- n = 6}}),- ("December",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("absorption of , after named day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("on <date>", -2.1972245773362196),- ("Wednesday", -2.6026896854443837),- ("Saturday", -2.6026896854443837),- ("Monday", -2.1972245773362196),- ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),- ("Sunday", -2.6026896854443837)],- n = 10},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("September",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("tonight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("last|past|next <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("week", -2.456735772821304), ("second", -2.639057329615259),- ("day", -2.3025850929940455), ("year", -2.639057329615259),- ("<integer> <unit-of-duration>", -0.7827593392496325),- ("hour", -2.639057329615259), ("month", -2.639057329615259),- ("minute", -2.639057329615259)],- n = 31},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("the ides of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("on <date>",- Classifier{okData =- ClassData{prior = -0.1670540846631662, unseen = -4.007333185232471,- likelihoods =- HashMap.fromList- [("Thursday", -1.791759469228055), ("dd/mm", -3.295836866004329),- ("absorption of , after named day", -2.890371757896165),- ("intersect", -2.890371757896165),- ("Saturday", -2.6026896854443837),- ("Friday", -3.295836866004329), ("day", -0.8979415932059586),- ("the <day-of-month> (ordinal)", -2.890371757896165),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -2.6026896854443837),- ("hour", -3.295836866004329)],- n = 22},- koData =- ClassData{prior = -1.8718021769015913,- unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("intersect", -1.791759469228055), ("day", -1.2809338454620642),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -1.791759469228055)],- n = 4}}),- ("integer (0..19)",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.784189633918261,- likelihoods = HashMap.fromList [("", 0.0)], n = 42},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),- ("between <time-of-day> and <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("minuteminute", -0.916290731874155),- ("hh:mmhh:mm", -0.916290731874155)],- n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -0.916290731874155),- ("minutehour", -0.916290731874155)],- n = 3}}),- ("Halloween",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),- ("Augustordinal (digits)integer (numeric)",- -1.6094379124341003),- ("month", -0.916290731874155),- ("Augustordinal (digits)ordinal (digits)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("October",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods = HashMap.fromList [("", 0.0)], n = 16},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from|since|after <time-of-day>",- Classifier{okData =- ClassData{prior = -1.5040773967762742, unseen = -4.02535169073515,- likelihoods =- HashMap.fromList- [("July", -3.3141860046725258),- ("time-of-day (latent)", -2.3978952727983707),- ("<time-of-day> am|pm", -2.3978952727983707),- ("hh:mm", -2.3978952727983707), ("hour", -1.8101086078962516),- ("month", -2.908720896564361), ("minute", -2.3978952727983707),- ("August", -3.3141860046725258)],- n = 14},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -4.836281906951478,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.7297014486341915),- ("week", -4.135166556742356),- ("<day-of-month> (ordinal or number) <named-month>",- -4.135166556742356),- ("today", -4.135166556742356),- ("intersect", -2.7488721956224653),- ("second", -4.135166556742356), ("now", -3.4420193761824103),- ("tomorrow", -3.7297014486341915),- ("this|last|next <cycle>", -4.135166556742356),- ("day", -1.995100393246085),- ("time-of-day (latent)", -4.135166556742356),- ("<time-of-day> am|pm", -3.7297014486341915),- ("nograin", -3.4420193761824103),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- -4.135166556742356),- ("Christmas", -3.4420193761824103),- ("hour", -2.8824035882469876),- ("<datetime> - <datetime> (interval)", -2.7488721956224653),- ("<time-of-day> - <time-of-day> (interval)",- -2.430418464503931),- ("<named-month> <day-of-month> (non ordinal)",- -3.7297014486341915),- ("minute", -1.6928195213731514),- ("right now", -4.135166556742356),- ("<month> dd-dd (interval)", -3.4420193761824103),- ("dd-dd <month> (interval)", -3.7297014486341915)],- n = 49}}),- ("month (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> more <unit-of-duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("integer (numeric)minute (grain)", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> o'clock",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("in|within|after <duration>",- Classifier{okData =- ClassData{prior = -4.652001563489282e-2,- unseen = -4.61512051684126,- likelihoods =- HashMap.fromList- [("week", -3.2188758248682006),- ("<integer> more <unit-of-duration>", -3.912023005428146),- ("three-quarters of an hour", -2.995732273553991),- ("<integer> + '\"", -3.2188758248682006),- ("number.number hours", -3.912023005428146),- ("second", -3.506557897319982), ("day", -3.2188758248682006),- ("half an hour", -2.995732273553991),- ("<integer> <unit-of-duration>", -1.6094379124341003),- ("a <unit-of-duration>", -2.995732273553991),- ("quarter of an hour", -2.995732273553991),- ("hour", -2.5257286443082556),- ("about|exactly <duration>", -3.912023005428146),- ("<integer> and an half hour", -3.912023005428146),- ("minute", -1.2729656758128873)],- n = 42},- koData =- ClassData{prior = -3.0910424533583156, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("quarter", -1.8971199848858813),- ("<integer> <unit-of-duration>", -2.3025850929940455),- ("a <unit-of-duration>", -2.3025850929940455)],- n = 2}}),- ("three-quarters of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Wednesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> + '\"",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half <integer> (UK style hour-of-day)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("July",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hour (grain)",- Classifier{okData =- ClassData{prior = -0.8209805520698302,- unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),- ("<ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -1.1786549963416462),- ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",- -1.466337068793427),- ("quarter", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.8109302162163288),- ("quarter", -0.8109302162163288)],- n = 3}}),- ("one twenty two",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("intersect",- Classifier{okData =- ClassData{prior = -0.4957877464014501, unseen = -6.293419278846481,- likelihoods =- HashMap.fromList- [("<datetime> - <datetime> (interval)on <date>",- -4.345658990503007),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -4.345658990503007),- ("hourday", -3.8936738667599493),- ("dayhour", -2.765208614942159),- ("daymonth", -4.90527477843843),- ("monthday", -5.19295685089021),- ("monthyear", -3.9889840465642745),- ("Tuesdaythe <day-of-month> (ordinal)", -5.598421958998375),- ("Christmasyear", -5.598421958998375),- ("from <datetime> - <datetime> (interval)July",- -5.598421958998375),- ("houryear", -5.598421958998375),- ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.90527477843843),- ("<time-of-day> am|pmintersect", -4.345658990503007),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -5.598421958998375),- ("Marchyear", -5.598421958998375),- ("<named-month>|<named-day> <day-of-month> (ordinal)year",- -5.19295685089021),- ("intersect<time-of-day> am|pm", -5.598421958998375),- ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.598421958998375),- ("monthhour", -5.19295685089021),- ("last <day-of-week> of <time>year", -5.598421958998375),- ("todayat <time-of-day>", -5.598421958998375),- ("Thursday<time> timezone", -3.8936738667599493),- ("dd/mm<time-of-day> am|pm", -5.598421958998375),- ("this <time>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("dayday", -3.58351893845611),- ("Thanksgiving Dayyear", -4.499809670330265),- ("dd/mmat <time-of-day>", -5.598421958998375),- ("<time> <part-of-day>at <time-of-day>", -5.598421958998375),- ("Tuesdayin <named-month>", -5.598421958998375),- ("tonightat <time-of-day>", -5.598421958998375),- ("<time-of-day> am|pmabsorption of , after named day",- -4.90527477843843),- ("today<time-of-day> am|pm", -5.598421958998375),- ("Februarythe <day-of-month> (ordinal)", -5.19295685089021),- ("at <time-of-day><time> <part-of-day>", -5.598421958998375),- ("hourhour", -4.345658990503007),- ("<time-of-day> am|pmon <date>", -3.58351893845611),- ("Wednesdaythis|last|next <cycle>", -5.598421958998375),- ("intersect<named-month> <day-of-month> (non ordinal)",- -4.0943445622221),- ("dayyear", -3.1560749236291703),- ("last weekend of <named-month>year", -5.598421958998375),- ("<time-of-day> o'clockin|during the <part-of-day>",- -5.598421958998375),- ("Thursdayat <time-of-day>", -5.19295685089021),- ("<time-of-day> am|pmtomorrow", -4.90527477843843),- ("minutehour", -4.68213122712422),- ("Mother's Dayyear", -5.598421958998375),- ("at <time-of-day>in|during the <part-of-day>",- -5.19295685089021),- ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -3.8936738667599493),- ("for <duration> from <time>December", -5.598421958998375),- ("tomorrow<time-of-day> sharp|exactly", -5.598421958998375),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.68213122712422),- ("on <date><named-month> <day-of-month> (non ordinal)",- -5.19295685089021),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.68213122712422),- ("Mondayin|during the <part-of-day>", -5.598421958998375),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.19295685089021),- ("intersectin|during the <part-of-day>", -5.598421958998375),- ("Thursday<datetime> - <datetime> (interval)",- -4.68213122712422),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -5.598421958998375),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.345658990503007),- ("from <time-of-day> - <time-of-day> (interval)on <date>",- -4.90527477843843),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -4.68213122712422),- ("at <time-of-day>intersect", -5.19295685089021),- ("<time-of-day> - <time-of-day> (interval)tomorrow",- -5.598421958998375),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.598421958998375),- ("dayminute", -2.924273309571846),- ("from <datetime> - <datetime> (interval)on <date>",- -5.19295685089021),- ("<datetime> - <datetime> (interval)tomorrow",- -5.598421958998375),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.19295685089021),- ("<ordinal> <cycle> of <time>year", -5.598421958998375),- ("minuteday", -2.132686056198648),- ("absorption of , after named dayintersect",- -5.598421958998375),- ("Octoberyear", -4.345658990503007),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -5.598421958998375),- ("at <time-of-day>absorption of , after named day",- -5.598421958998375),- ("<day-of-month> (ordinal or number) <named-month>year",- -5.598421958998375),- ("year<time-of-day> am|pm", -5.598421958998375),- ("Septemberyear", -5.19295685089021),- ("at <time-of-day>on <date>", -4.499809670330265),- ("between <time-of-day> and <time-of-day> (interval)on <date>",- -4.90527477843843),- ("Halloweenyear", -5.598421958998375),- ("dayweek", -5.598421958998375),- ("Thursday<time-of-day> am|pm", -5.598421958998375),- ("weekyear", -5.19295685089021),- ("hh:mmin|during the <part-of-day>", -4.90527477843843),- ("Father's Dayyear", -5.598421958998375),- ("<cycle> after|before <time><time-of-day> am|pm",- -5.19295685089021),- ("February<time> <part-of-day>", -5.598421958998375),- ("Martin Luther King's Dayyear", -5.19295685089021),- ("tomorrowat <time-of-day>", -4.90527477843843),- ("between <time> and <time>on <date>", -4.90527477843843),- ("Thursdayfrom|since|after <time-of-day>", -4.90527477843843),- ("at <time-of-day>tomorrow", -5.19295685089021),- ("tomorrow<time-of-day> am|pm", -5.598421958998375),- ("in|during the <part-of-day>at <time-of-day>",- -5.598421958998375),- ("Labor Dayyear", -5.598421958998375),- ("Februaryintersect", -5.598421958998375),- ("last <cycle> of <time>year", -4.90527477843843),- ("<named-month> <day-of-month> (non ordinal)year",- -5.598421958998375),- ("yearminute", -5.598421958998375),- ("Black Fridayyear", -5.19295685089021)],- n = 201},- koData =- ClassData{prior = -0.9392802500988537, unseen = -5.983936280687191,- likelihoods =- HashMap.fromList- [("in <named-month>year", -5.288267030694535),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -5.288267030694535),- ("hourday", -5.288267030694535),- ("<named-month> <day-of-month> (non ordinal)July",- -5.288267030694535),- ("dayhour", -2.890371757896165),- ("daymonth", -3.2088254890146994),- ("monthday", -4.882801922586371),- ("monthyear", -4.59511985013459),- ("intersecthh:mm", -5.288267030694535),- ("from <datetime> - <datetime> (interval)July",- -5.288267030694535),- ("houryear", -5.288267030694535),- ("from <time-of-day> - <time-of-day> (interval)July",- -5.288267030694535),- ("until <time-of-day><time-of-day> am|pm", -5.288267030694535),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.59511985013459),- ("<time-of-day> am|pmintersect", -4.035504062199167),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.37197629882038),- ("from|since|after <time-of-day>on <date>", -4.37197629882038),- ("July<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("absorption of , after named dayJuly", -4.882801922586371),- ("monthhour", -5.288267030694535),- ("hourmonth", -4.59511985013459),- ("todayat <time-of-day>", -5.288267030694535),- ("from|since|after <time-of-day>July", -5.288267030694535),- ("dayday", -4.882801922586371),- ("dd/mmat <time-of-day>", -4.882801922586371),- ("<time-of-day> am|pmon <date>", -4.035504062199167),- ("Thursdaydd/mm", -5.288267030694535),- ("dayyear", -4.035504062199167),- ("Thursdayat <time-of-day>", -4.035504062199167),- ("<integer> to|till|before <hour-of-day>September",- -5.288267030694535),- ("monthminute", -5.288267030694535),- ("<time-of-day> am|pmtomorrow", -5.288267030694535),- ("Thursdayhh:mm", -4.37197629882038),- ("August<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("Fridayyear", -4.882801922586371),- ("minutemonth", -3.4965075614664802),- ("Sundayfrom|since|after <time-of-day>", -5.288267030694535),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.882801922586371),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("Aprilyear", -5.288267030694535),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.288267030694535),- ("dd/mm<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("<duration> after|before|from <time>December",- -5.288267030694535),- ("yesterday<time-of-day> am|pm", -5.288267030694535),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -4.37197629882038),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("<named-month> <day-of-month> (non ordinal)August",- -5.288267030694535),- ("until <time-of-day>on <date>", -4.59511985013459),- ("at <time-of-day>intersect", -4.882801922586371),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("dayminute", -2.7625383863862796),- ("intersectSeptember", -3.784189633918261),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("minuteday", -2.3704962986102562),- ("absorption of , after named dayintersect",- -5.288267030694535),- ("Februaryin|during the <part-of-day>", -5.288267030694535),- ("week-endin <named-month>", -5.288267030694535),- ("Octoberyear", -5.288267030694535),- ("from|since|after <time-of-day>year", -5.288267030694535),- ("yearhh:mm", -5.288267030694535),- ("hh:mmon <date>", -3.784189633918261),- ("from|since|after <time-of-day><time-of-day> am|pm",- -5.288267030694535),- ("absorption of , after named daySeptember", -4.37197629882038),- ("on <date>September", -4.882801922586371),- ("at <time-of-day>on <date>", -4.882801922586371),- ("dayweek", -5.288267030694535),- ("Thursday<time-of-day> am|pm", -4.882801922586371),- ("absorption of , after named dayFebruary", -4.37197629882038),- ("July<integer> to|till|before <hour-of-day>",- -5.288267030694535),- ("tomorrowat <time-of-day>", -5.288267030694535),- ("<integer> to|till|before <hour-of-day>July",- -5.288267030694535),- ("Thursdayfrom|since|after <time-of-day>", -3.6788291182604347),- ("tomorrow<time-of-day> am|pm", -5.288267030694535),- ("Tuesdayfrom|since|after <time-of-day>", -5.288267030694535),- ("yearminute", -5.288267030694535)],- n = 129}}),- ("one eleven",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("after lunch/work/school",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("early morning",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <number> (implicit minutes)",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.3184537311185346),- ("integer (0..19)", -1.2992829841302609)],- n = 9},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.16251892949777494),- ("integer (0..19)", -1.8971199848858813)],- n = 18}}),- ("<ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("daymonth", -2.0149030205422647),- ("quarteryear", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)day (grain)October",- -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",- -2.0149030205422647),- ("weekmonth", -1.6094379124341003),- ("ordinal (digits)quarter (grain)year", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)October",- -2.0149030205422647)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("year (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.1354942159291497,- likelihoods = HashMap.fromList [("", 0.0)], n = 21},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -1.0116009116784799,- unseen = -3.6375861597263857,- likelihoods =- HashMap.fromList- [("minuteminute", -2.001480000210124),- ("<day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("hh:mmhh:mm", -2.001480000210124),- ("dayday", -2.512305623976115),- ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),- ("hourhour", -2.512305623976115),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],- n = 8},- koData =- ClassData{prior = -0.45198512374305727,- unseen = -3.912023005428146,- likelihoods =- HashMap.fromList- [("hourday", -3.1986731175506815),- ("dayhour", -2.793208009442517),- ("<day-of-month> (ordinal)time-of-day (latent)",- -3.1986731175506815),- ("hh:mmtime-of-day (latent)", -2.2823823856765264),- ("minuteminute", -2.793208009442517),- ("time-of-day (latent)time-of-day (latent)",- -2.793208009442517),- ("dayday", -3.1986731175506815),- ("hourhour", -2.505525936990736),- ("dayyear", -3.1986731175506815),- ("<named-month>|<named-day> <day-of-month> (ordinal)past year (latent)",- -3.1986731175506815),- ("minutehour", -2.2823823856765264),- ("hh:mmintersect", -2.793208009442517),- ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("time-of-day (latent)<time-of-day> am|pm",- -3.1986731175506815),- ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",- -3.1986731175506815)],- n = 14}}),- ("Saturday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",- -1.7346010553881064),- ("weekmonth", -1.7346010553881064),- ("week (grain)October", -1.7346010553881064),- ("week (grain)<named-month> <day-of-month> (non ordinal)",- -1.7346010553881064),- ("weekday", -1.2237754316221157)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("number.number hours",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("minuteminute", -1.6094379124341003),- ("hh:mmhh:mm", -1.6094379124341003),- ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),- ("hourhour", -2.3025850929940455),- ("hourminute", -2.3025850929940455),- ("time-of-day (latent)<time-of-day> sharp|exactly",- -2.70805020110221),- ("time-of-day (latent)hh:mm", -2.70805020110221),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],- n = 9},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.6094379124341003),- ("time-of-day (latent)time-of-day (latent)",- -2.0149030205422647),- ("hourhour", -1.791759469228055),- ("minutehour", -1.6094379124341003),- ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],- n = 9}}),- ("integer 21..99",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)", -0.6931471805599453),- ("integer (20..90)integer (0..19)", -0.6931471805599453)],- n = 4}}),- ("yyyy-mm-dd",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -1.6094379124341003,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("Monday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("dd/mm/yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("yesterday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<ordinal> quarter <year>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh:mm:ss",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<hour-of-day> <integer>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("at <time-of-day>integer (20..90)", -1.3862943611198906),- ("hour", -0.9808292530117262),- ("at <time-of-day>integer (numeric)", -1.3862943611198906)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>integer (numeric)",- -1.0986122886681098),- ("hour", -1.0986122886681098)],- n = 1}}),- ("nth <time> of <time>",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("daymonth", -0.9808292530117262),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -2.0794415416798357),- ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",- -1.6739764335716716),- ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",- -1.6739764335716716)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.5649493574615367,- likelihoods =- HashMap.fromList- [("daymonth", -1.0986122886681098),- ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",- -1.791759469228055),- ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",- -1.3862943611198906)],- n = 3}}),- ("Valentine's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("April",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("end of month",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("week (grain)",- Classifier{okData =- ClassData{prior = -8.004270767353637e-2,- unseen = -3.6375861597263857,- likelihoods = HashMap.fromList [("", 0.0)], n = 36},- koData =- ClassData{prior = -2.5649493574615367,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("<part-of-day> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",- -1.6094379124341003),- ("hourday", -0.916290731874155),- ("part of daysthe <day-of-month> (ordinal)",- -1.6094379124341003),- ("part of daysthe <day-of-month> (number)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("past year (latent)",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 2}}),- ("six thirty six a.m.",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("integer (numeric)", -1.252762968495368),- ("one twenty two", -0.8472978603872037),- ("one eleven", -1.252762968495368)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("now",- Classifier{okData =- ClassData{prior = -0.15415067982725836,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -1.9459101490553135,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("<day-of-month> (ordinal or number) of <named-month>",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.0910424533583156,- likelihoods =- HashMap.fromList- [("ordinal (digits)July", -2.3513752571634776),- ("ordinals (first..twentieth,thirtieth,...)March",- -2.3513752571634776),- ("ordinal (digits)February", -2.3513752571634776),- ("integer (numeric)February", -1.9459101490553135),- ("month", -0.9650808960435872),- ("ordinal (digits)March", -2.3513752571634776),- ("integer (numeric)July", -2.3513752571634776)],- n = 7},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)February", -1.5040773967762742),- ("month", -1.5040773967762742)],- n = 1}}),- ("this <part-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("hour", -0.6931471805599453),- ("part of days", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Friday",- Classifier{okData =- ClassData{prior = -0.3677247801253174,- unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("in|during the <part-of-day>",- Classifier{okData =- ClassData{prior = -8.701137698962981e-2,- unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("early morning", -2.5257286443082556),- ("hour", -0.7339691750802004),- ("part of days", -0.8209805520698302)],- n = 11},- koData =- ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("hour", -0.916290731874155),- ("part of days", -0.916290731874155)],- n = 1}}),- ("tomorrow",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh(:mm) - <time-of-day> am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("this|last|next <cycle>",- Classifier{okData =- ClassData{prior = -0.15822400521489416,- unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("week", -1.5488132906176655),- ("month (grain)", -2.995732273553991),- ("year (grain)", -1.817077277212345),- ("week (grain)", -1.5488132906176655),- ("quarter", -2.772588722239781), ("year", -1.817077277212345),- ("month", -2.995732273553991),- ("quarter (grain)", -2.772588722239781)],- n = 35},- koData =- ClassData{prior = -1.9218125974762528,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("week", -1.4816045409242156),- ("week (grain)", -1.4816045409242156),- ("day", -1.9924301646902063),- ("day (grain)", -1.9924301646902063)],- n = 6}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Eve",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("by <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -2.1972245773362196),- ("end of month", -2.1972245773362196),- ("time-of-day (latent)", -2.1972245773362196),- ("<time-of-day> am|pm", -2.1972245773362196),- ("hh:mm", -2.1972245773362196), ("hour", -1.791759469228055),- ("month", -2.1972245773362196), ("minute", -1.791759469228055)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("half an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2006706954621511,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("ordinals (first..twentieth,thirtieth,...)",- -1.7047480922384253),- ("ordinal (digits)", -0.2006706954621511)],- n = 9},- koData =- ClassData{prior = -1.7047480922384253,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],- n = 2}}),- ("last weekend of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("October", -0.9555114450274363), ("July", -1.8718021769015913),- ("month", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (number)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("fractional number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -3.044522437723423,- likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),- ("Sunday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("February",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("minute (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1}}),- ("time-of-day (latent)",- Classifier{okData =- ClassData{prior = -0.5315058290035293,- unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.12136085700426748),- ("integer (0..19)", -2.3025850929940455)],- n = 67},- koData =- ClassData{prior = -0.8860508466844369,- unseen = -3.9318256327243257,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.10536051565782628),- ("integer (0..19)", -2.8134107167600364),- ("integer 21..99", -3.2188758248682006)],- n = 47}}),- ("year",- Classifier{okData =- ClassData{prior = -0.2578291093020998, unseen = -3.58351893845611,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 34},- koData =- ClassData{prior = -1.4816045409242156,- unseen = -2.4849066497880004,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 10}}),- ("last <day-of-week> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("daymonth", -0.916290731874155),- ("SundayMarch", -1.6094379124341003),- ("MondayMarch", -1.6094379124341003),- ("Sundayintersect", -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.1479201300766222,- unseen = -5.0875963352323845,- likelihoods =- HashMap.fromList- [("week", -2.4423470353692043),- ("integer (0..19)year (grain)", -3.289644895756408),- ("integer (numeric)day (grain)", -2.6835090921860925),- ("integer (0..19)second (grain) ", -3.6951100038645723),- ("integer (0..19)hour (grain)", -3.001962823304627),- ("second", -3.289644895756408),- ("integer (numeric)second (grain) ", -3.982792076316353),- ("integer (numeric)year (grain)", -3.6951100038645723),- ("day", -2.4423470353692043), ("year", -2.8841797876482436),- ("integer (numeric)week (grain)", -3.001962823304627),- ("integer (0..19)month (grain)", -3.4719664525503626),- ("hour", -2.5964977151964628), ("month", -3.1354942159291497),- ("integer (numeric)minute (grain)", -3.1354942159291497),- ("integer (0..19)minute (grain)", -3.001962823304627),- ("integer (numeric)month (grain)", -3.982792076316353),- ("minute", -2.4423470353692043),- ("integer (numeric)hour (grain)", -3.4719664525503626),- ("integer (0..19)day (grain)", -3.6951100038645723),- ("integer (0..19)week (grain)", -3.1354942159291497)],- n = 69},- koData =- ClassData{prior = -1.984131361875511, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),- ("integer (numeric)hour (grain)", -1.4087672169719492),- ("integer (0..19)quarter (grain)", -3.1135153092103742)],- n = 11}}),- ("hhmm (latent)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> am|pm",- Classifier{okData =- ClassData{prior = -0.2929871246814741,- unseen = -5.3230099791384085,- likelihoods =- HashMap.fromList- [("integer after|past <hour-of-day>", -3.9318256327243257),- ("at <time-of-day>", -2.2270775404859005),- ("from|since|after <time-of-day>", -3.708682081410116),- ("<time-of-day> o'clock", -4.219507705176107),- ("half after|past <hour-of-day>", -4.219507705176107),- ("time-of-day (latent)", -1.7346010553881064),- ("hhmm (latent)", -4.624972813284271),- ("hh:mm", -2.2735975561207935),- ("quarter after|past <hour-of-day>", -4.624972813284271),- ("about|exactly <time-of-day>", -4.624972813284271),- ("until <time-of-day>", -3.9318256327243257),- ("hour", -1.2237754316221157),- ("<time-of-day> sharp|exactly", -4.624972813284271),- ("minute", -1.7346010553881064)],- n = 94},- koData =- ClassData{prior = -1.3705460041517514, unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.283414346005772),- ("from|since|after <time-of-day>", -3.283414346005772),- ("<hour-of-day> <integer>", -3.6888794541139363),- ("time-of-day (latent)", -1.0498221244986778),- ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],- n = 32}}),- ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("ordinal (digits)ordinal (digits)July", -1.252762968495368),- ("integer (numeric)integer (numeric)July", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thanksgiving Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("a <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.5753641449035618,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("week", -2.0794415416798357),- ("year (grain)", -2.772588722239781),- ("second", -2.772588722239781),- ("week (grain)", -2.0794415416798357),- ("day", -2.0794415416798357),- ("minute (grain)", -2.772588722239781),- ("year", -2.772588722239781),- ("second (grain) ", -2.772588722239781),- ("minute", -2.772588722239781),- ("day (grain)", -2.0794415416798357)],- n = 9},- koData =- ClassData{prior = -0.8266785731844679, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("hour (grain)", -1.7227665977411035),- ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),- ("quarter (grain)", -1.9459101490553135)],- n = 7}}),- ("hh:mm",- Classifier{okData =- ClassData{prior = -5.129329438755058e-2,- unseen = -4.07753744390572,- likelihoods = HashMap.fromList [("", 0.0)], n = 57},- koData =- ClassData{prior = -2.995732273553991, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("quarter of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("second (grain) ",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinals (first..twentieth,thirtieth,...)",- Classifier{okData =- ClassData{prior = -6.899287148695143e-2,- unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14},- koData =- ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("quarter after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> after|before <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.252762968495368),- ("dayday", -0.8472978603872037),- ("day (grain)yesterday", -1.252762968495368)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("about|exactly <time-of-day>",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("week", -2.639057329615259),- ("hh(:mm) - <time-of-day> am|pm", -2.639057329615259),- ("this|last|next <cycle>", -2.639057329615259),- ("day", -2.2335922215070942),- ("time-of-day (latent)", -2.639057329615259),- ("hhmm (latent)", -2.2335922215070942),- ("<time-of-day> am|pm", -2.639057329615259),- ("hour", -1.9459101490553135),- ("next <time>", -2.639057329615259),- ("this|next <day-of-week>", -2.639057329615259),- ("minute", -2.2335922215070942)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("dd/mm", -2.0794415416798357), ("day", -2.0794415416798357),- ("time-of-day (latent)", -2.0794415416798357),- ("hour", -2.0794415416798357)],- n = 2}}),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- Classifier{okData =- ClassData{prior = -0.48130318449966897,- unseen = -5.170483995038151,- likelihoods =- HashMap.fromList- [("Wednesday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayhour", -3.2188758248682006),- ("daymonth", -3.2188758248682006),- ("<named-month> <day-of-month> (non ordinal)Friday",- -4.471638793363569),- ("Friday<named-month> <day-of-month> (non ordinal)",- -3.7784916128036232),- ("Wednesdayintersect", -4.471638793363569),- ("Labor Daythis|last|next <cycle>", -4.471638793363569),- ("Black Fridaythis|last|next <cycle>", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.471638793363569),- ("<part-of-day> of <time>February", -4.471638793363569),- ("Saturday<time-of-day> am|pm", -4.471638793363569),- ("Martin Luther King's Daythis|last|next <cycle>",- -4.471638793363569),- ("on <date><time-of-day> am|pm", -4.471638793363569),- ("hourmonth", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.471638793363569),- ("dayday", -2.5998366164619773),- ("the <day-of-month> (ordinal)February", -4.0661736852554045),- ("WednesdayOctober", -4.471638793363569),- ("Wednesdaythis|last|next <cycle>", -4.0661736852554045),- ("intersect<named-month> <day-of-month> (non ordinal)",- -3.5553480614894135),- ("dayyear", -2.8622008809294686),- ("Saturday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.471638793363569),- ("Thursdayhh:mm", -4.0661736852554045),- ("Thanksgiving Daythis|last|next <cycle>", -4.471638793363569),- ("Memorial Daythis|last|next <cycle>", -4.471638793363569),- ("on <date><named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("TuesdayOctober", -4.471638793363569),- ("the <day-of-month> (ordinal)March", -4.471638793363569),- ("Mondaythis|last|next <cycle>", -4.471638793363569),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.0661736852554045),- ("Fridayintersect", -4.471638793363569),- ("Thursday<datetime> - <datetime> (interval)",- -3.7784916128036232),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.5553480614894135),- ("Tuesdaythis|last|next <cycle>", -4.471638793363569),- ("Sunday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayminute", -2.6798793241355137),- ("intersectyear", -4.471638793363569),- ("minuteday", -3.5553480614894135),- ("this|last|next <cycle>Sunday", -4.471638793363569),- ("Sundaythis|last|next <cycle>", -4.471638793363569),- ("intersectintersect", -4.471638793363569),- ("weekday", -4.471638793363569),- ("dayweek", -3.373026504695459),- ("Thursday<time-of-day> am|pm", -4.471638793363569),- ("Monday<named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("<named-month> <day-of-month> (non ordinal)year",- -4.0661736852554045)],- n = 55},- koData =- ClassData{prior = -0.9622758451159785, unseen = -4.897839799950911,- likelihoods =- HashMap.fromList- [("week-endJuly", -4.197201947661808),- ("week-endOctober", -3.5040547671018634),- ("daymonth", -1.9999773703255892),- ("TuesdaySeptember", -4.197201947661808),- ("Wednesdayintersect", -4.197201947661808),- ("hourmonth", -3.0985896589936988),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.197201947661808),- ("Fridaythis|last|next <cycle>", -4.197201947661808),- ("SundayFebruary", -4.197201947661808),- ("WednesdayOctober", -4.197201947661808),- ("week-endintersect", -4.197201947661808),- ("dayyear", -4.197201947661808),- ("FridayJuly", -3.791736839553644),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.197201947661808),- ("FridaySeptember", -4.197201947661808),- ("WednesdayFebruary", -4.197201947661808),- ("minutemonth", -3.2809112157876537),- ("SundayMarch", -4.197201947661808),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.197201947661808),- ("MondayFebruary", -3.791736839553644),- ("Fridayintersect", -4.197201947661808),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.791736839553644),- ("dayminute", -2.810907586541918),- ("SaturdaySeptember", -4.197201947661808),- ("intersectSeptember", -3.2809112157876537),- ("MondayMarch", -4.197201947661808),- ("on <date>September", -3.791736839553644),- ("intersectintersect", -4.197201947661808),- ("Tuesdayintersect", -4.197201947661808),- ("Sundayintersect", -4.197201947661808)],- n = 34}}),- ("last <time>",- Classifier{okData =- ClassData{prior = -0.6286086594223742, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("Father's Day", -2.6026896854443837),- ("Martin Luther King's Day", -2.6026896854443837),- ("Memorial Day", -2.6026896854443837),- ("Mother's Day", -2.6026896854443837),- ("day", -1.2163953243244932), ("Sunday", -2.6026896854443837),- ("Thanksgiving Day", -2.6026896854443837),- ("hour", -2.6026896854443837), ("Tuesday", -2.6026896854443837),- ("week-end", -2.6026896854443837)],- n = 8},- koData =- ClassData{prior = -0.7621400520468967, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Monday", -2.5257286443082556), ("day", -2.120263536200091),- ("Sunday", -2.5257286443082556), ("hour", -1.4271163556401458),- ("week-end", -1.4271163556401458)],- n = 7}}),- ("March",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Octoberordinal (digits)", -2.120263536200091),- ("Thursdayordinal (digits)", -2.5257286443082556),- ("day", -2.120263536200091),- ("Augustordinal (digits)", -2.5257286443082556),- ("Marchordinals (first..twentieth,thirtieth,...)",- -2.120263536200091),- ("Tuesdayordinal (digits)", -2.5257286443082556),- ("month", -1.2729656758128873),- ("Marchordinal (digits)", -2.5257286443082556)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("from|since|after <time-of-day>ordinal (digits)",- -1.8718021769015913),- ("Augustordinal (digits)", -1.8718021769015913),- ("month", -1.466337068793427)],- n = 2}}),- ("Labor Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("until <time-of-day>",- Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -2.3025850929940455),- ("<time-of-day> am|pm", -1.6094379124341003),- ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),- ("minute", -1.3862943611198906)],- n = 6},- koData =- ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("intersect", -1.7227665977411035),- ("yesterday", -2.2335922215070942),- ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),- ("hour", -2.639057329615259), ("minute", -1.252762968495368)],- n = 10}}),- ("dd.mm.yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<duration> after|before|from <time>",- Classifier{okData =- ClassData{prior = -0.35667494393873245,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("a <unit-of-duration>now", -2.70805020110221),- ("a <unit-of-duration>Christmas", -2.70805020110221),- ("<integer> <unit-of-duration>today", -2.70805020110221),- ("daysecond", -2.70805020110221),- ("a <unit-of-duration>right now", -2.70805020110221),- ("minutenograin", -2.70805020110221),- ("<integer> <unit-of-duration>Christmas", -2.70805020110221),- ("secondnograin", -2.70805020110221),- ("yearday", -2.0149030205422647),- ("daynograin", -2.70805020110221),- ("<integer> <unit-of-duration>now", -2.3025850929940455)],- n = 7},- koData =- ClassData{prior = -1.2039728043259361,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("dayhour", -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal)",- -2.3978952727983707),- ("dayday", -1.9924301646902063),- ("<integer> <unit-of-duration>time-of-day (latent)",- -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -2.3978952727983707)],- n = 3}}),- ("Independence Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("decimal number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("next <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5263605246161616,- likelihoods =- HashMap.fromList- [("Martin Luther King's Day", -2.803360380906535),- ("Halloween", -2.803360380906535),- ("Wednesday", -2.803360380906535),- ("Memorial Day", -2.803360380906535),- ("Monday", -2.803360380906535),- ("Mother's Day", -2.803360380906535),- ("day", -1.0986122886681098),- ("Thanksgiving Day", -2.803360380906535),- ("March", -2.803360380906535), ("month", -2.803360380906535),- ("Tuesday", -2.1102132003465894)],- n = 11},- koData =- ClassData{prior = -infinity, unseen = -2.4849066497880004,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> sharp|exactly",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -2.1400661634962708),- ("time-of-day (latent)", -2.1400661634962708),- ("hhmm (latent)", -2.1400661634962708),- ("<time-of-day> am|pm", -2.1400661634962708),- ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),- ("minute", -1.4469189829363254)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("negative numbers",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("integer (numeric)", -7.696104113612832e-2),- ("integer (0..19)", -2.6026896854443837)],- n = 25}}),- ("about|exactly <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("half an hour", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time> before last|after next",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("Wednesday", -1.8718021769015913),- ("Friday", -1.466337068793427), ("day", -1.1786549963416462),- ("March", -1.8718021769015913), ("month", -1.8718021769015913)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("by the end of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("this|last|next <cycle>", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hhmm (military) am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,- likelihoods =- HashMap.fromList- [("intersecthh:mm", -3.1918471524802814),- ("intersect<time-of-day> am|pm", -3.1918471524802814),- ("minuteminute", -1.457246097092175),- ("hh:mmhh:mm", -2.093234863812172),- ("dayday", -3.1918471524802814),- ("hourhour", -2.093234863812172),- ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -3.597312260588446),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.597312260588446),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),- ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],- n = 26},- koData =- ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("<named-month> <day-of-month> (non ordinal)July",- -3.1135153092103742),- ("daymonth", -2.70805020110221),- ("from|since|after <time-of-day>intersect", -2.70805020110221),- ("<time-of-day> am|pmintersect", -3.1135153092103742),- ("hh:mm<time-of-day> am|pm", -2.70805020110221),- ("minuteminute", -1.8607523407150064),- ("hourhour", -2.70805020110221),- ("minutehour", -2.70805020110221),- ("hh:mmintersect", -2.1972245773362196),- ("<named-month> <day-of-month> (non ordinal)August",- -3.1135153092103742),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.1135153092103742)],- n = 12}}),- ("Tuesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Day",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),- ("fortnight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> and an half hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <named-month>",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -1.252762968495368), ("March", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -0.8472978603872037),- ("month", -0.8472978603872037)],- n = 2}}),- ("<time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,- likelihoods =- HashMap.fromList- [("minuteminute", -1.529395204760564),- ("hh:mmhh:mm", -1.8971199848858813),- ("<time-of-day> am|pmtime-of-day (latent)",- -2.4849066497880004),- ("hourhour", -1.6964492894237302),- ("from|since|after <time-of-day>time-of-day (latent)",- -3.4011973816621555),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.4011973816621555),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),- ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],- n = 22},- koData =- ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>time-of-day (latent)",- -3.4657359027997265),- ("hh:mmtime-of-day (latent)", -1.7609878105613013),- ("hh:mm<time-of-day> am|pm", -3.0602707946915624),- ("<time-of-day> am|pmtime-of-day (latent)",- -3.4657359027997265),- ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),- ("hourhour", -2.2129729343043585),- ("minutehour", -1.2144441041932315),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.4657359027997265),- ("from|since|after <time-of-day>time-of-day (latent)",- -2.5494451709255714),- ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),- ("<integer> to|till|before <hour-of-day>time-of-day (latent)",- -3.0602707946915624)],- n = 24}}),- ("military spelled out numbers am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods =- HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("winter",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("nth <time> after <time>",- Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",- -0.916290731874155)],- n = 1}}),- ("<named-month> <day-of-month> (non ordinal)",- Classifier{okData =- ClassData{prior = -0.42121346507630353,- unseen = -3.951243718581427,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.5455312716044354),- ("Marchinteger (numeric)", -2.833213344056216),- ("Aprilinteger (numeric)", -3.2386784521643803),- ("month", -0.8407831793660099),- ("Februaryinteger (numeric)", -1.9859154836690123),- ("Septemberinteger (numeric)", -2.833213344056216),- ("Octoberinteger (numeric)", -2.833213344056216),- ("Julyinteger (numeric)", -2.1400661634962708)],- n = 21},- koData =- ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.3353749158170367),- ("Marchinteger (numeric)", -2.740840023925201),- ("Aprilinteger (numeric)", -2.740840023925201),- ("month", -0.9490805546971459),- ("from|since|after <time-of-day>integer (numeric)",- -2.3353749158170367),- ("Julyinteger (numeric)", -1.6422277352570913)],- n = 11}}),- ("this|next <day-of-week>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,- likelihoods =- HashMap.fromList- [("Thursday", -2.2512917986064953),- ("Wednesday", -2.2512917986064953),- ("Monday", -1.845826690498331), ("day", -0.8649974374866046),- ("Tuesday", -1.55814461804655)],- n = 7},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinal (digits)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5553480614894135,- likelihoods = HashMap.fromList [("", 0.0)], n = 33},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter (grain)",- Classifier{okData =- ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("last <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("day (grain)October", -1.791759469228055),- ("daymonth", -1.2809338454620642),- ("day (grain)intersect", -1.791759469228055),- ("weekmonth", -1.791759469228055),- ("week (grain)intersect", -2.1972245773362196),- ("week (grain)September", -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month>(ordinal) <named-month> year",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)April", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Black Friday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Labor Day",- Classifier{okData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("week-end",- Classifier{okData =- ClassData{prior = -1.5040773967762742,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),- ("day (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.2188758248682006,- likelihoods = HashMap.fromList [("", 0.0)], n = 23},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("right now",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("for <duration> from <time>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("<integer> <unit-of-duration><day-of-month> (ordinal)",- -1.5040773967762742),- ("dayday", -1.0986122886681098),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -1.5040773967762742)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("dayhour", -1.252762968495368),- ("<integer> <unit-of-duration>time-of-day (latent)",- -1.252762968495368)],- n = 1}}),- ("between <time> and <time>",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("minuteminute", -1.0116009116784799),- ("hh:mmhh:mm", -1.0116009116784799)],- n = 3},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.4469189829363254),- ("minuteminute", -1.4469189829363254),- ("minutehour", -1.4469189829363254),- ("hh:mmintersect", -1.4469189829363254)],- n = 6}}),- ("<month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),- ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",- -2.740840023925201),- ("from|since|after <time-of-day>integer (numeric)integer (numeric)",- -2.740840023925201),- ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",- -2.740840023925201),- ("Augustordinal (digits)integer (numeric)",- -2.3353749158170367),- ("month", -0.8690378470236094),- ("Augustordinal (digits)ordinal (digits)",- -2.3353749158170367)],- n = 12},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of days",- Classifier{okData =- ClassData{prior = -4.0821994520255166e-2,- unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -3.2188758248682006,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("summer",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("dd-dd <month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)September",- -1.791759469228055),- ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),- ("ordinal (digits)ordinal (digits)October",- -2.1972245773362196),- ("integer (numeric)integer (numeric)July", -2.1972245773362196),- ("month", -0.9444616088408514),- ("ordinal (digits)ordinal (digits)August",- -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("this <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Thursday", -2.5257286443082556),- ("Martin Luther King's Day", -2.5257286443082556),- ("Monday", -2.5257286443082556), ("day", -1.1394342831883648),- ("Thanksgiving Day", -2.5257286443082556),- ("hour", -2.5257286443082556), ("winter", -2.5257286443082556),- ("week-end", -2.5257286443082556),- ("summer", -2.120263536200091)],- n = 8},- koData =- ClassData{prior = -infinity, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [], n = 0}}),- ("August",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}})]+ [("Bhai Dooj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)noon|midnight|EOD|end of day",+ -0.916290731874155),+ ("hour", -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.13353139262452263,+ unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("hour", -0.7537718023763802),+ ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],+ n = 7}}),+ ("<time> timezone",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -1.824549292051046),+ ("<time-of-day> am|pm", -1.6422277352570913),+ ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),+ ("minute", -1.824549292051046)],+ n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thursday",+ Classifier{okData =+ ClassData{prior = -9.53101798043249e-2,+ unseen = -3.4657359027997265,+ likelihoods = HashMap.fromList [("", 0.0)], n = 30},+ koData =+ ClassData{prior = -2.3978952727983707,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("integer (numeric)",+ Classifier{okData =+ ClassData{prior = -0.6366143532277309, unseen = -5.648974238161206,+ likelihoods = HashMap.fromList [("", 0.0)], n = 282},+ koData =+ ClassData{prior = -0.7530684850340607, unseen = -5.53338948872752,+ likelihoods = HashMap.fromList [("", 0.0)], n = 251}}),+ ("<duration> hence|ago",+ Classifier{okData =+ ClassData{prior = -5.406722127027582e-2,+ unseen = -3.784189633918261,+ likelihoods =+ HashMap.fromList+ [("week", -1.563975538357343), ("day", -1.8152899666382492),+ ("year", -2.662587827025453),+ ("<integer> <unit-of-duration>", -1.0531499145913523),+ ("a <unit-of-duration>", -2.662587827025453),+ ("month", -2.662587827025453),+ ("fortnight", -2.662587827025453)],+ n = 18},+ koData =+ ClassData{prior = -2.9444389791664407,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("year", -1.5040773967762742),+ ("<integer> <unit-of-duration>", -1.5040773967762742)],+ n = 1}}),+ ("noon|midnight|EOD|end of day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Father's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.6739764335716716),+ ("dayday", -1.1631508098056809),+ ("day (grain)yesterday", -1.6739764335716716)],+ n = 4},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.6739764335716716),+ ("year (grain)Christmas", -2.0794415416798357),+ ("dayday", -2.0794415416798357),+ ("day (grain)intersect", -1.6739764335716716),+ ("day (grain)Easter Sunday", -2.0794415416798357),+ ("yearday", -2.0794415416798357)],+ n = 4}}),+ ("Easter Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Navaratri",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Martin Luther King's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("integer (20..90)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Shemini Atzeret",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ramadan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lazarus Saturday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect 2 numbers",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("compose by multiplicationinteger (0..19)",+ -0.2231435513142097)],+ n = 3},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("powers of tensinteger (0..19)", -0.2231435513142097)],+ n = 3}}),+ ("mm/yyyy",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("integer after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("hour", -0.8109302162163288),+ ("integer (numeric)time-of-day (latent)", -1.0986122886681098),+ ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom HaShoah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal or number) <named-month>",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)December", -2.1400661634962708),+ ("ordinal (digits)February", -2.1400661634962708),+ ("integer (numeric)April", -2.1400661634962708),+ ("month", -1.4469189829363254)],+ n = 3},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.4011973816621555,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)October", -2.6741486494265287),+ ("ordinal (digits)July", -2.6741486494265287),+ ("integer (numeric)September", -2.268683541318364),+ ("ordinal (digits)August", -2.6741486494265287),+ ("integer (numeric)August", -2.6741486494265287),+ ("ordinal (digits)April", -2.6741486494265287),+ ("month", -1.0647107369924282),+ ("integer (numeric)July", -2.268683541318364)],+ n = 9}}),+ ("<time> <part-of-day>",+ Classifier{okData =+ ClassData{prior = -9.237332013101517e-2,+ unseen = -4.48863636973214,+ likelihoods =+ HashMap.fromList+ [("<day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("dayhour", -1.4816045409242156),+ ("Mondayearly morning", -3.378724525810097),+ ("time-of-day (latent)tonight", -3.378724525810097),+ ("hourhour", -2.3978952727983707),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -3.784189633918261),+ ("todaypart of days", -3.784189633918261),+ ("minutehour", -2.6855773452501515),+ ("at <time-of-day>in|during the <part-of-day>",+ -3.378724525810097),+ ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+ ("Mondayin|during the <part-of-day>", -3.784189633918261),+ ("intersectpart of days", -3.784189633918261),+ ("intersectin|during the <part-of-day>", -3.784189633918261),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -3.784189633918261),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("tomorrowpart of days", -2.3978952727983707),+ ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+ ("time-of-day (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("hhmm (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("yesterdaypart of days", -3.378724525810097),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -3.784189633918261),+ ("Mondaypart of days", -3.784189633918261)],+ n = 31},+ koData =+ ClassData{prior = -2.4277482359480516,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("yearhour", -2.772588722239781),+ ("monthhour", -2.772588722239781),+ ("hourhour", -2.772588722239781),+ ("year (latent)in|during the <part-of-day>",+ -2.772588722239781),+ ("Februaryin|during the <part-of-day>", -2.772588722239781),+ ("time-of-day (latent)in|during the <part-of-day>",+ -2.772588722239781)],+ n = 3}}),+ ("dd/mm",+ Classifier{okData =+ ClassData{prior = -1.2685113254635072,+ unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ koData =+ ClassData{prior = -0.33024168687057687,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}}),+ ("today",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("at <time-of-day>",+ Classifier{okData =+ ClassData{prior = -8.961215868968717e-2,+ unseen = -4.948759890378168,+ likelihoods =+ HashMap.fromList+ [("<time> timezone", -3.8430301339411947),+ ("noon|midnight|EOD|end of day", -3.8430301339411947),+ ("integer after|past <hour-of-day>", -3.8430301339411947),+ ("half after|past <hour-of-day>", -4.248495242049359),+ ("time-of-day (latent)", -1.6835458845878222),+ ("hhmm (latent)", -3.5553480614894135),+ ("<time-of-day> am|pm", -1.8061482066801546),+ ("hh:mm", -3.332204510175204),+ ("about|exactly <time-of-day>", -3.8430301339411947),+ ("hour", -1.0704414117014134),+ ("<time-of-day> sharp|exactly", -4.248495242049359),+ ("minute", -2.05127066471314)],+ n = 64},+ koData =+ ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -1.2321436812926323),+ ("hour", -1.2321436812926323)],+ n = 6}}),+ ("December",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("absorption of , after named day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("on <date>", -2.1972245773362196),+ ("Wednesday", -2.6026896854443837),+ ("Saturday", -2.6026896854443837),+ ("Monday", -2.1972245773362196),+ ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+ ("Sunday", -2.6026896854443837)],+ n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("September",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("tonight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|past|next <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.2626798770413155,+ likelihoods =+ HashMap.fromList+ [("week", -2.456735772821304), ("second", -2.639057329615259),+ ("day", -2.3025850929940455), ("year", -2.639057329615259),+ ("<integer> <unit-of-duration>", -0.7827593392496325),+ ("hour", -2.639057329615259), ("month", -2.639057329615259),+ ("minute", -2.639057329615259)],+ n = 31},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the ides of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("on <date>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -4.204692619390966,+ likelihoods =+ HashMap.fromList+ [("Thursday", -1.4816045409242156),+ ("dd/mm", -3.4965075614664802),+ ("absorption of , after named day", -3.0910424533583156),+ ("intersect", -3.0910424533583156),+ ("Saturday", -2.803360380906535),+ ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+ ("the <day-of-month> (ordinal)", -3.0910424533583156),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -2.803360380906535),+ ("hour", -3.4965075614664802)],+ n = 28},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -1.791759469228055)],+ n = 4}}),+ ("integer (0..19)",+ Classifier{okData =+ ClassData{prior = -0.11122563511022437,+ unseen = -3.970291913552122,+ likelihoods = HashMap.fromList [("", 0.0)], n = 51},+ koData =+ ClassData{prior = -2.2512917986064953,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+ ("between <time-of-day> and <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.7884573603642702),+ ("hh:mmhh:mm", -0.7884573603642702)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -0.7884573603642702),+ ("minutehour", -0.7884573603642702)],+ n = 9}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Passover",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+ ("Augustordinal (digits)integer (numeric)",+ -1.6094379124341003),+ ("month", -0.916290731874155),+ ("Augustordinal (digits)ordinal (digits)",+ -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("October",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods = HashMap.fromList [("", 0.0)], n = 16},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from|since|after <time-of-day>",+ Classifier{okData =+ ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("July", -3.332204510175204),+ ("time-of-day (latent)", -2.4159137783010487),+ ("<time-of-day> am|pm", -2.4159137783010487),+ ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),+ ("month", -2.9267394020670396), ("minute", -2.4159137783010487),+ ("August", -3.332204510175204)],+ n = 14},+ koData =+ ClassData{prior = -0.22677331936478848,+ unseen = -4.9344739331306915,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.828641396489095),+ ("week", -4.23410650459726),+ ("<day-of-month> (ordinal or number) <named-month>",+ -4.23410650459726),+ ("today", -4.23410650459726), ("intersect", -2.362304327695668),+ ("second", -4.23410650459726), ("now", -3.5409593240373143),+ ("tomorrow", -3.828641396489095),+ ("this|last|next <cycle>", -4.23410650459726),+ ("day", -1.8827312474337816),+ ("time-of-day (latent)", -4.23410650459726),+ ("<time-of-day> am|pm", -3.828641396489095),+ ("nograin", -3.5409593240373143),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ -4.23410650459726),+ ("Easter Sunday", -4.23410650459726),+ ("Christmas", -3.5409593240373143),+ ("hour", -2.981343536101891), ("month", -4.23410650459726),+ ("<datetime> - <datetime> (interval)", -2.847812143477369),+ ("<time-of-day> - <time-of-day> (interval)",+ -2.5293584123588344),+ ("<named-month> <day-of-month> (non ordinal)",+ -3.828641396489095),+ ("minute", -1.749199854809259),+ ("right now", -4.23410650459726),+ ("<month> dd-dd (interval)", -3.5409593240373143),+ ("dd-dd <month> (interval)", -3.828641396489095)],+ n = 55}}),+ ("month (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> more <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)minute (grain)", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> o'clock",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in|within|after <duration>",+ Classifier{okData =+ ClassData{prior = -0.11000089521432846,+ unseen = -4.6443908991413725,+ likelihoods =+ HashMap.fromList+ [("week", -3.248434627109745),+ ("<integer> more <unit-of-duration>", -3.9415818076696905),+ ("three-quarters of an hour", -3.0252910757955354),+ ("<integer> + '\"", -3.248434627109745),+ ("number.number hours", -3.9415818076696905),+ ("second", -3.536116699561526), ("day", -3.248434627109745),+ ("half an hour", -3.0252910757955354),+ ("year", -3.9415818076696905),+ ("<integer> <unit-of-duration>", -1.5902065505062128),+ ("a <unit-of-duration>", -3.0252910757955354),+ ("quarter of an hour", -3.0252910757955354),+ ("hour", -2.5552874465498),+ ("about|exactly <duration>", -3.9415818076696905),+ ("<integer> and an half hour", -3.9415818076696905),+ ("minute", -1.3025244780544318)],+ n = 43},+ koData =+ ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),+ ("<integer> <unit-of-duration>", -1.9095425048844386),+ ("a <unit-of-duration>", -2.1972245773362196)],+ n = 5}}),+ ("January",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("three-quarters of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Mattu Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Wednesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> + '\"",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half <integer> (UK style hour-of-day)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("July",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hour (grain)",+ Classifier{okData =+ ClassData{prior = -0.8209805520698302,+ unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),+ ("Shavuot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> <duration> hence|ago",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("dayyear", -0.6931471805599453),+ ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -1.1786549963416462),+ ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+ -1.466337068793427),+ ("quarter", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.8109302162163288),+ ("quarter", -0.8109302162163288)],+ n = 3}}),+ ("Boss's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Orthodox Easter Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("one twenty two",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect",+ Classifier{okData =+ ClassData{prior = -0.45868580431307404,+ unseen = -6.723832440821209,+ likelihoods =+ HashMap.fromList+ [("Navaratriyear (latent)", -6.029482614295503),+ ("Father's Dayyear (latent)", -6.029482614295503),+ ("Ramadanyear (latent)", -6.029482614295503),+ ("<datetime> - <datetime> (interval)on <date>",+ -4.776719645800135),+ ("Bhai Doojyear (latent)", -6.029482614295503),+ ("<time-of-day> - <time-of-day> (interval)on <date>",+ -4.776719645800135),+ ("hourday", -4.324734522057078),+ ("dayhour", -3.1117118822112237),+ ("Martin Luther King's Dayyear (latent)", -5.6240175061873385),+ ("Shemini Atzeretyear (latent)", -6.029482614295503),+ ("daymonth", -5.336335433735558),+ ("monthday", -5.6240175061873385),+ ("monthyear", -4.420044701861403),+ ("Yom Ha'atzmautyear (latent)", -6.029482614295503),+ ("Vijayadashamiyear (latent)", -6.029482614295503),+ ("Thanksgiving Dayyear (latent)", -4.930870325627393),+ ("Thai Pongalyear (latent)", -5.336335433735558),+ ("Thiru Onamyear (latent)", -5.336335433735558),+ ("Tuesdaythe <day-of-month> (ordinal)", -6.029482614295503),+ ("from <datetime> - <datetime> (interval)July",+ -6.029482614295503),+ ("houryear", -5.336335433735558),+ ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+ -6.029482614295503),+ ("Christmas<time-of-day> am|pm", -6.029482614295503),+ ("last <day-of-week> of <time>year (latent)",+ -6.029482614295503),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -5.336335433735558),+ ("<time-of-day> am|pmintersect", -4.776719645800135),+ ("Octoberyear (latent)", -4.776719645800135),+ ("intersect<time-of-day> am|pm", -6.029482614295503),+ ("Mattu Pongalyear (latent)", -6.029482614295503),+ ("Shavuotyear (latent)", -6.029482614295503),+ ("Dhanterasin <named-month>|year", -6.029482614295503),+ ("at <time-of-day>in|within|after <duration>",+ -6.029482614295503),+ ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.029482614295503),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -5.6240175061873385),+ ("Marchyear (latent)", -6.029482614295503),+ ("Sukkotyear (latent)", -5.6240175061873385),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -6.029482614295503),+ ("Clean Mondayyear (latent)", -5.6240175061873385),+ ("monthhour", -5.6240175061873385),+ ("todayat <time-of-day>", -6.029482614295503),+ ("Thursday<time> timezone", -4.324734522057078),+ ("dd/mm<time-of-day> am|pm", -6.029482614295503),+ ("this <time>hh(:mm) - <time-of-day> am|pm",+ -6.029482614295503),+ ("Palm SundaySunday", -5.6240175061873385),+ ("dayday", -3.8322580369592836),+ ("dd/mmat <time-of-day>", -6.029482614295503),+ ("<time> <part-of-day>at <time-of-day>", -6.029482614295503),+ ("tonightat <time-of-day>", -6.029482614295503),+ ("<time-of-day> am|pmabsorption of , after named day",+ -5.336335433735558),+ ("today<time-of-day> am|pm", -6.029482614295503),+ ("Februarythe <day-of-month> (ordinal)", -5.6240175061873385),+ ("at <time-of-day><time> <part-of-day>", -6.029482614295503),+ ("hourhour", -4.776719645800135),+ ("<time-of-day> am|pmon <date>", -4.014579593753238),+ ("Wednesdaythis|last|next <cycle>", -6.029482614295503),+ ("Lentyear (latent)", -6.029482614295503),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -4.5254052175192285),+ ("Boghiyear (latent)", -6.029482614295503),+ ("dayyear", -1.9776976664921981),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -6.029482614295503),+ ("Thursdayat <time-of-day>", -5.6240175061873385),+ ("Islamic New Yearyear (latent)", -5.6240175061873385),+ ("Laylat al-Qadryear (latent)", -5.113191882421348),+ ("Chhathin <named-month>|year", -6.029482614295503),+ ("Vasant Panchamiin <named-month>|year", -6.029482614295503),+ ("Diwaliin <named-month>|year", -6.029482614295503),+ ("Shrove Tuesdayyear (latent)", -6.029482614295503),+ ("<time-of-day> am|pmtomorrow", -5.336335433735558),+ ("Yom Kippuryear (latent)", -6.029482614295503),+ ("<part-of-day> of <time>year (latent)", -6.029482614295503),+ ("minutehour", -5.113191882421348),+ ("Kaanum Pongalyear (latent)", -5.6240175061873385),+ ("Maha Saptamiyear (latent)", -6.029482614295503),+ ("at <time-of-day>in|during the <part-of-day>",+ -5.6240175061873385),+ ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+ -4.324734522057078),+ ("for <duration> from <time>December", -6.029482614295503),+ ("tomorrow<time-of-day> sharp|exactly", -6.029482614295503),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.113191882421348),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -5.6240175061873385),+ ("Pentecostyear (latent)", -6.029482614295503),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.113191882421348),+ ("Eid al-Fitryear (latent)", -6.029482614295503),+ ("Mondayin|during the <part-of-day>", -6.029482614295503),+ ("Raksha Bandhanyear (latent)", -6.029482614295503),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.6240175061873385),+ ("Navaratriin <named-month>|year", -6.029482614295503),+ ("Ashurayear (latent)", -6.029482614295503),+ ("Chinese New Yearyear (latent)", -6.029482614295503),+ ("Sundayyear (latent)", -6.029482614295503),+ ("Lag BaOmeryear (latent)", -6.029482614295503),+ ("last weekend of <named-month>year (latent)",+ -6.029482614295503),+ ("Eid al-Adhayear (latent)", -5.113191882421348),+ ("intersectin|during the <part-of-day>", -6.029482614295503),+ ("Christmasat <time-of-day>", -6.029482614295503),+ ("Passoveryear (latent)", -6.029482614295503),+ ("Lazarus Saturdayyear (latent)", -6.029482614295503),+ ("dd/mmyear (latent)", -6.029482614295503),+ ("<day-of-month> (ordinal or number) <named-month>year (latent)",+ -6.029482614295503),+ ("Yom HaShoahyear (latent)", -5.6240175061873385),+ ("Thursday<datetime> - <datetime> (interval)",+ -5.113191882421348),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -6.029482614295503),+ ("Thai Pongalin <named-month>|year", -6.029482614295503),+ ("Septemberyear (latent)", -5.6240175061873385),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -4.776719645800135),+ ("Halloweenyear (latent)", -6.029482614295503),+ ("from <time-of-day> - <time-of-day> (interval)on <date>",+ -5.336335433735558),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -5.113191882421348),+ ("at <time-of-day>intersect", -5.6240175061873385),+ ("Rosh Hashanahyear (latent)", -6.029482614295503),+ ("Dhanterasyear (latent)", -6.029482614295503),+ ("Tu BiShvatyear (latent)", -6.029482614295503),+ ("Holiyear (latent)", -5.336335433735558),+ ("<time-of-day> - <time-of-day> (interval)tomorrow",+ -6.029482614295503),+ ("Holika Dahanyear (latent)", -5.336335433735558),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -6.029482614295503),+ ("dayminute", -3.3904252846802443),+ ("Mawlidyear (latent)", -6.029482614295503),+ ("from <datetime> - <datetime> (interval)on <date>",+ -5.6240175061873385),+ ("<datetime> - <datetime> (interval)tomorrow",+ -6.029482614295503),+ ("Jumu'atul-Widayear (latent)", -5.113191882421348),+ ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+ -6.029482614295503),+ ("minuteday", -2.391896454569117),+ ("absorption of , after named dayintersect",+ -6.029482614295503),+ ("intersectyear (latent)", -6.029482614295503),+ ("Orthodox Easter Sundayyear (latent)", -6.029482614295503),+ ("<ordinal> <cycle> of <time>year (latent)",+ -6.029482614295503),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -6.029482614295503),+ ("Mothering Sundayyear (latent)", -5.6240175061873385),+ ("Boss's Dayyear (latent)", -5.6240175061873385),+ ("Tisha B'Avyear (latent)", -6.029482614295503),+ ("Isra and Mi'rajyear (latent)", -5.113191882421348),+ ("at <time-of-day>absorption of , after named day",+ -6.029482614295503),+ ("Christmasyear (latent)", -5.6240175061873385),+ ("Naraka Chaturdashiyear (latent)", -5.6240175061873385),+ ("at <time-of-day>on <date>", -4.930870325627393),+ ("between <time-of-day> and <time-of-day> (interval)on <date>",+ -4.420044701861403),+ ("dayweek", -6.029482614295503),+ ("Easter Sundayyear (latent)", -5.336335433735558),+ ("Thursday<time-of-day> am|pm", -6.029482614295503),+ ("weekyear", -5.6240175061873385),+ ("hh:mmin|during the <part-of-day>", -5.336335433735558),+ ("<cycle> after|before <time><time-of-day> am|pm",+ -5.6240175061873385),+ ("Hanukkahyear (latent)", -6.029482614295503),+ ("February<time> <part-of-day>", -6.029482614295503),+ ("Tuesdayin <named-month>|year", -6.029482614295503),+ ("Great Lentyear (latent)", -6.029482614295503),+ ("tomorrowat <time-of-day>", -5.336335433735558),+ ("between <time> and <time>on <date>", -4.420044701861403),+ ("Thursdayfrom|since|after <time-of-day>", -5.336335433735558),+ ("last <cycle> of <time>year (latent)", -5.336335433735558),+ ("at <time-of-day>tomorrow", -5.6240175061873385),+ ("tomorrow<time-of-day> am|pm", -6.029482614295503),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -6.029482614295503),+ ("Diwaliyear (latent)", -6.029482614295503),+ ("Black Fridayyear (latent)", -5.6240175061873385),+ ("in|during the <part-of-day>at <time-of-day>",+ -6.029482614295503),+ ("Chhathyear (latent)", -5.6240175061873385),+ ("Vasant Panchamiyear (latent)", -6.029482614295503),+ ("Palm Sundayintersect", -6.029482614295503),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -6.029482614295503),+ ("August Bank Holidayyear (latent)", -5.336335433735558),+ ("Februaryintersect", -6.029482614295503),+ ("Simchat Torahyear (latent)", -6.029482614295503)],+ n = 311},+ koData =+ ClassData{prior = -0.9999816852264825, unseen = -6.349138991379798,+ likelihoods =+ HashMap.fromList+ [("<time-of-day> - <time-of-day> (interval)on <date>",+ -5.654242029096065),+ ("hourday", -5.654242029096065),+ ("<named-month> <day-of-month> (non ordinal)July",+ -5.654242029096065),+ ("dayhour", -3.2118949937268604),+ ("daymonth", -3.574800487416229),+ ("monthday", -5.2487769209879005),+ ("monthyear", -4.401479060600697),+ ("<time-of-day> am|pmyear (latent)", -5.2487769209879005),+ ("Thai Pongalyear (latent)", -4.96109484853612),+ ("intersecthh:mm", -5.654242029096065),+ ("from <datetime> - <datetime> (interval)July",+ -5.654242029096065),+ ("houryear", -4.73795129722191),+ ("from <time-of-day> - <time-of-day> (interval)July",+ -5.654242029096065),+ ("until <time-of-day><time-of-day> am|pm", -5.654242029096065),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.96109484853612),+ ("<time-of-day> am|pmintersect", -4.401479060600697),+ ("Octoberyear (latent)", -5.654242029096065),+ ("from|since|after <time-of-day>year (latent)",+ -4.401479060600697),+ ("from|since|after <time-of-day>on <date>", -4.73795129722191),+ ("July<day-of-month> (ordinal or number) <named-month>",+ -5.654242029096065),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -4.401479060600697),+ ("about|exactly <time-of-day>year (latent)",+ -5.654242029096065),+ ("absorption of , after named dayJuly", -5.2487769209879005),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.73795129722191),+ ("Clean Mondayyear (latent)", -5.654242029096065),+ ("monthhour", -5.654242029096065),+ ("hourmonth", -4.96109484853612),+ ("todayat <time-of-day>", -5.654242029096065),+ ("Bank Holidayyear (latent)", -4.96109484853612),+ ("from|since|after <time-of-day>July", -5.654242029096065),+ ("Mondayyear (latent)", -4.96109484853612),+ ("dayday", -5.2487769209879005),+ ("dd/mmat <time-of-day>", -5.2487769209879005),+ ("<time-of-day> am|pmon <date>", -4.401479060600697),+ ("Thursdaydd/mm", -5.654242029096065),+ ("dayyear", -2.609719591372642),+ ("New Year's Dayyear (latent)", -5.2487769209879005),+ ("Thursdayat <time-of-day>", -4.401479060600697),+ ("<integer> to|till|before <hour-of-day>September",+ -5.654242029096065),+ ("Aprilyear (latent)", -5.654242029096065),+ ("monthminute", -5.654242029096065),+ ("<time-of-day> am|pmtomorrow", -5.654242029096065),+ ("Thursdayhh:mm", -4.73795129722191),+ ("August<day-of-month> (ordinal or number) <named-month>",+ -5.654242029096065),+ ("minutemonth", -3.8624825598680097),+ ("Sundayfrom|since|after <time-of-day>", -5.654242029096065),+ ("week-endin <named-month>|year", -5.654242029096065),+ ("Augustyear (latent)", -5.2487769209879005),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.2487769209879005),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.2487769209879005),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.654242029096065),+ ("dd/mm<time-of-day> - <time-of-day> (interval)",+ -5.2487769209879005),+ ("Sundayyear (latent)", -4.96109484853612),+ ("Christmasat <time-of-day>", -5.654242029096065),+ ("dd/mmyear (latent)", -5.654242029096065),+ ("<duration> after|before|from <time>December",+ -5.654242029096065),+ ("yesterday<time-of-day> am|pm", -5.654242029096065),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -4.73795129722191),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -5.2487769209879005),+ ("<named-month> <day-of-month> (non ordinal)August",+ -5.654242029096065),+ ("until <time-of-day>on <date>", -4.96109484853612),+ ("at <time-of-day>intersect", -5.2487769209879005),+ ("hh:mmyear (latent)", -4.555629740427955),+ ("Holiyear (latent)", -5.654242029096065),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -5.654242029096065),+ ("dayminute", -3.1693353793080647),+ ("intersectSeptember", -4.1501646323197905),+ ("minuteday", -2.5861890939624477),+ ("absorption of , after named dayintersect",+ -5.654242029096065),+ ("Februaryin|during the <part-of-day>", -5.654242029096065),+ ("hh:mmon <date>", -3.6393390085538),+ ("Saturdayyear (latent)", -5.654242029096065),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -5.654242029096065),+ ("absorption of , after named daySeptember", -4.73795129722191),+ ("Naraka Chaturdashiyear (latent)", -5.654242029096065),+ ("on <date>September", -5.2487769209879005),+ ("at <time-of-day>on <date>", -5.2487769209879005),+ ("in <named-month>|yearyear (latent)", -5.654242029096065),+ ("dayweek", -5.654242029096065),+ ("Easter Sundayyear (latent)", -5.2487769209879005),+ ("Thursday<time-of-day> am|pm", -5.2487769209879005),+ ("absorption of , after named dayFebruary", -4.73795129722191),+ ("July<integer> to|till|before <hour-of-day>",+ -5.654242029096065),+ ("tomorrowat <time-of-day>", -5.654242029096065),+ ("<integer> to|till|before <hour-of-day>July",+ -5.654242029096065),+ ("Thursdayfrom|since|after <time-of-day>", -4.044804116661965),+ ("tomorrow<time-of-day> am|pm", -5.654242029096065),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -4.96109484853612),+ ("Diwaliyear (latent)", -5.2487769209879005),+ ("Tuesdayfrom|since|after <time-of-day>", -5.654242029096065),+ ("Fridayyear (latent)", -5.2487769209879005),+ ("minuteyear", -4.401479060600697)],+ n = 181}}),+ ("one eleven",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("after lunch/work/school",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("early morning",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <number> (implicit minutes)",+ Classifier{okData =+ ClassData{prior = -1.2039728043259361,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.3184537311185346),+ ("integer (0..19)", -1.2992829841302609)],+ n = 9},+ koData =+ ClassData{prior = -0.35667494393873245,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.19105523676270922),+ ("integer (0..19)", -1.749199854809259)],+ n = 21}}),+ ("<ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.791759469228055),+ ("ordinal (digits)quarter (grain)year (latent)",+ -2.1972245773362196),+ ("quarteryear", -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+ -2.1972245773362196),+ ("ordinal (digits)day (grain)this|last|next <cycle>",+ -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+ -2.1972245773362196),+ ("weekmonth", -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+ -2.1972245773362196)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.295836866004329,+ likelihoods = HashMap.fromList [("", 0.0)], n = 25},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -1.0116009116784799,+ unseen = -3.6375861597263857,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -2.001480000210124),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("hh:mmhh:mm", -2.001480000210124),+ ("dayday", -2.512305623976115),+ ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+ ("hourhour", -2.512305623976115),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+ n = 8},+ koData =+ ClassData{prior = -0.45198512374305727,+ unseen = -3.912023005428146,+ likelihoods =+ HashMap.fromList+ [("hourday", -3.1986731175506815),+ ("dayhour", -2.793208009442517),+ ("<day-of-month> (ordinal)time-of-day (latent)",+ -3.1986731175506815),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -3.1986731175506815),+ ("hh:mmtime-of-day (latent)", -2.2823823856765264),+ ("minuteminute", -2.793208009442517),+ ("time-of-day (latent)time-of-day (latent)",+ -2.793208009442517),+ ("dayday", -3.1986731175506815),+ ("hourhour", -2.505525936990736),+ ("dayyear", -3.1986731175506815),+ ("minutehour", -2.2823823856765264),+ ("hh:mmintersect", -2.793208009442517),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("time-of-day (latent)<time-of-day> am|pm",+ -3.1986731175506815),+ ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+ -3.1986731175506815)],+ n = 14}}),+ ("Saturday",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("the <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+ -1.7346010553881064),+ ("weekmonth", -1.7346010553881064),+ ("week (grain)October", -1.7346010553881064),+ ("week (grain)<named-month> <day-of-month> (non ordinal)",+ -1.7346010553881064),+ ("weekday", -1.2237754316221157)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("number.number hours",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.6094379124341003),+ ("hh:mmhh:mm", -1.6094379124341003),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+ ("hourhour", -2.3025850929940455),+ ("hourminute", -2.3025850929940455),+ ("time-of-day (latent)<time-of-day> sharp|exactly",+ -2.70805020110221),+ ("time-of-day (latent)hh:mm", -2.70805020110221),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.6094379124341003),+ ("time-of-day (latent)time-of-day (latent)",+ -2.0149030205422647),+ ("hourhour", -1.791759469228055),+ ("minutehour", -1.6094379124341003),+ ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+ n = 9}}),+ ("integer 21..99",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)", -0.6931471805599453),+ ("integer (20..90)integer (0..19)", -0.6931471805599453)],+ n = 4}}),+ ("Tisha B'Av",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Mothering Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("yyyy-mm-dd",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (latent)",+ Classifier{okData =+ ClassData{prior = -0.15746743245325218,+ unseen = -4.897839799950911,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -4.616204176316249e-2),+ ("intersect 2 numbers", -3.5040547671018634)],+ n = 129},+ koData =+ ClassData{prior = -1.9262373834566084, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.3121863889661687),+ ("negative numbers", -0.6190392084062235),+ ("compose by multiplication", -1.8718021769015913)],+ n = 22}}),+ ("Bank Holiday",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Monday",+ Classifier{okData =+ ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.2237754316221157,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+ ("dd/mm/yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("yesterday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm:ss",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Hanukkah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<hour-of-day> <integer>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>integer (20..90)", -1.3862943611198906),+ ("hour", -0.9808292530117262),+ ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>integer (numeric)",+ -1.0986122886681098),+ ("hour", -1.0986122886681098)],+ n = 1}}),+ ("nth <time> of <time>",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.9808292530117262),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -2.0794415416798357),+ ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+ -1.6739764335716716),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+ -1.6739764335716716)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.0986122886681098),+ ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+ -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+ -1.3862943611198906)],+ n = 3}}),+ ("Valentine's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("April",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maha Saptami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week (grain)",+ Classifier{okData =+ ClassData{prior = -4.0821994520255166e-2,+ unseen = -4.304065093204169,+ likelihoods = HashMap.fromList [("", 0.0)], n = 72},+ koData =+ ClassData{prior = -3.2188758248682006,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("<part-of-day> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+ -2.3513752571634776),+ ("part of daysintersect", -2.3513752571634776),+ ("hourday", -0.9650808960435872),+ ("part of daysthe <day-of-month> (ordinal)",+ -2.3513752571634776),+ ("part of daysthe <day-of-month> (number)",+ -2.3513752571634776),+ ("part of daysthis <time>", -2.3513752571634776),+ ("part of daysChristmas", -1.9459101490553135)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("six thirty six a.m.",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.252762968495368),+ ("one twenty two", -0.8472978603872037),+ ("one eleven", -1.252762968495368)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Shrove Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("now",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("<day-of-month> (ordinal or number) of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.3513752571634776),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.3513752571634776),+ ("ordinal (digits)February", -2.3513752571634776),+ ("integer (numeric)February", -1.9459101490553135),+ ("month", -0.9650808960435872),+ ("ordinal (digits)March", -2.3513752571634776),+ ("integer (numeric)July", -2.3513752571634776)],+ n = 7},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.5040773967762742),+ ("month", -1.5040773967762742)],+ n = 1}}),+ ("this <part-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("hour", -0.6931471805599453),+ ("part of days", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Kaanum Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom Kippur",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("powers of tens",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Friday",+ Classifier{okData =+ ClassData{prior = -0.3677247801253174,+ unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ koData =+ ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("in|during the <part-of-day>",+ Classifier{okData =+ ClassData{prior = -8.701137698962981e-2,+ unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("early morning", -2.5257286443082556),+ ("hour", -0.7339691750802004),+ ("part of days", -0.8209805520698302)],+ n = 11},+ koData =+ ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("hour", -0.916290731874155),+ ("part of days", -0.916290731874155)],+ n = 1}}),+ ("tomorrow",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh(:mm) - <time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|last|next <cycle>",+ Classifier{okData =+ ClassData{prior = -7.598590697792199e-2,+ unseen = -5.093750200806762,+ likelihoods =+ HashMap.fromList+ [("week", -1.1173044216802621),+ ("month (grain)", -2.7850112422383386),+ ("year (grain)", -2.6026896854443837),+ ("week (grain)", -1.1173044216802621),+ ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),+ ("month", -2.7850112422383386),+ ("quarter (grain)", -3.4781584227982836)],+ n = 76},+ koData =+ ClassData{prior = -2.6149597780361984,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("week", -1.4816045409242156),+ ("week (grain)", -1.4816045409242156),+ ("day", -1.9924301646902063),+ ("day (grain)", -1.9924301646902063)],+ n = 6}}),+ ("Simchat Torah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("August Bank Holiday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Eve",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Raksha Bandhan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ashura",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Palm Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Adha",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -1.9459101490553135),+ ("time-of-day (latent)", -1.9459101490553135),+ ("<time-of-day> am|pm", -1.9459101490553135),+ ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+ ("minute", -1.540445040947149)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2006706954621511,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinals (first..twentieth,thirtieth,...)",+ -1.7047480922384253),+ ("ordinal (digits)", -0.2006706954621511)],+ n = 9},+ koData =+ ClassData{prior = -1.7047480922384253,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],+ n = 2}}),+ ("last weekend of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("October", -0.9555114450274363), ("July", -1.8718021769015913),+ ("month", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (number)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lag BaOmer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("fractional number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),+ ("Sunday",+ Classifier{okData =+ ClassData{prior = -0.3364722366212129,+ unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("Chinese New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("February",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods = HashMap.fromList [("", 0.0)], n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("minute (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|this|next <season>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1}}),+ ("time-of-day (latent)",+ Classifier{okData =+ ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.11778303565638351),+ ("integer (0..19)", -2.330755969960742)],+ n = 69},+ koData =+ ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -9.352605801082348e-2),+ ("integer (0..19)", -2.9267394020670396),+ ("integer 21..99", -3.332204510175204)],+ n = 53}}),+ ("beginning of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last <day-of-week> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.916290731874155),+ ("SundayMarch", -1.6094379124341003),+ ("MondayMarch", -1.6094379124341003),+ ("Sundayintersect", -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.13858616328614667,+ unseen = -5.147494476813453,+ likelihoods =+ HashMap.fromList+ [("week", -2.5026062268874014),+ ("integer (0..19)year (grain)", -3.062222014822824),+ ("integer (numeric)day (grain)", -2.743768283704289),+ ("integer (0..19)second (grain) ", -3.7553691953827695),+ ("integer (0..19)hour (grain)", -3.062222014822824),+ ("second", -3.349904087274605),+ ("integer (numeric)second (grain) ", -4.04305126783455),+ ("integer (numeric)year (grain)", -3.349904087274605),+ ("day", -2.4336133554004498), ("year", -2.576714199041123),+ ("integer (numeric)week (grain)", -3.062222014822824),+ ("integer (0..19)month (grain)", -3.5322256440685593),+ ("hour", -2.6567569067146595), ("month", -3.1957534074473464),+ ("integer (numeric)minute (grain)", -3.1957534074473464),+ ("integer (0..19)minute (grain)", -3.062222014822824),+ ("integer (numeric)month (grain)", -4.04305126783455),+ ("minute", -2.5026062268874014),+ ("integer (numeric)hour (grain)", -3.5322256440685593),+ ("integer (0..19)day (grain)", -3.5322256440685593),+ ("integer (0..19)week (grain)", -3.1957534074473464)],+ n = 74},+ koData =+ ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+ ("integer (numeric)hour (grain)", -1.4087672169719492),+ ("integer (0..19)quarter (grain)", -3.1135153092103742)],+ n = 11}}),+ ("hhmm (latent)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,+ likelihoods =+ HashMap.fromList+ [("integer after|past <hour-of-day>", -3.951243718581427),+ ("at <time-of-day>", -2.202043863772168),+ ("from|since|after <time-of-day>", -3.7281001672672174),+ ("<time-of-day> o'clock", -4.238925791033208),+ ("half after|past <hour-of-day>", -4.238925791033208),+ ("time-of-day (latent)", -1.7266201670570935),+ ("hhmm (latent)", -4.6443908991413725),+ ("hh:mm", -2.293015641977895),+ ("quarter after|past <hour-of-day>", -4.6443908991413725),+ ("about|exactly <time-of-day>", -4.6443908991413725),+ ("until <time-of-day>", -3.951243718581427),+ ("hour", -1.2104036946562264),+ ("<time-of-day> sharp|exactly", -4.6443908991413725),+ ("minute", -1.754019141245208)],+ n = 96},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.283414346005772),+ ("from|since|after <time-of-day>", -3.283414346005772),+ ("<hour-of-day> <integer>", -3.6888794541139363),+ ("time-of-day (latent)", -1.0498221244986778),+ ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],+ n = 32}}),+ ("Yom Ha'atzmaut",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+ ("integer (numeric)integer (numeric)July", -1.252762968495368),+ ("month", -0.8472978603872037)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thiru Onam",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thai Pongal",+ Classifier{okData =+ ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -0.8472978603872037,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Vijayadashami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thanksgiving Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Guy Fawkes Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("a <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.5306282510621704,+ unseen = -3.5553480614894135,+ likelihoods =+ HashMap.fromList+ [("week", -2.1400661634962708),+ ("year (grain)", -2.4277482359480516),+ ("second", -2.833213344056216),+ ("week (grain)", -2.1400661634962708),+ ("day", -2.1400661634962708),+ ("minute (grain)", -2.833213344056216),+ ("year", -2.4277482359480516),+ ("second (grain) ", -2.833213344056216),+ ("minute", -2.833213344056216),+ ("day (grain)", -2.1400661634962708)],+ n = 10},+ koData =+ ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("hour (grain)", -1.7227665977411035),+ ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+ ("quarter (grain)", -1.9459101490553135)],+ n = 7}}),+ ("at the beginning|end of <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("year (latent)", -0.6931471805599453),+ ("year", -0.6931471805599453)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Dhanteras",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Tu BiShvat",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Whit Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm",+ Classifier{okData =+ ClassData{prior = -4.255961441879589e-2,+ unseen = -4.2626798770413155,+ likelihoods = HashMap.fromList [("", 0.0)], n = 69},+ koData =+ ClassData{prior = -3.1780538303479458,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Holi",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Rosh Hashanah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Holika Dahan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("second (grain) ",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinals (first..twentieth,thirtieth,...)",+ Classifier{okData =+ ClassData{prior = -6.899287148695143e-2,+ unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14},+ koData =+ ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Mawlid",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Jumu'atul-Wida",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.252762968495368),+ ("dayday", -0.8472978603872037),+ ("day (grain)yesterday", -1.252762968495368)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("about|exactly <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("week", -1.791759469228055),+ ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+ ("this|last|next <cycle>", -1.791759469228055),+ ("day", -2.4849066497880004),+ ("time-of-day (latent)", -2.890371757896165),+ ("hhmm (latent)", -2.4849066497880004),+ ("<time-of-day> am|pm", -2.890371757896165),+ ("hour", -2.1972245773362196),+ ("next <time>", -2.890371757896165),+ ("this|next <day-of-week>", -2.890371757896165),+ ("minute", -2.4849066497880004)],+ n = 12},+ koData =+ ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("dd/mm", -2.0794415416798357), ("day", -2.0794415416798357),+ ("time-of-day (latent)", -2.0794415416798357),+ ("hour", -2.0794415416798357)],+ n = 2}}),+ ("Sukkot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> in <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("monthyear", -1.2992829841302609),+ ("Marcha <unit-of-duration>", -1.7047480922384253),+ ("March<integer> <unit-of-duration>", -1.7047480922384253),+ ("Vijayadashami<integer> <unit-of-duration>",+ -1.7047480922384253),+ ("dayyear", -1.7047480922384253)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("World Vegan Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -5.081404364984463,+ likelihoods =+ HashMap.fromList+ [("Wednesday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("dayhour", -3.1292636661785136),+ ("daymonth", -3.1292636661785136),+ ("<named-month> <day-of-month> (non ordinal)Friday",+ -4.382026634673881),+ ("Friday<named-month> <day-of-month> (non ordinal)",+ -3.6888794541139363),+ ("Wednesdayintersect", -4.382026634673881),+ ("Black Fridaythis|last|next <cycle>", -4.382026634673881),+ ("<part-of-day> of <time>February", -4.382026634673881),+ ("Saturday<time-of-day> am|pm", -4.382026634673881),+ ("Martin Luther King's Daythis|last|next <cycle>",+ -3.9765615265657175),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.382026634673881),+ ("on <date><time-of-day> am|pm", -4.382026634673881),+ ("hourmonth", -4.382026634673881),+ ("dayday", -2.5102244577722903),+ ("the <day-of-month> (ordinal)February", -3.9765615265657175),+ ("WednesdayOctober", -4.382026634673881),+ ("Wednesdaythis|last|next <cycle>", -3.9765615265657175),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -3.4657359027997265),+ ("dayyear", -2.8779492378976075),+ ("Saturday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("Thursdayhh:mm", -3.9765615265657175),+ ("Thanksgiving Daythis|last|next <cycle>", -4.382026634673881),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -3.9765615265657175),+ ("TuesdayOctober", -4.382026634673881),+ ("the <day-of-month> (ordinal)March", -4.382026634673881),+ ("Mondaythis|last|next <cycle>", -4.382026634673881),+ ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.382026634673881),+ ("Fridayintersect", -4.382026634673881),+ ("Thursday<datetime> - <datetime> (interval)",+ -3.6888794541139363),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.4657359027997265),+ ("Tuesdaythis|last|next <cycle>", -4.382026634673881),+ ("Sunday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("dayminute", -2.995732273553991),+ ("minuteday", -3.4657359027997265),+ ("this|last|next <cycle>Sunday", -4.382026634673881),+ ("intersectyear (latent)", -4.382026634673881),+ ("Sundaythis|last|next <cycle>", -4.382026634673881),+ ("weekday", -4.382026634673881),+ ("dayweek", -3.283414346005772),+ ("Thursday<time-of-day> am|pm", -4.382026634673881),+ ("Monday<named-month> <day-of-month> (non ordinal)",+ -3.9765615265657175),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -3.9765615265657175)],+ n = 50},+ koData =+ ClassData{prior = -0.9808292530117262, unseen = -4.795790545596741,+ likelihoods =+ HashMap.fromList+ [("week-endJuly", -4.0943445622221),+ ("week-endOctober", -3.4011973816621555),+ ("daymonth", -1.8971199848858813),+ ("TuesdaySeptember", -4.0943445622221),+ ("Wednesdayintersect", -4.0943445622221),+ ("hourmonth", -2.995732273553991),+ ("Fridaythis|last|next <cycle>", -4.0943445622221),+ ("SundayFebruary", -4.0943445622221),+ ("WednesdayOctober", -4.0943445622221),+ ("week-endintersect", -4.0943445622221),+ ("dayyear", -4.0943445622221),+ ("FridayJuly", -3.6888794541139363),+ ("FridaySeptember", -4.0943445622221),+ ("WednesdayFebruary", -4.0943445622221),+ ("minutemonth", -3.1780538303479458),+ ("SundayMarch", -4.0943445622221),+ ("MondayFebruary", -3.6888794541139363),+ ("Fridayintersect", -4.0943445622221),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.6888794541139363),+ ("dayminute", -3.4011973816621555),+ ("SaturdaySeptember", -4.0943445622221),+ ("intersectSeptember", -3.1780538303479458),+ ("MondayMarch", -4.0943445622221),+ ("on <date>September", -3.6888794541139363),+ ("Tuesdayintersect", -4.0943445622221),+ ("Sundayintersect", -4.0943445622221)],+ n = 30}}),+ ("last <time>",+ Classifier{okData =+ ClassData{prior = -0.5306282510621704,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("Father's Day", -2.772588722239781),+ ("Martin Luther King's Day", -2.772588722239781),+ ("Mothering Sunday", -2.772588722239781),+ ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),+ ("Chinese New Year", -2.367123614131617),+ ("Thanksgiving Day", -2.772588722239781),+ ("Easter Sunday", -2.772588722239781),+ ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),+ ("week-end", -2.772588722239781)],+ n = 10},+ koData =+ ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("Monday", -2.5649493574615367), ("day", -2.159484249353372),+ ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),+ ("week-end", -1.466337068793427)],+ n = 7}}),+ ("March",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods = HashMap.fromList [("", 0.0)], n = 19},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("Octoberordinal (digits)", -2.120263536200091),+ ("Thursdayordinal (digits)", -2.5257286443082556),+ ("day", -2.120263536200091),+ ("Augustordinal (digits)", -2.5257286443082556),+ ("Marchordinals (first..twentieth,thirtieth,...)",+ -2.120263536200091),+ ("Tuesdayordinal (digits)", -2.5257286443082556),+ ("month", -1.2729656758128873),+ ("Marchordinal (digits)", -2.5257286443082556)],+ n = 8},+ koData =+ ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("from|since|after <time-of-day>ordinal (digits)",+ -1.8718021769015913),+ ("Augustordinal (digits)", -1.8718021769015913),+ ("month", -1.466337068793427)],+ n = 2}}),+ ("Clean Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Easter Sunday",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("Christmas",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("until <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -2.3025850929940455),+ ("<time-of-day> am|pm", -1.6094379124341003),+ ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),+ ("minute", -1.3862943611198906)],+ n = 6},+ koData =+ ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.7227665977411035),+ ("yesterday", -2.2335922215070942),+ ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),+ ("hour", -2.639057329615259), ("minute", -1.252762968495368)],+ n = 10}}),+ ("dd.mm.yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Isra and Mi'raj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<duration> after|before|from <time>",+ Classifier{okData =+ ClassData{prior = -0.3184537311185346,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("a <unit-of-duration>now", -2.803360380906535),+ ("a <unit-of-duration>Christmas", -2.803360380906535),+ ("dayday", -2.803360380906535),+ ("<integer> <unit-of-duration>today", -2.803360380906535),+ ("daysecond", -2.803360380906535),+ ("a <unit-of-duration>right now", -2.803360380906535),+ ("minutenograin", -2.803360380906535),+ ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+ ("<integer> <unit-of-duration>Easter Sunday",+ -2.803360380906535),+ ("secondnograin", -2.803360380906535),+ ("yearday", -2.1102132003465894),+ ("daynograin", -2.803360380906535),+ ("<integer> <unit-of-duration>now", -2.3978952727983707)],+ n = 8},+ koData =+ ClassData{prior = -1.2992829841302609,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("dayhour", -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -2.4423470353692043),+ ("dayday", -2.03688192726104),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -2.4423470353692043)],+ n = 3}}),+ ("<day-of-month> (ordinal or number) of <month>",+ Classifier{okData =+ ClassData{prior = -8.004270767353637e-2,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.803360380906535),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.803360380906535),+ ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+ ("integer (numeric)this|last|next <cycle>",+ -2.3978952727983707),+ ("ordinal (digits)February", -2.803360380906535),+ ("integer (numeric)February", -2.3978952727983707),+ ("month", -0.9315582040049435),+ ("ordinal (digits)March", -2.803360380906535),+ ("integer (numeric)July", -2.803360380906535)],+ n = 12},+ koData =+ ClassData{prior = -2.5649493574615367,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.7047480922384253),+ ("month", -1.7047480922384253)],+ n = 1}}),+ ("decimal number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Naraka Chaturdashi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("beginning of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("next <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("Martin Luther King's Day", -2.803360380906535),+ ("Halloween", -2.803360380906535),+ ("Wednesday", -2.803360380906535),+ ("Boss's Day", -2.803360380906535),+ ("Mothering Sunday", -2.803360380906535),+ ("Monday", -2.803360380906535), ("day", -1.0986122886681098),+ ("Thanksgiving Day", -2.803360380906535),+ ("March", -2.803360380906535), ("month", -2.803360380906535),+ ("Tuesday", -2.1102132003465894)],+ n = 11},+ koData =+ ClassData{prior = -infinity, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> sharp|exactly",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -2.1400661634962708),+ ("time-of-day (latent)", -2.1400661634962708),+ ("hhmm (latent)", -2.1400661634962708),+ ("<time-of-day> am|pm", -2.1400661634962708),+ ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+ ("minute", -1.4469189829363254)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <named-month>|year",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("October", -2.4423470353692043),+ ("year (latent)", -1.0560526742493137),+ ("year", -1.0560526742493137), ("March", -2.4423470353692043),+ ("month", -2.03688192726104)],+ n = 9},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("October", -1.2992829841302609),+ ("year (latent)", -1.7047480922384253),+ ("year", -1.7047480922384253), ("month", -1.2992829841302609)],+ n = 3}}),+ ("Islamic New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("negative numbers",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -7.696104113612832e-2),+ ("integer (0..19)", -2.6026896854443837)],+ n = 25}}),+ ("about|exactly <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("half an hour", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time> before last|after next",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("Wednesday", -1.8718021769015913),+ ("Friday", -1.466337068793427), ("day", -1.1786549963416462),+ ("March", -1.8718021769015913), ("month", -1.8718021769015913)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by the end of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("this|last|next <cycle>", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hhmm (military) am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,+ likelihoods =+ HashMap.fromList+ [("intersecthh:mm", -3.1918471524802814),+ ("intersect<time-of-day> am|pm", -3.1918471524802814),+ ("minuteminute", -1.457246097092175),+ ("hh:mmhh:mm", -2.093234863812172),+ ("dayday", -3.1918471524802814),+ ("hourhour", -2.093234863812172),+ ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -3.597312260588446),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.597312260588446),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),+ ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],+ n = 26},+ koData =+ ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("<named-month> <day-of-month> (non ordinal)July",+ -3.1135153092103742),+ ("daymonth", -2.70805020110221),+ ("from|since|after <time-of-day>intersect", -2.70805020110221),+ ("<time-of-day> am|pmintersect", -3.1135153092103742),+ ("hh:mm<time-of-day> am|pm", -2.70805020110221),+ ("minuteminute", -1.8607523407150064),+ ("hourhour", -2.70805020110221),+ ("minutehour", -2.70805020110221),+ ("hh:mmintersect", -2.1972245773362196),+ ("<named-month> <day-of-month> (non ordinal)August",+ -3.1135153092103742),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.1135153092103742)],+ n = 12}}),+ ("Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Day",+ Classifier{okData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+ ("fortnight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> and an half hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Laylat al-Qadr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Boghi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("at the beginning|end of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("January", -1.3862943611198906),+ ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+ n = 4},+ koData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("October", -1.0986122886681098),+ ("month", -1.0986122886681098)],+ n = 1}}),+ ("<time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.529395204760564),+ ("hh:mmhh:mm", -1.8971199848858813),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -2.4849066497880004),+ ("hourhour", -1.6964492894237302),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -3.4011973816621555),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.4011973816621555),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),+ ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],+ n = 22},+ koData =+ ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>time-of-day (latent)",+ -3.4657359027997265),+ ("hh:mmtime-of-day (latent)", -1.7609878105613013),+ ("hh:mm<time-of-day> am|pm", -3.0602707946915624),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -3.4657359027997265),+ ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),+ ("hourhour", -2.2129729343043585),+ ("minutehour", -1.2144441041932315),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.4657359027997265),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -2.5494451709255714),+ ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),+ ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+ -3.0602707946915624)],+ n = 24}}),+ ("military spelled out numbers am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods =+ HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("winter",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("nth <time> after <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+ -0.916290731874155)],+ n = 1}}),+ ("<named-month> <day-of-month> (non ordinal)",+ Classifier{okData =+ ClassData{prior = -0.42121346507630353,+ unseen = -3.951243718581427,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.5455312716044354),+ ("Marchinteger (numeric)", -2.833213344056216),+ ("Aprilinteger (numeric)", -3.2386784521643803),+ ("month", -0.8407831793660099),+ ("Februaryinteger (numeric)", -1.9859154836690123),+ ("Septemberinteger (numeric)", -2.833213344056216),+ ("Octoberinteger (numeric)", -2.833213344056216),+ ("Julyinteger (numeric)", -2.1400661634962708)],+ n = 21},+ koData =+ ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.3353749158170367),+ ("Marchinteger (numeric)", -2.740840023925201),+ ("Aprilinteger (numeric)", -2.740840023925201),+ ("month", -0.9490805546971459),+ ("from|since|after <time-of-day>integer (numeric)",+ -2.3353749158170367),+ ("Julyinteger (numeric)", -1.6422277352570913)],+ n = 11}}),+ ("Diwali",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("last night",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|next <day-of-week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.995732273553991,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.2512917986064953),+ ("Wednesday", -2.2512917986064953),+ ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+ ("Tuesday", -1.55814461804655)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinal (digits)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6635616461296463,+ likelihoods = HashMap.fromList [("", 0.0)], n = 37},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter (grain)",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("last <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("day (grain)October", -1.791759469228055),+ ("daymonth", -1.2809338454620642),+ ("day (grain)intersect", -1.791759469228055),+ ("weekmonth", -1.791759469228055),+ ("week (grain)intersect", -2.1972245773362196),+ ("week (grain)September", -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Chhath",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Vasant Panchami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month>(ordinal) <named-month> year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)April", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Black Friday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week-end",+ Classifier{okData =+ ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.3364722366212129,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+ ("Great Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maundy Thursday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("day (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.295836866004329,+ likelihoods = HashMap.fromList [("", 0.0)], n = 25},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("right now",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("for <duration> from <time>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -1.5040773967762742),+ ("dayday", -1.0986122886681098),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -1.5040773967762742)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.252762968495368),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -1.252762968495368)],+ n = 1}}),+ ("compose by multiplication",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("between <time> and <time>",+ Classifier{okData =+ ClassData{prior = -1.0986122886681098,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.832909122935104),+ ("hh:mmhh:mm", -0.832909122935104)],+ n = 9},+ koData =+ ClassData{prior = -0.40546510810816444,+ unseen = -3.7376696182833684,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.410986973710262),+ ("minuteminute", -1.410986973710262),+ ("minutehour", -1.410986973710262),+ ("hh:mmintersect", -1.410986973710262)],+ n = 18}}),+ ("<month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+ ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",+ -2.740840023925201),+ ("from|since|after <time-of-day>integer (numeric)integer (numeric)",+ -2.740840023925201),+ ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",+ -2.740840023925201),+ ("Augustordinal (digits)integer (numeric)",+ -2.3353749158170367),+ ("month", -0.8690378470236094),+ ("Augustordinal (digits)ordinal (digits)",+ -2.3353749158170367)],+ n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of days",+ Classifier{okData =+ ClassData{prior = -3.509131981127006e-2,+ unseen = -3.4011973816621555,+ likelihoods = HashMap.fromList [("", 0.0)], n = 28},+ koData =+ ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("at the beginning|end of <week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.330733340286331,+ likelihoods =+ HashMap.fromList+ [("week", -0.706570200892086),+ ("this|last|next <cycle>", -0.8209805520698302),+ ("about|exactly <time-of-day>", -2.70805020110221)],+ n = 36},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Fitr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("summer",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("Trinity Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("dd-dd <month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)September",+ -1.791759469228055),+ ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),+ ("ordinal (digits)ordinal (digits)October",+ -2.1972245773362196),+ ("integer (numeric)integer (numeric)July", -2.1972245773362196),+ ("month", -0.9444616088408514),+ ("ordinal (digits)ordinal (digits)August",+ -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Pentecost",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.639057329615259),+ ("Martin Luther King's Day", -2.639057329615259),+ ("Monday", -2.639057329615259), ("day", -1.1349799328389845),+ ("Thanksgiving Day", -2.639057329615259),+ ("Christmas", -2.639057329615259), ("hour", -2.639057329615259),+ ("winter", -2.639057329615259),+ ("week-end", -2.639057329615259),+ ("summer", -2.2335922215070942)],+ n = 9},+ koData =+ ClassData{prior = -infinity, unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("August",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}})]
Duckling/Ranking/Classifiers/EN_US.hs view
@@ -21,2389 +21,3114 @@ classifiers :: Classifiers classifiers = HashMap.fromList- [("<integer> to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("integer (numeric)noon|midnight|EOD|end of day",- -0.916290731874155),- ("hour", -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.13353139262452263,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hour", -0.7537718023763802),- ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],- n = 7}}),- ("<time> timezone",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -1.824549292051046),- ("<time-of-day> am|pm", -1.6422277352570913),- ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),- ("minute", -1.824549292051046)],- n = 13},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thursday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (numeric)",- Classifier{okData =- ClassData{prior = -0.7765287894989963, unseen = -5.225746673713201,- likelihoods = HashMap.fromList [("", 0.0)], n = 184},- koData =- ClassData{prior = -0.616186139423817, unseen = -5.384495062789089,- likelihoods = HashMap.fromList [("", 0.0)], n = 216}}),- ("<duration> hence|ago",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.784189633918261,- likelihoods =- HashMap.fromList- [("week", -1.563975538357343), ("day", -1.8152899666382492),- ("year", -2.662587827025453),- ("<integer> <unit-of-duration>", -1.0531499145913523),- ("a <unit-of-duration>", -2.662587827025453),- ("month", -2.662587827025453),- ("fortnight", -2.662587827025453)],- n = 18},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("noon|midnight|EOD|end of day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<cycle> after|before <time>",- Classifier{okData =- ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.6094379124341003),- ("dayday", -1.0986122886681098),- ("day (grain)yesterday", -1.6094379124341003)],- n = 4},- koData =- ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("dayhour", -1.466337068793427),- ("year (grain)Christmas", -1.8718021769015913),- ("day (grain)intersect", -1.466337068793427),- ("yearday", -1.8718021769015913)],- n = 3}}),- ("Martin Luther King's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (20..90)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("mm/yyyy",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("integer after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("hour", -0.8109302162163288),- ("integer (numeric)time-of-day (latent)", -1.0986122886681098),- ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal or number) <named-month>",- Classifier{okData =- ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("ordinal (digits)December", -2.1400661634962708),- ("ordinal (digits)February", -2.1400661634962708),- ("integer (numeric)April", -2.1400661634962708),- ("month", -1.4469189829363254)],- n = 3},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -3.4011973816621555,- likelihoods =- HashMap.fromList- [("ordinal (digits)October", -2.6741486494265287),- ("ordinal (digits)July", -2.6741486494265287),- ("integer (numeric)September", -2.268683541318364),- ("ordinal (digits)August", -2.6741486494265287),- ("integer (numeric)August", -2.6741486494265287),- ("ordinal (digits)April", -2.6741486494265287),- ("month", -1.0647107369924282),- ("integer (numeric)July", -2.268683541318364)],- n = 9}}),- ("<time> <part-of-day>",- Classifier{okData =- ClassData{prior = -9.844007281325252e-2,- unseen = -4.430816798843313,- likelihoods =- HashMap.fromList- [("<day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("dayhour", -1.5284688499004333),- ("Mondayearly morning", -3.3202283191284883),- ("time-of-day (latent)tonight", -3.3202283191284883),- ("hourhour", -2.339399066116762),- ("<time-of-day> o'clockin|during the <part-of-day>",- -3.7256934272366524),- ("todaypart of days", -3.7256934272366524),- ("minutehour", -2.627081138568543),- ("at <time-of-day>in|during the <part-of-day>",- -3.3202283191284883),- ("time-of-day (latent)this <part-of-day>", -3.7256934272366524),- ("Mondayin|during the <part-of-day>", -3.7256934272366524),- ("intersectpart of days", -3.7256934272366524),- ("intersectin|during the <part-of-day>", -3.7256934272366524),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -3.7256934272366524),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("tomorrowpart of days", -2.339399066116762),- ("hh:mmin|during the <part-of-day>", -3.0325462466767075),- ("time-of-day (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("hhmm (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("yesterdaypart of days", -3.7256934272366524),- ("Mondaypart of days", -3.7256934272366524)],- n = 29},- koData =- ClassData{prior = -2.367123614131617, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("yearhour", -2.740840023925201),- ("monthhour", -2.740840023925201),- ("hourhour", -2.740840023925201),- ("past year (latent)in|during the <part-of-day>",- -2.740840023925201),- ("Februaryin|during the <part-of-day>", -2.740840023925201),- ("time-of-day (latent)in|during the <part-of-day>",- -2.740840023925201)],- n = 3}}),- ("today",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd",- Classifier{okData =- ClassData{prior = -1.4271163556401458,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,- likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),- ("at <time-of-day>",- Classifier{okData =- ClassData{prior = -9.381875521765486e-2,- unseen = -4.90527477843843,- likelihoods =- HashMap.fromList- [("<time> timezone", -3.7992275112828016),- ("noon|midnight|EOD|end of day", -3.7992275112828016),- ("integer after|past <hour-of-day>", -3.7992275112828016),- ("half after|past <hour-of-day>", -4.204692619390966),- ("time-of-day (latent)", -1.7197859696029658),- ("hhmm (latent)", -3.5115454388310208),- ("<time-of-day> am|pm", -1.8067973465925955),- ("hh:mm", -3.288401887516811),- ("about|exactly <time-of-day>", -3.7992275112828016),- ("hour", -1.0911773101805915),- ("<time-of-day> sharp|exactly", -4.204692619390966),- ("minute", -2.0074680420547466)],- n = 61},- koData =- ClassData{prior = -2.412933150162911, unseen = -3.2188758248682006,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -1.2321436812926323),- ("hour", -1.2321436812926323)],- n = 6}}),- ("December",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("absorption of , after named day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("on <date>", -2.1972245773362196),- ("Wednesday", -2.6026896854443837),- ("Saturday", -2.6026896854443837),- ("Monday", -2.1972245773362196),- ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),- ("Sunday", -2.6026896854443837)],- n = 10},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("September",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("tonight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("last|past|next <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("week", -2.456735772821304), ("second", -2.639057329615259),- ("day", -2.3025850929940455), ("year", -2.639057329615259),- ("<integer> <unit-of-duration>", -0.7827593392496325),- ("hour", -2.639057329615259), ("month", -2.639057329615259),- ("minute", -2.639057329615259)],- n = 31},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("the ides of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("on <date>",- Classifier{okData =- ClassData{prior = -0.1670540846631662, unseen = -4.007333185232471,- likelihoods =- HashMap.fromList- [("Thursday", -1.791759469228055), ("mm/dd", -3.295836866004329),- ("absorption of , after named day", -2.890371757896165),- ("intersect", -2.890371757896165),- ("Saturday", -2.6026896854443837),- ("Friday", -3.295836866004329), ("day", -0.8979415932059586),- ("the <day-of-month> (ordinal)", -2.890371757896165),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -2.6026896854443837),- ("hour", -3.295836866004329)],- n = 22},- koData =- ClassData{prior = -1.8718021769015913,- unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("intersect", -1.791759469228055), ("day", -1.2809338454620642),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -1.791759469228055)],- n = 4}}),- ("integer (0..19)",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.784189633918261,- likelihoods = HashMap.fromList [("", 0.0)], n = 42},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),- ("between <time-of-day> and <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("minuteminute", -0.916290731874155),- ("hh:mmhh:mm", -0.916290731874155)],- n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -0.916290731874155),- ("minutehour", -0.916290731874155)],- n = 3}}),- ("Halloween",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),- ("Augustordinal (digits)integer (numeric)",- -1.6094379124341003),- ("month", -0.916290731874155),- ("Augustordinal (digits)ordinal (digits)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("October",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods = HashMap.fromList [("", 0.0)], n = 16},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from|since|after <time-of-day>",- Classifier{okData =- ClassData{prior = -1.5040773967762742, unseen = -4.02535169073515,- likelihoods =- HashMap.fromList- [("July", -3.3141860046725258),- ("time-of-day (latent)", -2.3978952727983707),- ("<time-of-day> am|pm", -2.3978952727983707),- ("hh:mm", -2.3978952727983707), ("hour", -1.8101086078962516),- ("month", -2.908720896564361), ("minute", -2.3978952727983707),- ("August", -3.3141860046725258)],- n = 14},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -4.836281906951478,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.7297014486341915),- ("week", -4.135166556742356),- ("<day-of-month> (ordinal or number) <named-month>",- -4.135166556742356),- ("today", -4.135166556742356),- ("intersect", -2.7488721956224653),- ("second", -4.135166556742356), ("now", -3.4420193761824103),- ("tomorrow", -3.7297014486341915),- ("this|last|next <cycle>", -4.135166556742356),- ("day", -1.995100393246085),- ("time-of-day (latent)", -4.135166556742356),- ("<time-of-day> am|pm", -3.7297014486341915),- ("nograin", -3.4420193761824103),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- -4.135166556742356),- ("Christmas", -3.4420193761824103),- ("hour", -2.8824035882469876),- ("<datetime> - <datetime> (interval)", -2.7488721956224653),- ("<time-of-day> - <time-of-day> (interval)",- -2.430418464503931),- ("<named-month> <day-of-month> (non ordinal)",- -3.7297014486341915),- ("minute", -1.6928195213731514),- ("right now", -4.135166556742356),- ("<month> dd-dd (interval)", -3.4420193761824103),- ("dd-dd <month> (interval)", -3.7297014486341915)],- n = 49}}),- ("month (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> more <unit-of-duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("integer (numeric)minute (grain)", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> o'clock",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("in|within|after <duration>",- Classifier{okData =- ClassData{prior = -4.652001563489282e-2,- unseen = -4.61512051684126,- likelihoods =- HashMap.fromList- [("week", -3.2188758248682006),- ("<integer> more <unit-of-duration>", -3.912023005428146),- ("three-quarters of an hour", -2.995732273553991),- ("<integer> + '\"", -3.2188758248682006),- ("number.number hours", -3.912023005428146),- ("second", -3.506557897319982), ("day", -3.2188758248682006),- ("half an hour", -2.995732273553991),- ("<integer> <unit-of-duration>", -1.6094379124341003),- ("a <unit-of-duration>", -2.995732273553991),- ("quarter of an hour", -2.995732273553991),- ("hour", -2.5257286443082556),- ("about|exactly <duration>", -3.912023005428146),- ("<integer> and an half hour", -3.912023005428146),- ("minute", -1.2729656758128873)],- n = 42},- koData =- ClassData{prior = -3.0910424533583156, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("quarter", -1.8971199848858813),- ("<integer> <unit-of-duration>", -2.3025850929940455),- ("a <unit-of-duration>", -2.3025850929940455)],- n = 2}}),- ("three-quarters of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Wednesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> + '\"",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half <integer> (UK style hour-of-day)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("July",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hour (grain)",- Classifier{okData =- ClassData{prior = -0.8209805520698302,- unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),- ("<ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -1.1786549963416462),- ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",- -1.466337068793427),- ("quarter", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.8109302162163288),- ("quarter", -0.8109302162163288)],- n = 3}}),- ("one twenty two",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("intersect",- Classifier{okData =- ClassData{prior = -0.4957877464014501, unseen = -6.293419278846481,- likelihoods =- HashMap.fromList- [("<datetime> - <datetime> (interval)on <date>",- -4.345658990503007),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -4.345658990503007),- ("hourday", -3.8936738667599493),- ("dayhour", -2.765208614942159),- ("daymonth", -4.90527477843843),- ("monthday", -5.19295685089021),- ("monthyear", -3.9889840465642745),- ("Tuesdaythe <day-of-month> (ordinal)", -5.598421958998375),- ("Christmasyear", -5.598421958998375),- ("from <datetime> - <datetime> (interval)July",- -5.598421958998375),- ("houryear", -5.598421958998375),- ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.90527477843843),- ("<time-of-day> am|pmintersect", -4.345658990503007),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -5.598421958998375),- ("Marchyear", -5.598421958998375),- ("<named-month>|<named-day> <day-of-month> (ordinal)year",- -5.19295685089021),- ("intersect<time-of-day> am|pm", -5.598421958998375),- ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.598421958998375),- ("monthhour", -5.19295685089021),- ("last <day-of-week> of <time>year", -5.598421958998375),- ("todayat <time-of-day>", -5.598421958998375),- ("Thursday<time> timezone", -3.8936738667599493),- ("this <time>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("dayday", -3.58351893845611),- ("Thanksgiving Dayyear", -4.499809670330265),- ("<time> <part-of-day>at <time-of-day>", -5.598421958998375),- ("Tuesdayin <named-month>", -5.598421958998375),- ("mm/ddat <time-of-day>", -5.598421958998375),- ("tonightat <time-of-day>", -5.598421958998375),- ("<time-of-day> am|pmabsorption of , after named day",- -4.90527477843843),- ("today<time-of-day> am|pm", -5.598421958998375),- ("Februarythe <day-of-month> (ordinal)", -5.19295685089021),- ("at <time-of-day><time> <part-of-day>", -5.598421958998375),- ("mm/dd<time-of-day> am|pm", -5.598421958998375),- ("hourhour", -4.345658990503007),- ("<time-of-day> am|pmon <date>", -3.58351893845611),- ("Wednesdaythis|last|next <cycle>", -5.598421958998375),- ("intersect<named-month> <day-of-month> (non ordinal)",- -4.0943445622221),- ("dayyear", -3.1560749236291703),- ("last weekend of <named-month>year", -5.598421958998375),- ("<time-of-day> o'clockin|during the <part-of-day>",- -5.598421958998375),- ("Thursdayat <time-of-day>", -5.19295685089021),- ("<time-of-day> am|pmtomorrow", -4.90527477843843),- ("minutehour", -4.68213122712422),- ("Mother's Dayyear", -5.598421958998375),- ("at <time-of-day>in|during the <part-of-day>",- -5.19295685089021),- ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -3.8936738667599493),- ("for <duration> from <time>December", -5.598421958998375),- ("tomorrow<time-of-day> sharp|exactly", -5.598421958998375),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.68213122712422),- ("on <date><named-month> <day-of-month> (non ordinal)",- -5.19295685089021),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.68213122712422),- ("Mondayin|during the <part-of-day>", -5.598421958998375),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.19295685089021),- ("intersectin|during the <part-of-day>", -5.598421958998375),- ("Thursday<datetime> - <datetime> (interval)",- -4.68213122712422),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -5.598421958998375),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.345658990503007),- ("from <time-of-day> - <time-of-day> (interval)on <date>",- -4.90527477843843),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -4.68213122712422),- ("at <time-of-day>intersect", -5.19295685089021),- ("<time-of-day> - <time-of-day> (interval)tomorrow",- -5.598421958998375),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.598421958998375),- ("dayminute", -2.924273309571846),- ("from <datetime> - <datetime> (interval)on <date>",- -5.19295685089021),- ("<datetime> - <datetime> (interval)tomorrow",- -5.598421958998375),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.19295685089021),- ("<ordinal> <cycle> of <time>year", -5.598421958998375),- ("minuteday", -2.132686056198648),- ("absorption of , after named dayintersect",- -5.598421958998375),- ("Octoberyear", -4.345658990503007),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -5.598421958998375),- ("at <time-of-day>absorption of , after named day",- -5.598421958998375),- ("<day-of-month> (ordinal or number) <named-month>year",- -5.598421958998375),- ("year<time-of-day> am|pm", -5.598421958998375),- ("Septemberyear", -5.19295685089021),- ("at <time-of-day>on <date>", -4.499809670330265),- ("between <time-of-day> and <time-of-day> (interval)on <date>",- -4.90527477843843),- ("Halloweenyear", -5.598421958998375),- ("dayweek", -5.598421958998375),- ("Thursday<time-of-day> am|pm", -5.598421958998375),- ("weekyear", -5.19295685089021),- ("hh:mmin|during the <part-of-day>", -4.90527477843843),- ("Father's Dayyear", -5.598421958998375),- ("<cycle> after|before <time><time-of-day> am|pm",- -5.19295685089021),- ("February<time> <part-of-day>", -5.598421958998375),- ("Martin Luther King's Dayyear", -5.19295685089021),- ("tomorrowat <time-of-day>", -4.90527477843843),- ("between <time> and <time>on <date>", -4.90527477843843),- ("Thursdayfrom|since|after <time-of-day>", -4.90527477843843),- ("at <time-of-day>tomorrow", -5.19295685089021),- ("tomorrow<time-of-day> am|pm", -5.598421958998375),- ("in|during the <part-of-day>at <time-of-day>",- -5.598421958998375),- ("Labor Dayyear", -5.598421958998375),- ("Februaryintersect", -5.598421958998375),- ("last <cycle> of <time>year", -4.90527477843843),- ("<named-month> <day-of-month> (non ordinal)year",- -5.598421958998375),- ("yearminute", -5.598421958998375),- ("Black Fridayyear", -5.19295685089021)],- n = 201},- koData =- ClassData{prior = -0.9392802500988537, unseen = -5.983936280687191,- likelihoods =- HashMap.fromList- [("in <named-month>year", -5.288267030694535),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -5.288267030694535),- ("hourday", -5.288267030694535),- ("<named-month> <day-of-month> (non ordinal)July",- -5.288267030694535),- ("dayhour", -2.890371757896165),- ("daymonth", -3.2088254890146994),- ("monthday", -4.882801922586371),- ("monthyear", -4.59511985013459),- ("intersecthh:mm", -5.288267030694535),- ("from <datetime> - <datetime> (interval)July",- -5.288267030694535),- ("houryear", -5.288267030694535),- ("from <time-of-day> - <time-of-day> (interval)July",- -5.288267030694535),- ("until <time-of-day><time-of-day> am|pm", -5.288267030694535),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.59511985013459),- ("<time-of-day> am|pmintersect", -4.035504062199167),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.37197629882038),- ("from|since|after <time-of-day>on <date>", -4.37197629882038),- ("July<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("absorption of , after named dayJuly", -4.882801922586371),- ("monthhour", -5.288267030694535),- ("hourmonth", -4.59511985013459),- ("todayat <time-of-day>", -5.288267030694535),- ("from|since|after <time-of-day>July", -5.288267030694535),- ("dayday", -4.882801922586371),- ("mm/ddat <time-of-day>", -4.882801922586371),- ("<time-of-day> am|pmon <date>", -4.035504062199167),- ("dayyear", -4.035504062199167),- ("Thursdaymm/dd", -5.288267030694535),- ("Thursdayat <time-of-day>", -4.035504062199167),- ("<integer> to|till|before <hour-of-day>September",- -5.288267030694535),- ("monthminute", -5.288267030694535),- ("<time-of-day> am|pmtomorrow", -5.288267030694535),- ("Thursdayhh:mm", -4.37197629882038),- ("August<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("Fridayyear", -4.882801922586371),- ("minutemonth", -3.4965075614664802),- ("Sundayfrom|since|after <time-of-day>", -5.288267030694535),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.882801922586371),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("Aprilyear", -5.288267030694535),- ("mm/dd<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.288267030694535),- ("<duration> after|before|from <time>December",- -5.288267030694535),- ("yesterday<time-of-day> am|pm", -5.288267030694535),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -4.37197629882038),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("<named-month> <day-of-month> (non ordinal)August",- -5.288267030694535),- ("until <time-of-day>on <date>", -4.59511985013459),- ("at <time-of-day>intersect", -4.882801922586371),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("dayminute", -2.7625383863862796),- ("intersectSeptember", -3.784189633918261),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("minuteday", -2.3704962986102562),- ("absorption of , after named dayintersect",- -5.288267030694535),- ("Februaryin|during the <part-of-day>", -5.288267030694535),- ("week-endin <named-month>", -5.288267030694535),- ("Octoberyear", -5.288267030694535),- ("from|since|after <time-of-day>year", -5.288267030694535),- ("yearhh:mm", -5.288267030694535),- ("hh:mmon <date>", -3.784189633918261),- ("from|since|after <time-of-day><time-of-day> am|pm",- -5.288267030694535),- ("absorption of , after named daySeptember", -4.37197629882038),- ("on <date>September", -4.882801922586371),- ("at <time-of-day>on <date>", -4.882801922586371),- ("dayweek", -5.288267030694535),- ("Thursday<time-of-day> am|pm", -4.882801922586371),- ("absorption of , after named dayFebruary", -4.37197629882038),- ("July<integer> to|till|before <hour-of-day>",- -5.288267030694535),- ("tomorrowat <time-of-day>", -5.288267030694535),- ("<integer> to|till|before <hour-of-day>July",- -5.288267030694535),- ("Thursdayfrom|since|after <time-of-day>", -3.6788291182604347),- ("tomorrow<time-of-day> am|pm", -5.288267030694535),- ("Tuesdayfrom|since|after <time-of-day>", -5.288267030694535),- ("yearminute", -5.288267030694535)],- n = 129}}),- ("one eleven",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("after lunch/work/school",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("early morning",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <number> (implicit minutes)",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.3184537311185346),- ("integer (0..19)", -1.2992829841302609)],- n = 9},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.16251892949777494),- ("integer (0..19)", -1.8971199848858813)],- n = 18}}),- ("<ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("daymonth", -2.0149030205422647),- ("quarteryear", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)day (grain)October",- -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",- -2.0149030205422647),- ("weekmonth", -1.6094379124341003),- ("ordinal (digits)quarter (grain)year", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)October",- -2.0149030205422647)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("year (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.1354942159291497,- likelihoods = HashMap.fromList [("", 0.0)], n = 21},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -1.0116009116784799,- unseen = -3.6375861597263857,- likelihoods =- HashMap.fromList- [("minuteminute", -2.001480000210124),- ("<day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("hh:mmhh:mm", -2.001480000210124),- ("dayday", -2.512305623976115),- ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),- ("hourhour", -2.512305623976115),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],- n = 8},- koData =- ClassData{prior = -0.45198512374305727,- unseen = -3.912023005428146,- likelihoods =- HashMap.fromList- [("hourday", -3.1986731175506815),- ("dayhour", -2.793208009442517),- ("<day-of-month> (ordinal)time-of-day (latent)",- -3.1986731175506815),- ("hh:mmtime-of-day (latent)", -2.2823823856765264),- ("minuteminute", -2.793208009442517),- ("time-of-day (latent)time-of-day (latent)",- -2.793208009442517),- ("dayday", -3.1986731175506815),- ("hourhour", -2.505525936990736),- ("dayyear", -3.1986731175506815),- ("<named-month>|<named-day> <day-of-month> (ordinal)past year (latent)",- -3.1986731175506815),- ("minutehour", -2.2823823856765264),- ("hh:mmintersect", -2.793208009442517),- ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("time-of-day (latent)<time-of-day> am|pm",- -3.1986731175506815),- ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",- -3.1986731175506815)],- n = 14}}),- ("Saturday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",- -1.7346010553881064),- ("weekmonth", -1.7346010553881064),- ("week (grain)October", -1.7346010553881064),- ("week (grain)<named-month> <day-of-month> (non ordinal)",- -1.7346010553881064),- ("weekday", -1.2237754316221157)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("number.number hours",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("minuteminute", -1.6094379124341003),- ("hh:mmhh:mm", -1.6094379124341003),- ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),- ("hourhour", -2.3025850929940455),- ("hourminute", -2.3025850929940455),- ("time-of-day (latent)<time-of-day> sharp|exactly",- -2.70805020110221),- ("time-of-day (latent)hh:mm", -2.70805020110221),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],- n = 9},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.6094379124341003),- ("time-of-day (latent)time-of-day (latent)",- -2.0149030205422647),- ("hourhour", -1.791759469228055),- ("minutehour", -1.6094379124341003),- ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],- n = 9}}),- ("integer 21..99",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)", -0.6931471805599453),- ("integer (20..90)integer (0..19)", -0.6931471805599453)],- n = 4}}),- ("yyyy-mm-dd",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd/yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -1.6094379124341003,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("Monday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("yesterday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<ordinal> quarter <year>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh:mm:ss",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<hour-of-day> <integer>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("at <time-of-day>integer (20..90)", -1.3862943611198906),- ("hour", -0.9808292530117262),- ("at <time-of-day>integer (numeric)", -1.3862943611198906)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>integer (numeric)",- -1.0986122886681098),- ("hour", -1.0986122886681098)],- n = 1}}),- ("nth <time> of <time>",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("daymonth", -0.9808292530117262),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -2.0794415416798357),- ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",- -1.6739764335716716),- ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",- -1.6739764335716716)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.5649493574615367,- likelihoods =- HashMap.fromList- [("daymonth", -1.0986122886681098),- ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",- -1.791759469228055),- ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",- -1.3862943611198906)],- n = 3}}),- ("Valentine's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("April",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("end of month",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("week (grain)",- Classifier{okData =- ClassData{prior = -8.004270767353637e-2,- unseen = -3.6375861597263857,- likelihoods = HashMap.fromList [("", 0.0)], n = 36},- koData =- ClassData{prior = -2.5649493574615367,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("<part-of-day> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",- -1.6094379124341003),- ("hourday", -0.916290731874155),- ("part of daysthe <day-of-month> (ordinal)",- -1.6094379124341003),- ("part of daysthe <day-of-month> (number)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("past year (latent)",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 2}}),- ("six thirty six a.m.",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("integer (numeric)", -1.252762968495368),- ("one twenty two", -0.8472978603872037),- ("one eleven", -1.252762968495368)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("now",- Classifier{okData =- ClassData{prior = -0.15415067982725836,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -1.9459101490553135,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("<day-of-month> (ordinal or number) of <named-month>",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.0910424533583156,- likelihoods =- HashMap.fromList- [("ordinal (digits)July", -2.3513752571634776),- ("ordinals (first..twentieth,thirtieth,...)March",- -2.3513752571634776),- ("ordinal (digits)February", -2.3513752571634776),- ("integer (numeric)February", -1.9459101490553135),- ("month", -0.9650808960435872),- ("ordinal (digits)March", -2.3513752571634776),- ("integer (numeric)July", -2.3513752571634776)],- n = 7},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)February", -1.5040773967762742),- ("month", -1.5040773967762742)],- n = 1}}),- ("this <part-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("hour", -0.6931471805599453),- ("part of days", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Friday",- Classifier{okData =- ClassData{prior = -0.3677247801253174,- unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("in|during the <part-of-day>",- Classifier{okData =- ClassData{prior = -8.701137698962981e-2,- unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("early morning", -2.5257286443082556),- ("hour", -0.7339691750802004),- ("part of days", -0.8209805520698302)],- n = 11},- koData =- ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("hour", -0.916290731874155),- ("part of days", -0.916290731874155)],- n = 1}}),- ("tomorrow",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh(:mm) - <time-of-day> am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("this|last|next <cycle>",- Classifier{okData =- ClassData{prior = -0.15822400521489416,- unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("week", -1.5488132906176655),- ("month (grain)", -2.995732273553991),- ("year (grain)", -1.817077277212345),- ("week (grain)", -1.5488132906176655),- ("quarter", -2.772588722239781), ("year", -1.817077277212345),- ("month", -2.995732273553991),- ("quarter (grain)", -2.772588722239781)],- n = 35},- koData =- ClassData{prior = -1.9218125974762528,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("week", -1.4816045409242156),- ("week (grain)", -1.4816045409242156),- ("day", -1.9924301646902063),- ("day (grain)", -1.9924301646902063)],- n = 6}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Eve",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("by <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -2.1972245773362196),- ("end of month", -2.1972245773362196),- ("time-of-day (latent)", -2.1972245773362196),- ("<time-of-day> am|pm", -2.1972245773362196),- ("hh:mm", -2.1972245773362196), ("hour", -1.791759469228055),- ("month", -2.1972245773362196), ("minute", -1.791759469228055)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("half an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2006706954621511,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("ordinals (first..twentieth,thirtieth,...)",- -1.7047480922384253),- ("ordinal (digits)", -0.2006706954621511)],- n = 9},- koData =- ClassData{prior = -1.7047480922384253,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],- n = 2}}),- ("last weekend of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("October", -0.9555114450274363), ("July", -1.8718021769015913),- ("month", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (number)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("fractional number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),- ("Sunday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("February",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("minute (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1}}),- ("time-of-day (latent)",- Classifier{okData =- ClassData{prior = -0.5315058290035293,- unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.12136085700426748),- ("integer (0..19)", -2.3025850929940455)],- n = 67},- koData =- ClassData{prior = -0.8860508466844369,- unseen = -3.9318256327243257,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.10536051565782628),- ("integer (0..19)", -2.8134107167600364),- ("integer 21..99", -3.2188758248682006)],- n = 47}}),- ("year",- Classifier{okData =- ClassData{prior = -0.23483959107740107, unseen = -3.58351893845611,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 34},- koData =- ClassData{prior = -1.563975538357343, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 9}}),- ("last <day-of-week> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("daymonth", -0.916290731874155),- ("SundayMarch", -1.6094379124341003),- ("MondayMarch", -1.6094379124341003),- ("Sundayintersect", -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.1479201300766222,- unseen = -5.0875963352323845,- likelihoods =- HashMap.fromList- [("week", -2.4423470353692043),- ("integer (0..19)year (grain)", -3.289644895756408),- ("integer (numeric)day (grain)", -2.6835090921860925),- ("integer (0..19)second (grain) ", -3.6951100038645723),- ("integer (0..19)hour (grain)", -3.001962823304627),- ("second", -3.289644895756408),- ("integer (numeric)second (grain) ", -3.982792076316353),- ("integer (numeric)year (grain)", -3.6951100038645723),- ("day", -2.4423470353692043), ("year", -2.8841797876482436),- ("integer (numeric)week (grain)", -3.001962823304627),- ("integer (0..19)month (grain)", -3.4719664525503626),- ("hour", -2.5964977151964628), ("month", -3.1354942159291497),- ("integer (numeric)minute (grain)", -3.1354942159291497),- ("integer (0..19)minute (grain)", -3.001962823304627),- ("integer (numeric)month (grain)", -3.982792076316353),- ("minute", -2.4423470353692043),- ("integer (numeric)hour (grain)", -3.4719664525503626),- ("integer (0..19)day (grain)", -3.6951100038645723),- ("integer (0..19)week (grain)", -3.1354942159291497)],- n = 69},- koData =- ClassData{prior = -1.984131361875511, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),- ("integer (numeric)hour (grain)", -1.4087672169719492),- ("integer (0..19)quarter (grain)", -3.1135153092103742)],- n = 11}}),- ("hhmm (latent)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> am|pm",- Classifier{okData =- ClassData{prior = -0.2929871246814741,- unseen = -5.3230099791384085,- likelihoods =- HashMap.fromList- [("integer after|past <hour-of-day>", -3.9318256327243257),- ("at <time-of-day>", -2.2270775404859005),- ("from|since|after <time-of-day>", -3.708682081410116),- ("<time-of-day> o'clock", -4.219507705176107),- ("half after|past <hour-of-day>", -4.219507705176107),- ("time-of-day (latent)", -1.7346010553881064),- ("hhmm (latent)", -4.624972813284271),- ("hh:mm", -2.2735975561207935),- ("quarter after|past <hour-of-day>", -4.624972813284271),- ("about|exactly <time-of-day>", -4.624972813284271),- ("until <time-of-day>", -3.9318256327243257),- ("hour", -1.2237754316221157),- ("<time-of-day> sharp|exactly", -4.624972813284271),- ("minute", -1.7346010553881064)],- n = 94},- koData =- ClassData{prior = -1.3705460041517514, unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.283414346005772),- ("from|since|after <time-of-day>", -3.283414346005772),- ("<hour-of-day> <integer>", -3.6888794541139363),- ("time-of-day (latent)", -1.0498221244986778),- ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],- n = 32}}),- ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("ordinal (digits)ordinal (digits)July", -1.252762968495368),- ("integer (numeric)integer (numeric)July", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thanksgiving Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("a <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.5753641449035618,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("week", -2.0794415416798357),- ("year (grain)", -2.772588722239781),- ("second", -2.772588722239781),- ("week (grain)", -2.0794415416798357),- ("day", -2.0794415416798357),- ("minute (grain)", -2.772588722239781),- ("year", -2.772588722239781),- ("second (grain) ", -2.772588722239781),- ("minute", -2.772588722239781),- ("day (grain)", -2.0794415416798357)],- n = 9},- koData =- ClassData{prior = -0.8266785731844679, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("hour (grain)", -1.7227665977411035),- ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),- ("quarter (grain)", -1.9459101490553135)],- n = 7}}),- ("hh:mm",- Classifier{okData =- ClassData{prior = -6.782259633876106e-2,- unseen = -4.07753744390572,- likelihoods = HashMap.fromList [("", 0.0)], n = 57},- koData =- ClassData{prior = -2.7245795030534206, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("quarter of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("second (grain) ",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinals (first..twentieth,thirtieth,...)",- Classifier{okData =- ClassData{prior = -6.899287148695143e-2,- unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14},- koData =- ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("quarter after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> after|before <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.252762968495368),- ("dayday", -0.8472978603872037),- ("day (grain)yesterday", -1.252762968495368)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("about|exactly <time-of-day>",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("week", -2.639057329615259),- ("hh(:mm) - <time-of-day> am|pm", -2.639057329615259),- ("this|last|next <cycle>", -2.639057329615259),- ("day", -2.2335922215070942),- ("time-of-day (latent)", -2.639057329615259),- ("hhmm (latent)", -2.2335922215070942),- ("<time-of-day> am|pm", -2.639057329615259),- ("hour", -1.9459101490553135),- ("next <time>", -2.639057329615259),- ("this|next <day-of-week>", -2.639057329615259),- ("minute", -2.2335922215070942)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),- ("time-of-day (latent)", -2.0794415416798357),- ("hour", -2.0794415416798357)],- n = 2}}),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- Classifier{okData =- ClassData{prior = -0.48130318449966897,- unseen = -5.170483995038151,- likelihoods =- HashMap.fromList- [("Wednesday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayhour", -3.2188758248682006),- ("daymonth", -3.2188758248682006),- ("<named-month> <day-of-month> (non ordinal)Friday",- -4.471638793363569),- ("Friday<named-month> <day-of-month> (non ordinal)",- -3.7784916128036232),- ("Wednesdayintersect", -4.471638793363569),- ("Labor Daythis|last|next <cycle>", -4.471638793363569),- ("Black Fridaythis|last|next <cycle>", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.471638793363569),- ("<part-of-day> of <time>February", -4.471638793363569),- ("Saturday<time-of-day> am|pm", -4.471638793363569),- ("Martin Luther King's Daythis|last|next <cycle>",- -4.471638793363569),- ("on <date><time-of-day> am|pm", -4.471638793363569),- ("hourmonth", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.471638793363569),- ("dayday", -2.5998366164619773),- ("the <day-of-month> (ordinal)February", -4.0661736852554045),- ("WednesdayOctober", -4.471638793363569),- ("Wednesdaythis|last|next <cycle>", -4.0661736852554045),- ("intersect<named-month> <day-of-month> (non ordinal)",- -3.5553480614894135),- ("dayyear", -2.8622008809294686),- ("Saturday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.471638793363569),- ("Thursdayhh:mm", -4.0661736852554045),- ("Thanksgiving Daythis|last|next <cycle>", -4.471638793363569),- ("Memorial Daythis|last|next <cycle>", -4.471638793363569),- ("on <date><named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("TuesdayOctober", -4.471638793363569),- ("the <day-of-month> (ordinal)March", -4.471638793363569),- ("Mondaythis|last|next <cycle>", -4.471638793363569),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.0661736852554045),- ("Fridayintersect", -4.471638793363569),- ("Thursday<datetime> - <datetime> (interval)",- -3.7784916128036232),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.5553480614894135),- ("Tuesdaythis|last|next <cycle>", -4.471638793363569),- ("Sunday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayminute", -2.6798793241355137),- ("intersectyear", -4.471638793363569),- ("minuteday", -3.5553480614894135),- ("this|last|next <cycle>Sunday", -4.471638793363569),- ("Sundaythis|last|next <cycle>", -4.471638793363569),- ("intersectintersect", -4.471638793363569),- ("weekday", -4.471638793363569),- ("dayweek", -3.373026504695459),- ("Thursday<time-of-day> am|pm", -4.471638793363569),- ("Monday<named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("<named-month> <day-of-month> (non ordinal)year",- -4.0661736852554045)],- n = 55},- koData =- ClassData{prior = -0.9622758451159785, unseen = -4.897839799950911,- likelihoods =- HashMap.fromList- [("week-endJuly", -4.197201947661808),- ("week-endOctober", -3.5040547671018634),- ("daymonth", -1.9999773703255892),- ("TuesdaySeptember", -4.197201947661808),- ("Wednesdayintersect", -4.197201947661808),- ("hourmonth", -3.0985896589936988),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.197201947661808),- ("Fridaythis|last|next <cycle>", -4.197201947661808),- ("SundayFebruary", -4.197201947661808),- ("WednesdayOctober", -4.197201947661808),- ("week-endintersect", -4.197201947661808),- ("dayyear", -4.197201947661808),- ("FridayJuly", -3.791736839553644),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.197201947661808),- ("FridaySeptember", -4.197201947661808),- ("WednesdayFebruary", -4.197201947661808),- ("minutemonth", -3.2809112157876537),- ("SundayMarch", -4.197201947661808),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.197201947661808),- ("MondayFebruary", -3.791736839553644),- ("Fridayintersect", -4.197201947661808),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.791736839553644),- ("dayminute", -2.810907586541918),- ("SaturdaySeptember", -4.197201947661808),- ("intersectSeptember", -3.2809112157876537),- ("MondayMarch", -4.197201947661808),- ("on <date>September", -3.791736839553644),- ("intersectintersect", -4.197201947661808),- ("Tuesdayintersect", -4.197201947661808),- ("Sundayintersect", -4.197201947661808)],- n = 34}}),- ("last <time>",- Classifier{okData =- ClassData{prior = -0.6286086594223742, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("Father's Day", -2.6026896854443837),- ("Martin Luther King's Day", -2.6026896854443837),- ("Memorial Day", -2.6026896854443837),- ("Mother's Day", -2.6026896854443837),- ("day", -1.2163953243244932), ("Sunday", -2.6026896854443837),- ("Thanksgiving Day", -2.6026896854443837),- ("hour", -2.6026896854443837), ("Tuesday", -2.6026896854443837),- ("week-end", -2.6026896854443837)],- n = 8},- koData =- ClassData{prior = -0.7621400520468967, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Monday", -2.5257286443082556), ("day", -2.120263536200091),- ("Sunday", -2.5257286443082556), ("hour", -1.4271163556401458),- ("week-end", -1.4271163556401458)],- n = 7}}),- ("March",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Octoberordinal (digits)", -2.120263536200091),- ("Thursdayordinal (digits)", -2.5257286443082556),- ("day", -2.120263536200091),- ("Augustordinal (digits)", -2.5257286443082556),- ("Marchordinals (first..twentieth,thirtieth,...)",- -2.120263536200091),- ("Tuesdayordinal (digits)", -2.5257286443082556),- ("month", -1.2729656758128873),- ("Marchordinal (digits)", -2.5257286443082556)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("from|since|after <time-of-day>ordinal (digits)",- -1.8718021769015913),- ("Augustordinal (digits)", -1.8718021769015913),- ("month", -1.466337068793427)],- n = 2}}),- ("Labor Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("until <time-of-day>",- Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -2.3025850929940455),- ("<time-of-day> am|pm", -1.6094379124341003),- ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),- ("minute", -1.3862943611198906)],- n = 6},- koData =- ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("intersect", -1.7227665977411035),- ("yesterday", -2.2335922215070942),- ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),- ("hour", -2.639057329615259), ("minute", -1.252762968495368)],- n = 10}}),- ("mm.dd.yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<duration> after|before|from <time>",- Classifier{okData =- ClassData{prior = -0.35667494393873245,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("a <unit-of-duration>now", -2.70805020110221),- ("a <unit-of-duration>Christmas", -2.70805020110221),- ("<integer> <unit-of-duration>today", -2.70805020110221),- ("daysecond", -2.70805020110221),- ("a <unit-of-duration>right now", -2.70805020110221),- ("minutenograin", -2.70805020110221),- ("<integer> <unit-of-duration>Christmas", -2.70805020110221),- ("secondnograin", -2.70805020110221),- ("yearday", -2.0149030205422647),- ("daynograin", -2.70805020110221),- ("<integer> <unit-of-duration>now", -2.3025850929940455)],- n = 7},- koData =- ClassData{prior = -1.2039728043259361,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("dayhour", -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal)",- -2.3978952727983707),- ("dayday", -1.9924301646902063),- ("<integer> <unit-of-duration>time-of-day (latent)",- -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -2.3978952727983707)],- n = 3}}),- ("Independence Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("decimal number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("next <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5263605246161616,- likelihoods =- HashMap.fromList- [("Martin Luther King's Day", -2.803360380906535),- ("Halloween", -2.803360380906535),- ("Wednesday", -2.803360380906535),- ("Memorial Day", -2.803360380906535),- ("Monday", -2.803360380906535),- ("Mother's Day", -2.803360380906535),- ("day", -1.0986122886681098),- ("Thanksgiving Day", -2.803360380906535),- ("March", -2.803360380906535), ("month", -2.803360380906535),- ("Tuesday", -2.1102132003465894)],- n = 11},- koData =- ClassData{prior = -infinity, unseen = -2.4849066497880004,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> sharp|exactly",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -2.1400661634962708),- ("time-of-day (latent)", -2.1400661634962708),- ("hhmm (latent)", -2.1400661634962708),- ("<time-of-day> am|pm", -2.1400661634962708),- ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),- ("minute", -1.4469189829363254)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("negative numbers",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("integer (numeric)", -7.696104113612832e-2),- ("integer (0..19)", -2.6026896854443837)],- n = 25}}),- ("about|exactly <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("half an hour", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time> before last|after next",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("Wednesday", -1.8718021769015913),- ("Friday", -1.466337068793427), ("day", -1.1786549963416462),- ("March", -1.8718021769015913), ("month", -1.8718021769015913)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("by the end of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("this|last|next <cycle>", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hhmm (military) am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,- likelihoods =- HashMap.fromList- [("intersecthh:mm", -3.1918471524802814),- ("intersect<time-of-day> am|pm", -3.1918471524802814),- ("minuteminute", -1.457246097092175),- ("hh:mmhh:mm", -2.093234863812172),- ("dayday", -3.1918471524802814),- ("hourhour", -2.093234863812172),- ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -3.597312260588446),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.597312260588446),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),- ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],- n = 26},- koData =- ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("<named-month> <day-of-month> (non ordinal)July",- -3.1135153092103742),- ("daymonth", -2.70805020110221),- ("from|since|after <time-of-day>intersect", -2.70805020110221),- ("<time-of-day> am|pmintersect", -3.1135153092103742),- ("hh:mm<time-of-day> am|pm", -2.70805020110221),- ("minuteminute", -1.8607523407150064),- ("hourhour", -2.70805020110221),- ("minutehour", -2.70805020110221),- ("hh:mmintersect", -2.1972245773362196),- ("<named-month> <day-of-month> (non ordinal)August",- -3.1135153092103742),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.1135153092103742)],- n = 12}}),- ("Tuesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Day",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),- ("fortnight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> and an half hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <named-month>",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -1.252762968495368), ("March", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -0.8472978603872037),- ("month", -0.8472978603872037)],- n = 2}}),- ("<time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,- likelihoods =- HashMap.fromList- [("minuteminute", -1.529395204760564),- ("hh:mmhh:mm", -1.8971199848858813),- ("<time-of-day> am|pmtime-of-day (latent)",- -2.4849066497880004),- ("hourhour", -1.6964492894237302),- ("from|since|after <time-of-day>time-of-day (latent)",- -3.4011973816621555),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.4011973816621555),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),- ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],- n = 22},- koData =- ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>time-of-day (latent)",- -3.4657359027997265),- ("hh:mmtime-of-day (latent)", -1.7609878105613013),- ("hh:mm<time-of-day> am|pm", -3.0602707946915624),- ("<time-of-day> am|pmtime-of-day (latent)",- -3.4657359027997265),- ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),- ("hourhour", -2.2129729343043585),- ("minutehour", -1.2144441041932315),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.4657359027997265),- ("from|since|after <time-of-day>time-of-day (latent)",- -2.5494451709255714),- ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),- ("<integer> to|till|before <hour-of-day>time-of-day (latent)",- -3.0602707946915624)],- n = 24}}),- ("military spelled out numbers am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods =- HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("winter",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("nth <time> after <time>",- Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",- -0.916290731874155)],- n = 1}}),- ("<named-month> <day-of-month> (non ordinal)",- Classifier{okData =- ClassData{prior = -0.42121346507630353,- unseen = -3.951243718581427,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.5455312716044354),- ("Marchinteger (numeric)", -2.833213344056216),- ("Aprilinteger (numeric)", -3.2386784521643803),- ("month", -0.8407831793660099),- ("Februaryinteger (numeric)", -1.9859154836690123),- ("Septemberinteger (numeric)", -2.833213344056216),- ("Octoberinteger (numeric)", -2.833213344056216),- ("Julyinteger (numeric)", -2.1400661634962708)],- n = 21},- koData =- ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.3353749158170367),- ("Marchinteger (numeric)", -2.740840023925201),- ("Aprilinteger (numeric)", -2.740840023925201),- ("month", -0.9490805546971459),- ("from|since|after <time-of-day>integer (numeric)",- -2.3353749158170367),- ("Julyinteger (numeric)", -1.6422277352570913)],- n = 11}}),- ("this|next <day-of-week>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,- likelihoods =- HashMap.fromList- [("Thursday", -2.2512917986064953),- ("Wednesday", -2.2512917986064953),- ("Monday", -1.845826690498331), ("day", -0.8649974374866046),- ("Tuesday", -1.55814461804655)],- n = 7},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinal (digits)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5553480614894135,- likelihoods = HashMap.fromList [("", 0.0)], n = 33},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter (grain)",- Classifier{okData =- ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("last <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("day (grain)October", -1.791759469228055),- ("daymonth", -1.2809338454620642),- ("day (grain)intersect", -1.791759469228055),- ("weekmonth", -1.791759469228055),- ("week (grain)intersect", -2.1972245773362196),- ("week (grain)September", -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month>(ordinal) <named-month> year",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)April", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Black Friday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Labor Day",- Classifier{okData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("week-end",- Classifier{okData =- ClassData{prior = -1.5040773967762742,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),- ("day (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.2188758248682006,- likelihoods = HashMap.fromList [("", 0.0)], n = 23},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("right now",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("for <duration> from <time>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("<integer> <unit-of-duration><day-of-month> (ordinal)",- -1.5040773967762742),- ("dayday", -1.0986122886681098),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -1.5040773967762742)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("dayhour", -1.252762968495368),- ("<integer> <unit-of-duration>time-of-day (latent)",- -1.252762968495368)],- n = 1}}),- ("between <time> and <time>",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("minuteminute", -1.0116009116784799),- ("hh:mmhh:mm", -1.0116009116784799)],- n = 3},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.4469189829363254),- ("minuteminute", -1.4469189829363254),- ("minutehour", -1.4469189829363254),- ("hh:mmintersect", -1.4469189829363254)],- n = 6}}),- ("<month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),- ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",- -2.740840023925201),- ("from|since|after <time-of-day>integer (numeric)integer (numeric)",- -2.740840023925201),- ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",- -2.740840023925201),- ("Augustordinal (digits)integer (numeric)",- -2.3353749158170367),- ("month", -0.8690378470236094),- ("Augustordinal (digits)ordinal (digits)",- -2.3353749158170367)],- n = 12},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of days",- Classifier{okData =- ClassData{prior = -4.0821994520255166e-2,- unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -3.2188758248682006,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("summer",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("dd-dd <month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)September",- -1.791759469228055),- ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),- ("ordinal (digits)ordinal (digits)October",- -2.1972245773362196),- ("integer (numeric)integer (numeric)July", -2.1972245773362196),- ("month", -0.9444616088408514),- ("ordinal (digits)ordinal (digits)August",- -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("this <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Thursday", -2.5257286443082556),- ("Martin Luther King's Day", -2.5257286443082556),- ("Monday", -2.5257286443082556), ("day", -1.1394342831883648),- ("Thanksgiving Day", -2.5257286443082556),- ("hour", -2.5257286443082556), ("winter", -2.5257286443082556),- ("week-end", -2.5257286443082556),- ("summer", -2.120263536200091)],- n = 8},- koData =- ClassData{prior = -infinity, unseen = -2.3025850929940455,+ [("Military Spouse Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Bhai Dooj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)noon|midnight|EOD|end of day",+ -0.916290731874155),+ ("hour", -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.13353139262452263,+ unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("hour", -0.7537718023763802),+ ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],+ n = 7}}),+ ("<time> timezone",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -1.824549292051046),+ ("<time-of-day> am|pm", -1.6422277352570913),+ ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),+ ("minute", -1.824549292051046)],+ n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thursday",+ Classifier{okData =+ ClassData{prior = -9.53101798043249e-2,+ unseen = -3.4657359027997265,+ likelihoods = HashMap.fromList [("", 0.0)], n = 30},+ koData =+ ClassData{prior = -2.3978952727983707,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("integer (numeric)",+ Classifier{okData =+ ClassData{prior = -0.6239027683849615, unseen = -5.655991810819852,+ likelihoods = HashMap.fromList [("", 0.0)], n = 284},+ koData =+ ClassData{prior = -0.7675454706138047,+ unseen = -5.5134287461649825,+ likelihoods = HashMap.fromList [("", 0.0)], n = 246}}),+ ("<duration> hence|ago",+ Classifier{okData =+ ClassData{prior = -5.406722127027582e-2,+ unseen = -3.784189633918261,+ likelihoods =+ HashMap.fromList+ [("week", -1.563975538357343), ("day", -1.8152899666382492),+ ("year", -2.662587827025453),+ ("<integer> <unit-of-duration>", -1.0531499145913523),+ ("a <unit-of-duration>", -2.662587827025453),+ ("month", -2.662587827025453),+ ("fortnight", -2.662587827025453)],+ n = 18},+ koData =+ ClassData{prior = -2.9444389791664407,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("year", -1.5040773967762742),+ ("<integer> <unit-of-duration>", -1.5040773967762742)],+ n = 1}}),+ ("noon|midnight|EOD|end of day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Father's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.6739764335716716),+ ("dayday", -1.1631508098056809),+ ("day (grain)yesterday", -1.6739764335716716)],+ n = 4},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.6739764335716716),+ ("year (grain)Christmas", -2.0794415416798357),+ ("dayday", -2.0794415416798357),+ ("day (grain)intersect", -1.6739764335716716),+ ("day (grain)Easter Sunday", -2.0794415416798357),+ ("yearday", -2.0794415416798357)],+ n = 4}}),+ ("Easter Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Navaratri",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Martin Luther King's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("integer (20..90)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Shemini Atzeret",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ramadan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lazarus Saturday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect 2 numbers",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("compose by multiplicationinteger (0..19)",+ -0.2231435513142097)],+ n = 3},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("powers of tensinteger (0..19)", -0.2231435513142097)],+ n = 3}}),+ ("mm/yyyy",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("integer after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("hour", -0.8109302162163288),+ ("integer (numeric)time-of-day (latent)", -1.0986122886681098),+ ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom HaShoah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal or number) <named-month>",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)December", -2.1400661634962708),+ ("ordinal (digits)February", -2.1400661634962708),+ ("integer (numeric)April", -2.1400661634962708),+ ("month", -1.4469189829363254)],+ n = 3},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.4011973816621555,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)October", -2.6741486494265287),+ ("ordinal (digits)July", -2.6741486494265287),+ ("integer (numeric)September", -2.268683541318364),+ ("ordinal (digits)August", -2.6741486494265287),+ ("integer (numeric)August", -2.6741486494265287),+ ("ordinal (digits)April", -2.6741486494265287),+ ("month", -1.0647107369924282),+ ("integer (numeric)July", -2.268683541318364)],+ n = 9}}),+ ("<time> <part-of-day>",+ Classifier{okData =+ ClassData{prior = -9.237332013101517e-2,+ unseen = -4.48863636973214,+ likelihoods =+ HashMap.fromList+ [("<day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("dayhour", -1.4816045409242156),+ ("Mondayearly morning", -3.378724525810097),+ ("time-of-day (latent)tonight", -3.378724525810097),+ ("hourhour", -2.3978952727983707),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -3.784189633918261),+ ("todaypart of days", -3.784189633918261),+ ("minutehour", -2.6855773452501515),+ ("at <time-of-day>in|during the <part-of-day>",+ -3.378724525810097),+ ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+ ("Mondayin|during the <part-of-day>", -3.784189633918261),+ ("intersectpart of days", -3.784189633918261),+ ("intersectin|during the <part-of-day>", -3.784189633918261),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -3.784189633918261),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("tomorrowpart of days", -2.3978952727983707),+ ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+ ("time-of-day (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("hhmm (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("yesterdaypart of days", -3.378724525810097),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -3.784189633918261),+ ("Mondaypart of days", -3.784189633918261)],+ n = 31},+ koData =+ ClassData{prior = -2.4277482359480516,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("yearhour", -2.772588722239781),+ ("monthhour", -2.772588722239781),+ ("hourhour", -2.772588722239781),+ ("year (latent)in|during the <part-of-day>",+ -2.772588722239781),+ ("Februaryin|during the <part-of-day>", -2.772588722239781),+ ("time-of-day (latent)in|during the <part-of-day>",+ -2.772588722239781)],+ n = 3}}),+ ("Cyber Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("today",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("mm/dd",+ Classifier{okData =+ ClassData{prior = -1.2729656758128873,+ unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7},+ koData =+ ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+ likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+ ("at <time-of-day>",+ Classifier{okData =+ ClassData{prior = -8.961215868968717e-2,+ unseen = -4.948759890378168,+ likelihoods =+ HashMap.fromList+ [("<time> timezone", -3.8430301339411947),+ ("noon|midnight|EOD|end of day", -3.8430301339411947),+ ("integer after|past <hour-of-day>", -3.8430301339411947),+ ("half after|past <hour-of-day>", -4.248495242049359),+ ("time-of-day (latent)", -1.6835458845878222),+ ("hhmm (latent)", -3.5553480614894135),+ ("<time-of-day> am|pm", -1.8061482066801546),+ ("hh:mm", -3.332204510175204),+ ("about|exactly <time-of-day>", -3.8430301339411947),+ ("hour", -1.0704414117014134),+ ("<time-of-day> sharp|exactly", -4.248495242049359),+ ("minute", -2.05127066471314)],+ n = 64},+ koData =+ ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -1.2321436812926323),+ ("hour", -1.2321436812926323)],+ n = 6}}),+ ("December",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("absorption of , after named day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("on <date>", -2.1972245773362196),+ ("Wednesday", -2.6026896854443837),+ ("Saturday", -2.6026896854443837),+ ("Monday", -2.1972245773362196),+ ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+ ("Sunday", -2.6026896854443837)],+ n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("September",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("tonight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|past|next <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.2626798770413155,+ likelihoods =+ HashMap.fromList+ [("week", -2.456735772821304), ("second", -2.639057329615259),+ ("day", -2.3025850929940455), ("year", -2.639057329615259),+ ("<integer> <unit-of-duration>", -0.7827593392496325),+ ("hour", -2.639057329615259), ("month", -2.639057329615259),+ ("minute", -2.639057329615259)],+ n = 31},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the ides of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("on <date>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -4.204692619390966,+ likelihoods =+ HashMap.fromList+ [("Thursday", -1.4816045409242156),+ ("mm/dd", -3.4965075614664802),+ ("absorption of , after named day", -3.0910424533583156),+ ("intersect", -3.0910424533583156),+ ("Saturday", -2.803360380906535),+ ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+ ("the <day-of-month> (ordinal)", -3.0910424533583156),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -2.803360380906535),+ ("hour", -3.4965075614664802)],+ n = 28},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -1.791759469228055)],+ n = 4}}),+ ("integer (0..19)",+ Classifier{okData =+ ClassData{prior = -0.11122563511022437,+ unseen = -3.970291913552122,+ likelihoods = HashMap.fromList [("", 0.0)], n = 51},+ koData =+ ClassData{prior = -2.2512917986064953,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+ ("between <time-of-day> and <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.7884573603642702),+ ("hh:mmhh:mm", -0.7884573603642702)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -0.7884573603642702),+ ("minutehour", -0.7884573603642702)],+ n = 9}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Passover",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+ ("Augustordinal (digits)integer (numeric)",+ -1.6094379124341003),+ ("month", -0.916290731874155),+ ("Augustordinal (digits)ordinal (digits)",+ -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("October",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods = HashMap.fromList [("", 0.0)], n = 16},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from|since|after <time-of-day>",+ Classifier{okData =+ ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("July", -3.332204510175204),+ ("time-of-day (latent)", -2.4159137783010487),+ ("<time-of-day> am|pm", -2.4159137783010487),+ ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),+ ("month", -2.9267394020670396), ("minute", -2.4159137783010487),+ ("August", -3.332204510175204)],+ n = 14},+ koData =+ ClassData{prior = -0.22677331936478848,+ unseen = -4.9344739331306915,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.828641396489095),+ ("week", -4.23410650459726),+ ("<day-of-month> (ordinal or number) <named-month>",+ -4.23410650459726),+ ("today", -4.23410650459726), ("intersect", -2.362304327695668),+ ("second", -4.23410650459726), ("now", -3.5409593240373143),+ ("tomorrow", -3.828641396489095),+ ("this|last|next <cycle>", -4.23410650459726),+ ("day", -1.8827312474337816),+ ("time-of-day (latent)", -4.23410650459726),+ ("<time-of-day> am|pm", -3.828641396489095),+ ("nograin", -3.5409593240373143),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ -4.23410650459726),+ ("Easter Sunday", -4.23410650459726),+ ("Christmas", -3.5409593240373143),+ ("hour", -2.981343536101891), ("month", -4.23410650459726),+ ("<datetime> - <datetime> (interval)", -2.847812143477369),+ ("<time-of-day> - <time-of-day> (interval)",+ -2.5293584123588344),+ ("<named-month> <day-of-month> (non ordinal)",+ -3.828641396489095),+ ("minute", -1.749199854809259),+ ("right now", -4.23410650459726),+ ("<month> dd-dd (interval)", -3.5409593240373143),+ ("dd-dd <month> (interval)", -3.828641396489095)],+ n = 55}}),+ ("month (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> more <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)minute (grain)", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> o'clock",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in|within|after <duration>",+ Classifier{okData =+ ClassData{prior = -0.11000089521432846,+ unseen = -4.6443908991413725,+ likelihoods =+ HashMap.fromList+ [("week", -3.248434627109745),+ ("<integer> more <unit-of-duration>", -3.9415818076696905),+ ("three-quarters of an hour", -3.0252910757955354),+ ("<integer> + '\"", -3.248434627109745),+ ("number.number hours", -3.9415818076696905),+ ("second", -3.536116699561526), ("day", -3.248434627109745),+ ("half an hour", -3.0252910757955354),+ ("year", -3.9415818076696905),+ ("<integer> <unit-of-duration>", -1.5902065505062128),+ ("a <unit-of-duration>", -3.0252910757955354),+ ("quarter of an hour", -3.0252910757955354),+ ("hour", -2.5552874465498),+ ("about|exactly <duration>", -3.9415818076696905),+ ("<integer> and an half hour", -3.9415818076696905),+ ("minute", -1.3025244780544318)],+ n = 43},+ koData =+ ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),+ ("<integer> <unit-of-duration>", -1.9095425048844386),+ ("a <unit-of-duration>", -2.1972245773362196)],+ n = 5}}),+ ("January",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("three-quarters of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Mattu Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Wednesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> + '\"",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half <integer> (UK style hour-of-day)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("July",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hour (grain)",+ Classifier{okData =+ ClassData{prior = -0.8209805520698302,+ unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),+ ("Shavuot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> <duration> hence|ago",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("dayyear", -0.6931471805599453),+ ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -1.1786549963416462),+ ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+ -1.466337068793427),+ ("quarter", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.8109302162163288),+ ("quarter", -0.8109302162163288)],+ n = 3}}),+ ("Boss's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Orthodox Easter Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("one twenty two",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect",+ Classifier{okData =+ ClassData{prior = -0.454305983502537, unseen = -6.732210706467206,+ likelihoods =+ HashMap.fromList+ [("Navaratriyear (latent)", -6.037870919922137),+ ("Father's Dayyear (latent)", -6.037870919922137),+ ("Ramadanyear (latent)", -6.037870919922137),+ ("<datetime> - <datetime> (interval)on <date>",+ -4.785107951426769),+ ("Military Spouse Dayyear (latent)", -6.037870919922137),+ ("Bhai Doojyear (latent)", -6.037870919922137),+ ("<time-of-day> - <time-of-day> (interval)on <date>",+ -4.785107951426769),+ ("hourday", -4.333122827683712),+ ("dayhour", -3.1201001878378585),+ ("Martin Luther King's Dayyear (latent)", -5.632405811813974),+ ("Shemini Atzeretyear (latent)", -6.037870919922137),+ ("daymonth", -5.344723739362192),+ ("monthday", -5.632405811813974),+ ("monthyear", -4.428433007488038),+ ("Yom Ha'atzmautyear (latent)", -6.037870919922137),+ ("Vijayadashamiyear (latent)", -6.037870919922137),+ ("Thanksgiving Dayyear (latent)", -4.939258631254028),+ ("Thai Pongalyear (latent)", -5.344723739362192),+ ("Thiru Onamyear (latent)", -5.344723739362192),+ ("Tuesdaythe <day-of-month> (ordinal)", -6.037870919922137),+ ("from <datetime> - <datetime> (interval)July",+ -6.037870919922137),+ ("houryear", -5.344723739362192),+ ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+ -6.037870919922137),+ ("Christmas<time-of-day> am|pm", -6.037870919922137),+ ("last <day-of-week> of <time>year (latent)",+ -6.037870919922137),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -5.344723739362192),+ ("<time-of-day> am|pmintersect", -4.785107951426769),+ ("Octoberyear (latent)", -4.785107951426769),+ ("intersect<time-of-day> am|pm", -6.037870919922137),+ ("Mattu Pongalyear (latent)", -6.037870919922137),+ ("Shavuotyear (latent)", -6.037870919922137),+ ("Dhanterasin <named-month>|year", -6.037870919922137),+ ("at <time-of-day>in|within|after <duration>",+ -6.037870919922137),+ ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.037870919922137),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -5.632405811813974),+ ("Marchyear (latent)", -6.037870919922137),+ ("Sukkotyear (latent)", -5.632405811813974),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -6.037870919922137),+ ("Clean Mondayyear (latent)", -5.632405811813974),+ ("monthhour", -5.632405811813974),+ ("todayat <time-of-day>", -6.037870919922137),+ ("Thursday<time> timezone", -4.333122827683712),+ ("this <time>hh(:mm) - <time-of-day> am|pm",+ -6.037870919922137),+ ("Palm SundaySunday", -5.632405811813974),+ ("dayday", -3.8406463425859183),+ ("<time> <part-of-day>at <time-of-day>", -6.037870919922137),+ ("mm/ddat <time-of-day>", -6.037870919922137),+ ("tonightat <time-of-day>", -6.037870919922137),+ ("<time-of-day> am|pmabsorption of , after named day",+ -5.344723739362192),+ ("today<time-of-day> am|pm", -6.037870919922137),+ ("Februarythe <day-of-month> (ordinal)", -5.632405811813974),+ ("at <time-of-day><time> <part-of-day>", -6.037870919922137),+ ("mm/dd<time-of-day> am|pm", -6.037870919922137),+ ("hourhour", -4.785107951426769),+ ("<time-of-day> am|pmon <date>", -4.022967899379873),+ ("Wednesdaythis|last|next <cycle>", -6.037870919922137),+ ("Lentyear (latent)", -6.037870919922137),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -4.533793523145864),+ ("Boghiyear (latent)", -6.037870919922137),+ ("dayyear", -1.9688441656843267),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -6.037870919922137),+ ("Thursdayat <time-of-day>", -5.632405811813974),+ ("Islamic New Yearyear (latent)", -5.632405811813974),+ ("Laylat al-Qadryear (latent)", -5.121580188047982),+ ("Chhathin <named-month>|year", -6.037870919922137),+ ("Vasant Panchamiin <named-month>|year", -6.037870919922137),+ ("Diwaliin <named-month>|year", -6.037870919922137),+ ("Shrove Tuesdayyear (latent)", -6.037870919922137),+ ("<time-of-day> am|pmtomorrow", -5.344723739362192),+ ("Yom Kippuryear (latent)", -6.037870919922137),+ ("<part-of-day> of <time>year (latent)", -6.037870919922137),+ ("minutehour", -5.121580188047982),+ ("Kaanum Pongalyear (latent)", -5.632405811813974),+ ("Maha Saptamiyear (latent)", -6.037870919922137),+ ("at <time-of-day>in|during the <part-of-day>",+ -5.632405811813974),+ ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+ -4.333122827683712),+ ("for <duration> from <time>December", -6.037870919922137),+ ("tomorrow<time-of-day> sharp|exactly", -6.037870919922137),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.121580188047982),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -5.632405811813974),+ ("Pentecostyear (latent)", -6.037870919922137),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.121580188047982),+ ("Eid al-Fitryear (latent)", -6.037870919922137),+ ("Mondayin|during the <part-of-day>", -6.037870919922137),+ ("Raksha Bandhanyear (latent)", -6.037870919922137),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.632405811813974),+ ("Navaratriin <named-month>|year", -6.037870919922137),+ ("Ashurayear (latent)", -6.037870919922137),+ ("Chinese New Yearyear (latent)", -6.037870919922137),+ ("Sundayyear (latent)", -6.037870919922137),+ ("Lag BaOmeryear (latent)", -6.037870919922137),+ ("last weekend of <named-month>year (latent)",+ -6.037870919922137),+ ("Eid al-Adhayear (latent)", -5.121580188047982),+ ("intersectin|during the <part-of-day>", -6.037870919922137),+ ("Christmasat <time-of-day>", -6.037870919922137),+ ("Passoveryear (latent)", -6.037870919922137),+ ("Lazarus Saturdayyear (latent)", -6.037870919922137),+ ("<day-of-month> (ordinal or number) <named-month>year (latent)",+ -6.037870919922137),+ ("Cyber Mondayyear (latent)", -5.632405811813974),+ ("Yom HaShoahyear (latent)", -5.632405811813974),+ ("Thursday<datetime> - <datetime> (interval)",+ -5.121580188047982),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -6.037870919922137),+ ("Thai Pongalin <named-month>|year", -6.037870919922137),+ ("Septemberyear (latent)", -5.632405811813974),+ ("mm/ddyear (latent)", -6.037870919922137),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -4.785107951426769),+ ("Halloweenyear (latent)", -6.037870919922137),+ ("from <time-of-day> - <time-of-day> (interval)on <date>",+ -5.344723739362192),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -5.121580188047982),+ ("at <time-of-day>intersect", -5.632405811813974),+ ("Rosh Hashanahyear (latent)", -6.037870919922137),+ ("Dhanterasyear (latent)", -6.037870919922137),+ ("Tu BiShvatyear (latent)", -6.037870919922137),+ ("Holiyear (latent)", -5.344723739362192),+ ("<time-of-day> - <time-of-day> (interval)tomorrow",+ -6.037870919922137),+ ("Holika Dahanyear (latent)", -5.344723739362192),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -6.037870919922137),+ ("dayminute", -3.398813590306879),+ ("Mawlidyear (latent)", -6.037870919922137),+ ("from <datetime> - <datetime> (interval)on <date>",+ -5.632405811813974),+ ("<datetime> - <datetime> (interval)tomorrow",+ -6.037870919922137),+ ("Jumu'atul-Widayear (latent)", -5.121580188047982),+ ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+ -6.037870919922137),+ ("minuteday", -2.400284760195752),+ ("absorption of , after named dayintersect",+ -6.037870919922137),+ ("intersectyear (latent)", -6.037870919922137),+ ("Orthodox Easter Sundayyear (latent)", -6.037870919922137),+ ("<ordinal> <cycle> of <time>year (latent)",+ -6.037870919922137),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -6.037870919922137),+ ("Boss's Dayyear (latent)", -5.632405811813974),+ ("Tisha B'Avyear (latent)", -6.037870919922137),+ ("Isra and Mi'rajyear (latent)", -5.121580188047982),+ ("at <time-of-day>absorption of , after named day",+ -6.037870919922137),+ ("Christmasyear (latent)", -5.632405811813974),+ ("Naraka Chaturdashiyear (latent)", -5.632405811813974),+ ("at <time-of-day>on <date>", -4.939258631254028),+ ("between <time-of-day> and <time-of-day> (interval)on <date>",+ -4.428433007488038),+ ("dayweek", -6.037870919922137),+ ("Easter Sundayyear (latent)", -5.344723739362192),+ ("Thursday<time-of-day> am|pm", -6.037870919922137),+ ("weekyear", -5.632405811813974),+ ("hh:mmin|during the <part-of-day>", -5.344723739362192),+ ("<cycle> after|before <time><time-of-day> am|pm",+ -5.632405811813974),+ ("Hanukkahyear (latent)", -6.037870919922137),+ ("February<time> <part-of-day>", -6.037870919922137),+ ("National Grandparents Dayyear (latent)", -6.037870919922137),+ ("Tuesdayin <named-month>|year", -6.037870919922137),+ ("Great Lentyear (latent)", -6.037870919922137),+ ("tomorrowat <time-of-day>", -5.344723739362192),+ ("Labor Dayyear (latent)", -6.037870919922137),+ ("between <time> and <time>on <date>", -4.428433007488038),+ ("Thursdayfrom|since|after <time-of-day>", -5.344723739362192),+ ("last <cycle> of <time>year (latent)", -5.344723739362192),+ ("at <time-of-day>tomorrow", -5.632405811813974),+ ("tomorrow<time-of-day> am|pm", -6.037870919922137),+ ("President's Dayyear (latent)", -6.037870919922137),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -6.037870919922137),+ ("Diwaliyear (latent)", -6.037870919922137),+ ("Black Fridayyear (latent)", -5.632405811813974),+ ("in|during the <part-of-day>at <time-of-day>",+ -6.037870919922137),+ ("Chhathyear (latent)", -5.632405811813974),+ ("Vasant Panchamiyear (latent)", -6.037870919922137),+ ("Palm Sundayintersect", -6.037870919922137),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -6.037870919922137),+ ("Februaryintersect", -6.037870919922137),+ ("Mother's Dayyear (latent)", -6.037870919922137),+ ("Simchat Torahyear (latent)", -6.037870919922137)],+ n = 313},+ koData =+ ClassData{prior = -1.0075523231524797, unseen = -6.35088571671474,+ likelihoods =+ HashMap.fromList+ [("<time-of-day> - <time-of-day> (interval)on <date>",+ -5.655991810819852),+ ("hourday", -5.655991810819852),+ ("<named-month> <day-of-month> (non ordinal)July",+ -5.655991810819852),+ ("dayhour", -3.213644775450648),+ ("daymonth", -3.5765502691400166),+ ("monthday", -5.250526702711688),+ ("monthyear", -4.403228842324484),+ ("<time-of-day> am|pmyear (latent)", -5.250526702711688),+ ("Thai Pongalyear (latent)", -4.962844630259907),+ ("intersecthh:mm", -5.655991810819852),+ ("from <datetime> - <datetime> (interval)July",+ -5.655991810819852),+ ("houryear", -4.739701078945697),+ ("from <time-of-day> - <time-of-day> (interval)July",+ -5.655991810819852),+ ("until <time-of-day><time-of-day> am|pm", -5.655991810819852),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.962844630259907),+ ("<time-of-day> am|pmintersect", -4.403228842324484),+ ("Octoberyear (latent)", -5.655991810819852),+ ("from|since|after <time-of-day>year (latent)",+ -4.403228842324484),+ ("from|since|after <time-of-day>on <date>", -4.739701078945697),+ ("July<day-of-month> (ordinal or number) <named-month>",+ -5.655991810819852),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -4.403228842324484),+ ("about|exactly <time-of-day>year (latent)",+ -5.655991810819852),+ ("absorption of , after named dayJuly", -5.250526702711688),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.739701078945697),+ ("Clean Mondayyear (latent)", -5.655991810819852),+ ("monthhour", -5.655991810819852),+ ("hourmonth", -4.962844630259907),+ ("todayat <time-of-day>", -5.655991810819852),+ ("from|since|after <time-of-day>July", -5.655991810819852),+ ("Mondayyear (latent)", -4.557379522151743),+ ("dayday", -5.250526702711688),+ ("mm/ddat <time-of-day>", -5.250526702711688),+ ("<time-of-day> am|pmon <date>", -4.403228842324484),+ ("dayyear", -2.6355669246754903),+ ("Thursdaymm/dd", -5.655991810819852),+ ("New Year's Dayyear (latent)", -5.250526702711688),+ ("Thursdayat <time-of-day>", -4.403228842324484),+ ("<integer> to|till|before <hour-of-day>September",+ -5.655991810819852),+ ("Aprilyear (latent)", -5.655991810819852),+ ("monthminute", -5.655991810819852),+ ("<time-of-day> am|pmtomorrow", -5.655991810819852),+ ("Thursdayhh:mm", -4.739701078945697),+ ("August<day-of-month> (ordinal or number) <named-month>",+ -5.655991810819852),+ ("minutemonth", -3.8642323415917974),+ ("Sundayfrom|since|after <time-of-day>", -5.655991810819852),+ ("week-endin <named-month>|year", -5.655991810819852),+ ("Augustyear (latent)", -5.250526702711688),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.250526702711688),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.250526702711688),+ ("mm/dd<time-of-day> - <time-of-day> (interval)",+ -5.250526702711688),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.655991810819852),+ ("Sundayyear (latent)", -4.962844630259907),+ ("Christmasat <time-of-day>", -5.655991810819852),+ ("<duration> after|before|from <time>December",+ -5.655991810819852),+ ("yesterday<time-of-day> am|pm", -5.655991810819852),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -4.739701078945697),+ ("mm/ddyear (latent)", -5.655991810819852),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -5.250526702711688),+ ("<named-month> <day-of-month> (non ordinal)August",+ -5.655991810819852),+ ("until <time-of-day>on <date>", -4.962844630259907),+ ("at <time-of-day>intersect", -5.250526702711688),+ ("hh:mmyear (latent)", -4.557379522151743),+ ("Holiyear (latent)", -5.655991810819852),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -5.655991810819852),+ ("dayminute", -3.1710851610318525),+ ("intersectSeptember", -4.151914414043579),+ ("minuteday", -2.5879388756862354),+ ("absorption of , after named dayintersect",+ -5.655991810819852),+ ("Februaryin|during the <part-of-day>", -5.655991810819852),+ ("hh:mmon <date>", -3.6410887902775877),+ ("Saturdayyear (latent)", -5.655991810819852),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -5.655991810819852),+ ("absorption of , after named daySeptember",+ -4.739701078945697),+ ("Naraka Chaturdashiyear (latent)", -5.655991810819852),+ ("on <date>September", -5.250526702711688),+ ("at <time-of-day>on <date>", -5.250526702711688),+ ("in <named-month>|yearyear (latent)", -5.655991810819852),+ ("dayweek", -5.655991810819852),+ ("Easter Sundayyear (latent)", -5.250526702711688),+ ("Thursday<time-of-day> am|pm", -5.250526702711688),+ ("absorption of , after named dayFebruary", -4.739701078945697),+ ("July<integer> to|till|before <hour-of-day>",+ -5.655991810819852),+ ("tomorrowat <time-of-day>", -5.655991810819852),+ ("<integer> to|till|before <hour-of-day>July",+ -5.655991810819852),+ ("Thursdayfrom|since|after <time-of-day>", -4.046553898385752),+ ("tomorrow<time-of-day> am|pm", -5.655991810819852),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -4.962844630259907),+ ("Diwaliyear (latent)", -5.250526702711688),+ ("Tuesdayfrom|since|after <time-of-day>", -5.655991810819852),+ ("Fridayyear (latent)", -5.250526702711688),+ ("minuteyear", -4.403228842324484)],+ n = 180}}),+ ("one eleven",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("after lunch/work/school",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("early morning",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <number> (implicit minutes)",+ Classifier{okData =+ ClassData{prior = -1.2039728043259361,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.3184537311185346),+ ("integer (0..19)", -1.2992829841302609)],+ n = 9},+ koData =+ ClassData{prior = -0.35667494393873245,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.19105523676270922),+ ("integer (0..19)", -1.749199854809259)],+ n = 21}}),+ ("<ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.791759469228055),+ ("ordinal (digits)quarter (grain)year (latent)",+ -2.1972245773362196),+ ("quarteryear", -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+ -2.1972245773362196),+ ("ordinal (digits)day (grain)this|last|next <cycle>",+ -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+ -2.1972245773362196),+ ("weekmonth", -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+ -2.1972245773362196)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods = HashMap.fromList [("", 0.0)], n = 27},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -1.0116009116784799,+ unseen = -3.6375861597263857,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -2.001480000210124),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("hh:mmhh:mm", -2.001480000210124),+ ("dayday", -2.512305623976115),+ ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+ ("hourhour", -2.512305623976115),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+ n = 8},+ koData =+ ClassData{prior = -0.45198512374305727,+ unseen = -3.912023005428146,+ likelihoods =+ HashMap.fromList+ [("hourday", -3.1986731175506815),+ ("dayhour", -2.793208009442517),+ ("<day-of-month> (ordinal)time-of-day (latent)",+ -3.1986731175506815),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -3.1986731175506815),+ ("hh:mmtime-of-day (latent)", -2.2823823856765264),+ ("minuteminute", -2.793208009442517),+ ("time-of-day (latent)time-of-day (latent)",+ -2.793208009442517),+ ("dayday", -3.1986731175506815),+ ("hourhour", -2.505525936990736),+ ("dayyear", -3.1986731175506815),+ ("minutehour", -2.2823823856765264),+ ("hh:mmintersect", -2.793208009442517),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("time-of-day (latent)<time-of-day> am|pm",+ -3.1986731175506815),+ ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+ -3.1986731175506815)],+ n = 14}}),+ ("Saturday",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("the <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+ -1.7346010553881064),+ ("weekmonth", -1.7346010553881064),+ ("week (grain)October", -1.7346010553881064),+ ("week (grain)<named-month> <day-of-month> (non ordinal)",+ -1.7346010553881064),+ ("weekday", -1.2237754316221157)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("number.number hours",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.6094379124341003),+ ("hh:mmhh:mm", -1.6094379124341003),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+ ("hourhour", -2.3025850929940455),+ ("hourminute", -2.3025850929940455),+ ("time-of-day (latent)<time-of-day> sharp|exactly",+ -2.70805020110221),+ ("time-of-day (latent)hh:mm", -2.70805020110221),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.6094379124341003),+ ("time-of-day (latent)time-of-day (latent)",+ -2.0149030205422647),+ ("hourhour", -1.791759469228055),+ ("minutehour", -1.6094379124341003),+ ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+ n = 9}}),+ ("integer 21..99",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)", -0.6931471805599453),+ ("integer (20..90)integer (0..19)", -0.6931471805599453)],+ n = 4}}),+ ("Tisha B'Av",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("yyyy-mm-dd",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (latent)",+ Classifier{okData =+ ClassData{prior = -0.15524059819128397,+ unseen = -4.912654885736052,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -4.546237407675729e-2),+ ("intersect 2 numbers", -3.518980417318539)],+ n = 131},+ koData =+ ClassData{prior = -1.9393954680341197, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.3121863889661687),+ ("negative numbers", -0.6190392084062235),+ ("compose by multiplication", -1.8718021769015913)],+ n = 22}}),+ ("mm/dd/yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Memorial Day",+ Classifier{okData =+ ClassData{prior = -0.1823215567939546,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -1.791759469228055, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Monday",+ Classifier{okData =+ ClassData{prior = -0.5108256237659907, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+ ("yesterday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lincoln's Birthday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm:ss",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Hanukkah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<hour-of-day> <integer>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>integer (20..90)", -1.3862943611198906),+ ("hour", -0.9808292530117262),+ ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>integer (numeric)",+ -1.0986122886681098),+ ("hour", -1.0986122886681098)],+ n = 1}}),+ ("nth <time> of <time>",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.9808292530117262),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -2.0794415416798357),+ ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+ -1.6739764335716716),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+ -1.6739764335716716)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.0986122886681098),+ ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+ -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+ -1.3862943611198906)],+ n = 3}}),+ ("National Grandparents Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Valentine's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("April",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maha Saptami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week (grain)",+ Classifier{okData =+ ClassData{prior = -4.0821994520255166e-2,+ unseen = -4.304065093204169,+ likelihoods = HashMap.fromList [("", 0.0)], n = 72},+ koData =+ ClassData{prior = -3.2188758248682006,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("<part-of-day> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+ -2.3513752571634776),+ ("part of daysintersect", -2.3513752571634776),+ ("hourday", -0.9650808960435872),+ ("part of daysthe <day-of-month> (ordinal)",+ -2.3513752571634776),+ ("part of daysthe <day-of-month> (number)",+ -2.3513752571634776),+ ("part of daysthis <time>", -2.3513752571634776),+ ("part of daysChristmas", -1.9459101490553135)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("six thirty six a.m.",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.252762968495368),+ ("one twenty two", -0.8472978603872037),+ ("one eleven", -1.252762968495368)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Loyalty Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Shrove Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("now",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("<day-of-month> (ordinal or number) of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.3513752571634776),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.3513752571634776),+ ("ordinal (digits)February", -2.3513752571634776),+ ("integer (numeric)February", -1.9459101490553135),+ ("month", -0.9650808960435872),+ ("ordinal (digits)March", -2.3513752571634776),+ ("integer (numeric)July", -2.3513752571634776)],+ n = 7},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.5040773967762742),+ ("month", -1.5040773967762742)],+ n = 1}}),+ ("this <part-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("hour", -0.6931471805599453),+ ("part of days", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Kaanum Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom Kippur",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("powers of tens",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Friday",+ Classifier{okData =+ ClassData{prior = -0.3677247801253174,+ unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ koData =+ ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("in|during the <part-of-day>",+ Classifier{okData =+ ClassData{prior = -8.701137698962981e-2,+ unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("early morning", -2.5257286443082556),+ ("hour", -0.7339691750802004),+ ("part of days", -0.8209805520698302)],+ n = 11},+ koData =+ ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("hour", -0.916290731874155),+ ("part of days", -0.916290731874155)],+ n = 1}}),+ ("tomorrow",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh(:mm) - <time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Groundhog Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|last|next <cycle>",+ Classifier{okData =+ ClassData{prior = -7.410797215372185e-2,+ unseen = -5.117993812416755,+ likelihoods =+ HashMap.fromList+ [("week", -1.1416958748044215),+ ("month (grain)", -2.8094026953624978),+ ("year (grain)", -2.472930458741285),+ ("week (grain)", -1.1416958748044215),+ ("quarter", -3.5025498759224427), ("year", -2.472930458741285),+ ("month", -2.8094026953624978),+ ("quarter (grain)", -3.5025498759224427)],+ n = 78},+ koData =+ ClassData{prior = -2.639057329615259, unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("week", -1.4816045409242156),+ ("week (grain)", -1.4816045409242156),+ ("day", -1.9924301646902063),+ ("day (grain)", -1.9924301646902063)],+ n = 6}}),+ ("Mother's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Simchat Torah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Eve",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Raksha Bandhan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ashura",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Palm Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Adha",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -1.9459101490553135),+ ("time-of-day (latent)", -1.9459101490553135),+ ("<time-of-day> am|pm", -1.9459101490553135),+ ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+ ("minute", -1.540445040947149)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2006706954621511,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinals (first..twentieth,thirtieth,...)",+ -1.7047480922384253),+ ("ordinal (digits)", -0.2006706954621511)],+ n = 9},+ koData =+ ClassData{prior = -1.7047480922384253,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],+ n = 2}}),+ ("last weekend of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("October", -0.9555114450274363), ("July", -1.8718021769015913),+ ("month", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (number)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lag BaOmer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("fractional number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+ ("Sunday",+ Classifier{okData =+ ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Chinese New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("February",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods = HashMap.fromList [("", 0.0)], n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("minute (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|this|next <season>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1}}),+ ("time-of-day (latent)",+ Classifier{okData =+ ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.11778303565638351),+ ("integer (0..19)", -2.330755969960742)],+ n = 69},+ koData =+ ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -9.352605801082348e-2),+ ("integer (0..19)", -2.9267394020670396),+ ("integer 21..99", -3.332204510175204)],+ n = 53}}),+ ("beginning of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last <day-of-week> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.916290731874155),+ ("SundayMarch", -1.6094379124341003),+ ("MondayMarch", -1.6094379124341003),+ ("Sundayintersect", -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.13858616328614667,+ unseen = -5.147494476813453,+ likelihoods =+ HashMap.fromList+ [("week", -2.5026062268874014),+ ("integer (0..19)year (grain)", -3.062222014822824),+ ("integer (numeric)day (grain)", -2.743768283704289),+ ("integer (0..19)second (grain) ", -3.7553691953827695),+ ("integer (0..19)hour (grain)", -3.062222014822824),+ ("second", -3.349904087274605),+ ("integer (numeric)second (grain) ", -4.04305126783455),+ ("integer (numeric)year (grain)", -3.349904087274605),+ ("day", -2.4336133554004498), ("year", -2.576714199041123),+ ("integer (numeric)week (grain)", -3.062222014822824),+ ("integer (0..19)month (grain)", -3.5322256440685593),+ ("hour", -2.6567569067146595), ("month", -3.1957534074473464),+ ("integer (numeric)minute (grain)", -3.1957534074473464),+ ("integer (0..19)minute (grain)", -3.062222014822824),+ ("integer (numeric)month (grain)", -4.04305126783455),+ ("minute", -2.5026062268874014),+ ("integer (numeric)hour (grain)", -3.5322256440685593),+ ("integer (0..19)day (grain)", -3.5322256440685593),+ ("integer (0..19)week (grain)", -3.1957534074473464)],+ n = 74},+ koData =+ ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+ ("integer (numeric)hour (grain)", -1.4087672169719492),+ ("integer (0..19)quarter (grain)", -3.1135153092103742)],+ n = 11}}),+ ("hhmm (latent)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,+ likelihoods =+ HashMap.fromList+ [("integer after|past <hour-of-day>", -3.951243718581427),+ ("at <time-of-day>", -2.202043863772168),+ ("from|since|after <time-of-day>", -3.7281001672672174),+ ("<time-of-day> o'clock", -4.238925791033208),+ ("half after|past <hour-of-day>", -4.238925791033208),+ ("time-of-day (latent)", -1.7266201670570935),+ ("hhmm (latent)", -4.6443908991413725),+ ("hh:mm", -2.293015641977895),+ ("quarter after|past <hour-of-day>", -4.6443908991413725),+ ("about|exactly <time-of-day>", -4.6443908991413725),+ ("until <time-of-day>", -3.951243718581427),+ ("hour", -1.2104036946562264),+ ("<time-of-day> sharp|exactly", -4.6443908991413725),+ ("minute", -1.754019141245208)],+ n = 96},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.283414346005772),+ ("from|since|after <time-of-day>", -3.283414346005772),+ ("<hour-of-day> <integer>", -3.6888794541139363),+ ("time-of-day (latent)", -1.0498221244986778),+ ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],+ n = 32}}),+ ("Yom Ha'atzmaut",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+ ("integer (numeric)integer (numeric)July", -1.252762968495368),+ ("month", -0.8472978603872037)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thiru Onam",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thai Pongal",+ Classifier{okData =+ ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -0.8472978603872037,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Vijayadashami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thanksgiving Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("a <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.5306282510621704,+ unseen = -3.5553480614894135,+ likelihoods =+ HashMap.fromList+ [("week", -2.1400661634962708),+ ("year (grain)", -2.4277482359480516),+ ("second", -2.833213344056216),+ ("week (grain)", -2.1400661634962708),+ ("day", -2.1400661634962708),+ ("minute (grain)", -2.833213344056216),+ ("year", -2.4277482359480516),+ ("second (grain) ", -2.833213344056216),+ ("minute", -2.833213344056216),+ ("day (grain)", -2.1400661634962708)],+ n = 10},+ koData =+ ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("hour (grain)", -1.7227665977411035),+ ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+ ("quarter (grain)", -1.9459101490553135)],+ n = 7}}),+ ("at the beginning|end of <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("year (latent)", -0.6931471805599453),+ ("year", -0.6931471805599453)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Dhanteras",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Tu BiShvat",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Whit Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm",+ Classifier{okData =+ ClassData{prior = -5.6352936551131744e-2,+ unseen = -4.2626798770413155,+ likelihoods = HashMap.fromList [("", 0.0)], n = 69},+ koData =+ ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("Holi",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Rosh Hashanah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Holika Dahan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("second (grain) ",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinals (first..twentieth,thirtieth,...)",+ Classifier{okData =+ ClassData{prior = -6.899287148695143e-2,+ unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14},+ koData =+ ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Mawlid",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Jumu'atul-Wida",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.252762968495368),+ ("dayday", -0.8472978603872037),+ ("day (grain)yesterday", -1.252762968495368)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("about|exactly <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("week", -1.791759469228055),+ ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+ ("this|last|next <cycle>", -1.791759469228055),+ ("day", -2.4849066497880004),+ ("time-of-day (latent)", -2.890371757896165),+ ("hhmm (latent)", -2.4849066497880004),+ ("<time-of-day> am|pm", -2.890371757896165),+ ("hour", -2.1972245773362196),+ ("next <time>", -2.890371757896165),+ ("this|next <day-of-week>", -2.890371757896165),+ ("minute", -2.4849066497880004)],+ n = 12},+ koData =+ ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+ ("time-of-day (latent)", -2.0794415416798357),+ ("hour", -2.0794415416798357)],+ n = 2}}),+ ("Sukkot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> in <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("monthyear", -1.2992829841302609),+ ("Marcha <unit-of-duration>", -1.7047480922384253),+ ("March<integer> <unit-of-duration>", -1.7047480922384253),+ ("Vijayadashami<integer> <unit-of-duration>",+ -1.7047480922384253),+ ("dayyear", -1.7047480922384253)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("World Vegan Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ Classifier{okData =+ ClassData{prior = -0.45547552868282576,+ unseen = -5.117993812416755,+ likelihoods =+ HashMap.fromList+ [("Wednesday<named-month> <day-of-month> (non ordinal)",+ -4.418840607796598),+ ("dayhour", -3.16607763930123), ("daymonth", -3.16607763930123),+ ("<named-month> <day-of-month> (non ordinal)Friday",+ -4.418840607796598),+ ("Friday<named-month> <day-of-month> (non ordinal)",+ -3.7256934272366524),+ ("Wednesdayintersect", -4.418840607796598),+ ("Labor Daythis|last|next <cycle>", -4.418840607796598),+ ("Black Fridaythis|last|next <cycle>", -4.418840607796598),+ ("<part-of-day> of <time>February", -4.418840607796598),+ ("Saturday<time-of-day> am|pm", -4.418840607796598),+ ("Martin Luther King's Daythis|last|next <cycle>",+ -4.013375499688434),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.418840607796598),+ ("on <date><time-of-day> am|pm", -4.418840607796598),+ ("hourmonth", -4.418840607796598),+ ("dayday", -2.5470384308950065),+ ("the <day-of-month> (ordinal)February", -4.013375499688434),+ ("WednesdayOctober", -4.418840607796598),+ ("Wednesdaythis|last|next <cycle>", -4.013375499688434),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -3.5025498759224427),+ ("dayyear", -2.7140925155581725),+ ("Saturday<named-month> <day-of-month> (non ordinal)",+ -4.418840607796598),+ ("Thursdayhh:mm", -4.013375499688434),+ ("Thanksgiving Daythis|last|next <cycle>", -4.418840607796598),+ ("Memorial Daythis|last|next <cycle>", -4.418840607796598),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -4.013375499688434),+ ("TuesdayOctober", -4.418840607796598),+ ("the <day-of-month> (ordinal)March", -4.418840607796598),+ ("Mondaythis|last|next <cycle>", -4.418840607796598),+ ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.418840607796598),+ ("Fridayintersect", -4.418840607796598),+ ("Thursday<datetime> - <datetime> (interval)",+ -3.7256934272366524),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.5025498759224427),+ ("Tuesdaythis|last|next <cycle>", -4.418840607796598),+ ("Sunday<named-month> <day-of-month> (non ordinal)",+ -4.418840607796598),+ ("dayminute", -3.0325462466767075),+ ("minuteday", -3.5025498759224427),+ ("this|last|next <cycle>Sunday", -4.418840607796598),+ ("intersectyear (latent)", -4.418840607796598),+ ("Sundaythis|last|next <cycle>", -4.418840607796598),+ ("weekday", -4.418840607796598),+ ("dayweek", -3.3202283191284883),+ ("Thursday<time-of-day> am|pm", -4.418840607796598),+ ("Monday<named-month> <day-of-month> (non ordinal)",+ -4.013375499688434),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -4.013375499688434)],+ n = 52},+ koData =+ ClassData{prior = -1.0055218656020977, unseen = -4.812184355372417,+ likelihoods =+ HashMap.fromList+ [("week-endJuly", -4.110873864173311),+ ("week-endOctober", -3.417726683613366),+ ("daymonth", -1.9136492868370918),+ ("TuesdaySeptember", -4.110873864173311),+ ("Wednesdayintersect", -4.110873864173311),+ ("hourmonth", -3.012261575505202),+ ("Fridaythis|last|next <cycle>", -4.110873864173311),+ ("SundayFebruary", -4.110873864173311),+ ("WednesdayOctober", -4.110873864173311),+ ("week-endintersect", -4.110873864173311),+ ("dayyear", -4.110873864173311),+ ("FridayJuly", -3.7054087560651467),+ ("FridaySeptember", -4.110873864173311),+ ("WednesdayFebruary", -4.110873864173311),+ ("minutemonth", -3.1945831322991562),+ ("SundayMarch", -4.110873864173311),+ ("MondayFebruary", -3.7054087560651467),+ ("Fridayintersect", -4.110873864173311),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.7054087560651467),+ ("dayminute", -3.417726683613366),+ ("SaturdaySeptember", -4.110873864173311),+ ("intersectSeptember", -3.1945831322991562),+ ("MondayMarch", -4.110873864173311),+ ("on <date>September", -3.7054087560651467),+ ("Tuesdayintersect", -4.110873864173311),+ ("Sundayintersect", -4.110873864173311)],+ n = 30}}),+ ("last <time>",+ Classifier{okData =+ ClassData{prior = -0.4595323293784402,+ unseen = -3.6635616461296463,+ likelihoods =+ HashMap.fromList+ [("Father's Day", -2.9444389791664407),+ ("Martin Luther King's Day", -2.9444389791664407),+ ("Cyber Monday", -2.9444389791664407),+ ("Memorial Day", -2.9444389791664407),+ ("Mother's Day", -2.9444389791664407),+ ("day", -1.1526795099383855), ("Sunday", -2.9444389791664407),+ ("Chinese New Year", -2.538973871058276),+ ("Thanksgiving Day", -2.9444389791664407),+ ("Easter Sunday", -2.9444389791664407),+ ("hour", -2.9444389791664407), ("Tuesday", -2.9444389791664407),+ ("week-end", -2.9444389791664407)],+ n = 12},+ koData =+ ClassData{prior = -0.9985288301111273, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("Monday", -2.639057329615259), ("day", -2.2335922215070942),+ ("Sunday", -2.639057329615259), ("hour", -1.540445040947149),+ ("week-end", -1.540445040947149)],+ n = 7}}),+ ("March",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods = HashMap.fromList [("", 0.0)], n = 19},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("Octoberordinal (digits)", -2.120263536200091),+ ("Thursdayordinal (digits)", -2.5257286443082556),+ ("day", -2.120263536200091),+ ("Augustordinal (digits)", -2.5257286443082556),+ ("Marchordinals (first..twentieth,thirtieth,...)",+ -2.120263536200091),+ ("Tuesdayordinal (digits)", -2.5257286443082556),+ ("month", -1.2729656758128873),+ ("Marchordinal (digits)", -2.5257286443082556)],+ n = 8},+ koData =+ ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("from|since|after <time-of-day>ordinal (digits)",+ -1.8718021769015913),+ ("Augustordinal (digits)", -1.8718021769015913),+ ("month", -1.466337068793427)],+ n = 2}}),+ ("Labor Day weekend",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Clean Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Veterans Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Easter Sunday",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("Christmas",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("until <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -2.3025850929940455),+ ("<time-of-day> am|pm", -1.6094379124341003),+ ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),+ ("minute", -1.3862943611198906)],+ n = 6},+ koData =+ ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.7227665977411035),+ ("yesterday", -2.2335922215070942),+ ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),+ ("hour", -2.639057329615259), ("minute", -1.252762968495368)],+ n = 10}}),+ ("mm.dd.yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Isra and Mi'raj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<duration> after|before|from <time>",+ Classifier{okData =+ ClassData{prior = -0.3184537311185346,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("a <unit-of-duration>now", -2.803360380906535),+ ("a <unit-of-duration>Christmas", -2.803360380906535),+ ("dayday", -2.803360380906535),+ ("<integer> <unit-of-duration>today", -2.803360380906535),+ ("daysecond", -2.803360380906535),+ ("a <unit-of-duration>right now", -2.803360380906535),+ ("minutenograin", -2.803360380906535),+ ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+ ("<integer> <unit-of-duration>Easter Sunday",+ -2.803360380906535),+ ("secondnograin", -2.803360380906535),+ ("yearday", -2.1102132003465894),+ ("daynograin", -2.803360380906535),+ ("<integer> <unit-of-duration>now", -2.3978952727983707)],+ n = 8},+ koData =+ ClassData{prior = -1.2992829841302609,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("dayhour", -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -2.4423470353692043),+ ("dayday", -2.03688192726104),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -2.4423470353692043),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -2.4423470353692043)],+ n = 3}}),+ ("<day-of-month> (ordinal or number) of <month>",+ Classifier{okData =+ ClassData{prior = -8.004270767353637e-2,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.803360380906535),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.803360380906535),+ ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+ ("integer (numeric)this|last|next <cycle>",+ -2.3978952727983707),+ ("ordinal (digits)February", -2.803360380906535),+ ("integer (numeric)February", -2.3978952727983707),+ ("month", -0.9315582040049435),+ ("ordinal (digits)March", -2.803360380906535),+ ("integer (numeric)July", -2.803360380906535)],+ n = 12},+ koData =+ ClassData{prior = -2.5649493574615367,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.7047480922384253),+ ("month", -1.7047480922384253)],+ n = 1}}),+ ("Independence Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("decimal number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Naraka Chaturdashi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("beginning of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("next <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("Martin Luther King's Day", -2.890371757896165),+ ("Halloween", -2.890371757896165),+ ("Wednesday", -2.890371757896165),+ ("Boss's Day", -2.890371757896165),+ ("Memorial Day", -2.890371757896165),+ ("Monday", -2.890371757896165),+ ("Mother's Day", -2.890371757896165),+ ("day", -1.0986122886681098),+ ("Thanksgiving Day", -2.890371757896165),+ ("March", -2.890371757896165), ("month", -2.890371757896165),+ ("Tuesday", -2.1972245773362196)],+ n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> sharp|exactly",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -2.1400661634962708),+ ("time-of-day (latent)", -2.1400661634962708),+ ("hhmm (latent)", -2.1400661634962708),+ ("<time-of-day> am|pm", -2.1400661634962708),+ ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+ ("minute", -1.4469189829363254)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <named-month>|year",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("October", -2.4423470353692043),+ ("year (latent)", -1.0560526742493137),+ ("year", -1.0560526742493137), ("March", -2.4423470353692043),+ ("month", -2.03688192726104)],+ n = 9},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("October", -1.2992829841302609),+ ("year (latent)", -1.7047480922384253),+ ("year", -1.7047480922384253), ("month", -1.2992829841302609)],+ n = 3}}),+ ("Islamic New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("negative numbers",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -7.696104113612832e-2),+ ("integer (0..19)", -2.6026896854443837)],+ n = 25}}),+ ("about|exactly <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("half an hour", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time> before last|after next",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("Wednesday", -1.8718021769015913),+ ("Friday", -1.466337068793427), ("day", -1.1786549963416462),+ ("March", -1.8718021769015913), ("month", -1.8718021769015913)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by the end of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("this|last|next <cycle>", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hhmm (military) am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,+ likelihoods =+ HashMap.fromList+ [("intersecthh:mm", -3.1918471524802814),+ ("intersect<time-of-day> am|pm", -3.1918471524802814),+ ("minuteminute", -1.457246097092175),+ ("hh:mmhh:mm", -2.093234863812172),+ ("dayday", -3.1918471524802814),+ ("hourhour", -2.093234863812172),+ ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -3.597312260588446),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.597312260588446),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),+ ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],+ n = 26},+ koData =+ ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("<named-month> <day-of-month> (non ordinal)July",+ -3.1135153092103742),+ ("daymonth", -2.70805020110221),+ ("from|since|after <time-of-day>intersect", -2.70805020110221),+ ("<time-of-day> am|pmintersect", -3.1135153092103742),+ ("hh:mm<time-of-day> am|pm", -2.70805020110221),+ ("minuteminute", -1.8607523407150064),+ ("hourhour", -2.70805020110221),+ ("minutehour", -2.70805020110221),+ ("hh:mmintersect", -2.1972245773362196),+ ("<named-month> <day-of-month> (non ordinal)August",+ -3.1135153092103742),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.1135153092103742)],+ n = 12}}),+ ("Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Day",+ Classifier{okData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+ ("fortnight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Memorial Day weekend",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> and an half hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Laylat al-Qadr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Boghi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("at the beginning|end of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("January", -1.3862943611198906),+ ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+ n = 4},+ koData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("October", -1.0986122886681098),+ ("month", -1.0986122886681098)],+ n = 1}}),+ ("<time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.529395204760564),+ ("hh:mmhh:mm", -1.8971199848858813),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -2.4849066497880004),+ ("hourhour", -1.6964492894237302),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -3.4011973816621555),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.4011973816621555),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),+ ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],+ n = 22},+ koData =+ ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>time-of-day (latent)",+ -3.4657359027997265),+ ("hh:mmtime-of-day (latent)", -1.7609878105613013),+ ("hh:mm<time-of-day> am|pm", -3.0602707946915624),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -3.4657359027997265),+ ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),+ ("hourhour", -2.2129729343043585),+ ("minutehour", -1.2144441041932315),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.4657359027997265),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -2.5494451709255714),+ ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),+ ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+ -3.0602707946915624)],+ n = 24}}),+ ("military spelled out numbers am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods =+ HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("winter",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("nth <time> after <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+ -0.916290731874155)],+ n = 1}}),+ ("<named-month> <day-of-month> (non ordinal)",+ Classifier{okData =+ ClassData{prior = -0.42121346507630353,+ unseen = -3.951243718581427,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.5455312716044354),+ ("Marchinteger (numeric)", -2.833213344056216),+ ("Aprilinteger (numeric)", -3.2386784521643803),+ ("month", -0.8407831793660099),+ ("Februaryinteger (numeric)", -1.9859154836690123),+ ("Septemberinteger (numeric)", -2.833213344056216),+ ("Octoberinteger (numeric)", -2.833213344056216),+ ("Julyinteger (numeric)", -2.1400661634962708)],+ n = 21},+ koData =+ ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.3353749158170367),+ ("Marchinteger (numeric)", -2.740840023925201),+ ("Aprilinteger (numeric)", -2.740840023925201),+ ("month", -0.9490805546971459),+ ("from|since|after <time-of-day>integer (numeric)",+ -2.3353749158170367),+ ("Julyinteger (numeric)", -1.6422277352570913)],+ n = 11}}),+ ("President's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Diwali",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("last night",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|next <day-of-week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.995732273553991,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.2512917986064953),+ ("Wednesday", -2.2512917986064953),+ ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+ ("Tuesday", -1.55814461804655)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinal (digits)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6635616461296463,+ likelihoods = HashMap.fromList [("", 0.0)], n = 37},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter (grain)",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("last <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("day (grain)October", -1.791759469228055),+ ("daymonth", -1.2809338454620642),+ ("day (grain)intersect", -1.791759469228055),+ ("weekmonth", -1.791759469228055),+ ("week (grain)intersect", -2.1972245773362196),+ ("week (grain)September", -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Chhath",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Vasant Panchami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month>(ordinal) <named-month> year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)April", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Black Friday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Labor Day",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("week-end",+ Classifier{okData =+ ClassData{prior = -1.5040773967762742,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.25131442828090605,+ unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+ ("Great Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maundy Thursday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("day (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.295836866004329,+ likelihoods = HashMap.fromList [("", 0.0)], n = 25},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("right now",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("for <duration> from <time>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -1.5040773967762742),+ ("dayday", -1.0986122886681098),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -1.5040773967762742)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.252762968495368),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -1.252762968495368)],+ n = 1}}),+ ("compose by multiplication",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("between <time> and <time>",+ Classifier{okData =+ ClassData{prior = -1.0986122886681098,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.832909122935104),+ ("hh:mmhh:mm", -0.832909122935104)],+ n = 9},+ koData =+ ClassData{prior = -0.40546510810816444,+ unseen = -3.7376696182833684,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.410986973710262),+ ("minuteminute", -1.410986973710262),+ ("minutehour", -1.410986973710262),+ ("hh:mmintersect", -1.410986973710262)],+ n = 18}}),+ ("<month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+ ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",+ -2.740840023925201),+ ("from|since|after <time-of-day>integer (numeric)integer (numeric)",+ -2.740840023925201),+ ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",+ -2.740840023925201),+ ("Augustordinal (digits)integer (numeric)",+ -2.3353749158170367),+ ("month", -0.8690378470236094),+ ("Augustordinal (digits)ordinal (digits)",+ -2.3353749158170367)],+ n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of days",+ Classifier{okData =+ ClassData{prior = -3.509131981127006e-2,+ unseen = -3.4011973816621555,+ likelihoods = HashMap.fromList [("", 0.0)], n = 28},+ koData =+ ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("at the beginning|end of <week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.330733340286331,+ likelihoods =+ HashMap.fromList+ [("week", -0.706570200892086),+ ("this|last|next <cycle>", -0.8209805520698302),+ ("about|exactly <time-of-day>", -2.70805020110221)],+ n = 36},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Fitr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("summer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Trinity Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("dd-dd <month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)September",+ -1.791759469228055),+ ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),+ ("ordinal (digits)ordinal (digits)October",+ -2.1972245773362196),+ ("integer (numeric)integer (numeric)July", -2.1972245773362196),+ ("month", -0.9444616088408514),+ ("ordinal (digits)ordinal (digits)August",+ -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Pentecost",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.639057329615259),+ ("Martin Luther King's Day", -2.639057329615259),+ ("Monday", -2.639057329615259), ("day", -1.1349799328389845),+ ("Thanksgiving Day", -2.639057329615259),+ ("Christmas", -2.639057329615259), ("hour", -2.639057329615259),+ ("winter", -2.639057329615259),+ ("week-end", -2.639057329615259),+ ("summer", -2.2335922215070942)],+ n = 9},+ koData =+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("August", Classifier{okData =
Duckling/Ranking/Classifiers/EN_XX.hs view
@@ -21,2389 +21,3001 @@ classifiers :: Classifiers classifiers = HashMap.fromList- [("<integer> to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("integer (numeric)noon|midnight|EOD|end of day",- -0.916290731874155),- ("hour", -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.13353139262452263,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hour", -0.7537718023763802),- ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],- n = 7}}),- ("<time> timezone",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -1.824549292051046),- ("<time-of-day> am|pm", -1.6422277352570913),- ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),- ("minute", -1.824549292051046)],- n = 13},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thursday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (numeric)",- Classifier{okData =- ClassData{prior = -0.7765287894989963, unseen = -5.225746673713201,- likelihoods = HashMap.fromList [("", 0.0)], n = 184},- koData =- ClassData{prior = -0.616186139423817, unseen = -5.384495062789089,- likelihoods = HashMap.fromList [("", 0.0)], n = 216}}),- ("<duration> hence|ago",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.784189633918261,- likelihoods =- HashMap.fromList- [("week", -1.563975538357343), ("day", -1.8152899666382492),- ("year", -2.662587827025453),- ("<integer> <unit-of-duration>", -1.0531499145913523),- ("a <unit-of-duration>", -2.662587827025453),- ("month", -2.662587827025453),- ("fortnight", -2.662587827025453)],- n = 18},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("noon|midnight|EOD|end of day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter to|till|before <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<cycle> after|before <time>",- Classifier{okData =- ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.6094379124341003),- ("dayday", -1.0986122886681098),- ("day (grain)yesterday", -1.6094379124341003)],- n = 4},- koData =- ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("dayhour", -1.466337068793427),- ("year (grain)Christmas", -1.8718021769015913),- ("day (grain)intersect", -1.466337068793427),- ("yearday", -1.8718021769015913)],- n = 3}}),- ("Martin Luther King's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("integer (20..90)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("mm/yyyy",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("integer after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("hour", -0.8109302162163288),- ("integer (numeric)time-of-day (latent)", -1.0986122886681098),- ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal or number) <named-month>",- Classifier{okData =- ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("ordinal (digits)December", -2.1400661634962708),- ("ordinal (digits)February", -2.1400661634962708),- ("integer (numeric)April", -2.1400661634962708),- ("month", -1.4469189829363254)],- n = 3},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -3.4011973816621555,- likelihoods =- HashMap.fromList- [("ordinal (digits)October", -2.6741486494265287),- ("ordinal (digits)July", -2.6741486494265287),- ("integer (numeric)September", -2.268683541318364),- ("ordinal (digits)August", -2.6741486494265287),- ("integer (numeric)August", -2.6741486494265287),- ("ordinal (digits)April", -2.6741486494265287),- ("month", -1.0647107369924282),- ("integer (numeric)July", -2.268683541318364)],- n = 9}}),- ("<time> <part-of-day>",- Classifier{okData =- ClassData{prior = -9.844007281325252e-2,- unseen = -4.430816798843313,- likelihoods =- HashMap.fromList- [("<day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("dayhour", -1.5284688499004333),- ("Mondayearly morning", -3.3202283191284883),- ("time-of-day (latent)tonight", -3.3202283191284883),- ("hourhour", -2.339399066116762),- ("<time-of-day> o'clockin|during the <part-of-day>",- -3.7256934272366524),- ("todaypart of days", -3.7256934272366524),- ("minutehour", -2.627081138568543),- ("at <time-of-day>in|during the <part-of-day>",- -3.3202283191284883),- ("time-of-day (latent)this <part-of-day>", -3.7256934272366524),- ("Mondayin|during the <part-of-day>", -3.7256934272366524),- ("intersectpart of days", -3.7256934272366524),- ("intersectin|during the <part-of-day>", -3.7256934272366524),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -3.7256934272366524),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -3.7256934272366524),- ("tomorrowpart of days", -2.339399066116762),- ("hh:mmin|during the <part-of-day>", -3.0325462466767075),- ("time-of-day (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("hhmm (latent)in|during the <part-of-day>",- -3.7256934272366524),- ("yesterdaypart of days", -3.7256934272366524),- ("Mondaypart of days", -3.7256934272366524)],- n = 29},- koData =- ClassData{prior = -2.367123614131617, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("yearhour", -2.740840023925201),- ("monthhour", -2.740840023925201),- ("hourhour", -2.740840023925201),- ("past year (latent)in|during the <part-of-day>",- -2.740840023925201),- ("Februaryin|during the <part-of-day>", -2.740840023925201),- ("time-of-day (latent)in|during the <part-of-day>",- -2.740840023925201)],- n = 3}}),- ("today",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd",- Classifier{okData =- ClassData{prior = -1.4271163556401458,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,- likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),- ("at <time-of-day>",- Classifier{okData =- ClassData{prior = -9.381875521765486e-2,- unseen = -4.90527477843843,- likelihoods =- HashMap.fromList- [("<time> timezone", -3.7992275112828016),- ("noon|midnight|EOD|end of day", -3.7992275112828016),- ("integer after|past <hour-of-day>", -3.7992275112828016),- ("half after|past <hour-of-day>", -4.204692619390966),- ("time-of-day (latent)", -1.7197859696029658),- ("hhmm (latent)", -3.5115454388310208),- ("<time-of-day> am|pm", -1.8067973465925955),- ("hh:mm", -3.288401887516811),- ("about|exactly <time-of-day>", -3.7992275112828016),- ("hour", -1.0911773101805915),- ("<time-of-day> sharp|exactly", -4.204692619390966),- ("minute", -2.0074680420547466)],- n = 61},- koData =- ClassData{prior = -2.412933150162911, unseen = -3.2188758248682006,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -1.2321436812926323),- ("hour", -1.2321436812926323)],- n = 6}}),- ("December",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("absorption of , after named day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("on <date>", -2.1972245773362196),- ("Wednesday", -2.6026896854443837),- ("Saturday", -2.6026896854443837),- ("Monday", -2.1972245773362196),- ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),- ("Sunday", -2.6026896854443837)],- n = 10},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("September",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("tonight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("last|past|next <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("week", -2.456735772821304), ("second", -2.639057329615259),- ("day", -2.3025850929940455), ("year", -2.639057329615259),- ("<integer> <unit-of-duration>", -0.7827593392496325),- ("hour", -2.639057329615259), ("month", -2.639057329615259),- ("minute", -2.639057329615259)],- n = 31},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("the ides of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("on <date>",- Classifier{okData =- ClassData{prior = -0.1670540846631662, unseen = -4.007333185232471,- likelihoods =- HashMap.fromList- [("Thursday", -1.791759469228055), ("mm/dd", -3.295836866004329),- ("absorption of , after named day", -2.890371757896165),- ("intersect", -2.890371757896165),- ("Saturday", -2.6026896854443837),- ("Friday", -3.295836866004329), ("day", -0.8979415932059586),- ("the <day-of-month> (ordinal)", -2.890371757896165),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -2.6026896854443837),- ("hour", -3.295836866004329)],- n = 22},- koData =- ClassData{prior = -1.8718021769015913,- unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("intersect", -1.791759469228055), ("day", -1.2809338454620642),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- -1.791759469228055)],- n = 4}}),- ("integer (0..19)",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.784189633918261,- likelihoods = HashMap.fromList [("", 0.0)], n = 42},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),- ("between <time-of-day> and <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("minuteminute", -0.916290731874155),- ("hh:mmhh:mm", -0.916290731874155)],- n = 3},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -0.916290731874155),- ("minutehour", -0.916290731874155)],- n = 3}}),- ("Halloween",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),- ("Augustordinal (digits)integer (numeric)",- -1.6094379124341003),- ("month", -0.916290731874155),- ("Augustordinal (digits)ordinal (digits)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("October",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods = HashMap.fromList [("", 0.0)], n = 16},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from|since|after <time-of-day>",- Classifier{okData =- ClassData{prior = -1.5040773967762742, unseen = -4.02535169073515,- likelihoods =- HashMap.fromList- [("July", -3.3141860046725258),- ("time-of-day (latent)", -2.3978952727983707),- ("<time-of-day> am|pm", -2.3978952727983707),- ("hh:mm", -2.3978952727983707), ("hour", -1.8101086078962516),- ("month", -2.908720896564361), ("minute", -2.3978952727983707),- ("August", -3.3141860046725258)],- n = 14},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -4.836281906951478,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.7297014486341915),- ("week", -4.135166556742356),- ("<day-of-month> (ordinal or number) <named-month>",- -4.135166556742356),- ("today", -4.135166556742356),- ("intersect", -2.7488721956224653),- ("second", -4.135166556742356), ("now", -3.4420193761824103),- ("tomorrow", -3.7297014486341915),- ("this|last|next <cycle>", -4.135166556742356),- ("day", -1.995100393246085),- ("time-of-day (latent)", -4.135166556742356),- ("<time-of-day> am|pm", -3.7297014486341915),- ("nograin", -3.4420193761824103),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- -4.135166556742356),- ("Christmas", -3.4420193761824103),- ("hour", -2.8824035882469876),- ("<datetime> - <datetime> (interval)", -2.7488721956224653),- ("<time-of-day> - <time-of-day> (interval)",- -2.430418464503931),- ("<named-month> <day-of-month> (non ordinal)",- -3.7297014486341915),- ("minute", -1.6928195213731514),- ("right now", -4.135166556742356),- ("<month> dd-dd (interval)", -3.4420193761824103),- ("dd-dd <month> (interval)", -3.7297014486341915)],- n = 49}}),- ("month (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> more <unit-of-duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("integer (numeric)minute (grain)", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> o'clock",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("in|within|after <duration>",- Classifier{okData =- ClassData{prior = -4.652001563489282e-2,- unseen = -4.61512051684126,- likelihoods =- HashMap.fromList- [("week", -3.2188758248682006),- ("<integer> more <unit-of-duration>", -3.912023005428146),- ("three-quarters of an hour", -2.995732273553991),- ("<integer> + '\"", -3.2188758248682006),- ("number.number hours", -3.912023005428146),- ("second", -3.506557897319982), ("day", -3.2188758248682006),- ("half an hour", -2.995732273553991),- ("<integer> <unit-of-duration>", -1.6094379124341003),- ("a <unit-of-duration>", -2.995732273553991),- ("quarter of an hour", -2.995732273553991),- ("hour", -2.5257286443082556),- ("about|exactly <duration>", -3.912023005428146),- ("<integer> and an half hour", -3.912023005428146),- ("minute", -1.2729656758128873)],- n = 42},- koData =- ClassData{prior = -3.0910424533583156, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("quarter", -1.8971199848858813),- ("<integer> <unit-of-duration>", -2.3025850929940455),- ("a <unit-of-duration>", -2.3025850929940455)],- n = 2}}),- ("three-quarters of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Wednesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> + '\"",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("half <integer> (UK style hour-of-day)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("July",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hour (grain)",- Classifier{okData =- ClassData{prior = -0.8209805520698302,- unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),- ("<ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -1.1786549963416462),- ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",- -1.466337068793427),- ("quarter", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.8109302162163288),- ("quarter", -0.8109302162163288)],- n = 3}}),- ("one twenty two",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("intersect",- Classifier{okData =- ClassData{prior = -0.4957877464014501, unseen = -6.293419278846481,- likelihoods =- HashMap.fromList- [("<datetime> - <datetime> (interval)on <date>",- -4.345658990503007),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -4.345658990503007),- ("hourday", -3.8936738667599493),- ("dayhour", -2.765208614942159),- ("daymonth", -4.90527477843843),- ("monthday", -5.19295685089021),- ("monthyear", -3.9889840465642745),- ("Tuesdaythe <day-of-month> (ordinal)", -5.598421958998375),- ("Christmasyear", -5.598421958998375),- ("from <datetime> - <datetime> (interval)July",- -5.598421958998375),- ("houryear", -5.598421958998375),- ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.90527477843843),- ("<time-of-day> am|pmintersect", -4.345658990503007),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -5.598421958998375),- ("Marchyear", -5.598421958998375),- ("<named-month>|<named-day> <day-of-month> (ordinal)year",- -5.19295685089021),- ("intersect<time-of-day> am|pm", -5.598421958998375),- ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.598421958998375),- ("monthhour", -5.19295685089021),- ("last <day-of-week> of <time>year", -5.598421958998375),- ("todayat <time-of-day>", -5.598421958998375),- ("Thursday<time> timezone", -3.8936738667599493),- ("this <time>hh(:mm) - <time-of-day> am|pm",- -5.598421958998375),- ("dayday", -3.58351893845611),- ("Thanksgiving Dayyear", -4.499809670330265),- ("<time> <part-of-day>at <time-of-day>", -5.598421958998375),- ("Tuesdayin <named-month>", -5.598421958998375),- ("mm/ddat <time-of-day>", -5.598421958998375),- ("tonightat <time-of-day>", -5.598421958998375),- ("<time-of-day> am|pmabsorption of , after named day",- -4.90527477843843),- ("today<time-of-day> am|pm", -5.598421958998375),- ("Februarythe <day-of-month> (ordinal)", -5.19295685089021),- ("at <time-of-day><time> <part-of-day>", -5.598421958998375),- ("mm/dd<time-of-day> am|pm", -5.598421958998375),- ("hourhour", -4.345658990503007),- ("<time-of-day> am|pmon <date>", -3.58351893845611),- ("Wednesdaythis|last|next <cycle>", -5.598421958998375),- ("intersect<named-month> <day-of-month> (non ordinal)",- -4.0943445622221),- ("dayyear", -3.1560749236291703),- ("last weekend of <named-month>year", -5.598421958998375),- ("<time-of-day> o'clockin|during the <part-of-day>",- -5.598421958998375),- ("Thursdayat <time-of-day>", -5.19295685089021),- ("<time-of-day> am|pmtomorrow", -4.90527477843843),- ("minutehour", -4.68213122712422),- ("Mother's Dayyear", -5.598421958998375),- ("at <time-of-day>in|during the <part-of-day>",- -5.19295685089021),- ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -3.8936738667599493),- ("for <duration> from <time>December", -5.598421958998375),- ("tomorrow<time-of-day> sharp|exactly", -5.598421958998375),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.68213122712422),- ("on <date><named-month> <day-of-month> (non ordinal)",- -5.19295685089021),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.68213122712422),- ("Mondayin|during the <part-of-day>", -5.598421958998375),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.19295685089021),- ("intersectin|during the <part-of-day>", -5.598421958998375),- ("Thursday<datetime> - <datetime> (interval)",- -4.68213122712422),- ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",- -5.598421958998375),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.345658990503007),- ("from <time-of-day> - <time-of-day> (interval)on <date>",- -4.90527477843843),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -4.68213122712422),- ("at <time-of-day>intersect", -5.19295685089021),- ("<time-of-day> - <time-of-day> (interval)tomorrow",- -5.598421958998375),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.598421958998375),- ("dayminute", -2.924273309571846),- ("from <datetime> - <datetime> (interval)on <date>",- -5.19295685089021),- ("<datetime> - <datetime> (interval)tomorrow",- -5.598421958998375),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.19295685089021),- ("<ordinal> <cycle> of <time>year", -5.598421958998375),- ("minuteday", -2.132686056198648),- ("absorption of , after named dayintersect",- -5.598421958998375),- ("Octoberyear", -4.345658990503007),- ("the <day-of-month> (ordinal)in|during the <part-of-day>",- -5.598421958998375),- ("at <time-of-day>absorption of , after named day",- -5.598421958998375),- ("<day-of-month> (ordinal or number) <named-month>year",- -5.598421958998375),- ("year<time-of-day> am|pm", -5.598421958998375),- ("Septemberyear", -5.19295685089021),- ("at <time-of-day>on <date>", -4.499809670330265),- ("between <time-of-day> and <time-of-day> (interval)on <date>",- -4.90527477843843),- ("Halloweenyear", -5.598421958998375),- ("dayweek", -5.598421958998375),- ("Thursday<time-of-day> am|pm", -5.598421958998375),- ("weekyear", -5.19295685089021),- ("hh:mmin|during the <part-of-day>", -4.90527477843843),- ("Father's Dayyear", -5.598421958998375),- ("<cycle> after|before <time><time-of-day> am|pm",- -5.19295685089021),- ("February<time> <part-of-day>", -5.598421958998375),- ("Martin Luther King's Dayyear", -5.19295685089021),- ("tomorrowat <time-of-day>", -4.90527477843843),- ("between <time> and <time>on <date>", -4.90527477843843),- ("Thursdayfrom|since|after <time-of-day>", -4.90527477843843),- ("at <time-of-day>tomorrow", -5.19295685089021),- ("tomorrow<time-of-day> am|pm", -5.598421958998375),- ("in|during the <part-of-day>at <time-of-day>",- -5.598421958998375),- ("Labor Dayyear", -5.598421958998375),- ("Februaryintersect", -5.598421958998375),- ("last <cycle> of <time>year", -4.90527477843843),- ("<named-month> <day-of-month> (non ordinal)year",- -5.598421958998375),- ("yearminute", -5.598421958998375),- ("Black Fridayyear", -5.19295685089021)],- n = 201},- koData =- ClassData{prior = -0.9392802500988537, unseen = -5.983936280687191,- likelihoods =- HashMap.fromList- [("in <named-month>year", -5.288267030694535),- ("<time-of-day> - <time-of-day> (interval)on <date>",- -5.288267030694535),- ("hourday", -5.288267030694535),- ("<named-month> <day-of-month> (non ordinal)July",- -5.288267030694535),- ("dayhour", -2.890371757896165),- ("daymonth", -3.2088254890146994),- ("monthday", -4.882801922586371),- ("monthyear", -4.59511985013459),- ("intersecthh:mm", -5.288267030694535),- ("from <datetime> - <datetime> (interval)July",- -5.288267030694535),- ("houryear", -5.288267030694535),- ("from <time-of-day> - <time-of-day> (interval)July",- -5.288267030694535),- ("until <time-of-day><time-of-day> am|pm", -5.288267030694535),- ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",- -4.59511985013459),- ("<time-of-day> am|pmintersect", -4.035504062199167),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.37197629882038),- ("from|since|after <time-of-day>on <date>", -4.37197629882038),- ("July<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("absorption of , after named dayJuly", -4.882801922586371),- ("monthhour", -5.288267030694535),- ("hourmonth", -4.59511985013459),- ("todayat <time-of-day>", -5.288267030694535),- ("from|since|after <time-of-day>July", -5.288267030694535),- ("dayday", -4.882801922586371),- ("mm/ddat <time-of-day>", -4.882801922586371),- ("<time-of-day> am|pmon <date>", -4.035504062199167),- ("dayyear", -4.035504062199167),- ("Thursdaymm/dd", -5.288267030694535),- ("Thursdayat <time-of-day>", -4.035504062199167),- ("<integer> to|till|before <hour-of-day>September",- -5.288267030694535),- ("monthminute", -5.288267030694535),- ("<time-of-day> am|pmtomorrow", -5.288267030694535),- ("Thursdayhh:mm", -4.37197629882038),- ("August<day-of-month> (ordinal or number) <named-month>",- -5.288267030694535),- ("Fridayyear", -4.882801922586371),- ("minutemonth", -3.4965075614664802),- ("Sundayfrom|since|after <time-of-day>", -5.288267030694535),- ("Thursdayfrom <datetime> - <datetime> (interval)",- -4.882801922586371),- ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("Aprilyear", -5.288267030694535),- ("mm/dd<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",- -5.288267030694535),- ("<duration> after|before|from <time>December",- -5.288267030694535),- ("yesterday<time-of-day> am|pm", -5.288267030694535),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -4.37197629882038),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -4.882801922586371),- ("<named-month> <day-of-month> (non ordinal)August",- -5.288267030694535),- ("until <time-of-day>on <date>", -4.59511985013459),- ("at <time-of-day>intersect", -4.882801922586371),- ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("dayminute", -2.7625383863862796),- ("intersectSeptember", -3.784189633918261),- ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",- -5.288267030694535),- ("minuteday", -2.3704962986102562),- ("absorption of , after named dayintersect",- -5.288267030694535),- ("Februaryin|during the <part-of-day>", -5.288267030694535),- ("week-endin <named-month>", -5.288267030694535),- ("Octoberyear", -5.288267030694535),- ("from|since|after <time-of-day>year", -5.288267030694535),- ("yearhh:mm", -5.288267030694535),- ("hh:mmon <date>", -3.784189633918261),- ("from|since|after <time-of-day><time-of-day> am|pm",- -5.288267030694535),- ("absorption of , after named daySeptember", -4.37197629882038),- ("on <date>September", -4.882801922586371),- ("at <time-of-day>on <date>", -4.882801922586371),- ("dayweek", -5.288267030694535),- ("Thursday<time-of-day> am|pm", -4.882801922586371),- ("absorption of , after named dayFebruary", -4.37197629882038),- ("July<integer> to|till|before <hour-of-day>",- -5.288267030694535),- ("tomorrowat <time-of-day>", -5.288267030694535),- ("<integer> to|till|before <hour-of-day>July",- -5.288267030694535),- ("Thursdayfrom|since|after <time-of-day>", -3.6788291182604347),- ("tomorrow<time-of-day> am|pm", -5.288267030694535),- ("Tuesdayfrom|since|after <time-of-day>", -5.288267030694535),- ("yearminute", -5.288267030694535)],- n = 129}}),- ("one eleven",- Classifier{okData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("after lunch/work/school",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("early morning",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <number> (implicit minutes)",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.3184537311185346),- ("integer (0..19)", -1.2992829841302609)],- n = 9},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.16251892949777494),- ("integer (0..19)", -1.8971199848858813)],- n = 18}}),- ("<ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.772588722239781,- likelihoods =- HashMap.fromList- [("daymonth", -2.0149030205422647),- ("quarteryear", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)day (grain)October",- -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",- -2.0149030205422647),- ("weekmonth", -1.6094379124341003),- ("ordinal (digits)quarter (grain)year", -2.0149030205422647),- ("ordinals (first..twentieth,thirtieth,...)week (grain)October",- -2.0149030205422647)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("year (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.1354942159291497,- likelihoods = HashMap.fromList [("", 0.0)], n = 21},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -1.0116009116784799,- unseen = -3.6375861597263857,- likelihoods =- HashMap.fromList- [("minuteminute", -2.001480000210124),- ("<day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("hh:mmhh:mm", -2.001480000210124),- ("dayday", -2.512305623976115),- ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",- -2.917770732084279),- ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),- ("hourhour", -2.512305623976115),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],- n = 8},- koData =- ClassData{prior = -0.45198512374305727,- unseen = -3.912023005428146,- likelihoods =- HashMap.fromList- [("hourday", -3.1986731175506815),- ("dayhour", -2.793208009442517),- ("<day-of-month> (ordinal)time-of-day (latent)",- -3.1986731175506815),- ("hh:mmtime-of-day (latent)", -2.2823823856765264),- ("minuteminute", -2.793208009442517),- ("time-of-day (latent)time-of-day (latent)",- -2.793208009442517),- ("dayday", -3.1986731175506815),- ("hourhour", -2.505525936990736),- ("dayyear", -3.1986731175506815),- ("<named-month>|<named-day> <day-of-month> (ordinal)past year (latent)",- -3.1986731175506815),- ("minutehour", -2.2823823856765264),- ("hh:mmintersect", -2.793208009442517),- ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("time-of-day (latent)<time-of-day> am|pm",- -3.1986731175506815),- ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",- -3.1986731175506815),- ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",- -3.1986731175506815)],- n = 14}}),- ("Saturday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",- -1.7346010553881064),- ("weekmonth", -1.7346010553881064),- ("week (grain)October", -1.7346010553881064),- ("week (grain)<named-month> <day-of-month> (non ordinal)",- -1.7346010553881064),- ("weekday", -1.2237754316221157)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("number.number hours",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("from <time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("minuteminute", -1.6094379124341003),- ("hh:mmhh:mm", -1.6094379124341003),- ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),- ("hourhour", -2.3025850929940455),- ("hourminute", -2.3025850929940455),- ("time-of-day (latent)<time-of-day> sharp|exactly",- -2.70805020110221),- ("time-of-day (latent)hh:mm", -2.70805020110221),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],- n = 9},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.6094379124341003),- ("time-of-day (latent)time-of-day (latent)",- -2.0149030205422647),- ("hourhour", -1.791759469228055),- ("minutehour", -1.6094379124341003),- ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],- n = 9}}),- ("integer 21..99",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)", -0.6931471805599453),- ("integer (20..90)integer (0..19)", -0.6931471805599453)],- n = 4}}),- ("yyyy-mm-dd",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("mm/dd/yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -1.6094379124341003,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("Monday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("yesterday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<ordinal> quarter <year>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh:mm:ss",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<hour-of-day> <integer>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("at <time-of-day>integer (20..90)", -1.3862943611198906),- ("hour", -0.9808292530117262),- ("at <time-of-day>integer (numeric)", -1.3862943611198906)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -1.9459101490553135,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>integer (numeric)",- -1.0986122886681098),- ("hour", -1.0986122886681098)],- n = 1}}),- ("nth <time> of <time>",- Classifier{okData =- ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("daymonth", -0.9808292530117262),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -2.0794415416798357),- ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",- -1.6739764335716716),- ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",- -1.6739764335716716)],- n = 5},- koData =- ClassData{prior = -0.9808292530117262,- unseen = -2.5649493574615367,- likelihoods =- HashMap.fromList- [("daymonth", -1.0986122886681098),- ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",- -1.791759469228055),- ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",- -1.3862943611198906)],- n = 3}}),- ("Valentine's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("April",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("end of month",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("week (grain)",- Classifier{okData =- ClassData{prior = -8.004270767353637e-2,- unseen = -3.6375861597263857,- likelihoods = HashMap.fromList [("", 0.0)], n = 36},- koData =- ClassData{prior = -2.5649493574615367,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("<part-of-day> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",- -1.6094379124341003),- ("hourday", -0.916290731874155),- ("part of daysthe <day-of-month> (ordinal)",- -1.6094379124341003),- ("part of daysthe <day-of-month> (number)",- -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("past year (latent)",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 2}}),- ("six thirty six a.m.",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("integer (numeric)", -1.252762968495368),- ("one twenty two", -0.8472978603872037),- ("one eleven", -1.252762968495368)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("now",- Classifier{okData =- ClassData{prior = -0.15415067982725836,- unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -1.9459101490553135,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("<day-of-month> (ordinal or number) of <named-month>",- Classifier{okData =- ClassData{prior = -0.13353139262452263,- unseen = -3.0910424533583156,- likelihoods =- HashMap.fromList- [("ordinal (digits)July", -2.3513752571634776),- ("ordinals (first..twentieth,thirtieth,...)March",- -2.3513752571634776),- ("ordinal (digits)February", -2.3513752571634776),- ("integer (numeric)February", -1.9459101490553135),- ("month", -0.9650808960435872),- ("ordinal (digits)March", -2.3513752571634776),- ("integer (numeric)July", -2.3513752571634776)],- n = 7},- koData =- ClassData{prior = -2.0794415416798357,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("ordinal (digits)February", -1.5040773967762742),- ("month", -1.5040773967762742)],- n = 1}}),- ("this <part-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("hour", -0.6931471805599453),- ("part of days", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Friday",- Classifier{okData =- ClassData{prior = -0.3677247801253174,- unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},- koData =- ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("in|during the <part-of-day>",- Classifier{okData =- ClassData{prior = -8.701137698962981e-2,- unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("early morning", -2.5257286443082556),- ("hour", -0.7339691750802004),- ("part of days", -0.8209805520698302)],- n = 11},- koData =- ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("hour", -0.916290731874155),- ("part of days", -0.916290731874155)],- n = 1}}),- ("tomorrow",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("hh(:mm) - <time-of-day> am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("this|last|next <cycle>",- Classifier{okData =- ClassData{prior = -0.15822400521489416,- unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("week", -1.5488132906176655),- ("month (grain)", -2.995732273553991),- ("year (grain)", -1.817077277212345),- ("week (grain)", -1.5488132906176655),- ("quarter", -2.772588722239781), ("year", -1.817077277212345),- ("month", -2.995732273553991),- ("quarter (grain)", -2.772588722239781)],- n = 35},- koData =- ClassData{prior = -1.9218125974762528,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("week", -1.4816045409242156),- ("week (grain)", -1.4816045409242156),- ("day", -1.9924301646902063),- ("day (grain)", -1.9924301646902063)],- n = 6}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Eve",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("quarteryear", -0.6931471805599453),- ("ordinal (digits)quarter (grain)year", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("by <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("noon|midnight|EOD|end of day", -2.1972245773362196),- ("end of month", -2.1972245773362196),- ("time-of-day (latent)", -2.1972245773362196),- ("<time-of-day> am|pm", -2.1972245773362196),- ("hh:mm", -2.1972245773362196), ("hour", -1.791759469228055),- ("month", -2.1972245773362196), ("minute", -1.791759469228055)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [], n = 0}}),- ("half an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2006706954621511,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("ordinals (first..twentieth,thirtieth,...)",- -1.7047480922384253),- ("ordinal (digits)", -0.2006706954621511)],- n = 9},- koData =- ClassData{prior = -1.7047480922384253,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],- n = 2}}),- ("last weekend of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("October", -0.9555114450274363), ("July", -1.8718021769015913),- ("month", -0.7731898882334817)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <day-of-month> (number)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("fractional number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),- ("Sunday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3025850929940455,- likelihoods = HashMap.fromList [("", 0.0)], n = 8},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("February",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("minute (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.833213344056216,- likelihoods = HashMap.fromList [("", 0.0)], n = 15},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <ordinal> quarter",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)quarter (grain)", -0.6931471805599453),- ("quarter", -0.6931471805599453)],- n = 1}}),- ("time-of-day (latent)",- Classifier{okData =- ClassData{prior = -0.5315058290035293,- unseen = -4.2626798770413155,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.12136085700426748),- ("integer (0..19)", -2.3025850929940455)],- n = 67},- koData =- ClassData{prior = -0.8860508466844369,- unseen = -3.9318256327243257,- likelihoods =- HashMap.fromList- [("integer (numeric)", -0.10536051565782628),- ("integer (0..19)", -2.8134107167600364),- ("integer 21..99", -3.2188758248682006)],- n = 47}}),- ("year",- Classifier{okData =- ClassData{prior = -0.23483959107740107, unseen = -3.58351893845611,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 34},- koData =- ClassData{prior = -1.563975538357343, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 9}}),- ("last <day-of-week> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods =- HashMap.fromList- [("daymonth", -0.916290731874155),- ("SundayMarch", -1.6094379124341003),- ("MondayMarch", -1.6094379124341003),- ("Sundayintersect", -1.6094379124341003)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.1479201300766222,- unseen = -5.0875963352323845,- likelihoods =- HashMap.fromList- [("week", -2.4423470353692043),- ("integer (0..19)year (grain)", -3.289644895756408),- ("integer (numeric)day (grain)", -2.6835090921860925),- ("integer (0..19)second (grain) ", -3.6951100038645723),- ("integer (0..19)hour (grain)", -3.001962823304627),- ("second", -3.289644895756408),- ("integer (numeric)second (grain) ", -3.982792076316353),- ("integer (numeric)year (grain)", -3.6951100038645723),- ("day", -2.4423470353692043), ("year", -2.8841797876482436),- ("integer (numeric)week (grain)", -3.001962823304627),- ("integer (0..19)month (grain)", -3.4719664525503626),- ("hour", -2.5964977151964628), ("month", -3.1354942159291497),- ("integer (numeric)minute (grain)", -3.1354942159291497),- ("integer (0..19)minute (grain)", -3.001962823304627),- ("integer (numeric)month (grain)", -3.982792076316353),- ("minute", -2.4423470353692043),- ("integer (numeric)hour (grain)", -3.4719664525503626),- ("integer (0..19)day (grain)", -3.6951100038645723),- ("integer (0..19)week (grain)", -3.1354942159291497)],- n = 69},- koData =- ClassData{prior = -1.984131361875511, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),- ("integer (numeric)hour (grain)", -1.4087672169719492),- ("integer (0..19)quarter (grain)", -3.1135153092103742)],- n = 11}}),- ("hhmm (latent)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> am|pm",- Classifier{okData =- ClassData{prior = -0.2929871246814741,- unseen = -5.3230099791384085,- likelihoods =- HashMap.fromList- [("integer after|past <hour-of-day>", -3.9318256327243257),- ("at <time-of-day>", -2.2270775404859005),- ("from|since|after <time-of-day>", -3.708682081410116),- ("<time-of-day> o'clock", -4.219507705176107),- ("half after|past <hour-of-day>", -4.219507705176107),- ("time-of-day (latent)", -1.7346010553881064),- ("hhmm (latent)", -4.624972813284271),- ("hh:mm", -2.2735975561207935),- ("quarter after|past <hour-of-day>", -4.624972813284271),- ("about|exactly <time-of-day>", -4.624972813284271),- ("until <time-of-day>", -3.9318256327243257),- ("hour", -1.2237754316221157),- ("<time-of-day> sharp|exactly", -4.624972813284271),- ("minute", -1.7346010553881064)],- n = 94},- koData =- ClassData{prior = -1.3705460041517514, unseen = -4.394449154672439,- likelihoods =- HashMap.fromList- [("<integer> to|till|before <hour-of-day>", -3.283414346005772),- ("from|since|after <time-of-day>", -3.283414346005772),- ("<hour-of-day> <integer>", -3.6888794541139363),- ("time-of-day (latent)", -1.0498221244986778),- ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],- n = 32}}),- ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("ordinal (digits)ordinal (digits)July", -1.252762968495368),- ("integer (numeric)integer (numeric)July", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("Thanksgiving Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of <named-month>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.1972245773362196,- likelihoods =- HashMap.fromList- [("March", -0.6931471805599453), ("month", -0.6931471805599453)],- n = 3},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("a <unit-of-duration>",- Classifier{okData =- ClassData{prior = -0.5753641449035618,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("week", -2.0794415416798357),- ("year (grain)", -2.772588722239781),- ("second", -2.772588722239781),- ("week (grain)", -2.0794415416798357),- ("day", -2.0794415416798357),- ("minute (grain)", -2.772588722239781),- ("year", -2.772588722239781),- ("second (grain) ", -2.772588722239781),- ("minute", -2.772588722239781),- ("day (grain)", -2.0794415416798357)],- n = 9},- koData =- ClassData{prior = -0.8266785731844679, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("hour (grain)", -1.7227665977411035),- ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),- ("quarter (grain)", -1.9459101490553135)],- n = 7}}),- ("hh:mm",- Classifier{okData =- ClassData{prior = -6.782259633876106e-2,- unseen = -4.07753744390572,- likelihoods = HashMap.fromList [("", 0.0)], n = 57},- koData =- ClassData{prior = -2.7245795030534206, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("quarter of an hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("second (grain) ",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinals (first..twentieth,thirtieth,...)",- Classifier{okData =- ClassData{prior = -6.899287148695143e-2,- unseen = -2.772588722239781,- likelihoods = HashMap.fromList [("", 0.0)], n = 14},- koData =- ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("quarter after|past <hour-of-day>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -0.6931471805599453),- ("hour", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("the <cycle> after|before <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("day (grain)tomorrow", -1.252762968495368),- ("dayday", -0.8472978603872037),- ("day (grain)yesterday", -1.252762968495368)],- n = 2},- koData =- ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("about|exactly <time-of-day>",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("week", -2.639057329615259),- ("hh(:mm) - <time-of-day> am|pm", -2.639057329615259),- ("this|last|next <cycle>", -2.639057329615259),- ("day", -2.2335922215070942),- ("time-of-day (latent)", -2.639057329615259),- ("hhmm (latent)", -2.2335922215070942),- ("<time-of-day> am|pm", -2.639057329615259),- ("hour", -1.9459101490553135),- ("next <time>", -2.639057329615259),- ("this|next <day-of-week>", -2.639057329615259),- ("minute", -2.2335922215070942)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.833213344056216,- likelihoods =- HashMap.fromList- [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),- ("time-of-day (latent)", -2.0794415416798357),- ("hour", -2.0794415416798357)],- n = 2}}),- ("intersect by \",\", \"of\", \"from\", \"'s\"",- Classifier{okData =- ClassData{prior = -0.48130318449966897,- unseen = -5.170483995038151,- likelihoods =- HashMap.fromList- [("Wednesday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayhour", -3.2188758248682006),- ("daymonth", -3.2188758248682006),- ("<named-month> <day-of-month> (non ordinal)Friday",- -4.471638793363569),- ("Friday<named-month> <day-of-month> (non ordinal)",- -3.7784916128036232),- ("Wednesdayintersect", -4.471638793363569),- ("Labor Daythis|last|next <cycle>", -4.471638793363569),- ("Black Fridaythis|last|next <cycle>", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"year",- -4.471638793363569),- ("<part-of-day> of <time>February", -4.471638793363569),- ("Saturday<time-of-day> am|pm", -4.471638793363569),- ("Martin Luther King's Daythis|last|next <cycle>",- -4.471638793363569),- ("on <date><time-of-day> am|pm", -4.471638793363569),- ("hourmonth", -4.471638793363569),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.471638793363569),- ("dayday", -2.5998366164619773),- ("the <day-of-month> (ordinal)February", -4.0661736852554045),- ("WednesdayOctober", -4.471638793363569),- ("Wednesdaythis|last|next <cycle>", -4.0661736852554045),- ("intersect<named-month> <day-of-month> (non ordinal)",- -3.5553480614894135),- ("dayyear", -2.8622008809294686),- ("Saturday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.471638793363569),- ("Thursdayhh:mm", -4.0661736852554045),- ("Thanksgiving Daythis|last|next <cycle>", -4.471638793363569),- ("Memorial Daythis|last|next <cycle>", -4.471638793363569),- ("on <date><named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("TuesdayOctober", -4.471638793363569),- ("the <day-of-month> (ordinal)March", -4.471638793363569),- ("Mondaythis|last|next <cycle>", -4.471638793363569),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.0661736852554045),- ("Fridayintersect", -4.471638793363569),- ("Thursday<datetime> - <datetime> (interval)",- -3.7784916128036232),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.5553480614894135),- ("Tuesdaythis|last|next <cycle>", -4.471638793363569),- ("Sunday<named-month> <day-of-month> (non ordinal)",- -4.471638793363569),- ("dayminute", -2.6798793241355137),- ("intersectyear", -4.471638793363569),- ("minuteday", -3.5553480614894135),- ("this|last|next <cycle>Sunday", -4.471638793363569),- ("Sundaythis|last|next <cycle>", -4.471638793363569),- ("intersectintersect", -4.471638793363569),- ("weekday", -4.471638793363569),- ("dayweek", -3.373026504695459),- ("Thursday<time-of-day> am|pm", -4.471638793363569),- ("Monday<named-month> <day-of-month> (non ordinal)",- -4.0661736852554045),- ("<named-month> <day-of-month> (non ordinal)year",- -4.0661736852554045)],- n = 55},- koData =- ClassData{prior = -0.9622758451159785, unseen = -4.897839799950911,- likelihoods =- HashMap.fromList- [("week-endJuly", -4.197201947661808),- ("week-endOctober", -3.5040547671018634),- ("daymonth", -1.9999773703255892),- ("TuesdaySeptember", -4.197201947661808),- ("Wednesdayintersect", -4.197201947661808),- ("hourmonth", -3.0985896589936988),- ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",- -4.197201947661808),- ("Fridaythis|last|next <cycle>", -4.197201947661808),- ("SundayFebruary", -4.197201947661808),- ("WednesdayOctober", -4.197201947661808),- ("week-endintersect", -4.197201947661808),- ("dayyear", -4.197201947661808),- ("FridayJuly", -3.791736839553644),- ("<named-month> <day-of-month> (non ordinal)intersect",- -4.197201947661808),- ("FridaySeptember", -4.197201947661808),- ("WednesdayFebruary", -4.197201947661808),- ("minutemonth", -3.2809112157876537),- ("SundayMarch", -4.197201947661808),- ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",- -4.197201947661808),- ("MondayFebruary", -3.791736839553644),- ("Fridayintersect", -4.197201947661808),- ("Thursday<time-of-day> - <time-of-day> (interval)",- -3.791736839553644),- ("dayminute", -2.810907586541918),- ("SaturdaySeptember", -4.197201947661808),- ("intersectSeptember", -3.2809112157876537),- ("MondayMarch", -4.197201947661808),- ("on <date>September", -3.791736839553644),- ("intersectintersect", -4.197201947661808),- ("Tuesdayintersect", -4.197201947661808),- ("Sundayintersect", -4.197201947661808)],- n = 34}}),- ("last <time>",- Classifier{okData =- ClassData{prior = -0.6286086594223742, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("Father's Day", -2.6026896854443837),- ("Martin Luther King's Day", -2.6026896854443837),- ("Memorial Day", -2.6026896854443837),- ("Mother's Day", -2.6026896854443837),- ("day", -1.2163953243244932), ("Sunday", -2.6026896854443837),- ("Thanksgiving Day", -2.6026896854443837),- ("hour", -2.6026896854443837), ("Tuesday", -2.6026896854443837),- ("week-end", -2.6026896854443837)],- n = 8},- koData =- ClassData{prior = -0.7621400520468967, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Monday", -2.5257286443082556), ("day", -2.120263536200091),- ("Sunday", -2.5257286443082556), ("hour", -1.4271163556401458),- ("week-end", -1.4271163556401458)],- n = 7}}),- ("March",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods = HashMap.fromList [("", 0.0)], n = 17},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<named-month>|<named-day> <day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Octoberordinal (digits)", -2.120263536200091),- ("Thursdayordinal (digits)", -2.5257286443082556),- ("day", -2.120263536200091),- ("Augustordinal (digits)", -2.5257286443082556),- ("Marchordinals (first..twentieth,thirtieth,...)",- -2.120263536200091),- ("Tuesdayordinal (digits)", -2.5257286443082556),- ("month", -1.2729656758128873),- ("Marchordinal (digits)", -2.5257286443082556)],- n = 8},- koData =- ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("from|since|after <time-of-day>ordinal (digits)",- -1.8718021769015913),- ("Augustordinal (digits)", -1.8718021769015913),- ("month", -1.466337068793427)],- n = 2}}),- ("Labor Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month> (ordinal)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [("", 0.0)], n = 6},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("until <time-of-day>",- Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,- likelihoods =- HashMap.fromList- [("time-of-day (latent)", -2.3025850929940455),- ("<time-of-day> am|pm", -1.6094379124341003),- ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),- ("minute", -1.3862943611198906)],- n = 6},- koData =- ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,- likelihoods =- HashMap.fromList- [("intersect", -1.7227665977411035),- ("yesterday", -2.2335922215070942),- ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),- ("hour", -2.639057329615259), ("minute", -1.252762968495368)],- n = 10}}),- ("mm.dd.yyyy",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<duration> after|before|from <time>",- Classifier{okData =- ClassData{prior = -0.35667494393873245,- unseen = -3.4339872044851463,- likelihoods =- HashMap.fromList- [("a <unit-of-duration>now", -2.70805020110221),- ("a <unit-of-duration>Christmas", -2.70805020110221),- ("<integer> <unit-of-duration>today", -2.70805020110221),- ("daysecond", -2.70805020110221),- ("a <unit-of-duration>right now", -2.70805020110221),- ("minutenograin", -2.70805020110221),- ("<integer> <unit-of-duration>Christmas", -2.70805020110221),- ("secondnograin", -2.70805020110221),- ("yearday", -2.0149030205422647),- ("daynograin", -2.70805020110221),- ("<integer> <unit-of-duration>now", -2.3025850929940455)],- n = 7},- koData =- ClassData{prior = -1.2039728043259361,- unseen = -3.1354942159291497,- likelihoods =- HashMap.fromList- [("dayhour", -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal)",- -2.3978952727983707),- ("dayday", -1.9924301646902063),- ("<integer> <unit-of-duration>time-of-day (latent)",- -2.3978952727983707),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -2.3978952727983707)],- n = 3}}),- ("Independence Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("decimal number",- Classifier{okData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),- ("next <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5263605246161616,- likelihoods =- HashMap.fromList- [("Martin Luther King's Day", -2.803360380906535),- ("Halloween", -2.803360380906535),- ("Wednesday", -2.803360380906535),- ("Memorial Day", -2.803360380906535),- ("Monday", -2.803360380906535),- ("Mother's Day", -2.803360380906535),- ("day", -1.0986122886681098),- ("Thanksgiving Day", -2.803360380906535),- ("March", -2.803360380906535), ("month", -2.803360380906535),- ("Tuesday", -2.1102132003465894)],- n = 11},- koData =- ClassData{prior = -infinity, unseen = -2.4849066497880004,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time-of-day> sharp|exactly",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("at <time-of-day>", -2.1400661634962708),- ("time-of-day (latent)", -2.1400661634962708),- ("hhmm (latent)", -2.1400661634962708),- ("<time-of-day> am|pm", -2.1400661634962708),- ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),- ("minute", -1.4469189829363254)],- n = 5},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("negative numbers",- Classifier{okData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0},- koData =- ClassData{prior = 0.0, unseen = -3.332204510175204,- likelihoods =- HashMap.fromList- [("integer (numeric)", -7.696104113612832e-2),- ("integer (0..19)", -2.6026896854443837)],- n = 25}}),- ("about|exactly <duration>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("half an hour", -0.6931471805599453),- ("minute", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("<time> before last|after next",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods =- HashMap.fromList- [("Wednesday", -1.8718021769015913),- ("Friday", -1.466337068793427), ("day", -1.1786549963416462),- ("March", -1.8718021769015913), ("month", -1.8718021769015913)],- n = 4},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("by the end of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("this|last|next <cycle>", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("hhmm (military) am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<datetime> - <datetime> (interval)",- Classifier{okData =- ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,- likelihoods =- HashMap.fromList- [("intersecthh:mm", -3.1918471524802814),- ("intersect<time-of-day> am|pm", -3.1918471524802814),- ("minuteminute", -1.457246097092175),- ("hh:mmhh:mm", -2.093234863812172),- ("dayday", -3.1918471524802814),- ("hourhour", -2.093234863812172),- ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",- -3.1918471524802814),- ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",- -3.597312260588446),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.597312260588446),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),- ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],- n = 26},- koData =- ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,- likelihoods =- HashMap.fromList- [("<named-month> <day-of-month> (non ordinal)July",- -3.1135153092103742),- ("daymonth", -2.70805020110221),- ("from|since|after <time-of-day>intersect", -2.70805020110221),- ("<time-of-day> am|pmintersect", -3.1135153092103742),- ("hh:mm<time-of-day> am|pm", -2.70805020110221),- ("minuteminute", -1.8607523407150064),- ("hourhour", -2.70805020110221),- ("minutehour", -2.70805020110221),- ("hh:mmintersect", -2.1972245773362196),- ("<named-month> <day-of-month> (non ordinal)August",- -3.1135153092103742),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.1135153092103742)],- n = 12}}),- ("Tuesday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("New Year's Day",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),- ("fortnight",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Memorial Day weekend",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("<integer> and an half hour",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("in <named-month>",- Classifier{okData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -1.252762968495368), ("March", -1.252762968495368),- ("month", -0.8472978603872037)],- n = 2},- koData =- ClassData{prior = -0.6931471805599453,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("October", -0.8472978603872037),- ("month", -0.8472978603872037)],- n = 2}}),- ("<time-of-day> - <time-of-day> (interval)",- Classifier{okData =- ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,- likelihoods =- HashMap.fromList- [("minuteminute", -1.529395204760564),- ("hh:mmhh:mm", -1.8971199848858813),- ("<time-of-day> am|pmtime-of-day (latent)",- -2.4849066497880004),- ("hourhour", -1.6964492894237302),- ("from|since|after <time-of-day>time-of-day (latent)",- -3.4011973816621555),- ("from|since|after <time-of-day><time-of-day> am|pm",- -3.4011973816621555),- ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),- ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],- n = 22},- koData =- ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("about|exactly <time-of-day>time-of-day (latent)",- -3.4657359027997265),- ("hh:mmtime-of-day (latent)", -1.7609878105613013),- ("hh:mm<time-of-day> am|pm", -3.0602707946915624),- ("<time-of-day> am|pmtime-of-day (latent)",- -3.4657359027997265),- ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),- ("hourhour", -2.2129729343043585),- ("minutehour", -1.2144441041932315),- ("about|exactly <time-of-day><time-of-day> am|pm",- -3.4657359027997265),- ("from|since|after <time-of-day>time-of-day (latent)",- -2.5494451709255714),- ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),- ("<integer> to|till|before <hour-of-day>time-of-day (latent)",- -3.0602707946915624)],- n = 24}}),- ("military spelled out numbers am|pm",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods =- HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("winter",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("nth <time> after <time>",- Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",- -0.916290731874155)],- n = 1},- koData =- ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,- likelihoods =- HashMap.fromList- [("dayday", -0.916290731874155),- ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",- -0.916290731874155)],- n = 1}}),- ("<named-month> <day-of-month> (non ordinal)",- Classifier{okData =- ClassData{prior = -0.42121346507630353,- unseen = -3.951243718581427,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.5455312716044354),- ("Marchinteger (numeric)", -2.833213344056216),- ("Aprilinteger (numeric)", -3.2386784521643803),- ("month", -0.8407831793660099),- ("Februaryinteger (numeric)", -1.9859154836690123),- ("Septemberinteger (numeric)", -2.833213344056216),- ("Octoberinteger (numeric)", -2.833213344056216),- ("Julyinteger (numeric)", -2.1400661634962708)],- n = 21},- koData =- ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Augustinteger (numeric)", -2.3353749158170367),- ("Marchinteger (numeric)", -2.740840023925201),- ("Aprilinteger (numeric)", -2.740840023925201),- ("month", -0.9490805546971459),- ("from|since|after <time-of-day>integer (numeric)",- -2.3353749158170367),- ("Julyinteger (numeric)", -1.6422277352570913)],- n = 11}}),- ("this|next <day-of-week>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,- likelihoods =- HashMap.fromList- [("Thursday", -2.2512917986064953),- ("Wednesday", -2.2512917986064953),- ("Monday", -1.845826690498331), ("day", -0.8649974374866046),- ("Tuesday", -1.55814461804655)],- n = 7},- koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [], n = 0}}),- ("ordinal (digits)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.5553480614894135,- likelihoods = HashMap.fromList [("", 0.0)], n = 33},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("quarter (grain)",- Classifier{okData =- ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,- likelihoods = HashMap.fromList [("", 0.0)], n = 12},- koData =- ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),- ("last <cycle> of <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("day (grain)October", -1.791759469228055),- ("daymonth", -1.2809338454620642),- ("day (grain)intersect", -1.791759469228055),- ("weekmonth", -1.791759469228055),- ("week (grain)intersect", -2.1972245773362196),- ("week (grain)September", -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("<day-of-month>(ordinal) <named-month> year",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods =- HashMap.fromList- [("ordinal (digits)April", -0.6931471805599453),- ("month", -0.6931471805599453)],- n = 1},- koData =- ClassData{prior = -infinity, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [], n = 0}}),- ("Black Friday",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("Labor Day",- Classifier{okData =- ClassData{prior = -0.2876820724517809,- unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -1.3862943611198906,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("week-end",- Classifier{okData =- ClassData{prior = -1.5040773967762742,- unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -0.25131442828090605,- unseen = -2.1972245773362196,- likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),- ("day (grain)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.2188758248682006,- likelihoods = HashMap.fromList [("", 0.0)], n = 23},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("right now",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.6094379124341003,- likelihoods = HashMap.fromList [("", 0.0)], n = 3},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("for <duration> from <time>",- Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -2.3025850929940455,- likelihoods =- HashMap.fromList- [("<integer> <unit-of-duration><day-of-month> (ordinal)",- -1.5040773967762742),- ("dayday", -1.0986122886681098),- ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",- -1.5040773967762742)],- n = 2},- koData =- ClassData{prior = -1.0986122886681098,- unseen = -2.0794415416798357,- likelihoods =- HashMap.fromList- [("dayhour", -1.252762968495368),- ("<integer> <unit-of-duration>time-of-day (latent)",- -1.252762968495368)],- n = 1}}),- ("between <time> and <time>",- Classifier{okData =- ClassData{prior = -1.0986122886681098,- unseen = -2.4849066497880004,- likelihoods =- HashMap.fromList- [("minuteminute", -1.0116009116784799),- ("hh:mmhh:mm", -1.0116009116784799)],- n = 3},- koData =- ClassData{prior = -0.40546510810816444,- unseen = -2.890371757896165,- likelihoods =- HashMap.fromList- [("hh:mmtime-of-day (latent)", -1.4469189829363254),- ("minuteminute", -1.4469189829363254),- ("minutehour", -1.4469189829363254),- ("hh:mmintersect", -1.4469189829363254)],- n = 6}}),- ("<month> dd-dd (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.4657359027997265,- likelihoods =- HashMap.fromList- [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),- ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",- -2.740840023925201),- ("from|since|after <time-of-day>integer (numeric)integer (numeric)",- -2.740840023925201),- ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",- -2.740840023925201),- ("Augustordinal (digits)integer (numeric)",- -2.3353749158170367),- ("month", -0.8690378470236094),- ("Augustordinal (digits)ordinal (digits)",- -2.3353749158170367)],- n = 12},- koData =- ClassData{prior = -infinity, unseen = -2.0794415416798357,- likelihoods = HashMap.fromList [], n = 0}}),- ("part of days",- Classifier{okData =- ClassData{prior = -4.0821994520255166e-2,- unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},- koData =- ClassData{prior = -3.2188758248682006,- unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),- ("summer",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("dd-dd <month> (interval)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.9444389791664407,- likelihoods =- HashMap.fromList- [("integer (numeric)integer (numeric)September",- -1.791759469228055),- ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),- ("ordinal (digits)ordinal (digits)October",- -2.1972245773362196),- ("integer (numeric)integer (numeric)July", -2.1972245773362196),- ("month", -0.9444616088408514),- ("ordinal (digits)ordinal (digits)August",- -2.1972245773362196)],- n = 6},- koData =- ClassData{prior = -infinity, unseen = -1.9459101490553135,- likelihoods = HashMap.fromList [], n = 0}}),- ("this <time>",- Classifier{okData =- ClassData{prior = 0.0, unseen = -3.258096538021482,- likelihoods =- HashMap.fromList- [("Thursday", -2.5257286443082556),- ("Martin Luther King's Day", -2.5257286443082556),- ("Monday", -2.5257286443082556), ("day", -1.1394342831883648),- ("Thanksgiving Day", -2.5257286443082556),- ("hour", -2.5257286443082556), ("winter", -2.5257286443082556),- ("week-end", -2.5257286443082556),- ("summer", -2.120263536200091)],- n = 8},- koData =- ClassData{prior = -infinity, unseen = -2.3025850929940455,+ [("Bhai Dooj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)noon|midnight|EOD|end of day",+ -0.916290731874155),+ ("hour", -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.13353139262452263,+ unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("hour", -0.7537718023763802),+ ("integer (numeric)time-of-day (latent)", -0.7537718023763802)],+ n = 7}}),+ ("<time> timezone",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -1.824549292051046),+ ("<time-of-day> am|pm", -1.6422277352570913),+ ("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),+ ("minute", -1.824549292051046)],+ n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thursday",+ Classifier{okData =+ ClassData{prior = -9.53101798043249e-2,+ unseen = -3.4657359027997265,+ likelihoods = HashMap.fromList [("", 0.0)], n = 30},+ koData =+ ClassData{prior = -2.3978952727983707,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("integer (numeric)",+ Classifier{okData =+ ClassData{prior = -0.6231370149872965, unseen = -5.645446897643238,+ likelihoods = HashMap.fromList [("", 0.0)], n = 281},+ koData =+ ClassData{prior = -0.7684302409804936,+ unseen = -5.5012582105447265,+ likelihoods = HashMap.fromList [("", 0.0)], n = 243}}),+ ("<duration> hence|ago",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -3.784189633918261,+ likelihoods =+ HashMap.fromList+ [("week", -1.563975538357343), ("day", -1.8152899666382492),+ ("year", -2.662587827025453),+ ("<integer> <unit-of-duration>", -1.0531499145913523),+ ("a <unit-of-duration>", -2.662587827025453),+ ("month", -2.662587827025453),+ ("fortnight", -2.662587827025453)],+ n = 18},+ koData =+ ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("year", -1.466337068793427),+ ("<integer> <unit-of-duration>", -1.1786549963416462),+ ("month", -1.8718021769015913)],+ n = 3}}),+ ("noon|midnight|EOD|end of day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter to|till|before <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.6739764335716716),+ ("dayday", -1.1631508098056809),+ ("day (grain)yesterday", -1.6739764335716716)],+ n = 4},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.6739764335716716),+ ("year (grain)Christmas", -2.0794415416798357),+ ("dayday", -2.0794415416798357),+ ("day (grain)intersect", -1.6739764335716716),+ ("day (grain)Easter Sunday", -2.0794415416798357),+ ("yearday", -2.0794415416798357)],+ n = 4}}),+ ("Easter Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Navaratri",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Martin Luther King's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("integer (20..90)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Shemini Atzeret",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ramadan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lazarus Saturday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect 2 numbers",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("compose by multiplicationinteger (0..19)",+ -0.2231435513142097)],+ n = 3},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("powers of tensinteger (0..19)", -0.2231435513142097)],+ n = 3}}),+ ("mm/yyyy",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("integer after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("hour", -0.8109302162163288),+ ("integer (numeric)time-of-day (latent)", -1.0986122886681098),+ ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom HaShoah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal or number) <named-month>",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)December", -2.1400661634962708),+ ("ordinal (digits)February", -2.1400661634962708),+ ("integer (numeric)April", -2.1400661634962708),+ ("month", -1.4469189829363254)],+ n = 3},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.4011973816621555,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)October", -2.6741486494265287),+ ("ordinal (digits)July", -2.6741486494265287),+ ("integer (numeric)September", -2.268683541318364),+ ("ordinal (digits)August", -2.6741486494265287),+ ("integer (numeric)August", -2.6741486494265287),+ ("ordinal (digits)April", -2.6741486494265287),+ ("month", -1.0647107369924282),+ ("integer (numeric)July", -2.268683541318364)],+ n = 9}}),+ ("<time> <part-of-day>",+ Classifier{okData =+ ClassData{prior = -9.237332013101517e-2,+ unseen = -4.48863636973214,+ likelihoods =+ HashMap.fromList+ [("<day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("dayhour", -1.4816045409242156),+ ("Mondayearly morning", -3.378724525810097),+ ("time-of-day (latent)tonight", -3.378724525810097),+ ("hourhour", -2.3978952727983707),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -3.784189633918261),+ ("todaypart of days", -3.784189633918261),+ ("minutehour", -2.6855773452501515),+ ("at <time-of-day>in|during the <part-of-day>",+ -3.378724525810097),+ ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+ ("Mondayin|during the <part-of-day>", -3.784189633918261),+ ("intersectpart of days", -3.784189633918261),+ ("intersectin|during the <part-of-day>", -3.784189633918261),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -3.784189633918261),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -3.784189633918261),+ ("tomorrowpart of days", -2.3978952727983707),+ ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+ ("time-of-day (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("hhmm (latent)in|during the <part-of-day>",+ -3.784189633918261),+ ("yesterdaypart of days", -3.378724525810097),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -3.784189633918261),+ ("Mondaypart of days", -3.784189633918261)],+ n = 31},+ koData =+ ClassData{prior = -2.4277482359480516,+ unseen = -3.4965075614664802,+ likelihoods =+ HashMap.fromList+ [("yearhour", -2.772588722239781),+ ("monthhour", -2.772588722239781),+ ("hourhour", -2.772588722239781),+ ("year (latent)in|during the <part-of-day>",+ -2.772588722239781),+ ("Februaryin|during the <part-of-day>", -2.772588722239781),+ ("time-of-day (latent)in|during the <part-of-day>",+ -2.772588722239781)],+ n = 3}}),+ ("today",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("mm/dd",+ Classifier{okData =+ ClassData{prior = -1.2729656758128873,+ unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7},+ koData =+ ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+ likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+ ("at <time-of-day>",+ Classifier{okData =+ ClassData{prior = -8.961215868968717e-2,+ unseen = -4.948759890378168,+ likelihoods =+ HashMap.fromList+ [("<time> timezone", -3.8430301339411947),+ ("noon|midnight|EOD|end of day", -3.8430301339411947),+ ("integer after|past <hour-of-day>", -3.8430301339411947),+ ("half after|past <hour-of-day>", -4.248495242049359),+ ("time-of-day (latent)", -1.6835458845878222),+ ("hhmm (latent)", -3.5553480614894135),+ ("<time-of-day> am|pm", -1.8061482066801546),+ ("hh:mm", -3.332204510175204),+ ("about|exactly <time-of-day>", -3.8430301339411947),+ ("hour", -1.0704414117014134),+ ("<time-of-day> sharp|exactly", -4.248495242049359),+ ("minute", -2.05127066471314)],+ n = 64},+ koData =+ ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -1.2321436812926323),+ ("hour", -1.2321436812926323)],+ n = 6}}),+ ("December",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("absorption of , after named day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("on <date>", -2.1972245773362196),+ ("Wednesday", -2.6026896854443837),+ ("Saturday", -2.6026896854443837),+ ("Monday", -2.1972245773362196),+ ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+ ("Sunday", -2.6026896854443837)],+ n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("September",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("tonight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|past|next <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.2626798770413155,+ likelihoods =+ HashMap.fromList+ [("week", -2.456735772821304), ("second", -2.639057329615259),+ ("day", -2.3025850929940455), ("year", -2.639057329615259),+ ("<integer> <unit-of-duration>", -0.7827593392496325),+ ("hour", -2.639057329615259), ("month", -2.639057329615259),+ ("minute", -2.639057329615259)],+ n = 31},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the ides of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("on <date>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -4.204692619390966,+ likelihoods =+ HashMap.fromList+ [("Thursday", -1.4816045409242156),+ ("mm/dd", -3.4965075614664802),+ ("absorption of , after named day", -3.0910424533583156),+ ("intersect", -3.0910424533583156),+ ("Saturday", -2.803360380906535),+ ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+ ("the <day-of-month> (ordinal)", -3.0910424533583156),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -2.803360380906535),+ ("hour", -3.4965075614664802)],+ n = 28},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ -1.791759469228055)],+ n = 4}}),+ ("integer (0..19)",+ Classifier{okData =+ ClassData{prior = -0.11122563511022437,+ unseen = -3.970291913552122,+ likelihoods = HashMap.fromList [("", 0.0)], n = 51},+ koData =+ ClassData{prior = -2.2512917986064953,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+ ("between <time-of-day> and <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.7884573603642702),+ ("hh:mmhh:mm", -0.7884573603642702)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -0.7884573603642702),+ ("minutehour", -0.7884573603642702)],+ n = 9}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Passover",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+ ("Augustordinal (digits)integer (numeric)",+ -1.6094379124341003),+ ("month", -0.916290731874155),+ ("Augustordinal (digits)ordinal (digits)",+ -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("October",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods = HashMap.fromList [("", 0.0)], n = 16},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from|since|after <time-of-day>",+ Classifier{okData =+ ClassData{prior = -1.6094379124341003, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("July", -3.332204510175204),+ ("time-of-day (latent)", -2.4159137783010487),+ ("<time-of-day> am|pm", -2.4159137783010487),+ ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),+ ("month", -2.9267394020670396), ("minute", -2.4159137783010487),+ ("August", -3.332204510175204)],+ n = 14},+ koData =+ ClassData{prior = -0.2231435513142097, unseen = -4.948759890378168,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.8430301339411947),+ ("week", -4.248495242049359),+ ("<day-of-month> (ordinal or number) <named-month>",+ -4.248495242049359),+ ("today", -4.248495242049359),+ ("intersect", -2.3766930651477676),+ ("second", -4.248495242049359), ("now", -3.332204510175204),+ ("tomorrow", -3.8430301339411947),+ ("this|last|next <cycle>", -4.248495242049359),+ ("day", -1.8971199848858813),+ ("time-of-day (latent)", -4.248495242049359),+ ("<time-of-day> am|pm", -3.8430301339411947),+ ("nograin", -3.332204510175204),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ -4.248495242049359),+ ("Easter Sunday", -4.248495242049359),+ ("Christmas", -3.5553480614894135),+ ("hour", -2.995732273553991), ("month", -4.248495242049359),+ ("<datetime> - <datetime> (interval)", -2.8622008809294686),+ ("<time-of-day> - <time-of-day> (interval)",+ -2.5437471498109336),+ ("<named-month> <day-of-month> (non ordinal)",+ -3.8430301339411947),+ ("minute", -1.7635885922613588),+ ("right now", -4.248495242049359),+ ("<month> dd-dd (interval)", -3.5553480614894135),+ ("dd-dd <month> (interval)", -3.8430301339411947)],+ n = 56}}),+ ("month (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.995732273553991,+ likelihoods = HashMap.fromList [("", 0.0)], n = 18},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> more <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)minute (grain)", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> o'clock",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in|within|after <duration>",+ Classifier{okData =+ ClassData{prior = -0.17062551703076334,+ unseen = -4.653960350157523,+ likelihoods =+ HashMap.fromList+ [("week", -3.258096538021482),+ ("<integer> more <unit-of-duration>", -3.951243718581427),+ ("three-quarters of an hour", -3.0349529867072724),+ ("<integer> + '\"", -3.258096538021482),+ ("number.number hours", -3.951243718581427),+ ("second", -3.545778610473263), ("day", -3.258096538021482),+ ("half an hour", -3.0349529867072724),+ ("year", -3.951243718581427),+ ("<integer> <unit-of-duration>", -1.5998684614179497),+ ("a <unit-of-duration>", -3.0349529867072724),+ ("quarter of an hour", -3.0349529867072724),+ ("hour", -2.5649493574615367),+ ("about|exactly <duration>", -3.951243718581427),+ ("<integer> and an half hour", -3.951243718581427),+ ("minute", -1.3121863889661687)],+ n = 43},+ koData =+ ClassData{prior = -1.8523840910444898,+ unseen = -3.5553480614894135,+ likelihoods =+ HashMap.fromList+ [("quarter", -2.4277482359480516), ("year", -1.7346010553881064),+ ("<integer> <unit-of-duration>", -1.7346010553881064),+ ("a <unit-of-duration>", -2.1400661634962708),+ ("month", -2.833213344056216)],+ n = 8}}),+ ("January",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("three-quarters of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Mattu Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Wednesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> + '\"",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half <integer> (UK style hour-of-day)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("July",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hour (grain)",+ Classifier{okData =+ ClassData{prior = -0.8209805520698302,+ unseen = -2.5649493574615367,+ likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ koData =+ ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),+ ("Shavuot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> <duration> hence|ago",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.3862943611198906),+ ("Thanksgiving Day<integer> <unit-of-duration>",+ -1.0986122886681098),+ ("dayyear", -1.3862943611198906),+ ("Diwali<integer> <unit-of-duration>", -1.791759469228055)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -1.1786549963416462),+ ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+ -1.466337068793427),+ ("quarter", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.8109302162163288),+ ("quarter", -0.8109302162163288)],+ n = 3}}),+ ("Boss's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Orthodox Easter Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("one twenty two",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect",+ Classifier{okData =+ ClassData{prior = -0.459704877045161, unseen = -6.704414354964107,+ likelihoods =+ HashMap.fromList+ [("Navaratriyear (latent)", -6.010040932680917),+ ("Ramadanyear (latent)", -6.010040932680917),+ ("<datetime> - <datetime> (interval)on <date>",+ -4.757277964185549),+ ("Bhai Doojyear (latent)", -6.010040932680917),+ ("<time-of-day> - <time-of-day> (interval)on <date>",+ -4.757277964185549),+ ("hourday", -4.305292840442492),+ ("dayhour", -3.092270200596638),+ ("Martin Luther King's Dayyear (latent)", -5.604575824572753),+ ("Shemini Atzeretyear (latent)", -6.010040932680917),+ ("daymonth", -5.316893752120972),+ ("monthday", -5.604575824572753),+ ("monthyear", -4.400603020246817),+ ("Yom Ha'atzmautyear (latent)", -6.010040932680917),+ ("Vijayadashamiyear (latent)", -6.010040932680917),+ ("Thanksgiving Dayyear (latent)", -4.911428644012807),+ ("Thai Pongalyear (latent)", -5.316893752120972),+ ("Thiru Onamyear (latent)", -5.316893752120972),+ ("Tuesdaythe <day-of-month> (ordinal)", -6.010040932680917),+ ("from <datetime> - <datetime> (interval)July",+ -6.010040932680917),+ ("houryear", -5.316893752120972),+ ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+ -6.010040932680917),+ ("Christmas<time-of-day> am|pm", -6.010040932680917),+ ("last <day-of-week> of <time>year (latent)",+ -6.010040932680917),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -5.316893752120972),+ ("<time-of-day> am|pmintersect", -4.757277964185549),+ ("Octoberyear (latent)", -4.757277964185549),+ ("intersect<time-of-day> am|pm", -6.010040932680917),+ ("Mattu Pongalyear (latent)", -6.010040932680917),+ ("Shavuotyear (latent)", -6.010040932680917),+ ("Dhanterasin <named-month>|year", -6.010040932680917),+ ("at <time-of-day>in|within|after <duration>",+ -6.010040932680917),+ ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.010040932680917),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -5.604575824572753),+ ("Marchyear (latent)", -6.010040932680917),+ ("Sukkotyear (latent)", -5.604575824572753),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -6.010040932680917),+ ("Clean Mondayyear (latent)", -5.604575824572753),+ ("monthhour", -5.604575824572753),+ ("todayat <time-of-day>", -6.010040932680917),+ ("Thursday<time> timezone", -4.305292840442492),+ ("this <time>hh(:mm) - <time-of-day> am|pm",+ -6.010040932680917),+ ("Palm SundaySunday", -5.604575824572753),+ ("dayday", -3.812816355344698),+ ("<time> <part-of-day>at <time-of-day>", -6.010040932680917),+ ("mm/ddat <time-of-day>", -6.010040932680917),+ ("tonightat <time-of-day>", -6.010040932680917),+ ("<time-of-day> am|pmabsorption of , after named day",+ -5.316893752120972),+ ("today<time-of-day> am|pm", -6.010040932680917),+ ("Februarythe <day-of-month> (ordinal)", -5.604575824572753),+ ("at <time-of-day><time> <part-of-day>", -6.010040932680917),+ ("mm/dd<time-of-day> am|pm", -6.010040932680917),+ ("hourhour", -4.757277964185549),+ ("<time-of-day> am|pmon <date>", -3.9951379121386528),+ ("Wednesdaythis|last|next <cycle>", -6.010040932680917),+ ("Lentyear (latent)", -6.010040932680917),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -4.505963535904644),+ ("Boghiyear (latent)", -6.010040932680917),+ ("dayyear", -2.011840231011719),+ ("<time-of-day> o'clockin|during the <part-of-day>",+ -6.010040932680917),+ ("Thursdayat <time-of-day>", -5.604575824572753),+ ("Islamic New Yearyear (latent)", -5.604575824572753),+ ("Laylat al-Qadryear (latent)", -5.093750200806762),+ ("Chhathin <named-month>|year", -6.010040932680917),+ ("Vasant Panchamiin <named-month>|year", -6.010040932680917),+ ("Diwaliin <named-month>|year", -6.010040932680917),+ ("Shrove Tuesdayyear (latent)", -6.010040932680917),+ ("<time-of-day> am|pmtomorrow", -5.316893752120972),+ ("Yom Kippuryear (latent)", -6.010040932680917),+ ("<part-of-day> of <time>year (latent)", -6.010040932680917),+ ("minutehour", -5.093750200806762),+ ("Kaanum Pongalyear (latent)", -5.604575824572753),+ ("Maha Saptamiyear (latent)", -6.010040932680917),+ ("at <time-of-day>in|during the <part-of-day>",+ -5.604575824572753),+ ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+ -4.305292840442492),+ ("for <duration> from <time>December", -6.010040932680917),+ ("tomorrow<time-of-day> sharp|exactly", -6.010040932680917),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.093750200806762),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -5.604575824572753),+ ("Pentecostyear (latent)", -6.010040932680917),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.093750200806762),+ ("Eid al-Fitryear (latent)", -6.010040932680917),+ ("Mondayin|during the <part-of-day>", -6.010040932680917),+ ("Raksha Bandhanyear (latent)", -6.010040932680917),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.604575824572753),+ ("Navaratriin <named-month>|year", -6.010040932680917),+ ("Ashurayear (latent)", -6.010040932680917),+ ("Chinese New Yearyear (latent)", -6.010040932680917),+ ("Sundayyear (latent)", -6.010040932680917),+ ("Lag BaOmeryear (latent)", -6.010040932680917),+ ("last weekend of <named-month>year (latent)",+ -6.010040932680917),+ ("Eid al-Adhayear (latent)", -5.093750200806762),+ ("intersectin|during the <part-of-day>", -6.010040932680917),+ ("Christmasat <time-of-day>", -6.010040932680917),+ ("Passoveryear (latent)", -6.010040932680917),+ ("Lazarus Saturdayyear (latent)", -6.010040932680917),+ ("<day-of-month> (ordinal or number) <named-month>year (latent)",+ -6.010040932680917),+ ("Yom HaShoahyear (latent)", -5.604575824572753),+ ("Thursday<datetime> - <datetime> (interval)",+ -5.093750200806762),+ ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+ -6.010040932680917),+ ("Thai Pongalin <named-month>|year", -6.010040932680917),+ ("Septemberyear (latent)", -5.604575824572753),+ ("mm/ddyear (latent)", -6.010040932680917),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -4.757277964185549),+ ("Halloweenyear (latent)", -6.010040932680917),+ ("from <time-of-day> - <time-of-day> (interval)on <date>",+ -5.316893752120972),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -5.093750200806762),+ ("at <time-of-day>intersect", -5.604575824572753),+ ("Rosh Hashanahyear (latent)", -6.010040932680917),+ ("Dhanterasyear (latent)", -6.010040932680917),+ ("Tu BiShvatyear (latent)", -6.010040932680917),+ ("Holiyear (latent)", -5.316893752120972),+ ("<time-of-day> - <time-of-day> (interval)tomorrow",+ -6.010040932680917),+ ("Holika Dahanyear (latent)", -5.316893752120972),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -6.010040932680917),+ ("dayminute", -3.3709836030656586),+ ("Mawlidyear (latent)", -6.010040932680917),+ ("from <datetime> - <datetime> (interval)on <date>",+ -5.604575824572753),+ ("<datetime> - <datetime> (interval)tomorrow",+ -6.010040932680917),+ ("Jumu'atul-Widayear (latent)", -5.093750200806762),+ ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+ -6.010040932680917),+ ("minuteday", -2.3724547729545318),+ ("absorption of , after named dayintersect",+ -6.010040932680917),+ ("intersectyear (latent)", -6.010040932680917),+ ("Orthodox Easter Sundayyear (latent)", -6.010040932680917),+ ("<ordinal> <cycle> of <time>year (latent)",+ -6.010040932680917),+ ("the <day-of-month> (ordinal)in|during the <part-of-day>",+ -6.010040932680917),+ ("Boss's Dayyear (latent)", -5.604575824572753),+ ("Tisha B'Avyear (latent)", -6.010040932680917),+ ("Isra and Mi'rajyear (latent)", -5.093750200806762),+ ("at <time-of-day>absorption of , after named day",+ -6.010040932680917),+ ("Christmasyear (latent)", -5.604575824572753),+ ("Naraka Chaturdashiyear (latent)", -5.604575824572753),+ ("at <time-of-day>on <date>", -4.911428644012807),+ ("between <time-of-day> and <time-of-day> (interval)on <date>",+ -4.400603020246817),+ ("dayweek", -6.010040932680917),+ ("Easter Sundayyear (latent)", -5.316893752120972),+ ("Thursday<time-of-day> am|pm", -6.010040932680917),+ ("weekyear", -5.604575824572753),+ ("hh:mmin|during the <part-of-day>", -5.316893752120972),+ ("<cycle> after|before <time><time-of-day> am|pm",+ -5.604575824572753),+ ("Hanukkahyear (latent)", -6.010040932680917),+ ("February<time> <part-of-day>", -6.010040932680917),+ ("Tuesdayin <named-month>|year", -6.010040932680917),+ ("Great Lentyear (latent)", -6.010040932680917),+ ("tomorrowat <time-of-day>", -5.316893752120972),+ ("between <time> and <time>on <date>", -4.400603020246817),+ ("Thursdayfrom|since|after <time-of-day>", -5.316893752120972),+ ("last <cycle> of <time>year (latent)", -5.316893752120972),+ ("at <time-of-day>tomorrow", -5.604575824572753),+ ("tomorrow<time-of-day> am|pm", -6.010040932680917),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -6.010040932680917),+ ("Diwaliyear (latent)", -6.010040932680917),+ ("Black Fridayyear (latent)", -5.604575824572753),+ ("in|during the <part-of-day>at <time-of-day>",+ -6.010040932680917),+ ("Chhathyear (latent)", -5.604575824572753),+ ("Vasant Panchamiyear (latent)", -6.010040932680917),+ ("Palm Sundayintersect", -6.010040932680917),+ ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+ -6.010040932680917),+ ("Februaryintersect", -6.010040932680917),+ ("Simchat Torahyear (latent)", -6.010040932680917)],+ n = 305},+ koData =+ ClassData{prior = -0.9982331033604875, unseen = -6.331501849893691,+ likelihoods =+ HashMap.fromList+ [("<time-of-day> - <time-of-day> (interval)on <date>",+ -5.636573724962751),+ ("hourday", -5.636573724962751),+ ("<named-month> <day-of-month> (non ordinal)July",+ -5.636573724962751),+ ("dayhour", -3.1942266895935467),+ ("daymonth", -3.5571321832829152),+ ("monthday", -5.231108616854587),+ ("monthyear", -4.383810756467383),+ ("<time-of-day> am|pmyear (latent)", -5.231108616854587),+ ("Thai Pongalyear (latent)", -4.943426544402806),+ ("intersecthh:mm", -5.636573724962751),+ ("from <datetime> - <datetime> (interval)July",+ -5.636573724962751),+ ("houryear", -4.720282993088596),+ ("from <time-of-day> - <time-of-day> (interval)July",+ -5.636573724962751),+ ("until <time-of-day><time-of-day> am|pm", -5.636573724962751),+ ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.943426544402806),+ ("<time-of-day> am|pmintersect", -4.383810756467383),+ ("Octoberyear (latent)", -5.636573724962751),+ ("from|since|after <time-of-day>year (latent)",+ -4.383810756467383),+ ("from|since|after <time-of-day>on <date>", -4.720282993088596),+ ("July<day-of-month> (ordinal or number) <named-month>",+ -5.636573724962751),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -4.383810756467383),+ ("about|exactly <time-of-day>year (latent)",+ -5.636573724962751),+ ("absorption of , after named dayJuly", -5.231108616854587),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.720282993088596),+ ("Clean Mondayyear (latent)", -5.636573724962751),+ ("monthhour", -5.636573724962751),+ ("hourmonth", -4.943426544402806),+ ("todayat <time-of-day>", -5.636573724962751),+ ("from|since|after <time-of-day>July", -5.636573724962751),+ ("Mondayyear (latent)", -4.943426544402806),+ ("dayday", -5.231108616854587),+ ("mm/ddat <time-of-day>", -5.231108616854587),+ ("<time-of-day> am|pmon <date>", -4.383810756467383),+ ("dayyear", -2.66615925939305),+ ("Thursdaymm/dd", -5.636573724962751),+ ("New Year's Dayyear (latent)", -5.231108616854587),+ ("Thursdayat <time-of-day>", -4.383810756467383),+ ("<integer> to|till|before <hour-of-day>September",+ -5.636573724962751),+ ("Aprilyear (latent)", -5.636573724962751),+ ("monthminute", -5.636573724962751),+ ("<time-of-day> am|pmtomorrow", -5.636573724962751),+ ("Thursdayhh:mm", -4.720282993088596),+ ("August<day-of-month> (ordinal or number) <named-month>",+ -5.636573724962751),+ ("minutemonth", -3.844814255734696),+ ("Sundayfrom|since|after <time-of-day>", -5.636573724962751),+ ("week-endin <named-month>|year", -5.636573724962751),+ ("Augustyear (latent)", -5.231108616854587),+ ("Thursdayfrom <datetime> - <datetime> (interval)",+ -5.231108616854587),+ ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+ -5.231108616854587),+ ("mm/dd<time-of-day> - <time-of-day> (interval)",+ -5.231108616854587),+ ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+ -5.636573724962751),+ ("Sundayyear (latent)", -4.943426544402806),+ ("Christmasat <time-of-day>", -5.636573724962751),+ ("<duration> after|before|from <time>December",+ -5.636573724962751),+ ("yesterday<time-of-day> am|pm", -5.636573724962751),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -4.720282993088596),+ ("mm/ddyear (latent)", -5.636573724962751),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -5.231108616854587),+ ("<named-month> <day-of-month> (non ordinal)August",+ -5.636573724962751),+ ("until <time-of-day>on <date>", -4.943426544402806),+ ("at <time-of-day>intersect", -5.231108616854587),+ ("hh:mmyear (latent)", -4.537961436294641),+ ("Holiyear (latent)", -5.636573724962751),+ ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+ -5.636573724962751),+ ("dayminute", -3.1516670751747506),+ ("intersectSeptember", -4.132496328186477),+ ("minuteday", -2.568520789829134),+ ("absorption of , after named dayintersect",+ -5.636573724962751),+ ("Februaryin|during the <part-of-day>", -5.636573724962751),+ ("hh:mmon <date>", -3.6216707044204863),+ ("Saturdayyear (latent)", -5.636573724962751),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -5.636573724962751),+ ("absorption of , after named daySeptember",+ -4.720282993088596),+ ("Naraka Chaturdashiyear (latent)", -5.636573724962751),+ ("on <date>September", -5.231108616854587),+ ("at <time-of-day>on <date>", -5.231108616854587),+ ("in <named-month>|yearyear (latent)", -5.636573724962751),+ ("dayweek", -5.636573724962751),+ ("Easter Sundayyear (latent)", -5.231108616854587),+ ("Thursday<time-of-day> am|pm", -5.231108616854587),+ ("absorption of , after named dayFebruary", -4.720282993088596),+ ("July<integer> to|till|before <hour-of-day>",+ -5.636573724962751),+ ("tomorrowat <time-of-day>", -5.636573724962751),+ ("<integer> to|till|before <hour-of-day>July",+ -5.636573724962751),+ ("Thursdayfrom|since|after <time-of-day>", -4.027135812528651),+ ("tomorrow<time-of-day> am|pm", -5.636573724962751),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -4.943426544402806),+ ("Diwaliyear (latent)", -5.231108616854587),+ ("Tuesdayfrom|since|after <time-of-day>", -5.636573724962751),+ ("Fridayyear (latent)", -5.231108616854587),+ ("minuteyear", -4.383810756467383)],+ n = 178}}),+ ("one eleven",+ Classifier{okData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("after lunch/work/school",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("early morning",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <number> (implicit minutes)",+ Classifier{okData =+ ClassData{prior = -1.2685113254635072,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.3184537311185346),+ ("integer (0..19)", -1.2992829841302609)],+ n = 9},+ koData =+ ClassData{prior = -0.33024168687057687,+ unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.1743533871447778),+ ("integer (0..19)", -1.8325814637483102)],+ n = 23}}),+ ("<ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.791759469228055),+ ("ordinal (digits)quarter (grain)year (latent)",+ -2.1972245773362196),+ ("quarteryear", -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+ -2.1972245773362196),+ ("ordinal (digits)day (grain)this|last|next <cycle>",+ -2.1972245773362196),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+ -2.1972245773362196),+ ("weekmonth", -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+ -2.1972245773362196)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4011973816621555,+ likelihoods = HashMap.fromList [("", 0.0)], n = 28},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -1.0116009116784799,+ unseen = -3.6375861597263857,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -2.001480000210124),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("hh:mmhh:mm", -2.001480000210124),+ ("dayday", -2.512305623976115),+ ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+ -2.917770732084279),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+ ("hourhour", -2.512305623976115),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+ n = 8},+ koData =+ ClassData{prior = -0.45198512374305727,+ unseen = -3.912023005428146,+ likelihoods =+ HashMap.fromList+ [("hourday", -3.1986731175506815),+ ("dayhour", -2.793208009442517),+ ("<day-of-month> (ordinal)time-of-day (latent)",+ -3.1986731175506815),+ ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+ -3.1986731175506815),+ ("hh:mmtime-of-day (latent)", -2.2823823856765264),+ ("minuteminute", -2.793208009442517),+ ("time-of-day (latent)time-of-day (latent)",+ -2.793208009442517),+ ("dayday", -3.1986731175506815),+ ("hourhour", -2.505525936990736),+ ("dayyear", -3.1986731175506815),+ ("minutehour", -2.2823823856765264),+ ("hh:mmintersect", -2.793208009442517),+ ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("time-of-day (latent)<time-of-day> am|pm",+ -3.1986731175506815),+ ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+ -3.1986731175506815),+ ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+ -3.1986731175506815)],+ n = 14}}),+ ("Saturday",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.9459101490553135,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("the <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+ -1.7346010553881064),+ ("weekmonth", -1.7346010553881064),+ ("week (grain)October", -1.7346010553881064),+ ("week (grain)<named-month> <day-of-month> (non ordinal)",+ -1.7346010553881064),+ ("weekday", -1.2237754316221157)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("number.number hours",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.6094379124341003),+ ("hh:mmhh:mm", -1.6094379124341003),+ ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+ ("hourhour", -2.3025850929940455),+ ("hourminute", -2.3025850929940455),+ ("time-of-day (latent)<time-of-day> sharp|exactly",+ -2.70805020110221),+ ("time-of-day (latent)hh:mm", -2.70805020110221),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+ n = 9},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.6094379124341003),+ ("time-of-day (latent)time-of-day (latent)",+ -2.0149030205422647),+ ("hourhour", -1.791759469228055),+ ("minutehour", -1.6094379124341003),+ ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+ n = 9}}),+ ("integer 21..99",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)", -0.6931471805599453),+ ("integer (20..90)integer (0..19)", -0.6931471805599453)],+ n = 4}}),+ ("Tisha B'Av",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("yyyy-mm-dd",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("year (latent)",+ Classifier{okData =+ ClassData{prior = -0.16454938704815686,+ unseen = -4.852030263919617,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -4.839654086185021e-2),+ ("intersect 2 numbers", -3.457892725338701)],+ n = 123},+ koData =+ ClassData{prior = -1.8856912890622586, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.3121863889661687),+ ("negative numbers", -0.6190392084062235),+ ("compose by multiplication", -1.8718021769015913)],+ n = 22}}),+ ("mm/dd/yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Monday",+ Classifier{okData =+ ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.2237754316221157,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+ ("yesterday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<ordinal> quarter <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm:ss",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Hanukkah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<hour-of-day> <integer>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>integer (20..90)", -1.3862943611198906),+ ("hour", -0.9808292530117262),+ ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>integer (numeric)",+ -1.0986122886681098),+ ("hour", -1.0986122886681098)],+ n = 1}}),+ ("nth <time> of <time>",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.9808292530117262),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -2.0794415416798357),+ ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+ -1.6739764335716716),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+ -1.6739764335716716)],+ n = 5},+ koData =+ ClassData{prior = -0.9808292530117262,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("daymonth", -1.0986122886681098),+ ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+ -1.791759469228055),+ ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+ -1.3862943611198906)],+ n = 3}}),+ ("Valentine's Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("April",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maha Saptami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week (grain)",+ Classifier{okData =+ ClassData{prior = -4.0821994520255166e-2,+ unseen = -4.304065093204169,+ likelihoods = HashMap.fromList [("", 0.0)], n = 72},+ koData =+ ClassData{prior = -3.2188758248682006,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("<part-of-day> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+ -2.3513752571634776),+ ("part of daysintersect", -2.3513752571634776),+ ("hourday", -0.9650808960435872),+ ("part of daysthe <day-of-month> (ordinal)",+ -2.3513752571634776),+ ("part of daysthe <day-of-month> (number)",+ -2.3513752571634776),+ ("part of daysthis <time>", -2.3513752571634776),+ ("part of daysChristmas", -1.9459101490553135)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("six thirty six a.m.",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -1.252762968495368),+ ("one twenty two", -0.8472978603872037),+ ("one eleven", -1.252762968495368)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Shrove Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("now",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("<day-of-month> (ordinal or number) of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.13353139262452263,+ unseen = -3.0910424533583156,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.3513752571634776),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.3513752571634776),+ ("ordinal (digits)February", -2.3513752571634776),+ ("integer (numeric)February", -1.9459101490553135),+ ("month", -0.9650808960435872),+ ("ordinal (digits)March", -2.3513752571634776),+ ("integer (numeric)July", -2.3513752571634776)],+ n = 7},+ koData =+ ClassData{prior = -2.0794415416798357,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.5040773967762742),+ ("month", -1.5040773967762742)],+ n = 1}}),+ ("this <part-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("hour", -0.6931471805599453),+ ("part of days", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Kaanum Pongal",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Yom Kippur",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("powers of tens",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Friday",+ Classifier{okData =+ ClassData{prior = -0.3677247801253174,+ unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ koData =+ ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("in|during the <part-of-day>",+ Classifier{okData =+ ClassData{prior = -8.701137698962981e-2,+ unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("early morning", -2.5257286443082556),+ ("hour", -0.7339691750802004),+ ("part of days", -0.8209805520698302)],+ n = 11},+ koData =+ ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("hour", -0.916290731874155),+ ("part of days", -0.916290731874155)],+ n = 1}}),+ ("tomorrow",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh(:mm) - <time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|last|next <cycle>",+ Classifier{okData =+ ClassData{prior = -7.598590697792199e-2,+ unseen = -5.093750200806762,+ likelihoods =+ HashMap.fromList+ [("week", -1.1173044216802621),+ ("month (grain)", -2.7850112422383386),+ ("year (grain)", -2.6026896854443837),+ ("week (grain)", -1.1173044216802621),+ ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),+ ("month", -2.7850112422383386),+ ("quarter (grain)", -3.4781584227982836)],+ n = 76},+ koData =+ ClassData{prior = -2.6149597780361984,+ unseen = -3.1354942159291497,+ likelihoods =+ HashMap.fromList+ [("week", -1.4816045409242156),+ ("week (grain)", -1.4816045409242156),+ ("day", -1.9924301646902063),+ ("day (grain)", -1.9924301646902063)],+ n = 6}}),+ ("Simchat Torah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Eve",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)year (latent)",+ -0.6931471805599453),+ ("quarteryear", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Raksha Bandhan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Ashura",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Palm Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Adha",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods =+ HashMap.fromList+ [("noon|midnight|EOD|end of day", -1.9459101490553135),+ ("time-of-day (latent)", -1.9459101490553135),+ ("<time-of-day> am|pm", -1.9459101490553135),+ ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+ ("minute", -1.540445040947149)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("half an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2006706954621511,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinals (first..twentieth,thirtieth,...)",+ -1.7047480922384253),+ ("ordinal (digits)", -0.2006706954621511)],+ n = 9},+ koData =+ ClassData{prior = -1.7047480922384253,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],+ n = 2}}),+ ("last weekend of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("October", -0.9555114450274363), ("July", -1.8718021769015913),+ ("month", -0.7731898882334817)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <day-of-month> (number)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lag BaOmer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("fractional number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+ ("Sunday",+ Classifier{okData =+ ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Chinese New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("February",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.70805020110221,+ likelihoods = HashMap.fromList [("", 0.0)], n = 13},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("minute (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.833213344056216,+ likelihoods = HashMap.fromList [("", 0.0)], n = 15},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last|this|next <season>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <ordinal> quarter",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453,+ unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)quarter (grain)", -0.6931471805599453),+ ("quarter", -0.6931471805599453)],+ n = 1}}),+ ("time-of-day (latent)",+ Classifier{okData =+ ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -0.11778303565638351),+ ("integer (0..19)", -2.330755969960742)],+ n = 69},+ koData =+ ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -9.352605801082348e-2),+ ("integer (0..19)", -2.9267394020670396),+ ("integer 21..99", -3.332204510175204)],+ n = 53}}),+ ("beginning of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("last <day-of-week> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("daymonth", -0.916290731874155),+ ("SundayMarch", -1.6094379124341003),+ ("MondayMarch", -1.6094379124341003),+ ("Sundayintersect", -1.6094379124341003)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.13036181786324358,+ unseen = -5.204006687076795,+ likelihoods =+ HashMap.fromList+ [("week", -2.5594397016505672),+ ("integer (0..19)year (grain)", -3.11905548958599),+ ("integer (numeric)day (grain)", -2.8006017584674554),+ ("integer (0..19)second (grain) ", -3.8122026701459353),+ ("integer (0..19)hour (grain)", -3.11905548958599),+ ("second", -3.4067375620377707),+ ("integer (numeric)second (grain) ", -4.099884742597716),+ ("integer (numeric)year (grain)", -3.11905548958599),+ ("day", -2.4904468301636156), ("year", -2.4904468301636156),+ ("integer (numeric)week (grain)", -3.11905548958599),+ ("integer (0..19)month (grain)", -3.5890591188317256),+ ("hour", -2.7135903814778253), ("month", -2.89591193827178),+ ("integer (numeric)minute (grain)", -3.2525868822105126),+ ("integer (0..19)minute (grain)", -3.11905548958599),+ ("integer (numeric)month (grain)", -3.4067375620377707),+ ("minute", -2.5594397016505672),+ ("integer (numeric)hour (grain)", -3.5890591188317256),+ ("integer (0..19)day (grain)", -3.5890591188317256),+ ("integer (0..19)week (grain)", -3.2525868822105126)],+ n = 79},+ koData =+ ClassData{prior = -2.1019143975318944, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+ ("integer (numeric)hour (grain)", -1.4087672169719492),+ ("integer (0..19)quarter (grain)", -3.1135153092103742)],+ n = 11}}),+ ("hhmm (latent)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> am|pm",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,+ likelihoods =+ HashMap.fromList+ [("integer after|past <hour-of-day>", -3.951243718581427),+ ("at <time-of-day>", -2.202043863772168),+ ("from|since|after <time-of-day>", -3.7281001672672174),+ ("<time-of-day> o'clock", -4.238925791033208),+ ("half after|past <hour-of-day>", -4.238925791033208),+ ("time-of-day (latent)", -1.7266201670570935),+ ("hhmm (latent)", -4.6443908991413725),+ ("hh:mm", -2.293015641977895),+ ("quarter after|past <hour-of-day>", -4.6443908991413725),+ ("about|exactly <time-of-day>", -4.6443908991413725),+ ("until <time-of-day>", -3.951243718581427),+ ("hour", -1.2104036946562264),+ ("<time-of-day> sharp|exactly", -4.6443908991413725),+ ("minute", -1.754019141245208)],+ n = 96},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,+ likelihoods =+ HashMap.fromList+ [("<integer> to|till|before <hour-of-day>", -3.283414346005772),+ ("from|since|after <time-of-day>", -3.283414346005772),+ ("<hour-of-day> <integer>", -3.6888794541139363),+ ("time-of-day (latent)", -1.0498221244986778),+ ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],+ n = 32}}),+ ("Yom Ha'atzmaut",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+ ("integer (numeric)integer (numeric)July", -1.252762968495368),+ ("month", -0.8472978603872037)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thiru Onam",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thai Pongal",+ Classifier{okData =+ ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -0.8472978603872037,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Vijayadashami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Thanksgiving Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods = HashMap.fromList [("", 0.0)], n = 17},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of <named-month>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods =+ HashMap.fromList+ [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("a <unit-of-duration>",+ Classifier{okData =+ ClassData{prior = -0.49247648509779407,+ unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("week", -2.1972245773362196),+ ("year (grain)", -2.1972245773362196),+ ("second", -2.890371757896165),+ ("week (grain)", -2.1972245773362196),+ ("day", -2.1972245773362196),+ ("minute (grain)", -2.890371757896165),+ ("year", -2.1972245773362196),+ ("second (grain) ", -2.890371757896165),+ ("minute", -2.890371757896165),+ ("day (grain)", -2.1972245773362196)],+ n = 11},+ koData =+ ClassData{prior = -0.9444616088408514, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("hour (grain)", -1.7227665977411035),+ ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+ ("quarter (grain)", -1.9459101490553135)],+ n = 7}}),+ ("at the beginning|end of <year>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods =+ HashMap.fromList+ [("year (latent)", -0.6931471805599453),+ ("year", -0.6931471805599453)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Dhanteras",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Tu BiShvat",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Whit Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hh:mm",+ Classifier{okData =+ ClassData{prior = -5.6352936551131744e-2,+ unseen = -4.2626798770413155,+ likelihoods = HashMap.fromList [("", 0.0)], n = 69},+ koData =+ ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("Holi",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Rosh Hashanah",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Holika Dahan",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter of an hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("second (grain) ",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinals (first..twentieth,thirtieth,...)",+ Classifier{okData =+ ClassData{prior = -6.899287148695143e-2,+ unseen = -2.772588722239781,+ likelihoods = HashMap.fromList [("", 0.0)], n = 14},+ koData =+ ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("Mawlid",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Jumu'atul-Wida",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter after|past <hour-of-day>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -0.6931471805599453),+ ("hour", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("the <cycle> after|before <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("day (grain)tomorrow", -1.252762968495368),+ ("dayday", -0.8472978603872037),+ ("day (grain)yesterday", -1.252762968495368)],+ n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("about|exactly <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.15415067982725836,+ unseen = -3.6109179126442243,+ likelihoods =+ HashMap.fromList+ [("week", -1.791759469228055),+ ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+ ("this|last|next <cycle>", -1.791759469228055),+ ("day", -2.4849066497880004),+ ("time-of-day (latent)", -2.890371757896165),+ ("hhmm (latent)", -2.4849066497880004),+ ("<time-of-day> am|pm", -2.890371757896165),+ ("hour", -2.1972245773362196),+ ("next <time>", -2.890371757896165),+ ("this|next <day-of-week>", -2.890371757896165),+ ("minute", -2.4849066497880004)],+ n = 12},+ koData =+ ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+ likelihoods =+ HashMap.fromList+ [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+ ("time-of-day (latent)", -2.0794415416798357),+ ("hour", -2.0794415416798357)],+ n = 2}}),+ ("Sukkot",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day> in <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods =+ HashMap.fromList+ [("daymonth", -2.3025850929940455),+ ("monthyear", -1.8971199848858813),+ ("Marcha <unit-of-duration>", -2.3025850929940455),+ ("March<integer> <unit-of-duration>", -2.3025850929940455),+ ("Thanksgiving Daya <unit-of-duration>", -2.3025850929940455),+ ("Thanksgiving Day<integer> <unit-of-duration>",+ -1.8971199848858813),+ ("Vijayadashami<integer> <unit-of-duration>",+ -2.3025850929940455),+ ("dayyear", -1.6094379124341003)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("World Vegan Day",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("intersect by \",\", \"of\", \"from\", \"'s\"",+ Classifier{okData =+ ClassData{prior = -0.4700036292457356, unseen = -5.081404364984463,+ likelihoods =+ HashMap.fromList+ [("Wednesday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("dayhour", -3.1292636661785136),+ ("daymonth", -3.1292636661785136),+ ("<named-month> <day-of-month> (non ordinal)Friday",+ -4.382026634673881),+ ("Friday<named-month> <day-of-month> (non ordinal)",+ -3.6888794541139363),+ ("Wednesdayintersect", -4.382026634673881),+ ("Black Fridaythis|last|next <cycle>", -4.382026634673881),+ ("<part-of-day> of <time>February", -4.382026634673881),+ ("Saturday<time-of-day> am|pm", -4.382026634673881),+ ("Martin Luther King's Daythis|last|next <cycle>",+ -3.9765615265657175),+ ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+ -4.382026634673881),+ ("on <date><time-of-day> am|pm", -4.382026634673881),+ ("hourmonth", -4.382026634673881),+ ("dayday", -2.5102244577722903),+ ("the <day-of-month> (ordinal)February", -3.9765615265657175),+ ("WednesdayOctober", -4.382026634673881),+ ("Wednesdaythis|last|next <cycle>", -3.9765615265657175),+ ("intersect<named-month> <day-of-month> (non ordinal)",+ -3.4657359027997265),+ ("dayyear", -2.8779492378976075),+ ("Saturday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("Thursdayhh:mm", -3.9765615265657175),+ ("Thanksgiving Daythis|last|next <cycle>", -4.382026634673881),+ ("on <date><named-month> <day-of-month> (non ordinal)",+ -3.9765615265657175),+ ("TuesdayOctober", -4.382026634673881),+ ("the <day-of-month> (ordinal)March", -4.382026634673881),+ ("Mondaythis|last|next <cycle>", -4.382026634673881),+ ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",+ -4.382026634673881),+ ("Fridayintersect", -4.382026634673881),+ ("Thursday<datetime> - <datetime> (interval)",+ -3.6888794541139363),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.4657359027997265),+ ("Tuesdaythis|last|next <cycle>", -4.382026634673881),+ ("Sunday<named-month> <day-of-month> (non ordinal)",+ -4.382026634673881),+ ("dayminute", -2.995732273553991),+ ("minuteday", -3.4657359027997265),+ ("this|last|next <cycle>Sunday", -4.382026634673881),+ ("intersectyear (latent)", -4.382026634673881),+ ("Sundaythis|last|next <cycle>", -4.382026634673881),+ ("weekday", -4.382026634673881),+ ("dayweek", -3.283414346005772),+ ("Thursday<time-of-day> am|pm", -4.382026634673881),+ ("Monday<named-month> <day-of-month> (non ordinal)",+ -3.9765615265657175),+ ("<named-month> <day-of-month> (non ordinal)year (latent)",+ -3.9765615265657175)],+ n = 50},+ koData =+ ClassData{prior = -0.9808292530117262, unseen = -4.795790545596741,+ likelihoods =+ HashMap.fromList+ [("week-endJuly", -4.0943445622221),+ ("week-endOctober", -3.4011973816621555),+ ("daymonth", -1.8971199848858813),+ ("TuesdaySeptember", -4.0943445622221),+ ("Wednesdayintersect", -4.0943445622221),+ ("hourmonth", -2.995732273553991),+ ("Fridaythis|last|next <cycle>", -4.0943445622221),+ ("SundayFebruary", -4.0943445622221),+ ("WednesdayOctober", -4.0943445622221),+ ("week-endintersect", -4.0943445622221),+ ("dayyear", -4.0943445622221),+ ("FridayJuly", -3.6888794541139363),+ ("FridaySeptember", -4.0943445622221),+ ("WednesdayFebruary", -4.0943445622221),+ ("minutemonth", -3.1780538303479458),+ ("SundayMarch", -4.0943445622221),+ ("MondayFebruary", -3.6888794541139363),+ ("Fridayintersect", -4.0943445622221),+ ("Thursday<time-of-day> - <time-of-day> (interval)",+ -3.6888794541139363),+ ("dayminute", -3.4011973816621555),+ ("SaturdaySeptember", -4.0943445622221),+ ("intersectSeptember", -3.1780538303479458),+ ("MondayMarch", -4.0943445622221),+ ("on <date>September", -3.6888794541139363),+ ("Tuesdayintersect", -4.0943445622221),+ ("Sundayintersect", -4.0943445622221)],+ n = 30}}),+ ("last <time>",+ Classifier{okData =+ ClassData{prior = -0.6286086594223742, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("Martin Luther King's Day", -2.5649493574615367),+ ("day", -1.1786549963416462), ("Sunday", -2.5649493574615367),+ ("Chinese New Year", -2.159484249353372),+ ("Thanksgiving Day", -2.5649493574615367),+ ("Easter Sunday", -2.5649493574615367),+ ("hour", -2.5649493574615367), ("Tuesday", -2.5649493574615367),+ ("week-end", -2.5649493574615367)],+ n = 8},+ koData =+ ClassData{prior = -0.7621400520468967,+ unseen = -3.2188758248682006,+ likelihoods =+ HashMap.fromList+ [("Monday", -2.4849066497880004), ("day", -2.0794415416798357),+ ("Sunday", -2.4849066497880004), ("hour", -1.3862943611198906),+ ("week-end", -1.3862943611198906)],+ n = 7}}),+ ("March",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.044522437723423,+ likelihoods = HashMap.fromList [("", 0.0)], n = 19},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<named-month>|<named-day> <day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+ likelihoods =+ HashMap.fromList+ [("Octoberordinal (digits)", -2.120263536200091),+ ("Thursdayordinal (digits)", -2.5257286443082556),+ ("day", -2.120263536200091),+ ("Augustordinal (digits)", -2.5257286443082556),+ ("Marchordinals (first..twentieth,thirtieth,...)",+ -2.120263536200091),+ ("Tuesdayordinal (digits)", -2.5257286443082556),+ ("month", -1.2729656758128873),+ ("Marchordinal (digits)", -2.5257286443082556)],+ n = 8},+ koData =+ ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("from|since|after <time-of-day>ordinal (digits)",+ -1.8718021769015913),+ ("Augustordinal (digits)", -1.8718021769015913),+ ("month", -1.466337068793427)],+ n = 2}}),+ ("Clean Monday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month> (ordinal)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Easter Sunday",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+ ("Christmas",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("until <time-of-day>",+ Classifier{okData =+ ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,+ likelihoods =+ HashMap.fromList+ [("time-of-day (latent)", -2.3025850929940455),+ ("<time-of-day> am|pm", -1.6094379124341003),+ ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),+ ("minute", -1.3862943611198906)],+ n = 6},+ koData =+ ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("intersect", -1.7227665977411035),+ ("yesterday", -2.2335922215070942),+ ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),+ ("hour", -2.639057329615259), ("minute", -1.252762968495368)],+ n = 10}}),+ ("mm.dd.yyyy",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Isra and Mi'raj",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<duration> after|before|from <time>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -3.5553480614894135,+ likelihoods =+ HashMap.fromList+ [("a <unit-of-duration>now", -2.833213344056216),+ ("a <unit-of-duration>Christmas", -2.833213344056216),+ ("dayday", -2.833213344056216),+ ("<integer> <unit-of-duration>today", -2.833213344056216),+ ("daysecond", -2.833213344056216),+ ("a <unit-of-duration>right now", -2.833213344056216),+ ("minutenograin", -2.833213344056216),+ ("<integer> <unit-of-duration>Christmas", -2.833213344056216),+ ("<integer> <unit-of-duration>Easter Sunday",+ -2.833213344056216),+ ("secondnograin", -2.833213344056216),+ ("yearday", -2.1400661634962708),+ ("daynograin", -2.833213344056216),+ ("<integer> <unit-of-duration>now", -2.4277482359480516)],+ n = 8},+ koData =+ ClassData{prior = -1.0986122886681098, unseen = -3.295836866004329,+ likelihoods =+ HashMap.fromList+ [("dayhour", -2.5649493574615367),+ ("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -2.5649493574615367),+ ("monthnograin", -2.5649493574615367),+ ("dayday", -2.159484249353372),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -2.5649493574615367),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -2.5649493574615367),+ ("<integer> <unit-of-duration>now", -2.5649493574615367)],+ n = 4}}),+ ("<day-of-month> (ordinal or number) of <month>",+ Classifier{okData =+ ClassData{prior = -8.004270767353637e-2,+ unseen = -3.5263605246161616,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)July", -2.803360380906535),+ ("ordinals (first..twentieth,thirtieth,...)March",+ -2.803360380906535),+ ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+ ("integer (numeric)this|last|next <cycle>",+ -2.3978952727983707),+ ("ordinal (digits)February", -2.803360380906535),+ ("integer (numeric)February", -2.3978952727983707),+ ("month", -0.9315582040049435),+ ("ordinal (digits)March", -2.803360380906535),+ ("integer (numeric)July", -2.803360380906535)],+ n = 12},+ koData =+ ClassData{prior = -2.5649493574615367,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)February", -1.7047480922384253),+ ("month", -1.7047480922384253)],+ n = 1}}),+ ("decimal number",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+ ("Naraka Chaturdashi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("beginning of month",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [("", 0.0)], n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("next <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods =+ HashMap.fromList+ [("Martin Luther King's Day", -2.70805020110221),+ ("Halloween", -2.70805020110221),+ ("Wednesday", -2.70805020110221),+ ("Boss's Day", -2.70805020110221),+ ("Monday", -2.70805020110221), ("day", -1.0986122886681098),+ ("Thanksgiving Day", -2.70805020110221),+ ("March", -2.70805020110221), ("month", -2.70805020110221),+ ("Tuesday", -2.0149030205422647)],+ n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time-of-day> sharp|exactly",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.890371757896165,+ likelihoods =+ HashMap.fromList+ [("at <time-of-day>", -2.1400661634962708),+ ("time-of-day (latent)", -2.1400661634962708),+ ("hhmm (latent)", -2.1400661634962708),+ ("<time-of-day> am|pm", -2.1400661634962708),+ ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+ ("minute", -1.4469189829363254)],+ n = 5},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("in <named-month>|year",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("October", -2.4423470353692043),+ ("year (latent)", -1.0560526742493137),+ ("year", -1.0560526742493137), ("March", -2.4423470353692043),+ ("month", -2.03688192726104)],+ n = 9},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -2.4849066497880004,+ likelihoods =+ HashMap.fromList+ [("October", -1.2992829841302609),+ ("year (latent)", -1.7047480922384253),+ ("year", -1.7047480922384253), ("month", -1.2992829841302609)],+ n = 3}}),+ ("Islamic New Year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("negative numbers",+ Classifier{okData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0},+ koData =+ ClassData{prior = 0.0, unseen = -3.332204510175204,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)", -7.696104113612832e-2),+ ("integer (0..19)", -2.6026896854443837)],+ n = 25}}),+ ("about|exactly <duration>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("half an hour", -0.6931471805599453),+ ("minute", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time> before last|after next",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods =+ HashMap.fromList+ [("Wednesday", -1.8718021769015913),+ ("Friday", -1.466337068793427), ("day", -1.1786549963416462),+ ("March", -1.8718021769015913), ("month", -1.8718021769015913)],+ n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("by the end of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("this|last|next <cycle>", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("hhmm (military) am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<datetime> - <datetime> (interval)",+ Classifier{okData =+ ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,+ likelihoods =+ HashMap.fromList+ [("intersecthh:mm", -3.1918471524802814),+ ("intersect<time-of-day> am|pm", -3.1918471524802814),+ ("minuteminute", -1.457246097092175),+ ("hh:mmhh:mm", -2.093234863812172),+ ("dayday", -3.1918471524802814),+ ("hourhour", -2.093234863812172),+ ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+ -3.1918471524802814),+ ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+ -3.597312260588446),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.597312260588446),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),+ ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],+ n = 26},+ koData =+ ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,+ likelihoods =+ HashMap.fromList+ [("<named-month> <day-of-month> (non ordinal)July",+ -3.1135153092103742),+ ("daymonth", -2.70805020110221),+ ("from|since|after <time-of-day>intersect", -2.70805020110221),+ ("<time-of-day> am|pmintersect", -3.1135153092103742),+ ("hh:mm<time-of-day> am|pm", -2.70805020110221),+ ("minuteminute", -1.8607523407150064),+ ("hourhour", -2.70805020110221),+ ("minutehour", -2.70805020110221),+ ("hh:mmintersect", -2.1972245773362196),+ ("<named-month> <day-of-month> (non ordinal)August",+ -3.1135153092103742),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.1135153092103742)],+ n = 12}}),+ ("Tuesday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("New Year's Day",+ Classifier{okData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.3025850929940455,+ likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+ ("fortnight",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<integer> and an half hour",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Laylat al-Qadr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Boghi",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("at the beginning|end of <named-month>",+ Classifier{okData =+ ClassData{prior = -0.2231435513142097,+ unseen = -2.5649493574615367,+ likelihoods =+ HashMap.fromList+ [("January", -1.3862943611198906),+ ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+ n = 4},+ koData =+ ClassData{prior = -1.6094379124341003,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList+ [("October", -1.0986122886681098),+ ("month", -1.0986122886681098)],+ n = 1}}),+ ("<time-of-day> - <time-of-day> (interval)",+ Classifier{okData =+ ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -1.529395204760564),+ ("hh:mmhh:mm", -1.8971199848858813),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -2.4849066497880004),+ ("hourhour", -1.6964492894237302),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -3.4011973816621555),+ ("from|since|after <time-of-day><time-of-day> am|pm",+ -3.4011973816621555),+ ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),+ ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],+ n = 22},+ koData =+ ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,+ likelihoods =+ HashMap.fromList+ [("about|exactly <time-of-day>time-of-day (latent)",+ -3.4657359027997265),+ ("hh:mmtime-of-day (latent)", -1.7609878105613013),+ ("hh:mm<time-of-day> am|pm", -3.0602707946915624),+ ("<time-of-day> am|pmtime-of-day (latent)",+ -3.4657359027997265),+ ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),+ ("hourhour", -2.2129729343043585),+ ("minutehour", -1.2144441041932315),+ ("about|exactly <time-of-day><time-of-day> am|pm",+ -3.4657359027997265),+ ("from|since|after <time-of-day>time-of-day (latent)",+ -2.5494451709255714),+ ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),+ ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+ -3.0602707946915624)],+ n = 24}}),+ ("military spelled out numbers am|pm",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods =+ HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("winter",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("nth <time> after <time>",+ Classifier{okData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+ -0.916290731874155)],+ n = 1},+ koData =+ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+ likelihoods =+ HashMap.fromList+ [("dayday", -0.916290731874155),+ ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+ -0.916290731874155)],+ n = 1}}),+ ("<named-month> <day-of-month> (non ordinal)",+ Classifier{okData =+ ClassData{prior = -0.42121346507630353,+ unseen = -3.951243718581427,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.5455312716044354),+ ("Marchinteger (numeric)", -2.833213344056216),+ ("Aprilinteger (numeric)", -3.2386784521643803),+ ("month", -0.8407831793660099),+ ("Februaryinteger (numeric)", -1.9859154836690123),+ ("Septemberinteger (numeric)", -2.833213344056216),+ ("Octoberinteger (numeric)", -2.833213344056216),+ ("Julyinteger (numeric)", -2.1400661634962708)],+ n = 21},+ koData =+ ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Augustinteger (numeric)", -2.3353749158170367),+ ("Marchinteger (numeric)", -2.740840023925201),+ ("Aprilinteger (numeric)", -2.740840023925201),+ ("month", -0.9490805546971459),+ ("from|since|after <time-of-day>integer (numeric)",+ -2.3353749158170367),+ ("Julyinteger (numeric)", -1.6422277352570913)],+ n = 11}}),+ ("Diwali",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809,+ unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -1.3862943611198906,+ unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("last night",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this|next <day-of-week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.995732273553991,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.2512917986064953),+ ("Wednesday", -2.2512917986064953),+ ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+ ("Tuesday", -1.55814461804655)],+ n = 7},+ koData =+ ClassData{prior = -infinity, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("ordinal (digits)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.6635616461296463,+ likelihoods = HashMap.fromList [("", 0.0)], n = 37},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("quarter (grain)",+ Classifier{okData =+ ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,+ likelihoods = HashMap.fromList [("", 0.0)], n = 12},+ koData =+ ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+ ("last <cycle> of <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("day (grain)October", -1.791759469228055),+ ("daymonth", -1.2809338454620642),+ ("day (grain)intersect", -1.791759469228055),+ ("weekmonth", -1.791759469228055),+ ("week (grain)intersect", -2.1972245773362196),+ ("week (grain)September", -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Chhath",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Vasant Panchami",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<day-of-month>(ordinal) <named-month> year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList+ [("ordinal (digits)April", -0.6931471805599453),+ ("month", -0.6931471805599453)],+ n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Black Friday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("week-end",+ Classifier{okData =+ ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -0.3364722366212129,+ unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+ ("Great Lent",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Maundy Thursday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("day (grain)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.295836866004329,+ likelihoods = HashMap.fromList [("", 0.0)], n = 25},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("right now",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("for <duration> from <time>",+ Classifier{okData =+ ClassData{prior = -0.40546510810816444,+ unseen = -2.3025850929940455,+ likelihoods =+ HashMap.fromList+ [("<integer> <unit-of-duration><day-of-month> (ordinal)",+ -1.5040773967762742),+ ("dayday", -1.0986122886681098),+ ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+ -1.5040773967762742)],+ n = 2},+ koData =+ ClassData{prior = -1.0986122886681098,+ unseen = -2.0794415416798357,+ likelihoods =+ HashMap.fromList+ [("dayhour", -1.252762968495368),+ ("<integer> <unit-of-duration>time-of-day (latent)",+ -1.252762968495368)],+ n = 1}}),+ ("compose by multiplication",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods =+ HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+ n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("end of year",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.4849066497880004,+ likelihoods = HashMap.fromList [("", 0.0)], n = 10},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("between <time> and <time>",+ Classifier{okData =+ ClassData{prior = -1.0986122886681098,+ unseen = -3.1780538303479458,+ likelihoods =+ HashMap.fromList+ [("minuteminute", -0.832909122935104),+ ("hh:mmhh:mm", -0.832909122935104)],+ n = 9},+ koData =+ ClassData{prior = -0.40546510810816444,+ unseen = -3.7376696182833684,+ likelihoods =+ HashMap.fromList+ [("hh:mmtime-of-day (latent)", -1.410986973710262),+ ("minuteminute", -1.410986973710262),+ ("minutehour", -1.410986973710262),+ ("hh:mmintersect", -1.410986973710262)],+ n = 18}}),+ ("<month> dd-dd (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4657359027997265,+ likelihoods =+ HashMap.fromList+ [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+ ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",+ -2.740840023925201),+ ("from|since|after <time-of-day>integer (numeric)integer (numeric)",+ -2.740840023925201),+ ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",+ -2.740840023925201),+ ("Augustordinal (digits)integer (numeric)",+ -2.3353749158170367),+ ("month", -0.8690378470236094),+ ("Augustordinal (digits)ordinal (digits)",+ -2.3353749158170367)],+ n = 12},+ koData =+ ClassData{prior = -infinity, unseen = -2.0794415416798357,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("part of days",+ Classifier{okData =+ ClassData{prior = -3.509131981127006e-2,+ unseen = -3.4011973816621555,+ likelihoods = HashMap.fromList [("", 0.0)], n = 28},+ koData =+ ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ("at the beginning|end of <week>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -4.330733340286331,+ likelihoods =+ HashMap.fromList+ [("week", -0.706570200892086),+ ("this|last|next <cycle>", -0.8209805520698302),+ ("about|exactly <time-of-day>", -2.70805020110221)],+ n = 36},+ koData =+ ClassData{prior = -infinity, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Eid al-Fitr",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("summer",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Trinity Sunday",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("dd-dd <month> (interval)",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -2.9444389791664407,+ likelihoods =+ HashMap.fromList+ [("integer (numeric)integer (numeric)September",+ -1.791759469228055),+ ("ordinal (digits)ordinal (digits)July", -2.1972245773362196),+ ("ordinal (digits)ordinal (digits)October",+ -2.1972245773362196),+ ("integer (numeric)integer (numeric)July", -2.1972245773362196),+ ("month", -0.9444616088408514),+ ("ordinal (digits)ordinal (digits)August",+ -2.1972245773362196)],+ n = 6},+ koData =+ ClassData{prior = -infinity, unseen = -1.9459101490553135,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("Pentecost",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("this <time>",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("Thursday", -2.639057329615259),+ ("Martin Luther King's Day", -2.639057329615259),+ ("Monday", -2.639057329615259), ("day", -1.1349799328389845),+ ("Thanksgiving Day", -2.639057329615259),+ ("Christmas", -2.639057329615259), ("hour", -2.639057329615259),+ ("winter", -2.639057329615259),+ ("week-end", -2.639057329615259),+ ("summer", -2.2335922215070942)],+ n = 9},+ koData =+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("August", Classifier{okData =
Duckling/Ranking/Classifiers/ES_XX.hs view
@@ -454,13 +454,6 @@ ("<hour-of-day> and <relative minutes>", -1.791759469228055), ("hour", -1.791759469228055), ("minute", -1.791759469228055)], n = 4}}),- ("season",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("minutos (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -620,6 +613,13 @@ koData = ClassData{prior = 0.0, unseen = -2.639057329615259, likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+ ("invierno",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <part-of-day>", Classifier{okData = ClassData{prior = 0.0, unseen = -1.6094379124341003,@@ -701,6 +701,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("verano",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("number (20..90)", Classifier{okData = ClassData{prior = 0.0, unseen = -1.791759469228055,@@ -1243,13 +1250,14 @@ likelihoods = HashMap.fromList [], n = 0}}), ("ce <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.772588722239781,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList- [("season", -1.6094379124341003), ("Lunes", -2.0149030205422647),- ("day", -1.3217558399823195), ("hour", -1.6094379124341003),- ("week-end", -1.6094379124341003)],+ [("invierno", -2.0794415416798357),+ ("Lunes", -2.0794415416798357), ("verano", -2.0794415416798357),+ ("day", -1.3862943611198906), ("hour", -1.6739764335716716),+ ("week-end", -1.6739764335716716)], n = 5}, koData =- ClassData{prior = -infinity, unseen = -1.791759469228055,+ ClassData{prior = -infinity, unseen = -1.9459101490553135, likelihoods = HashMap.fromList [], n = 0}})]
Duckling/Ranking/Classifiers/NL_XX.hs view
@@ -21,8 +21,15 @@ classifiers :: Classifiers classifiers = HashMap.fromList- [("<time> timezone",+ [("Kerstmis", Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<time> timezone",+ Classifier{okData = ClassData{prior = 0.0, unseen = -2.3978952727983707, likelihoods = HashMap.fromList@@ -65,13 +72,6 @@ koData = ClassData{prior = -infinity, unseen = -1.791759469228055, likelihoods = HashMap.fromList [], n = 0}}),- ("Father's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("thursday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.4849066497880004,@@ -249,6 +249,13 @@ [("hh:mmtime-of-day (latent)", -1.0986122886681098), ("minutehour", -1.0986122886681098)], n = 1}}),+ ("Halloween",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("between <datetime> and <datetime> (interval)", Classifier{okData = ClassData{prior = -0.6931471805599453,@@ -380,268 +387,260 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("May",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.30818059400012193,- unseen = -6.182084906716631,+ ClassData{prior = -0.29944691403136736,+ unseen = -6.180016653652572, likelihoods = HashMap.fromList- [("last <cycle>sunday", -5.486869473092628),- ("hourday", -4.388257184424518),+ [("last <cycle>sunday", -5.484796933490655),+ ("Koningsdagyear", -5.484796933490655),+ ("hourday", -4.386184644822546), ("on a named-day<day-of-month> (non ordinal) <named-month>",- -5.486869473092628),+ -5.484796933490655), ("<day-of-month> (non ordinal) <named-month><time-of-day> o'clock",- -5.486869473092628),- ("dayhour", -2.3513752571634776),- ("daymonth", -4.570578741218473),- ("next <cycle>friday", -5.486869473092628),- ("monthyear", -3.8774315606585272),+ -5.484796933490655),+ ("dayhour", -2.3493027175615055),+ ("daymonth", -4.5685062016165),+ ("next <cycle>friday", -5.484796933490655),+ ("monthyear", -3.8753590210565547), ("friday<day-of-month> (non ordinal) <named-month>",- -5.081404364984463),- ("yearhour", -5.486869473092628),- ("intersect<time-of-day> o'clock", -4.793722292532682),- ("tuesdaythis <cycle>", -5.486869473092628),- ("christmasyear", -5.486869473092628),+ -5.079331825382491),+ ("yearhour", -5.484796933490655),+ ("intersect<time-of-day> o'clock", -4.791649752930709),+ ("tuesdaythis <cycle>", -5.484796933490655), ("on a named-dayfrom <time-of-day> - <time-of-day> (interval)",- -5.081404364984463),- ("saturday<time-of-day> o'clock", -5.486869473092628),+ -5.079331825382491),+ ("saturday<time-of-day> o'clock", -5.484796933490655), ("absorption of , after named daydd/mm/yyyy",- -5.081404364984463),- ("<time-of-day> am|pmintersect", -5.486869473092628),- ("intersect<time> <part-of-day>", -4.793722292532682),- ("Marchyear", -5.486869473092628),- ("saturdayat <time-of-day>", -5.081404364984463),- ("saturday<time> <part-of-day>", -5.081404364984463),- ("dd/mm<time-of-day> o'clock", -5.486869473092628),- ("on a named-dayat <time-of-day>", -4.793722292532682),- ("today<time-of-day> o'clock", -5.486869473092628),- ("at <time-of-day>on a named-day", -5.486869473092628),+ -5.079331825382491),+ ("<time-of-day> am|pmintersect", -5.484796933490655),+ ("intersect<time> <part-of-day>", -4.791649752930709),+ ("Marchyear", -5.484796933490655),+ ("saturdayat <time-of-day>", -5.079331825382491),+ ("saturday<time> <part-of-day>", -5.079331825382491),+ ("dd/mm<time-of-day> o'clock", -5.484796933490655),+ ("on a named-dayat <time-of-day>", -4.791649752930709),+ ("today<time-of-day> o'clock", -5.484796933490655),+ ("at <time-of-day>on a named-day", -5.484796933490655), ("on a named-daybetween <datetime> and <datetime> (interval)",- -5.486869473092628),- ("intersect by ','year", -5.486869473092628),- ("on <date><time-of-day> o'clock", -4.793722292532682),- ("next <cycle>monday", -5.486869473092628),+ -5.484796933490655),+ ("intersect by ','year", -5.484796933490655),+ ("on <date><time-of-day> o'clock", -4.791649752930709),+ ("next <cycle>monday", -5.484796933490655), ("on a named-daybetween <time-of-day> and <time-of-day> (interval)",- -5.486869473092628),- ("exactly <time-of-day>tomorrow", -5.486869473092628),- ("on a named-day<time> <part-of-day>", -5.081404364984463),- ("monthhour", -4.570578741218473),+ -5.484796933490655),+ ("exactly <time-of-day>tomorrow", -5.484796933490655),+ ("on a named-day<time> <part-of-day>", -5.079331825382491),+ ("monthhour", -4.5685062016165), ("on <date>between <datetime> and <datetime> (interval)",- -5.486869473092628),- ("last <day-of-week> of <time>year", -5.486869473092628),- ("on a named-day<time-of-day> o'clock", -5.486869473092628),- ("next <cycle>March", -5.486869473092628),- ("todayat <time-of-day>", -4.793722292532682),+ -5.484796933490655),+ ("last <day-of-week> of <time>year", -5.484796933490655),+ ("on a named-day<time-of-day> o'clock", -5.484796933490655),+ ("next <cycle>March", -5.484796933490655),+ ("todayat <time-of-day>", -4.791649752930709), ("on <date>between <time-of-day> and <time-of-day> (interval)",- -5.486869473092628),- ("on <date>at <time-of-day>", -4.793722292532682),- ("thursday<time> timezone", -5.081404364984463),- ("on <date>about <time-of-day>", -4.793722292532682),- ("dayday", -3.184284380098582),- ("on <date><time> <part-of-day>", -4.570578741218473),- ("dd/mmabout <time-of-day>", -5.081404364984463),- ("<day-of-month> (ordinal)intersect", -5.486869473092628),- ("hourhour", -4.388257184424518),+ -5.484796933490655),+ ("on <date>at <time-of-day>", -4.791649752930709),+ ("thursday<time> timezone", -5.079331825382491),+ ("on <date>about <time-of-day>", -4.791649752930709),+ ("dayday", -3.1822118404966093),+ ("on <date><time> <part-of-day>", -4.5685062016165),+ ("dd/mmabout <time-of-day>", -5.079331825382491),+ ("<day-of-month> (ordinal)intersect", -5.484796933490655),+ ("hourhour", -4.386184644822546), ("saturday<day-of-month> (non ordinal) <named-month>",- -5.486869473092628),- ("thursdayat <time-of-day>", -5.486869473092628),+ -5.484796933490655),+ ("thursdayat <time-of-day>", -5.484796933490655), ("today/tomorrow/yesterday afternoon<hour-of-day> <integer> (as relative minutes)",- -5.081404364984463),+ -5.079331825382491), ("intersect<day-of-month> (non ordinal) <named-month>",- -4.388257184424518),- ("dayyear", -3.4074279314127915),- ("tuesdayafter <duration>", -5.486869473092628),- ("tomorrow<time-of-day> o'clock", -5.486869473092628),- ("<time-of-day> o'clocktomorrow", -4.793722292532682),+ -4.386184644822546),+ ("dayyear", -3.405355391810819),+ ("tuesdayafter <duration>", -5.484796933490655),+ ("tomorrow<time-of-day> o'clock", -5.484796933490655),+ ("<time-of-day> o'clocktomorrow", -4.791649752930709), ("<day-of-month> (non ordinal) <named-month>intersect",- -5.486869473092628),+ -5.484796933490655), ("thursdaybetween <time-of-day> and <time-of-day> (interval)",- -5.486869473092628),+ -5.484796933490655), ("thursdaybetween <datetime> and <datetime> (interval)",- -5.486869473092628),+ -5.484796933490655), ("<day-of-month>(ordinal) <named-month>year",- -5.486869473092628),- ("<day-of-month> (ordinal)tuesday", -5.486869473092628),- ("hourminute", -4.793722292532682),- ("thursdayhh:mm", -5.486869473092628),- ("this <cycle>wednesday", -5.486869473092628),+ -5.484796933490655),+ ("<day-of-month> (ordinal)tuesday", -5.484796933490655),+ ("hourminute", -4.791649752930709),+ ("thursdayhh:mm", -5.484796933490655),+ ("this <cycle>wednesday", -5.484796933490655), ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",- -5.486869473092628),+ -5.484796933490655), ("<day-of-month> (non ordinal) <named-month><time> <part-of-day>",- -5.081404364984463),+ -5.079331825382491), ("on <date><day-of-month> (non ordinal) <named-month>",- -5.486869473092628),- ("Aprilabout <time-of-day>", -5.486869473092628),+ -5.484796933490655),+ ("Aprilabout <time-of-day>", -5.484796933490655), ("thursdayfrom <datetime> - <datetime> (interval)",- -5.486869473092628),- ("<day-of-month> (ordinal)February", -5.486869473092628),+ -5.484796933490655),+ ("<day-of-month> (ordinal)February", -5.484796933490655), ("thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.793722292532682),+ -4.791649752930709), ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",- -4.570578741218473),+ -4.5685062016165), ("today/tomorrow/yesterday evening<time-of-day> o'clock",- -5.486869473092628),- ("fridayintersect", -4.793722292532682),+ -5.484796933490655),+ ("fridayintersect", -4.791649752930709), ("on <date><time-of-day> - <time-of-day> (interval)",- -5.486869473092628),+ -5.484796933490655), ("on <date><datetime> - <datetime> (interval)",- -5.486869473092628),- ("this <cycle>monday", -5.486869473092628),- ("April<time-of-day> o'clock", -5.486869473092628),- ("next <cycle>wednesday", -5.486869473092628),- ("hh:mmintersect", -5.081404364984463),+ -5.484796933490655),+ ("this <cycle>monday", -5.484796933490655),+ ("April<time-of-day> o'clock", -5.484796933490655),+ ("next <cycle>wednesday", -5.484796933490655),+ ("hh:mmintersect", -5.079331825382491), ("thursday<datetime> - <datetime> (interval)",- -5.081404364984463),- ("<day-of-month> (ordinal)July", -5.486869473092628),+ -5.079331825382491),+ ("<day-of-month> (ordinal)July", -5.484796933490655), ("thursday<time-of-day> - <time-of-day> (interval)",- -5.081404364984463),- ("yearmonth", -5.486869473092628),- ("at <time-of-day>intersect", -5.081404364984463),+ -5.079331825382491),+ ("yearmonth", -5.484796933490655),+ ("at <time-of-day>intersect", -5.079331825382491), ("on <date>from <time-of-day> - <time-of-day> (interval)",- -5.081404364984463),+ -5.079331825382491), ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",- -5.486869473092628),- ("dayminute", -2.7788192719904172),+ -5.484796933490655),+ ("dayminute", -2.7767467323884447), ("<time> <part-of-day>from <datetime> - <datetime> (interval)",- -5.486869473092628),- ("intersectyear", -4.793722292532682),- ("<time-of-day> am|pmsaturday", -5.486869473092628),- ("<ordinal> <cycle> of <time>year", -5.486869473092628),- ("minuteday", -3.289644895756408),+ -5.484796933490655),+ ("intersectyear", -4.791649752930709),+ ("<time-of-day> am|pmsaturday", -5.484796933490655),+ ("<ordinal> <cycle> of <time>year", -5.484796933490655),+ ("minuteday", -3.2875723561544357), ("absorption of , after named dayintersect",- -5.486869473092628),- ("Julyyear", -5.486869473092628),- ("year<time-of-day> o'clock", -5.486869473092628),- ("Octoberyear", -4.388257184424518),- ("hh:mmon <date>", -5.081404364984463),+ -5.484796933490655),+ ("Julyyear", -5.484796933490655),+ ("year<time-of-day> o'clock", -5.484796933490655),+ ("Octoberyear", -4.386184644822546),+ ("hh:mmon <date>", -5.079331825382491), ("today/tomorrow/yesterday afternoonat <time-of-day>",- -5.486869473092628),- ("dd/mmyear", -5.486869473092628),- ("tuesdayin <duration>", -5.486869473092628),- ("Septemberyear", -5.081404364984463),- ("at <time-of-day>on <date>", -5.081404364984463),- ("absorption of , after named daydd/mm", -5.081404364984463),- ("intersectintersect", -5.486869473092628),- ("hh:mmon a named-day", -5.486869473092628),- ("weekday", -4.100575111972737),- ("dayweek", -4.793722292532682),- ("weekyear", -5.081404364984463),- ("on <date>February", -5.486869473092628),- ("<month> dd-dd (interval)year", -5.486869473092628),- ("Dutch King dayyear", -5.486869473092628),- ("tomorrowat <time-of-day>", -5.081404364984463),- ("next <cycle>tuesday", -5.486869473092628),+ -5.484796933490655),+ ("dd/mmyear", -5.484796933490655),+ ("tuesdayin <duration>", -5.484796933490655),+ ("Septemberyear", -5.079331825382491),+ ("at <time-of-day>on <date>", -5.079331825382491),+ ("absorption of , after named daydd/mm", -5.079331825382491),+ ("intersectintersect", -5.484796933490655),+ ("hh:mmon a named-day", -5.484796933490655),+ ("weekday", -4.098502572370764),+ ("dayweek", -4.791649752930709),+ ("weekyear", -5.079331825382491),+ ("on <date>February", -5.484796933490655),+ ("Kerstmisyear", -5.484796933490655),+ ("<month> dd-dd (interval)year", -5.484796933490655),+ ("tomorrowat <time-of-day>", -5.079331825382491),+ ("next <cycle>tuesday", -5.484796933490655), ("monday<day-of-month> (non ordinal) <named-month>",- -5.486869473092628),- ("at <time-of-day>tomorrow", -5.486869473092628),+ -5.484796933490655),+ ("at <time-of-day>tomorrow", -5.484796933490655), ("monday<named-month> <day-of-month> (non ordinal)",- -5.486869473092628),+ -5.484796933490655), ("<day-of-month> (non ordinal) <named-month>about <time-of-day>",- -5.486869473092628),+ -5.484796933490655), ("on a named-day<time-of-day> - <time-of-day> (interval)",- -5.486869473092628),+ -5.484796933490655), ("today/tomorrow/yesterday eveningat <time-of-day>",- -5.081404364984463),- ("last <cycle> of <time>year", -5.081404364984463),+ -5.079331825382491),+ ("last <cycle> of <time>year", -5.079331825382491), ("on a named-day<datetime> - <datetime> (interval)",- -5.486869473092628),+ -5.484796933490655), ("<day-of-month> (non ordinal) <named-month>year",- -4.570578741218473),- ("April<time> <part-of-day>", -5.081404364984463)],+ -4.5685062016165),+ ("April<time> <part-of-day>", -5.079331825382491)], n = 169}, koData =- ClassData{prior = -1.327205444749884, unseen = -5.5909869805108565,+ ClassData{prior = -1.3518081850487211, unseen = -5.572154032177765, likelihoods = HashMap.fromList [("<named-month> <day-of-month> (non ordinal)July",- -4.894101477840304),- ("dayhour", -3.5078071167204135),- ("on a named-dayafter <time-of-day>", -4.894101477840304),+ -4.875197323201151),+ ("dayhour", -3.488902962081261),+ ("on a named-dayafter <time-of-day>", -4.875197323201151), ("July<day-of-month> (non ordinal) <named-month>",- -4.894101477840304),- ("daymonth", -3.977810745966149),- ("monthday", -4.48863636973214),- ("monthyear", -3.7954891891721947),- ("yearhour", -4.894101477840304),- ("intersect<time-of-day> o'clock", -4.894101477840304),+ -4.875197323201151),+ ("daymonth", -3.9589065913269965),+ ("monthday", -4.4697322150929875),+ ("monthyear", -3.776585034533042),+ ("yearhour", -4.875197323201151),+ ("intersect<time-of-day> o'clock", -4.875197323201151), ("on a named-dayfrom <time-of-day> - <time-of-day> (interval)",- -4.48863636973214),- ("<day-of-month> (ordinal)wednesday", -4.48863636973214),- ("Julyintersect", -4.894101477840304),- ("thursdayafter <time-of-day>", -4.894101477840304),- ("intersect<time> <part-of-day>", -4.894101477840304),- ("Marchyear", -4.894101477840304),- ("<day-of-month> (ordinal)year", -4.894101477840304),- ("on a named-dayat <time-of-day>", -4.894101477840304),+ -4.4697322150929875),+ ("<day-of-month> (ordinal)wednesday", -4.4697322150929875),+ ("Julyintersect", -4.875197323201151),+ ("thursdayafter <time-of-day>", -4.875197323201151),+ ("intersect<time> <part-of-day>", -4.875197323201151),+ ("Marchyear", -4.875197323201151),+ ("<day-of-month> (ordinal)year", -4.875197323201151),+ ("on a named-dayat <time-of-day>", -4.875197323201151), ("on a named-daybetween <datetime> and <datetime> (interval)",- -4.894101477840304),- ("tuesdayafter <time-of-day>", -4.894101477840304),+ -4.875197323201151),+ ("tuesdayafter <time-of-day>", -4.875197323201151), ("on a named-daybetween <time-of-day> and <time-of-day> (interval)",- -4.894101477840304),- ("monthhour", -3.977810745966149),+ -4.875197323201151),+ ("monthhour", -3.9589065913269965), ("on <date>between <datetime> and <datetime> (interval)",- -4.894101477840304),- ("todayat <time-of-day>", -4.894101477840304),+ -4.875197323201151),+ ("todayat <time-of-day>", -4.875197323201151), ("on <date>between <time-of-day> and <time-of-day> (interval)",- -4.894101477840304),- ("on <date>at <time-of-day>", -4.894101477840304),- ("on <date>about <time-of-day>", -4.894101477840304),- ("dayday", -3.5078071167204135),- ("hourhour", -4.200954297280359),- ("thursdayat <time-of-day>", -4.894101477840304),- ("dayyear", -4.200954297280359),+ -4.875197323201151),+ ("on <date>at <time-of-day>", -4.875197323201151),+ ("on <date>about <time-of-day>", -4.875197323201151),+ ("dayday", -3.776585034533042),+ ("hourhour", -4.182050142641207),+ ("thursdayat <time-of-day>", -4.875197323201151),+ ("dayyear", -4.182050142641207), ("thursdaybetween <time-of-day> and <time-of-day> (interval)",- -4.894101477840304),+ -4.875197323201151), ("thursdaybetween <datetime> and <datetime> (interval)",- -4.894101477840304),- ("<day-of-month> (ordinal)tuesday", -4.48863636973214),- ("thursdayhh:mm", -4.48863636973214),- ("Aprilabout <time-of-day>", -4.894101477840304),+ -4.875197323201151),+ ("<day-of-month> (ordinal)tuesday", -4.4697322150929875),+ ("thursdayhh:mm", -4.4697322150929875),+ ("Aprilabout <time-of-day>", -4.875197323201151), ("thursdayfrom <datetime> - <datetime> (interval)",- -4.894101477840304),- ("Aprilyear", -4.894101477840304),- ("<day-of-month> (ordinal)sunday", -4.48863636973214),+ -4.875197323201151),+ ("Aprilyear", -4.875197323201151), ("thursdayfrom <time-of-day> - <time-of-day> (interval)",- -4.200954297280359),- ("mondayFebruary", -4.894101477840304),+ -4.182050142641207),+ ("mondayFebruary", -4.875197323201151), ("on <date><time-of-day> - <time-of-day> (interval)",- -4.894101477840304),- ("yearuntil <time-of-day>", -4.48863636973214),+ -4.875197323201151),+ ("yearuntil <time-of-day>", -4.4697322150929875), ("thursday<time-of-day> - <time-of-day> (interval)",- -4.48863636973214),+ -4.4697322150929875), ("<named-month> <day-of-month> (non ordinal)August",- -4.894101477840304),+ -4.875197323201151), ("August<day-of-month> (non ordinal) <named-month>",- -4.894101477840304),+ -4.875197323201151), ("on <date>from <time-of-day> - <time-of-day> (interval)",- -4.48863636973214),- ("dayminute", -2.409194828052304),- ("thursday<part-of-day> of <time>", -4.894101477840304),- ("Julyyear", -4.48863636973214),- ("Octoberyear", -4.894101477840304),+ -4.4697322150929875),+ ("dayminute", -2.3902906734131513),+ ("thursday<part-of-day> of <time>", -4.875197323201151),+ ("Julyyear", -4.4697322150929875),+ ("Octoberyear", -4.875197323201151), ("today/tomorrow/yesterday afternoonat <time-of-day>",- -4.48863636973214),- ("year<time> <part-of-day>", -4.894101477840304),+ -4.4697322150929875),+ ("year<time> <part-of-day>", -4.875197323201151), ("today/tomorrow/yesterday afternoon<time-of-day> o'clock",- -4.894101477840304),- ("yearday", -4.48863636973214),- ("absorption of , after named dayFebruary", -4.894101477840304),+ -4.875197323201151),+ ("yearday", -4.4697322150929875),+ ("absorption of , after named dayFebruary", -4.875197323201151), ("<day-of-month> (non ordinal) <named-month>about <time-of-day>",- -4.894101477840304),- ("after <time-of-day>year", -4.894101477840304),+ -4.875197323201151),+ ("after <time-of-day>year", -4.875197323201151), ("on a named-day<time-of-day> - <time-of-day> (interval)",- -4.894101477840304),- ("on <date>after <time-of-day>", -4.894101477840304),+ -4.875197323201151),+ ("on <date>after <time-of-day>", -4.875197323201151), ("<day-of-month> (non ordinal) <named-month>year",- -4.894101477840304)],- n = 61}}),+ -4.875197323201151)],+ n = 59}}), ("<ordinal> <cycle> of <time>", Classifier{okData = ClassData{prior = 0.0, unseen = -2.4849066497880004,@@ -820,27 +819,24 @@ likelihoods = HashMap.fromList [], n = 0}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.044522437723423,+ ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221, likelihoods = HashMap.fromList- [("daymonth", -1.0498221244986778),- ("ordinals (first..19th)sundayMay", -2.3025850929940455),- ("ordinals (first..19th)tuesdayOctober", -2.3025850929940455),- ("ordinals (first..19th)sundayJune", -2.3025850929940455),+ [("daymonth", -1.0296194171811581),+ ("ordinals (first..19th)tuesdayOctober", -1.9459101490553135), ("ordinals (first..19th)wednesdayintersect",- -1.8971199848858813),+ -1.540445040947149), ("ordinals (first..19th)tuesdayintersect",- -2.3025850929940455)],- n = 6},+ -1.9459101490553135)],+ n = 4}, koData =- ClassData{prior = -1.0986122886681098, unseen = -2.70805020110221,+ ClassData{prior = -0.8472978603872037,+ unseen = -2.5649493574615367, likelihoods = HashMap.fromList- [("daymonth", -1.252762968495368),- ("ordinals (first..19th)wednesdayOctober", -1.540445040947149),- ("ordinals (first..19th)tuesdaySeptember",- -1.9459101490553135)],+ [("daymonth", -1.0986122886681098),+ ("ordinals (first..19th)wednesdayOctober", -1.3862943611198906),+ ("ordinals (first..19th)tuesdaySeptember", -1.791759469228055)], n = 3}}), ("the <day-of-month> (non ordinal)", Classifier{okData =@@ -882,7 +878,7 @@ [("hourhour", -0.6931471805599453), ("morningtime-of-day (latent)", -0.6931471805599453)], n = 1}}),- ("valentine's day",+ ("Vaderdag", Classifier{okData = ClassData{prior = 0.0, unseen = -1.0986122886681098, likelihoods = HashMap.fromList [("", 0.0)], n = 1},@@ -937,7 +933,7 @@ [("integer (numeric)", -9.53101798043249e-2), ("fractional number", -2.3978952727983707)], n = 20}}),- ("new year's eve",+ ("Nieuwjaarsdag", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},@@ -953,13 +949,6 @@ ClassData{prior = -1.3862943611198906, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),- ("Mother's Day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("friday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.3025850929940455,@@ -992,13 +981,6 @@ koData = ClassData{prior = 0.0, unseen = -2.0794415416798357, likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),- ("June",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("afternoon", Classifier{okData = ClassData{prior = 0.0, unseen = -2.5649493574615367,@@ -1045,8 +1027,8 @@ likelihoods = HashMap.fromList [], n = 0}}), ("sunday", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.3978952727983707,- likelihoods = HashMap.fromList [("", 0.0)], n = 9},+ ClassData{prior = 0.0, unseen = -2.1972245773362196,+ likelihoods = HashMap.fromList [("", 0.0)], n = 7}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),@@ -1153,8 +1135,8 @@ n = 68}}), ("ordinals (first..19th)", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.5649493574615367,- likelihoods = HashMap.fromList [("", 0.0)], n = 11},+ ClassData{prior = 0.0, unseen = -2.3978952727983707,+ likelihoods = HashMap.fromList [("", 0.0)], n = 9}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),@@ -1176,8 +1158,8 @@ ClassData{prior = 0.0, unseen = -1.6094379124341003, likelihoods = HashMap.fromList- [("<integer> <unit-of-duration>christmas", -0.6931471805599453),- ("yearday", -0.6931471805599453)],+ [("yearday", -0.6931471805599453),+ ("<integer> <unit-of-duration>Kerstmis", -0.6931471805599453)], n = 1}, koData = ClassData{prior = -infinity, unseen = -1.0986122886681098,@@ -1292,7 +1274,7 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<day-of-month> (ordinal)", Classifier{okData =- ClassData{prior = -1.3862943611198906,+ ClassData{prior = -1.2809338454620642, unseen = -2.0794415416798357, likelihoods = HashMap.fromList@@ -1300,12 +1282,19 @@ ("ordinal (digits)", -0.5596157879354228)], n = 5}, koData =- ClassData{prior = -0.2876820724517809, unseen = -2.890371757896165,+ ClassData{prior = -0.325422400434628, unseen = -2.772588722239781, likelihoods = HashMap.fromList- [("ordinals (first..19th)", -0.5306282510621704),- ("ordinal (digits)", -0.8873031950009028)],- n = 15}}),+ [("ordinals (first..19th)", -0.6286086594223742),+ ("ordinal (digits)", -0.7621400520468967)],+ n = 13}}),+ ("Valentijnsdag",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("until <time-of-day>", Classifier{okData = ClassData{prior = -0.40546510810816444,@@ -1402,20 +1391,6 @@ koData = ClassData{prior = -infinity, unseen = -1.9459101490553135, likelihoods = HashMap.fromList [], n = 0}}),- ("christmas",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("", 0.0)], n = 4},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),- ("new year's day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [("", 0.0)], n = 2},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}), ("Sinterklaas", Classifier{okData = ClassData{prior = 0.0, unseen = -1.6094379124341003,@@ -1467,7 +1442,7 @@ [("<integer> <unit-of-duration>", -0.6931471805599453), ("hour", -0.6931471805599453)], n = 1}}),- ("halloween day",+ ("Koningsdag", Classifier{okData = ClassData{prior = 0.0, unseen = -1.0986122886681098, likelihoods = HashMap.fromList [("", 0.0)], n = 1},@@ -1624,8 +1599,8 @@ ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055, likelihoods = HashMap.fromList- [("ordinals (first..19th)tuesdaychristmas", -0.916290731874155),- ("dayday", -0.916290731874155)],+ [("dayday", -0.916290731874155),+ ("ordinals (first..19th)tuesdayKerstmis", -0.916290731874155)], n = 1}}), ("<named-month> <day-of-month> (non ordinal)", Classifier{okData =@@ -1741,6 +1716,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("Oudjaar",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.3862943611198906,+ likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("after <time-of-day>", Classifier{okData = ClassData{prior = -0.587786664902119, unseen = -2.995732273553991,@@ -1755,9 +1737,9 @@ ClassData{prior = -0.8109302162163288, unseen = -2.890371757896165, likelihoods = HashMap.fromList- [("intersect", -2.1400661634962708),+ [("Kerstmis", -1.7346010553881064),+ ("intersect", -2.1400661634962708), ("day", -1.4469189829363254), ("hh:mm", -2.1400661634962708),- ("christmas", -1.7346010553881064), ("minute", -2.1400661634962708)], n = 4}}), ("day (grain)",@@ -1767,6 +1749,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("Moederdag",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [("", 0.0)], n = 1},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("<month> dd-dd (interval)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.639057329615259,@@ -1777,13 +1766,6 @@ n = 5}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906,- likelihoods = HashMap.fromList [], n = 0}}),- ("Dutch King day",- Classifier{okData =- ClassData{prior = 0.0, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}), ("summer", Classifier{okData =
Duckling/Ranking/Classifiers/PL_XX.hs view
@@ -37,10 +37,10 @@ likelihoods = HashMap.fromList [], n = 0}}), ("integer (numeric)", Classifier{okData =- ClassData{prior = -0.5997731097824868, unseen = -4.875197323201151,- likelihoods = HashMap.fromList [("", 0.0)], n = 129},+ ClassData{prior = -0.5762828404206344, unseen = -4.927253685157205,+ likelihoods = HashMap.fromList [("", 0.0)], n = 136}, koData =- ClassData{prior = -0.7961464200320919, unseen = -4.68213122712422,+ ClassData{prior = -0.8254986320446193, unseen = -4.68213122712422, likelihoods = HashMap.fromList [("", 0.0)], n = 106}}), ("exactly <time-of-day>", Classifier{okData =@@ -390,6 +390,13 @@ [("20th ordinal", -2.3513752571634776), ("first ordinal", -2.3513752571634776)], n = 2}}),+ ("November",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.791759469228055,+ likelihoods = HashMap.fromList [("", 0.0)], n = 4},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("July", Classifier{okData = ClassData{prior = 0.0, unseen = -1.9459101490553135,@@ -427,6 +434,13 @@ [("ordinal (digits)quarter (grain)", -0.916290731874155), ("quarter", -0.916290731874155)], n = 1}}),+ ("May",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -1.6094379124341003,+ likelihoods = HashMap.fromList [("", 0.0)], n = 3},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData = ClassData{prior = -0.3189150921417123, unseen = -6.280395838960195,@@ -2035,25 +2049,26 @@ n = 8}}), ("<day-of-month> (non ordinal) <named-month>", Classifier{okData =- ClassData{prior = -0.1431008436406733,- unseen = -3.5263605246161616,+ ClassData{prior = -9.53101798043249e-2,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("integer (numeric)September", -2.803360380906535),- ("integer (numeric)April", -2.803360380906535),- ("integer (numeric)August", -2.803360380906535),- ("integer (numeric)February", -1.1939224684724346),- ("month", -0.8574502318512216),- ("integer (numeric)March", -2.803360380906535)],- n = 13},+ [("integer (numeric)September", -3.1986731175506815),+ ("integer (numeric)May", -2.505525936990736),+ ("integer (numeric)April", -3.1986731175506815),+ ("integer (numeric)August", -3.1986731175506815),+ ("integer (numeric)February", -1.589235205116581),+ ("month", -0.8472978603872037),+ ("integer (numeric)November", -2.2823823856765264),+ ("integer (numeric)March", -3.1986731175506815)],+ n = 20}, koData =- ClassData{prior = -2.0149030205422647,- unseen = -2.4849066497880004,+ ClassData{prior = -2.3978952727983707, unseen = -2.639057329615259, likelihoods = HashMap.fromList- [("integer (numeric)August", -1.7047480922384253),- ("month", -1.2992829841302609),- ("integer (numeric)July", -1.7047480922384253)],+ [("integer (numeric)August", -1.8718021769015913),+ ("month", -1.466337068793427),+ ("integer (numeric)July", -1.8718021769015913)], n = 2}}), ("this|next <day-of-week>", Classifier{okData =
+ Duckling/Ranking/Classifiers/TA_XX.hs view
@@ -0,0 +1,22 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++-----------------------------------------------------------------+-- Auto-generated by regenClassifiers+--+-- DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING+-- @generated+-----------------------------------------------------------------+{-# LANGUAGE OverloadedStrings #-}+module Duckling.Ranking.Classifiers.TA_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers = HashMap.fromList []
Duckling/Ranking/Classifiers/ZH_CN.hs view
@@ -95,10 +95,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("month (grain)", Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ ClassData{prior = -1.0076405104623831,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}, koData =- ClassData{prior = -0.4700036292457356,+ ClassData{prior = -0.45425527227759643, unseen = -3.7376696182833684, likelihoods = HashMap.fromList [("", 0.0)], n = 40}}), ("<time-of-day> o'clock",@@ -124,6 +125,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("number suffix: \21313",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.258096538021482,+ likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("Wednesday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.9444389791664407,@@ -140,44 +148,43 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+ ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -3.5165082281731497),+ [("children's day<part-of-day> <dim time>", -3.367295829986474), ("year (numeric with year symbol)<named-month> <day-of-month>",- -1.5705980791178364),- ("dayday", -1.9070703157390494),- ("hourhour", -3.005682604407159),- ("hourminute", -3.5165082281731497),+ -1.7578579175523736),+ ("dayday", -1.6094379124341003),+ ("hourhour", -3.367295829986474),+ ("hourminute", -3.367295829986474), ("absorption of , after named day<named-month> <day-of-month>",- -1.9070703157390494),- ("dayminute", -3.5165082281731497),- ("tonight<time-of-day> o'clock", -3.005682604407159),+ -1.6094379124341003),+ ("dayminute", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -3.367295829986474), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.5165082281731497),- ("yearday", -1.5705980791178364)],- n = 42},+ -3.367295829986474),+ ("yearday", -1.7578579175523736)],+ n = 64}, koData =- ClassData{prior = -1.0388930539664873,- unseen = -4.1588830833596715,+ ClassData{prior = -1.215022640512521, unseen = -4.276666119016055, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -2.1972245773362196),- ("dayhour", -2.5336968139574325),- ("daymonth", -2.063693184711697),- ("year (numeric with year symbol)February", -3.044522437723423),+ [("children's day<part-of-day> <dim time>", -2.065455299705096),+ ("dayhour", -2.653241964607215),+ ("daymonth", -2.1832383353614793),+ ("year (numeric with year symbol)February", -3.164067588373206), ("<dim time> <part-of-day><time-of-day> o'clock",- -3.044522437723423),- ("hourhour", -3.044522437723423),- ("year (numeric with year symbol)March", -2.5336968139574325),- ("hourminute", -3.044522437723423),- ("yearmonth", -2.1972245773362196),- ("dayminute", -3.044522437723423),+ -3.164067588373206),+ ("hourhour", -3.164067588373206),+ ("year (numeric with year symbol)March", -2.653241964607215),+ ("hourminute", -2.653241964607215),+ ("yearmonth", -2.316769727986002),+ ("dayminute", -2.653241964607215), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.044522437723423),+ -2.653241964607215), ("absorption of , after named dayFebruary",- -2.063693184711697)],- n = 23}}),+ -2.1832383353614793)],+ n = 27}}), ("year (grain)", Classifier{okData = ClassData{prior = -0.8209805520698302,@@ -193,25 +200,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("last tuesday, last july",- Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],- n = 12},- koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.7472144018302211,@@ -301,48 +289,50 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<integer> (latent time-of-day)", Classifier{okData =- ClassData{prior = -1.3217558399823195,- unseen = -2.9444389791664407,+ ClassData{prior = -1.4170660197866443, unseen = -2.995732273553991, likelihoods = HashMap.fromList- [("integer (numeric)", -1.2809338454620642),- ("integer (0..10)", -0.325422400434628)],+ [("integer (numeric)", -1.3350010667323402),+ ("integer (0..10)", -0.3794896217049037)], n = 16}, koData =- ClassData{prior = -0.3101549283038396,- unseen = -3.8501476017100584,+ ClassData{prior = -0.2776317365982795,+ unseen = -3.9889840465642745, likelihoods = HashMap.fromList- [("integer (numeric)", -2.2192034840549946),- ("integer (0..10)", -0.11506932978478723)],- n = 44}}),+ [("integer (numeric)", -2.3608540011180215),+ ("integer (0..10)", -0.28141245943818544),+ ("<number>\20010/\20491", -1.890850371872286)],+ n = 50}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,+ ClassData{prior = 0.0, unseen = -3.332204510175204, likelihoods = HashMap.fromList- [("Octoberordinal (digits)Monday", -1.3350010667323402),- ("monthday", -0.7472144018302211),+ [("Octoberordinal (digits)Monday", -1.6863989535702288),+ ("monthday", -0.7308875085427924), ("month (numeric with month symbol)ordinal (digits)Monday",- -1.3350010667323402)],- n = 8},+ -1.0986122886681098)],+ n = 12}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}), ("month (numeric with month symbol)", Classifier{okData =- ClassData{prior = -0.13976194237515874,- unseen = -3.7612001156935624,+ ClassData{prior = -0.10763066419236544,+ unseen = -3.891820298110627, likelihoods = HashMap.fromList- [("integer (numeric)", -1.0296194171811581),- ("integer (0..10)", -0.4418327522790392)],- n = 40},+ [("integer (numeric)", -1.1631508098056809),+ ("number suffix: \21313", -2.2617630984737906),+ ("integer (0..10)", -0.5753641449035618)],+ n = 44}, koData =- ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+ ClassData{prior = -2.2823823856765264,+ unseen = -2.3025850929940455, likelihoods =- HashMap.fromList [("integer (0..10)", -0.13353139262452263)],- n = 6}}),+ HashMap.fromList [("<number>\20010/\20491", -0.40546510810816444)],+ n = 5}}), ("week (grain)", Classifier{okData = ClassData{prior = -0.8434293836092833,@@ -451,12 +441,11 @@ n = 20}}), ("February", Classifier{okData =- ClassData{prior = -6.453852113757118e-2,- unseen = -2.833213344056216,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("", 0.0)], n = 15}, koData =- ClassData{prior = -2.772588722239781, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <cycle>", Classifier{okData = ClassData{prior = -1.0185695809945732,@@ -485,77 +474,75 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<dim time> <part-of-day>", Classifier{okData =- ClassData{prior = 0.0, unseen = -3.9889840465642745,+ ClassData{prior = 0.0, unseen = -4.248495242049359, likelihoods = HashMap.fromList- [("dayhour", -0.7514160886839211),- ("national dayevening|night", -2.871679624884012),- ("<named-month> <day-of-month>morning", -1.405342556090585),- ("children's dayafternoon", -2.871679624884012),- ("Mondaymorning", -1.7730673362159024)],- n = 24},+ [("dayhour", -0.7375989431307791),+ ("national dayevening|night", -3.1354942159291497),+ ("<named-month> <day-of-month>morning", -1.1895840668738362),+ ("children's dayafternoon", -3.1354942159291497),+ ("Mondaymorning", -2.03688192726104)],+ n = 32}, koData = ClassData{prior = -infinity, unseen = -1.791759469228055, likelihoods = HashMap.fromList [], n = 0}}), ("<part-of-day> <dim time>", Classifier{okData =- ClassData{prior = -0.587786664902119, unseen = -3.891820298110627,+ ClassData{prior = -0.6097655716208943, unseen = -4.07753744390572, likelihoods = HashMap.fromList- [("tonight<integer> (latent time-of-day)", -2.2617630984737906),- ("hourhour", -1.1631508098056809),+ [("tonight<integer> (latent time-of-day)", -2.451005098112319),+ ("hourhour", -1.3523928094442093), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -2.0794415416798357),- ("afternoon<time-of-day> o'clock", -2.4849066497880004),- ("hourminute", -1.9252908618525775),+ -1.6625477377480489),+ ("afternoon<time-of-day> o'clock", -2.6741486494265287),+ ("hourminute", -1.575536360758419), ("afternoon<integer> (latent time-of-day)",- -2.4849066497880004),- ("afternoonhh:mm (time-of-day)", -3.1780538303479458),- ("tonight<time-of-day> o'clock", -2.2617630984737906)],- n = 20},+ -2.6741486494265287),+ ("afternoonhh:mm (time-of-day)", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -2.451005098112319)],+ n = 25}, koData =- ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+ ClassData{prior = -0.7841189587656721,+ unseen = -3.9318256327243257, likelihoods = HashMap.fromList- [("hourhour", -1.2039728043259361),+ [("hourhour", -1.4271163556401458), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -1.8971199848858813),- ("afternoon<time-of-day> o'clock", -1.8971199848858813),- ("hourminute", -1.8971199848858813),+ -1.5141277326297755),+ ("afternoon<time-of-day> o'clock", -2.120263536200091),+ ("hourminute", -1.5141277326297755), ("afternoon<integer> (latent time-of-day)",- -1.742969305058623)],- n = 16}}),+ -1.9661128563728327)],+ n = 21}}), ("<integer> <unit-of-duration>", Classifier{okData =- ClassData{prior = -infinity, unseen = -2.833213344056216,+ ClassData{prior = -infinity, unseen = -3.044522437723423, likelihoods = HashMap.fromList [], n = 0}, koData =- ClassData{prior = 0.0, unseen = -5.877735781779639,+ ClassData{prior = 0.0, unseen = -5.905361848054571, likelihoods = HashMap.fromList- [("week", -2.6560549059838294),- ("integer (0..10)month (grain)", -2.068268241081711),- ("integer (0..10)hour (grain)", -2.8304082931286074),- ("second", -3.235873401236772),- ("integer (0..10)day (grain)", -3.0417173867958143),- ("integer (0..10)year (grain)", -3.572345637857985),- ("integer (numeric)year (grain)", -3.1668805297498204),- ("integer (0..10)second (grain)", -3.235873401236772),- ("day", -3.0417173867958143), ("year", -2.6968769005040847),- ("integer (0..10)minute (grain)", -3.0417173867958143),- ("hour", -2.8304082931286074),- ("integer (0..10)week (grain)", -2.6560549059838294),- ("month", -1.7973932869463112),- ("integer (numeric)month (grain)", -3.1668805297498204),- ("minute", -3.0417173867958143)],- n = 170}}),- ("integer (11..19)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ [("week", -2.6837575085331653),+ ("integer (0..10)month (grain)", -2.535337503414892),+ ("integer (0..10)hour (grain)", -3.06941998934515),+ ("<number>\20010/\20491week (grain)", -3.5047380606029956),+ ("second", -3.2635760037861075),+ ("integer (0..10)day (grain)", -3.06941998934515),+ ("number suffix: \21313month (grain)", -4.293195420967266),+ ("integer (0..10)year (grain)", -3.6000482404073204),+ ("<number>\20010/\20491month (grain)", -3.130044611161585),+ ("integer (numeric)year (grain)", -3.1945831322991562),+ ("integer (0..10)second (grain)", -3.2635760037861075),+ ("day", -3.06941998934515), ("year", -2.7245795030534206),+ ("integer (0..10)minute (grain)", -3.06941998934515),+ ("hour", -2.8581108956779433),+ ("integer (0..10)week (grain)", -3.1945831322991562),+ ("month", -1.7754989483562746),+ ("<number>\20010/\20491hour (grain)", -4.293195420967266),+ ("integer (numeric)month (grain)", -3.1945831322991562),+ ("minute", -3.06941998934515)],+ n = 173}}), ("<time-of-day> am|pm", Classifier{okData = ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,@@ -575,21 +562,25 @@ n = 3}}), ("relative minutes after|past <integer> (hour-of-day)", Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (11..19)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5},+ [("<integer> (latent time-of-day)integer with consecutive unit modifiers",+ -0.7801585575495751),+ ("hour", -0.7801585575495751)],+ n = 10}, koData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (0..10)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5}}),+ [("<integer> (latent time-of-day)number suffix: \21313",+ -1.3862943611198906),+ ("<integer> (latent time-of-day)integer (0..10)",+ -1.3862943611198906),+ ("hour", -0.7801585575495751)],+ n = 10}}), ("army's day", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -599,21 +590,31 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect by \",\"", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.4965075614664802,+ ClassData{prior = -0.2231435513142097, unseen = -4.110873864173311, likelihoods = HashMap.fromList- [("Sunday<named-month> <day-of-month>", -0.7576857016975165),- ("dayday", -0.7576857016975165)],- n = 14},+ [("Sunday<named-month> <day-of-month>", -0.7270487322356266),+ ("dayday", -0.7270487322356266)],+ n = 28}, koData =- ClassData{prior = -1.0986122886681098,+ ClassData{prior = -1.6094379124341003, unseen = -2.9444389791664407, likelihoods = HashMap.fromList [("daymonth", -0.8109302162163288), ("SundayFebruary", -0.8109302162163288)], n = 7}}),+ ("integer with consecutive unit modifiers",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("number suffix: \21313integer (0..10)", -0.6931471805599453),+ ("integer (0..10)integer (0..10)", -0.6931471805599453)],+ n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}), ("second (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.70805020110221,@@ -637,23 +638,21 @@ n = 20}}), ("last <time>", Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,+ ClassData{prior = -1.2286654169163076,+ unseen = -3.4657359027997265, likelihoods = HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],+ [("day", -0.8690378470236094), ("Sunday", -1.3545456628053103),+ ("Tuesday", -1.6422277352570913)], n = 12}, koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,+ ClassData{prior = -0.3462762367178338, unseen = -4.189654742026425, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}),+ [("<integer> (latent time-of-day)", -0.916290731874155),+ ("month (numeric with month symbol)", -2.5649493574615367),+ ("hour", -0.916290731874155), ("month", -2.5649493574615367)],+ n = 29}}), ("March", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -670,22 +669,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next <time>", Classifier{okData =- ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+ ClassData{prior = -1.6486586255873816, unseen = -2.890371757896165, likelihoods = HashMap.fromList [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)], n = 5}, koData =- ClassData{prior = -0.24512245803298496,- unseen = -3.784189633918261,+ ClassData{prior = -0.21357410029805904,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("Wednesday", -1.9694406464655074),- ("<integer> (latent time-of-day)", -1.1962507582320256),- ("month (numeric with month symbol)", -3.068052935133617),- ("day", -1.9694406464655074), ("hour", -1.1962507582320256),- ("month", -3.068052935133617)],- n = 18}}),+ [("Wednesday", -2.1000608288825715),+ ("<integer> (latent time-of-day)", -1.1192315758708455),+ ("month (numeric with month symbol)", -3.1986731175506815),+ ("day", -2.1000608288825715), ("hour", -1.1192315758708455),+ ("month", -3.1986731175506815)],+ n = 21}}), ("last <cycle>", Classifier{okData = ClassData{prior = -0.8472978603872037,@@ -722,24 +721,27 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.59511985013459,+ ClassData{prior = 0.0, unseen = -4.61512051684126, likelihoods = HashMap.fromList- [("week", -2.3877429013343523),- ("integer (0..10)month (grain)", -2.793208009442517),- ("integer (0..10)hour (grain)", -2.3877429013343523),- ("second", -2.793208009442517),- ("integer (0..10)day (grain)", -2.505525936990736),- ("integer (0..10)year (grain)", -3.1986731175506815),- ("integer (0..10)second (grain)", -2.793208009442517),- ("day", -2.505525936990736), ("year", -3.1986731175506815),- ("integer (0..10)minute (grain)", -2.639057329615259),- ("hour", -2.3877429013343523),- ("integer (0..10)week (grain)", -2.3877429013343523),- ("month", -2.793208009442517), ("minute", -2.639057329615259)],+ [("week", -2.4079456086518722),+ ("integer (0..10)hour (grain)", -2.659260036932778),+ ("<number>\20010/\20491week (grain)", -2.995732273553991),+ ("second", -2.8134107167600364),+ ("integer (0..10)day (grain)", -2.5257286443082556),+ ("integer (0..10)year (grain)", -3.2188758248682006),+ ("<number>\20010/\20491month (grain)", -2.8134107167600364),+ ("integer (0..10)second (grain)", -2.8134107167600364),+ ("day", -2.5257286443082556), ("year", -3.2188758248682006),+ ("integer (0..10)minute (grain)", -2.659260036932778),+ ("hour", -2.4079456086518722),+ ("integer (0..10)week (grain)", -2.995732273553991),+ ("month", -2.8134107167600364),+ ("<number>\20010/\20491hour (grain)", -3.506557897319982),+ ("minute", -2.659260036932778)], n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("Tuesday", Classifier{okData =@@ -757,79 +759,95 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<named-month> <day-of-month>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.8283137373023015,+ ClassData{prior = 0.0, unseen = -5.231108616854587, likelihoods = HashMap.fromList- [("Marchinteger (0..10)", -3.028522096376982),- ("Februaryinteger (11..19)", -2.6230569882688175),- ("month (numeric with month symbol)integer (11..19)",- -2.6230569882688175),- ("Marchinteger (numeric)", -3.721669276936927),+ [("month (numeric with month symbol)integer with consecutive unit modifiers",+ -2.392533329656985),+ ("Marchinteger (0..10)", -3.4339872044851463),+ ("Marchinteger (numeric)", -4.127134385045092), ("month (numeric with month symbol)integer (numeric)",- -2.1122313645028266),- ("Februaryinteger (0..10)", -2.740840023925201),- ("month", -0.7427441216993174),+ -2.517696472610991),+ ("Februaryinteger (0..10)", -3.146305132033365),+ ("month (numeric with month symbol)number suffix: \21313",+ -3.146305132033365),+ ("month", -0.7371103039810614), ("month (numeric with month symbol)integer (0..10)",- -2.1122313645028266)],- n = 58},+ -2.517696472610991),+ ("Februaryinteger with consecutive unit modifiers",+ -2.392533329656985),+ ("Februarynumber suffix: \21313", -3.146305132033365)],+ n = 88}, koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("integer (0..10)", Classifier{okData =- ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,- likelihoods = HashMap.fromList [("", 0.0)], n = 174},+ ClassData{prior = -0.38372512147175847,+ unseen = -5.236441962829949,+ likelihoods = HashMap.fromList [("", 0.0)], n = 186}, koData =- ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,- likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+ ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,+ likelihoods = HashMap.fromList [("", 0.0)], n = 87}}), ("last n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.61512051684126,+ ClassData{prior = 0.0, unseen = -4.605170185988091, likelihoods = HashMap.fromList- [("week", -2.995732273553991),- ("integer (0..10)month (grain)", -2.120263536200091),- ("integer (0..10)hour (grain)", -2.4079456086518722),- ("second", -2.659260036932778),- ("integer (0..10)day (grain)", -2.995732273553991),- ("integer (0..10)year (grain)", -3.506557897319982),- ("integer (0..10)second (grain)", -2.659260036932778),- ("day", -2.995732273553991), ("year", -3.506557897319982),- ("integer (0..10)minute (grain)", -2.4079456086518722),- ("hour", -2.4079456086518722),- ("integer (0..10)week (grain)", -2.995732273553991),- ("month", -2.120263536200091), ("minute", -2.4079456086518722)],- n = 43},+ [("week", -2.9856819377004897),+ ("integer (0..10)month (grain)", -3.4965075614664802),+ ("integer (0..10)hour (grain)", -2.3978952727983707),+ ("second", -2.649209701079277),+ ("integer (0..10)day (grain)", -2.9856819377004897),+ ("integer (0..10)year (grain)", -3.4965075614664802),+ ("<number>\20010/\20491month (grain)", -2.3978952727983707),+ ("integer (0..10)second (grain)", -2.649209701079277),+ ("day", -2.9856819377004897), ("year", -3.4965075614664802),+ ("integer (0..10)minute (grain)", -2.3978952727983707),+ ("hour", -2.3978952727983707),+ ("integer (0..10)week (grain)", -2.9856819377004897),+ ("month", -2.1972245773362196),+ ("minute", -2.3978952727983707)],+ n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.772588722239781, likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("<number>\20010/\20491", -0.1823215567939546)],+ n = 4}, koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("integer (0..10)", -0.1823215567939546)],+ n = 4}}), ("n <cycle> last", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.007333185232471,+ ClassData{prior = 0.0, unseen = -4.04305126783455, likelihoods = HashMap.fromList- [("week", -2.379546134130174),- ("integer (0..10)month (grain)", -2.890371757896165),- ("integer (0..10)hour (grain)", -2.379546134130174),- ("second", -2.890371757896165),- ("integer (0..10)day (grain)", -2.379546134130174),- ("integer (0..10)year (grain)", -2.890371757896165),- ("integer (0..10)second (grain)", -2.890371757896165),- ("day", -2.379546134130174), ("year", -2.890371757896165),- ("integer (0..10)minute (grain)", -2.890371757896165),- ("hour", -2.379546134130174),- ("integer (0..10)week (grain)", -2.379546134130174),- ("month", -2.890371757896165), ("minute", -2.890371757896165)],+ [("week", -2.4159137783010487),+ ("integer (0..10)hour (grain)", -2.9267394020670396),+ ("<number>\20010/\20491week (grain)", -2.9267394020670396),+ ("second", -2.9267394020670396),+ ("integer (0..10)day (grain)", -2.4159137783010487),+ ("integer (0..10)year (grain)", -2.9267394020670396),+ ("<number>\20010/\20491month (grain)", -2.9267394020670396),+ ("integer (0..10)second (grain)", -2.9267394020670396),+ ("day", -2.4159137783010487), ("year", -2.9267394020670396),+ ("integer (0..10)minute (grain)", -2.9267394020670396),+ ("hour", -2.4159137783010487),+ ("integer (0..10)week (grain)", -2.9267394020670396),+ ("month", -2.9267394020670396),+ ("<number>\20010/\20491hour (grain)", -2.9267394020670396),+ ("minute", -2.9267394020670396)], n = 20}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("morning", Classifier{okData =@@ -864,6 +882,13 @@ Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<number>\20010/\20491",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),
Duckling/Ranking/Classifiers/ZH_HK.hs view
@@ -95,10 +95,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("month (grain)", Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ ClassData{prior = -1.0076405104623831,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}, koData =- ClassData{prior = -0.4700036292457356,+ ClassData{prior = -0.45425527227759643, unseen = -3.7376696182833684, likelihoods = HashMap.fromList [("", 0.0)], n = 40}}), ("<time-of-day> o'clock",@@ -124,6 +125,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("number suffix: \21313",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.258096538021482,+ likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("Wednesday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.9444389791664407,@@ -140,44 +148,43 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+ ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -3.5165082281731497),+ [("children's day<part-of-day> <dim time>", -3.367295829986474), ("year (numeric with year symbol)<named-month> <day-of-month>",- -1.5705980791178364),- ("dayday", -1.9070703157390494),- ("hourhour", -3.005682604407159),- ("hourminute", -3.5165082281731497),+ -1.7578579175523736),+ ("dayday", -1.6094379124341003),+ ("hourhour", -3.367295829986474),+ ("hourminute", -3.367295829986474), ("absorption of , after named day<named-month> <day-of-month>",- -1.9070703157390494),- ("dayminute", -3.5165082281731497),- ("tonight<time-of-day> o'clock", -3.005682604407159),+ -1.6094379124341003),+ ("dayminute", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -3.367295829986474), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.5165082281731497),- ("yearday", -1.5705980791178364)],- n = 42},+ -3.367295829986474),+ ("yearday", -1.7578579175523736)],+ n = 64}, koData =- ClassData{prior = -1.0388930539664873,- unseen = -4.1588830833596715,+ ClassData{prior = -1.215022640512521, unseen = -4.276666119016055, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -2.1972245773362196),- ("dayhour", -2.5336968139574325),- ("daymonth", -2.063693184711697),- ("year (numeric with year symbol)February", -3.044522437723423),+ [("children's day<part-of-day> <dim time>", -2.065455299705096),+ ("dayhour", -2.653241964607215),+ ("daymonth", -2.1832383353614793),+ ("year (numeric with year symbol)February", -3.164067588373206), ("<dim time> <part-of-day><time-of-day> o'clock",- -3.044522437723423),- ("hourhour", -3.044522437723423),- ("year (numeric with year symbol)March", -2.5336968139574325),- ("hourminute", -3.044522437723423),- ("yearmonth", -2.1972245773362196),- ("dayminute", -3.044522437723423),+ -3.164067588373206),+ ("hourhour", -3.164067588373206),+ ("year (numeric with year symbol)March", -2.653241964607215),+ ("hourminute", -2.653241964607215),+ ("yearmonth", -2.316769727986002),+ ("dayminute", -2.653241964607215), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.044522437723423),+ -2.653241964607215), ("absorption of , after named dayFebruary",- -2.063693184711697)],- n = 23}}),+ -2.1832383353614793)],+ n = 27}}), ("year (grain)", Classifier{okData = ClassData{prior = -0.8209805520698302,@@ -193,25 +200,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("last tuesday, last july",- Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],- n = 12},- koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.7472144018302211,@@ -301,48 +289,50 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<integer> (latent time-of-day)", Classifier{okData =- ClassData{prior = -1.3217558399823195,- unseen = -2.9444389791664407,+ ClassData{prior = -1.4170660197866443, unseen = -2.995732273553991, likelihoods = HashMap.fromList- [("integer (numeric)", -1.2809338454620642),- ("integer (0..10)", -0.325422400434628)],+ [("integer (numeric)", -1.3350010667323402),+ ("integer (0..10)", -0.3794896217049037)], n = 16}, koData =- ClassData{prior = -0.3101549283038396,- unseen = -3.8501476017100584,+ ClassData{prior = -0.2776317365982795,+ unseen = -3.9889840465642745, likelihoods = HashMap.fromList- [("integer (numeric)", -2.2192034840549946),- ("integer (0..10)", -0.11506932978478723)],- n = 44}}),+ [("integer (numeric)", -2.3608540011180215),+ ("integer (0..10)", -0.28141245943818544),+ ("<number>\20010/\20491", -1.890850371872286)],+ n = 50}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,+ ClassData{prior = 0.0, unseen = -3.332204510175204, likelihoods = HashMap.fromList- [("Octoberordinal (digits)Monday", -1.3350010667323402),- ("monthday", -0.7472144018302211),+ [("Octoberordinal (digits)Monday", -1.6863989535702288),+ ("monthday", -0.7308875085427924), ("month (numeric with month symbol)ordinal (digits)Monday",- -1.3350010667323402)],- n = 8},+ -1.0986122886681098)],+ n = 12}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}), ("month (numeric with month symbol)", Classifier{okData =- ClassData{prior = -0.13976194237515874,- unseen = -3.7612001156935624,+ ClassData{prior = -0.10763066419236544,+ unseen = -3.891820298110627, likelihoods = HashMap.fromList- [("integer (numeric)", -1.0296194171811581),- ("integer (0..10)", -0.4418327522790392)],- n = 40},+ [("integer (numeric)", -1.1631508098056809),+ ("number suffix: \21313", -2.2617630984737906),+ ("integer (0..10)", -0.5753641449035618)],+ n = 44}, koData =- ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+ ClassData{prior = -2.2823823856765264,+ unseen = -2.3025850929940455, likelihoods =- HashMap.fromList [("integer (0..10)", -0.13353139262452263)],- n = 6}}),+ HashMap.fromList [("<number>\20010/\20491", -0.40546510810816444)],+ n = 5}}), ("week (grain)", Classifier{okData = ClassData{prior = -0.8434293836092833,@@ -451,12 +441,11 @@ n = 20}}), ("February", Classifier{okData =- ClassData{prior = -6.453852113757118e-2,- unseen = -2.833213344056216,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("", 0.0)], n = 15}, koData =- ClassData{prior = -2.772588722239781, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <cycle>", Classifier{okData = ClassData{prior = -1.0185695809945732,@@ -485,77 +474,75 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<dim time> <part-of-day>", Classifier{okData =- ClassData{prior = 0.0, unseen = -3.9889840465642745,+ ClassData{prior = 0.0, unseen = -4.248495242049359, likelihoods = HashMap.fromList- [("dayhour", -0.7514160886839211),- ("national dayevening|night", -2.871679624884012),- ("<named-month> <day-of-month>morning", -1.405342556090585),- ("children's dayafternoon", -2.871679624884012),- ("Mondaymorning", -1.7730673362159024)],- n = 24},+ [("dayhour", -0.7375989431307791),+ ("national dayevening|night", -3.1354942159291497),+ ("<named-month> <day-of-month>morning", -1.1895840668738362),+ ("children's dayafternoon", -3.1354942159291497),+ ("Mondaymorning", -2.03688192726104)],+ n = 32}, koData = ClassData{prior = -infinity, unseen = -1.791759469228055, likelihoods = HashMap.fromList [], n = 0}}), ("<part-of-day> <dim time>", Classifier{okData =- ClassData{prior = -0.587786664902119, unseen = -3.891820298110627,+ ClassData{prior = -0.6097655716208943, unseen = -4.07753744390572, likelihoods = HashMap.fromList- [("tonight<integer> (latent time-of-day)", -2.2617630984737906),- ("hourhour", -1.1631508098056809),+ [("tonight<integer> (latent time-of-day)", -2.451005098112319),+ ("hourhour", -1.3523928094442093), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -2.0794415416798357),- ("afternoon<time-of-day> o'clock", -2.4849066497880004),- ("hourminute", -1.9252908618525775),+ -1.6625477377480489),+ ("afternoon<time-of-day> o'clock", -2.6741486494265287),+ ("hourminute", -1.575536360758419), ("afternoon<integer> (latent time-of-day)",- -2.4849066497880004),- ("afternoonhh:mm (time-of-day)", -3.1780538303479458),- ("tonight<time-of-day> o'clock", -2.2617630984737906)],- n = 20},+ -2.6741486494265287),+ ("afternoonhh:mm (time-of-day)", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -2.451005098112319)],+ n = 25}, koData =- ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+ ClassData{prior = -0.7841189587656721,+ unseen = -3.9318256327243257, likelihoods = HashMap.fromList- [("hourhour", -1.2039728043259361),+ [("hourhour", -1.4271163556401458), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -1.8971199848858813),- ("afternoon<time-of-day> o'clock", -1.8971199848858813),- ("hourminute", -1.8971199848858813),+ -1.5141277326297755),+ ("afternoon<time-of-day> o'clock", -2.120263536200091),+ ("hourminute", -1.5141277326297755), ("afternoon<integer> (latent time-of-day)",- -1.742969305058623)],- n = 16}}),+ -1.9661128563728327)],+ n = 21}}), ("<integer> <unit-of-duration>", Classifier{okData =- ClassData{prior = -infinity, unseen = -2.833213344056216,+ ClassData{prior = -infinity, unseen = -3.044522437723423, likelihoods = HashMap.fromList [], n = 0}, koData =- ClassData{prior = 0.0, unseen = -5.877735781779639,+ ClassData{prior = 0.0, unseen = -5.905361848054571, likelihoods = HashMap.fromList- [("week", -2.6560549059838294),- ("integer (0..10)month (grain)", -2.068268241081711),- ("integer (0..10)hour (grain)", -2.8304082931286074),- ("second", -3.235873401236772),- ("integer (0..10)day (grain)", -3.0417173867958143),- ("integer (0..10)year (grain)", -3.572345637857985),- ("integer (numeric)year (grain)", -3.1668805297498204),- ("integer (0..10)second (grain)", -3.235873401236772),- ("day", -3.0417173867958143), ("year", -2.6968769005040847),- ("integer (0..10)minute (grain)", -3.0417173867958143),- ("hour", -2.8304082931286074),- ("integer (0..10)week (grain)", -2.6560549059838294),- ("month", -1.7973932869463112),- ("integer (numeric)month (grain)", -3.1668805297498204),- ("minute", -3.0417173867958143)],- n = 170}}),- ("integer (11..19)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ [("week", -2.6837575085331653),+ ("integer (0..10)month (grain)", -2.535337503414892),+ ("integer (0..10)hour (grain)", -3.06941998934515),+ ("<number>\20010/\20491week (grain)", -3.5047380606029956),+ ("second", -3.2635760037861075),+ ("integer (0..10)day (grain)", -3.06941998934515),+ ("number suffix: \21313month (grain)", -4.293195420967266),+ ("integer (0..10)year (grain)", -3.6000482404073204),+ ("<number>\20010/\20491month (grain)", -3.130044611161585),+ ("integer (numeric)year (grain)", -3.1945831322991562),+ ("integer (0..10)second (grain)", -3.2635760037861075),+ ("day", -3.06941998934515), ("year", -2.7245795030534206),+ ("integer (0..10)minute (grain)", -3.06941998934515),+ ("hour", -2.8581108956779433),+ ("integer (0..10)week (grain)", -3.1945831322991562),+ ("month", -1.7754989483562746),+ ("<number>\20010/\20491hour (grain)", -4.293195420967266),+ ("integer (numeric)month (grain)", -3.1945831322991562),+ ("minute", -3.06941998934515)],+ n = 173}}), ("<time-of-day> am|pm", Classifier{okData = ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,@@ -575,21 +562,25 @@ n = 3}}), ("relative minutes after|past <integer> (hour-of-day)", Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (11..19)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5},+ [("<integer> (latent time-of-day)integer with consecutive unit modifiers",+ -0.7801585575495751),+ ("hour", -0.7801585575495751)],+ n = 10}, koData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (0..10)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5}}),+ [("<integer> (latent time-of-day)number suffix: \21313",+ -1.3862943611198906),+ ("<integer> (latent time-of-day)integer (0..10)",+ -1.3862943611198906),+ ("hour", -0.7801585575495751)],+ n = 10}}), ("army's day", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -599,21 +590,31 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect by \",\"", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.4965075614664802,+ ClassData{prior = -0.2231435513142097, unseen = -4.110873864173311, likelihoods = HashMap.fromList- [("Sunday<named-month> <day-of-month>", -0.7576857016975165),- ("dayday", -0.7576857016975165)],- n = 14},+ [("Sunday<named-month> <day-of-month>", -0.7270487322356266),+ ("dayday", -0.7270487322356266)],+ n = 28}, koData =- ClassData{prior = -1.0986122886681098,+ ClassData{prior = -1.6094379124341003, unseen = -2.9444389791664407, likelihoods = HashMap.fromList [("daymonth", -0.8109302162163288), ("SundayFebruary", -0.8109302162163288)], n = 7}}),+ ("integer with consecutive unit modifiers",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("number suffix: \21313integer (0..10)", -0.6931471805599453),+ ("integer (0..10)integer (0..10)", -0.6931471805599453)],+ n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}), ("second (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.70805020110221,@@ -637,23 +638,21 @@ n = 20}}), ("last <time>", Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,+ ClassData{prior = -1.2286654169163076,+ unseen = -3.4657359027997265, likelihoods = HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],+ [("day", -0.8690378470236094), ("Sunday", -1.3545456628053103),+ ("Tuesday", -1.6422277352570913)], n = 12}, koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,+ ClassData{prior = -0.3462762367178338, unseen = -4.189654742026425, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}),+ [("<integer> (latent time-of-day)", -0.916290731874155),+ ("month (numeric with month symbol)", -2.5649493574615367),+ ("hour", -0.916290731874155), ("month", -2.5649493574615367)],+ n = 29}}), ("March", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -670,22 +669,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next <time>", Classifier{okData =- ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+ ClassData{prior = -1.6486586255873816, unseen = -2.890371757896165, likelihoods = HashMap.fromList [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)], n = 5}, koData =- ClassData{prior = -0.24512245803298496,- unseen = -3.784189633918261,+ ClassData{prior = -0.21357410029805904,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("Wednesday", -1.9694406464655074),- ("<integer> (latent time-of-day)", -1.1962507582320256),- ("month (numeric with month symbol)", -3.068052935133617),- ("day", -1.9694406464655074), ("hour", -1.1962507582320256),- ("month", -3.068052935133617)],- n = 18}}),+ [("Wednesday", -2.1000608288825715),+ ("<integer> (latent time-of-day)", -1.1192315758708455),+ ("month (numeric with month symbol)", -3.1986731175506815),+ ("day", -2.1000608288825715), ("hour", -1.1192315758708455),+ ("month", -3.1986731175506815)],+ n = 21}}), ("last <cycle>", Classifier{okData = ClassData{prior = -0.8472978603872037,@@ -722,24 +721,27 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.59511985013459,+ ClassData{prior = 0.0, unseen = -4.61512051684126, likelihoods = HashMap.fromList- [("week", -2.3877429013343523),- ("integer (0..10)month (grain)", -2.793208009442517),- ("integer (0..10)hour (grain)", -2.3877429013343523),- ("second", -2.793208009442517),- ("integer (0..10)day (grain)", -2.505525936990736),- ("integer (0..10)year (grain)", -3.1986731175506815),- ("integer (0..10)second (grain)", -2.793208009442517),- ("day", -2.505525936990736), ("year", -3.1986731175506815),- ("integer (0..10)minute (grain)", -2.639057329615259),- ("hour", -2.3877429013343523),- ("integer (0..10)week (grain)", -2.3877429013343523),- ("month", -2.793208009442517), ("minute", -2.639057329615259)],+ [("week", -2.4079456086518722),+ ("integer (0..10)hour (grain)", -2.659260036932778),+ ("<number>\20010/\20491week (grain)", -2.995732273553991),+ ("second", -2.8134107167600364),+ ("integer (0..10)day (grain)", -2.5257286443082556),+ ("integer (0..10)year (grain)", -3.2188758248682006),+ ("<number>\20010/\20491month (grain)", -2.8134107167600364),+ ("integer (0..10)second (grain)", -2.8134107167600364),+ ("day", -2.5257286443082556), ("year", -3.2188758248682006),+ ("integer (0..10)minute (grain)", -2.659260036932778),+ ("hour", -2.4079456086518722),+ ("integer (0..10)week (grain)", -2.995732273553991),+ ("month", -2.8134107167600364),+ ("<number>\20010/\20491hour (grain)", -3.506557897319982),+ ("minute", -2.659260036932778)], n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("Tuesday", Classifier{okData =@@ -757,79 +759,95 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<named-month> <day-of-month>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.8283137373023015,+ ClassData{prior = 0.0, unseen = -5.231108616854587, likelihoods = HashMap.fromList- [("Marchinteger (0..10)", -3.028522096376982),- ("Februaryinteger (11..19)", -2.6230569882688175),- ("month (numeric with month symbol)integer (11..19)",- -2.6230569882688175),- ("Marchinteger (numeric)", -3.721669276936927),+ [("month (numeric with month symbol)integer with consecutive unit modifiers",+ -2.392533329656985),+ ("Marchinteger (0..10)", -3.4339872044851463),+ ("Marchinteger (numeric)", -4.127134385045092), ("month (numeric with month symbol)integer (numeric)",- -2.1122313645028266),- ("Februaryinteger (0..10)", -2.740840023925201),- ("month", -0.7427441216993174),+ -2.517696472610991),+ ("Februaryinteger (0..10)", -3.146305132033365),+ ("month (numeric with month symbol)number suffix: \21313",+ -3.146305132033365),+ ("month", -0.7371103039810614), ("month (numeric with month symbol)integer (0..10)",- -2.1122313645028266)],- n = 58},+ -2.517696472610991),+ ("Februaryinteger with consecutive unit modifiers",+ -2.392533329656985),+ ("Februarynumber suffix: \21313", -3.146305132033365)],+ n = 88}, koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("integer (0..10)", Classifier{okData =- ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,- likelihoods = HashMap.fromList [("", 0.0)], n = 174},+ ClassData{prior = -0.38372512147175847,+ unseen = -5.236441962829949,+ likelihoods = HashMap.fromList [("", 0.0)], n = 186}, koData =- ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,- likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+ ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,+ likelihoods = HashMap.fromList [("", 0.0)], n = 87}}), ("last n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.61512051684126,+ ClassData{prior = 0.0, unseen = -4.605170185988091, likelihoods = HashMap.fromList- [("week", -2.995732273553991),- ("integer (0..10)month (grain)", -2.120263536200091),- ("integer (0..10)hour (grain)", -2.4079456086518722),- ("second", -2.659260036932778),- ("integer (0..10)day (grain)", -2.995732273553991),- ("integer (0..10)year (grain)", -3.506557897319982),- ("integer (0..10)second (grain)", -2.659260036932778),- ("day", -2.995732273553991), ("year", -3.506557897319982),- ("integer (0..10)minute (grain)", -2.4079456086518722),- ("hour", -2.4079456086518722),- ("integer (0..10)week (grain)", -2.995732273553991),- ("month", -2.120263536200091), ("minute", -2.4079456086518722)],- n = 43},+ [("week", -2.9856819377004897),+ ("integer (0..10)month (grain)", -3.4965075614664802),+ ("integer (0..10)hour (grain)", -2.3978952727983707),+ ("second", -2.649209701079277),+ ("integer (0..10)day (grain)", -2.9856819377004897),+ ("integer (0..10)year (grain)", -3.4965075614664802),+ ("<number>\20010/\20491month (grain)", -2.3978952727983707),+ ("integer (0..10)second (grain)", -2.649209701079277),+ ("day", -2.9856819377004897), ("year", -3.4965075614664802),+ ("integer (0..10)minute (grain)", -2.3978952727983707),+ ("hour", -2.3978952727983707),+ ("integer (0..10)week (grain)", -2.9856819377004897),+ ("month", -2.1972245773362196),+ ("minute", -2.3978952727983707)],+ n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.772588722239781, likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("<number>\20010/\20491", -0.1823215567939546)],+ n = 4}, koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("integer (0..10)", -0.1823215567939546)],+ n = 4}}), ("n <cycle> last", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.007333185232471,+ ClassData{prior = 0.0, unseen = -4.04305126783455, likelihoods = HashMap.fromList- [("week", -2.379546134130174),- ("integer (0..10)month (grain)", -2.890371757896165),- ("integer (0..10)hour (grain)", -2.379546134130174),- ("second", -2.890371757896165),- ("integer (0..10)day (grain)", -2.379546134130174),- ("integer (0..10)year (grain)", -2.890371757896165),- ("integer (0..10)second (grain)", -2.890371757896165),- ("day", -2.379546134130174), ("year", -2.890371757896165),- ("integer (0..10)minute (grain)", -2.890371757896165),- ("hour", -2.379546134130174),- ("integer (0..10)week (grain)", -2.379546134130174),- ("month", -2.890371757896165), ("minute", -2.890371757896165)],+ [("week", -2.4159137783010487),+ ("integer (0..10)hour (grain)", -2.9267394020670396),+ ("<number>\20010/\20491week (grain)", -2.9267394020670396),+ ("second", -2.9267394020670396),+ ("integer (0..10)day (grain)", -2.4159137783010487),+ ("integer (0..10)year (grain)", -2.9267394020670396),+ ("<number>\20010/\20491month (grain)", -2.9267394020670396),+ ("integer (0..10)second (grain)", -2.9267394020670396),+ ("day", -2.4159137783010487), ("year", -2.9267394020670396),+ ("integer (0..10)minute (grain)", -2.9267394020670396),+ ("hour", -2.4159137783010487),+ ("integer (0..10)week (grain)", -2.9267394020670396),+ ("month", -2.9267394020670396),+ ("<number>\20010/\20491hour (grain)", -2.9267394020670396),+ ("minute", -2.9267394020670396)], n = 20}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("morning", Classifier{okData =@@ -864,6 +882,13 @@ Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<number>\20010/\20491",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),
Duckling/Ranking/Classifiers/ZH_MO.hs view
@@ -95,10 +95,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("month (grain)", Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ ClassData{prior = -1.0076405104623831,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}, koData =- ClassData{prior = -0.4700036292457356,+ ClassData{prior = -0.45425527227759643, unseen = -3.7376696182833684, likelihoods = HashMap.fromList [("", 0.0)], n = 40}}), ("<time-of-day> o'clock",@@ -124,6 +125,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("number suffix: \21313",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.258096538021482,+ likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("Wednesday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.9444389791664407,@@ -140,44 +148,43 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+ ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -3.5165082281731497),+ [("children's day<part-of-day> <dim time>", -3.367295829986474), ("year (numeric with year symbol)<named-month> <day-of-month>",- -1.5705980791178364),- ("dayday", -1.9070703157390494),- ("hourhour", -3.005682604407159),- ("hourminute", -3.5165082281731497),+ -1.7578579175523736),+ ("dayday", -1.6094379124341003),+ ("hourhour", -3.367295829986474),+ ("hourminute", -3.367295829986474), ("absorption of , after named day<named-month> <day-of-month>",- -1.9070703157390494),- ("dayminute", -3.5165082281731497),- ("tonight<time-of-day> o'clock", -3.005682604407159),+ -1.6094379124341003),+ ("dayminute", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -3.367295829986474), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.5165082281731497),- ("yearday", -1.5705980791178364)],- n = 42},+ -3.367295829986474),+ ("yearday", -1.7578579175523736)],+ n = 64}, koData =- ClassData{prior = -1.0388930539664873,- unseen = -4.1588830833596715,+ ClassData{prior = -1.215022640512521, unseen = -4.276666119016055, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -2.1972245773362196),- ("dayhour", -2.5336968139574325),- ("daymonth", -2.063693184711697),- ("year (numeric with year symbol)February", -3.044522437723423),+ [("children's day<part-of-day> <dim time>", -2.065455299705096),+ ("dayhour", -2.653241964607215),+ ("daymonth", -2.1832383353614793),+ ("year (numeric with year symbol)February", -3.164067588373206), ("<dim time> <part-of-day><time-of-day> o'clock",- -3.044522437723423),- ("hourhour", -3.044522437723423),- ("year (numeric with year symbol)March", -2.5336968139574325),- ("hourminute", -3.044522437723423),- ("yearmonth", -2.1972245773362196),- ("dayminute", -3.044522437723423),+ -3.164067588373206),+ ("hourhour", -3.164067588373206),+ ("year (numeric with year symbol)March", -2.653241964607215),+ ("hourminute", -2.653241964607215),+ ("yearmonth", -2.316769727986002),+ ("dayminute", -2.653241964607215), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.044522437723423),+ -2.653241964607215), ("absorption of , after named dayFebruary",- -2.063693184711697)],- n = 23}}),+ -2.1832383353614793)],+ n = 27}}), ("year (grain)", Classifier{okData = ClassData{prior = -0.8209805520698302,@@ -193,25 +200,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("last tuesday, last july",- Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],- n = 12},- koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.7472144018302211,@@ -301,48 +289,50 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<integer> (latent time-of-day)", Classifier{okData =- ClassData{prior = -1.3217558399823195,- unseen = -2.9444389791664407,+ ClassData{prior = -1.4170660197866443, unseen = -2.995732273553991, likelihoods = HashMap.fromList- [("integer (numeric)", -1.2809338454620642),- ("integer (0..10)", -0.325422400434628)],+ [("integer (numeric)", -1.3350010667323402),+ ("integer (0..10)", -0.3794896217049037)], n = 16}, koData =- ClassData{prior = -0.3101549283038396,- unseen = -3.8501476017100584,+ ClassData{prior = -0.2776317365982795,+ unseen = -3.9889840465642745, likelihoods = HashMap.fromList- [("integer (numeric)", -2.2192034840549946),- ("integer (0..10)", -0.11506932978478723)],- n = 44}}),+ [("integer (numeric)", -2.3608540011180215),+ ("integer (0..10)", -0.28141245943818544),+ ("<number>\20010/\20491", -1.890850371872286)],+ n = 50}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,+ ClassData{prior = 0.0, unseen = -3.332204510175204, likelihoods = HashMap.fromList- [("Octoberordinal (digits)Monday", -1.3350010667323402),- ("monthday", -0.7472144018302211),+ [("Octoberordinal (digits)Monday", -1.6863989535702288),+ ("monthday", -0.7308875085427924), ("month (numeric with month symbol)ordinal (digits)Monday",- -1.3350010667323402)],- n = 8},+ -1.0986122886681098)],+ n = 12}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}), ("month (numeric with month symbol)", Classifier{okData =- ClassData{prior = -0.13976194237515874,- unseen = -3.7612001156935624,+ ClassData{prior = -0.10763066419236544,+ unseen = -3.891820298110627, likelihoods = HashMap.fromList- [("integer (numeric)", -1.0296194171811581),- ("integer (0..10)", -0.4418327522790392)],- n = 40},+ [("integer (numeric)", -1.1631508098056809),+ ("number suffix: \21313", -2.2617630984737906),+ ("integer (0..10)", -0.5753641449035618)],+ n = 44}, koData =- ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+ ClassData{prior = -2.2823823856765264,+ unseen = -2.3025850929940455, likelihoods =- HashMap.fromList [("integer (0..10)", -0.13353139262452263)],- n = 6}}),+ HashMap.fromList [("<number>\20010/\20491", -0.40546510810816444)],+ n = 5}}), ("week (grain)", Classifier{okData = ClassData{prior = -0.8434293836092833,@@ -451,12 +441,11 @@ n = 20}}), ("February", Classifier{okData =- ClassData{prior = -6.453852113757118e-2,- unseen = -2.833213344056216,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("", 0.0)], n = 15}, koData =- ClassData{prior = -2.772588722239781, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <cycle>", Classifier{okData = ClassData{prior = -1.0185695809945732,@@ -485,77 +474,75 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<dim time> <part-of-day>", Classifier{okData =- ClassData{prior = 0.0, unseen = -3.9889840465642745,+ ClassData{prior = 0.0, unseen = -4.248495242049359, likelihoods = HashMap.fromList- [("dayhour", -0.7514160886839211),- ("national dayevening|night", -2.871679624884012),- ("<named-month> <day-of-month>morning", -1.405342556090585),- ("children's dayafternoon", -2.871679624884012),- ("Mondaymorning", -1.7730673362159024)],- n = 24},+ [("dayhour", -0.7375989431307791),+ ("national dayevening|night", -3.1354942159291497),+ ("<named-month> <day-of-month>morning", -1.1895840668738362),+ ("children's dayafternoon", -3.1354942159291497),+ ("Mondaymorning", -2.03688192726104)],+ n = 32}, koData = ClassData{prior = -infinity, unseen = -1.791759469228055, likelihoods = HashMap.fromList [], n = 0}}), ("<part-of-day> <dim time>", Classifier{okData =- ClassData{prior = -0.587786664902119, unseen = -3.891820298110627,+ ClassData{prior = -0.6097655716208943, unseen = -4.07753744390572, likelihoods = HashMap.fromList- [("tonight<integer> (latent time-of-day)", -2.2617630984737906),- ("hourhour", -1.1631508098056809),+ [("tonight<integer> (latent time-of-day)", -2.451005098112319),+ ("hourhour", -1.3523928094442093), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -2.0794415416798357),- ("afternoon<time-of-day> o'clock", -2.4849066497880004),- ("hourminute", -1.9252908618525775),+ -1.6625477377480489),+ ("afternoon<time-of-day> o'clock", -2.6741486494265287),+ ("hourminute", -1.575536360758419), ("afternoon<integer> (latent time-of-day)",- -2.4849066497880004),- ("afternoonhh:mm (time-of-day)", -3.1780538303479458),- ("tonight<time-of-day> o'clock", -2.2617630984737906)],- n = 20},+ -2.6741486494265287),+ ("afternoonhh:mm (time-of-day)", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -2.451005098112319)],+ n = 25}, koData =- ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+ ClassData{prior = -0.7841189587656721,+ unseen = -3.9318256327243257, likelihoods = HashMap.fromList- [("hourhour", -1.2039728043259361),+ [("hourhour", -1.4271163556401458), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -1.8971199848858813),- ("afternoon<time-of-day> o'clock", -1.8971199848858813),- ("hourminute", -1.8971199848858813),+ -1.5141277326297755),+ ("afternoon<time-of-day> o'clock", -2.120263536200091),+ ("hourminute", -1.5141277326297755), ("afternoon<integer> (latent time-of-day)",- -1.742969305058623)],- n = 16}}),+ -1.9661128563728327)],+ n = 21}}), ("<integer> <unit-of-duration>", Classifier{okData =- ClassData{prior = -infinity, unseen = -2.833213344056216,+ ClassData{prior = -infinity, unseen = -3.044522437723423, likelihoods = HashMap.fromList [], n = 0}, koData =- ClassData{prior = 0.0, unseen = -5.877735781779639,+ ClassData{prior = 0.0, unseen = -5.905361848054571, likelihoods = HashMap.fromList- [("week", -2.6560549059838294),- ("integer (0..10)month (grain)", -2.068268241081711),- ("integer (0..10)hour (grain)", -2.8304082931286074),- ("second", -3.235873401236772),- ("integer (0..10)day (grain)", -3.0417173867958143),- ("integer (0..10)year (grain)", -3.572345637857985),- ("integer (numeric)year (grain)", -3.1668805297498204),- ("integer (0..10)second (grain)", -3.235873401236772),- ("day", -3.0417173867958143), ("year", -2.6968769005040847),- ("integer (0..10)minute (grain)", -3.0417173867958143),- ("hour", -2.8304082931286074),- ("integer (0..10)week (grain)", -2.6560549059838294),- ("month", -1.7973932869463112),- ("integer (numeric)month (grain)", -3.1668805297498204),- ("minute", -3.0417173867958143)],- n = 170}}),- ("integer (11..19)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ [("week", -2.6837575085331653),+ ("integer (0..10)month (grain)", -2.535337503414892),+ ("integer (0..10)hour (grain)", -3.06941998934515),+ ("<number>\20010/\20491week (grain)", -3.5047380606029956),+ ("second", -3.2635760037861075),+ ("integer (0..10)day (grain)", -3.06941998934515),+ ("number suffix: \21313month (grain)", -4.293195420967266),+ ("integer (0..10)year (grain)", -3.6000482404073204),+ ("<number>\20010/\20491month (grain)", -3.130044611161585),+ ("integer (numeric)year (grain)", -3.1945831322991562),+ ("integer (0..10)second (grain)", -3.2635760037861075),+ ("day", -3.06941998934515), ("year", -2.7245795030534206),+ ("integer (0..10)minute (grain)", -3.06941998934515),+ ("hour", -2.8581108956779433),+ ("integer (0..10)week (grain)", -3.1945831322991562),+ ("month", -1.7754989483562746),+ ("<number>\20010/\20491hour (grain)", -4.293195420967266),+ ("integer (numeric)month (grain)", -3.1945831322991562),+ ("minute", -3.06941998934515)],+ n = 173}}), ("<time-of-day> am|pm", Classifier{okData = ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,@@ -575,21 +562,25 @@ n = 3}}), ("relative minutes after|past <integer> (hour-of-day)", Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (11..19)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5},+ [("<integer> (latent time-of-day)integer with consecutive unit modifiers",+ -0.7801585575495751),+ ("hour", -0.7801585575495751)],+ n = 10}, koData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (0..10)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5}}),+ [("<integer> (latent time-of-day)number suffix: \21313",+ -1.3862943611198906),+ ("<integer> (latent time-of-day)integer (0..10)",+ -1.3862943611198906),+ ("hour", -0.7801585575495751)],+ n = 10}}), ("army's day", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -599,21 +590,31 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect by \",\"", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.4965075614664802,+ ClassData{prior = -0.2231435513142097, unseen = -4.110873864173311, likelihoods = HashMap.fromList- [("Sunday<named-month> <day-of-month>", -0.7576857016975165),- ("dayday", -0.7576857016975165)],- n = 14},+ [("Sunday<named-month> <day-of-month>", -0.7270487322356266),+ ("dayday", -0.7270487322356266)],+ n = 28}, koData =- ClassData{prior = -1.0986122886681098,+ ClassData{prior = -1.6094379124341003, unseen = -2.9444389791664407, likelihoods = HashMap.fromList [("daymonth", -0.8109302162163288), ("SundayFebruary", -0.8109302162163288)], n = 7}}),+ ("integer with consecutive unit modifiers",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("number suffix: \21313integer (0..10)", -0.6931471805599453),+ ("integer (0..10)integer (0..10)", -0.6931471805599453)],+ n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}), ("second (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.70805020110221,@@ -637,23 +638,21 @@ n = 20}}), ("last <time>", Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,+ ClassData{prior = -1.2286654169163076,+ unseen = -3.4657359027997265, likelihoods = HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],+ [("day", -0.8690378470236094), ("Sunday", -1.3545456628053103),+ ("Tuesday", -1.6422277352570913)], n = 12}, koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,+ ClassData{prior = -0.3462762367178338, unseen = -4.189654742026425, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}),+ [("<integer> (latent time-of-day)", -0.916290731874155),+ ("month (numeric with month symbol)", -2.5649493574615367),+ ("hour", -0.916290731874155), ("month", -2.5649493574615367)],+ n = 29}}), ("March", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -670,22 +669,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next <time>", Classifier{okData =- ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+ ClassData{prior = -1.6486586255873816, unseen = -2.890371757896165, likelihoods = HashMap.fromList [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)], n = 5}, koData =- ClassData{prior = -0.24512245803298496,- unseen = -3.784189633918261,+ ClassData{prior = -0.21357410029805904,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("Wednesday", -1.9694406464655074),- ("<integer> (latent time-of-day)", -1.1962507582320256),- ("month (numeric with month symbol)", -3.068052935133617),- ("day", -1.9694406464655074), ("hour", -1.1962507582320256),- ("month", -3.068052935133617)],- n = 18}}),+ [("Wednesday", -2.1000608288825715),+ ("<integer> (latent time-of-day)", -1.1192315758708455),+ ("month (numeric with month symbol)", -3.1986731175506815),+ ("day", -2.1000608288825715), ("hour", -1.1192315758708455),+ ("month", -3.1986731175506815)],+ n = 21}}), ("last <cycle>", Classifier{okData = ClassData{prior = -0.8472978603872037,@@ -722,24 +721,27 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.59511985013459,+ ClassData{prior = 0.0, unseen = -4.61512051684126, likelihoods = HashMap.fromList- [("week", -2.3877429013343523),- ("integer (0..10)month (grain)", -2.793208009442517),- ("integer (0..10)hour (grain)", -2.3877429013343523),- ("second", -2.793208009442517),- ("integer (0..10)day (grain)", -2.505525936990736),- ("integer (0..10)year (grain)", -3.1986731175506815),- ("integer (0..10)second (grain)", -2.793208009442517),- ("day", -2.505525936990736), ("year", -3.1986731175506815),- ("integer (0..10)minute (grain)", -2.639057329615259),- ("hour", -2.3877429013343523),- ("integer (0..10)week (grain)", -2.3877429013343523),- ("month", -2.793208009442517), ("minute", -2.639057329615259)],+ [("week", -2.4079456086518722),+ ("integer (0..10)hour (grain)", -2.659260036932778),+ ("<number>\20010/\20491week (grain)", -2.995732273553991),+ ("second", -2.8134107167600364),+ ("integer (0..10)day (grain)", -2.5257286443082556),+ ("integer (0..10)year (grain)", -3.2188758248682006),+ ("<number>\20010/\20491month (grain)", -2.8134107167600364),+ ("integer (0..10)second (grain)", -2.8134107167600364),+ ("day", -2.5257286443082556), ("year", -3.2188758248682006),+ ("integer (0..10)minute (grain)", -2.659260036932778),+ ("hour", -2.4079456086518722),+ ("integer (0..10)week (grain)", -2.995732273553991),+ ("month", -2.8134107167600364),+ ("<number>\20010/\20491hour (grain)", -3.506557897319982),+ ("minute", -2.659260036932778)], n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("Tuesday", Classifier{okData =@@ -757,79 +759,95 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<named-month> <day-of-month>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.8283137373023015,+ ClassData{prior = 0.0, unseen = -5.231108616854587, likelihoods = HashMap.fromList- [("Marchinteger (0..10)", -3.028522096376982),- ("Februaryinteger (11..19)", -2.6230569882688175),- ("month (numeric with month symbol)integer (11..19)",- -2.6230569882688175),- ("Marchinteger (numeric)", -3.721669276936927),+ [("month (numeric with month symbol)integer with consecutive unit modifiers",+ -2.392533329656985),+ ("Marchinteger (0..10)", -3.4339872044851463),+ ("Marchinteger (numeric)", -4.127134385045092), ("month (numeric with month symbol)integer (numeric)",- -2.1122313645028266),- ("Februaryinteger (0..10)", -2.740840023925201),- ("month", -0.7427441216993174),+ -2.517696472610991),+ ("Februaryinteger (0..10)", -3.146305132033365),+ ("month (numeric with month symbol)number suffix: \21313",+ -3.146305132033365),+ ("month", -0.7371103039810614), ("month (numeric with month symbol)integer (0..10)",- -2.1122313645028266)],- n = 58},+ -2.517696472610991),+ ("Februaryinteger with consecutive unit modifiers",+ -2.392533329656985),+ ("Februarynumber suffix: \21313", -3.146305132033365)],+ n = 88}, koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("integer (0..10)", Classifier{okData =- ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,- likelihoods = HashMap.fromList [("", 0.0)], n = 174},+ ClassData{prior = -0.38372512147175847,+ unseen = -5.236441962829949,+ likelihoods = HashMap.fromList [("", 0.0)], n = 186}, koData =- ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,- likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+ ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,+ likelihoods = HashMap.fromList [("", 0.0)], n = 87}}), ("last n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.61512051684126,+ ClassData{prior = 0.0, unseen = -4.605170185988091, likelihoods = HashMap.fromList- [("week", -2.995732273553991),- ("integer (0..10)month (grain)", -2.120263536200091),- ("integer (0..10)hour (grain)", -2.4079456086518722),- ("second", -2.659260036932778),- ("integer (0..10)day (grain)", -2.995732273553991),- ("integer (0..10)year (grain)", -3.506557897319982),- ("integer (0..10)second (grain)", -2.659260036932778),- ("day", -2.995732273553991), ("year", -3.506557897319982),- ("integer (0..10)minute (grain)", -2.4079456086518722),- ("hour", -2.4079456086518722),- ("integer (0..10)week (grain)", -2.995732273553991),- ("month", -2.120263536200091), ("minute", -2.4079456086518722)],- n = 43},+ [("week", -2.9856819377004897),+ ("integer (0..10)month (grain)", -3.4965075614664802),+ ("integer (0..10)hour (grain)", -2.3978952727983707),+ ("second", -2.649209701079277),+ ("integer (0..10)day (grain)", -2.9856819377004897),+ ("integer (0..10)year (grain)", -3.4965075614664802),+ ("<number>\20010/\20491month (grain)", -2.3978952727983707),+ ("integer (0..10)second (grain)", -2.649209701079277),+ ("day", -2.9856819377004897), ("year", -3.4965075614664802),+ ("integer (0..10)minute (grain)", -2.3978952727983707),+ ("hour", -2.3978952727983707),+ ("integer (0..10)week (grain)", -2.9856819377004897),+ ("month", -2.1972245773362196),+ ("minute", -2.3978952727983707)],+ n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.772588722239781, likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("<number>\20010/\20491", -0.1823215567939546)],+ n = 4}, koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("integer (0..10)", -0.1823215567939546)],+ n = 4}}), ("n <cycle> last", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.007333185232471,+ ClassData{prior = 0.0, unseen = -4.04305126783455, likelihoods = HashMap.fromList- [("week", -2.379546134130174),- ("integer (0..10)month (grain)", -2.890371757896165),- ("integer (0..10)hour (grain)", -2.379546134130174),- ("second", -2.890371757896165),- ("integer (0..10)day (grain)", -2.379546134130174),- ("integer (0..10)year (grain)", -2.890371757896165),- ("integer (0..10)second (grain)", -2.890371757896165),- ("day", -2.379546134130174), ("year", -2.890371757896165),- ("integer (0..10)minute (grain)", -2.890371757896165),- ("hour", -2.379546134130174),- ("integer (0..10)week (grain)", -2.379546134130174),- ("month", -2.890371757896165), ("minute", -2.890371757896165)],+ [("week", -2.4159137783010487),+ ("integer (0..10)hour (grain)", -2.9267394020670396),+ ("<number>\20010/\20491week (grain)", -2.9267394020670396),+ ("second", -2.9267394020670396),+ ("integer (0..10)day (grain)", -2.4159137783010487),+ ("integer (0..10)year (grain)", -2.9267394020670396),+ ("<number>\20010/\20491month (grain)", -2.9267394020670396),+ ("integer (0..10)second (grain)", -2.9267394020670396),+ ("day", -2.4159137783010487), ("year", -2.9267394020670396),+ ("integer (0..10)minute (grain)", -2.9267394020670396),+ ("hour", -2.4159137783010487),+ ("integer (0..10)week (grain)", -2.9267394020670396),+ ("month", -2.9267394020670396),+ ("<number>\20010/\20491hour (grain)", -2.9267394020670396),+ ("minute", -2.9267394020670396)], n = 20}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("morning", Classifier{okData =@@ -864,6 +882,13 @@ Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<number>\20010/\20491",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),
Duckling/Ranking/Classifiers/ZH_TW.hs view
@@ -95,10 +95,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("month (grain)", Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ ClassData{prior = -1.0076405104623831,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}, koData =- ClassData{prior = -0.4700036292457356,+ ClassData{prior = -0.45425527227759643, unseen = -3.7376696182833684, likelihoods = HashMap.fromList [("", 0.0)], n = 40}}), ("<time-of-day> o'clock",@@ -124,6 +125,13 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),+ ("number suffix: \21313",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.258096538021482,+ likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("Wednesday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.9444389791664407,@@ -140,44 +148,43 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+ ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -3.5165082281731497),+ [("children's day<part-of-day> <dim time>", -3.367295829986474), ("year (numeric with year symbol)<named-month> <day-of-month>",- -1.5705980791178364),- ("dayday", -1.9070703157390494),- ("hourhour", -3.005682604407159),- ("hourminute", -3.5165082281731497),+ -1.7578579175523736),+ ("dayday", -1.6094379124341003),+ ("hourhour", -3.367295829986474),+ ("hourminute", -3.367295829986474), ("absorption of , after named day<named-month> <day-of-month>",- -1.9070703157390494),- ("dayminute", -3.5165082281731497),- ("tonight<time-of-day> o'clock", -3.005682604407159),+ -1.6094379124341003),+ ("dayminute", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -3.367295829986474), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.5165082281731497),- ("yearday", -1.5705980791178364)],- n = 42},+ -3.367295829986474),+ ("yearday", -1.7578579175523736)],+ n = 64}, koData =- ClassData{prior = -1.0388930539664873,- unseen = -4.1588830833596715,+ ClassData{prior = -1.215022640512521, unseen = -4.276666119016055, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -2.1972245773362196),- ("dayhour", -2.5336968139574325),- ("daymonth", -2.063693184711697),- ("year (numeric with year symbol)February", -3.044522437723423),+ [("children's day<part-of-day> <dim time>", -2.065455299705096),+ ("dayhour", -2.653241964607215),+ ("daymonth", -2.1832383353614793),+ ("year (numeric with year symbol)February", -3.164067588373206), ("<dim time> <part-of-day><time-of-day> o'clock",- -3.044522437723423),- ("hourhour", -3.044522437723423),- ("year (numeric with year symbol)March", -2.5336968139574325),- ("hourminute", -3.044522437723423),- ("yearmonth", -2.1972245773362196),- ("dayminute", -3.044522437723423),+ -3.164067588373206),+ ("hourhour", -3.164067588373206),+ ("year (numeric with year symbol)March", -2.653241964607215),+ ("hourminute", -2.653241964607215),+ ("yearmonth", -2.316769727986002),+ ("dayminute", -2.653241964607215), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.044522437723423),+ -2.653241964607215), ("absorption of , after named dayFebruary",- -2.063693184711697)],- n = 23}}),+ -2.1832383353614793)],+ n = 27}}), ("year (grain)", Classifier{okData = ClassData{prior = -0.8209805520698302,@@ -193,25 +200,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("last tuesday, last july",- Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],- n = 12},- koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.7472144018302211,@@ -301,48 +289,50 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<integer> (latent time-of-day)", Classifier{okData =- ClassData{prior = -1.3217558399823195,- unseen = -2.9444389791664407,+ ClassData{prior = -1.4170660197866443, unseen = -2.995732273553991, likelihoods = HashMap.fromList- [("integer (numeric)", -1.2809338454620642),- ("integer (0..10)", -0.325422400434628)],+ [("integer (numeric)", -1.3350010667323402),+ ("integer (0..10)", -0.3794896217049037)], n = 16}, koData =- ClassData{prior = -0.3101549283038396,- unseen = -3.8501476017100584,+ ClassData{prior = -0.2776317365982795,+ unseen = -3.9889840465642745, likelihoods = HashMap.fromList- [("integer (numeric)", -2.2192034840549946),- ("integer (0..10)", -0.11506932978478723)],- n = 44}}),+ [("integer (numeric)", -2.3608540011180215),+ ("integer (0..10)", -0.28141245943818544),+ ("<number>\20010/\20491", -1.890850371872286)],+ n = 50}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,+ ClassData{prior = 0.0, unseen = -3.332204510175204, likelihoods = HashMap.fromList- [("Octoberordinal (digits)Monday", -1.3350010667323402),- ("monthday", -0.7472144018302211),+ [("Octoberordinal (digits)Monday", -1.6863989535702288),+ ("monthday", -0.7308875085427924), ("month (numeric with month symbol)ordinal (digits)Monday",- -1.3350010667323402)],- n = 8},+ -1.0986122886681098)],+ n = 12}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}), ("month (numeric with month symbol)", Classifier{okData =- ClassData{prior = -0.13976194237515874,- unseen = -3.7612001156935624,+ ClassData{prior = -0.10763066419236544,+ unseen = -3.891820298110627, likelihoods = HashMap.fromList- [("integer (numeric)", -1.0296194171811581),- ("integer (0..10)", -0.4418327522790392)],- n = 40},+ [("integer (numeric)", -1.1631508098056809),+ ("number suffix: \21313", -2.2617630984737906),+ ("integer (0..10)", -0.5753641449035618)],+ n = 44}, koData =- ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+ ClassData{prior = -2.2823823856765264,+ unseen = -2.3025850929940455, likelihoods =- HashMap.fromList [("integer (0..10)", -0.13353139262452263)],- n = 6}}),+ HashMap.fromList [("<number>\20010/\20491", -0.40546510810816444)],+ n = 5}}), ("week (grain)", Classifier{okData = ClassData{prior = -0.8434293836092833,@@ -451,12 +441,11 @@ n = 20}}), ("February", Classifier{okData =- ClassData{prior = -6.453852113757118e-2,- unseen = -2.833213344056216,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("", 0.0)], n = 15}, koData =- ClassData{prior = -2.772588722239781, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <cycle>", Classifier{okData = ClassData{prior = -1.0185695809945732,@@ -485,77 +474,75 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<dim time> <part-of-day>", Classifier{okData =- ClassData{prior = 0.0, unseen = -3.9889840465642745,+ ClassData{prior = 0.0, unseen = -4.248495242049359, likelihoods = HashMap.fromList- [("dayhour", -0.7514160886839211),- ("national dayevening|night", -2.871679624884012),- ("<named-month> <day-of-month>morning", -1.405342556090585),- ("children's dayafternoon", -2.871679624884012),- ("Mondaymorning", -1.7730673362159024)],- n = 24},+ [("dayhour", -0.7375989431307791),+ ("national dayevening|night", -3.1354942159291497),+ ("<named-month> <day-of-month>morning", -1.1895840668738362),+ ("children's dayafternoon", -3.1354942159291497),+ ("Mondaymorning", -2.03688192726104)],+ n = 32}, koData = ClassData{prior = -infinity, unseen = -1.791759469228055, likelihoods = HashMap.fromList [], n = 0}}), ("<part-of-day> <dim time>", Classifier{okData =- ClassData{prior = -0.587786664902119, unseen = -3.891820298110627,+ ClassData{prior = -0.6097655716208943, unseen = -4.07753744390572, likelihoods = HashMap.fromList- [("tonight<integer> (latent time-of-day)", -2.2617630984737906),- ("hourhour", -1.1631508098056809),+ [("tonight<integer> (latent time-of-day)", -2.451005098112319),+ ("hourhour", -1.3523928094442093), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -2.0794415416798357),- ("afternoon<time-of-day> o'clock", -2.4849066497880004),- ("hourminute", -1.9252908618525775),+ -1.6625477377480489),+ ("afternoon<time-of-day> o'clock", -2.6741486494265287),+ ("hourminute", -1.575536360758419), ("afternoon<integer> (latent time-of-day)",- -2.4849066497880004),- ("afternoonhh:mm (time-of-day)", -3.1780538303479458),- ("tonight<time-of-day> o'clock", -2.2617630984737906)],- n = 20},+ -2.6741486494265287),+ ("afternoonhh:mm (time-of-day)", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -2.451005098112319)],+ n = 25}, koData =- ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+ ClassData{prior = -0.7841189587656721,+ unseen = -3.9318256327243257, likelihoods = HashMap.fromList- [("hourhour", -1.2039728043259361),+ [("hourhour", -1.4271163556401458), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -1.8971199848858813),- ("afternoon<time-of-day> o'clock", -1.8971199848858813),- ("hourminute", -1.8971199848858813),+ -1.5141277326297755),+ ("afternoon<time-of-day> o'clock", -2.120263536200091),+ ("hourminute", -1.5141277326297755), ("afternoon<integer> (latent time-of-day)",- -1.742969305058623)],- n = 16}}),+ -1.9661128563728327)],+ n = 21}}), ("<integer> <unit-of-duration>", Classifier{okData =- ClassData{prior = -infinity, unseen = -2.833213344056216,+ ClassData{prior = -infinity, unseen = -3.044522437723423, likelihoods = HashMap.fromList [], n = 0}, koData =- ClassData{prior = 0.0, unseen = -5.877735781779639,+ ClassData{prior = 0.0, unseen = -5.905361848054571, likelihoods = HashMap.fromList- [("week", -2.6560549059838294),- ("integer (0..10)month (grain)", -2.068268241081711),- ("integer (0..10)hour (grain)", -2.8304082931286074),- ("second", -3.235873401236772),- ("integer (0..10)day (grain)", -3.0417173867958143),- ("integer (0..10)year (grain)", -3.572345637857985),- ("integer (numeric)year (grain)", -3.1668805297498204),- ("integer (0..10)second (grain)", -3.235873401236772),- ("day", -3.0417173867958143), ("year", -2.6968769005040847),- ("integer (0..10)minute (grain)", -3.0417173867958143),- ("hour", -2.8304082931286074),- ("integer (0..10)week (grain)", -2.6560549059838294),- ("month", -1.7973932869463112),- ("integer (numeric)month (grain)", -3.1668805297498204),- ("minute", -3.0417173867958143)],- n = 170}}),- ("integer (11..19)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ [("week", -2.6837575085331653),+ ("integer (0..10)month (grain)", -2.535337503414892),+ ("integer (0..10)hour (grain)", -3.06941998934515),+ ("<number>\20010/\20491week (grain)", -3.5047380606029956),+ ("second", -3.2635760037861075),+ ("integer (0..10)day (grain)", -3.06941998934515),+ ("number suffix: \21313month (grain)", -4.293195420967266),+ ("integer (0..10)year (grain)", -3.6000482404073204),+ ("<number>\20010/\20491month (grain)", -3.130044611161585),+ ("integer (numeric)year (grain)", -3.1945831322991562),+ ("integer (0..10)second (grain)", -3.2635760037861075),+ ("day", -3.06941998934515), ("year", -2.7245795030534206),+ ("integer (0..10)minute (grain)", -3.06941998934515),+ ("hour", -2.8581108956779433),+ ("integer (0..10)week (grain)", -3.1945831322991562),+ ("month", -1.7754989483562746),+ ("<number>\20010/\20491hour (grain)", -4.293195420967266),+ ("integer (numeric)month (grain)", -3.1945831322991562),+ ("minute", -3.06941998934515)],+ n = 173}}), ("<time-of-day> am|pm", Classifier{okData = ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,@@ -575,21 +562,25 @@ n = 3}}), ("relative minutes after|past <integer> (hour-of-day)", Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (11..19)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5},+ [("<integer> (latent time-of-day)integer with consecutive unit modifiers",+ -0.7801585575495751),+ ("hour", -0.7801585575495751)],+ n = 10}, koData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (0..10)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5}}),+ [("<integer> (latent time-of-day)number suffix: \21313",+ -1.3862943611198906),+ ("<integer> (latent time-of-day)integer (0..10)",+ -1.3862943611198906),+ ("hour", -0.7801585575495751)],+ n = 10}}), ("army's day", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -599,21 +590,31 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect by \",\"", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.4965075614664802,+ ClassData{prior = -0.2231435513142097, unseen = -4.110873864173311, likelihoods = HashMap.fromList- [("Sunday<named-month> <day-of-month>", -0.7576857016975165),- ("dayday", -0.7576857016975165)],- n = 14},+ [("Sunday<named-month> <day-of-month>", -0.7270487322356266),+ ("dayday", -0.7270487322356266)],+ n = 28}, koData =- ClassData{prior = -1.0986122886681098,+ ClassData{prior = -1.6094379124341003, unseen = -2.9444389791664407, likelihoods = HashMap.fromList [("daymonth", -0.8109302162163288), ("SundayFebruary", -0.8109302162163288)], n = 7}}),+ ("integer with consecutive unit modifiers",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("number suffix: \21313integer (0..10)", -0.6931471805599453),+ ("integer (0..10)integer (0..10)", -0.6931471805599453)],+ n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}), ("second (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.70805020110221,@@ -637,23 +638,21 @@ n = 20}}), ("last <time>", Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,+ ClassData{prior = -1.2286654169163076,+ unseen = -3.4657359027997265, likelihoods = HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],+ [("day", -0.8690378470236094), ("Sunday", -1.3545456628053103),+ ("Tuesday", -1.6422277352570913)], n = 12}, koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,+ ClassData{prior = -0.3462762367178338, unseen = -4.189654742026425, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}),+ [("<integer> (latent time-of-day)", -0.916290731874155),+ ("month (numeric with month symbol)", -2.5649493574615367),+ ("hour", -0.916290731874155), ("month", -2.5649493574615367)],+ n = 29}}), ("March", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -670,22 +669,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next <time>", Classifier{okData =- ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+ ClassData{prior = -1.6486586255873816, unseen = -2.890371757896165, likelihoods = HashMap.fromList [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)], n = 5}, koData =- ClassData{prior = -0.24512245803298496,- unseen = -3.784189633918261,+ ClassData{prior = -0.21357410029805904,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("Wednesday", -1.9694406464655074),- ("<integer> (latent time-of-day)", -1.1962507582320256),- ("month (numeric with month symbol)", -3.068052935133617),- ("day", -1.9694406464655074), ("hour", -1.1962507582320256),- ("month", -3.068052935133617)],- n = 18}}),+ [("Wednesday", -2.1000608288825715),+ ("<integer> (latent time-of-day)", -1.1192315758708455),+ ("month (numeric with month symbol)", -3.1986731175506815),+ ("day", -2.1000608288825715), ("hour", -1.1192315758708455),+ ("month", -3.1986731175506815)],+ n = 21}}), ("last <cycle>", Classifier{okData = ClassData{prior = -0.8472978603872037,@@ -722,24 +721,27 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.59511985013459,+ ClassData{prior = 0.0, unseen = -4.61512051684126, likelihoods = HashMap.fromList- [("week", -2.3877429013343523),- ("integer (0..10)month (grain)", -2.793208009442517),- ("integer (0..10)hour (grain)", -2.3877429013343523),- ("second", -2.793208009442517),- ("integer (0..10)day (grain)", -2.505525936990736),- ("integer (0..10)year (grain)", -3.1986731175506815),- ("integer (0..10)second (grain)", -2.793208009442517),- ("day", -2.505525936990736), ("year", -3.1986731175506815),- ("integer (0..10)minute (grain)", -2.639057329615259),- ("hour", -2.3877429013343523),- ("integer (0..10)week (grain)", -2.3877429013343523),- ("month", -2.793208009442517), ("minute", -2.639057329615259)],+ [("week", -2.4079456086518722),+ ("integer (0..10)hour (grain)", -2.659260036932778),+ ("<number>\20010/\20491week (grain)", -2.995732273553991),+ ("second", -2.8134107167600364),+ ("integer (0..10)day (grain)", -2.5257286443082556),+ ("integer (0..10)year (grain)", -3.2188758248682006),+ ("<number>\20010/\20491month (grain)", -2.8134107167600364),+ ("integer (0..10)second (grain)", -2.8134107167600364),+ ("day", -2.5257286443082556), ("year", -3.2188758248682006),+ ("integer (0..10)minute (grain)", -2.659260036932778),+ ("hour", -2.4079456086518722),+ ("integer (0..10)week (grain)", -2.995732273553991),+ ("month", -2.8134107167600364),+ ("<number>\20010/\20491hour (grain)", -3.506557897319982),+ ("minute", -2.659260036932778)], n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("Tuesday", Classifier{okData =@@ -757,79 +759,95 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<named-month> <day-of-month>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.8283137373023015,+ ClassData{prior = 0.0, unseen = -5.231108616854587, likelihoods = HashMap.fromList- [("Marchinteger (0..10)", -3.028522096376982),- ("Februaryinteger (11..19)", -2.6230569882688175),- ("month (numeric with month symbol)integer (11..19)",- -2.6230569882688175),- ("Marchinteger (numeric)", -3.721669276936927),+ [("month (numeric with month symbol)integer with consecutive unit modifiers",+ -2.392533329656985),+ ("Marchinteger (0..10)", -3.4339872044851463),+ ("Marchinteger (numeric)", -4.127134385045092), ("month (numeric with month symbol)integer (numeric)",- -2.1122313645028266),- ("Februaryinteger (0..10)", -2.740840023925201),- ("month", -0.7427441216993174),+ -2.517696472610991),+ ("Februaryinteger (0..10)", -3.146305132033365),+ ("month (numeric with month symbol)number suffix: \21313",+ -3.146305132033365),+ ("month", -0.7371103039810614), ("month (numeric with month symbol)integer (0..10)",- -2.1122313645028266)],- n = 58},+ -2.517696472610991),+ ("Februaryinteger with consecutive unit modifiers",+ -2.392533329656985),+ ("Februarynumber suffix: \21313", -3.146305132033365)],+ n = 88}, koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("integer (0..10)", Classifier{okData =- ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,- likelihoods = HashMap.fromList [("", 0.0)], n = 174},+ ClassData{prior = -0.38372512147175847,+ unseen = -5.236441962829949,+ likelihoods = HashMap.fromList [("", 0.0)], n = 186}, koData =- ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,- likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+ ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,+ likelihoods = HashMap.fromList [("", 0.0)], n = 87}}), ("last n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.61512051684126,+ ClassData{prior = 0.0, unseen = -4.605170185988091, likelihoods = HashMap.fromList- [("week", -2.995732273553991),- ("integer (0..10)month (grain)", -2.120263536200091),- ("integer (0..10)hour (grain)", -2.4079456086518722),- ("second", -2.659260036932778),- ("integer (0..10)day (grain)", -2.995732273553991),- ("integer (0..10)year (grain)", -3.506557897319982),- ("integer (0..10)second (grain)", -2.659260036932778),- ("day", -2.995732273553991), ("year", -3.506557897319982),- ("integer (0..10)minute (grain)", -2.4079456086518722),- ("hour", -2.4079456086518722),- ("integer (0..10)week (grain)", -2.995732273553991),- ("month", -2.120263536200091), ("minute", -2.4079456086518722)],- n = 43},+ [("week", -2.9856819377004897),+ ("integer (0..10)month (grain)", -3.4965075614664802),+ ("integer (0..10)hour (grain)", -2.3978952727983707),+ ("second", -2.649209701079277),+ ("integer (0..10)day (grain)", -2.9856819377004897),+ ("integer (0..10)year (grain)", -3.4965075614664802),+ ("<number>\20010/\20491month (grain)", -2.3978952727983707),+ ("integer (0..10)second (grain)", -2.649209701079277),+ ("day", -2.9856819377004897), ("year", -3.4965075614664802),+ ("integer (0..10)minute (grain)", -2.3978952727983707),+ ("hour", -2.3978952727983707),+ ("integer (0..10)week (grain)", -2.9856819377004897),+ ("month", -2.1972245773362196),+ ("minute", -2.3978952727983707)],+ n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.772588722239781, likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("<number>\20010/\20491", -0.1823215567939546)],+ n = 4}, koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("integer (0..10)", -0.1823215567939546)],+ n = 4}}), ("n <cycle> last", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.007333185232471,+ ClassData{prior = 0.0, unseen = -4.04305126783455, likelihoods = HashMap.fromList- [("week", -2.379546134130174),- ("integer (0..10)month (grain)", -2.890371757896165),- ("integer (0..10)hour (grain)", -2.379546134130174),- ("second", -2.890371757896165),- ("integer (0..10)day (grain)", -2.379546134130174),- ("integer (0..10)year (grain)", -2.890371757896165),- ("integer (0..10)second (grain)", -2.890371757896165),- ("day", -2.379546134130174), ("year", -2.890371757896165),- ("integer (0..10)minute (grain)", -2.890371757896165),- ("hour", -2.379546134130174),- ("integer (0..10)week (grain)", -2.379546134130174),- ("month", -2.890371757896165), ("minute", -2.890371757896165)],+ [("week", -2.4159137783010487),+ ("integer (0..10)hour (grain)", -2.9267394020670396),+ ("<number>\20010/\20491week (grain)", -2.9267394020670396),+ ("second", -2.9267394020670396),+ ("integer (0..10)day (grain)", -2.4159137783010487),+ ("integer (0..10)year (grain)", -2.9267394020670396),+ ("<number>\20010/\20491month (grain)", -2.9267394020670396),+ ("integer (0..10)second (grain)", -2.9267394020670396),+ ("day", -2.4159137783010487), ("year", -2.9267394020670396),+ ("integer (0..10)minute (grain)", -2.9267394020670396),+ ("hour", -2.4159137783010487),+ ("integer (0..10)week (grain)", -2.9267394020670396),+ ("month", -2.9267394020670396),+ ("<number>\20010/\20491hour (grain)", -2.9267394020670396),+ ("minute", -2.9267394020670396)], n = 20}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("morning", Classifier{okData =@@ -864,6 +882,13 @@ Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<number>\20010/\20491",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),
Duckling/Ranking/Classifiers/ZH_XX.hs view
@@ -95,10 +95,11 @@ likelihoods = HashMap.fromList [], n = 0}}), ("month (grain)", Classifier{okData =- ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,- likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ ClassData{prior = -1.0076405104623831,+ unseen = -3.2188758248682006,+ likelihoods = HashMap.fromList [("", 0.0)], n = 23}, koData =- ClassData{prior = -0.4700036292457356,+ ClassData{prior = -0.45425527227759643, unseen = -3.7376696182833684, likelihoods = HashMap.fromList [("", 0.0)], n = 40}}), ("<time-of-day> o'clock",@@ -117,6 +118,13 @@ [("<integer> (latent time-of-day)", -0.6931471805599453), ("hour", -0.6931471805599453)], n = 5}}),+ ("number suffix: \21313",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.258096538021482,+ likelihoods = HashMap.fromList [("", 0.0)], n = 24},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("Wednesday", Classifier{okData = ClassData{prior = 0.0, unseen = -2.9444389791664407,@@ -133,44 +141,43 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect", Classifier{okData =- ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+ ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -3.5165082281731497),+ [("children's day<part-of-day> <dim time>", -3.367295829986474), ("year (numeric with year symbol)<named-month> <day-of-month>",- -1.5705980791178364),- ("dayday", -1.9070703157390494),- ("hourhour", -3.005682604407159),- ("hourminute", -3.5165082281731497),+ -1.7578579175523736),+ ("dayday", -1.6094379124341003),+ ("hourhour", -3.367295829986474),+ ("hourminute", -3.367295829986474), ("absorption of , after named day<named-month> <day-of-month>",- -1.9070703157390494),- ("dayminute", -3.5165082281731497),- ("tonight<time-of-day> o'clock", -3.005682604407159),+ -1.6094379124341003),+ ("dayminute", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -3.367295829986474), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.5165082281731497),- ("yearday", -1.5705980791178364)],- n = 42},+ -3.367295829986474),+ ("yearday", -1.7578579175523736)],+ n = 64}, koData =- ClassData{prior = -1.0388930539664873,- unseen = -4.1588830833596715,+ ClassData{prior = -1.215022640512521, unseen = -4.276666119016055, likelihoods = HashMap.fromList- [("children's day<part-of-day> <dim time>", -2.1972245773362196),- ("dayhour", -2.5336968139574325),- ("daymonth", -2.063693184711697),- ("year (numeric with year symbol)February", -3.044522437723423),+ [("children's day<part-of-day> <dim time>", -2.065455299705096),+ ("dayhour", -2.653241964607215),+ ("daymonth", -2.1832383353614793),+ ("year (numeric with year symbol)February", -3.164067588373206), ("<dim time> <part-of-day><time-of-day> o'clock",- -3.044522437723423),- ("hourhour", -3.044522437723423),- ("year (numeric with year symbol)March", -2.5336968139574325),- ("hourminute", -3.044522437723423),- ("yearmonth", -2.1972245773362196),- ("dayminute", -3.044522437723423),+ -3.164067588373206),+ ("hourhour", -3.164067588373206),+ ("year (numeric with year symbol)March", -2.653241964607215),+ ("hourminute", -2.653241964607215),+ ("yearmonth", -2.316769727986002),+ ("dayminute", -2.653241964607215), ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",- -3.044522437723423),+ -2.653241964607215), ("absorption of , after named dayFebruary",- -2.063693184711697)],- n = 23}}),+ -2.1832383353614793)],+ n = 27}}), ("year (grain)", Classifier{okData = ClassData{prior = -0.8209805520698302,@@ -186,25 +193,6 @@ koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),- ("last tuesday, last july",- Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,- likelihoods =- HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],- n = 12},- koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,- likelihoods =- HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}), ("next <cycle>", Classifier{okData = ClassData{prior = -0.7472144018302211,@@ -287,48 +275,50 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<integer> (latent time-of-day)", Classifier{okData =- ClassData{prior = -1.3217558399823195,- unseen = -2.9444389791664407,+ ClassData{prior = -1.4170660197866443, unseen = -2.995732273553991, likelihoods = HashMap.fromList- [("integer (numeric)", -1.2809338454620642),- ("integer (0..10)", -0.325422400434628)],+ [("integer (numeric)", -1.3350010667323402),+ ("integer (0..10)", -0.3794896217049037)], n = 16}, koData =- ClassData{prior = -0.3101549283038396,- unseen = -3.8501476017100584,+ ClassData{prior = -0.2776317365982795,+ unseen = -3.9889840465642745, likelihoods = HashMap.fromList- [("integer (numeric)", -2.2192034840549946),- ("integer (0..10)", -0.11506932978478723)],- n = 44}}),+ [("integer (numeric)", -2.3608540011180215),+ ("integer (0..10)", -0.28141245943818544),+ ("<number>\20010/\20491", -1.890850371872286)],+ n = 50}}), ("nth <time> of <time>", Classifier{okData =- ClassData{prior = 0.0, unseen = -2.995732273553991,+ ClassData{prior = 0.0, unseen = -3.332204510175204, likelihoods = HashMap.fromList- [("Octoberordinal (digits)Monday", -1.3350010667323402),- ("monthday", -0.7472144018302211),+ [("Octoberordinal (digits)Monday", -1.6863989535702288),+ ("monthday", -0.7308875085427924), ("month (numeric with month symbol)ordinal (digits)Monday",- -1.3350010667323402)],- n = 8},+ -1.0986122886681098)],+ n = 12}, koData = ClassData{prior = -infinity, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [], n = 0}}), ("month (numeric with month symbol)", Classifier{okData =- ClassData{prior = -0.13976194237515874,- unseen = -3.7612001156935624,+ ClassData{prior = -0.10763066419236544,+ unseen = -3.891820298110627, likelihoods = HashMap.fromList- [("integer (numeric)", -1.0296194171811581),- ("integer (0..10)", -0.4418327522790392)],- n = 40},+ [("integer (numeric)", -1.1631508098056809),+ ("number suffix: \21313", -2.2617630984737906),+ ("integer (0..10)", -0.5753641449035618)],+ n = 44}, koData =- ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+ ClassData{prior = -2.2823823856765264,+ unseen = -2.3025850929940455, likelihoods =- HashMap.fromList [("integer (0..10)", -0.13353139262452263)],- n = 6}}),+ HashMap.fromList [("<number>\20010/\20491", -0.40546510810816444)],+ n = 5}}), ("week (grain)", Classifier{okData = ClassData{prior = -0.8434293836092833,@@ -437,12 +427,11 @@ n = 20}}), ("February", Classifier{okData =- ClassData{prior = -6.453852113757118e-2,- unseen = -2.833213344056216,+ ClassData{prior = 0.0, unseen = -2.833213344056216, likelihoods = HashMap.fromList [("", 0.0)], n = 15}, koData =- ClassData{prior = -2.772588722239781, unseen = -1.0986122886681098,- likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}), ("this <cycle>", Classifier{okData = ClassData{prior = -1.0185695809945732,@@ -471,76 +460,74 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<dim time> <part-of-day>", Classifier{okData =- ClassData{prior = 0.0, unseen = -3.891820298110627,+ ClassData{prior = 0.0, unseen = -4.174387269895637, likelihoods = HashMap.fromList- [("dayhour", -0.7357067949787413),- ("<named-month> <day-of-month>morning", -1.3062516534463542),- ("children's dayafternoon", -2.772588722239781),- ("Mondaymorning", -1.6739764335716716)],- n = 22},+ [("dayhour", -0.7248958788745256),+ ("<named-month> <day-of-month>morning", -1.114360645636249),+ ("children's dayafternoon", -3.0602707946915624),+ ("Mondaymorning", -1.9616585060234524)],+ n = 30}, koData = ClassData{prior = -infinity, unseen = -1.6094379124341003, likelihoods = HashMap.fromList [], n = 0}}), ("<part-of-day> <dim time>", Classifier{okData =- ClassData{prior = -0.587786664902119, unseen = -3.891820298110627,+ ClassData{prior = -0.6097655716208943, unseen = -4.07753744390572, likelihoods = HashMap.fromList- [("tonight<integer> (latent time-of-day)", -2.2617630984737906),- ("hourhour", -1.1631508098056809),+ [("tonight<integer> (latent time-of-day)", -2.451005098112319),+ ("hourhour", -1.3523928094442093), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -2.0794415416798357),- ("afternoon<time-of-day> o'clock", -2.4849066497880004),- ("hourminute", -1.9252908618525775),+ -1.6625477377480489),+ ("afternoon<time-of-day> o'clock", -2.6741486494265287),+ ("hourminute", -1.575536360758419), ("afternoon<integer> (latent time-of-day)",- -2.4849066497880004),- ("afternoonhh:mm (time-of-day)", -3.1780538303479458),- ("tonight<time-of-day> o'clock", -2.2617630984737906)],- n = 20},+ -2.6741486494265287),+ ("afternoonhh:mm (time-of-day)", -3.367295829986474),+ ("tonight<time-of-day> o'clock", -2.451005098112319)],+ n = 25}, koData =- ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+ ClassData{prior = -0.7841189587656721,+ unseen = -3.9318256327243257, likelihoods = HashMap.fromList- [("hourhour", -1.2039728043259361),+ [("hourhour", -1.4271163556401458), ("afternoonrelative minutes after|past <integer> (hour-of-day)",- -1.8971199848858813),- ("afternoon<time-of-day> o'clock", -1.8971199848858813),- ("hourminute", -1.8971199848858813),+ -1.5141277326297755),+ ("afternoon<time-of-day> o'clock", -2.120263536200091),+ ("hourminute", -1.5141277326297755), ("afternoon<integer> (latent time-of-day)",- -1.742969305058623)],- n = 16}}),+ -1.9661128563728327)],+ n = 21}}), ("<integer> <unit-of-duration>", Classifier{okData =- ClassData{prior = -infinity, unseen = -2.833213344056216,+ ClassData{prior = -infinity, unseen = -3.044522437723423, likelihoods = HashMap.fromList [], n = 0}, koData =- ClassData{prior = 0.0, unseen = -5.877735781779639,+ ClassData{prior = 0.0, unseen = -5.905361848054571, likelihoods = HashMap.fromList- [("week", -2.6560549059838294),- ("integer (0..10)month (grain)", -2.068268241081711),- ("integer (0..10)hour (grain)", -2.8304082931286074),- ("second", -3.235873401236772),- ("integer (0..10)day (grain)", -3.0417173867958143),- ("integer (0..10)year (grain)", -3.572345637857985),- ("integer (numeric)year (grain)", -3.1668805297498204),- ("integer (0..10)second (grain)", -3.235873401236772),- ("day", -3.0417173867958143), ("year", -2.6968769005040847),- ("integer (0..10)minute (grain)", -3.0417173867958143),- ("hour", -2.8304082931286074),- ("integer (0..10)week (grain)", -2.6560549059838294),- ("month", -1.7973932869463112),- ("integer (numeric)month (grain)", -3.1668805297498204),- ("minute", -3.0417173867958143)],- n = 170}}),- ("integer (11..19)",- Classifier{okData =- ClassData{prior = 0.0, unseen = -2.70805020110221,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 13},- koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ [("week", -2.6837575085331653),+ ("integer (0..10)month (grain)", -2.535337503414892),+ ("integer (0..10)hour (grain)", -3.06941998934515),+ ("<number>\20010/\20491week (grain)", -3.5047380606029956),+ ("second", -3.2635760037861075),+ ("integer (0..10)day (grain)", -3.06941998934515),+ ("number suffix: \21313month (grain)", -4.293195420967266),+ ("integer (0..10)year (grain)", -3.6000482404073204),+ ("<number>\20010/\20491month (grain)", -3.130044611161585),+ ("integer (numeric)year (grain)", -3.1945831322991562),+ ("integer (0..10)second (grain)", -3.2635760037861075),+ ("day", -3.06941998934515), ("year", -2.7245795030534206),+ ("integer (0..10)minute (grain)", -3.06941998934515),+ ("hour", -2.8581108956779433),+ ("integer (0..10)week (grain)", -3.1945831322991562),+ ("month", -1.7754989483562746),+ ("<number>\20010/\20491hour (grain)", -4.293195420967266),+ ("integer (numeric)month (grain)", -3.1945831322991562),+ ("minute", -3.06941998934515)],+ n = 173}}), ("<time-of-day> am|pm", Classifier{okData = ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,@@ -560,21 +547,25 @@ n = 3}}), ("relative minutes after|past <integer> (hour-of-day)", Classifier{okData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (11..19)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5},+ [("<integer> (latent time-of-day)integer with consecutive unit modifiers",+ -0.7801585575495751),+ ("hour", -0.7801585575495751)],+ n = 10}, koData =- ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+ ClassData{prior = -0.6931471805599453,+ unseen = -3.2188758248682006, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)integer (0..10)",- -0.7731898882334817),- ("hour", -0.7731898882334817)],- n = 5}}),+ [("<integer> (latent time-of-day)number suffix: \21313",+ -1.3862943611198906),+ ("<integer> (latent time-of-day)integer (0..10)",+ -1.3862943611198906),+ ("hour", -0.7801585575495751)],+ n = 10}}), ("army's day", Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -584,21 +575,31 @@ likelihoods = HashMap.fromList [], n = 0}}), ("intersect by \",\"", Classifier{okData =- ClassData{prior = -0.40546510810816444,- unseen = -3.4965075614664802,+ ClassData{prior = -0.2231435513142097, unseen = -4.110873864173311, likelihoods = HashMap.fromList- [("Sunday<named-month> <day-of-month>", -0.7576857016975165),- ("dayday", -0.7576857016975165)],- n = 14},+ [("Sunday<named-month> <day-of-month>", -0.7270487322356266),+ ("dayday", -0.7270487322356266)],+ n = 28}, koData =- ClassData{prior = -1.0986122886681098,+ ClassData{prior = -1.6094379124341003, unseen = -2.9444389791664407, likelihoods = HashMap.fromList [("daymonth", -0.8109302162163288), ("SundayFebruary", -0.8109302162163288)], n = 7}}),+ ("integer with consecutive unit modifiers",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.367295829986474,+ likelihoods =+ HashMap.fromList+ [("number suffix: \21313integer (0..10)", -0.6931471805599453),+ ("integer (0..10)integer (0..10)", -0.6931471805599453)],+ n = 26},+ koData =+ ClassData{prior = -infinity, unseen = -1.0986122886681098,+ likelihoods = HashMap.fromList [], n = 0}}), ("second (grain)", Classifier{okData = ClassData{prior = 0.0, unseen = -2.70805020110221,@@ -622,23 +623,21 @@ n = 20}}), ("last <time>", Classifier{okData =- ClassData{prior = -1.2039728043259361,- unseen = -3.4965075614664802,+ ClassData{prior = -1.2286654169163076,+ unseen = -3.4657359027997265, likelihoods = HashMap.fromList- [("day", -0.9007865453381898), ("Sunday", -1.3862943611198906),- ("Tuesday", -1.6739764335716716)],+ [("day", -0.8690378470236094), ("Sunday", -1.3545456628053103),+ ("Tuesday", -1.6422277352570913)], n = 12}, koData =- ClassData{prior = -0.35667494393873245,- unseen = -4.174387269895637,+ ClassData{prior = -0.3462762367178338, unseen = -4.189654742026425, likelihoods = HashMap.fromList- [("<integer> (latent time-of-day)", -1.0233888674305223),- ("month (numeric with month symbol)", -2.367123614131617),- ("February", -3.4657359027997265),- ("hour", -1.0233888674305223), ("month", -2.2129729343043585)],- n = 28}}),+ [("<integer> (latent time-of-day)", -0.916290731874155),+ ("month (numeric with month symbol)", -2.5649493574615367),+ ("hour", -0.916290731874155), ("month", -2.5649493574615367)],+ n = 29}}), ("March", Classifier{okData = ClassData{prior = 0.0, unseen = -2.1972245773362196,@@ -655,22 +654,22 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next <time>", Classifier{okData =- ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+ ClassData{prior = -1.6486586255873816, unseen = -2.890371757896165, likelihoods = HashMap.fromList [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)], n = 5}, koData =- ClassData{prior = -0.24512245803298496,- unseen = -3.784189633918261,+ ClassData{prior = -0.21357410029805904,+ unseen = -3.912023005428146, likelihoods = HashMap.fromList- [("Wednesday", -1.9694406464655074),- ("<integer> (latent time-of-day)", -1.1962507582320256),- ("month (numeric with month symbol)", -3.068052935133617),- ("day", -1.9694406464655074), ("hour", -1.1962507582320256),- ("month", -3.068052935133617)],- n = 18}}),+ [("Wednesday", -2.1000608288825715),+ ("<integer> (latent time-of-day)", -1.1192315758708455),+ ("month (numeric with month symbol)", -3.1986731175506815),+ ("day", -2.1000608288825715), ("hour", -1.1192315758708455),+ ("month", -3.1986731175506815)],+ n = 21}}), ("last <cycle>", Classifier{okData = ClassData{prior = -0.8472978603872037,@@ -707,24 +706,27 @@ likelihoods = HashMap.fromList [], n = 0}}), ("next n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.59511985013459,+ ClassData{prior = 0.0, unseen = -4.61512051684126, likelihoods = HashMap.fromList- [("week", -2.3877429013343523),- ("integer (0..10)month (grain)", -2.793208009442517),- ("integer (0..10)hour (grain)", -2.3877429013343523),- ("second", -2.793208009442517),- ("integer (0..10)day (grain)", -2.505525936990736),- ("integer (0..10)year (grain)", -3.1986731175506815),- ("integer (0..10)second (grain)", -2.793208009442517),- ("day", -2.505525936990736), ("year", -3.1986731175506815),- ("integer (0..10)minute (grain)", -2.639057329615259),- ("hour", -2.3877429013343523),- ("integer (0..10)week (grain)", -2.3877429013343523),- ("month", -2.793208009442517), ("minute", -2.639057329615259)],+ [("week", -2.4079456086518722),+ ("integer (0..10)hour (grain)", -2.659260036932778),+ ("<number>\20010/\20491week (grain)", -2.995732273553991),+ ("second", -2.8134107167600364),+ ("integer (0..10)day (grain)", -2.5257286443082556),+ ("integer (0..10)year (grain)", -3.2188758248682006),+ ("<number>\20010/\20491month (grain)", -2.8134107167600364),+ ("integer (0..10)second (grain)", -2.8134107167600364),+ ("day", -2.5257286443082556), ("year", -3.2188758248682006),+ ("integer (0..10)minute (grain)", -2.659260036932778),+ ("hour", -2.4079456086518722),+ ("integer (0..10)week (grain)", -2.995732273553991),+ ("month", -2.8134107167600364),+ ("<number>\20010/\20491hour (grain)", -3.506557897319982),+ ("minute", -2.659260036932778)], n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("Tuesday", Classifier{okData =@@ -742,79 +744,95 @@ likelihoods = HashMap.fromList [], n = 0}}), ("<named-month> <day-of-month>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.8283137373023015,+ ClassData{prior = 0.0, unseen = -5.231108616854587, likelihoods = HashMap.fromList- [("Marchinteger (0..10)", -3.028522096376982),- ("Februaryinteger (11..19)", -2.6230569882688175),- ("month (numeric with month symbol)integer (11..19)",- -2.6230569882688175),- ("Marchinteger (numeric)", -3.721669276936927),+ [("month (numeric with month symbol)integer with consecutive unit modifiers",+ -2.392533329656985),+ ("Marchinteger (0..10)", -3.4339872044851463),+ ("Marchinteger (numeric)", -4.127134385045092), ("month (numeric with month symbol)integer (numeric)",- -2.1122313645028266),- ("Februaryinteger (0..10)", -2.740840023925201),- ("month", -0.7427441216993174),+ -2.517696472610991),+ ("Februaryinteger (0..10)", -3.146305132033365),+ ("month (numeric with month symbol)number suffix: \21313",+ -3.146305132033365),+ ("month", -0.7371103039810614), ("month (numeric with month symbol)integer (0..10)",- -2.1122313645028266)],- n = 58},+ -2.517696472610991),+ ("Februaryinteger with consecutive unit modifiers",+ -2.392533329656985),+ ("Februarynumber suffix: \21313", -3.146305132033365)],+ n = 88}, koData =- ClassData{prior = -infinity, unseen = -2.1972245773362196,+ ClassData{prior = -infinity, unseen = -2.3978952727983707, likelihoods = HashMap.fromList [], n = 0}}), ("integer (0..10)", Classifier{okData =- ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,- likelihoods = HashMap.fromList [("", 0.0)], n = 174},+ ClassData{prior = -0.38372512147175847,+ unseen = -5.236441962829949,+ likelihoods = HashMap.fromList [("", 0.0)], n = 186}, koData =- ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,- likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+ ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,+ likelihoods = HashMap.fromList [("", 0.0)], n = 87}}), ("last n <cycle>", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.61512051684126,+ ClassData{prior = 0.0, unseen = -4.605170185988091, likelihoods = HashMap.fromList- [("week", -2.995732273553991),- ("integer (0..10)month (grain)", -2.120263536200091),- ("integer (0..10)hour (grain)", -2.4079456086518722),- ("second", -2.659260036932778),- ("integer (0..10)day (grain)", -2.995732273553991),- ("integer (0..10)year (grain)", -3.506557897319982),- ("integer (0..10)second (grain)", -2.659260036932778),- ("day", -2.995732273553991), ("year", -3.506557897319982),- ("integer (0..10)minute (grain)", -2.4079456086518722),- ("hour", -2.4079456086518722),- ("integer (0..10)week (grain)", -2.995732273553991),- ("month", -2.120263536200091), ("minute", -2.4079456086518722)],- n = 43},+ [("week", -2.9856819377004897),+ ("integer (0..10)month (grain)", -3.4965075614664802),+ ("integer (0..10)hour (grain)", -2.3978952727983707),+ ("second", -2.649209701079277),+ ("integer (0..10)day (grain)", -2.9856819377004897),+ ("integer (0..10)year (grain)", -3.4965075614664802),+ ("<number>\20010/\20491month (grain)", -2.3978952727983707),+ ("integer (0..10)second (grain)", -2.649209701079277),+ ("day", -2.9856819377004897), ("year", -3.4965075614664802),+ ("integer (0..10)minute (grain)", -2.3978952727983707),+ ("hour", -2.3978952727983707),+ ("integer (0..10)week (grain)", -2.9856819377004897),+ ("month", -2.1972245773362196),+ ("minute", -2.3978952727983707)],+ n = 42}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.772588722239781, likelihoods = HashMap.fromList [], n = 0}}), ("ordinal (digits)", Classifier{okData =- ClassData{prior = 0.0, unseen = -1.791759469228055,- likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("<number>\20010/\20491", -0.1823215567939546)],+ n = 4}, koData =- ClassData{prior = -infinity, unseen = -0.6931471805599453,- likelihoods = HashMap.fromList [], n = 0}}),+ ClassData{prior = -0.6931471805599453,+ unseen = -1.9459101490553135,+ likelihoods =+ HashMap.fromList [("integer (0..10)", -0.1823215567939546)],+ n = 4}}), ("n <cycle> last", Classifier{okData =- ClassData{prior = 0.0, unseen = -4.007333185232471,+ ClassData{prior = 0.0, unseen = -4.04305126783455, likelihoods = HashMap.fromList- [("week", -2.379546134130174),- ("integer (0..10)month (grain)", -2.890371757896165),- ("integer (0..10)hour (grain)", -2.379546134130174),- ("second", -2.890371757896165),- ("integer (0..10)day (grain)", -2.379546134130174),- ("integer (0..10)year (grain)", -2.890371757896165),- ("integer (0..10)second (grain)", -2.890371757896165),- ("day", -2.379546134130174), ("year", -2.890371757896165),- ("integer (0..10)minute (grain)", -2.890371757896165),- ("hour", -2.379546134130174),- ("integer (0..10)week (grain)", -2.379546134130174),- ("month", -2.890371757896165), ("minute", -2.890371757896165)],+ [("week", -2.4159137783010487),+ ("integer (0..10)hour (grain)", -2.9267394020670396),+ ("<number>\20010/\20491week (grain)", -2.9267394020670396),+ ("second", -2.9267394020670396),+ ("integer (0..10)day (grain)", -2.4159137783010487),+ ("integer (0..10)year (grain)", -2.9267394020670396),+ ("<number>\20010/\20491month (grain)", -2.9267394020670396),+ ("integer (0..10)second (grain)", -2.9267394020670396),+ ("day", -2.4159137783010487), ("year", -2.9267394020670396),+ ("integer (0..10)minute (grain)", -2.9267394020670396),+ ("hour", -2.4159137783010487),+ ("integer (0..10)week (grain)", -2.9267394020670396),+ ("month", -2.9267394020670396),+ ("<number>\20010/\20491hour (grain)", -2.9267394020670396),+ ("minute", -2.9267394020670396)], n = 20}, koData =- ClassData{prior = -infinity, unseen = -2.70805020110221,+ ClassData{prior = -infinity, unseen = -2.833213344056216, likelihoods = HashMap.fromList [], n = 0}}), ("morning", Classifier{okData =@@ -849,6 +867,13 @@ Classifier{okData = ClassData{prior = 0.0, unseen = -1.3862943611198906, likelihoods = HashMap.fromList [("", 0.0)], n = 2},+ koData =+ ClassData{prior = -infinity, unseen = -0.6931471805599453,+ likelihoods = HashMap.fromList [], n = 0}}),+ ("<number>\20010/\20491",+ Classifier{okData =+ ClassData{prior = 0.0, unseen = -3.4339872044851463,+ likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29}, koData = ClassData{prior = -infinity, unseen = -0.6931471805599453, likelihoods = HashMap.fromList [], n = 0}}),
Duckling/Regex/Types.hs view
@@ -27,4 +27,4 @@ instance Resolve GroupMatch where type ResolvedValue GroupMatch = ()- resolve _ _ = Nothing+ resolve _ _ _ = Nothing
Duckling/Resolve.hs view
@@ -12,12 +12,13 @@ module Duckling.Resolve ( Context(..) , DucklingTime(..)+ , Options(..) , Resolve(..) , fromUTC , toUTC ) where -import Data.Aeson+import Data.Aeson (ToJSON) import Prelude import qualified Data.Time as Time import qualified Data.Time.LocalTime.TimeZone.Series as Series@@ -36,9 +37,14 @@ } deriving (Eq, Show) +newtype Options = Options+ { withLatent :: Bool -- When set, includes less certain parses, e.g. "7" as an hour of the day+ }+ deriving (Eq, Show)+ class ToJSON (ResolvedValue a) => Resolve a where type ResolvedValue a- resolve :: Context -> a -> Maybe (ResolvedValue a)+ resolve :: Context -> Options -> a -> Maybe (ResolvedValue a, Bool) -- | Given a UTCTime and an TimeZone, build a ZonedTime (no conversion) fromUTC :: Time.UTCTime -> Time.TimeZone -> Time.ZonedTime
Duckling/Rules.hs view
@@ -52,6 +52,7 @@ import qualified Duckling.Rules.RO as RORules import qualified Duckling.Rules.RU as RURules import qualified Duckling.Rules.SV as SVRules+import qualified Duckling.Rules.TA as TARules import qualified Duckling.Rules.TR as TRRules import qualified Duckling.Rules.UK as UKRules import qualified Duckling.Rules.VI as VIRules@@ -107,6 +108,7 @@ defaultRules RO = RORules.defaultRules defaultRules RU = RURules.defaultRules defaultRules SV = SVRules.defaultRules+defaultRules TA = TARules.defaultRules defaultRules TR = TRRules.defaultRules defaultRules UK = UKRules.defaultRules defaultRules VI = VIRules.defaultRules@@ -142,6 +144,7 @@ localeRules RO = RORules.localeRules localeRules RU = RURules.localeRules localeRules SV = SVRules.localeRules+localeRules TA = TARules.localeRules localeRules TR = TRRules.localeRules localeRules UK = UKRules.localeRules localeRules VI = VIRules.localeRules@@ -177,6 +180,7 @@ langRules RO = RORules.langRules langRules RU = RURules.langRules langRules SV = SVRules.langRules+langRules TA = TARules.langRules langRules TR = TRRules.langRules langRules UK = UKRules.langRules langRules VI = VIRules.langRules
Duckling/Rules/AR.hs view
@@ -32,6 +32,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -49,3 +50,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules AR dim
Duckling/Rules/BG.hs view
@@ -20,25 +20,31 @@ import Duckling.Types import qualified Duckling.Numeral.BG.Rules as Numeral import qualified Duckling.AmountOfMoney.BG.Rules as AmountOfMoney+import qualified Duckling.Distance.BG.Rules as Distance+import qualified Duckling.Duration.BG.Rules as Duration+import qualified Duckling.TimeGrain.BG.Rules as TimeGrain+import qualified Duckling.Ordinal.BG.Rules as Ordinal defaultRules :: Some Dimension -> [Rule] defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule] langRules (This AmountOfMoney) = AmountOfMoney.rules-langRules (This Distance) = []-langRules (This Duration) = []+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules langRules (This Email) = [] langRules (This Numeral) = Numeral.rules-langRules (This Ordinal) = []+langRules (This Ordinal) = Ordinal.rules langRules (This PhoneNumber) = [] langRules (This Quantity) = [] langRules (This RegexMatch) = [] langRules (This Temperature) = [] langRules (This Time) = []-langRules (This TimeGrain) = []+langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules BG dim
Duckling/Rules/CS.hs view
@@ -25,6 +25,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -42,3 +43,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules CS dim
Duckling/Rules/Common.hs view
@@ -40,3 +40,4 @@ rules (This TimeGrain) = [] rules (This Url) = Url.rules rules (This Volume) = Volume.rules+rules (This (CustomDimension dim)) = dimRules dim
Duckling/Rules/DA.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules DA dim
Duckling/Rules/DE.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules DE dim
Duckling/Rules/EL.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules EL dim
Duckling/Rules/EN.hs view
@@ -45,13 +45,8 @@ import qualified Duckling.Volume.EN.Rules as Volume defaultRules :: Some Dimension -> [Rule]-defaultRules dim@(This Time) =- [ TimeUS.ruleMMDD- , TimeUS.ruleMMDDYYYY- , TimeUS.ruleMMDDYYYYDot- , TimeUS.ruleThanksgiving- ] ++ langRules dim-defaultRules dim = langRules dim+defaultRules dim@(This Time) = TimeUS.rulesBackwardCompatible ++ langRules dim+defaultRules dim = langRules dim localeRules :: Region -> Some Dimension -> [Rule] localeRules AU (This Time) = TimeAU.rules@@ -66,7 +61,8 @@ localeRules TT (This Time) = TimeTT.rules localeRules US (This Time) = TimeUS.rules localeRules ZA (This Time) = TimeZA.rules-localeRules _ _ = []+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim+localeRules _ _ = [] langRules :: Some Dimension -> [Rule] langRules (This AmountOfMoney) = AmountOfMoney.rules@@ -83,3 +79,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules EN dim
Duckling/Rules/ES.hs view
@@ -31,6 +31,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -48,3 +49,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules ES dim
Duckling/Rules/ET.hs view
@@ -25,6 +25,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -42,3 +43,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules ET dim
Duckling/Rules/FR.hs view
@@ -34,6 +34,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -51,3 +52,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules FR dim
Duckling/Rules/GA.hs view
@@ -32,6 +32,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -49,3 +50,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules GA dim
Duckling/Rules/HE.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules HE dim
Duckling/Rules/HI.hs view
@@ -24,6 +24,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -41,3 +42,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules HI dim
Duckling/Rules/HR.hs view
@@ -34,6 +34,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -51,3 +52,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules HR dim
Duckling/Rules/HU.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules HU dim
Duckling/Rules/ID.hs view
@@ -26,6 +26,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -43,3 +44,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules ID dim
Duckling/Rules/IT.hs view
@@ -31,6 +31,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -48,3 +49,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules IT dim
Duckling/Rules/JA.hs view
@@ -27,6 +27,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -44,3 +45,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules JA dim
Duckling/Rules/KA.hs view
@@ -24,6 +24,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -41,3 +42,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules KA dim
Duckling/Rules/KO.hs view
@@ -33,6 +33,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -50,3 +51,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules KO dim
Duckling/Rules/MY.hs view
@@ -24,6 +24,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -41,3 +42,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules MY dim
Duckling/Rules/NB.hs view
@@ -29,6 +29,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -46,3 +47,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules NB dim
Duckling/Rules/NE.hs view
@@ -23,6 +23,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -40,3 +41,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules NE dim
Duckling/Rules/NL.hs view
@@ -18,6 +18,7 @@ import Duckling.Dimensions.Types import Duckling.Locale import Duckling.Types+import qualified Duckling.AmountOfMoney.NL.Rules as AmountOfMoney import qualified Duckling.Distance.NL.Rules as Distance import qualified Duckling.Duration.NL.Rules as Duration import qualified Duckling.Numeral.NL.Rules as Numeral@@ -30,10 +31,11 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]-langRules (This AmountOfMoney) = []+langRules (This AmountOfMoney) = AmountOfMoney.rules langRules (This Distance) = Distance.rules langRules (This Duration) = Duration.rules langRules (This Email) = []@@ -47,3 +49,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules NL dim
Duckling/Rules/PL.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules PL dim
Duckling/Rules/PT.hs view
@@ -33,6 +33,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -50,3 +51,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules PT dim
Duckling/Rules/RO.hs view
@@ -33,6 +33,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -50,3 +51,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules RO dim
Duckling/Rules/RU.hs view
@@ -31,6 +31,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -48,3 +49,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules RU dim
Duckling/Rules/SV.hs view
@@ -20,6 +20,7 @@ import Duckling.Types import qualified Duckling.AmountOfMoney.SV.Rules as AmountOfMoney import qualified Duckling.Duration.SV.Rules as Duration+import qualified Duckling.Distance.SV.Rules as Distance import qualified Duckling.Ordinal.SV.Rules as Ordinal import qualified Duckling.Numeral.SV.Rules as Numeral import qualified Duckling.Time.SV.Rules as Time@@ -29,11 +30,12 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule] langRules (This AmountOfMoney) = AmountOfMoney.rules-langRules (This Distance) = []+langRules (This Distance) = Distance.rules langRules (This Duration) = Duration.rules langRules (This Email) = [] langRules (This Numeral) = Numeral.rules@@ -46,3 +48,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules SV dim
+ Duckling/Rules/TA.hs view
@@ -0,0 +1,44 @@+--Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}++module Duckling.Rules.TA+ ( defaultRules+ , langRules+ , localeRules+ ) where++import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types+import qualified Duckling.Numeral.TA.Rules as Numeral++defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Numeral) = Numeral.rules+langRules (This Email) = []+langRules (This Ordinal) = []+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = []+langRules (This TimeGrain) = []+langRules (This Url) = []+langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules TA dim
Duckling/Rules/TR.hs view
@@ -30,6 +30,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -47,3 +48,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = Volume.rules+langRules (This (CustomDimension dim)) = dimLangRules TR dim
Duckling/Rules/UK.hs view
@@ -25,6 +25,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -42,3 +43,4 @@ langRules (This TimeGrain) = [] langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules UK dim
Duckling/Rules/VI.hs view
@@ -28,6 +28,7 @@ defaultRules = langRules localeRules :: Region -> Some Dimension -> [Rule]+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim localeRules _ _ = [] langRules :: Some Dimension -> [Rule]@@ -45,3 +46,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules VI dim
Duckling/Rules/ZH.hs view
@@ -18,6 +18,8 @@ import Duckling.Dimensions.Types import Duckling.Locale import Duckling.Types+import qualified Duckling.AmountOfMoney.ZH.Rules as AmountOfMoney+import qualified Duckling.Distance.ZH.Rules as Distance import qualified Duckling.Numeral.ZH.Rules as Numeral import qualified Duckling.Ordinal.ZH.Rules as Ordinal import qualified Duckling.Temperature.ZH.Rules as Temperature@@ -36,11 +38,12 @@ localeRules HK (This Time) = TimeHK.rules localeRules MO (This Time) = TimeMO.rules localeRules TW (This Time) = TimeTW.rules-localeRules _ _ = []+localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim+localeRules _ _ = [] langRules :: Some Dimension -> [Rule]-langRules (This AmountOfMoney) = []-langRules (This Distance) = []+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules langRules (This Duration) = [] langRules (This Email) = [] langRules (This Numeral) = Numeral.rules@@ -53,3 +56,4 @@ langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = []+langRules (This (CustomDimension dim)) = dimLangRules ZH dim
Duckling/Temperature/AR/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/EN/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/ES/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/FR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/GA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/Helpers.hs view
@@ -20,7 +20,7 @@ import Duckling.Dimensions.Types import qualified Duckling.Temperature.Types as TTemperature import Duckling.Temperature.Types (TemperatureData(..))-import Duckling.Types+import Duckling.Types hiding (isLatent) -- ----------------------------------------------------------------- -- Patterns
Duckling/Temperature/IT/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/JA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/KO/Rules.hs view
@@ -18,7 +18,7 @@ import Duckling.Dimensions.Types import Duckling.Temperature.Helpers import qualified Duckling.Temperature.Types as TTemperature-import Duckling.Types+import Duckling.Types hiding (isLatent) ruleLatentTempDegrees :: Rule ruleLatentTempDegrees = Rule
Duckling/Temperature/PT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/TR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Temperature/Types.hs view
@@ -39,9 +39,9 @@ instance Resolve TemperatureData where type ResolvedValue TemperatureData = TemperatureValue- resolve _ TemperatureData {unit = Nothing} = Nothing- resolve _ TemperatureData {unit = Just unit, value} =- Just TemperatureValue {vUnit = unit, vValue = value}+ resolve _ _ TemperatureData {unit = Nothing} = Nothing+ resolve _ _ TemperatureData {unit = Just unit, value} =+ Just (TemperatureValue {vUnit = unit, vValue = value}, False) data TemperatureValue = TemperatureValue { vUnit :: TemperatureUnit
Duckling/Temperature/ZH/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Testing/Types.hs view
@@ -20,12 +20,14 @@ , examplesCustom , parserCheck , refTime+ , simpleCheck , testContext+ , testOptions , withLocale , zTime ) where -import Data.Aeson+import Data.Aeson (toJSON, ToJSON, Value) import Data.Fixed (Pico) import Data.Text (Text) import Prelude@@ -37,8 +39,8 @@ type TestPredicate = Context -> ResolvedToken -> Bool type Example = (Text, TestPredicate)-type Corpus = (Context, [Example])-type NegativeCorpus = (Context, [Text])+type Corpus = (Context, Options, [Example])+type NegativeCorpus = (Context, Options, [Text]) examplesCustom :: TestPredicate -> [Text] -> [Example] examplesCustom check = map (, check)@@ -74,6 +76,12 @@ , referenceTime = refTime (2013, 2, 12, 4, 30, 0) (-2) } -withLocale :: (Context, [a]) -> Locale -> [a] -> (Context, [a])-withLocale (langContext, langXs) locale localeXs- = (langContext {locale = locale}, langXs ++ localeXs)+testOptions :: Options+testOptions = Options+ { withLatent = False+ }++withLocale :: (Context, Options, [a]) -> Locale -> [a]+ -> (Context, Options, [a])+withLocale (langContext, options, langXs) locale localeXs+ = (langContext {locale = locale}, options, langXs ++ localeXs)
Duckling/Time/AR/Corpus.hs view
@@ -27,10 +27,10 @@ context = testContext {locale = makeLocale AR Nothing} corpus :: Corpus-corpus = (context, allExamples)+corpus = (context, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (context, examples)+negativeCorpus = (context, testOptions, examples) where examples = [ "حب"
Duckling/Time/AR/Rules.hs view
@@ -17,7 +17,7 @@ import Data.Maybe import Data.Text (Text) import Prelude-import Data.HashMap.Strict ( HashMap)+import Data.HashMap.Strict (HashMap) import qualified Data.HashMap.Strict as HashMap import qualified Data.Text as Text @@ -25,7 +25,6 @@ import Duckling.Duration.Helpers (duration) import Duckling.Numeral.Helpers (parseInt) import Duckling.Numeral.Types (NumeralData (..))-import Duckling.Ordinal.Types (OrdinalData (..)) import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))
+ Duckling/Time/Computed.hs view
@@ -0,0 +1,1571 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++module Duckling.Time.Computed+ ( chanukah, chineseNewYear, dhanteras, easterSunday, eidalAdha, eidalFitr+ , lagBaOmer, mawlid, muharram, navaratri, orthodoxEaster, passover, rajab+ , rakshaBandhan, ramadan, roshHashana, thaiPongal, thiruOnam, tishaBAv+ , tuBishvat, vasantPanchami, yomHaatzmaut+ ) where++import Data.Maybe+import Prelude+import qualified Data.Time as Time++import Duckling.Time.Helpers (timeComputed)+import Duckling.Time.Types (TimeData(..), TimeObject(..), timedata')+import qualified Duckling.TimeGrain.Types as TG++toTimeObjectM :: (Integer, Int, Int) -> Maybe TimeObject+toTimeObjectM (year, month, day) = do+ day <- Time.fromGregorianValid year month day+ return TimeObject+ { start = Time.UTCTime day 0+ , grain = TG.Day+ , end = Nothing+ }++computedDays :: [TimeObject] -> TimeData+computedDays xs = timedata'+ { timePred = timeComputed xs+ , timeGrain = TG.Day+ }++chanukah :: TimeData+chanukah = computedDays chanukah'++chanukah' :: [TimeObject]+chanukah' = mapMaybe toTimeObjectM+ [ (1950, 12, 3)+ , (1951, 12, 23)+ , (1952, 12, 12)+ , (1953, 12, 1)+ , (1954, 12, 19)+ , (1955, 12, 9)+ , (1956, 11, 28)+ , (1957, 12, 17)+ , (1958, 12, 6)+ , (1959, 12, 25)+ , (1960, 12, 13)+ , (1961, 12, 2)+ , (1962, 12, 21)+ , (1963, 12, 10)+ , (1964, 11, 29)+ , (1965, 12, 18)+ , (1966, 12, 7)+ , (1967, 12, 26)+ , (1968, 12, 15)+ , (1969, 12, 4)+ , (1970, 12, 22)+ , (1971, 12, 12)+ , (1972, 11, 30)+ , (1973, 12, 19)+ , (1974, 12, 8)+ , (1975, 11, 28)+ , (1976, 12, 16)+ , (1977, 12, 4)+ , (1978, 12, 24)+ , (1979, 12, 14)+ , (1980, 12, 2)+ , (1981, 12, 20)+ , (1982, 12, 10)+ , (1983, 11, 30)+ , (1984, 12, 18)+ , (1985, 12, 7)+ , (1986, 12, 26)+ , (1987, 12, 15)+ , (1988, 12, 3)+ , (1989, 12, 22)+ , (1990, 12, 11)+ , (1991, 12, 1)+ , (1992, 12, 19)+ , (1993, 12, 8)+ , (1994, 11, 27)+ , (1995, 12, 17)+ , (1996, 12, 5)+ , (1997, 12, 23)+ , (1998, 12, 13)+ , (1999, 12, 3)+ , (2000, 12, 21)+ , (2001, 12, 9)+ , (2002, 11, 29)+ , (2003, 12, 19)+ , (2004, 12, 7)+ , (2005, 12, 25)+ , (2006, 12, 15)+ , (2007, 12, 4)+ , (2008, 12, 21)+ , (2009, 12, 11)+ , (2010, 12, 1)+ , (2011, 12, 20)+ , (2012, 12, 8)+ , (2013, 11, 27)+ , (2014, 12, 16)+ , (2015, 12, 6)+ , (2016, 12, 24)+ , (2017, 12, 12)+ , (2018, 12, 2)+ , (2019, 12, 22)+ , (2020, 12, 10)+ , (2021, 11, 28)+ , (2022, 12, 18)+ , (2023, 12, 7)+ , (2024, 12, 25)+ , (2025, 12, 14)+ , (2026, 12, 4)+ , (2027, 12, 24)+ , (2028, 12, 12)+ , (2029, 12, 1)+ , (2030, 12, 20)+ , (2031, 12, 9)+ , (2032, 11, 27)+ , (2033, 12, 16)+ , (2034, 12, 6)+ , (2035, 12, 25)+ , (2036, 12, 13)+ , (2037, 12, 2)+ , (2038, 12, 21)+ , (2039, 12, 11)+ , (2040, 11, 29)+ , (2041, 12, 17)+ , (2042, 12, 7)+ , (2043, 12, 26)+ , (2044, 12, 14)+ , (2045, 12, 3)+ , (2046, 12, 23)+ , (2047, 12, 12)+ , (2048, 11, 29)+ , (2049, 12, 19)+ , (2050, 12, 9)+ ]++chineseNewYear :: TimeData+chineseNewYear = computedDays chineseNewYear'++chineseNewYear' :: [TimeObject]+chineseNewYear' = mapMaybe toTimeObjectM+ [ (1950, 2, 17)+ , (1951, 2, 6)+ , (1952, 1, 27)+ , (1953, 2, 14)+ , (1954, 2, 3)+ , (1955, 1, 24)+ , (1956, 2, 12)+ , (1957, 1, 31)+ , (1958, 2, 18)+ , (1959, 2, 8)+ , (1960, 1, 28)+ , (1961, 2, 15)+ , (1962, 2, 5)+ , (1963, 1, 25)+ , (1964, 2, 13)+ , (1965, 2, 2)+ , (1966, 1, 21)+ , (1967, 2, 9)+ , (1968, 1, 30)+ , (1969, 2, 17)+ , (1970, 2, 6)+ , (1971, 1, 27)+ , (1972, 2, 15)+ , (1973, 2, 3)+ , (1974, 1, 23)+ , (1975, 2, 11)+ , (1976, 1, 31)+ , (1977, 2, 18)+ , (1978, 2, 7)+ , (1979, 1, 28)+ , (1980, 2, 16)+ , (1981, 2, 5)+ , (1982, 1, 25)+ , (1983, 2, 13)+ , (1984, 2, 2)+ , (1985, 2, 20)+ , (1986, 2, 9)+ , (1987, 1, 29)+ , (1988, 2, 17)+ , (1989, 2, 6)+ , (1990, 1, 27)+ , (1991, 2, 15)+ , (1992, 2, 4)+ , (1993, 1, 23)+ , (1994, 2, 10)+ , (1995, 1, 31)+ , (1996, 2, 19)+ , (1997, 2, 7)+ , (1998, 1, 28)+ , (1999, 2, 16)+ , (2000, 2, 5)+ , (2001, 1, 24)+ , (2002, 2, 12)+ , (2003, 2, 1)+ , (2004, 1, 22)+ , (2005, 2, 9)+ , (2006, 1, 29)+ , (2007, 2, 18)+ , (2008, 2, 7)+ , (2009, 1, 26)+ , (2010, 2, 14)+ , (2011, 2, 3)+ , (2012, 1, 23)+ , (2013, 2, 10)+ , (2014, 1, 31)+ , (2015, 2, 19)+ , (2016, 2, 8)+ , (2017, 1, 28)+ , (2018, 2, 16)+ , (2019, 2, 5)+ , (2020, 1, 25)+ , (2021, 2, 12)+ , (2022, 2, 1)+ , (2023, 1, 22)+ , (2024, 2, 10)+ , (2025, 1, 29)+ , (2026, 2, 17)+ , (2027, 2, 6)+ , (2028, 1, 26)+ , (2029, 2, 13)+ , (2030, 2, 3)+ , (2031, 1, 23)+ , (2032, 2, 11)+ , (2033, 1, 31)+ , (2034, 2, 19)+ , (2035, 2, 8)+ , (2036, 1, 28)+ , (2037, 2, 15)+ , (2038, 2, 4)+ , (2039, 1, 24)+ , (2040, 2, 12)+ , (2041, 2, 1)+ , (2042, 1, 22)+ , (2043, 2, 10)+ , (2044, 1, 30)+ , (2045, 2, 17)+ , (2046, 2, 6)+ , (2047, 1, 26)+ , (2048, 2, 14)+ , (2049, 2, 2)+ , (2050, 1, 23)+ ]++easterSunday :: TimeData+easterSunday = computedDays easterSunday'++easterSunday' :: [TimeObject]+easterSunday' = mapMaybe toTimeObjectM+ [ (1950, 4, 9)+ , (1951, 3, 25)+ , (1952, 4, 13)+ , (1953, 4, 5)+ , (1954, 4, 18)+ , (1955, 4, 10)+ , (1956, 4, 1)+ , (1957, 4, 21)+ , (1958, 4, 6)+ , (1959, 3, 29)+ , (1960, 4, 17)+ , (1961, 4, 2)+ , (1962, 4, 22)+ , (1963, 4, 14)+ , (1964, 3, 29)+ , (1965, 4, 18)+ , (1966, 4, 10)+ , (1967, 3, 26)+ , (1968, 4, 14)+ , (1969, 4, 6)+ , (1970, 3, 29)+ , (1971, 4, 11)+ , (1972, 4, 2)+ , (1973, 4, 22)+ , (1974, 4, 14)+ , (1975, 3, 30)+ , (1976, 4, 18)+ , (1977, 4, 10)+ , (1978, 3, 26)+ , (1979, 4, 15)+ , (1980, 4, 6)+ , (1981, 4, 19)+ , (1982, 4, 11)+ , (1983, 4, 3)+ , (1984, 4, 22)+ , (1985, 4, 7)+ , (1986, 3, 30)+ , (1987, 4, 19)+ , (1988, 4, 3)+ , (1989, 3, 26)+ , (1990, 4, 15)+ , (1991, 3, 31)+ , (1992, 4, 19)+ , (1993, 4, 11)+ , (1994, 4, 3)+ , (1995, 4, 16)+ , (1996, 4, 7)+ , (1997, 3, 30)+ , (1998, 4, 12)+ , (1999, 4, 4)+ , (2000, 4, 23)+ , (2001, 4, 15)+ , (2002, 3, 31)+ , (2003, 4, 20)+ , (2004, 4, 11)+ , (2005, 3, 27)+ , (2006, 4, 16)+ , (2007, 4, 8)+ , (2008, 3, 23)+ , (2009, 4, 12)+ , (2010, 4, 4)+ , (2011, 4, 24)+ , (2012, 4, 8)+ , (2013, 3, 31)+ , (2014, 4, 20)+ , (2015, 4, 5)+ , (2016, 3, 27)+ , (2017, 4, 16)+ , (2018, 4, 1)+ , (2019, 4, 21)+ , (2020, 4, 12)+ , (2021, 4, 4)+ , (2022, 4, 17)+ , (2023, 4, 9)+ , (2024, 3, 31)+ , (2025, 4, 20)+ , (2026, 4, 5)+ , (2027, 3, 28)+ , (2028, 4, 16)+ , (2029, 4, 1)+ , (2030, 4, 21)+ , (2031, 4, 13)+ , (2032, 3, 28)+ , (2033, 4, 17)+ , (2034, 4, 9)+ , (2035, 3, 25)+ , (2036, 4, 13)+ , (2037, 4, 5)+ , (2038, 4, 25)+ , (2039, 4, 10)+ , (2040, 4, 1)+ , (2041, 4, 21)+ , (2042, 4, 6)+ , (2043, 3, 29)+ , (2044, 4, 17)+ , (2045, 4, 9)+ , (2046, 3, 25)+ , (2047, 4, 14)+ , (2048, 4, 5)+ , (2049, 4, 18)+ , (2050, 4, 10)+ ]++lagBaOmer :: TimeData+lagBaOmer = computedDays lagBaOmer'++lagBaOmer' :: [TimeObject]+lagBaOmer' = mapMaybe toTimeObjectM+ [ (1950, 5, 4)+ , (1951, 5, 23)+ , (1952, 5, 12)+ , (1953, 5, 2)+ , (1954, 5, 20)+ , (1955, 5, 9)+ , (1956, 4, 28)+ , (1957, 5, 18)+ , (1958, 5, 7)+ , (1959, 5, 25)+ , (1960, 5, 14)+ , (1961, 5, 3)+ , (1962, 5, 21)+ , (1963, 5, 11)+ , (1964, 4, 29)+ , (1965, 5, 19)+ , (1966, 5, 7)+ , (1967, 5, 27)+ , (1968, 5, 15)+ , (1969, 5, 5)+ , (1970, 5, 23)+ , (1971, 5, 12)+ , (1972, 5, 1)+ , (1973, 5, 19)+ , (1974, 5, 9)+ , (1975, 4, 28)+ , (1976, 5, 17)+ , (1977, 5, 5)+ , (1978, 5, 24)+ , (1979, 5, 14)+ , (1980, 5, 3)+ , (1981, 5, 21)+ , (1982, 5, 10)+ , (1983, 4, 30)+ , (1984, 5, 19)+ , (1985, 5, 8)+ , (1986, 5, 26)+ , (1987, 5, 16)+ , (1988, 5, 4)+ , (1989, 5, 22)+ , (1990, 5, 12)+ , (1991, 5, 1)+ , (1992, 5, 20)+ , (1993, 5, 8)+ , (1994, 4, 28)+ , (1995, 5, 17)+ , (1996, 5, 6)+ , (1997, 5, 24)+ , (1998, 5, 13)+ , (1999, 5, 3)+ , (2000, 5, 22)+ , (2001, 5, 10)+ , (2002, 4, 29)+ , (2003, 5, 19)+ , (2004, 5, 8)+ , (2005, 5, 26)+ , (2006, 5, 15)+ , (2007, 5, 5)+ , (2008, 5, 22)+ , (2009, 5, 11)+ , (2010, 5, 1)+ , (2011, 5, 21)+ , (2012, 5, 9)+ , (2013, 4, 27)+ , (2014, 5, 17)+ , (2015, 5, 6)+ , (2016, 5, 25)+ , (2017, 5, 13)+ , (2018, 5, 2)+ , (2019, 5, 22)+ , (2020, 5, 11)+ , (2021, 4, 29)+ , (2022, 5, 18)+ , (2023, 5, 8)+ , (2024, 5, 25)+ , (2025, 5, 15)+ , (2026, 5, 4)+ , (2027, 5, 24)+ , (2028, 5, 13)+ , (2029, 5, 2)+ , (2030, 5, 20)+ , (2031, 5, 10)+ , (2032, 4, 28)+ , (2033, 5, 16)+ , (2034, 5, 6)+ , (2035, 5, 26)+ , (2036, 5, 14)+ , (2037, 5, 2)+ , (2038, 5, 22)+ , (2039, 5, 11)+ , (2040, 4, 30)+ , (2041, 5, 18)+ , (2042, 5, 7)+ , (2043, 5, 27)+ , (2044, 5, 14)+ , (2045, 5, 4)+ , (2046, 5, 23)+ , (2047, 5, 13)+ , (2048, 4, 30)+ , (2049, 5, 19)+ , (2050, 5, 9)+ ]++orthodoxEaster :: TimeData+orthodoxEaster = computedDays orthodoxEaster'++orthodoxEaster' :: [TimeObject]+orthodoxEaster' = mapMaybe toTimeObjectM+ [ (1950, 4, 9)+ , (1951, 4, 29)+ , (1952, 4, 20)+ , (1953, 4, 5)+ , (1954, 4, 25)+ , (1955, 4, 17)+ , (1956, 5, 6)+ , (1957, 4, 21)+ , (1958, 4, 13)+ , (1959, 5, 3)+ , (1960, 4, 17)+ , (1961, 4, 9)+ , (1962, 4, 29)+ , (1963, 4, 14)+ , (1964, 5, 3)+ , (1965, 4, 25)+ , (1966, 4, 10)+ , (1967, 4, 30)+ , (1968, 4, 21)+ , (1969, 4, 13)+ , (1970, 4, 26)+ , (1971, 4, 18)+ , (1972, 4, 9)+ , (1973, 4, 29)+ , (1974, 4, 14)+ , (1975, 5, 4)+ , (1976, 4, 25)+ , (1977, 4, 10)+ , (1978, 4, 30)+ , (1979, 4, 22)+ , (1980, 4, 6)+ , (1981, 4, 26)+ , (1982, 4, 18)+ , (1983, 5, 8)+ , (1984, 4, 22)+ , (1985, 4, 14)+ , (1986, 5, 4)+ , (1987, 4, 19)+ , (1988, 4, 10)+ , (1989, 4, 30)+ , (1990, 4, 15)+ , (1991, 4, 7)+ , (1992, 4, 26)+ , (1993, 4, 18)+ , (1994, 5, 1)+ , (1995, 4, 23)+ , (1996, 4, 14)+ , (1997, 4, 27)+ , (1998, 4, 19)+ , (1999, 4, 11)+ , (2000, 4, 30)+ , (2001, 4, 15)+ , (2002, 5, 5)+ , (2003, 4, 27)+ , (2004, 4, 11)+ , (2005, 5, 1)+ , (2006, 4, 23)+ , (2007, 4, 8)+ , (2008, 4, 27)+ , (2009, 4, 19)+ , (2010, 4, 4)+ , (2011, 4, 24)+ , (2012, 4, 15)+ , (2013, 5, 5)+ , (2014, 4, 20)+ , (2015, 4, 12)+ , (2016, 5, 1)+ , (2017, 4, 16)+ , (2018, 4, 8)+ , (2019, 4, 28)+ , (2020, 4, 19)+ , (2021, 5, 2)+ , (2022, 4, 24)+ , (2023, 4, 16)+ , (2024, 5, 5)+ , (2025, 4, 20)+ , (2026, 4, 12)+ , (2027, 5, 2)+ , (2028, 4, 16)+ , (2029, 4, 8)+ , (2030, 4, 28)+ , (2031, 4, 13)+ , (2032, 5, 2)+ , (2033, 4, 24)+ , (2034, 4, 9)+ , (2035, 4, 29)+ , (2036, 4, 20)+ , (2037, 4, 5)+ , (2038, 4, 25)+ , (2039, 4, 17)+ , (2040, 5, 6)+ , (2041, 4, 21)+ , (2042, 4, 13)+ , (2043, 5, 3)+ , (2044, 4, 24)+ , (2045, 4, 9)+ , (2046, 4, 29)+ , (2047, 4, 21)+ , (2048, 4, 5)+ , (2049, 4, 25)+ , (2050, 4, 17)+ ]++passover :: TimeData+passover = computedDays passover'++passover' :: [TimeObject]+passover' = mapMaybe toTimeObjectM+ [ (1950, 4, 1)+ , (1951, 4, 20)+ , (1952, 4, 9)+ , (1953, 3, 30)+ , (1954, 4, 17)+ , (1955, 4, 6)+ , (1956, 3, 26)+ , (1957, 4, 15)+ , (1958, 4, 4)+ , (1959, 4, 22)+ , (1960, 4, 11)+ , (1961, 3, 31)+ , (1962, 4, 18)+ , (1963, 4, 8)+ , (1964, 3, 27)+ , (1965, 4, 16)+ , (1966, 4, 4)+ , (1967, 4, 24)+ , (1968, 4, 12)+ , (1969, 4, 2)+ , (1970, 4, 20)+ , (1971, 4, 9)+ , (1972, 3, 29)+ , (1973, 4, 16)+ , (1974, 4, 6)+ , (1975, 3, 26)+ , (1976, 4, 14)+ , (1977, 4, 2)+ , (1978, 4, 21)+ , (1979, 4, 11)+ , (1980, 3, 31)+ , (1981, 4, 18)+ , (1982, 4, 7)+ , (1983, 3, 28)+ , (1984, 4, 16)+ , (1985, 4, 5)+ , (1986, 4, 23)+ , (1987, 4, 13)+ , (1988, 4, 1)+ , (1989, 4, 19)+ , (1990, 4, 9)+ , (1991, 3, 29)+ , (1992, 4, 17)+ , (1993, 4, 5)+ , (1994, 3, 26)+ , (1995, 4, 14)+ , (1996, 4, 3)+ , (1997, 4, 21)+ , (1998, 4, 10)+ , (1999, 3, 31)+ , (2000, 4, 19)+ , (2001, 4, 7)+ , (2002, 3, 27)+ , (2003, 4, 16)+ , (2004, 4, 5)+ , (2005, 4, 23)+ , (2006, 4, 12)+ , (2007, 4, 2)+ , (2008, 4, 19)+ , (2009, 4, 8)+ , (2010, 3, 29)+ , (2011, 4, 18)+ , (2012, 4, 6)+ , (2013, 3, 25)+ , (2014, 4, 14)+ , (2015, 4, 3)+ , (2016, 4, 22)+ , (2017, 4, 10)+ , (2018, 3, 30)+ , (2019, 4, 19)+ , (2020, 4, 8)+ , (2021, 3, 27)+ , (2022, 4, 15)+ , (2023, 4, 5)+ , (2024, 4, 22)+ , (2025, 4, 12)+ , (2026, 4, 1)+ , (2027, 4, 21)+ , (2028, 4, 10)+ , (2029, 3, 30)+ , (2030, 4, 17)+ , (2031, 4, 7)+ , (2032, 3, 26)+ , (2033, 4, 13)+ , (2034, 4, 3)+ , (2035, 4, 23)+ , (2036, 4, 11)+ , (2037, 3, 30)+ , (2038, 4, 19)+ , (2039, 4, 8)+ , (2040, 3, 28)+ , (2041, 4, 15)+ , (2042, 4, 4)+ , (2043, 4, 24)+ , (2044, 4, 11)+ , (2045, 4, 1)+ , (2046, 4, 20)+ , (2047, 4, 10)+ , (2048, 3, 28)+ , (2049, 4, 16)+ , (2050, 4, 6)+ ]++roshHashana :: TimeData+roshHashana = computedDays roshHashana'++roshHashana' :: [TimeObject]+roshHashana' = mapMaybe toTimeObjectM+ [ (1950, 9, 11)+ , (1951, 9, 30)+ , (1952, 9, 19)+ , (1953, 9, 9)+ , (1954, 9, 27)+ , (1955, 9, 16)+ , (1956, 9, 5)+ , (1957, 9, 25)+ , (1958, 9, 14)+ , (1959, 10, 2)+ , (1960, 9, 21)+ , (1961, 9, 10)+ , (1962, 9, 28)+ , (1963, 9, 18)+ , (1964, 9, 6)+ , (1965, 9, 26)+ , (1966, 9, 14)+ , (1967, 10, 4)+ , (1968, 9, 22)+ , (1969, 9, 12)+ , (1970, 9, 30)+ , (1971, 9, 19)+ , (1972, 9, 8)+ , (1973, 9, 26)+ , (1974, 9, 16)+ , (1975, 9, 5)+ , (1976, 9, 24)+ , (1977, 9, 12)+ , (1978, 10, 1)+ , (1979, 9, 21)+ , (1980, 9, 10)+ , (1981, 9, 28)+ , (1982, 9, 17)+ , (1983, 9, 7)+ , (1984, 9, 26)+ , (1985, 9, 15)+ , (1986, 10, 3)+ , (1987, 9, 23)+ , (1988, 9, 11)+ , (1989, 9, 29)+ , (1990, 9, 19)+ , (1991, 9, 8)+ , (1992, 9, 27)+ , (1993, 9, 15)+ , (1994, 9, 5)+ , (1995, 9, 24)+ , (1996, 9, 13)+ , (1997, 10, 1)+ , (1998, 9, 20)+ , (1999, 9, 10)+ , (2000, 9, 29)+ , (2001, 9, 17)+ , (2002, 9, 6)+ , (2003, 9, 26)+ , (2004, 9, 15)+ , (2005, 10, 3)+ , (2006, 9, 22)+ , (2007, 9, 12)+ , (2008, 9, 29)+ , (2009, 9, 18)+ , (2010, 9, 8)+ , (2011, 9, 28)+ , (2012, 9, 18)+ , (2013, 9, 4)+ , (2014, 9, 24)+ , (2015, 9, 13)+ , (2016, 10, 2)+ , (2017, 9, 20)+ , (2018, 9, 9)+ , (2019, 9, 29)+ , (2020, 9, 18)+ , (2021, 9, 6)+ , (2022, 9, 25)+ , (2023, 9, 15)+ , (2024, 10, 2)+ , (2025, 9, 22)+ , (2026, 9, 11)+ , (2027, 10, 1)+ , (2028, 9, 20)+ , (2029, 9, 9)+ , (2030, 9, 27)+ , (2031, 9, 17)+ , (2032, 9, 5)+ , (2033, 9, 23)+ , (2034, 9, 13)+ , (2035, 10, 3)+ , (2036, 9, 21)+ , (2037, 9, 9)+ , (2038, 9, 29)+ , (2039, 9, 18)+ , (2040, 9, 7)+ , (2041, 9, 25)+ , (2042, 9, 14)+ , (2043, 10, 4)+ , (2044, 9, 21)+ , (2045, 9, 11)+ , (2046, 9, 30)+ , (2047, 9, 20)+ , (2048, 9, 7)+ , (2049, 9, 26)+ , (2050, 9, 16)+ ]++tishaBAv :: TimeData+tishaBAv = computedDays tishaBAv'++tishaBAv' :: [TimeObject]+tishaBAv' = mapMaybe toTimeObjectM+ [ (1950, 7, 22)+ , (1951, 8, 11)+ , (1952, 7, 30)+ , (1953, 7, 20)+ , (1954, 8, 7)+ , (1955, 7, 27)+ , (1956, 7, 16)+ , (1957, 8, 5)+ , (1958, 7, 26)+ , (1959, 8, 12)+ , (1960, 8, 1)+ , (1961, 7, 22)+ , (1962, 8, 8)+ , (1963, 7, 29)+ , (1964, 7, 18)+ , (1965, 8, 7)+ , (1966, 7, 25)+ , (1967, 8, 14)+ , (1968, 8, 3)+ , (1969, 7, 23)+ , (1970, 8, 10)+ , (1971, 7, 31)+ , (1972, 7, 19)+ , (1973, 8, 6)+ , (1974, 7, 27)+ , (1975, 7, 16)+ , (1976, 8, 4)+ , (1977, 7, 23)+ , (1978, 8, 12)+ , (1979, 8, 1)+ , (1980, 7, 21)+ , (1981, 8, 8)+ , (1982, 7, 28)+ , (1983, 7, 18)+ , (1984, 8, 6)+ , (1985, 7, 27)+ , (1986, 8, 13)+ , (1987, 8, 3)+ , (1988, 7, 23)+ , (1989, 8, 9)+ , (1990, 7, 30)+ , (1991, 7, 20)+ , (1992, 8, 8)+ , (1993, 7, 26)+ , (1994, 7, 16)+ , (1995, 8, 5)+ , (1996, 7, 24)+ , (1997, 8, 11)+ , (1998, 8, 1)+ , (1999, 7, 21)+ , (2000, 8, 9)+ , (2001, 7, 28)+ , (2002, 7, 17)+ , (2003, 8, 6)+ , (2004, 7, 26)+ , (2005, 8, 13)+ , (2006, 8, 2)+ , (2007, 7, 23)+ , (2008, 8, 9)+ , (2009, 7, 29)+ , (2010, 7, 19)+ , (2011, 8, 8)+ , (2012, 7, 28)+ , (2013, 7, 15)+ , (2014, 8, 4)+ , (2015, 7, 25)+ , (2016, 8, 13)+ , (2017, 7, 31)+ , (2018, 7, 21)+ , (2019, 8, 10)+ , (2020, 7, 29)+ , (2021, 7, 17)+ , (2022, 8, 6)+ , (2023, 7, 26)+ , (2024, 8, 12)+ , (2025, 8, 2)+ , (2026, 7, 22)+ , (2027, 8, 11)+ , (2028, 7, 31)+ , (2029, 7, 21)+ , (2030, 8, 7)+ , (2031, 7, 28)+ , (2032, 7, 17)+ , (2033, 8, 3)+ , (2034, 7, 24)+ , (2035, 8, 13)+ , (2036, 8, 2)+ , (2037, 7, 20)+ , (2038, 8, 9)+ , (2039, 7, 30)+ , (2040, 7, 18)+ , (2041, 8, 5)+ , (2042, 7, 26)+ , (2043, 8, 15)+ , (2044, 8, 1)+ , (2045, 7, 22)+ , (2046, 8, 11)+ , (2047, 7, 31)+ , (2048, 7, 18)+ , (2049, 8, 7)+ , (2050, 7, 27)+ ]++yomHaatzmaut :: TimeData+yomHaatzmaut = computedDays yomHaatzmaut'++yomHaatzmaut' :: [TimeObject]+yomHaatzmaut' = mapMaybe toTimeObjectM+ [ (1950, 4, 19)+ , (1951, 5, 9)+ , (1952, 4, 29)+ , (1953, 4, 19)+ , (1954, 5, 5)+ , (1955, 4, 26)+ , (1956, 4, 15)+ , (1957, 5, 5)+ , (1958, 4, 23)+ , (1959, 5, 12)+ , (1960, 5, 1)+ , (1961, 4, 19)+ , (1962, 5, 8)+ , (1963, 4, 28)+ , (1964, 4, 15)+ , (1965, 5, 5)+ , (1966, 4, 24)+ , (1967, 5, 14)+ , (1968, 5, 1)+ , (1969, 4, 22)+ , (1970, 5, 10)+ , (1971, 4, 28)+ , (1972, 4, 18)+ , (1973, 5, 6)+ , (1974, 4, 24)+ , (1975, 4, 15)+ , (1976, 5, 4)+ , (1977, 4, 20)+ , (1978, 5, 10)+ , (1979, 5, 1)+ , (1980, 4, 20)+ , (1981, 5, 6)+ , (1982, 4, 27)+ , (1983, 4, 17)+ , (1984, 5, 6)+ , (1985, 4, 24)+ , (1986, 5, 13)+ , (1987, 5, 3)+ , (1988, 4, 20)+ , (1989, 5, 9)+ , (1990, 4, 29)+ , (1991, 4, 17)+ , (1992, 5, 6)+ , (1993, 4, 25)+ , (1994, 4, 13)+ , (1995, 5, 3)+ , (1996, 4, 23)+ , (1997, 5, 11)+ , (1998, 4, 29)+ , (1999, 4, 20)+ , (2000, 5, 9)+ , (2001, 4, 25)+ , (2002, 4, 16)+ , (2003, 5, 6)+ , (2004, 4, 26)+ , (2005, 5, 11)+ , (2006, 5, 2)+ , (2007, 4, 23)+ , (2008, 5, 7)+ , (2009, 4, 28)+ , (2010, 4, 19)+ , (2011, 5, 9)+ , (2012, 4, 25)+ , (2013, 4, 15)+ , (2014, 5, 5)+ , (2015, 4, 22)+ , (2016, 5, 11)+ , (2017, 5, 1)+ , (2018, 4, 18)+ , (2019, 5, 8)+ , (2020, 4, 28)+ , (2021, 4, 14)+ , (2022, 5, 4)+ , (2023, 4, 25)+ , (2024, 5, 13)+ , (2025, 4, 30)+ , (2026, 4, 21)+ , (2027, 5, 11)+ , (2028, 5, 1)+ , (2029, 4, 18)+ , (2030, 5, 7)+ , (2031, 4, 28)+ , (2032, 4, 14)+ , (2033, 5, 3)+ , (2034, 4, 24)+ , (2035, 5, 14)+ , (2036, 4, 30)+ , (2037, 4, 20)+ , (2038, 5, 10)+ , (2039, 4, 27)+ , (2040, 4, 17)+ , (2041, 5, 6)+ , (2042, 4, 23)+ , (2043, 5, 13)+ , (2044, 5, 2)+ , (2045, 4, 19)+ , (2046, 5, 9)+ , (2047, 4, 30)+ , (2048, 4, 15)+ , (2049, 5, 5)+ , (2050, 4, 26)+ ]++eidalAdha :: TimeData+eidalAdha = computedDays eidalAdha'++eidalAdha' :: [TimeObject]+eidalAdha' = mapMaybe toTimeObjectM+ [ (2000, 3, 16)+ , (2001, 3, 5)+ , (2002, 2, 22)+ , (2003, 2, 11)+ , (2004, 2, 1)+ , (2005, 1, 21)+ , (2006, 1, 10)+ , (2006, 12, 31)+ , (2007, 12, 20)+ , (2008, 12, 8)+ , (2009, 11, 27)+ , (2011, 11, 6)+ , (2012, 10, 26)+ , (2013, 10, 15)+ , (2014, 10, 4)+ , (2015, 8, 23)+ , (2016, 9, 11)+ , (2017, 9, 1)+ , (2018, 8, 21)+ , (2019, 8, 11)+ , (2020, 7, 31)+ , (2021, 7, 20)+ , (2022, 7, 9)+ , (2023, 6, 28)+ , (2024, 6, 16)+ , (2025, 6, 6)+ , (2026, 5, 27)+ , (2027, 5, 16)+ , (2028, 5, 5)+ , (2029, 4, 24)+ ]++eidalFitr :: TimeData+eidalFitr = computedDays eidalFitr'++eidalFitr' :: [TimeObject]+eidalFitr' = mapMaybe toTimeObjectM+ [ (2000, 1, 8)+ , (2000, 12, 27)+ , (2001, 12, 16)+ , (2002, 12, 5)+ , (2003, 11, 25)+ , (2004, 11, 14)+ , (2005, 11, 3)+ , (2006, 10, 23)+ , (2007, 10, 13)+ , (2008, 10, 1)+ , (2009, 9, 20)+ , (2010, 9, 10)+ , (2011, 8, 30)+ , (2012, 8, 19)+ , (2013, 8, 8)+ , (2014, 7, 28)+ , (2015, 7, 17)+ , (2016, 7, 6)+ , (2017, 6, 25)+ , (2018, 6, 15)+ , (2019, 6, 4)+ , (2020, 5, 24)+ , (2021, 5, 13)+ , (2022, 5, 2)+ , (2023, 4, 21)+ , (2024, 4, 10)+ , (2025, 3, 30)+ , (2026, 3, 20)+ , (2027, 3, 9)+ , (2028, 2, 26)+ , (2029, 2, 14)+ ]++rajab :: TimeData+rajab = computedDays rajab'++rajab' :: [TimeObject]+rajab' = mapMaybe toTimeObjectM+ [ (1999, 10, 10)+ , (2000, 9, 28)+ , (2001, 9, 18)+ , (2002, 9, 8)+ , (2003, 8, 29)+ , (2004, 8, 17)+ , (2005, 8, 6)+ , (2006, 7, 26)+ , (2007, 7, 15)+ , (2008, 7, 4)+ , (2009, 6, 24)+ , (2010, 6, 13)+ , (2011, 6, 3)+ , (2012, 5, 22)+ , (2013, 5, 11)+ , (2014, 4, 30)+ , (2015, 4, 20)+ , (2016, 4, 8)+ , (2017, 3, 29)+ , (2018, 3, 18)+ , (2019, 3, 8)+ , (2020, 2, 25)+ , (2021, 2, 13)+ , (2022, 2, 2)+ , (2023, 1, 23)+ , (2024, 1, 13)+ , (2025, 1, 1)+ , (2025, 12, 21)+ , (2026, 12, 10)+ , (2027, 11, 29)+ , (2028, 11, 18)+ ]++muharram :: TimeData+muharram = computedDays muharram'++muharram' :: [TimeObject]+muharram' = mapMaybe toTimeObjectM+ [ (1998, 4, 27)+ , (1999, 4, 17)+ , (2000, 4, 6)+ , (2001, 3, 26)+ , (2002, 3, 15)+ , (2003, 4, 4)+ , (2004, 2, 21)+ , (2005, 2, 10)+ , (2006, 1, 31)+ , (2007, 1, 20)+ , (2008, 1, 10)+ , (2009, 12, 18)+ , (2010, 12, 7)+ , (2011, 11, 26)+ , (2012, 11, 15)+ , (2013, 11, 4)+ , (2014, 10, 25)+ , (2015, 10, 14)+ , (2016, 10, 2)+ , (2017, 9, 21)+ , (2018, 9, 11)+ , (2019, 8, 31)+ , (2020, 8, 20)+ , (2021, 8, 9)+ , (2022, 7, 30)+ , (2023, 7, 19)+ , (2024, 7, 7)+ , (2025, 6, 26)+ , (2026, 6, 16)+ , (2027, 6, 6)+ , (2028, 5, 25)+ ]++ramadan :: TimeData+ramadan = computedDays ramadan'++ramadan' :: [TimeObject]+ramadan' = mapMaybe toTimeObjectM+ [ (1999, 12, 9)+ , (2000, 11, 27)+ , (2001, 11, 16)+ , (2002, 11, 6)+ , (2003, 10, 26)+ , (2004, 10, 15)+ , (2005, 10, 4)+ , (2006, 9, 24)+ , (2007, 9, 13)+ , (2008, 9, 1)+ , (2009, 8, 22)+ , (2010, 8, 11)+ , (2011, 8, 1)+ , (2012, 7, 20)+ , (2013, 7, 9)+ , (2014, 6, 28)+ , (2015, 6, 18)+ , (2016, 6, 6)+ , (2017, 5, 27)+ , (2018, 5, 16)+ , (2019, 5, 6)+ , (2020, 4, 24)+ , (2021, 4, 13)+ , (2022, 4, 2)+ , (2023, 3, 23)+ , (2024, 3, 11)+ , (2025, 3, 1)+ , (2026, 2, 18)+ , (2027, 2, 8)+ , (2028, 1, 28)+ , (2029, 1, 16)+ ]++mawlid :: TimeData+mawlid = computedDays mawlid'++mawlid' :: [TimeObject]+mawlid' = mapMaybe toTimeObjectM+ [ (1999, 6, 26)+ , (2000, 6, 14)+ , (2001, 6, 4)+ , (2002, 5, 24)+ , (2003, 5, 13)+ , (2004, 5, 1)+ , (2005, 4, 21)+ , (2006, 4, 10)+ , (2007, 3, 31)+ , (2008, 3, 20)+ , (2009, 3, 9)+ , (2010, 2, 26)+ , (2011, 2, 15)+ , (2012, 2, 4)+ , (2013, 1, 24)+ , (2014, 1, 13)+ , (2015, 1, 3)+ , (2015, 12, 23)+ , (2016, 12, 11)+ , (2017, 11, 30)+ , (2018, 11, 20)+ , (2019, 11, 9)+ , (2020, 10, 29)+ , (2021, 10, 18)+ , (2022, 10, 8)+ , (2023, 9, 27)+ , (2024, 9, 15)+ , (2025, 9, 4)+ , (2026, 8, 25)+ , (2027, 8, 14)+ , (2028, 8, 3)+ ]++tuBishvat :: TimeData+tuBishvat = computedDays tuBishvat'++tuBishvat' :: [TimeObject]+tuBishvat' = mapMaybe toTimeObjectM+ [ (1950, 2, 1)+ , (1951, 1, 21)+ , (1952, 2, 10)+ , (1953, 1, 30)+ , (1954, 1, 18)+ , (1955, 2, 6)+ , (1956, 1, 27)+ , (1957, 1, 16)+ , (1958, 2, 4)+ , (1959, 1, 23)+ , (1960, 2, 12)+ , (1961, 1, 31)+ , (1962, 1, 19)+ , (1963, 2, 8)+ , (1964, 1, 28)+ , (1965, 1, 17)+ , (1966, 2, 4)+ , (1967, 1, 25)+ , (1968, 2, 13)+ , (1969, 2, 2)+ , (1970, 1, 21)+ , (1971, 2, 9)+ , (1972, 1, 30)+ , (1973, 1, 17)+ , (1974, 2, 6)+ , (1975, 1, 26)+ , (1976, 1, 16)+ , (1977, 2, 2)+ , (1978, 1, 22)+ , (1979, 2, 11)+ , (1980, 2, 1)+ , (1981, 1, 19)+ , (1982, 2, 7)+ , (1983, 1, 28)+ , (1984, 1, 18)+ , (1985, 2, 5)+ , (1986, 1, 24)+ , (1987, 2, 13)+ , (1988, 2, 2)+ , (1989, 1, 20)+ , (1990, 2, 9)+ , (1991, 1, 29)+ , (1992, 1, 19)+ , (1993, 2, 5)+ , (1994, 1, 26)+ , (1995, 1, 15)+ , (1996, 2, 4)+ , (1997, 1, 22)+ , (1998, 2, 10)+ , (1999, 1, 31)+ , (2000, 1, 21)+ , (2001, 2, 7)+ , (2002, 1, 27)+ , (2003, 1, 17)+ , (2004, 2, 6)+ , (2005, 1, 24)+ , (2006, 2, 12)+ , (2007, 2, 2)+ , (2008, 1, 21)+ , (2009, 2, 8)+ , (2010, 1, 29)+ , (2011, 1, 19)+ , (2012, 2, 7)+ , (2013, 1, 25)+ , (2014, 1, 15)+ , (2015, 2, 3)+ , (2016, 1, 24)+ , (2017, 2, 10)+ , (2018, 1, 30)+ , (2019, 1, 20)+ , (2020, 2, 9)+ , (2021, 1, 27)+ , (2022, 1, 16)+ , (2023, 2, 5)+ , (2024, 1, 24)+ , (2025, 2, 12)+ , (2026, 2, 1)+ , (2027, 1, 22)+ , (2028, 2, 11)+ , (2029, 1, 30)+ , (2030, 1, 18)+ , (2031, 2, 7)+ , (2032, 1, 27)+ , (2033, 1, 14)+ , (2034, 2, 3)+ , (2035, 1, 24)+ , (2036, 2, 12)+ , (2037, 1, 30)+ , (2038, 1, 20)+ , (2039, 2, 8)+ , (2040, 1, 29)+ , (2041, 1, 16)+ , (2042, 2, 4)+ , (2043, 1, 25)+ , (2044, 2, 12)+ , (2045, 2, 1)+ , (2046, 1, 21)+ , (2047, 2, 10)+ , (2048, 1, 29)+ , (2049, 1, 17)+ , (2050, 2, 6)+ ]++dhanteras :: TimeData+dhanteras = computedDays dhanteras'++dhanteras' :: [TimeObject]+dhanteras' = mapMaybe toTimeObjectM+ [ (2000, 10, 24)+ , (2001, 11, 12)+ , (2002, 11, 2)+ , (2003, 10, 23)+ , (2004, 11, 10)+ , (2005, 10, 30)+ , (2006, 10, 19)+ , (2007, 11, 7)+ , (2008, 10, 26)+ , (2009, 10, 15)+ , (2010, 11, 3)+ , (2011, 10, 24)+ , (2012, 11, 11)+ , (2013, 11, 1)+ , (2014, 10, 21)+ , (2015, 11, 9)+ , (2016, 10, 28)+ , (2017, 10, 17)+ , (2018, 11, 5)+ , (2019, 10, 25)+ , (2020, 11, 13)+ , (2021, 11, 2)+ , (2022, 10, 22)+ , (2023, 11, 10)+ , (2024, 10, 29)+ , (2025, 10, 18)+ , (2026, 11, 6)+ , (2027, 10, 27)+ , (2028, 10, 15)+ , (2029, 11, 4)+ , (2030, 10, 24)+ ]++navaratri :: TimeData+navaratri = computedDays navaratri'++navaratri' :: [TimeObject]+navaratri' = mapMaybe toTimeObjectM+ [ (2000, 9, 28)+ , (2001, 10, 17)+ , (2002, 10, 7)+ , (2003, 9, 26)+ , (2004, 10, 14)+ , (2005, 10, 4)+ , (2006, 9, 23)+ , (2007, 10, 12)+ , (2008, 9, 30)+ , (2009, 9, 19)+ , (2010, 10, 8)+ , (2011, 9, 28)+ , (2012, 10, 16)+ , (2013, 10, 5)+ , (2014, 9, 25)+ , (2015, 10, 13)+ , (2016, 10, 1)+ , (2017, 9, 21)+ , (2018, 10, 9)+ , (2019, 9, 29)+ , (2020, 10, 17)+ , (2021, 10, 6)+ , (2022, 9, 26)+ , (2023, 10, 15)+ , (2024, 10, 3)+ , (2025, 9, 22)+ , (2026, 10, 11)+ , (2027, 9, 30)+ , (2028, 9, 19)+ , (2029, 10, 8)+ , (2030, 9, 27)+ ]++rakshaBandhan :: TimeData+rakshaBandhan = computedDays rakshaBandhan'++rakshaBandhan' :: [TimeObject]+rakshaBandhan' = mapMaybe toTimeObjectM+ [ (2000, 8, 15)+ , (2001, 8, 4)+ , (2002, 8, 22)+ , (2003, 8, 12)+ , (2004, 8, 29)+ , (2005, 8, 19)+ , (2006, 8, 9)+ , (2007, 8, 28)+ , (2008, 8, 16)+ , (2009, 8, 5)+ , (2010, 8, 24)+ , (2011, 8, 13)+ , (2012, 8, 2)+ , (2013, 8, 20)+ , (2014, 8, 10)+ , (2015, 8, 29)+ , (2016, 8, 18)+ , (2017, 8, 7)+ , (2018, 8, 26)+ , (2019, 8, 15)+ , (2020, 8, 3)+ , (2021, 8, 22)+ , (2022, 8, 11)+ , (2023, 8, 30)+ , (2024, 8, 19)+ , (2025, 8, 9)+ , (2026, 8, 28)+ , (2027, 8, 17)+ , (2028, 8, 5)+ , (2029, 8, 23)+ , (2030, 8, 13)+ ]++thaiPongal :: TimeData+thaiPongal = computedDays thaiPongal'++thaiPongal' :: [TimeObject]+thaiPongal' = mapMaybe toTimeObjectM+ [ (2000, 1, 15)+ , (2001, 1, 14)+ , (2002, 1, 14)+ , (2003, 1, 14)+ , (2004, 1, 15)+ , (2005, 1, 14)+ , (2006, 1, 14)+ , (2007, 1, 15)+ , (2008, 1, 15)+ , (2009, 1, 14)+ , (2010, 1, 14)+ , (2011, 1, 15)+ , (2012, 1, 15)+ , (2013, 1, 14)+ , (2014, 1, 14)+ , (2015, 1, 15)+ , (2016, 1, 15)+ , (2017, 1, 14)+ , (2018, 1, 14)+ , (2019, 1, 15)+ , (2020, 1, 15)+ , (2021, 1, 14)+ , (2022, 1, 14)+ , (2023, 1, 15)+ , (2024, 1, 15)+ , (2025, 1, 14)+ , (2026, 1, 14)+ , (2027, 1, 15)+ , (2028, 1, 15)+ , (2029, 1, 14)+ , (2030, 1, 14)+ ]++thiruOnam :: TimeData+thiruOnam = computedDays thiruOnam'++thiruOnam' :: [TimeObject]+thiruOnam' = mapMaybe toTimeObjectM+ [ (2000, 9, 10)+ , (2001, 8, 31)+ , (2002, 8, 21)+ , (2003, 9, 8)+ , (2004, 8, 28)+ , (2005, 9, 15)+ , (2006, 9, 5)+ , (2007, 8, 26)+ , (2008, 9, 12)+ , (2009, 9, 2)+ , (2010, 8, 23)+ , (2011, 9, 9)+ , (2012, 8, 29)+ , (2013, 8, 20)+ , (2014, 9, 6)+ , (2015, 8, 28)+ , (2016, 9, 13)+ , (2017, 9, 4)+ , (2018, 8, 24)+ , (2019, 9, 11)+ , (2020, 8, 31)+ , (2021, 8, 21)+ , (2022, 9, 8)+ , (2023, 8, 29)+ , (2024, 9, 15)+ , (2025, 9, 5)+ , (2026, 8, 26)+ , (2027, 9, 12)+ , (2028, 9, 1)+ , (2029, 8, 22)+ , (2030, 9, 9)+ ]++vasantPanchami :: TimeData+vasantPanchami = computedDays vasantPanchami'++vasantPanchami' :: [TimeObject]+vasantPanchami' = mapMaybe toTimeObjectM+ [ (2000, 2, 10)+ , (2001, 1, 29)+ , (2002, 2, 17)+ , (2003, 2, 6)+ , (2004, 1, 26)+ , (2005, 2, 13)+ , (2006, 2, 2)+ , (2007, 1, 23)+ , (2008, 2, 11)+ , (2009, 1, 31)+ , (2010, 1, 20)+ , (2011, 2, 8)+ , (2012, 1, 28)+ , (2013, 2, 15)+ , (2014, 2, 4)+ , (2015, 1, 24)+ , (2016, 2, 12)+ , (2017, 2, 1)+ , (2018, 1, 22)+ , (2019, 2, 10)+ , (2020, 1, 29)+ , (2021, 2, 16)+ , (2022, 2, 5)+ , (2023, 1, 26)+ , (2024, 2, 14)+ , (2025, 2, 2)+ , (2026, 1, 23)+ , (2027, 2, 11)+ , (2028, 1, 31)+ , (2029, 1, 19)+ , (2030, 2, 7)+ ]
Duckling/Time/Corpus.hs view
@@ -11,7 +11,9 @@ module Duckling.Time.Corpus ( datetime+ , datetimeHoliday , datetimeInterval+ , datetimeIntervalHoliday , datetimeOpenInterval , examples ) where@@ -29,29 +31,49 @@ import Duckling.TimeGrain.Types hiding (add) import Duckling.Types hiding (Entity(..)) -datetime :: Datetime -> Grain -> Context -> SingleTimeValue-datetime d g ctx =- timeValue tzSeries TimeObject {start = dt d, end = Nothing, grain = g}- where- DucklingTime (Series.ZoneSeriesTime _ tzSeries) = referenceTime ctx+datetime :: Datetime -> Grain -> Context -> TimeValue+datetime d g ctx = datetimeIntervalHolidayHelper (d, Nothing) g Nothing ctx -datetimeInterval :: (Datetime, Datetime) -> Grain -> Context -> SingleTimeValue-datetimeInterval (d1, d2) g ctx = timeValue tzSeries TimeObject- {start = dt d1, end = Just $ dt d2, grain = g}+datetimeHoliday :: Datetime -> Grain -> Text -> Context -> TimeValue+datetimeHoliday d g h ctx =+ datetimeIntervalHolidayHelper (d, Nothing) g (Just h) ctx++datetimeInterval :: (Datetime, Datetime) -> Grain -> Context -> TimeValue+datetimeInterval (d1, d2) g ctx =+ datetimeIntervalHolidayHelper (d1, Just d2) g Nothing ctx++datetimeIntervalHoliday ::+ (Datetime, Datetime) -> Grain -> Text -> Context -> TimeValue+datetimeIntervalHoliday (d1, d2) g h ctx =+ datetimeIntervalHolidayHelper (d1, Just d2) g (Just h) ctx++datetimeIntervalHolidayHelper ::+ (Datetime, Maybe Datetime) -> Grain -> Maybe Text -> Context -> TimeValue+datetimeIntervalHolidayHelper (d1, md2) g hol ctx = TimeValue tv [tv] hol where DucklingTime (Series.ZoneSeriesTime _ tzSeries) = referenceTime ctx+ tv = timeValue tzSeries TimeObject {start = dt d1, end = d, grain = g}+ d = case md2 of+ Nothing -> Nothing+ Just d2 -> Just $ dt d2 datetimeOpenInterval- :: IntervalDirection -> Datetime -> Grain -> Context -> SingleTimeValue-datetimeOpenInterval dir d g ctx = openInterval tzSeries dir TimeObject- {start = dt d, end = Nothing, grain = g}+ :: IntervalDirection -> Datetime -> Grain -> Context -> TimeValue+datetimeOpenInterval dir d g ctx = TimeValue tv [tv] Nothing where DucklingTime (Series.ZoneSeriesTime _ tzSeries) = referenceTime ctx+ tv = openInterval tzSeries dir TimeObject+ {start = dt d, end = Nothing, grain = g} + check :: ToJSON a => (Context -> a) -> TestPredicate check f context Resolved{jsonValue} = case jsonValue of- Object o -> toJSON (f context) == (Object $ H.delete "values" o)+ Object o -> deleteValues (toJSON (f context)) == deleteValues (Object o) _ -> False+ where+ deleteValues :: Value -> Value+ deleteValues (Object o) = Object $ H.delete "values" o+ deleteValues _ = Object H.empty examples :: ToJSON a => (Context -> a) -> [Text] -> [Example] examples f = examplesCustom (check f)
Duckling/Time/DA/Corpus.hs view
@@ -23,7 +23,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/DE/Corpus.hs view
@@ -24,10 +24,10 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale DE Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale DE Nothing}, testOptions, examples) where examples = [ "ein Hotel"@@ -413,37 +413,36 @@ , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day) [ "diesen winter" ]- , examples (datetime (2013, 12, 25, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 25, 0, 0, 0) Day "Weihnachten") [ "Weihnachten" , "Weihnachtstag" ]- , examples (datetime (2013, 12, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 31, 0, 0, 0) Day "Silvester") [ "Silvester" ]- , examples (datetime (2014, 1, 1, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 1, 1, 0, 0, 0) Day "Neujahr") [ "Neujahrstag" , "Neujahr" ]- , examples (datetime (2013, 2, 14, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 2, 14, 0, 0, 0) Day "Valentinstag") [ "Valentinstag" ]- , examples (datetime (2013, 5, 12, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Muttertag" ) [ "Muttertag" ]- , examples (datetime (2013, 6, 16, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Vatertag" ) [ "Vatertag" ]- , examples (datetime (2013, 10, 3, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 3, 0, 0, 0) Day "Tag der Deutschen Einheit") [ "Tag der Deutschen Einheit"- , "3. Oktober" ]- , examples (datetime (2013, 10, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 31, 0, 0, 0) Day "Halloween") [ "Halloween" ]- , examples (datetime (2013, 11, 1, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 1, 0, 0, 0) Day "Allerheiligen" ) [ "Allerheiligen" ]- , examples (datetime (2013, 12, 6, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 6, 0, 0, 0) Day "Nikolaus") [ "Nikolaus" , "Nikolaustag" ]
Duckling/Time/DE/Rules.hs view
@@ -80,9 +80,9 @@ ruleHolidays :: [Rule] ruleHolidays = mkRuleHolidays- [ ( "new year's day" , "neujahr(s?tag)?"+ [ ( "Neujahr" , "neujahr(s?tag)?" , monthDay 1 1 )- , ( "valentine's day" , "valentin'?stag"+ , ( "Valentinstag" , "valentin'?stag" , monthDay 2 14 ) , ( "Schweizer Bundesfeiertag" , "schweiz(er)? (bundes)?feiertag|bundes feiertag"@@ -92,21 +92,21 @@ , ( "Oesterreichischer Nationalfeiertag" , "((ö)sterreichischer?)? nationalfeiertag|national feiertag" , monthDay 10 26 )- , ( "halloween day" , "hall?owe?en?"+ , ( "Halloween" , "hall?owe?en?" , monthDay 10 31 ) , ( "Allerheiligen" , "allerheiligen?|aller heiligen?" , monthDay 11 1 ) , ( "Nikolaus" , "nikolaus(tag)?|nikolaus tag|nikolo" , monthDay 12 6 )- , ( "christmas eve" , "heilig(er)? abend"+ , ( "Heiligabend" , "heilig(er)? abend" , monthDay 12 24 )- , ( "christmas" , "weih?nacht(en|stag)?"+ , ( "Weihnachten" , "weih?nacht(en|stag)?" , monthDay 12 25 )- , ( "new year's eve" , "silvester"+ , ( "Silvester" , "silvester" , monthDay 12 31 )- , ( "Mother's Day" , "mutt?ertag|mutt?er (tag)?"+ , ( "Muttertag" , "mutt?ertag|mutt?er (tag)?" , nthDOWOfMonth 2 7 5 )- , ( "Father's Day" , "vatt?er( ?tag)?"+ , ( "Vatertag" , "vatt?er( ?tag)?" , nthDOWOfMonth 3 7 6 ) ]
Duckling/Time/EL/Corpus.hs view
@@ -27,10 +27,10 @@ context = testContext {locale = makeLocale EL Nothing} corpus :: Corpus-corpus = (context, allExamples)+corpus = (context, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (context, examples)+negativeCorpus = (context, testOptions, examples) where examples = [ "ένας ενήληκας"
Duckling/Time/EN/AU/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,66 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 4, 25, 0, 0, 0) Day "ANZAC Day")+ [ "anzac day"+ ]+ , examples (datetimeHoliday (2013, 9, 1, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 9, 2, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 9, 1, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeIntervalHoliday ((2020, 2, 8, 0, 0, 0), (2020, 2, 11, 0, 0, 0)) Day "Royal Hobart Regatta")+ [ "Royal Hobart Regatta 2020"+ ]+ , examples (datetimeIntervalHoliday ((2018, 7, 8, 0, 0, 0), (2018, 7, 16, 0, 0, 0)) Day "NAIDOC Week")+ [ "NAIDOC week 2018"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 10, 7, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 10, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2018, 5, 28, 0, 0, 0) Day "Reconciliation Day")+ [ "reconciliation day 2018"+ ]+ , examples (datetimeHoliday (2019, 5, 27, 0, 0, 0) Day "Reconciliation Day")+ [ "reconciliation day 2019" ] ]
Duckling/Time/EN/AU/Rules.hs view
@@ -20,9 +20,12 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed (easterSunday) import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.Time.Types as TTime+import qualified Duckling.TimeGrain.Types as TG ruleDDMM :: Rule ruleDDMM = Rule@@ -42,7 +45,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +72,76 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "ANZAC Day", "anzac day", monthDay 4 25 )+ , ( "Australia Day", "(ana|anniversary|australia|foundation) day"+ , monthDay 1 26 )+ , ( "Harmony Day", "harmony day", monthDay 3 21 )+ , ( "National Sorry Day", "national sorry day", monthDay 5 26 )+ , ( "Queensland Day", "queensland day", monthDay 6 6 )+ , ( "Remembrance Day", "remembrance day", monthDay 11 11 )+ , ( "Take our Daughters and Sons to Work Day"+ , "take our daughters and sons to work day", monthDay 1 5 ) + -- Fixed day/week/month, year over year+ , ( "Adelaide Cup", "adelaide cup", nthDOWOfMonth 2 1 3 )+ , ( "Administrative Professionals' Day"+ , "(admin(istrative professionals'?)|secretaries'?) day"+ , nthDOWOfMonth 1 5 5 )+ , ( "Canberra Day", "canberra day", nthDOWOfMonth 2 1 3 )+ , ( "Eight Hours Day", "eight hours day", nthDOWOfMonth 2 1 3 )+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 1 7 9 )+ , ( "Labour Day", "labour day", nthDOWOfMonth 1 1 10 )+ , ( "Melbourne Cup Day", "melbourne cup day", nthDOWOfMonth 1 2 11 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "National Close the Gap Day", "national close the gap day"+ , nthDOWOfMonth 3 4 3 )+ , ( "National Tree Day", "(arbor|national tree) day"+ , predLastOf (dayOfWeek 7) (month 6) )+ , ( "National Schools Tree Day", "national schools tree day"+ , predLastOf (dayOfWeek 5) (month 6) )+ , ( "New South Wales Bank Holiday", "new south wales bank holiday"+ , nthDOWOfMonth 1 1 8 )+ , ( "Picnic Day", "(northern territory )?picnic day", nthDOWOfMonth 1 1 8 )+ , ( "Recreation Day", "recreation day", nthDOWOfMonth 1 1 10 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ , ( "Western Australia Day", "western australia day", nthDOWOfMonth 1 1 6 )++ -- Other+ , ( "Reconciliation Day", "reconciliation\\s+day"+ , predNthAfter 0 (dayOfWeek 1) (monthDay 5 26) )+ ]++rulePeriodicHolidays' :: [Rule]+rulePeriodicHolidays' = mkRuleHolidays'+ -- Fixed day/week/month, year over year+ -- Week from Sunday of July until following Sunday that has the second Friday+ [ ( "NAIDOC Week"+ , "(naidoc|national aboriginal and islander day observance committee) week"+ , let fri = nthDOWOfMonth 2 5 7+ start = cycleNthAfter False TG.Day (- 5) fri+ end = cycleNthAfter False TG.Day 2 fri+ in interval TTime.Open start end )+ -- 3 days ending on the second Monday of February+ , ( "Royal Hobart Regatta", "royal hobart regatta"+ , let end = nthDOWOfMonth 2 1 2+ in interval TTime.Open (cycleNthAfter False TG.Day (- 2) end) end )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ [ ( "Easter Tuesday", "easter\\s+tue(sday)?"+ , cycleNthAfter False TG.Day 2 easterSunday )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ ruleComputedHolidays+ ++ rulePeriodicHolidays+ ++ rulePeriodicHolidays'
Duckling/Time/EN/BZ/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,54 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 11, 19, 0, 0, 0) Day "Garifuna Settlement Day")+ [ "garifuna settlement day"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012" ] ]
Duckling/Time/EN/BZ/Rules.hs view
@@ -42,7 +42,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +69,26 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Garifuna Settlement Day", "garifuna settlement day", monthDay 11 19 )+ , ( "Labour Day", "labour day", monthDay 5 1 )+ , ( "National Heroes and Benefactors Day"+ , "national heroes and benefactors day", monthDay 3 9 )+ , ( "Pan American Day", "pan american day", monthDay 10 12 )+ , ( "St. George's Caye Day", "st\\.? george'?s caye day", monthDay 9 10 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays
Duckling/Time/EN/CA/Corpus.hs view
@@ -33,29 +33,114 @@ , "10/31/74" , "10-31-74" , "10.31.1974"+ , "10 31 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "4/25 at 4:00pm" ]- , examples (datetime (2013, 10, 14, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 14, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 10, 13, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 10, 13, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 10, 8, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 10, 8, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 10, 10, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 10, 10, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 10, 9, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 10, 9, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 7, 1, 0, 0, 0) Day "Memorial Day")+ [ "canada day"+ , "memorial day"+ , "dominion day"+ , "Next Memorial Day"+ ]+ , examples (datetimeHoliday (2013, 4, 9, 0, 0, 0) Day "Vimy Ridge Day")+ [ "vimy ridge day"+ ]+ , examples (datetimeHoliday (2013, 7, 12, 0, 0, 0) Day "The Twelfth")+ [ "the Glorious Twelfth"+ , "Orangemen's Day"+ , "the twelfth"+ ]+ , examples (datetimeHoliday (2013, 6, 24, 0, 0, 0) Day "Discovery Day")+ [ "discovery day"+ , "next discovery day"+ ]+ , examples (datetimeHoliday (2018, 6, 25, 0, 0, 0) Day "Discovery Day")+ [ "discovery day 2018"+ ]+ , examples (datetimeHoliday (2020, 6, 22, 0, 0, 0) Day "Discovery Day")+ [ "discovery day 2020"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2018, 5, 21, 0, 0, 0) Day "Victoria Day")+ [ "Victoria day 2018"+ , "Sovereign's birthday 2018"+ ]+ , examples (datetimeHoliday (2013, 8, 5, 0, 0, 0) Day "Civic Holiday")+ [ "Civic Holiday"+ , "British Columbia Day"+ , "Natal Day"+ , "New Brunswick Day"+ , "Saskatchewan Day"+ , "Terry Fox Day"+ ]+ , examples (datetimeHoliday (2018, 2, 19, 0, 0, 0) Day "Family Day")+ [ "family day 2018"+ , "islander day 2018"+ , "louis riel day 2018"+ , "nova scotia heritage day 2018"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2017, 5, 22, 0, 0, 0) Day "National Patriots' Day")+ [ "national patriots' day 2017"+ ]+ , examples (datetimeHoliday (2018, 5, 21, 0, 0, 0) Day "National Patriots' Day")+ [ "national patriots' day 2018"+ ]+ , examples (datetimeHoliday (2019, 5, 20, 0, 0, 0) Day "National Patriots' Day")+ [ "national patriots' day 2019"+ ]+ , examples (datetimeHoliday (2013, 9, 2, 0, 0, 0) Day "Labour Day")+ [ "labor day"+ ]+ , examples (datetimeHoliday (2012, 9, 3, 0, 0, 0) Day "Labour Day")+ [ "labor day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeIntervalHoliday ((2013, 8, 30, 18, 0, 0), (2013, 9, 3, 0, 0, 0)) Hour "Labour Day weekend")+ [ "labor day weekend"+ ]+ , examples (datetimeHoliday (2013, 2, 2, 0, 0, 0) Day "Groundhog Day")+ [ "Groundhog day"+ , "groundhogs day" ] ]
Duckling/Time/EN/CA/Rules.hs view
@@ -44,7 +44,7 @@ ruleMMDDYYYY = Rule { name = "mm/dd/yyyy" , pattern =- [ regex "(1[0-2]|0?[1-9])[/-](3[01]|[12]\\d|0?[1-9])[-/](\\d{2,4})"+ [ regex "(1[0-2]|0?[1-9])[-/\\s](3[01]|[12]\\d|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do@@ -71,20 +71,63 @@ _ -> Nothing } --- Second Monday of October-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 2 1 10- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Anniversary of the Statute of Westminster", "anniversary of the statute of westminster", monthDay 12 11 )+ , ( "Memorial Day", "(canada|dominion|memorial) day", monthDay 7 1 )+ , ( "Groundhog Day", "groundhogs? day", monthDay 2 2 )+ , ( "Healthcare Aide Day", "healthcare aide day", monthDay 10 18 )+ , ( "National Aboriginal Day", "national aboriginal day", monthDay 6 21 )+ , ( "National Flag of Canada Day", "national flag of canada day", monthDay 2 15 )+ , ( "National Tartan Day", "national tartan day", monthDay 4 6 )+ , ( "Nunavut Day", "nunavut day", monthDay 7 9 )+ , ( "Remembrance Day", "remembrance day", monthDay 11 11 )+ , ( "St David's Day", "st\\.? david'?s day", monthDay 3 1 )+ , ( "St. Jean Baptiste Day", "st\\.? jean baptiste day", monthDay 6 24 )+ , ( "The Twelfth", "orangemen's day|the (glorious )?twelfth", monthDay 7 12 )+ , ( "Victoria Day", "sovereign's birthday|victoria day"+ , predLastOf (dayOfWeek 1) (monthDay 5 25) )+ , ( "Vimy Ridge Day", "vimy ridge day", monthDay 4 9 ) + -- Fixed day/week/month, year over year+ , ( "Civic Holiday"+ , "british columbia day|civic holiday|natal day|new brunswick day|Saskatchewan Day|terry fox day"+ , nthDOWOfMonth 1 1 8+ )+ , ( "Family Day"+ , "(family|islander|louis riel|nova scotia heritage) day"+ , nthDOWOfMonth 3 1 2 )+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Gold Cup Parade", "gold cup parade", nthDOWOfMonth 3 5 8 )+ , ( "Heritage Day in Alberta", "heritage day in alberta", nthDOWOfMonth 1 1 8 )+ , ( "Labour Day", "labou?r day", nthDOWOfMonth 1 1 9 )+ -- Long weekend before the first Monday of September+ , ( "Labour Day weekend", "labou?r day week(\\s|-)?ends?"+ , longWEBefore $ nthDOWOfMonth 1 1 9+ )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Royal St. John's Regatta", "regatta day|royal st\\.? john's regatta"+ , nthDOWOfMonth 1 3 8 )+ , ( "Take our Daughters and Sons to Work Day"+ , "take our daughters and sons to work day", nthDOWOfMonth 1 3 11 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 2 1 10 )+ , ( "Yukon's Discovery Day", "(klondike gold|yukon's) discovery day"+ , nthDOWOfMonth 3 1 8 )++ -- Monday before May 25th+ , ( "National Patriots' Day", "national patriot'?s'? day"+ , predNthAfter (-1) (dayOfWeek 1) (monthDay 5 25) )++ -- Closest Monday to June 24th+ , ( "Discovery Day", "discovery\\s+day"+ , predNthClosest 0 (dayOfWeek 1) (monthDay 6 24) )+ ]+ rules :: [Rule] rules = [ ruleMMDD , ruleMMDDYYYY , ruleMMDDYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays
Duckling/Time/EN/Corpus.hs view
@@ -12,21 +12,23 @@ ( corpus , defaultCorpus , negativeCorpus+ , latentCorpus ) where import Data.String import Prelude +import Duckling.Resolve import Duckling.Testing.Types hiding (examples) import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month) import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) defaultCorpus :: Corpus-defaultCorpus = (testContext, allExamples ++ custom)+defaultCorpus = (testContext, testOptions, allExamples ++ custom) where custom = concat [ examples (datetime (2013, 2, 15, 0, 0, 0) Day)@@ -45,31 +47,37 @@ , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "4/25 at 4:00pm" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day"+ , "thanksgiving in 9 months"+ , "thanksgiving 9 months from now" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year"+ , "thanksgiving in a year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012"+ , "thanksgiving 3 months ago"+ , "thanksgiving 1 year ago" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016"+ , "thanksgiving in 3 years" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017" ] ] negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "laughing out loud"@@ -77,7 +85,6 @@ , "we are separated" , "25" , "this is the one"- , "in 61" , "this one" , "this past one" , "at single"@@ -94,8 +101,44 @@ , "at 650.650.6500" , "at 650-650-6500" , "two sixty a m"+ , "Pay ABC 2000" ] +latentCorpus :: Corpus+latentCorpus = (testContext, testOptions {withLatent = True}, xs)+ where+ xs = concat+ [ examples (datetime (2013, 2, 24, 0, 0, 0) Day)+ [ "the 24"+ , "On 24th"+ ]+ , examples (datetime (2013, 2, 12, 7, 0, 0) Hour)+ [ "7"+ ]+ --, examples (datetime (1954, 1, 1, 0, 0, 0) Year)+ -- [ "1954"+ -- ]+ , examples (datetime (2013, 5, 1, 0, 0, 0) Month)+ [ "May"+ ]+ , examples (datetimeInterval+ ((2013, 2, 12, 4, 0, 0), (2013, 2, 12, 12, 0, 0)) Hour)+ [ "morning"+ ]+ , examples (datetimeInterval+ ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour)+ [ "afternoon"+ ]+ , examples (datetimeInterval+ ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)+ [ "evening"+ ]+ , examples (datetimeInterval+ ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)+ [ "night"+ ]+ ]+ allExamples :: [Example] allExamples = concat [ examples (datetime (2013, 2, 12, 4, 30, 0) Second)@@ -110,6 +153,9 @@ , examples (datetime (2013, 2, 1, 0, 0, 0) Day) [ "2/2013" ]+ , examples (datetime (2014, 1, 1, 0, 0, 0) Year)+ [ "in 2014"+ ] , examples (datetime (2013, 2, 11, 0, 0, 0) Day) [ "yesterday" ]@@ -184,6 +230,10 @@ , examples (datetime (2013, 8, 8, 0, 0, 0) Day) [ "Aug 8" ]+ , examples (datetime (2014, 3, 1, 0, 0, 0) Month)+ [ "March in 1 year"+ , "March in a year"+ ] , examples (datetime (2014, 7, 18, 0, 0, 0) Day) [ "Fri, Jul 18" , "Jul 18, Fri"@@ -236,6 +286,18 @@ , examples (datetime (2013, 3, 1, 0, 0, 0) Month) [ "next month" ]+ , examples (datetime (2013, 3, 20, 0, 0, 0) Day)+ [ "20 of next month"+ , "20th of the next month"+ , "20th day of next month"+ ]+ , examples (datetime (2013, 2, 20, 0, 0, 0) Day)+ [ "20th of the current month"+ , "20 of this month"+ ]+ , examples (datetime (2013, 1, 20, 0, 0, 0) Day)+ [ "20th of the previous month"+ ] , examples (datetime (2013, 1, 1, 0, 0, 0) Quarter) [ "this quarter" , "this qtr"@@ -364,6 +426,9 @@ [ "3:18am" , "3:18a" ]+ , examples (datetime (2016, 2, 1, 7, 0, 0) Hour)+ [ "at 7 in 3 years"+ ] , examples (datetime (2013, 2, 12, 15, 0, 0) Hour) [ "at 3pm" , "@ 3pm"@@ -536,9 +601,6 @@ , examples (datetime (2011, 2, 1, 0, 0, 0) Month) [ "two years ago" ]- , examples (datetime (1954, 1, 1, 0, 0, 0) Year)- [ "1954"- ] , examples (datetime (2013, 2, 19, 4, 0, 0) Hour) [ "7 days hence" ]@@ -574,94 +636,152 @@ , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day) [ "this winter" ]- , examples (datetime (2013, 12, 25, 0, 0, 0) Day)+ , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 19, 0, 0, 0)) Day)+ [ "this season"+ , "current seasons"+ ]+ , examples (datetimeInterval ((2012, 9, 23, 0, 0, 0), (2012, 12, 20, 0, 0, 0)) Day)+ [ "last season"+ , "past seasons"+ , "previous seasons"+ ]+ , examples (datetimeInterval ((2013, 3, 20, 0, 0, 0), (2013, 6, 20, 0, 0, 0)) Day)+ [ "next season"+ ]+ , examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)+ [ "last night"+ , "yesterday evening"+ ]+ , examples (datetimeInterval ((2013, 2, 11, 21, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)+ [ "late last night"+ ]+ , examples (datetimeHoliday (2013, 12, 25, 0, 0, 0) Day "Christmas") [ "xmas" , "christmas" , "christmas day" ]- , examples (datetime (2013, 12, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 25, 18, 0, 0) Hour "Christmas")+ [ "xmas at 6 pm"+ ]+ , examples (datetimeIntervalHoliday ((2013, 12, 25, 4, 0, 0), (2013, 12, 25, 12, 0, 0)) Hour "Christmas")+ [ "morning of xmas"+ , "morning of christmas 2013"+ , "morning of this christmas day"+ ]+ , examples (datetimeHoliday (2013, 12, 31, 0, 0, 0) Day "New Year's Eve") [ "new year's eve" , "new years eve" ]- , examples (datetime (2014, 1, 1, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 1, 1, 0, 0, 0) Day "New Year's Day") [ "new year's day" , "new years day" ]- , examples (datetime (2013, 2, 14, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 2, 14, 0, 0, 0) Day "Valentine's Day") [ "valentine's day" , "valentine day" ]- , examples (datetime (2013, 5, 12, 0, 0, 0) Day)- [ "Mother's Day"- , "next mothers day"- ]- , examples (datetime (2012, 5, 13, 0, 0, 0) Day)- [ "last mothers day"- ]- , examples (datetime (2014, 5, 11, 0, 0, 0) Day)- [ "mothers day 2014"- ]- , examples (datetime (2013, 6, 16, 0, 0, 0) Day)- [ "Father's Day"- ]- , examples (datetime (2012, 6, 17, 0, 0, 0) Day)- [ "last fathers day"- ]- , examples (datetime (1996, 6, 16, 0, 0, 0) Day)- [ "fathers day 1996"- ]- , examples (datetime (2013, 5, 27, 0, 0, 0) Day)- [ "memorial day"- , "Next Memorial Day"- ]- , examples (datetime (2012, 5, 28, 0, 0, 0) Day)- [ "last memorial day"- , "memorial day of last year"- ]- , examples (datetimeInterval ((2013, 5, 24, 18, 0, 0), (2013, 5, 28, 0, 0, 0)) Hour)- [ "memorial day week-end"- ] , examples (datetime (2013, 7, 4, 0, 0, 0) Day)- [ "independence day"- , "4th of July"+ [ "4th of July" , "4 of july" ]- , examples (datetime (2013, 9, 2, 0, 0, 0) Day)- [ "labor day"- ]- , examples (datetime (2012, 9, 3, 0, 0, 0) Day)- [ "labor day of last year"- , "Labor Day 2012"- ]- , examples (datetimeInterval ((2013, 8, 30, 18, 0, 0), (2013, 9, 3, 0, 0, 0)) Hour)- [ "labor day weekend"- ]- , examples (datetime (2013, 10, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 31, 0, 0, 0) Day "Halloween") [ "halloween" , "next halloween" , "Halloween 2013" ]- , examples (datetime (2013, 11, 29, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 29, 0, 0, 0) Day "Black Friday") [ "black friday" , "black friday of this year" , "black friday 2013" ]- , examples (datetime (2017, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 24, 0, 0, 0) Day "Black Friday") [ "black friday 2017" ]- , examples (datetime (2014, 1, 20, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 16, 0, 0, 0) Day "Boss's Day")+ [ "boss's day"+ , "boss's"+ , "boss day"+ , "next boss's day"+ ]+ , examples (datetimeHoliday (2016, 10, 17, 0, 0, 0) Day "Boss's Day")+ [ "boss's day 2016"+ ]+ , examples (datetimeHoliday (2021, 10, 15, 0, 0, 0) Day "Boss's Day")+ [ "boss's day 2021"+ ]+ , examples (datetimeHoliday (2014, 1, 20, 0, 0, 0) Day "Martin Luther King's Day") [ "MLK day" , "next Martin Luther King day" , "this MLK day" ]- , examples (datetime (2013, 1, 21, 0, 0, 0) Day)- [ "last MLK day"+ , examples (datetimeHoliday (2013, 1, 21, 0, 0, 0) Day "Martin Luther King's Day")+ [ "last MLK Jr. day" , "MLK day 2013" ]- , examples (datetime (2012, 1, 16, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 1, 16, 0, 0, 0) Day "Martin Luther King's Day") [ "MLK day of last year" , "MLK day 2012"+ , "Civil Rights Day of last year" ]+ , examples (datetimeHoliday (2013, 11, 1, 0, 0, 0) Day "World Vegan Day")+ [ "world vegan day"+ ]+ , examples (datetimeHoliday (2013, 3, 31, 0, 0, 0) Day "Easter Sunday")+ [ "easter"+ , "easter 2013"+ ]+ , examples (datetimeHoliday (2012, 4, 08, 0, 0, 0) Day "Easter Sunday")+ [ "last easter"+ ]+ , examples (datetimeHoliday (2013, 4, 1, 0, 0, 0) Day "Easter Monday")+ [ "easter mon"+ ]+ , examples (datetimeHoliday (2010, 4, 4, 0, 0, 0) Day "Easter Sunday")+ [ "easter 2010"+ , "Easter Sunday two thousand ten"+ ]+ , examples (datetime (2013, 4, 3, 0, 0, 0) Day)+ [ "three days after Easter"+ ]+ , examples (datetimeHoliday (2013, 3, 28, 0, 0, 0) Day "Maundy Thursday")+ [ "Maundy Thursday"+ , "Covenant thu"+ , "Thu of Mysteries"+ ]+ , examples (datetimeHoliday (2013, 5, 19, 0, 0, 0) Day "Pentecost")+ [ "Pentecost"+ , "white sunday 2013"+ ]+ , examples (datetimeHoliday (2013, 5, 20, 0, 0, 0) Day "Whit Monday")+ [ "whit monday"+ , "Monday of the Holy Spirit"+ ]+ , examples (datetimeHoliday (2013, 3, 24, 0, 0, 0) Day "Palm Sunday")+ [ "palm sunday"+ , "branch sunday 2013"+ ]+ , examples (datetimeHoliday (2013, 5, 26, 0, 0, 0) Day "Trinity Sunday")+ [ "trinity sunday"+ ]+ , examples (datetimeHoliday (2013, 2, 12, 0, 0, 0) Day "Shrove Tuesday")+ [ "pancake day 2013"+ ]+ , examples (datetimeIntervalHoliday ((2018, 2, 14, 0, 0, 0), (2018, 4, 1, 0, 0, 0)) Day "Lent")+ [ "lent 2018"+ ]+ , examples (datetimeHoliday (2018, 4, 8, 0, 0, 0) Day "Orthodox Easter Sunday")+ [ "orthodox easter 2018"+ ]+ , examples (datetimeHoliday (2018, 2, 19, 0, 0, 0) Day "Clean Monday")+ [ "clean monday 2018"+ , "orthodox shrove monday two thousand eighteen"+ ]+ , examples (datetimeHoliday (2018, 3, 31, 0, 0, 0) Day "Lazarus Saturday")+ [ "lazarus saturday 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 2, 19, 0, 0, 0), (2018, 3, 31, 0, 0, 0)) Day "Great Lent")+ [ "great fast 2018"+ ] , examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour) [ "this evening" , "today evening"@@ -691,6 +811,10 @@ , "monday early morning" , "monday in the early hours of the morning" ]+ , examples (datetimeInterval ((2013, 2, 12, 21, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)+ [ "late tonight"+ , "late tonite"+ ] , examples (datetimeInterval ((2013, 2, 15, 4, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour) [ "february the 15th in the morning" , "15 of february in the morning"@@ -778,6 +902,12 @@ , "between 9:30 and 11:00 on thursday" , "between 9:30 and 11:00 on thursday" , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday"+ , "between 9:30 and 11:00 on thursday" , "9:30 - 11:00 on Thursday" , "later than 9:30 but before 11:00 on Thursday" , "Thursday from 9:30 to 11:00"@@ -821,7 +951,26 @@ ] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 3, 1, 0, 0, 0)) Second) [ "by EOM"+ , "by the EOM"+ , "by end of the month"+ , "by the end of month" ]+ , examples (datetimeInterval ((2013, 2, 21, 0, 0, 0), (2013, 3, 1, 0, 0, 0)) Day)+ [ "EOM"+ , "the EOM"+ , "at the EOM"+ , "the end of the month"+ , "end of the month"+ , "at the end of month"+ ]+ , examples (datetimeInterval ((2013, 2, 1, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Day)+ [ "BOM"+ , "the BOM"+ , "at the BOM"+ , "beginning of the month"+ , "the beginning of the month"+ , "at the beginning of month"+ ] , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 4, 1, 0, 0, 0)) Second) [ "by the end of next month" ]@@ -978,5 +1127,261 @@ ] , examples (datetimeInterval ((2013, 8, 19, 0, 0, 0), (2013, 8, 22, 0, 0, 0)) Day) [ "19th To 21st aug"+ ]+ , examples (datetimeInterval ((2013, 4, 21, 0, 0, 0), (2013, 5, 1, 0, 0, 0)) Day)+ [ "end of April"+ , "at the end of April"+ ]+ , examples (datetimeInterval ((2014, 1, 1, 0, 0, 0), (2014, 1, 11, 0, 0, 0)) Day)+ [ "beginning of January"+ , "at the beginning of January"+ ]+ , examples (datetimeInterval ((2012, 9, 1, 0, 0, 0), (2013, 1, 1, 0, 0, 0)) Month)+ [ "end of 2012"+ , "at the end of 2012"+ ]+ , examples (datetimeInterval ((2017, 1, 1, 0, 0, 0), (2017, 4, 1, 0, 0, 0)) Month)+ [ "beginning of 2017"+ , "at the beginning of 2017"+ ]+ , examples (datetimeInterval ((2013, 1, 1, 0, 0, 0), (2013, 4, 1, 0, 0, 0)) Month)+ [ "beginning of year"+ , "the beginning of the year"+ , "the BOY"+ , "BOY"+ ]+ , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2014, 1, 1, 0, 0, 0)) Second)+ [ "by EOY"+ , "by the EOY"+ , "by end of the year"+ , "by the end of year"+ ]+ , examples (datetimeInterval ((2013, 9, 1, 0, 0, 0), (2014, 1, 1, 0, 0, 0)) Month)+ [ "EOY"+ , "the EOY"+ , "at the EOY"+ , "the end of the year"+ , "end of the year"+ , "at the end of year"+ ]+ , examples (datetimeInterval ((2013, 2, 11, 0, 0, 0), (2013, 2, 14, 0, 0, 0)) Day)+ [ "beginning of this week"+ , "beginning of current week"+ , "beginning of coming week"+ , "at the beginning of this week"+ , "at the beginning of current week"+ , "at the beginning of coming week"+ ]+ , examples (datetimeInterval ((2013, 2, 4, 0, 0, 0), (2013, 2, 7, 0, 0, 0)) Day)+ [ "beginning of last week"+ , "beginning of past week"+ , "beginning of previous week"+ , "at the beginning of last week"+ , "at the beginning of past week"+ , "at the beginning of previous week"+ ]+ , examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 2, 21, 0, 0, 0)) Day)+ [ "beginning of next week"+ , "beginning of the following week"+ , "beginning of around next week"+ , "at the beginning of next week"+ , "at the beginning of the following week"+ , "at the beginning of around next week"+ ]+ , examples (datetimeInterval ((2013, 2, 15, 0, 0, 0), (2013, 2, 18, 0, 0, 0)) Day)+ [ "end of this week"+ , "end of current week"+ , "end of coming week"+ , "at the end of this week"+ , "at the end of current week"+ , "at the end of coming week"+ ]+ , examples (datetimeInterval ((2013, 2, 8, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Day)+ [ "end of last week"+ , "end of past week"+ , "end of previous week"+ , "at the end of last week"+ , "at the end of past week"+ , "at the end of previous week"+ ]+ , examples (datetimeInterval ((2013, 2, 22, 0, 0, 0), (2013, 2, 25, 0, 0, 0)) Day)+ [ "end of next week"+ , "end of the following week"+ , "end of around next week"+ , "at the end of next week"+ , "at the end of the following week"+ , "at the end of around next week"+ ]+ , examples (datetimeHoliday (2014, 1, 31, 0, 0, 0) Day "Chinese New Year")+ [ "chinese new year"+ , "chinese lunar new year's day"+ ]+ , examples (datetimeHoliday (2013, 2, 10, 0, 0, 0) Day "Chinese New Year")+ [ "last chinese new year"+ , "last chinese lunar new year's day"+ ]+ , examples (datetimeHoliday (2018, 2, 16, 0, 0, 0) Day "Chinese New Year")+ [ "chinese new year's day 2018"+ ]+ , examples (datetimeHoliday (2018, 9, 18, 0, 0, 0) Day "Yom Kippur")+ [ "yom kippur 2018"+ ]+ , examples (datetimeHoliday (2018, 9, 30, 0, 0, 0) Day "Shemini Atzeret")+ [ "shemini atzeret 2018"+ ]+ , examples (datetimeHoliday (2018, 10, 1, 0, 0, 0) Day "Simchat Torah")+ [ "simchat torah 2018"+ ]+ , examples (datetimeHoliday (2018, 7, 21, 0, 0, 0) Day "Tisha B'Av")+ [ "tisha b'av 2018"+ ]+ , examples (datetimeHoliday (2018, 4, 18, 0, 0, 0) Day "Yom Ha'atzmaut")+ [ "yom haatzmaut 2018"+ ]+ , examples (datetimeHoliday (2017, 5, 13, 0, 0, 0) Day "Lag BaOmer")+ [ "lag b'omer 2017"+ ]+ , examples (datetimeHoliday (2018, 4, 11, 0, 0, 0) Day "Yom HaShoah")+ [ "Yom Hashoah 2018"+ , "Holocaust Day 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 9, 9, 0, 0, 0), (2018, 9, 12, 0, 0, 0)) Day "Rosh Hashanah")+ [ "rosh hashanah 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 12, 2, 0, 0, 0), (2018, 12, 10, 0, 0, 0)) Day "Hanukkah")+ [ "Chanukah 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 3, 30, 0, 0, 0), (2018, 4, 8, 0, 0, 0)) Day "Passover")+ [ "passover 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 9, 23, 0, 0, 0), (2018, 10, 2, 0, 0, 0)) Day "Sukkot")+ [ "feast of the ingathering 2018"+ , "succos 2018"+ ]+ , examples (datetimeIntervalHoliday ((2018, 5, 19, 0, 0, 0), (2018, 5, 22, 0, 0, 0)) Day "Shavuot")+ [ "shavuot 2018"+ ]+ , examples (datetimeHoliday (2017, 11, 30, 0, 0, 0) Day "Mawlid")+ [ "mawlid al-nabawi 2017"+ ]+ , examples (datetimeHoliday (2018, 6, 15, 0, 0, 0) Day "Eid al-Fitr")+ [ "Eid al-Fitr 2018"+ ]+ , examples (datetimeHoliday (2018, 8, 21, 0, 0, 0) Day "Eid al-Adha")+ [ "Eid al-Adha 2018"+ , "id ul-adha 2018"+ , "sacrifice feast 2018"+ , "Bakr Id 2018"+ ]+ , examples (datetimeHoliday (2017, 6, 22, 0, 0, 0) Day "Laylat al-Qadr")+ [ "laylat al kadr 2017"+ , "night of measures 2017"+ ]+ , examples (datetimeHoliday (2018, 6, 11, 0, 0, 0) Day "Laylat al-Qadr")+ [ "laylat al-qadr 2018"+ , "night of power 2018"+ ]+ , examples (datetimeHoliday (2018, 9, 11, 0, 0, 0) Day "Islamic New Year")+ [ "Islamic New Year 2018"+ , "Amun Jadid 2018"+ ]+ , examples (datetimeHoliday (2017, 9, 30, 0, 0, 0) Day "Ashura")+ [ "day of Ashura 2017"+ ]+ , examples (datetimeHoliday (2018, 1, 30, 0, 0, 0) Day "Tu BiShvat")+ [ "tu bishvat 2018"+ ]+ , examples (datetimeHoliday (2017, 6, 23, 0, 0, 0) Day "Jumu'atul-Wida")+ [ "Jamat Ul-Vida 2017"+ , "Jumu'atul-Wida 2017"+ ]+ , examples (datetimeHoliday (2018, 6, 8, 0, 0, 0) Day "Jumu'atul-Wida")+ [ "Jamat Ul-Vida 2018"+ , "Jumu'atul-Wida 2018"+ ]+ , examples (datetimeHoliday (2018, 4, 13, 0, 0, 0) Day "Isra and Mi'raj")+ [ "isra and mi'raj 2018"+ , "the prophet's ascension 2018"+ ]+ , examples (datetimeHoliday (2019, 4, 3, 0, 0, 0) Day "Isra and Mi'raj")+ [ "the night journey 2019"+ , "ascension to heaven 2019"+ ]+ , examples (datetimeIntervalHoliday ((2018, 5, 16, 0, 0, 0), (2018, 6, 15, 0, 0, 0)) Day "Ramadan")+ [ "Ramadan 2018"+ ]+ , examples (datetimeHoliday (2017, 10, 17, 0, 0, 0) Day "Dhanteras")+ [ "dhanatrayodashi in 2017"+ ]+ , examples (datetimeHoliday (2019, 10, 25, 0, 0, 0) Day "Dhanteras")+ [ "dhanteras 2019"+ ]+ , examples (datetimeHoliday (2019, 10, 26, 0, 0, 0) Day "Naraka Chaturdashi")+ [ "kali chaudas 2019"+ , "choti diwali two thousand nineteen"+ ]+ , examples (datetimeHoliday (2019, 10, 27, 0, 0, 0) Day "Diwali")+ [ "diwali 2019"+ , "Deepavali in 2019"+ , "Lakshmi Puja six years hence"+ ]+ , examples (datetimeHoliday (2019, 10, 29, 0, 0, 0) Day "Bhai Dooj")+ [ "bhai dooj 2019"+ ]+ , examples (datetimeHoliday (2019, 11, 2, 0, 0, 0) Day "Chhath")+ [ "chhath 2019"+ , "dala puja 2019"+ , "Surya Shashthi in 2019"+ ]+ , examples (datetimeHoliday (2021, 10, 12, 0, 0, 0) Day "Maha Saptami")+ [ "Maha Saptami 2021"+ ]+ , examples (datetimeHoliday (2018, 10, 18, 0, 0, 0) Day "Vijayadashami")+ [ "Dussehra 2018"+ , "vijayadashami in five years"+ ]+ , examples (datetimeIntervalHoliday ((2018, 10, 9, 0, 0, 0), (2018, 10, 19, 0, 0, 0)) Day "Navaratri")+ [ "navaratri 2018"+ , "durga puja in 2018"+ ]+ , examples (datetimeHoliday (2018, 8, 26, 0, 0, 0) Day "Raksha Bandhan")+ [ "rakhi 2018"+ ]+ , examples (datetimeHoliday (2018, 1, 14, 0, 0, 0) Day "Thai Pongal")+ [ "pongal 2018"+ , "makara sankranthi 2018"+ ]+ , examples (datetimeHoliday (2018, 1, 13, 0, 0, 0) Day "Boghi")+ [ "bogi pandigai 2018"+ ]+ , examples (datetimeHoliday (2018, 1, 15, 0, 0, 0) Day "Mattu Pongal")+ [ "maattu pongal 2018"+ ]+ , examples (datetimeHoliday (2018, 1, 16, 0, 0, 0) Day "Kaanum Pongal")+ [ "kaanum pongal 2018"+ , "kanni pongal 2018"+ ]+ , examples (datetimeHoliday (2019, 1, 15, 0, 0, 0) Day "Thai Pongal")+ [ "makar sankranti 2019"+ , "maghi in 2019"+ ]+ , examples (datetimeHoliday (2018, 8, 24, 0, 0, 0) Day "Thiru Onam")+ [ "onam 2018"+ , "Thiru Onam 2018"+ , "Thiruvonam 2018"+ ]+ , examples (datetimeHoliday (2019, 2, 10, 0, 0, 0) Day "Vasant Panchami")+ [ "vasant panchami in 2019"+ , "basant panchami 2019"+ ]+ , examples (datetimeHoliday (2019, 3, 20, 0, 0, 0) Day "Holika Dahan")+ [ "chhoti holi 2019"+ , "holika dahan 2019"+ , "kamudu pyre 2019"+ ]+ , examples (datetimeHoliday (2019, 3, 21, 0, 0, 0) Day "Holi")+ [ "holi 2019"+ , "dhulandi 2019"+ , "phagwah 2019" ] ]
Duckling/Time/EN/GB/Corpus.hs view
@@ -33,33 +33,66 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ]+ , examples (datetime (2013, 10, 10, 0, 0, 0) Day)+ [ "10/10"+ , "10/10/2013"+ ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017" ]- , examples (datetime (2013, 10, 10, 0, 0, 0) Day)- [ "10/10"- , "10/10/2013"+ , examples (datetimeHoliday (2013, 11, 5, 0, 0, 0) Day "Guy Fawkes Day")+ [ "guy fawkes day"+ ]+ , examples (datetimeHoliday (2018, 8, 27, 0, 0, 0) Day "August Bank Holiday")+ [ "august bank holiday 2018"+ , "summer bank holiday 2018"+ , "late summer bank holiday 2018"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 3, 10, 0, 0, 0) Day "Mothering Sunday")+ [ "Mother's Day"+ , "next mothers day"+ , "mothering sunday"+ ]+ , examples (datetimeHoliday (2012, 3, 18, 0, 0, 0) Day "Mothering Sunday")+ [ "mothers day 2012"+ , "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 3, 30, 0, 0, 0) Day "Mothering Sunday")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 19, 0, 0, 0) Day "Pentecost")+ [ "whitsunday" ] ]
Duckling/Time/EN/GB/Rules.hs view
@@ -20,9 +20,11 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed (easterSunday) import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG ruleDDMM :: Rule ruleDDMM = Rule@@ -42,7 +44,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +71,41 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Bank Holiday", "bank holiday", monthDay 12 28 )+ , ( "Battle of the Boyne", "battle of the boyne", monthDay 7 12 )+ , ( "Burns Night", "burns night", monthDay 1 25 )+ , ( "Guy Fawkes Day", "guy fawkes day", monthDay 11 5 )+ , ( "Shakespeare Day", "shakespeare day", monthDay 4 23 )+ , ( "St Andrew's Day", "st\\.? andrew'?s day", monthDay 11 30 )+ , ( "St. David's Day", "st\\.? david'?s day", monthDay 3 1 )+ , ( "Victory in Europe Day", "victory in europe day", monthDay 5 8 ) + -- Fixed day/week/month, year over year+ , ( "August Bank Holiday", "(august|(late )?summer) bank holiday"+ , predLastOf (dayOfWeek 1) (month 8) )+ , ( "Early May Bank Holiday", "early may bank holiday", nthDOWOfMonth 1 1 5 )+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Remembrance Sunday", "remembrance sunday", nthDOWOfMonth 2 7 11 )+ , ( "Spring Bank Holiday", "(sprint|late may) bank holiday"+ , predLastOf (dayOfWeek 1) (month 5) )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ -- 3 weeks before Easter+ [ ( "Mothering Sunday", "mothering sunday|mother'?s?'? day"+ , cycleNthAfter False TG.Day (-21) easterSunday )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ ruleComputedHolidays+ ++ rulePeriodicHolidays
Duckling/Time/EN/IE/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,55 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2018, 8, 6, 0, 0, 0) Day "August Bank Holiday")+ [ "august bank holiday 2018"+ , "summer bank holiday 2018"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 6, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 7, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012" ] ]
Duckling/Time/EN/IE/Rules.hs view
@@ -42,7 +42,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +69,25 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed day/week/month, year over year+ [ ( "August Bank Holiday", "(august|summer) bank holiday"+ , nthDOWOfMonth 1 1 8 )+ , ( "Early May Bank Holiday", "early may bank holiday", nthDOWOfMonth 1 1 5 )+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "June Bank Holiday", "june bank holiday", nthDOWOfMonth 1 1 6 )+ , ( "Labour Day", "labour day", nthDOWOfMonth 1 1 5 )+ , ( "October Bank Holiday", "october (bank )?holiday"+ , predLastOf (dayOfWeek 1) (month 10) )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ] rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays
Duckling/Time/EN/IN/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,66 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 2, 19, 0, 0, 0) Day "Shivaji Jayanti")+ [ "shivaji jayanti 2013"+ ]+ , examples (datetimeHoliday (2013, 8, 15, 0, 0, 0) Day "Independence Day")+ [ "independence day"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2018, 3, 30, 0, 0, 0) Day "Hazarat Ali's Birthday")+ [ "Hazarat Ali's Birthday 2018"+ ]+ , examples (datetimeHoliday (2019, 3, 20, 0, 0, 0) Day "Hazarat Ali's Birthday")+ [ "Hazarat Ali's Birthday 2019"+ ]+ , examples (datetimeIntervalHoliday ((2018, 5, 16, 0, 0, 0), (2018, 6, 15, 0, 0, 0)) Day "Ramadan")+ [ "ramzaan 2018" ] ]
Duckling/Time/EN/IN/Rules.hs view
@@ -20,9 +20,11 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG ruleDDMM :: Rule ruleDDMM = Rule@@ -42,7 +44,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +71,35 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Guru Tegh Bahadur's Martyrdom Day", "guru tegh bahadur'?s martyrdom day"+ , monthDay 11 24 )+ , ( "Independence Day", "independence day", monthDay 8 15 )+ , ( "Labour Day", "labour day", monthDay 5 1 )+ , ( "Mahatma Gandhi Jayanti", "mahatma gandhi jayanti", monthDay 10 2 )+ , ( "Republic Day", "republic day", monthDay 1 26 )+ , ( "Shivaji Jayanti", "shivaji jayanti", monthDay 2 19 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Friendship Day", "friendship day", nthDOWOfMonth 1 7 8 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ [ ( "Hazarat Ali's Birthday", "hazarat ali's birthday"+ , cycleNthAfter False TG.Day 12 rajab )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ ruleComputedHolidays+ ++ rulePeriodicHolidays
Duckling/Time/EN/JM/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,54 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 23, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 23, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2013, 10, 21, 0, 0, 0) Day "Heroes' Day")+ [ "heroes' day" ] ]
Duckling/Time/EN/JM/Rules.hs view
@@ -42,7 +42,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +69,22 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Labour Day", "labour day", monthDay 5 23 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Heroes' Day", "heroes' day", nthDOWOfMonth 3 1 10 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays
Duckling/Time/EN/NZ/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,54 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 4, 25, 0, 0, 0) Day "ANZAC Day")+ [ "ANZAC day"+ ]+ , examples (datetimeHoliday (2013, 9, 1, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 9, 2, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 9, 1, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 10, 28, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 10, 22, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012" ] ]
Duckling/Time/EN/NZ/Rules.hs view
@@ -20,9 +20,11 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed (easterSunday) import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG ruleDDMM :: Rule ruleDDMM = Rule@@ -42,7 +44,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +71,35 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "ANZAC Day", "anzac day", monthDay 4 25 )+ , ( "Guy Fawkes Night", "guy fawkes night", monthDay 11 5 )+ , ( "Waitangi Day", "waitangi day", monthDay 2 6 ) + -- Fixed day/week/month, year over year+ , ( "Administrative Professionals' Day"+ , "(admin(istrative professionals'?)|secretaries'?) day"+ , nthDOWOfMonth 3 3 4 )+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 1 7 9 )+ , ( "Labour Day", "labour day", nthDOWOfMonth 4 1 10 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Queen's birthday", "queen's birthday", nthDOWOfMonth 1 1 6 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ [ ( "Easter Tuesday", "easter\\s+tue(sday)?"+ , cycleNthAfter False TG.Day 2 easterSunday )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ ruleComputedHolidays+ ++ rulePeriodicHolidays
Duckling/Time/EN/PH/Corpus.hs view
@@ -33,29 +33,65 @@ , "10/31/74" , "10-31-74" , "10.31.1974"+ , "10 31 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "4/25 at 4:00pm" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 12, 30, 0, 0, 0) Day "Rizal Day")+ [ "Rizal day"+ ]+ , examples (datetimeHoliday (2013, 6, 12, 0, 0, 0) Day "Independence Day")+ [ "Independence day"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2013, 8, 26, 0, 0, 0) Day "National Heroes' Day")+ [ "national heroes' day" ] ]
Duckling/Time/EN/PH/Rules.hs view
@@ -42,7 +42,7 @@ ruleMMDDYYYY = Rule { name = "mm/dd/yyyy" , pattern =- [ regex "(1[0-2]|0?[1-9])[/-](3[01]|[12]\\d|0?[1-9])[-/](\\d{2,4})"+ [ regex "(1[0-2]|0?[1-9])[-/\\s](3[01]|[12]\\d|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do@@ -69,20 +69,33 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Arbor Day", "arbor day", monthDay 6 25 )+ , ( "Bonifacio Day", "bonifacio day", monthDay 11 30 )+ , ( "Independence Day", "independence day", monthDay 6 12 )+ , ( "Labour Day", "labour day", monthDay 5 1 )+ , ( "Ninoy Aquino Day", "ninoy aquino day", monthDay 8 21 )+ , ( "People Power Anniversary", "(edsa revolution|people power) anniversary"+ , monthDay 2 25 )+ , ( "Rizal Day", "rizal day", monthDay 12 30 )+ , ( "The Day of Valor", "the day of valor", monthDay 4 9 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "National Elections Day", "national elections day", nthDOWOfMonth 2 1 5 )+ , ( "National Heroes' Day", "(national )?heroes' day"+ , predLastOf (dayOfWeek 1) (month 8) )+ , ( "Parents' Day", "parents' day", nthDOWOfMonth 1 1 12 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]+ rules :: [Rule] rules = [ ruleMMDD , ruleMMDDYYYY , ruleMMDDYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays
Duckling/Time/EN/Rules.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE NoRebindableSyntax #-} {-# LANGUAGE OverloadedStrings #-}@@ -27,6 +28,7 @@ import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Ordinal.Types (OrdinalData (..)) import Duckling.Regex.Types+import Duckling.Time.Computed import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types@@ -41,10 +43,11 @@ { name = "intersect" , pattern = [ Predicate isNotLatent- , Predicate isNotLatent+ , Predicate $ or . sequence [isNotLatent, isGrainOfTime TG.Year] ] , prod = \tokens -> case tokens of- (Token Time td1:Token Time td2:_) -> Token Time <$> intersect td1 td2+ (Token Time td1:Token Time td2:_) ->+ Token Time . notLatent <$> intersect td1 td2 _ -> Nothing } @@ -54,10 +57,11 @@ , pattern = [ Predicate isNotLatent , regex "of|from|for|'s|,"- , Predicate isNotLatent+ , Predicate $ or . sequence [isNotLatent, isGrainOfTime TG.Year] ] , prod = \tokens -> case tokens of- (Token Time td1:_:Token Time td2:_) -> Token Time <$> intersect td1 td2+ (Token Time td1:_:Token Time td2:_) ->+ Token Time . notLatent <$> intersect td1 td2 _ -> Nothing } @@ -85,15 +89,15 @@ _ -> Nothing } -ruleAbsorbInMonth :: Rule-ruleAbsorbInMonth = Rule- { name = "in <named-month>"+ruleAbsorbInMonthYear :: Rule+ruleAbsorbInMonthYear = Rule+ { name = "in <named-month>|year" , pattern = [ regex "in"- , Predicate isAMonth+ , Predicate $ or . sequence [isAMonth, isGrainOfTime TG.Year] ] , prod = \tokens -> case tokens of- (_:token:_) -> Just token+ (_:Token Time td:_) -> tt $ notLatent td _ -> Nothing } @@ -115,8 +119,6 @@ , ("today" , TG.Day , 0 , "todays?|(at this time)" ) , ("tomorrow" , TG.Day , 1 , "(tmrw?|tomm?or?rows?)" ) , ("yesterday" , TG.Day , - 1, "yesterdays?" )- , ("end of month" , TG.Month , 1 , "(the )?(EOM|end of (the )?month)" )- , ("end of year" , TG.Year , 1 , "(the )?(EOY|end of (the )?year)" ) ] ruleNow :: Rule@@ -231,6 +233,21 @@ _ -> Nothing } +ruleLastNight :: Rule+ruleLastNight = Rule+ { name = "last night"+ , pattern =+ [ regex "(late )?last night"+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_) ->+ let hours = if Text.toLower match == "late " then 3 else 6+ start = durationBefore (DurationData hours TG.Hour) end+ end = cycleNth TG.Day 0+ in Token Time . partOfDay . notLatent <$> interval TTime.Open start end+ _ -> Nothing+ }+ ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule { name = "nth <time> of <time>"@@ -293,42 +310,20 @@ _ -> Nothing } -ruleYear :: Rule-ruleYear = Rule- { name = "year"- , pattern = [Predicate $ isIntegerBetween 1000 2100]+ruleYearLatent :: Rule+ruleYearLatent = Rule+ { name = "year (latent)"+ , pattern =+ [ Predicate $+ or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 10000]+ ] , prod = \tokens -> case tokens of (token:_) -> do n <- getIntValue token- tt $ year n+ tt . mkLatent $ year n _ -> Nothing } -ruleYearPastLatent :: Rule-ruleYearPastLatent = Rule- { name = "past year (latent)"- , pattern =- [ Predicate $- or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 999]- ]- , prod = \tokens -> case tokens of- (token:_) -> do- n <- getIntValue token- tt . mkLatent $ year n- _ -> Nothing- }--ruleYearFutureLatent :: Rule-ruleYearFutureLatent = Rule- { name = "future year (latent)"- , pattern = [Predicate $ isIntegerBetween 2101 10000]- , prod = \tokens -> case tokens of- (token:_) -> do- n <- getIntValue token- tt . mkLatent $ year n- _ -> Nothing- }- ruleDOMLatent :: Rule ruleDOMLatent = Rule { name = "<day-of-month> (ordinal)"@@ -820,11 +815,14 @@ ruleTonight :: Rule ruleTonight = Rule { name = "tonight"- , pattern = [regex "toni(ght|gth|te)s?"]- , prod = \_ -> do- let today = cycleNth TG.Day 0- evening <- interval TTime.Open (hour False 18) (hour False 0)- Token Time . partOfDay . notLatent <$> intersect today evening+ , pattern = [regex "(late )?toni(ght|gth|te)s?"]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_) -> do+ let today = cycleNth TG.Day 0+ h = if Text.toLower match == "late " then 21 else 18+ evening <- interval TTime.Open (hour False h) (hour False 0)+ Token Time . partOfDay . notLatent <$> intersect today evening+ _ -> Nothing } ruleAfterPartofday :: Rule@@ -881,6 +879,26 @@ , prod = \_ -> tt $ mkOkForThisNext weekend } +ruleSeason :: Rule+ruleSeason = Rule+ { name = "last|this|next <season>"+ , pattern =+ [ regex "(this|current|next|last|past|previous) seasons?"+ ]+ , prod = \case+ (Token RegexMatch (GroupMatch (match:_)):_) -> do+ n <- case Text.toLower match of+ "this" -> Just 0+ "current" -> Just 0+ "last" -> Just (-1)+ "past" -> Just (-1)+ "previous" -> Just (-1)+ "next" -> Just 1+ _ -> Nothing+ tt $ predNth n False season+ _ -> Nothing+ }+ ruleSeasons :: [Rule] ruleSeasons = mkRuleSeasons [ ( "summer", "summer" , monthDay 6 21, monthDay 9 23 )@@ -1180,19 +1198,19 @@ ] ruleMonths :: [Rule]-ruleMonths = mkRuleMonths- [ ( "January" , "january|jan\\.?" )- , ( "February" , "february|feb\\.?" )- , ( "March" , "march|mar\\.?" )- , ( "April" , "april|apr\\.?" )- , ( "May" , "may" )- , ( "June" , "june|jun\\.?" )- , ( "July" , "july|jul\\.?" )- , ( "August" , "august|aug\\.?" )- , ( "September", "september|sept?\\.?" )- , ( "October" , "october|oct\\.?" )- , ( "November" , "november|nov\\.?" )- , ( "December" , "december|dec\\.?" )+ruleMonths = mkRuleMonthsWithLatent+ [ ( "January" , "january|jan\\.?" , False )+ , ( "February" , "february|feb\\.?" , False )+ , ( "March" , "march|mar\\.?" , False )+ , ( "April" , "april|apr\\.?" , False )+ , ( "May" , "may" , True )+ , ( "June" , "june|jun\\.?" , False )+ , ( "July" , "july|jul\\.?" , False )+ , ( "August" , "august|aug\\.?" , False )+ , ( "September", "september|sept?\\.?", False )+ , ( "October" , "october|oct\\.?" , False )+ , ( "November" , "november|nov\\.?" , False )+ , ( "December" , "december|dec\\.?" , False ) ] rulePartOfMonth :: Rule@@ -1217,42 +1235,485 @@ _ -> Nothing } -ruleUSHolidays :: [Rule]-ruleUSHolidays = mkRuleHolidays+ruleEndOrBeginningOfMonth :: Rule+ruleEndOrBeginningOfMonth = Rule+ { name = "at the beginning|end of <named-month>"+ , pattern =+ [ regex "(at the )?(beginning|end) of"+ , Predicate isAMonth+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (_:match:_)):Token Time td:_) -> do+ (sd, ed) <- case Text.toLower match of+ "beginning" -> Just (1, 10)+ "end" -> Just (21, -1)+ _ -> Nothing+ start <- intersect td $ dayOfMonth sd+ end <- if ed /= -1+ then intersect td $ dayOfMonth ed+ else Just $ cycleLastOf TG.Day td+ Token Time <$> interval TTime.Open start end+ _ -> Nothing+ }++ruleEndOfMonth :: Rule+ruleEndOfMonth = Rule+ { name = "end of month"+ , pattern = [ regex "(by (the )?|(at )?the )?(EOM|end of (the )?month)" ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_)+ | (Just start, Just end) <- parsed ->+ Token Time <$> interval TTime.Open start end+ where+ cycleMonth = cycleNth TG.Month+ parsed = if "by" `Text.isPrefixOf` Text.toLower match+ then+ ( Just $ cycleNth TG.Second 0+ , intersect (dayOfMonth 1) $ cycleMonth 1)+ else+ ( intersect (dayOfMonth 21) $ cycleMonth 0+ , Just $ cycleLastOf TG.Day $ cycleMonth 0)+ _ -> Nothing+ }++ruleBeginningOfMonth :: Rule+ruleBeginningOfMonth = Rule+ { name = "beginning of month"+ , pattern = [ regex "((at )?the )?(BOM|beginning of (the )?month)" ]+ , prod = \_ -> do+ start <- intersect (dayOfMonth 1) $ cycleNth TG.Month 0+ end <- intersect (dayOfMonth 10) $ cycleNth TG.Month 0+ Token Time <$> interval TTime.Open start end+ }++ruleEndOrBeginningOfYear :: Rule+ruleEndOrBeginningOfYear = Rule+ { name = "at the beginning|end of <year>"+ , pattern =+ [ regex "(at the )?(beginning|end) of"+ , Predicate $ isGrainOfTime TG.Year+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (_:match:_)):Token Time td:_) -> do+ (sd, ed) <- case Text.toLower match of+ "beginning" -> Just (1, 4)+ "end" -> Just (9, -1)+ _ -> Nothing+ start <- intersect td $ month sd+ end <- if ed /= -1+ then intersect td $ cycleLastOf TG.Month $ month ed+ else cycleNthAfter False TG.Year 1 <$> intersect td (month 1)+ Token Time <$> interval TTime.Open start end+ _ -> Nothing+ }++ruleEndOfYear :: Rule+ruleEndOfYear = Rule+ { name = "end of year"+ , pattern = [ regex "(by (the )?|(at )?the )?(EOY|end of (the )?year)" ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (match:_)):_) -> do+ start <- std+ end <- intersect (month 1) $ cycleYear 1+ Token Time <$> interval TTime.Open start end+ where+ std = if "by" `Text.isPrefixOf` Text.toLower match+ then Just $ cycleNth TG.Second 0+ else intersect (month 9) $ cycleYear 0+ cycleYear = cycleNth TG.Year+ _ -> Nothing+ }++ruleBeginningOfYear :: Rule+ruleBeginningOfYear = Rule+ { name = "beginning of year"+ , pattern = [ regex "((at )?the )?(BOY|beginning of (the )?year)" ]+ , prod = \_ -> do+ start <- intersect (month 1) $ cycleNth TG.Year 0+ end <- intersect (month 4) $ cycleNth TG.Year 0+ Token Time <$> interval TTime.Open start end+ }++ruleEndOrBeginningOfWeek :: Rule+ruleEndOrBeginningOfWeek = Rule+ { name = "at the beginning|end of <week>"+ , pattern =+ [ regex "(at the )?(beginning|end) of"+ , Predicate $ isGrainOfTime TG.Week+ ]+ , prod = \tokens -> case tokens of+ (Token RegexMatch (GroupMatch (_:match1:_)):Token Time td:_) -> do+ (sd, ed) <- case Text.toLower match1 of+ "beginning" -> Just (1, 3)+ "end" -> Just (5, 7)+ _ -> Nothing+ start <- intersect td $ dayOfWeek sd+ end <- intersect td $ dayOfWeek ed+ Token Time <$> interval TTime.Open start end+ _ -> Nothing+ }++rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays -- Fixed dates, year over year- [ ( "Christmas" , "(xmas|christmas)( day)?" , monthDay 12 25 )- , ( "Christmas Eve" , "(xmas|christmas)( day)?('s)? eve", monthDay 12 24 )- , ( "New Year's Eve" , "new year'?s? eve" , monthDay 12 31 )- , ( "New Year's Day" , "new year'?s?( day)?" , monthDay 1 1 )- , ( "Valentine's Day" , "valentine'?s?( day)?" , monthDay 2 14 )- , ( "Independence Day", "independence day" , monthDay 7 4 )- , ( "Halloween" , "hall?owe?en( day)?" , monthDay 10 31 )+ [ ( "Africa Day", "africa(n (freedom|liberation))? day", monthDay 5 25 )+ , ( "Africa Industrialization Day", "africa industrialization day", monthDay 11 20 )+ , ( "All Saints' Day", "all saints' day", monthDay 11 1 )+ , ( "All Souls' Day", "all souls' day", monthDay 11 2 )+ , ( "April Fools", "(april|all) fool'?s('? day)?", monthDay 4 1 )+ , ( "Arabic Language Day", "arabic language day", monthDay 12 18 )+ , ( "Assumption of Mary", "assumption of mary", monthDay 8 15 )+ , ( "Boxing Day", "boxing day", monthDay 12 26 )+ , ( "Chinese Language Day", "chinese language day", monthDay 4 20 )+ , ( "Christmas", "(xmas|christmas)( day)?", monthDay 12 25 )+ , ( "Christmas Eve", "(xmas|christmas)( day)?('s)? eve", monthDay 12 24 )+ , ( "Day of Remembrance for all Victims of Chemical Warfare", "day of remembrance for all victims of chemical warfare", monthDay 4 29 )+ , ( "Day of Remembrance of the Victims of the Rwanda Genocide", "day of remembrance of the victims of the rwanda genocide", monthDay 4 7 )+ , ( "Day of the Seafarer", "day of the seafarer", monthDay 6 25 )+ , ( "Earth Day", "earth day", monthDay 4 22 )+ , ( "English Language Day", "english language day", monthDay 4 23 )+ , ( "Epiphany", "Epiphany", monthDay 1 6 )+ , ( "Feast of St Francis of Assisi", "feast of st\\.? francis of assisi", monthDay 10 4 )+ , ( "Feast of the Immaculate Conception", "feast of the immaculate conception", monthDay 12 8 )+ , ( "Global Day of Parents", "global day of parents", monthDay 6 1 )+ , ( "Halloween", "hall?owe?en( day)?", monthDay 10 31 )+ , ( "Human Rights Day", "human rights? day", monthDay 12 10 )+ , ( "International Albinism Awareness Day", "international albinism awareness day", monthDay 6 13 )+ , ( "International Anti-Corruption Day", "international anti(\\-|\\s)corruption day", monthDay 12 9 )+ , ( "International Asteroid Day", "international asteroid day", monthDay 6 30 )+ , ( "International Celebrate Bisexuality Day", "international celebrate bisexuality day", monthDay 9 23 )+ , ( "International Chernobyl Disaster Remembrance Day", "international chernobyl disaster remembrance day", monthDay 4 26 )+ , ( "International Civil Aviation Day", "international civil aviation day", monthDay 12 7 )+ , ( "International Customs Day", "international customs day", monthDay 1 26 )+ , ( "International Day Against Drug Abuse and Illicit Trafficking", "international day against drug abuse and illicit trafficking", monthDay 6 26 )+ , ( "International Day against Nuclear Tests", "international day against nuclear tests", monthDay 8 29 )+ , ( "International Day for Biological Diversity", "international day for biological diversity|world biodiversity day", monthDay 5 22 )+ , ( "International Day for Monuments and Sites", "international day for monuments and sites", monthDay 4 18 )+ , ( "International Day for Preventing the Exploitation of the Environment in War and Armed Conflict", "international day for preventing the exploitation of the environment in war and armed conflict", monthDay 11 6 )+ , ( "International Day for South-South Cooperation", "international day for south(\\-|\\s)south cooperation", monthDay 9 12 )+ , ( "International Day for Tolerance", "international day for tolerance", monthDay 11 16 )+ , ( "International Day for the Abolition of Slavery", "international day for the abolition of slavery", monthDay 12 2 )+ , ( "International Day for the Elimination of Racial Discrimination", "international day for the elimination of racial discrimination", monthDay 3 21 )+ , ( "International Day for the Elimination of Sexual Violence in Conflict", "international day for the elimination of sexual violence in conflict", monthDay 6 19 )+ , ( "International Day for the Elimination of Violence against Women", "international day for the elimination of violence against women", monthDay 11 25 )+ , ( "International Day for the Eradication of Poverty", "international day for the eradication of poverty", monthDay 10 17 )+ , ( "International Day for the Preservation of the Ozone Layer", "international day for the preservation of the ozone Layer", monthDay 9 16 )+ , ( "International Day for the Remembrance of the Slave Trade and its Abolition", "international day for the remembrance of the slave trade and its abolition", monthDay 8 23 )+ , ( "International Day for the Right to the Truth concerning Gross Human Rights Violations and for the Dignity of Victims", "international day for the right to the truth concerning gross human rights violations and for the dignity of victims", monthDay 3 24 )+ , ( "International Day for the Total Elimination of Nuclear Weapons", "international day for the total elimination of nuclear weapons", monthDay 9 26 )+ , ( "International Day in Support of Victims of Torture", "international day in support of victims of torture", monthDay 6 26 )+ , ( "International Day of Charity", "international day of charity", monthDay 9 5 )+ , ( "International Day of Commemoration in Memory of the Victims of the Holocaust", "international day of commemoration in memory of the victims of the holocaust", monthDay 1 27 )+ , ( "International Day of Democracy", "international day of democracy", monthDay 9 15 )+ , ( "International Day of Disabled Persons", "international day of disabled persons", monthDay 12 3 )+ , ( "International Day of Families", "international day of families", monthDay 5 15 )+ , ( "International Day of Family Remittances", "international day of family remittances", monthDay 6 16 )+ , ( "International Day of Forests", "international day of forests", monthDay 3 21 )+ , ( "International Day of Friendship", "international day of friendship", monthDay 7 30 )+ , ( "International Day of Happiness", "international day of happiness", monthDay 3 20 )+ , ( "International Day of Human Space Flight", "international day of human space flight", monthDay 4 12 )+ , ( "International Day of Innocent Children Victims of Aggression", "international day of innocent children victims of aggression", monthDay 6 4 )+ , ( "International Day of Non-Violence", "international day of non(\\-|\\s)violence", monthDay 10 2 )+ , ( "International Day of Nowruz", "international day of nowruz", monthDay 3 21 )+ , ( "International Day of Older Persons", "international day of older persons", monthDay 10 1 )+ , ( "International Day of Peace", "international day of peace", monthDay 9 21 )+ , ( "International Day of Persons with Disabilities", "international day of persons with disabilities", monthDay 12 3 )+ , ( "International Day of Remembrance of Slavery Victims and the Transatlantic Slave Trade", "international day of remembrance of slavery victims and the transatlantic slave trade", monthDay 3 25 )+ , ( "International Day of Rural Women", "international day of rural women", monthDay 10 15 )+ , ( "International Day of Solidarity with Detained and Missing Staff Members", "international day of solidarity with detained and missing staff members", monthDay 3 25 )+ , ( "International Day of Solidarity with the Palestinian People", "international day of solidarity with the palestinian people", monthDay 11 29 )+ , ( "International Day of Sport for Development and Peace", "international day of sport for development and peace", monthDay 4 6 )+ , ( "International Day of United Nations Peacekeepers", "international day of united nations peacekeepers", monthDay 5 29 )+ , ( "International Day of Women and Girls in Science", "international day of women and girls in science", monthDay 2 11 )+ , ( "International Day of Yoga", "international day of yoga", monthDay 6 21 )+ , ( "International Day of Zero Tolerance for Female Genital Mutilation", "international day of zero tolerance for female genital mutilation", monthDay 2 6 )+ , ( "International Day of the Girl Child", "international day of the girl child", monthDay 10 11 )+ , ( "International Day of the Victims of Enforced Disappearances", "international day of the victims of enforced disappearances", monthDay 8 30 )+ , ( "International Day of the World's Indigenous People", "international day of the world'?s indigenous people", monthDay 8 9 )+ , ( "International Day to End Impunity for Crimes against Journalists", "international day to end impunity for crimes against journalists", monthDay 11 2 )+ , ( "International Day to End Obstetric Fistula", "international day to end obstetric fistula", monthDay 5 23 )+ , ( "International Day for Disaster Reduction", "iddr|international day for (natural )?disaster reduction", monthDay 10 13 )+ , ( "International Human Solidarity Day", "international human solidarity day", monthDay 12 20 )+ , ( "International Jazz Day", "international jazz day", monthDay 4 30 )+ , ( "International Literacy Day", "international literacy day", monthDay 9 8 )+ , ( "International Men's Day", "international men'?s day", monthDay 11 19 )+ , ( "International Migrants Day", "international migrants day", monthDay 12 18 )+ , ( "International Mother Language Day", "international mother language day", monthDay 2 21 )+ , ( "International Mountain Day", "international mountain day", monthDay 12 11 )+ , ( "International Nurses Day", "international nurses day", monthDay 5 12 )+ , ( "International Overdose Awareness Day", "international overdose awareness day", monthDay 8 31 )+ , ( "International Volunteer Day for Economic and Social Development", "international volunteer day for economic and social development", monthDay 12 5 )+ , ( "International Widows' Day", "international widows'? day", monthDay 6 23 )+ , ( "International Women's Day", "international women'?s day", monthDay 3 8 )+ , ( "International Youth Day", "international youth day", monthDay 8 12 )+ , ( "May Day", "may day", monthDay 5 1 )+ , ( "Nelson Mandela Day", "nelson mandela day", monthDay 7 18 )+ , ( "New Year's Day", "new year'?s?( day)?", monthDay 1 1 )+ , ( "New Year's Eve", "new year'?s? eve", monthDay 12 31 )+ , ( "Orthodox Christmas Day", "orthodox christmas day", monthDay 1 7 )+ , ( "Orthodox New Year", "orthodox new year", monthDay 1 14 )+ , ( "Public Service Day", "public service day", monthDay 6 23 )+ , ( "St. George's Day", "(saint|st\\.?) george'?s day|feast of saint george", monthDay 4 23 )+ , ( "St Patrick's Day", "st\\.? patrick'?s day", monthDay 3 17 )+ , ( "St. Stephen's Day", "st\\.? stephen'?s day", monthDay 12 26 )+ , ( "Time of Remembrance and Reconciliation for Those Who Lost Their Lives during the Second World War", "time of remembrance and reconciliation for those who lost their lives during the second world war", monthDay 5 8 )+ , ( "United Nations Day", "united nations day", monthDay 10 24 )+ , ( "United Nations' Mine Awareness Day", "united nations'? mine awareness day", monthDay 4 4 )+ , ( "United Nations' World Health Day", "united nations'? world health day", monthDay 4 7 )+ , ( "Universal Children's Day", "universal children'?s day", monthDay 11 20 )+ , ( "Valentine's Day", "valentine'?s?( day)?", monthDay 2 14 )+ , ( "World AIDS Day", "world aids day", monthDay 12 1 )+ , ( "World Autism Awareness Day", "world autism awareness day", monthDay 4 2 )+ , ( "World Autoimmune Arthritis Day", "world autoimmune arthritis day", monthDay 5 20 )+ , ( "World Blood Donor Day", "world blood donor day", monthDay 6 14 )+ , ( "World Book and Copyright Day", "world book and copyright day", monthDay 4 23 )+ , ( "World Braille Day", "world braille day", monthDay 1 4 )+ , ( "World Cancer Day", "world cancer day", monthDay 2 4 )+ , ( "World Cities Day", "world cities day", monthDay 10 31 )+ , ( "World CP Day", "world (cerebral palsy| cp) day", monthDay 10 6 )+ , ( "World Day Against Child Labour", "world day against child labour", monthDay 6 12 )+ , ( "World Day against Trafficking in Persons", "world day against trafficking in persons", monthDay 7 30 )+ , ( "World Day for Audiovisual Heritage", "world day for audiovisual heritage", monthDay 10 27 )+ , ( "World Day for Cultural Diversity for Dialogue and Development", "world day for cultural diversity for dialogue and development", monthDay 5 21 )+ , ( "World Day for Safety and Health at Work", "world day for safety and health at work", monthDay 4 28 )+ , ( "World Day for the Abolition of Slavery", "world day for the abolition of slavery", monthDay 12 2 )+ , ( "World Day of Social Justice", "world day of social justice", monthDay 2 20 )+ , ( "World Day of the Sick", "world day of the sick", monthDay 2 11 )+ , ( "World Day to Combat Desertification and Drought", "world day to combat desertification and drought", monthDay 6 17 )+ , ( "World Development Information Day", "world development information day", monthDay 10 24 )+ , ( "World Diabetes Day", "world diabetes day", monthDay 11 14 )+ , ( "World Down Syndrome Day", "world down syndrome day", monthDay 3 21 )+ , ( "World Elder Abuse Awareness Day", "world elder abuse awareness day", monthDay 6 15 )+ , ( "World Environment Day", "world environment day", monthDay 6 5 )+ , ( "World Food Day", "world food day", monthDay 10 16 )+ , ( "World Genocide Commemoration Day", "world genocide commemoration day", monthDay 12 9 )+ , ( "World Heart Day", "world heart day", monthDay 9 29 )+ , ( "World Hepatitis Day", "world hepatitis day", monthDay 7 28 )+ , ( "World Humanitarian Day", "world humanitarian day", monthDay 8 19 )+ , ( "World Information Society Day", "world information society day", monthDay 5 17 )+ , ( "World Intellectual Property Day", "world intellectual property day", monthDay 4 26 )+ , ( "World Malaria Day", "world malaria day", monthDay 4 25 )+ , ( "World Mental Health Day", "world mental health day", monthDay 10 10 )+ , ( "World Meteorological Day", "world meteorological day", monthDay 3 23 )+ , ( "World No Tobacco Day", "world no tobacco day", monthDay 5 31 )+ , ( "World Oceans Day", "world oceans day", monthDay 6 8 )+ , ( "World Ovarian Cancer Day", "world ovarian cancer day", monthDay 5 8 )+ , ( "World Pneumonia Day", "world pneumonia day", monthDay 11 12 )+ , ( "World Poetry Day", "world poetry day", monthDay 3 21 )+ , ( "World Population Day", "world population day", monthDay 7 11 )+ , ( "World Post Day", "world post day", monthDay 10 9 )+ , ( "World Prematurity Day", "world prematurity day", monthDay 11 17 )+ , ( "World Press Freedom Day", "world press freedom day", monthDay 5 3 )+ , ( "World Rabies Day", "world rabies day", monthDay 9 28 )+ , ( "World Radio Day", "world radio day", monthDay 2 13 )+ , ( "World Refugee Day", "world refugee day", monthDay 6 20 )+ , ( "World Science Day for Peace and Development", "world science day for peace and development", monthDay 11 10 )+ , ( "World Sexual Health Day", "world sexual health day", monthDay 9 4 )+ , ( "World Soil Day", "world soil day", monthDay 12 5 )+ , ( "World Stroke Day", "world stroke day", monthDay 10 29 )+ , ( "World Suicide Prevention Day", "world suicide prevention day", monthDay 9 10 )+ , ( "World Teachers' Day", "world teachers'? day", monthDay 10 5 )+ , ( "World Television Day", "world television day", monthDay 11 21 )+ , ( "World Toilet Day", "world toilet day", monthDay 11 19 )+ , ( "World Tourism Day", "world tourism day", monthDay 9 27 )+ , ( "World Tuberculosis Day", "world tuberculosis day", monthDay 3 24 )+ , ( "World Tuna Day", "world tuna day", monthDay 5 2 )+ , ( "World Vegan Day", "world vegan day", monthDay 11 1 )+ , ( "World Vegetarian Day", "world vegetarian day", monthDay 10 1 )+ , ( "World Water Day", "world water day", monthDay 3 22 )+ , ( "World Wetlands Day", "world wetlands day", monthDay 2 2 )+ , ( "World Wildlife Day", "world wildlife day", monthDay 3 3 )+ , ( "World Youth Skills Day", "world youth skills day", monthDay 7 15 )+ , ( "Zero Discrimination Day", "zero discrimination day", monthDay 3 1 ) -- Fixed day/week/month, year over year+ , ( "Commonwealth Day", "commonwealth day", nthDOWOfMonth 2 1 3 )+ , ( "Day of Remembrance for Road Traffic Victims"+ , "(world )?day of remembrance for road traffic victims"+ , nthDOWOfMonth 3 7 11 )+ , ( "International Day of Cooperatives"+ , "international day of co\\-?operatives", nthDOWOfMonth 1 6 7 ) , ( "Martin Luther King's Day"- , "(MLK|Martin Luther King,?)( Jr.?| Junior)? day"+ , "(MLK|Martin Luther King,?)( Jr\\.?| Junior)? day|(civil|idaho human) rights day" , nthDOWOfMonth 3 1 1 )- , ( "Father's Day" , "father'?s?'? day", nthDOWOfMonth 3 7 6 )- , ( "Mother's Day" , "mother'?s?'? day", nthDOWOfMonth 2 7 5 )- , ( "Labor Day" , "labor day" , nthDOWOfMonth 1 1 9 ) -- The day after Thanksgiving (not always the fourth Friday of November) , ( "Black Friday", "black frid?day" , cycleNthAfter False TG.Day 1 $ nthDOWOfMonth 4 4 11 )- -- Last Monday of May- , ( "Memorial Day", "memorial day", predLastOf (dayOfWeek 1) (month 5) )- -- Long weekend before the last Monday of May- , ( "Memorial Day weekend", "memorial day week(\\s|-)?ends?"- , longWEBefore $ predLastOf (dayOfWeek 1) (month 5)- )- -- Long weekend before the first Monday of September- , ( "Labor Day weekend", "labor day week(\\s|-)?ends?"- , longWEBefore $ nthDOWOfMonth 1 1 9+ , ( "World Habitat Day", "world habitat day", nthDOWOfMonth 1 1 10 )+ , ( "World Kidney Day", "world kidney day", nthDOWOfMonth 2 4 3 )+ , ( "World Leprosy Day", "world leprosy day"+ , predLastOf (dayOfWeek 7) (month 1) )+ , ( "World Maritime Day", "world maritime day"+ , predLastOf (dayOfWeek 4) (month 9) )+ , ( "World Migratory Bird Day", "world migratory bird day"+ , nthDOWOfMonth 2 6 5 )+ , ( "World Philosophy Day", "world philosophy day", nthDOWOfMonth 3 4 11 )+ , ( "World Religion Day", "world religion day", nthDOWOfMonth 3 7 1 )+ , ( "World Sight Day", "world sight day", nthDOWOfMonth 2 4 10 )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ [ ( "Ascension Day", "ascension\\s+(thurs)?day"+ , cycleNthAfter False TG.Day 39 easterSunday )+ , ( "Ash Wednesday", "ash\\s+wednesday|carnival"+ , cycleNthAfter False TG.Day (-46) easterSunday )+ , ( "Ashura", "(day of )?ashura"+ , cycleNthAfter False TG.Day 9 muharram )+ , ( "Bhai Dooj", "bhai(ya)?\\s+d(u|oo)j|bhau\\-beej|bhai\\s+(tika|phonta)"+ , cycleNthAfter False TG.Day 4 dhanteras )+ -- 6th day after Diwali+ , ( "Chhath", "chhathi?|chhath (parv|puja)|dala (chhath|puja)|surya shashthi"+ , cycleNthAfter False TG.Day 8 dhanteras )+ , ( "Boghi", "boghi|bogi\\s+pandigai"+ , cycleNthAfter False TG.Day (-1) thaiPongal )+ , ( "Chinese New Year", "chinese\\s+(lunar\\s+)?new\\s+year('s\\s+day)?"+ , chineseNewYear )+ , ( "Clean Monday"+ , "(orthodox\\s+)?(ash|clean|green|pure|shrove)\\s+monday|monday of lent"+ , cycleNthAfter False TG.Day (-48) orthodoxEaster )+ , ( "Corpus Christi", "(the feast of )?corpus\\s+christi"+ , cycleNthAfter False TG.Day 60 easterSunday )+ , ( "Dhanteras", "dhanatrayodashi|dhanteras|dhanvantari\\s+trayodashi"+ , dhanteras )+ , ( "Diwali", "deepavali|diwali|lakshmi\\s+puja"+ , cycleNthAfter False TG.Day 2 dhanteras )+ , ( "Durga Ashtami", "(durga|maha)(\\s+a)?shtami"+ , cycleNthAfter False TG.Day 7 navaratri )+ , ( "Easter Monday", "easter\\s+mon(day)?"+ , cycleNthAfter False TG.Day 1 easterSunday )+ , ( "Easter Sunday", "easter(\\s+sun(day)?)?", easterSunday )+ , ( "Eid al-Adha", "bakr[\\-\\s]e?id|e?id [au]l\\-adha|sacrifice feast"+ , eidalAdha )+ , ( "Eid al-Fitr", "eid al\\-fitr", eidalFitr )+ , ( "Govardhan Puja", "govardhan\\s+puja|annak(u|oo)t"+ , cycleNthAfter False TG.Day 3 dhanteras )+ , ( "Good Friday", "(good|great|holy)\\s+fri(day)?"+ , cycleNthAfter False TG.Day (-2) easterSunday )+ , ( "Holi", "(rangwali )?holi|dhuleti|dhulandi|phagwah"+ , cycleNthAfter False TG.Day 39 vasantPanchami )+ , ( "Holika Dahan", "holika dahan|kamudu pyre|chhoti holi"+ , cycleNthAfter False TG.Day 38 vasantPanchami )+ , ( "Holy Saturday"+ , "(black|holy (and great )?|joyous)sat(urday)?|the great sabbath|easter eve"+ , cycleNthAfter False TG.Day (-1) easterSunday )+ , ( "Islamic New Year", "(arabic|hijri|islamic) new year|amun jadid|muharram"+ , muharram )+ , ( "Isra and Mi'raj"+ , "isra and mi'raj|(the )?prophet'?s'? ascension|(the )?ascension to heaven|the night journey"+ , cycleNthAfter False TG.Day 26 rajab )+ , ( "Jumu'atul-Wida", "jumu'atul\\-widaa?'?|jamat[\\-\\s]ul[\\-\\s]vida"+ , predNthAfter (-1) (dayOfWeek 5) eidalFitr )+ , ( "Kaanum Pongal", "(kaanum|kanni)\\s+pongal"+ , cycleNthAfter False TG.Day 2 thaiPongal )+ , ( "Lag BaOmer", "lag b[a']omer", lagBaOmer )+ , ( "Laylat al-Qadr"+ , "laylat al[\\-\\s][qk]adr|night of (destiny|measures|power|value)"+ , cycleNthAfter False TG.Day 26 ramadan )+ , ( "Lazarus Saturday", "lazarus\\s+saturday"+ , cycleNthAfter False TG.Day (-8) orthodoxEaster )+ , ( "Maha Navami", "maha\\s+navami", cycleNthAfter False TG.Day 8 navaratri )+ , ( "Maha Saptami", "maha\\s+saptami", cycleNthAfter False TG.Day 6 navaratri )+ , ( "Mattu Pongal", "maa?ttu\\s+pongal"+ , cycleNthAfter False TG.Day 1 thaiPongal )+ , ( "Maundy Thursday"+ , "(covenant|(great and )?holy|maundy|sheer)\\s+thu(rsday)?|thu(rsday)? of mysteries"+ , cycleNthAfter False TG.Day (-3) easterSunday )+ , ( "Mawlid"+ , "mawlid(\\s+al\\-nab(awi|i\\s+al\\-sharif))?|mevli[dt]|mulud|birth(day)? of (the )?prophet( muhammad)?|(the )?prophet's birthday"+ , mawlid )+ , ( "Naraka Chaturdashi"+ , "naraka? (nivaran )?chaturdashi|(kali|roop) chaudas|choti diwali"+ , cycleNthAfter False TG.Day 1 dhanteras )+ , ( "Orthodox Easter Monday", "orthodox\\s+easter\\s+mon(day)?"+ , cycleNthAfter False TG.Day 1 orthodoxEaster )+ , ( "Orthodox Easter Sunday", "orthodox\\s+easter(\\s+sun(day)?)?|pascha?"+ , orthodoxEaster )+ , ( "Orthodox Holy Saturday", "orthodox\\s+holy\\s+sat(urday)?|the great sabbath"+ , cycleNthAfter False TG.Day (-1) orthodoxEaster )+ , ( "Orthodox Great Friday", "orthodox\\s+great(\\s+and\\s+holy)?\\s+friday"+ , cycleNthAfter False TG.Day (-2) orthodoxEaster )+ , ( "Orthodox Palm Sunday", "orthodox\\s+(branch|palm|yew\\s+sunday)"+ , cycleNthAfter False TG.Day (-7) orthodoxEaster )+ , ( "Palm Sunday", "branch|palm|yew\\s+sunday"+ , cycleNthAfter False TG.Day (-7) easterSunday )+ , ( "Pentecost", "pentecost|white sunday|whitsunday"+ , cycleNthAfter False TG.Day 49 easterSunday )+ , ( "Raksha Bandhan", "raksha(\\s+)?bandhan|rakhi", rakshaBandhan )+ , ( "Shemini Atzeret", "shemini\\s+atzeret"+ , cycleNthAfter False TG.Day 21 roshHashana )+ , ( "Shrove Tuesday", "pancake (tues)?day|shrove tuesday"+ , cycleNthAfter False TG.Day (-47) easterSunday )+ , ( "Simchat Torah", "simc?hat\\s+torah"+ , cycleNthAfter False TG.Day 22 roshHashana )+ , ( "Thai Pongal"+ , "(thai )?pongal|pongal pandigai|(makara? |magha )?sankranth?i|maghi"+ , thaiPongal )+ , ( "Thiru Onam", "(thiru(v|\\s+))?onam", thiruOnam )+ , ( "Tisha B'Av", "tisha b'av", tishaBAv )+ , ( "Trinity Sunday", "trinity\\s+sunday"+ , cycleNthAfter False TG.Day 56 easterSunday )+ , ( "Vasant Panchami", "[bv]asant\\s+panchami", vasantPanchami )+ , ( "Vijayadashami", "dasara|duss(eh|he)ra|vijayadashami"+ , cycleNthAfter False TG.Day 9 navaratri )+ -- 15th day of Shevat+ , ( "Tu BiShvat", "tu b[i']shvat", tuBishvat )+ , ( "Yom Ha'atzmaut", "yom ha'?atzmaut", yomHaatzmaut )+ , ( "Yom HaShoah"+ , "yom hashoah|yom hazikaron lashoah ve-lag'vurah|holocaust (remembrance )?day"+ , cycleNthAfter False TG.Day 12 passover )+ , ( "Yom Kippur", "yom\\s+kippur", cycleNthAfter False TG.Day 9 roshHashana )+ , ( "Whit Monday", "(pentecost|whit)\\s+monday|monday of the holy spirit"+ , cycleNthAfter False TG.Day 50 easterSunday )++ -- Other+ , ( "Boss's Day", "boss'?s?( day)?"+ , predNthClosest 0 weekday (monthDay 10 16) ) ] +ruleComputedHolidays' :: [Rule]+ruleComputedHolidays' = mkRuleHolidays'+ [ ( "Great Lent", "great\\s+(fast|lent)"+ , let start = cycleNthAfter False TG.Day (-48) orthodoxEaster+ end = cycleNthAfter False TG.Day (-9) orthodoxEaster+ in interval TTime.Open start end )+ , ( "Hanukkah", "c?hanukk?ah"+ , let start = chanukah+ end = cycleNthAfter False TG.Day 7 chanukah+ in interval TTime.Open start end )+ , ( "Lent", "lent"+ , let start = cycleNthAfter False TG.Day (-46) easterSunday+ end = cycleNthAfter False TG.Day (-1) easterSunday+ in interval TTime.Open start end )+ , ( "Navaratri", "durga\\s+puja|durgotsava|nava?rath?ri"+ , let start = navaratri+ end = cycleNthAfter False TG.Day 9 navaratri+ in interval TTime.Open start end )+ , ( "Passover", "passover|pesa[ck]?h"+ , let start = passover+ end = cycleNthAfter False TG.Day 8 passover+ in interval TTime.Open start end )+ , ( "Ramadan", "rama[dt]h?an|ramzaa?n"+ , let start = ramadan+ end = cycleNthAfter False TG.Day (-1) eidalFitr+ in interval TTime.Open start end )+ , ( "Rosh Hashanah", "rosh hashanah|yom teruah"+ , let start = roshHashana+ end = cycleNthAfter False TG.Day 2 roshHashana+ in interval TTime.Open start end )+ , ( "Shavuot", "feast of weeks|shavu'?oth?|shovuos"+ , let start = cycleNthAfter False TG.Day 50 passover+ end = cycleNthAfter False TG.Day 52 passover+ in interval TTime.Open start end )+ , ( "Sukkot", "feast of (booths|tabernacles|the ingathering)|su[ck]{2}o[st]"+ , let start = cycleNthAfter False TG.Day 14 roshHashana+ end = cycleNthAfter False TG.Day 22 roshHashana+ in interval TTime.Open start end )+ ] ruleCycleThisLastNext :: Rule ruleCycleThisLastNext = Rule@@ -1276,6 +1737,19 @@ _ -> Nothing } +ruleDOMOfTimeMonth :: Rule+ruleDOMOfTimeMonth = Rule+ { name = "<day-of-month> (ordinal or number) of <month>"+ , pattern =+ [ Predicate isDOMValue+ , regex "of( the)?"+ , Predicate $ isGrainOfTime TG.Month+ ]+ , prod = \tokens -> case tokens of+ (token:_:Token Time td:_) -> Token Time <$> intersectDOM td token+ _ -> Nothing+ }+ ruleCycleTheAfterBeforeTime :: Rule ruleCycleTheAfterBeforeTime = Rule { name = "the <cycle> after|before <time>"@@ -1494,6 +1968,38 @@ _ -> Nothing } +ruleDayDurationHenceAgo :: Rule+ruleDayDurationHenceAgo = Rule+ { name = "<day> <duration> hence|ago"+ , pattern =+ [ Predicate $ or . sequence [isGrainOfTime TG.Day, isGrainOfTime TG.Month]+ , dimension Duration+ , regex "(from now|hence|ago)"+ ]+ , prod = \tokens -> case tokens of+ (Token Time td:+ Token Duration dd:+ Token RegexMatch (GroupMatch (match:_)):+ _) -> case Text.toLower match of+ "ago" -> Token Time <$> intersect td (durationIntervalAgo dd)+ _ -> Token Time <$> intersect td (inDurationInterval dd)+ _ -> Nothing+ }++ruleDayInDuration :: Rule+ruleDayInDuration = Rule+ { name = "<day> in <duration>"+ , pattern =+ [ Predicate $ or . sequence [isGrainOfTime TG.Day, isGrainOfTime TG.Month]+ , regex "in"+ , dimension Duration+ ]+ , prod = \tokens -> case tokens of+ (Token Time td:_:Token Duration dd:_) ->+ Token Time <$> intersect td (inDurationInterval dd)+ _ -> Nothing+ }+ ruleInNumeral :: Rule ruleInNumeral = Rule { name = "in <number> (implicit minutes)"@@ -1560,7 +2066,7 @@ , ruleIntersectOf , ruleAbsorbOnTime , ruleAbsorbOnADOW- , ruleAbsorbInMonth+ , ruleAbsorbInMonthYear , ruleAbsorbCommaTOD , ruleNextDOW , ruleNextTime@@ -1569,14 +2075,13 @@ , ruleTimeBeforeLastAfterNext , ruleLastDOWOfTime , ruleLastCycleOfTime+ , ruleLastNight , ruleLastWeekendOfMonth , ruleNthTimeOfTime , ruleTheNthTimeOfTime , ruleNthTimeAfterTime , ruleTheNthTimeAfterTime- , ruleYear- , ruleYearPastLatent- , ruleYearFutureLatent+ , ruleYearLatent , ruleTheDOMNumeral , ruleTheDOMOrdinal , ruleDOMLatent@@ -1637,6 +2142,7 @@ , ruleIntervalAfterFromSinceTOD , ruleCycleTheAfterBeforeTime , ruleCycleThisLastNext+ , ruleDOMOfTimeMonth , ruleCycleAfterBeforeTime , ruleCycleOrdinalOfTime , ruleCycleTheOrdinalOfTime@@ -1649,15 +2155,27 @@ , ruleDurationInWithinAfter , ruleDurationLastNext , ruleDurationHenceAgo+ , ruleDayDurationHenceAgo+ , ruleDayInDuration , ruleDurationAfterBeforeTime , ruleIntervalForDurationFrom , ruleInNumeral , ruleTimezone , rulePartOfMonth+ , ruleEndOrBeginningOfMonth+ , ruleEndOrBeginningOfYear+ , ruleEndOrBeginningOfWeek , ruleNow+ , ruleSeason+ , ruleEndOfMonth+ , ruleBeginningOfMonth+ , ruleEndOfYear+ , ruleBeginningOfYear ] ++ ruleInstants ++ ruleDaysOfWeek ++ ruleMonths ++ ruleSeasons- ++ ruleUSHolidays+ ++ ruleComputedHolidays+ ++ ruleComputedHolidays'+ ++ rulePeriodicHolidays
Duckling/Time/EN/TT/Corpus.hs view
@@ -33,6 +33,7 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "25/4 at 4:00pm"@@ -41,25 +42,57 @@ [ "10/10" , "10/10/2013" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 5, 30, 0, 0, 0) Day "Indian Arrival Day")+ [ "Indian arrival day"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 6, 19, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 6, 19, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2017, 9, 30, 0, 0, 0) Day "Hosay")+ [ "hosay 2017" ] ]
Duckling/Time/EN/TT/Rules.hs view
@@ -20,9 +20,11 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG ruleDDMM :: Rule ruleDDMM = Rule@@ -42,7 +44,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +71,29 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Indian Arrival Day", "indian arrival day", monthDay 5 30 )+ , ( "Labour Day", "labour day", monthDay 6 19 )+ , ( "Spiritual Baptist Liberation Day", "spiritual baptist liberation day", monthDay 3 30 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]++ruleComputedHolidays :: [Rule]+ruleComputedHolidays = mkRuleHolidays+ [ ( "Hosay", "hosay", cycleNthAfter False TG.Day 9 muharram )+ ]+ rules :: [Rule] rules = [ ruleDDMM , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ ruleComputedHolidays+ ++ rulePeriodicHolidays
Duckling/Time/EN/US/Corpus.hs view
@@ -33,29 +33,112 @@ , "10/31/74" , "10-31-74" , "10.31.1974"+ , "10 31 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "4/25 at 4:00pm" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2012, 11, 26, 0, 0, 0) Day "Cyber Monday")+ [ "last cyber monday"+ , "cyber monday 2012"+ ]+ , examples (datetimeHoliday (2017, 11, 27, 0, 0, 0) Day "Cyber Monday")+ [ "cyber monday 2017"+ ]+ , examples (datetimeHoliday (2013, 5, 27, 0, 0, 0) Day "Memorial Day")+ [ "memorial day"+ , "Next Memorial Day"+ , "decoration day"+ ]+ , examples (datetimeHoliday (2012, 5, 28, 0, 0, 0) Day "Memorial Day")+ [ "last memorial day"+ , "memorial day of last year"+ ]+ , examples (datetimeIntervalHoliday ((2013, 5, 24, 18, 0, 0), (2013, 5, 28, 0, 0, 0)) Hour "Memorial Day weekend")+ [ "memorial day week-end"+ ]+ , examples (datetimeHoliday (2013, 7, 4, 0, 0, 0) Day "Independence Day")+ [ "independence day"+ ]+ , examples (datetimeHoliday (2013, 11, 11, 0, 0, 0) Day "Veterans Day")+ [ "veterans day"+ ]+ , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Loyalty Day")+ [ "law day"+ , "Lei Day"+ , "loyalty day"+ ]+ , examples (datetimeHoliday (2013, 2, 18, 0, 0, 0) Day "President's Day")+ [ "George Washington Day"+ , "washington's birthday"+ , "presidents' day"+ , "president day 2013"+ , "Daisy Gatson Bates Day"+ ]+ , examples (datetimeHoliday (2013, 2, 12, 0, 0, 0) Day "Lincoln's Birthday")+ [ "Lincolns birthday"+ , "Abraham Lincoln's birthday"+ , "Lincoln birthday"+ , "Lincolns' birthday"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2019, 9, 8, 0, 0, 0) Day "National Grandparents Day")+ [ "national grandparents day 2019"+ ]+ , examples (datetimeHoliday (2018, 5, 11, 0, 0, 0) Day "Military Spouse Day")+ [ "Military Spouse day 2018"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 9, 2, 0, 0, 0) Day "Labor Day")+ [ "labor day"+ ]+ , examples (datetimeHoliday (2012, 9, 3, 0, 0, 0) Day "Labor Day")+ [ "labor day of last year"+ , "Labor Day 2012"+ ]+ , examples (datetimeIntervalHoliday ((2013, 8, 30, 18, 0, 0), (2013, 9, 3, 0, 0, 0)) Hour "Labor Day weekend")+ [ "labor day weekend"+ ]+ , examples (datetimeHoliday (2013, 2, 2, 0, 0, 0) Day "Groundhog Day")+ [ "Groundhog day"+ , "groundhogs day" ] ]
Duckling/Time/EN/US/Rules.hs view
@@ -12,10 +12,7 @@ module Duckling.Time.EN.US.Rules ( rules- , ruleMMDD- , ruleMMDDYYYY- , ruleMMDDYYYYDot- , ruleThanksgiving+ , rulesBackwardCompatible ) where import Data.Maybe@@ -27,6 +24,8 @@ import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.Time.Types as TTime+import qualified Duckling.TimeGrain.Types as TG ruleMMDD :: Rule ruleMMDD = Rule@@ -46,7 +45,7 @@ ruleMMDDYYYY = Rule { name = "mm/dd/yyyy" , pattern =- [ regex "(1[0-2]|0?[1-9])[/-](3[01]|[12]\\d|0?[1-9])[/-](\\d{2,4})"+ [ regex "(1[0-2]|0?[1-9])[-/\\s](3[01]|[12]\\d|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do@@ -73,20 +72,181 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+ruleBackwardCompatibleHolidays :: [Rule]+ruleBackwardCompatibleHolidays = mkRuleHolidays+ [ ("Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11)+ , ("Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6)+ ] -rules :: [Rule]-rules =+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "African Liberation Day", "african liberation day", monthDay 5 25 )+ , ( "Air Force Birthday", "air force birthday", monthDay 9 18 )+ , ( "Alaska Day", "alaska day", monthDay 10 18 )+ , ( "American Eagle Day", "american eagle day", monthDay 6 20 )+ , ( "Army Birthday", "army birthday", monthDay 6 14 )+ , ( "Bennington Battle Day", "bennington battle day", monthDay 8 16 )+ , ( "Bunker Hill Day", "bunker hill day", monthDay 6 17 )+ , ( "California Admission Day", "california admission day", monthDay 9 9 )+ , ( "Cinco de Mayo", "cinco de mayo", monthDay 5 5 )+ , ( "Citizenship Day", "citizenship day|i am an american day", monthDay 9 17 )+ , ( "Coast Guard Birthday", "coast guard (birth)?day", monthDay 8 4 )+ , ( "Colorado Day", "colorado day", monthDay 8 1 )+ , ( "Constitution Day and Citizenship Day", "constitution day and citizenship day", monthDay 9 17 )+ , ( "César Chávez Day", "c[ée]sar ch[áa]vez day", monthDay 3 31 )+ , ( "D-Day", "d\\-day", monthDay 6 6 )+ , ( "Day After Christmas Day", "day after christmas day", monthDay 12 26 )+ , ( "Elizabeth Peratrovich Day", "elizabeth peratrovich day", monthDay 2 16 )+ , ( "Emancipation Day", "emancipation day", monthDay 4 16 )+ , ( "Evacuation Day", "evacuation day", monthDay 3 17 )+ , ( "Father Damien Day", "father damien day", monthDay 4 15 )+ , ( "Feast of Our Lady of Guadalupe", "feast of our lady of guadalupe", monthDay 12 12 )+ , ( "Flag Day", "flag day", monthDay 6 14 )+ , ( "Groundhog Day", "groundhogs? day", monthDay 2 2 )+ , ( "Harvey Milk Day", "harvey milk day", monthDay 5 22 )+ , ( "Inauguration Day", "inauguration day", monthDay 1 20 )+ , ( "Independence Day", "independence day", monthDay 7 4 )+ , ( "Juneteenth", "juneteenth", monthDay 6 19 )+ , ( "Kamehameha Day", "kamehameha day", monthDay 6 11 )+ , ( "Kansas Day", "kansas day", monthDay 1 29 )+ , ( "Kent State Shootings Remembrance", "kent state shootings remembrance", monthDay 5 4 )+ , ( "Loyalty Day", "l(aw|ei|oyalty) day", monthDay 5 1 )+ , ( "Leif Erikson Day", "leif erikson day", monthDay 10 9 )+ , ( "Lincoln's Birthday", "(abraham )?lincoln'?s?'? birthday", monthDay 2 12 )+ , ( "Linus Pauling Day", "linus pauling day", monthDay 2 28 )+ , ( "Lyndon Baines Johnson Day", "lyndon baines johnson day", monthDay 8 27 )+ , ( "Marine Corps Birthday", "marine corps (birth)?day", monthDay 11 10 )+ , ( "Maryland Day", "maryland day", monthDay 3 25 )+ , ( "National Aviation Day", "national aviation day", monthDay 8 19 )+ , ( "National Freedom Day", "national freedom day", monthDay 2 1 )+ , ( "National Guard Birthday", "national guard (birth)?day", monthDay 12 13 )+ , ( "National Korean War Veterans Armistice Day", "national korean war veterans armistice day", monthDay 7 27 )+ , ( "National Maritime Day", "national maritime day", monthDay 5 22 )+ , ( "National Missing Children's Day", "national missing children'?s day", monthDay 5 25 )+ , ( "National Nurses Day", "national nurses day", monthDay 5 6 )+ , ( "National Tartan Day", "national tartan day", monthDay 4 6 )+ , ( "Navy Birthday", "(u\\.?s\\.? )?navy (birth)?day", monthDay 10 13 )+ , ( "Oklahoma Day", "oklahoma day", monthDay 4 22 )+ , ( "Pan American Aviation Day", "pan american aviation day", monthDay 12 17 )+ , ( "Pascua Florida Day", "pascua florida day", monthDay 4 2 )+ , ( "Patriot Day", "patriot day", monthDay 9 11 )+ , ( "Peace Officers Memorial Day", "peace officers memorial day", monthDay 5 15 )+ , ( "Pearl Harbor Remembrance Day", "pearl harbor remembrance day", monthDay 12 7 )+ , ( "Pioneer Day", "pioneer day", monthDay 7 24 )+ , ( "Prince Jonah Kuhio Kalanianaole Day", "prince jonah kuhio kalanianaole day", monthDay 3 26 )+ , ( "Purple Heart Day", "purple heart day", monthDay 8 7 )+ , ( "Read Across America Day", "read across america day", monthDay 3 2 )+ , ( "Rhode Island Independence Day", "rhode island independence day", monthDay 5 4 )+ , ( "Rosa Parks Day", "rosa parks day", monthDay 2 4 )+ , ( "San Jacinto Day", "san jacinto day", monthDay 4 21 )+ , ( "Self-Injury Awareness Day", "self\\-injury awareness day", monthDay 3 1 )+ , ( "Senior Citizens Day", "senior citizens day", monthDay 8 21 )+ , ( "St Nicholas' Day", "st\\.? nicholas'? day", monthDay 12 6 )+ , ( "St. David's Day", "st\\.? david'?s day", monthDay 3 1 )+ , ( "Statehood Day", "statehood day", monthDay 6 1 )+ , ( "Statehood Day in Arizona", "statehood day in arizona", monthDay 2 14 )+ , ( "Stephen Foster Memorial Day", "stephen foster memorial day", monthDay 1 13 )+ , ( "Susan B Anthony's Birthday", "susan b\\.? anthony'?s birthday", monthDay 2 15 )+ , ( "Texas Independence Day", "texas independence day", monthDay 3 2 )+ , ( "Thomas Jefferson's Birthday", "thomas jefferson'?s birthday", monthDay 4 13 )+ , ( "Truman Day", "truman day", monthDay 5 8 )+ , ( "Veterans Day", "veterans day", monthDay 11 11 )+ , ( "West Virginia Day", "west virginia day", monthDay 6 20 )+ , ( "White Cane Safety Day", "white cane safety day", monthDay 10 15 )+ , ( "Women's Equality Day", "women'?s equality day", monthDay 8 26 )+ , ( "Wright Brothers Day", "wright brothers day", monthDay 12 17 )++ -- Fixed day/week/month, year over year+ , ( "Arbor Day", "arbor day", predLastOf (dayOfWeek 5) (month 4) )+ , ( "Armed Forces Day", "armed forces day", nthDOWOfMonth 3 6 5 )+ , ( "Casimir Pulaski Day", "casimir pulaski day", nthDOWOfMonth 1 1 3 )+ , ( "Child Health Day", "child health day", nthDOWOfMonth 1 1 10 )+ , ( "Columbus Day", "columbus day", nthDOWOfMonth 2 1 10 )+ -- Saturday after Labor Day+ , ( "Carl Garner Federal Lands Cleanup Day"+ , "carl garner federal lands cleanup day"+ , cycleNthAfter False TG.Day 5 $ nthDOWOfMonth 1 1 9 )+ -- Monday after Thanksgiving+ , ( "Cyber Monday", "cyber monday"+ , cycleNthAfter False TG.Day 4 $ nthDOWOfMonth 4 4 11 )+ , ( "Election Day", "election day"+ , cycleNthAfter False TG.Day 1 $ nthDOWOfMonth 1 1 11 )+ , ( "Employee Appreciation Day", "employee appreciation day"+ , nthDOWOfMonth 1 5 3 )+ , ( "Friendship Day", "friendship day", nthDOWOfMonth 1 7 8 )+ , ( "Gold Star Mother's Day", "gold star mother's day"+ , predLastOf (dayOfWeek 7) (month 9) )+ , ( "Indigenous People's Day", "indigenous people's day"+ , nthDOWOfMonth 2 1 10 )+ , ( "Labor Day", "labor day", nthDOWOfMonth 1 1 9 )+ -- Long weekend before the first Monday of September+ , ( "Labor Day weekend", "labor day week(\\s|-)?ends?"+ , longWEBefore $ nthDOWOfMonth 1 1 9+ )+ , ( "Lee Jackson Day", "lee jackson day", nthDOWOfMonth 2 5 1 )+ -- Last Monday of May+ , ( "Memorial Day", "(decoration|memorial) day"+ , predLastOf (dayOfWeek 1) (month 5) )+ -- Long weekend before the last Monday of May+ , ( "Memorial Day weekend", "(decoration|memorial) day week(\\s|-)?ends?"+ , longWEBefore $ predLastOf (dayOfWeek 1) (month 5) )+ -- 2 days before Mother's Day+ , ( "Military Spouse Day", "military spouse (appreciation )?day"+ , cycleNthAfter False TG.Day (- 2) $ nthDOWOfMonth 2 7 5 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "National CleanUp Day", "national clean\\-?up day", nthDOWOfMonth 3 6 9 )+ , ( "National Day of Prayer", "national day of prayer", nthDOWOfMonth 1 4 5 )+ , ( "National Defense Transportation Day"+ , "national defense transportation day"+ , nthDOWOfMonth 3 5 5 )+ , ( "National Explosive Ordnance Disposal Day"+ , "national (eod|explosive ordnance disosal) day"+ , nthDOWOfMonth 1 6 5 )+ -- First Sunday after Labor Day+ , ( "National Grandparents Day", "national grandparents day"+ , cycleNthAfter False TG.Day 6 $ nthDOWOfMonth 1 1 9 )+ , ( "National POW/MIA Recognition Day", "national pow/mia recognition day"+ , nthDOWOfMonth 3 5 9 )+ , ( "National Wear Red Day", "national wear red day", nthDOWOfMonth 1 5 2 )+ -- Day after Thanksgiving+ , ( "Native American Heritage Day"+ , "(american indian|native american) heritage day"+ , cycleNthAfter False TG.Day 1 $ nthDOWOfMonth 4 4 11 )+ , ( "Native Americans' Day", "native americans' day", nthDOWOfMonth 4 1 9 )+ , ( "Nevada Day", "nevada day", predLastOf (dayOfWeek 5) (month 10) )+ , ( "Parents' Day", "parents' day", nthDOWOfMonth 4 7 7 )+ , ( "Patriots' Day", "patriot'?s'? day", nthDOWOfMonth 3 1 4 )+ , ( "Robert E. Lee Day", "robert e\\. lee day|lee's (birth)?day"+ , nthDOWOfMonth 3 1 1 )+ , ( "Seward's Day", "seward's day", predLastOf (dayOfWeek 1) (month 3) )+ , ( "Statehood Day", "(admission|statehood) day", nthDOWOfMonth 3 5 8 )+ , ( "Sweetest Day", "sweetest day", nthDOWOfMonth 3 6 10 )+ , ( "Take our Daughters and Sons to Work Day"+ , "take our daughters and sons to work day", nthDOWOfMonth 4 4 4 )+ , ( "Town Meeting Day", "town meeting day", nthDOWOfMonth 1 2 3 )+ , ( "Victory Day", "victory day", nthDOWOfMonth 2 1 8 )+ , ( "President's Day"+ , "(george )?washington'?s? (birth)?day|president'?s?'? day|daisy gatson bates'? day"+ , nthDOWOfMonth 3 1 2+ )+ ]++rulePeriodicHolidays' :: [Rule]+rulePeriodicHolidays' = mkRuleHolidays'+ -- Fixed dates, year over year+ [ ( "Kwanzaa", "kwanzaa", interval TTime.Open (monthDay 12 26) (monthDay 1 1) )+ ]++rulesBackwardCompatible :: [Rule]+rulesBackwardCompatible = [ ruleMMDD , ruleMMDDYYYY , ruleMMDDYYYYDot- , ruleThanksgiving ]+ ++ ruleBackwardCompatibleHolidays++rules :: [Rule]+rules = rulesBackwardCompatible+ ++ rulePeriodicHolidays+ ++ rulePeriodicHolidays'
Duckling/Time/EN/ZA/Corpus.hs view
@@ -33,29 +33,68 @@ , "31/10/74" , "31-10-74" , "31.10.1974"+ , "31 10 1974" ] , examples (datetime (2013, 4, 25, 16, 0, 0) Minute) [ "4/25 at 4:00pm" ]- , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 28, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving day" , "thanksgiving" , "thanksgiving 2013" , "this thanksgiving" , "next thanksgiving day" ]- , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 11, 27, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving of next year" , "thanksgiving 2014" ]- , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+ , examples (datetimeHoliday (2012, 11, 22, 0, 0, 0) Day "Thanksgiving Day") [ "last thanksgiving" , "thanksgiving day 2012" ]- , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+ , examples (datetimeHoliday (2016, 11, 24, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2016" ]- , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 11, 23, 0, 0, 0) Day "Thanksgiving Day") [ "thanksgiving 2017"+ ]+ , examples (datetimeHoliday (2013, 12, 16, 0, 0, 0) Day "Day of Reconciliation")+ [ "day of the vow"+ , "day of reconciliation"+ , "day of the covenant"+ ]+ , examples (datetimeIntervalHoliday ((2013, 9, 1, 0, 0, 0), (2013, 9, 8, 0, 0, 0)) Day "National Arbor Week")+ [ "national arbor week"+ ]+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "Father's Day"+ ]+ , examples (datetimeHoliday (2012, 6, 17, 0, 0, 0) Day "Father's Day")+ [ "last fathers day"+ ]+ , examples (datetimeHoliday (1996, 6, 16, 0, 0, 0) Day "Father's Day")+ [ "fathers day 1996"+ ]+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Mother's Day")+ [ "Mother's Day"+ , "next mothers day"+ ]+ , examples (datetimeHoliday (2012, 5, 13, 0, 0, 0) Day "Mother's Day")+ [ "last mothers day"+ ]+ , examples (datetimeHoliday (2014, 5, 11, 0, 0, 0) Day "Mother's Day")+ [ "mothers day 2014"+ ]+ , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day"+ ]+ , examples (datetimeHoliday (2012, 5, 1, 0, 0, 0) Day "Labour Day")+ [ "labour day of last year"+ , "Labour Day 2012"+ ]+ , examples (datetimeHoliday (2013, 10, 10, 0, 0, 0) Day "Heroes' Day")+ [ "heroes' day"+ , "kruger day" ] ]
Duckling/Time/EN/ZA/Rules.hs view
@@ -23,6 +23,7 @@ import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.Time.Types as TTime ruleMMDD :: Rule ruleMMDD = Rule@@ -42,7 +43,7 @@ ruleDDMMYYYY = Rule { name = "dd/mm/yyyy" , pattern =- [ regex "(3[01]|[12]\\d|0?[1-9])[/-](1[0-2]|0?[1-9])[-/](\\d{2,4})"+ [ regex "(3[01]|[12]\\d|0?[1-9])[-/\\s](1[0-2]|0?[1-9])[-/\\s](\\d{2,4})" ] , prod = \tokens -> case tokens of (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do@@ -69,20 +70,35 @@ _ -> Nothing } --- Fourth Thursday of November-ruleThanksgiving :: Rule-ruleThanksgiving = Rule- { name = "Thanksgiving Day"- , pattern =- [ regex "thanks?giving( day)?"- ]- , prod = \_ -> tt . mkOkForThisNext $ nthDOWOfMonth 4 4 11- }+rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+ -- Fixed dates, year over year+ [ ( "Day of Goodwill", "day of goodwill", monthDay 12 26 )+ , ( "Day of Reconciliation", "day of( the)? (covenant|reconciliation|vow)", monthDay 12 16 )+ , ( "Heritage Day", "heritage day", monthDay 9 24 )+ , ( "Heroes' Day", "(heroes'|kruger) day", monthDay 10 10 )+ , ( "Labour Day", "labour day", monthDay 5 1 )+ , ( "National Women's Day", "national women'?s day", monthDay 8 9 )+ , ( "Workers' Day", "workers'? day", monthDay 5 1 ) + -- Fixed day/week/month, year over year+ , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )+ , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )+ , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )+ ]++rulePeriodicHolidays' :: [Rule]+rulePeriodicHolidays' = mkRuleHolidays'+ -- Fixed dates, year over year+ [ ( "National Arbor Week", "national arbor week"+ , interval TTime.Open (monthDay 9 1) (monthDay 9 7) )+ ]+ rules :: [Rule] rules = [ ruleMMDD , ruleDDMMYYYY , ruleDDMMYYYYDot- , ruleThanksgiving ]+ ++ rulePeriodicHolidays+ ++ rulePeriodicHolidays'
Duckling/Time/ES/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/ES/Rules.hs view
@@ -276,18 +276,6 @@ _ -> Nothing } -ruleSeason4 :: Rule-ruleSeason4 = Rule- { name = "season"- , pattern =- [ regex "primavera"- ]- , prod = \_ ->- let from = monthDay 3 20- to = monthDay 6 21- in Token Time <$> interval TTime.Open from to- }- ruleYearLatent2 :: Rule ruleYearLatent2 = Rule { name = "year (latent)"@@ -689,29 +677,13 @@ _ -> Nothing } -ruleSeason3 :: Rule-ruleSeason3 = Rule- { name = "season"- , pattern =- [ regex "invierno"- ]- , prod = \_ ->- let from = monthDay 12 21- to = monthDay 3 20- in Token Time <$> interval TTime.Open from to- }--ruleSeason :: Rule-ruleSeason = Rule- { name = "season"- , pattern =- [ regex "verano"- ]- , prod = \_ ->- let from = monthDay 6 21- to = monthDay 9 23- in Token Time <$> interval TTime.Open from to- }+ruleSeasons :: [Rule]+ruleSeasons = mkRuleSeasons+ [ ( "verano" , "verano" , monthDay 6 21, monthDay 9 23 )+ , ( "otoño" , "oto(ñ|n)o", monthDay 9 23, monthDay 12 21 )+ , ( "invierno" , "invierno" , monthDay 12 21, monthDay 3 20 )+ , ( "primavera", "primavera", monthDay 3 20, monthDay 6 21 )+ ] ruleRightNow :: Rule ruleRightNow = Rule@@ -1032,18 +1004,6 @@ , prod = \_ -> tt . cycleNth TG.Day $ - 1 } -ruleSeason2 :: Rule-ruleSeason2 = Rule- { name = "season"- , pattern =- [ regex "oto(ñ|n)o"- ]- , prod = \_ ->- let from = monthDay 9 23- to = monthDay 12 21- in Token Time <$> interval TTime.Open from to- }- ruleDayofweekDayofmonth :: Rule ruleDayofweekDayofmonth = Rule { name = "<day-of-week> <day-of-month>"@@ -1389,10 +1349,6 @@ , rulePasadosNCycle , ruleProximasNCycle , ruleRightNow- , ruleSeason- , ruleSeason2- , ruleSeason3- , ruleSeason4 , ruleTheDayAfterTomorrow , ruleTheDayBeforeYesterday , ruleThisDayofweek@@ -1426,3 +1382,4 @@ ] ++ ruleDaysOfWeek ++ ruleMonths+ ++ ruleSeasons
Duckling/Time/FR/Corpus.hs view
@@ -24,10 +24,10 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale FR Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale FR Nothing}, testOptions, examples) where examples = [ "Ana a un court de tennis"
Duckling/Time/GA/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/HE/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/HR/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/HU/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale HU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/Helpers.hs view
@@ -8,7 +8,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE NoRebindableSyntax #-}-+{-# LANGUAGE TupleSections #-} module Duckling.Time.Helpers ( -- Patterns@@ -22,17 +22,20 @@ , hourMinute, hourMinuteSecond, inDuration, intersect, intersectDOM, interval , inTimezone, longWEBefore, minute, minutesAfter, minutesBefore, mkLatent , month, monthDay, notLatent, now, nthDOWOfMonth, partOfDay, predLastOf- , predNth, predNthAfter, second, timeOfDayAMPM, weekend, withDirection, year- , yearMonthDay, tt+ , predNth, predNthAfter, predNthClosest, season, second, timeOfDayAMPM+ , weekday, weekend, withDirection, year, yearMonthDay, tt, durationIntervalAgo+ , inDurationInterval -- Other- , getIntValue+ , getIntValue, timeComputed -- Rule constructors- , mkRuleInstants, mkRuleDaysOfWeek, mkRuleMonths, mkRuleSeasons- , mkRuleHolidays+ , mkRuleInstants, mkRuleDaysOfWeek, mkRuleMonths, mkRuleMonthsWithLatent+ , mkRuleSeasons, mkRuleHolidays, mkRuleHolidays' ) where import Data.Maybe+import Data.Ord (comparing) import Data.Text (Text)+import Data.Tuple.Extra (both) import Prelude import qualified Data.Time as Time import qualified Data.Time.Calendar.WeekDate as Time@@ -74,9 +77,20 @@ timeNegPeriod (DurationData v g) = DurationData {TDuration.grain = g, TDuration.value = negate v} +timeShiftPeriod :: Int -> DurationData -> DurationData+timeShiftPeriod n dd@DurationData{TDuration.value = v} =+ dd{TDuration.value = v + n}+ -- ----------------------------------------------------------------- -- Time predicates +timeComputed :: [TTime.TimeObject] -> TTime.Predicate+timeComputed xs = mkSeriesPredicate series+ where+ series t _ = (reverse start, end)+ where+ (start, end) = span (flip TTime.timeBefore t) xs+ timeCycle :: TG.Grain -> TTime.Predicate timeCycle grain = mkSeriesPredicate series where@@ -176,6 +190,27 @@ [] -> Nothing (nth:_) -> Just nth +-- | Take the nth closest value to `basePred` among those yielded by+-- `cyclicPred`.+-- n = 0 is the closest value, n = 1 is the second closest value, etc.+-- n < 0 is treated as n = 0.+takeNthClosest :: Int -> TTime.Predicate -> TTime.Predicate -> TTime.Predicate+takeNthClosest n cyclicPred basePred =+ mkSeriesPredicate $! TTime.timeSeqMap False f basePred+ where+ f t ctx = nth (n `max` 0) past future Nothing+ where+ (past, future) = runPredicate cyclicPred t ctx+ nth n pa fu res+ | n < 0 = res+ | otherwise = case comparing (against t) x y of+ GT -> nth (n-1) (tailSafe pa) fu x+ _ -> nth (n-1) pa (tailSafe fu) y+ where (x,y) = both listToMaybe (pa,fu)+ against t = fmap (negate . TTime.diffStartTime t)+ tailSafe (_:xs) = xs+ tailSafe [] = []+ -- | Takes the last occurrence of `cyclicPred` within `basePred`. takeLastOf :: TTime.Predicate -> TTime.Predicate -> TTime.Predicate takeLastOf cyclicPred basePred =@@ -316,21 +351,26 @@ res -> Just res intersect' :: (TimeData, TimeData) -> TimeData-intersect' (TimeData pred1 _ g1 _ _ d1 _, TimeData pred2 _ g2 _ _ d2 _)+intersect' (TimeData pred1 _ g1 _ _ d1 _ h1, TimeData pred2 _ g2 _ _ d2 _ h2) | g1 < g2 = TTime.timedata' { TTime.timePred = timeCompose pred1 pred2 , TTime.timeGrain = g1 , TTime.direction = dir+ , TTime.holiday = hol } | otherwise = TTime.timedata' { TTime.timePred = timeCompose pred2 pred1 , TTime.timeGrain = g2 , TTime.direction = dir+ , TTime.holiday = hol } where dir = case catMaybes [d1, d2] of [] -> Nothing (x:_) -> Just x+ hol = case catMaybes [h1, h2] of+ [] -> Nothing+ (h:_) -> Just h now :: TimeData now = td {TTime.timeGrain = TG.NoGrain}@@ -381,6 +421,20 @@ hourMinuteSecond is12H h m s = timeOfDay (Just h) is12H $ intersect' (intersect' (hour is12H h, minute m), second s) +season :: TimeData+season = TTime.timedata'+ { TTime.timePred = TTime.seasonPredicate+ , TTime.timeGrain = TG.Day+ }++-- | Note that this function is not the counterpart of `weekend`.+-- `weekend` returns an interval while `weekday` returns a single day.+weekday :: TimeData+weekday = TTime.timedata'+ { TTime.timePred = TTime.weekdayPredicate+ , TTime.timeGrain = TG.Day+ }+ cycleN :: Bool -> TG.Grain -> Int -> TimeData cycleN notImmediate grain n = TTime.timedata' { TTime.timePred = takeN n notImmediate $ timeCycle grain@@ -414,9 +468,12 @@ -- Generalized version of cycleNth with custom predicate predNth :: Int -> Bool -> TimeData -> TimeData-predNth n notImmediate TimeData {TTime.timePred = p, TTime.timeGrain = g} =+predNth n notImmediate TimeData+ {TTime.timePred = p, TTime.timeGrain = g, TTime.holiday = h} = TTime.timedata'- {TTime.timePred = takeNth n notImmediate p, TTime.timeGrain = g}+ {TTime.timePred = takeNth n notImmediate p+ , TTime.timeGrain = g+ , TTime.holiday = h} -- Generalized version of `cycleNthAfter` with custom predicate predNthAfter :: Int -> TimeData -> TimeData -> TimeData@@ -426,8 +483,19 @@ , TTime.timeGrain = g } +-- This function can be used to express predicates invoving "closest",+-- such as "the second closest Monday to Oct 5th"+predNthClosest :: Int -> TimeData -> TimeData -> TimeData+predNthClosest n TimeData+ {TTime.timePred = p, TTime.timeGrain = g, TTime.holiday = h} base =+ TTime.timedata'+ { TTime.timePred = takeNthClosest n p $ TTime.timePred base+ , TTime.timeGrain = g+ , TTime.holiday = h+ }+ interval' :: TTime.TimeIntervalType -> (TimeData, TimeData) -> TimeData-interval' intervalType (TimeData p1 _ g1 _ _ _ _, TimeData p2 _ g2 _ _ _ _) =+interval' intervalType (TimeData p1 _ g1 _ _ _ _ _, TimeData p2 _ g2 _ _ _ _ _) = TTime.timedata' { TTime.timePred = mkTimeIntervalsPredicate intervalType' p1 p2 , TTime.timeGrain = min g1 g2@@ -450,6 +518,9 @@ durationAgo :: DurationData -> TimeData durationAgo dd = inDuration $ timeNegPeriod dd +durationIntervalAgo :: DurationData -> TimeData+durationIntervalAgo dd = inDurationInterval $ timeNegPeriod dd+ durationAfter :: DurationData -> TimeData -> TimeData durationAfter dd TimeData {TTime.timePred = pred1, TTime.timeGrain = g} = TTime.timedata'@@ -470,11 +541,18 @@ where t = takeNth 0 False $ timeCycle TG.Second +inDurationInterval :: DurationData -> TimeData+inDurationInterval dd = interval' TTime.Open+ (inDuration dd, inDuration $ timeShiftPeriod 1 dd)+ inTimezone :: Text -> TimeData -> Maybe TimeData inTimezone input td@TimeData {TTime.timePred = p} = do tz <- parseTimezone input Just $ td {TTime.timePred = shiftTimezone (Series.TimeZoneSeries tz []) p} +withHoliday :: Text -> TimeData -> TimeData+withHoliday n td = td {TTime.holiday = Just n}+ mkLatent :: TimeData -> TimeData mkLatent td = td {TTime.latent = True} @@ -568,10 +646,14 @@ mkSingleRegexRule name ptn . tt . mkOkForThisNext $ dayOfWeek i mkRuleMonths :: [(Text, String)] -> [Rule]-mkRuleMonths months = zipWith go months [1..12]+mkRuleMonths = mkRuleMonthsWithLatent . map (uncurry (,, False))++mkRuleMonthsWithLatent :: [(Text, String, Bool)] -> [Rule]+mkRuleMonthsWithLatent months = zipWith go months [1..12] where- go (name, ptn) i =- mkSingleRegexRule name ptn . tt . mkOkForThisNext $ month i+ go (name, ptn, latent) i =+ mkSingleRegexRule name ptn . tt . (if latent then mkLatent else id)+ . mkOkForThisNext $ month i mkRuleSeasons :: [(Text, String, TimeData, TimeData)] -> [Rule] mkRuleSeasons = map go@@ -582,4 +664,12 @@ mkRuleHolidays :: [(Text, String, TimeData)] -> [Rule] mkRuleHolidays = map go where- go (name, ptn, td) = mkSingleRegexRule name ptn . tt $ mkOkForThisNext td+ go (name, ptn, td) = mkSingleRegexRule name ptn . tt+ $ withHoliday name $ mkOkForThisNext td++mkRuleHolidays' :: [(Text, String, Maybe TimeData)] -> [Rule]+mkRuleHolidays' = map go+ where+ go (name, ptn, td) = mkSingleRegexRule name ptn $ do+ td <- td+ tt $ withHoliday name $ mkOkForThisNext td
Duckling/Time/IT/Corpus.hs view
@@ -24,10 +24,10 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale IT Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale IT Nothing}, testOptions, examples) where examples = [ "ma"
Duckling/Time/KO/Corpus.hs view
@@ -23,7 +23,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/NB/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples) corpus :: Corpus-corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/NL/Corpus.hs view
@@ -27,10 +27,10 @@ context = testContext {locale = makeLocale NL Nothing} corpus :: Corpus-corpus = (context, allExamples)+corpus = (context, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (context, examples)+negativeCorpus = (context, testOptions, examples) where examples = [ "een hotel"@@ -420,39 +420,37 @@ , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day) [ "deze winter" ]- , examples (datetime (2013, 12, 25, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 25, 0, 0, 0) Day "Kerstmis") [ "kerst" , "kerstmis" ]- , examples (datetime (2013, 12, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 31, 0, 0, 0) Day "Oudjaar") [ "oudjaar" , "oudejaarsavond" ]- , examples (datetime (2014, 1, 1, 0, 0, 0) Day)+ , examples (datetimeHoliday (2014, 1, 1, 0, 0, 0) Day "Nieuwjaarsdag") [ "nieuwjaarsdag" , "nieuwjaar" ]- , examples (datetime (2013, 2, 14, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 2, 14, 0, 0, 0) Day "Valentijnsdag") [ "Valentijnsdag" ]- , examples (datetime (2013, 5, 12, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 5, 12, 0, 0, 0) Day "Moederdag") [ "moederdag"- , "tweede zondag in mei" ]- , examples (datetime (2013, 6, 16, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 6, 16, 0, 0, 0) Day "Vaderdag") [ "vaderdag"- , "derde zondag in juni" ]- , examples (datetime (2017, 04, 27, 0, 0, 0) Day)+ , examples (datetimeHoliday (2017, 04, 27, 0, 0, 0) Day "Koningsdag") [ "Koningsdag 2017" ]- , examples (datetime (2013, 10, 31, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 10, 31, 0, 0, 0) Day "Halloween") [ "Halloween" ]- , examples (datetime (2013, 11, 1, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 11, 1, 0, 0, 0) Day "Allerheiligen") [ "Allerheiligen" ]- , examples (datetime (2013, 12, 5, 0, 0, 0) Day)+ , examples (datetimeHoliday (2013, 12, 5, 0, 0, 0) Day "Sinterklaas") [ "Sinterklaas" , "Pakjesavond" , "Sinterklaasavond"
Duckling/Time/NL/Rules.hs view
@@ -81,29 +81,29 @@ ruleHolidays :: [Rule] ruleHolidays = mkRuleHolidays- [ ( "new year's day" , "nieuwjaars?(dag)?"+ [ ( "Nieuwjaarsdag" , "nieuwjaars?(dag)?" , monthDay 1 1 )- , ( "valentine's day" , "valentijns?(dag)?"+ , ( "Valentijnsdag" , "valentijns?(dag)?" , monthDay 2 14 )- , ( "halloween day" , "hall?oween?"+ , ( "Halloween" , "hall?oween?" , monthDay 10 31 )- , ( "Dutch King day" , "konings?dag"+ , ( "Koningsdag" , "konings?dag" , monthDay 4 27 ) , ( "Allerheiligen" , "allerheiligen?|aller heiligen?" , monthDay 11 1 ) , ( "Sinterklaas" , "sinterklaas(avond)?|pakjesavond" , monthDay 12 5 )- , ( "christmas eve" , "kerstavond"+ , ( "Kerstavond" , "kerstavond" , monthDay 12 24 )- , ( "boxing day christmas", "tweede kerstdag"+ , ( "Tweede Kerstdag", "tweede kerstdag" , monthDay 12 26 )- , ( "christmas" , "kerstmis|(eerste )?kerstdag|kerst"+ , ( "Kerstmis" , "kerstmis|(eerste )?kerstdag|kerst" , monthDay 12 25 )- , ( "new year's eve" , "oudjaar|oudejaars?avond"+ , ( "Oudjaar" , "oudjaar|oudejaars?avond" , monthDay 12 31 )- , ( "Mother's Day" , "moederdag"+ , ( "Moederdag" , "moederdag" , nthDOWOfMonth 2 7 5 )- , ( "Father's Day" , "vaderdag"+ , ( "Vaderdag" , "vaderdag" , nthDOWOfMonth 3 7 6 ) ]
Duckling/Time/PL/Corpus.hs view
@@ -24,10 +24,10 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale PL Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale PL Nothing}, testOptions, examples) where examples = [ "nie"@@ -155,6 +155,17 @@ , "8 Sie." , "Ósmy Sie." , "Osmego Sie."+ ]+ , examples (datetime (2013, 11, 20, 0, 0, 0) Day)+ [ "20 listopada"+ , "20 listopadowi"+ , "20 listopadem"+ , "20 listopad"+ ]+ , examples (datetime (2013, 5, 20, 0, 0, 0) Day)+ [ "20 maja"+ , "20 maj"+ , "20 majem" ] , examples (datetime (2014, 10, 0, 0, 0, 0) Month) [ "Październik 2014"
Duckling/Time/PL/Rules.hs view
@@ -54,18 +54,18 @@ ruleMonths :: [Rule] ruleMonths = mkRuleMonths- [ ( "January" , "styczeń|styczen|stycznia|styczniowi|styczniem|styczniu|sty(cz)?\\.?" )- , ( "February" , "luty|lutego|lutemu|lut?\\.?" )- , ( "March" , "marzec|marca|marcowi|marcem|marcu|marz?\\.?" )- , ( "April" , "kwiecień|kwiecien|kwietnia|kwietniowi|kwietniem|kwietniu|kwiet?\\.?" )- , ( "May" , "maj|maja|majowi|majem|maju" )- , ( "June" , "czerwiec|czerwca|czerwcowi|czerwcem|czerwcu|czer?\\.?" )- , ( "July" , "lipiec|lipca|lipcowi|lipcem|lipcu|lip\\.?" )- , ( "August" , "sierpień|sierpien|sierpnia|sierpniowi|sierpniem|sierpniu|sierp\\.?|sier\\.?|sie\\.?" )- , ( "September" , "wrzesień|wrzesien|września|wrzesnia|wrześniowi|wrzesniowi|wrzesień|wrzesien|wrześniem|wrzesniem|wrześniu|wrzesniu|wrz\\.?|wrze\\.?" )+ [ ( "January" , "stycz(eń|en|nia|niowi|niem|niu)|sty(cz)?\\.?" )+ , ( "February" , "lu(ty|tego|temu|t?\\.?)" )+ , ( "March" , "mar(zec|ca|cowi|cem|cu|z?\\.?)" )+ , ( "April" , "kwie(cień|cien|tnia|tniowi|tniem|tniu|t?\\.?)" )+ , ( "May" , "maj(a|owi|em|u)?" )+ , ( "June" , "czerw(iec|ca|cowi|cem|cu)|czer?\\.?" )+ , ( "July" , "lip(iec|ca|cowi|cem|cu)|lip\\.?" )+ , ( "August" , "sierp(ie(n|ń)|ni(a|owi|em|u))|sierp\\.?|sier\\.?|sie\\.?" )+ , ( "September" , "wrze(s|ś)(ie(ń|n)|ni(a|owi|em|u))|wrz\\.?|wrze\\.?" ) , ( "October" , "pa(z|ź)dziernik(a|owi|iem|u)?|paź\\.?|paz\\.?" )- , ( "November" , "listopad|listopada|listopadowi|listopadem|listopadzie|lis\\.?|list\\.?" )- , ( "December" , "grudzień|grudzien|grudnia|grudniowi|grudniem|grudniu|gru\\.?|grud\\.?" )+ , ( "November" , "listopad(a|owi|em|zie)?|lis\\.?|list\\.?" )+ , ( "December" , "grudz(ień|ien)|grudn(ia|iowi|iem|niu)|gru\\.?|grud\\.?" ) ] ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule
Duckling/Time/PT/Corpus.hs view
@@ -24,10 +24,10 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {locale = makeLocale PT Nothing}, examples)+negativeCorpus = (testContext {locale = makeLocale PT Nothing}, testOptions, examples) where examples = [ "no 987"
Duckling/Time/RO/Corpus.hs view
@@ -23,14 +23,14 @@ import Duckling.Testing.Types hiding (examples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "sa" ] corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/SV/Corpus.hs view
@@ -23,7 +23,7 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Time/Types.hs view
@@ -16,15 +16,16 @@ module Duckling.Time.Types where -import Control.Applicative ((<|>)) import Control.Arrow ((***)) import Control.DeepSeq import Control.Monad (join) import Data.Aeson+import Data.Foldable (find) import Data.Hashable import Data.Maybe import Data.Monoid import Data.Text (Text)+import Data.Tuple.Extra (both) import GHC.Generics import Prelude import TextShow (showt)@@ -65,18 +66,19 @@ , form :: Maybe Form , direction :: Maybe IntervalDirection , okForThisNext :: Bool -- allows specific this+Time+ , holiday :: Maybe Text } instance Eq TimeData where- (==) (TimeData _ l1 g1 n1 f1 d1 _) (TimeData _ l2 g2 n2 f2 d2 _) =+ (==) (TimeData _ l1 g1 n1 f1 d1 _ _) (TimeData _ l2 g2 n2 f2 d2 _ _) = l1 == l2 && g1 == g2 && n1 == n2 && f1 == f2 && d1 == d2 instance Hashable TimeData where- hashWithSalt s (TimeData _ latent grain imm form dir _) = hashWithSalt s+ hashWithSalt s (TimeData _ latent grain imm form dir _ _) = hashWithSalt s (0::Int, (latent, grain, imm, form, dir)) instance Ord TimeData where- compare (TimeData _ l1 g1 n1 f1 d1 _) (TimeData _ l2 g2 n2 f2 d2 _) =+ compare (TimeData _ l1 g1 n1 f1 d1 _ _) (TimeData _ l2 g2 n2 f2 d2 _ _) = case compare g1 g2 of EQ -> case compare f1 f2 of EQ -> case compare l1 l2 of@@ -88,12 +90,13 @@ z -> z instance Show TimeData where- show (TimeData _ latent grain _ form dir _) =+ show (TimeData _ latent grain _ form dir _ holiday) = "TimeData{" ++ "latent=" ++ show latent ++ ", grain=" ++ show grain ++ ", form=" ++ show form ++ ", direction=" ++ show dir +++ ", holiday=" ++ show holiday ++ "}" instance NFData TimeData where@@ -101,8 +104,8 @@ instance Resolve TimeData where type ResolvedValue TimeData = TimeValue- resolve _ TimeData {latent = True} = Nothing- resolve context TimeData {timePred, notImmediate, direction} = do+ resolve _ Options {withLatent = False} TimeData {latent = True} = Nothing+ resolve context _ TimeData {timePred, latent, notImmediate, direction, holiday} = do value <- case future of [] -> listToMaybe past ahead:nextAhead:_@@ -110,10 +113,10 @@ ahead:_ -> Just ahead values <- Just . take 3 $ if List.null future then past else future Just $ case direction of- Nothing -> TimeValue (timeValue tzSeries value) $- map (timeValue tzSeries) values- Just d -> TimeValue (openInterval tzSeries d value) $- map (openInterval tzSeries d) values+ Nothing -> (TimeValue (timeValue tzSeries value)+ (map (timeValue tzSeries) values) holiday, latent)+ Just d -> (TimeValue (openInterval tzSeries d value)+ (map (openInterval tzSeries d) values) holiday, latent) where DucklingTime (Series.ZoneSeriesTime utcTime tzSeries) = referenceTime context refTime = TimeObject@@ -138,6 +141,7 @@ , form = Nothing , direction = Nothing , okForThisNext = False+ , holiday = Nothing } data TimeContext = TimeContext@@ -164,7 +168,7 @@ | OpenIntervalValue (InstantValue, IntervalDirection) deriving (Show, Eq) -data TimeValue = TimeValue SingleTimeValue [SingleTimeValue]+data TimeValue = TimeValue SingleTimeValue [SingleTimeValue] (Maybe Text) deriving (Show, Eq) instance ToJSON InstantValue where@@ -192,9 +196,14 @@ ] instance ToJSON TimeValue where- toJSON (TimeValue value values) = case toJSON value of- Object o -> Object $ H.insert "values" (toJSON values) o+ toJSON (TimeValue value values holiday) = case toJSON value of+ Object o ->+ Object $ insertHoliday holiday $ H.insert "values" (toJSON values) o _ -> Object H.empty+ where+ insertHoliday :: Maybe Text -> Object -> Object+ insertHoliday Nothing obj = obj+ insertHoliday (Just h) obj = H.insert "holidayBeta" (toJSON h) obj -- | Return a tuple of (past, future) elements type SeriesPredicate = TimeObject -> TimeContext -> ([TimeObject], [TimeObject])@@ -202,6 +211,12 @@ data AMPM = AM | PM deriving (Eq, Show) +data SeasonName = Spring | Summer | Fall | Winter deriving (Enum,Eq,Ord,Show)++-- | Regular seasons of the Northern Hemisphere.+data Season = Season { startYear :: Integer, seasonName :: SeasonName }+ deriving (Eq,Ord,Show)+ newtype NoShow a = NoShow a instance Show (NoShow a) where@@ -337,9 +352,78 @@ -- SeriesPredicate might contain one, but we'll underapproximate for -- now +-- Computes the difference of the start time of two `TimeObject`s.+diffStartTime :: TimeObject -> TimeObject -> Time.NominalDiffTime+diffStartTime TimeObject{start = x} TimeObject{start = y} =+ abs (Time.diffUTCTime x y)+ isEmptyPredicate :: Predicate -> Bool isEmptyPredicate EmptyPredicate{} = True isEmptyPredicate _ = False++seasonStart :: Season -> Time.Day+seasonStart (Season year Spring) = Time.fromGregorian year 3 20+seasonStart (Season year Summer) = Time.fromGregorian year 6 21+seasonStart (Season year Fall) = Time.fromGregorian year 9 23+seasonStart (Season year Winter) = Time.fromGregorian year 12 21++seasonEnd :: Season -> Time.Day+seasonEnd = Time.addDays (-1) . seasonStart . nextSeason++nextSeason :: Season -> Season+nextSeason (Season year Winter) = Season (year+1) Spring+nextSeason (Season year x) = Season year (succ x)++prevSeason :: Season -> Season+prevSeason (Season year Spring) = Season (year-1) Winter+prevSeason (Season year x) = Season year (pred x)++seasonOf :: Time.Day -> Season+seasonOf day = fromMaybe (Season (year-1) Winter) mbSeason+ where+ (year,_,_) = Time.toGregorian day+ mbSeason = find ((<= day) . seasonStart) $+ Season year <$> [Winter,Fall,Summer,Spring]++seasonPredicate :: Predicate+seasonPredicate = mkSeriesPredicate series+ where+ series t = const (past,future)+ where+ day = Time.utctDay (start t)+ (past,future) = both (map toTimeObj) (toZipper day)+ toTimeObj season = TimeObject { start = s, grain = TG.Day, end = Just e }+ where (s,e) = both toMidnight (seasonStart season, seasonEnd season)+ toZipper d = (before, currentAndAfter)+ where+ current = seasonOf d+ currentAndAfter = iterate nextSeason current+ before = iterate prevSeason (prevSeason current)++-- Predicate for weekdays, i.e., Mon to Fri.+weekdayPredicate :: Predicate+weekdayPredicate = mkSeriesPredicate series+ where+ series t = const (past,future)+ where+ day = Time.utctDay (start t)+ (_,_,dayOfWeek) = Time.toWeekDate day+ past = toTimeObj . toMidnight . fst <$>+ iterate prevWeekday (prevWeekday (day,dayOfWeek))+ future = toTimeObj . toMidnight <$>+ if dayOfWeek <= 5 then day:days else days+ where days = fst <$> iterate nextWeekday (nextWeekday (day,dayOfWeek))+ toTimeObj t = TimeObject { start = t, grain = TG.Day, end = Nothing }+ nextWeekday (d,dow)+ | dow < 5 = (Time.addDays 1 d, dow+1)+ | otherwise = (Time.addDays (toInteger $ 8-dow) d, 1)+ prevWeekday (d,dow)+ | dow == 1 = (Time.addDays (-3) d, 5)+ | dow == 7 = (Time.addDays (-2) d, 5)+ | otherwise = (Time.addDays (-1) d, dow-1)++toMidnight :: Time.Day -> Time.UTCTime+toMidnight = flip Time.UTCTime (Time.timeOfDayToTime Time.midnight) -- Predicate runners
Duckling/Time/VI/Corpus.hs view
@@ -22,7 +22,7 @@ import Duckling.TimeGrain.Types hiding (add) corpus :: Corpus-corpus = (context, allExamples)+corpus = (context, testOptions, allExamples) where context = testContext { locale = makeLocale VI Nothing
Duckling/Time/ZH/Corpus.hs view
@@ -26,7 +26,7 @@ defaultCorpus = corpus corpus :: Corpus-corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat@@ -401,7 +401,6 @@ , examples (datetimeInterval ((2012, 12, 0, 0, 0, 0), (2013, 2, 0, 0, 0, 0)) Month) [ "上两个月" , "上二个月"- , "上二月" , "前两个月" , "前二个月" , "前两月"
Duckling/Time/ZH/Rules.hs view
@@ -796,19 +796,6 @@ _ -> Nothing } -ruleLastTuesdayLastJuly :: Rule-ruleLastTuesdayLastJuly = Rule- { name = "last tuesday, last july"- , pattern =- [ regex "上"- , dimension Time- ]- , prod = \tokens -> case tokens of- (_:Token Time td:_) ->- tt $ predNth (-1) False td- _ -> Nothing- }- rulePartofdayDimTime :: Rule rulePartofdayDimTime = Rule { name = "<part-of-day> <dim time>"@@ -1014,7 +1001,6 @@ , ruleNCycleLast , ruleLastNight , ruleLastTime- , ruleLastTuesdayLastJuly , ruleLastYear , ruleMidnight , ruleMmdd
+ Duckling/TimeGrain/BG/Rules.hs view
@@ -0,0 +1,41 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE OverloadedStrings #-}++module Duckling.TimeGrain.BG.Rules+ ( rules+ ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.Dimensions.Types+import Duckling.TimeGrain.Types+import Duckling.Types++grains :: [(Text, String, Grain)]+grains = [ ("second (grain) ", "сек(унд(а|и))?", Second)+ , ("minute (grain)" , "мин(ут(а|и))?", Minute)+ , ("hour (grain)" , "ч(ас(ове(те)?|а|ът)?)?", Hour)+ , ("day (grain)" , "ден(а|я(т)?)?|дни(те)?", Day)+ , ("week (grain)" , "седмица(та)?|седмици(те)?", Week)+ , ("month (grain)" , "месец(и(те)?|а|ът)?", Month)+ , ("quarter (grain)", "тримесечи(я|е(то|та)?)", Quarter)+ , ("year (grain)" , "г(од(ин(а(та)?|и(те)?))?)?", Year)+ ]++rules :: [Rule]+rules = map go grains+ where+ go (name, regexPattern, grain) = Rule+ { name = name+ , pattern = [regex regexPattern]+ , prod = \_ -> Just $ Token TimeGrain grain+ }
Duckling/TimeGrain/EN/Rules.hs view
@@ -9,15 +9,16 @@ {-# LANGUAGE OverloadedStrings #-} module Duckling.TimeGrain.EN.Rules- ( rules ) where+ ( rules+ ) where +import Data.String import Data.Text (Text) import Prelude-import Data.String import Duckling.Dimensions.Types-import qualified Duckling.TimeGrain.Types as TG import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG grains :: [(Text, String, TG.Grain)] grains = [ ("second (grain) ", "sec(ond)?s?", TG.Second)@@ -26,8 +27,8 @@ , ("day (grain)" , "days?", TG.Day) , ("week (grain)" , "weeks?", TG.Week) , ("month (grain)" , "months?", TG.Month)- , ("quarter (grain)", "(quarter|qtr)s?", TG.Quarter)- , ("year (grain)" , "y(ea)?rs?", TG.Year)+ , ("quarter (grain)", "(quarter|qtr)s?", TG.Quarter)+ , ("year (grain)" , "y(ea)?rs?", TG.Year) ] rules :: [Rule]
Duckling/TimeGrain/Types.hs view
@@ -38,7 +38,7 @@ instance Resolve Grain where type ResolvedValue Grain = Grain- resolve _ _ = Nothing+ resolve _ _ _ = Nothing instance TextShow Grain where showb = fromText . Text.toLower . Text.pack . show
Duckling/Types.hs view
@@ -6,34 +6,57 @@ -- of patent rights can be found in the PATENTS file in the same directory. +{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE NoRebindableSyntax #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} module Duckling.Types where import Control.DeepSeq import Data.Aeson import Data.GADT.Compare+import Data.GADT.Show import Data.Hashable+import Data.HashSet (HashSet) import Data.Maybe-import Data.String+import Data.Some import Data.Text (Text)-import Data.Typeable ((:~:)(Refl), Typeable)+import Data.Typeable ((:~:)(Refl), eqT, Typeable) import GHC.Generics import Prelude+import TextShow (TextShow(..)) import qualified Data.ByteString.Lazy as LB import qualified Data.Text.Encoding as Text import qualified Text.Regex.Base as R import qualified Text.Regex.PCRE as PCRE+import qualified TextShow as TS -import Duckling.Dimensions.Types+import Duckling.AmountOfMoney.Types (AmountOfMoneyData)+import Duckling.Distance.Types (DistanceData)+import Duckling.Duration.Types (DurationData)+import Duckling.Email.Types (EmailData)+import Duckling.Locale+import Duckling.Numeral.Types (NumeralData)+import Duckling.Ordinal.Types (OrdinalData)+import Duckling.PhoneNumber.Types (PhoneNumberData)+import Duckling.Quantity.Types (QuantityData)+import Duckling.Regex.Types (GroupMatch) import Duckling.Resolve+import Duckling.Temperature.Types (TemperatureData)+import Duckling.Time.Types (TimeData)+import Duckling.TimeGrain.Types (Grain)+import Duckling.Url.Types (UrlData)+import Duckling.Volume.Types (VolumeData) -- ----------------------------------------------------------------- -- Token@@ -53,6 +76,115 @@ instance NFData Token where rnf (Token _ v) = rnf v ++-- -----------------------------------------------------------------+-- Dimension++class (Show a, Typeable a) => CustomDimension a where+ type DimensionData a+ dimRules :: a -> [Rule]+ dimLangRules :: Lang -> a -> [Rule]+ dimLocaleRules :: Region -> a -> [Rule]+ dimDependents :: a -> HashSet (Some Dimension)++-- | GADT for differentiating between dimensions+-- Each dimension should have its own constructor and provide the data structure+-- for its parsed data+data Dimension a where+ RegexMatch :: Dimension GroupMatch+ AmountOfMoney :: Dimension AmountOfMoneyData+ Distance :: Dimension DistanceData+ Duration :: Dimension DurationData+ Email :: Dimension EmailData+ Numeral :: Dimension NumeralData+ Ordinal :: Dimension OrdinalData+ PhoneNumber :: Dimension PhoneNumberData+ Quantity :: Dimension QuantityData+ Temperature :: Dimension TemperatureData+ Time :: Dimension TimeData+ TimeGrain :: Dimension Grain+ Url :: Dimension UrlData+ Volume :: Dimension VolumeData+ CustomDimension :: CustomDimension a => a -> Dimension (DimensionData a)++-- Show+instance Show (Dimension a) where+ show RegexMatch = "RegexMatch"+ show Distance = "Distance"+ show Duration = "Duration"+ show Email = "Email"+ show AmountOfMoney = "AmountOfMoney"+ show Numeral = "Numeral"+ show Ordinal = "Ordinal"+ show PhoneNumber = "PhoneNumber"+ show Quantity = "Quantity"+ show Temperature = "Temperature"+ show Time = "Time"+ show TimeGrain = "TimeGrain"+ show Url = "Url"+ show Volume = "Volume"+ show (CustomDimension dim) = show dim+instance GShow Dimension where gshowsPrec = showsPrec++-- TextShow+instance TextShow (Dimension a) where+ showb d = TS.fromString $ show d+instance TextShow (Some Dimension) where+ showb (This d) = showb d++-- Hashable+instance Hashable (Some Dimension) where+ hashWithSalt s (This a) = hashWithSalt s a+instance Hashable (Dimension a) where+ hashWithSalt s RegexMatch = hashWithSalt s (0::Int)+ hashWithSalt s Distance = hashWithSalt s (1::Int)+ hashWithSalt s Duration = hashWithSalt s (2::Int)+ hashWithSalt s Email = hashWithSalt s (3::Int)+ hashWithSalt s AmountOfMoney = hashWithSalt s (4::Int)+ hashWithSalt s Numeral = hashWithSalt s (5::Int)+ hashWithSalt s Ordinal = hashWithSalt s (6::Int)+ hashWithSalt s PhoneNumber = hashWithSalt s (7::Int)+ hashWithSalt s Quantity = hashWithSalt s (8::Int)+ hashWithSalt s Temperature = hashWithSalt s (9::Int)+ hashWithSalt s Time = hashWithSalt s (10::Int)+ hashWithSalt s TimeGrain = hashWithSalt s (11::Int)+ hashWithSalt s Url = hashWithSalt s (12::Int)+ hashWithSalt s Volume = hashWithSalt s (13::Int)+ hashWithSalt s (CustomDimension _) = hashWithSalt s (14::Int)++instance GEq Dimension where+ geq RegexMatch RegexMatch = Just Refl+ geq RegexMatch _ = Nothing+ geq Distance Distance = Just Refl+ geq Distance _ = Nothing+ geq Duration Duration = Just Refl+ geq Duration _ = Nothing+ geq Email Email = Just Refl+ geq Email _ = Nothing+ geq AmountOfMoney AmountOfMoney = Just Refl+ geq AmountOfMoney _ = Nothing+ geq Numeral Numeral = Just Refl+ geq Numeral _ = Nothing+ geq Ordinal Ordinal = Just Refl+ geq Ordinal _ = Nothing+ geq PhoneNumber PhoneNumber = Just Refl+ geq PhoneNumber _ = Nothing+ geq Quantity Quantity = Just Refl+ geq Quantity _ = Nothing+ geq Temperature Temperature = Just Refl+ geq Temperature _ = Nothing+ geq Time Time = Just Refl+ geq Time _ = Nothing+ geq TimeGrain TimeGrain = Just Refl+ geq TimeGrain _ = Nothing+ geq Url Url = Just Refl+ geq Url _ = Nothing+ geq Volume Volume = Just Refl+ geq Volume _ = Nothing+ geq (CustomDimension (_ :: a)) (CustomDimension (_ :: b))+ | Just Refl <- eqT :: Maybe (a :~: b) = Just Refl+ geq (CustomDimension _) _ = Nothing+ isDimension :: Dimension a -> Token -> Bool isDimension dim (Token dim' _) = isJust $ geq dim dim' @@ -67,12 +199,15 @@ { range :: Range , node :: Node , jsonValue :: Value+ , isLatent :: Bool } deriving (Eq, Show) instance Ord ResolvedToken where- compare (Resolved range1 _ json1) (Resolved range2 _ json2) =+ compare (Resolved range1 _ json1 latent1) (Resolved range2 _ json2 latent2) = case compare range1 range2 of- EQ -> compare (toJText json1) (toJText json2)+ EQ -> case compare (toJText json1) (toJText json2) of+ EQ -> compare latent1 latent2+ z -> z z -> z data Candidate = Candidate ResolvedToken Double Bool@@ -127,21 +262,23 @@ show (Rule name _ _) = show name data Entity = Entity- { dim :: Text- , body :: Text- , value :: Value- , start :: Int- , end :: Int- , enode :: Node+ { dim :: Text+ , body :: Text+ , value :: Value+ , start :: Int+ , end :: Int+ , latent :: Bool+ , enode :: Node } deriving (Eq, Generic, Show, NFData) instance ToJSON Entity where toJSON ent = object- [ "dim" .= dim ent- , "body" .= body ent- , "value" .= value ent- , "start" .= start ent- , "end" .= end ent+ [ "dim" .= dim ent+ , "body" .= body ent+ , "value" .= value ent+ , "start" .= start ent+ , "end" .= end ent+ , "latent" .= latent ent ] toJText :: ToJSON x => x -> Text
Duckling/Url/Corpus.hs view
@@ -20,10 +20,10 @@ import Duckling.Url.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext, examples)+negativeCorpus = (testContext, testOptions, examples) where examples = [ "foo"
Duckling/Url/Helpers.hs view
@@ -12,10 +12,8 @@ ( url ) where -import Data.String import Data.Text (Text) import qualified Data.Text as Text-import Prelude import qualified Duckling.Url.Types as TUrl import Duckling.Url.Types (UrlData(..))
Duckling/Url/Types.hs view
@@ -19,7 +19,6 @@ import Data.Aeson import Data.Hashable import Data.Maybe-import Data.Monoid import Data.Text (Text) import GHC.Generics import Prelude@@ -34,7 +33,7 @@ instance Resolve UrlData where type ResolvedValue UrlData = UrlData- resolve _ x = Just x+ resolve _ _ x = Just (x, False) instance ToJSON UrlData where toJSON (UrlData value domain) = object
Duckling/Volume/AR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Volume.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/EN/Corpus.hs view
@@ -18,7 +18,7 @@ import Duckling.Volume.Types corpus :: Corpus-corpus = (testContext, allExamples)+corpus = (testContext, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/ES/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/FR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/GA/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/HR/Corpus.hs view
@@ -19,7 +19,7 @@ import Duckling.Volume.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/IT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/KO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/NL/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/PT/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/RO/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Testing.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/RU/Corpus.hs view
@@ -21,7 +21,7 @@ import Duckling.Volume.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/TR/Corpus.hs view
@@ -20,7 +20,7 @@ import Duckling.Volume.Types corpus :: Corpus-corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, testOptions, allExamples) allExamples :: [Example] allExamples = concat
Duckling/Volume/Types.hs view
@@ -43,9 +43,9 @@ instance Resolve VolumeData where type ResolvedValue VolumeData = VolumeValue- resolve _ VolumeData {unit = Nothing} = Nothing- resolve _ VolumeData {unit = Just unit, value} = Just VolumeValue- {vValue = value, vUnit = unit}+ resolve _ _ VolumeData {unit = Nothing} = Nothing+ resolve _ _ VolumeData {unit = Just unit, value} = Just (VolumeValue+ {vValue = value, vUnit = unit}, False) data VolumeValue = VolumeValue { vUnit :: Unit
duckling.cabal view
@@ -1,5 +1,5 @@ name: duckling-version: 0.1.4.0+version: 0.1.5.0 synopsis: A Haskell library for parsing text into structured data. description: Duckling is a library for parsing text into structured data.@@ -69,6 +69,7 @@ , Duckling.Rules.RO , Duckling.Rules.RU , Duckling.Rules.SV+ , Duckling.Rules.TA , Duckling.Rules.TR , Duckling.Rules.UK , Duckling.Rules.VI@@ -112,6 +113,7 @@ , Duckling.Ranking.Classifiers.RO_XX , Duckling.Ranking.Classifiers.RU_XX , Duckling.Ranking.Classifiers.SV_XX+ , Duckling.Ranking.Classifiers.TA_XX , Duckling.Ranking.Classifiers.TR_XX , Duckling.Ranking.Classifiers.UK_XX , Duckling.Ranking.Classifiers.VI_XX@@ -155,6 +157,7 @@ , Duckling.Dimensions.RO , Duckling.Dimensions.RU , Duckling.Dimensions.SV+ , Duckling.Dimensions.TA , Duckling.Dimensions.TR , Duckling.Dimensions.UK , Duckling.Dimensions.VI@@ -191,11 +194,17 @@ , Duckling.AmountOfMoney.SV.Rules , Duckling.AmountOfMoney.VI.Corpus , Duckling.AmountOfMoney.VI.Rules+ , Duckling.AmountOfMoney.NL.Corpus+ , Duckling.AmountOfMoney.NL.Rules+ , Duckling.AmountOfMoney.ZH.Corpus+ , Duckling.AmountOfMoney.ZH.Rules , Duckling.AmountOfMoney.Helpers , Duckling.AmountOfMoney.Rules , Duckling.AmountOfMoney.Types -- Distance+ , Duckling.Distance.BG.Corpus+ , Duckling.Distance.BG.Rules , Duckling.Distance.CS.Corpus , Duckling.Distance.CS.Rules , Duckling.Distance.EN.Corpus@@ -220,6 +229,10 @@ , Duckling.Distance.RU.Rules , Duckling.Distance.TR.Corpus , Duckling.Distance.TR.Rules+ , Duckling.Distance.SV.Corpus+ , Duckling.Distance.SV.Rules+ , Duckling.Distance.ZH.Corpus+ , Duckling.Distance.ZH.Rules , Duckling.Distance.Helpers , Duckling.Distance.Rules , Duckling.Distance.Types@@ -227,6 +240,8 @@ -- Duration , Duckling.Duration.AR.Corpus , Duckling.Duration.AR.Rules+ , Duckling.Duration.BG.Corpus+ , Duckling.Duration.BG.Rules , Duckling.Duration.DA.Rules , Duckling.Duration.DE.Rules , Duckling.Duration.EL.Corpus@@ -333,6 +348,8 @@ , Duckling.Numeral.RU.Rules , Duckling.Numeral.SV.Corpus , Duckling.Numeral.SV.Rules+ , Duckling.Numeral.TA.Corpus+ , Duckling.Numeral.TA.Rules , Duckling.Numeral.TR.Corpus , Duckling.Numeral.TR.Rules , Duckling.Numeral.UK.Corpus@@ -350,6 +367,8 @@ -- Ordinal , Duckling.Ordinal.AR.Corpus , Duckling.Ordinal.AR.Rules+ , Duckling.Ordinal.BG.Corpus+ , Duckling.Ordinal.BG.Rules , Duckling.Ordinal.DA.Corpus , Duckling.Ordinal.DA.Rules , Duckling.Ordinal.DE.Corpus@@ -543,6 +562,7 @@ , Duckling.Time.ZH.MO.Rules , Duckling.Time.ZH.TW.Corpus , Duckling.Time.ZH.TW.Rules+ , Duckling.Time.Computed , Duckling.Time.Corpus , Duckling.Time.Helpers , Duckling.Time.Types@@ -551,6 +571,7 @@ -- TimeGrain , Duckling.TimeGrain.AR.Rules+ , Duckling.TimeGrain.BG.Rules , Duckling.TimeGrain.DA.Rules , Duckling.TimeGrain.DE.Rules , Duckling.TimeGrain.EN.Rules@@ -670,9 +691,12 @@ , Duckling.AmountOfMoney.RU.Tests , Duckling.AmountOfMoney.SV.Tests , Duckling.AmountOfMoney.VI.Tests+ , Duckling.AmountOfMoney.NL.Tests+ , Duckling.AmountOfMoney.ZH.Tests , Duckling.AmountOfMoney.Tests -- Distance+ , Duckling.Distance.BG.Tests , Duckling.Distance.CS.Tests , Duckling.Distance.EN.Tests , Duckling.Distance.ES.Tests@@ -685,10 +709,13 @@ , Duckling.Distance.RO.Tests , Duckling.Distance.RU.Tests , Duckling.Distance.TR.Tests+ , Duckling.Distance.SV.Tests+ , Duckling.Distance.ZH.Tests , Duckling.Distance.Tests -- Duration , Duckling.Duration.AR.Tests+ , Duckling.Duration.BG.Tests , Duckling.Duration.EL.Tests , Duckling.Duration.EN.Tests , Duckling.Duration.FR.Tests@@ -743,6 +770,7 @@ , Duckling.Numeral.RO.Tests , Duckling.Numeral.RU.Tests , Duckling.Numeral.SV.Tests+ , Duckling.Numeral.TA.Tests , Duckling.Numeral.TR.Tests , Duckling.Numeral.UK.Tests , Duckling.Numeral.VI.Tests@@ -751,6 +779,7 @@ -- Ordinal , Duckling.Ordinal.AR.Tests+ , Duckling.Ordinal.BG.Tests , Duckling.Ordinal.DA.Tests , Duckling.Ordinal.DE.Tests , Duckling.Ordinal.EL.Tests@@ -891,6 +920,22 @@ , time , timezone-olson >= 0.1.7 && < 0.2 , timezone-series+ , unordered-containers+ default-language: Haskell2010+ default-extensions: OverloadedStrings++executable custom-dimension-example+ main-is: CustomDimensionExample.hs+ hs-source-dirs: exe+ ghc-options: -threaded -rtsopts -with-rtsopts=-N+ build-depends: duckling+ , aeson+ , base+ , deepseq+ , dependent-sum+ , hashable+ , text+ , text-show , unordered-containers default-language: Haskell2010 default-extensions: OverloadedStrings
+ exe/CustomDimensionExample.hs view
@@ -0,0 +1,82 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoRebindableSyntax #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++module Main (main) where++import Control.DeepSeq+import Control.Monad+import Data.Aeson+import Data.Hashable+import Data.Semigroup ((<>))+import Data.Some+import Data.Text (Text)+import Data.Typeable+import GHC.Generics+import Prelude+import qualified Data.HashSet as HashSet+import qualified TextShow as TS++import Duckling.Debug+import Duckling.Locale+import Duckling.Resolve (Resolve(..))+import Duckling.Types++data MyDimension = MyDimension deriving (Eq, Show, Typeable)++instance CustomDimension MyDimension where+ type DimensionData MyDimension = MyData+ dimRules _ = [myRule]+ dimLangRules _ _ = []+ dimLocaleRules _ _ = []+ dimDependents _ = HashSet.empty++data MyData = MyData+ { iField :: Int+ , bField :: Bool+ , tField :: Text+ }+ deriving (Eq, Generic, Hashable, Ord, Show, NFData)++instance Resolve MyData where+ type ResolvedValue MyData = MyValue+ resolve _ _ MyData{..} = Just+ ( MyValue $ TS.showt iField <> "," <> TS.showt bField <> "," <> tField+ , False )++newtype MyValue = MyValue { value :: Text }+ deriving (Eq, Ord, Show)++instance ToJSON MyValue where+ toJSON (MyValue value) = object [ "value" .= value ]++myRule :: Rule+myRule = Rule+ { name = "my dimension"+ , pattern =+ [ regex "my dimension"+ ]+ , prod = \case+ (_:_) -> Just . Token (CustomDimension MyDimension) $ MyData+ { iField = 42+ , bField = True+ , tField = "hello world"+ }+ _ -> Nothing+ }++main :: IO ()+main = do+ let en = makeLocale EN Nothing+ debug en "input for my dimension" [This (CustomDimension MyDimension)] >>= print
exe/Duckling/Ranking/Generate.hs view
@@ -161,36 +161,37 @@ getCorpusForLang :: Lang -> Corpus getCorpusForLang AR = ARTime.corpus-getCorpusForLang BG = (testContext, [])-getCorpusForLang CS = (testContext, [])+getCorpusForLang BG = (testContext, testOptions, [])+getCorpusForLang CS = (testContext, testOptions, []) getCorpusForLang DA = DATime.corpus getCorpusForLang DE = DETime.corpus getCorpusForLang EL = ELTime.corpus getCorpusForLang EN = ENTime.corpus getCorpusForLang ES = ESTime.corpus-getCorpusForLang ET = (testContext, [])+getCorpusForLang ET = (testContext, testOptions, []) getCorpusForLang FR = FRTime.corpus getCorpusForLang GA = GATime.corpus getCorpusForLang HR = HRTime.corpus getCorpusForLang HE = HETime.corpus getCorpusForLang HU = HUTime.corpus-getCorpusForLang HI = (testContext, [])-getCorpusForLang ID = (testContext, [])+getCorpusForLang HI = (testContext, testOptions, [])+getCorpusForLang ID = (testContext, testOptions, []) getCorpusForLang IT = ITTime.corpus-getCorpusForLang JA = (testContext, [])-getCorpusForLang KA = (testContext, [])+getCorpusForLang JA = (testContext, testOptions, [])+getCorpusForLang KA = (testContext, testOptions, []) getCorpusForLang KO = KOTime.corpus-getCorpusForLang MY = (testContext, [])+getCorpusForLang MY = (testContext, testOptions, []) getCorpusForLang NB = NBTime.corpus-getCorpusForLang NE = (testContext, [])+getCorpusForLang NE = (testContext, testOptions, []) getCorpusForLang NL = NLTime.corpus getCorpusForLang PL = PLTime.corpus getCorpusForLang PT = PTTime.corpus getCorpusForLang RO = ROTime.corpus-getCorpusForLang RU = (testContext, [])+getCorpusForLang RU = (testContext, testOptions, []) getCorpusForLang SV = SVTime.corpus-getCorpusForLang TR = (testContext, [])-getCorpusForLang UK = (testContext, [])+getCorpusForLang TA = (testContext, testOptions, [])+getCorpusForLang TR = (testContext, testOptions, [])+getCorpusForLang UK = (testContext, testOptions, []) getCorpusForLang VI = VITime.corpus getCorpusForLang ZH = ZHTime.corpus
exe/Duckling/Ranking/Train.hs view
@@ -68,10 +68,10 @@ -- | Classes: -- | 1) True (node contributed to a token passing test predicate) -- | 2) False (node didn't contribute to any passing tokens)-makeDataset1 :: [Rule] -> Context -> Dataset -> Example -> Dataset-makeDataset1 rules context dataset (sentence, predicate) = dataset'+makeDataset1 :: [Rule] -> Context -> Options -> Dataset -> Example -> Dataset+makeDataset1 rules context options dataset (sentence, predicate) = dataset' where- tokens = parseAndResolve rules sentence context+ tokens = parseAndResolve rules sentence context options (ok, ko) = List.partition (predicate context) tokens subnodes :: Node -> HashSet Node subnodes node@(Node{..}) = case children of@@ -92,5 +92,5 @@ -- | Build a dataset (rule name -> datums) makeDataset :: [Rule] -> Corpus -> Dataset-makeDataset rules (context, examples) =- List.foldl' (makeDataset1 rules context) HashMap.empty examples+makeDataset rules (context, options, examples) =+ List.foldl' (makeDataset1 rules context options) HashMap.empty examples
exe/ExampleMain.hs view
@@ -8,12 +8,12 @@ {-# LANGUAGE OverloadedStrings #-} -import Control.Applicative+import Control.Applicative hiding (empty) import Control.Arrow ((***)) import Control.Monad (unless) import Control.Monad.IO.Class import Data.Aeson-import Data.ByteString (ByteString)+import Data.ByteString (ByteString, empty) import Data.HashMap.Strict (HashMap) import Data.Maybe import Data.String@@ -79,6 +79,7 @@ tz <- getPostParam "tz" loc <- getPostParam "locale" ref <- getPostParam "reftime"+ latent <- getPostParam "latent" case t of Nothing -> do@@ -92,17 +93,19 @@ { referenceTime = maybe now (parseRefTime timezone) ref , locale = maybe (makeLocale (parseLang l) Nothing) parseLocale loc }+ options = Options {withLatent = parseLatent latent} dimParse = fromMaybe [] $ decode $ LBS.fromStrict $ fromMaybe "" ds dims = mapMaybe fromName dimParse - parsedResult = parse (Text.decodeUtf8 tx) context dims+ parsedResult = parse (Text.decodeUtf8 tx) context options dims writeLBS $ encode parsedResult where defaultLang = EN defaultLocale = makeLocale defaultLang Nothing defaultTimeZone = "America/Los_Angeles"+ defaultLatent = False parseTimeZone :: Maybe ByteString -> Text parseTimeZone = fromMaybe defaultTimeZone . fmap Text.decodeUtf8@@ -125,3 +128,7 @@ where msec = read $ Text.unpack $ Text.decodeUtf8 refTime utcTime = posixSecondsToUTCTime $ fromInteger msec / 1000++ parseLatent :: Maybe ByteString -> Bool+ parseLatent x = fromMaybe defaultLatent+ (readMaybe (Text.unpack $ Text.toTitle $ Text.decodeUtf8 $ fromMaybe empty x)::Maybe Bool)
tests/Duckling/AmountOfMoney/EN/Tests.hs view
@@ -18,7 +18,7 @@ import Duckling.AmountOfMoney.EN.Corpus import Duckling.Dimensions.Types import Duckling.Testing.Asserts-import Duckling.Testing.Types (testContext)+import Duckling.Testing.Types (testContext, testOptions) import Duckling.Types (Range(..)) tests :: TestTree@@ -31,7 +31,7 @@ intersectTests :: TestTree intersectTests = testCase "Intersect Test" $- mapM_ (analyzedNTest testContext . withTargets [This AmountOfMoney]) xs+ mapM_ (analyzedNTest testContext testOptions . withTargets [This AmountOfMoney]) xs where xs = [ ("7c7", 2) , ("7c7c", 3)@@ -45,7 +45,7 @@ rangeTests :: TestTree rangeTests = testCase "Range Test" $- mapM_ (analyzedRangeTest testContext . withTargets [This AmountOfMoney]) xs+ mapM_ (analyzedRangeTest testContext testOptions . withTargets [This AmountOfMoney]) xs where xs = [ ("between 3 and 1 dollars", Range 14 23) , ("between 1 and between 2 and 3 dollars", Range 14 37)
+ tests/Duckling/AmountOfMoney/NL/Tests.hs view
@@ -0,0 +1,24 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.AmountOfMoney.NL.Tests+ ( tests+ ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.AmountOfMoney.NL.Corpus+import Duckling.Dimensions.Types+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "NL Tests"+ [ makeCorpusTest [This AmountOfMoney] corpus+ ]
tests/Duckling/AmountOfMoney/Tests.hs view
@@ -6,7 +6,9 @@ -- of patent rights can be found in the PATENTS file in the same directory. -module Duckling.AmountOfMoney.Tests (tests) where+module Duckling.AmountOfMoney.Tests+ ( tests+ ) where import Data.String import Prelude@@ -22,11 +24,13 @@ import qualified Duckling.AmountOfMoney.ID.Tests as ID import qualified Duckling.AmountOfMoney.KO.Tests as KO import qualified Duckling.AmountOfMoney.NB.Tests as NB+import qualified Duckling.AmountOfMoney.NL.Tests as NL import qualified Duckling.AmountOfMoney.PT.Tests as PT import qualified Duckling.AmountOfMoney.RO.Tests as RO import qualified Duckling.AmountOfMoney.RU.Tests as RU import qualified Duckling.AmountOfMoney.SV.Tests as SV import qualified Duckling.AmountOfMoney.VI.Tests as VI+import qualified Duckling.AmountOfMoney.ZH.Tests as ZH tests :: TestTree tests = testGroup "AmountOfMoney Tests"@@ -40,9 +44,11 @@ , ID.tests , KO.tests , NB.tests+ , NL.tests , PT.tests , RO.tests , RU.tests , SV.tests , VI.tests+ , ZH.tests ]
+ tests/Duckling/AmountOfMoney/ZH/Tests.hs view
@@ -0,0 +1,23 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.AmountOfMoney.ZH.Tests+ ( tests ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.AmountOfMoney.ZH.Corpus+import Duckling.Dimensions.Types+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "ZH Tests"+ [ makeCorpusTest [This AmountOfMoney] corpus+ ]
tests/Duckling/Api/Tests.hs view
@@ -40,9 +40,9 @@ parseTest :: TestTree parseTest = testCase "Parse Test" $- case parse sentence testContext [This Numeral] of+ case parse sentence testContext testOptions [This Numeral] of [] -> assertFailure "empty result"- (Entity dim body value start end _:_) -> do+ (Entity dim body value start end _ _:_) -> do assertEqual "dim" "number" dim assertEqual "body" "42" body assertEqual "value" val (toJText value)@@ -84,7 +84,7 @@ where check :: (Text, [Some Dimension], [Some Dimension]) -> IO () check (sentence, targets, expected) =- let go = analyze sentence testContext $ HashSet.fromList targets+ let go = analyze sentence testContext testOptions $ HashSet.fromList targets actual = flip map go $ \(Resolved{node=Node{token=Token d _}}) -> This d in assertEqual ("wrong winners for " ++ show sentence) expected actual@@ -98,12 +98,12 @@ ] where check (s, targets) =- let tokens = analyze s testContext $ HashSet.fromList targets+ let tokens = analyze s testContext testOptions $ HashSet.fromList targets in assertEqual "wrong ordering" (sortOn range tokens) tokens rangeTest :: TestTree rangeTest = testCase "Range Tests" $ do- mapM_ (analyzedFirstTest testContext) xs+ mapM_ (analyzedFirstTest testContext testOptions) xs where xs = map (\(input, targets, range) -> (input, targets, f range)) [ ( "order status 3233763377", [This PhoneNumber], Range 13 23 )
+ tests/Duckling/Distance/BG/Tests.hs view
@@ -0,0 +1,24 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Distance.BG.Tests+ ( tests+ ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Distance.BG.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "BG Tests"+ [ makeCorpusTest [This Distance] corpus+ ]
tests/Duckling/Distance/EN/Tests.hs view
@@ -7,10 +7,11 @@ module Duckling.Distance.EN.Tests- ( tests ) where+ ( tests+ ) where -import Prelude import Data.String+import Prelude import Test.Tasty import Duckling.Dimensions.Types
+ tests/Duckling/Distance/SV/Tests.hs view
@@ -0,0 +1,23 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Distance.SV.Tests+ ( tests+ ) where++import Data.String+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Distance.SV.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "SV Tests"+ [ makeCorpusTest [This Distance] corpus+ ]
tests/Duckling/Distance/Tests.hs view
@@ -6,12 +6,15 @@ -- of patent rights can be found in the PATENTS file in the same directory. -module Duckling.Distance.Tests (tests) where+module Duckling.Distance.Tests+ ( tests+ ) where -import Prelude import Data.String+import Prelude import Test.Tasty +import qualified Duckling.Distance.BG.Tests as BG import qualified Duckling.Distance.CS.Tests as CS import qualified Duckling.Distance.EN.Tests as EN import qualified Duckling.Distance.ES.Tests as ES@@ -24,10 +27,13 @@ import qualified Duckling.Distance.RO.Tests as RO import qualified Duckling.Distance.RU.Tests as RU import qualified Duckling.Distance.TR.Tests as TR+import qualified Duckling.Distance.SV.Tests as SV+import qualified Duckling.Distance.ZH.Tests as ZH tests :: TestTree tests = testGroup "Distance Tests"- [ CS.tests+ [ BG.tests+ , CS.tests , EN.tests , ES.tests , FR.tests@@ -39,4 +45,6 @@ , RO.tests , RU.tests , TR.tests+ , SV.tests+ , ZH.tests ]
+ tests/Duckling/Distance/ZH/Tests.hs view
@@ -0,0 +1,41 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Distance.ZH.Tests+ ( tests ) where++import Data.String+import Prelude+import Test.Tasty+import Test.Tasty.HUnit++import Duckling.Dimensions.Types+import Duckling.Distance.Types+import Duckling.Distance.ZH.Corpus+import Duckling.Locale+import Duckling.Resolve+import Duckling.Testing.Asserts+import Duckling.Testing.Types++tests :: TestTree+tests = testGroup "ZH Tests"+ [ makeCorpusTest [This Distance] corpus+ , ambiguousTests+ ]++ambiguousTests :: TestTree+ambiguousTests = testCase "Ambiguous Tests" $+ analyzedAmbiguousTest context testOptions+ (testText, [This Distance], predicates)+ where+ context = testContext {locale = makeLocale ZH Nothing}+ testText = "3千米"+ predicates = simpleCheck <$>+ [ simple Kilometre 3.0+ , simple Metre 3000.0+ ]
+ tests/Duckling/Duration/BG/Tests.hs view
@@ -0,0 +1,24 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Duration.BG.Tests+ ( tests+ ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Duration.BG.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "BG Tests"+ [ makeCorpusTest [This Duration] corpus+ ]
tests/Duckling/Duration/Tests.hs view
@@ -15,6 +15,7 @@ import Test.Tasty import qualified Duckling.Duration.AR.Tests as AR+import qualified Duckling.Duration.BG.Tests as BG import qualified Duckling.Duration.EL.Tests as EL import qualified Duckling.Duration.EN.Tests as EN import qualified Duckling.Duration.FR.Tests as FR@@ -35,6 +36,7 @@ tests :: TestTree tests = testGroup "Duration Tests" [ AR.tests+ , BG.tests , EL.tests , EN.tests , FR.tests
tests/Duckling/Numeral/EN/Tests.hs view
@@ -34,7 +34,8 @@ surroundTests :: TestTree surroundTests = testCase "Surround Tests" $- mapM_ (analyzedFirstTest testContext . withTargets [This Numeral]) xs+ mapM_ (analyzedFirstTest testContext testOptions .+ withTargets [This Numeral]) xs where xs = concat [ examples (NumeralValue 3)@@ -51,14 +52,14 @@ intersectTests :: TestTree intersectTests = testCase "Intersect Test" $- mapM_ (analyzedNTest testContext . withTargets [This Numeral]) xs+ mapM_ (analyzedNTest testContext testOptions . withTargets [This Numeral]) xs where xs = [ ("10 millions minus 10", 2) ] rangeTests :: TestTree rangeTests = testCase "Range Test" $- mapM_ (analyzedRangeTest testContext . withTargets [This Numeral]) xs+ mapM_ (analyzedRangeTest testContext testOptions . withTargets [This Numeral]) xs where xs = [ ("negative negative 5", Range 9 19) -- prevent double negatives , ("negative-5", Range 8 10) -- prevent double negatives
+ tests/Duckling/Numeral/TA/Tests.hs view
@@ -0,0 +1,22 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++module Duckling.Numeral.TA.Tests+ ( tests ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Numeral.TA.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "TA Tests"+ [ makeCorpusTest [This Numeral] corpus+ ]
tests/Duckling/Numeral/Tests.hs view
@@ -41,6 +41,7 @@ import qualified Duckling.Numeral.RO.Tests as RO import qualified Duckling.Numeral.RU.Tests as RU import qualified Duckling.Numeral.SV.Tests as SV+import qualified Duckling.Numeral.TA.Tests as TA import qualified Duckling.Numeral.TR.Tests as TR import qualified Duckling.Numeral.UK.Tests as UK import qualified Duckling.Numeral.VI.Tests as VI@@ -77,6 +78,7 @@ , RO.tests , RU.tests , SV.tests+ , TA.tests , TR.tests , UK.tests , VI.tests
+ tests/Duckling/Ordinal/BG/Tests.hs view
@@ -0,0 +1,23 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Ordinal.BG.Tests+ ( tests ) where++import Prelude+import Data.String+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Ordinal.BG.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "BG Tests"+ [ makeCorpusTest [This Ordinal] corpus+ ]
tests/Duckling/Ordinal/Tests.hs view
@@ -13,6 +13,7 @@ import Test.Tasty import qualified Duckling.Ordinal.AR.Tests as AR+import qualified Duckling.Ordinal.BG.Tests as BG import qualified Duckling.Ordinal.DA.Tests as DA import qualified Duckling.Ordinal.DE.Tests as DE import qualified Duckling.Ordinal.EL.Tests as EL@@ -44,6 +45,7 @@ tests :: TestTree tests = testGroup "Ordinal Tests" [ AR.tests+ , BG.tests , DA.tests , DE.tests , EL.tests
tests/Duckling/PhoneNumber/Tests.hs view
@@ -34,7 +34,8 @@ surroundTests :: TestTree surroundTests = testCase "Surround Tests" $- mapM_ (analyzedFirstTest testContext . withTargets [This PhoneNumber]) xs+ mapM_ (analyzedFirstTest testContext testOptions .+ withTargets [This PhoneNumber]) xs where xs = examples (PhoneNumberValue "06354640807") [ "hey 06354640807"
tests/Duckling/Testing/Asserts.hs view
@@ -11,6 +11,7 @@ module Duckling.Testing.Asserts ( analyzedTargetTest , analyzedFirstTest+ , analyzedAmbiguousTest , analyzedNTest , analyzedNothingTest , analyzedRangeTest@@ -19,6 +20,7 @@ , withTargets ) where +import Data.List (partition) import Data.String import Data.Text (Text) import Prelude@@ -37,62 +39,82 @@ withTargets :: [Some Dimension] -> (Text, a) -> (Text, [Some Dimension], a) withTargets targets (input, expected) = (input, targets, expected) -analyzedTargetTest :: Context -> (Text, Some Dimension) -> IO ()-analyzedTargetTest context (input, target) =+analyzedTargetTest :: Context -> Options -> (Text, Some Dimension) -> IO ()+analyzedTargetTest context options (input, target) = assertBool msg $ all (== target) dimensions where msg = "analyze " ++ show (input, [target]) ++ "dimensions = " ++ show dimensions- dimensions = flip map (analyze input context $ HashSet.singleton target) $+ dimensions = flip map (analyze input context options $ HashSet.singleton target) $ \(Resolved{node=Node{token=Token dimension _}}) -> This dimension -analyzedFirstTest :: Context -> (Text, [Some Dimension], TestPredicate) -> IO ()-analyzedFirstTest context (input, targets, predicate) =+analyzedFirstTest :: Context -> Options ->+ (Text, [Some Dimension], TestPredicate) -> IO ()+analyzedFirstTest context options (input, targets, predicate) = case tokens of [] -> assertFailure ("empty result on " ++ show (input, targets)) (token:_) -> assertBool ("don't pass predicate on " ++ show input) $ predicate context token where- tokens = analyze input context $ HashSet.fromList targets+ tokens = analyze input context options $ HashSet.fromList targets +analyzedAmbiguousTest :: Context -> Options ->+ (Text, [Some Dimension], [TestPredicate]) -> IO ()+analyzedAmbiguousTest context options (input, targets, predicates) =+ case tokens of+ [] -> assertFailure ("empty result on " ++ show (input, targets))+ _ -> assertBool ("don't pass predicate on " ++ show input) $+ all (\predicate -> any (predicate context) tokens) predicates+ where+ tokens = analyze input context options $ HashSet.fromList targets+ makeCorpusTest :: [Some Dimension] -> Corpus -> TestTree-makeCorpusTest targets (context, xs) = testCase "Corpus Tests" $ mapM_ check xs+makeCorpusTest targets (context, options, xs) = testCase "Corpus Tests" $+ mapM_ check xs where dims = HashSet.fromList targets check :: Example -> IO ()- check (input, predicate) = let tokens = analyze input context dims in- case tokens of- [] -> assertFailure $ "empty result on " ++ show input- (_:_:_) -> assertFailure $- show (length tokens) ++ " tokens found for " ++ show input- (token:_) -> do- assertEqual ("don't fully match " ++ show input)- (Range 0 (Text.length input)) (range token)- assertBool ("don't pass predicate on " ++ show input) $- predicate context token+ check (input, predicate) =+ let tokens = analyze input context options dims in+ let inputRange = Range 0 $ Text.length input in+ let (fullRangeTokens, restTokens) =+ partition ((== inputRange) . range) tokens in+ case fullRangeTokens of+ [] -> case restTokens of+ [] -> assertFailure $ "empty result on " ++ show input+ (_:_:_) -> assertFailure $+ show (length restTokens) ++ " tokens found for " ++ show input+ _ -> assertFailure $ "don't fully match " ++ show input+ [token] -> assertBool ("don't pass predicate on " ++ show input) $+ predicate context token+ _ -> assertFailure $ show (length fullRangeTokens)+ ++ " different ambiguous parses on " ++ show input + makeNegativeCorpusTest :: [Some Dimension] -> NegativeCorpus -> TestTree-makeNegativeCorpusTest targets (context, xs) = testCase "Negative Corpus Tests" $- mapM_ (analyzedNothingTest context . (, targets)) xs+makeNegativeCorpusTest targets (context, options, xs) =+ testCase "Negative Corpus Tests"+ $ mapM_ (analyzedNothingTest context options . (, targets)) xs -analyzedRangeTest :: Context -> (Text, [Some Dimension], Range) -> IO ()-analyzedRangeTest context (input, targets, expRange) = case tokens of+analyzedRangeTest :: Context -> Options -> (Text, [Some Dimension], Range)+ -> IO ()+analyzedRangeTest context options (input, targets, expRange) = case tokens of [] -> assertFailure $ "empty result on " ++ show input (_:_:_) -> assertFailure $ show (length tokens) ++ " tokens found for " ++ show input (token:_) -> assertEqual ("wrong range for " ++ show input) expRange (range token) where- tokens = analyze input context $ HashSet.fromList targets+ tokens = analyze input context options $ HashSet.fromList targets -analyzedNothingTest :: Context -> (Text, [Some Dimension]) -> IO ()-analyzedNothingTest context (input, targets) =- analyzedNTest context (input, targets, 0)+analyzedNothingTest :: Context -> Options -> (Text, [Some Dimension]) -> IO ()+analyzedNothingTest context options (input, targets) =+ analyzedNTest context options (input, targets, 0) -analyzedNTest :: Context -> (Text, [Some Dimension], Int) -> IO ()-analyzedNTest context (input, targets, n) =+analyzedNTest :: Context -> Options -> (Text, [Some Dimension], Int) -> IO ()+analyzedNTest context options (input, targets, n) = assertBool msg . (== n) $ length tokens where msg = "analyze " ++ show (input, targets) ++ "tokens= " ++ show tokens- tokens = analyze input context $ HashSet.fromList targets+ tokens = analyze input context options $ HashSet.fromList targets
tests/Duckling/Time/EN/Tests.hs view
@@ -52,6 +52,7 @@ , intersectTests , rangeTests , localeTests+ , makeCorpusTest [This Time] latentCorpus ] localeTests :: TestTree@@ -121,7 +122,7 @@ exactSecondTests :: TestTree exactSecondTests = testCase "Exact Second Tests" $- mapM_ (analyzedFirstTest context . withTargets [This Time]) xs+ mapM_ (analyzedFirstTest context testOptions . withTargets [This Time]) xs where context = testContext {referenceTime = refTime (2016, 12, 6, 13, 21, 42) 1} xs = concat@@ -131,7 +132,8 @@ , examples (datetime (2016, 12, 6, 13, 31, 42) Second) [ "in ten minutes" ]- , examples (datetimeInterval ((2016, 12, 6, 13, 21, 42), (2016, 12, 12, 0, 0, 0)) Second)+ , examples (datetimeInterval+ ((2016, 12, 6, 13, 21, 42), (2016, 12, 12, 0, 0, 0)) Second) [ "by next week" , "by Monday" ]@@ -139,7 +141,7 @@ valuesTest :: TestTree valuesTest = testCase "Values Test" $- mapM_ (analyzedFirstTest testContext . withTargets [This Time]) xs+ mapM_ (analyzedFirstTest testContext testOptions . withTargets [This Time]) xs where xs = examplesCustom (parserCheck 1 parseValuesSize) [ "now"@@ -154,7 +156,7 @@ intersectTests :: TestTree intersectTests = testCase "Intersect Test" $- mapM_ (analyzedNTest testContext . withTargets [This Time]) xs+ mapM_ (analyzedNTest testContext testOptions . withTargets [This Time]) xs where xs = [ ("tomorrow July", 2) , ("Mar tonight", 2)@@ -163,7 +165,7 @@ rangeTests :: TestTree rangeTests = testCase "Range Test" $- mapM_ (analyzedRangeTest testContext . withTargets [This Time]) xs+ mapM_ (analyzedRangeTest testContext testOptions . withTargets [This Time]) xs where xs = [ ("at 615.", Range 0 6) -- make sure ruleHHMMLatent allows this , ("last in 2'", Range 5 10) -- ruleLastTime too eager
tests/Duckling/Time/SV/Tests.hs view
@@ -46,6 +46,6 @@ ctx = testContext {locale = makeLocale SV Nothing} dims = HashSet.singleton $ This Time check :: Example -> IO ()- check (input, predicate) = case analyze input ctx dims of+ check (input, predicate) = case analyze input ctx testOptions dims of [] -> assertFailure $ "empty result on " ++ show input xs -> mapM_ (assertBool ("predicate on " ++ show input) . predicate ctx) xs
tests/Duckling/Time/Tests.hs view
@@ -75,7 +75,7 @@ timeFormatTest :: TestTree timeFormatTest = testCase "Format Test" $- mapM_ (analyzedFirstTest testContext . withTargets [This Time]) xs+ mapM_ (analyzedFirstTest testContext testOptions . withTargets [This Time]) xs where xs = examplesCustom (parserCheck expected parseValue) ["now"] expected = "2013-02-12T04:30:00.000-02:00"
tests/Duckling/Url/Tests.hs view
@@ -32,7 +32,7 @@ surroundTests :: TestTree surroundTests = testCase "Surround Tests" $- mapM_ (analyzedFirstTest testContext . withTargets [This Url]) xs+ mapM_ (analyzedFirstTest testContext testOptions . withTargets [This Url]) xs where xs = examples (UrlData "www.lets-try-this-one.co.uk/episode-7" "lets-try-this-one.co.uk") [ "phishing link: www.lets-try-this-one.co.uk/episode-7 If you want my job"