packages feed

duckling 0.1.2.0 → 0.1.3.0

raw patch · 448 files changed

+45843/−31452 lines, 448 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Duckling.Core: [lang] :: Context -> Lang
- Duckling.Lang: AR :: Lang
- Duckling.Lang: CS :: Lang
- Duckling.Lang: DA :: Lang
- Duckling.Lang: DE :: Lang
- Duckling.Lang: EN :: Lang
- Duckling.Lang: ES :: Lang
- Duckling.Lang: ET :: Lang
- Duckling.Lang: FR :: Lang
- Duckling.Lang: GA :: Lang
- Duckling.Lang: HE :: Lang
- Duckling.Lang: HR :: Lang
- Duckling.Lang: ID :: Lang
- Duckling.Lang: IT :: Lang
- Duckling.Lang: JA :: Lang
- Duckling.Lang: KO :: Lang
- Duckling.Lang: MY :: Lang
- Duckling.Lang: NB :: Lang
- Duckling.Lang: NL :: Lang
- Duckling.Lang: PL :: Lang
- Duckling.Lang: PT :: Lang
- Duckling.Lang: RO :: Lang
- Duckling.Lang: RU :: Lang
- Duckling.Lang: SV :: Lang
- Duckling.Lang: TR :: Lang
- Duckling.Lang: UK :: Lang
- Duckling.Lang: VI :: Lang
- Duckling.Lang: ZH :: Lang
- Duckling.Lang: data Lang
- Duckling.Lang: instance Data.Hashable.Class.Hashable Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Classes.Eq Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Classes.Ord Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Enum.Bounded Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Enum.Enum Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Generics.Generic Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Read.Read Duckling.Lang.Lang
- Duckling.Lang: instance GHC.Show.Show Duckling.Lang.Lang
- Duckling.Lang: instance TextShow.Classes.TextShow Duckling.Lang.Lang
- Duckling.Ranking.Classifiers.AR: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.CS: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.DA: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.DE: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.EN: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.ES: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.ET: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.FR: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.GA: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.HE: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.HR: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.ID: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.IT: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.JA: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.KO: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.MY: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.NB: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.NL: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.PL: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.PT: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.RO: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.RU: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.SV: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.TR: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.UK: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.VI: classifiers :: Classifiers
- Duckling.Ranking.Classifiers.ZH: classifiers :: Classifiers
- Duckling.Resolve: [lang] :: Context -> Lang
- Duckling.Rules.AR: rules :: Some Dimension -> [Rule]
- Duckling.Rules.CS: rules :: Some Dimension -> [Rule]
- Duckling.Rules.DA: rules :: Some Dimension -> [Rule]
- Duckling.Rules.DE: rules :: Some Dimension -> [Rule]
- Duckling.Rules.EN: rules :: Some Dimension -> [Rule]
- Duckling.Rules.ES: rules :: Some Dimension -> [Rule]
- Duckling.Rules.ET: rules :: Some Dimension -> [Rule]
- Duckling.Rules.FR: rules :: Some Dimension -> [Rule]
- Duckling.Rules.GA: rules :: Some Dimension -> [Rule]
- Duckling.Rules.HE: rules :: Some Dimension -> [Rule]
- Duckling.Rules.HR: rules :: Some Dimension -> [Rule]
- Duckling.Rules.ID: rules :: Some Dimension -> [Rule]
- Duckling.Rules.IT: rules :: Some Dimension -> [Rule]
- Duckling.Rules.JA: rules :: Some Dimension -> [Rule]
- Duckling.Rules.KO: rules :: Some Dimension -> [Rule]
- Duckling.Rules.MY: rules :: Some Dimension -> [Rule]
- Duckling.Rules.NB: rules :: Some Dimension -> [Rule]
- Duckling.Rules.NL: rules :: Some Dimension -> [Rule]
- Duckling.Rules.PL: rules :: Some Dimension -> [Rule]
- Duckling.Rules.PT: rules :: Some Dimension -> [Rule]
- Duckling.Rules.RO: rules :: Some Dimension -> [Rule]
- Duckling.Rules.RU: rules :: Some Dimension -> [Rule]
- Duckling.Rules.SV: rules :: Some Dimension -> [Rule]
- Duckling.Rules.TR: rules :: Some Dimension -> [Rule]
- Duckling.Rules.UK: rules :: Some Dimension -> [Rule]
- Duckling.Rules.VI: rules :: Some Dimension -> [Rule]
- Duckling.Rules.ZH: rules :: Some Dimension -> [Rule]
- Duckling.Time.Helpers: daysOfWeekOfMonth :: Int -> Int -> TimeData
+ Duckling.AmountOfMoney.BG.Corpus: corpus :: Corpus
+ Duckling.AmountOfMoney.BG.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.Types: BGN :: Currency
+ Duckling.Core: BG :: Lang
+ Duckling.Core: CA :: Region
+ Duckling.Core: CN :: Region
+ Duckling.Core: GB :: Region
+ Duckling.Core: HK :: Region
+ Duckling.Core: HU :: Lang
+ Duckling.Core: KA :: Lang
+ Duckling.Core: MO :: Region
+ Duckling.Core: TW :: Region
+ Duckling.Core: US :: Region
+ Duckling.Core: [locale] :: Context -> Locale
+ Duckling.Core: allLocales :: HashMap Lang (HashSet Region)
+ Duckling.Core: data Locale
+ Duckling.Core: data Region
+ Duckling.Core: makeLocale :: Lang -> Maybe Region -> Locale
+ Duckling.Dimensions.BG: allDimensions :: [Some Dimension]
+ Duckling.Dimensions.HU: allDimensions :: [Some Dimension]
+ Duckling.Dimensions.KA: allDimensions :: [Some Dimension]
+ Duckling.Duration.HU.Corpus: corpus :: Corpus
+ Duckling.Duration.HU.Rules: rules :: [Rule]
+ Duckling.Duration.NL.Corpus: corpus :: Corpus
+ Duckling.Duration.NL.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.Duration.NL.Rules: rules :: [Rule]
+ Duckling.Email.EN.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.Locale: AR :: Lang
+ Duckling.Locale: BG :: Lang
+ Duckling.Locale: CA :: Region
+ Duckling.Locale: CN :: Region
+ Duckling.Locale: CS :: Lang
+ Duckling.Locale: DA :: Lang
+ Duckling.Locale: DE :: Lang
+ Duckling.Locale: EN :: Lang
+ Duckling.Locale: ES :: Lang
+ Duckling.Locale: ET :: Lang
+ Duckling.Locale: FR :: Lang
+ Duckling.Locale: GA :: Lang
+ Duckling.Locale: GB :: Region
+ Duckling.Locale: HE :: Lang
+ Duckling.Locale: HK :: Region
+ Duckling.Locale: HR :: Lang
+ Duckling.Locale: HU :: Lang
+ Duckling.Locale: ID :: Lang
+ Duckling.Locale: IT :: Lang
+ Duckling.Locale: JA :: Lang
+ Duckling.Locale: KA :: Lang
+ Duckling.Locale: KO :: Lang
+ Duckling.Locale: Locale :: Lang -> (Maybe Region) -> Locale
+ Duckling.Locale: MO :: Region
+ Duckling.Locale: MY :: Lang
+ Duckling.Locale: NB :: Lang
+ Duckling.Locale: NL :: Lang
+ Duckling.Locale: PL :: Lang
+ Duckling.Locale: PT :: Lang
+ Duckling.Locale: RO :: Lang
+ Duckling.Locale: RU :: Lang
+ Duckling.Locale: SV :: Lang
+ Duckling.Locale: TR :: Lang
+ Duckling.Locale: TW :: Region
+ Duckling.Locale: UK :: Lang
+ Duckling.Locale: US :: Region
+ Duckling.Locale: VI :: Lang
+ Duckling.Locale: ZH :: Lang
+ Duckling.Locale: allLocales :: HashMap Lang (HashSet Region)
+ Duckling.Locale: data Lang
+ Duckling.Locale: data Locale
+ Duckling.Locale: data Region
+ Duckling.Locale: instance Data.Hashable.Class.Hashable Duckling.Locale.Lang
+ Duckling.Locale: instance Data.Hashable.Class.Hashable Duckling.Locale.Locale
+ Duckling.Locale: instance Data.Hashable.Class.Hashable Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Classes.Eq Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Classes.Eq Duckling.Locale.Locale
+ Duckling.Locale: instance GHC.Classes.Eq Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Classes.Ord Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Classes.Ord Duckling.Locale.Locale
+ Duckling.Locale: instance GHC.Classes.Ord Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Enum.Bounded Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Enum.Bounded Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Enum.Enum Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Enum.Enum Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Generics.Generic Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Generics.Generic Duckling.Locale.Locale
+ Duckling.Locale: instance GHC.Generics.Generic Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Read.Read Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Read.Read Duckling.Locale.Region
+ Duckling.Locale: instance GHC.Show.Show Duckling.Locale.Lang
+ Duckling.Locale: instance GHC.Show.Show Duckling.Locale.Locale
+ Duckling.Locale: instance GHC.Show.Show Duckling.Locale.Region
+ Duckling.Locale: instance TextShow.Classes.TextShow Duckling.Locale.Lang
+ Duckling.Locale: instance TextShow.Classes.TextShow Duckling.Locale.Locale
+ Duckling.Locale: instance TextShow.Classes.TextShow Duckling.Locale.Region
+ Duckling.Locale: makeLocale :: Lang -> Maybe Region -> Locale
+ Duckling.Numeral.BG.Corpus: corpus :: Corpus
+ Duckling.Numeral.BG.Rules: rules :: [Rule]
+ Duckling.Numeral.HU.Corpus: corpus :: Corpus
+ Duckling.Numeral.HU.Rules: rules :: [Rule]
+ Duckling.Numeral.KA.Corpus: corpus :: Corpus
+ Duckling.Numeral.KA.Rules: rules :: [Rule]
+ Duckling.Ordinal.ES.Corpus: corpus :: Corpus
+ Duckling.Ordinal.HU.Corpus: corpus :: Corpus
+ Duckling.Ordinal.HU.Rules: rules :: [Rule]
+ Duckling.Quantity.Types: Ounce :: Unit
+ Duckling.Ranking.Classifiers.AR_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.BG_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.CS_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.DA_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.DE_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.EN_CA: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.EN_GB: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.EN_US: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.EN_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ES_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ET_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.FR_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.GA_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.HE_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.HR_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.HU_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ID_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.IT_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.JA_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.KA_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.KO_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.MY_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.NB_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.NL_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.PL_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.PT_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.RO_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.RU_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.SV_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.TR_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.UK_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.VI_XX: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ZH_CN: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ZH_HK: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ZH_MO: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ZH_TW: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.ZH_XX: classifiers :: Classifiers
+ Duckling.Resolve: [locale] :: Context -> Locale
+ Duckling.Rules.AR: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.AR: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.AR: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.BG: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.BG: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.BG: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.CS: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.CS: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.CS: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.DA: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.DA: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.DA: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.DE: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.DE: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.DE: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.EN: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.EN: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.EN: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.ES: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ES: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ES: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.ET: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ET: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ET: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.FR: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.FR: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.FR: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.GA: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.GA: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.GA: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.HE: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HE: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HE: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.HR: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HR: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HR: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.HU: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HU: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.HU: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.ID: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ID: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ID: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.IT: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.IT: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.IT: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.JA: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.JA: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.JA: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.KA: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.KA: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.KA: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.KO: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.KO: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.KO: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.MY: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.MY: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.MY: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.NB: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.NB: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.NB: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.NL: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.NL: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.NL: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.PL: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.PL: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.PL: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.PT: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.PT: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.PT: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.RO: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.RO: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.RO: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.RU: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.RU: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.RU: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.SV: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.SV: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.SV: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.TR: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.TR: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.TR: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.UK: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.UK: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.UK: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.VI: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.VI: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.VI: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Rules.ZH: defaultRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ZH: langRules :: Some Dimension -> [Rule]
+ Duckling.Rules.ZH: localeRules :: Region -> Some Dimension -> [Rule]
+ Duckling.Testing.Types: withLocale :: (Context, [a]) -> Locale -> [a] -> (Context, [a])
+ Duckling.Time.EN.CA.Corpus: allExamples :: [Example]
+ Duckling.Time.EN.CA.Rules: rules :: [Rule]
+ Duckling.Time.EN.Corpus: defaultCorpus :: Corpus
+ Duckling.Time.EN.GB.Corpus: allExamples :: [Example]
+ Duckling.Time.EN.GB.Rules: rules :: [Rule]
+ Duckling.Time.EN.US.Corpus: allExamples :: [Example]
+ Duckling.Time.EN.US.Rules: ruleMMDD :: Rule
+ Duckling.Time.EN.US.Rules: ruleMMDDYYYY :: Rule
+ Duckling.Time.EN.US.Rules: ruleThanksgiving :: Rule
+ Duckling.Time.EN.US.Rules: rules :: [Rule]
+ Duckling.Time.FR.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.Time.HU.Corpus: corpus :: Corpus
+ Duckling.Time.HU.Rules: rules :: [Rule]
+ Duckling.Time.Helpers: hasNoDirection :: Predicate
+ Duckling.Time.Helpers: now :: TimeData
+ Duckling.Time.PL.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.Time.RO.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.Time.ZH.CN.Corpus: allExamples :: [Example]
+ Duckling.Time.ZH.CN.Rules: rules :: [Rule]
+ Duckling.Time.ZH.Corpus: defaultCorpus :: Corpus
+ Duckling.Time.ZH.HK.Corpus: allExamples :: [Example]
+ Duckling.Time.ZH.HK.Rules: rules :: [Rule]
+ Duckling.Time.ZH.MO.Corpus: allExamples :: [Example]
+ Duckling.Time.ZH.MO.Rules: rules :: [Rule]
+ Duckling.Time.ZH.TW.Corpus: allExamples :: [Example]
+ Duckling.Time.ZH.TW.Rules: rules :: [Rule]
+ Duckling.TimeGrain.HU.Rules: rules :: [Rule]
+ Duckling.TimeGrain.NL.Rules: rules :: [Rule]
+ Duckling.TimeGrain.Types: NoGrain :: Grain
+ Duckling.TimeGrain.Types: lower :: Grain -> Grain
- Duckling.Core: Context :: DucklingTime -> Lang -> Context
+ Duckling.Core: Context :: DucklingTime -> Locale -> Context
- Duckling.Debug: allParses :: Lang -> Text -> [Some Dimension] -> IO [Entity]
+ Duckling.Debug: allParses :: Locale -> Text -> [Some Dimension] -> IO [Entity]
- Duckling.Debug: debug :: Lang -> Text -> [Some Dimension] -> IO [Entity]
+ Duckling.Debug: debug :: Locale -> Text -> [Some Dimension] -> IO [Entity]
- Duckling.Debug: fullParses :: Lang -> Text -> [Some Dimension] -> IO [Entity]
+ Duckling.Debug: fullParses :: Locale -> Text -> [Some Dimension] -> IO [Entity]
- Duckling.Ranking.Classifiers: classifiers :: Lang -> Classifiers
+ Duckling.Ranking.Classifiers: classifiers :: Locale -> Classifiers
- Duckling.Resolve: Context :: DucklingTime -> Lang -> Context
+ Duckling.Resolve: Context :: DucklingTime -> Locale -> Context
- Duckling.Rules: allRules :: Lang -> [Rule]
+ Duckling.Rules: allRules :: Locale -> [Rule]
- Duckling.Rules: rulesFor :: Lang -> HashSet (Some Dimension) -> [Rule]
+ Duckling.Rules: rulesFor :: Locale -> HashSet (Some Dimension) -> [Rule]

This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.

Files

+ Duckling/AmountOfMoney/BG/Corpus.hs view
@@ -0,0 +1,120 @@+-- 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.BG.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 BG Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (simple BGN 1)+             [ "1 лв"+             , "един лев"+             , "1 Лев"+             ]+  , examples (simple BGN 10)+             [ "10 лв"+             , "десет лева"+             , "10лв"+             ]+  , examples (simple BGN 15.50)+             [ "15лв и 50ст"+             , "петнадесет лева и петдесет стотинки"+             , "15 Лв и 50 Ст"+             ]+  , examples (simple Dollar 1)+             [ "$1"+             , "един долар"+             , "1 долар"+             ]+  , examples (simple Dollar 10)+             [ "$10"+             , "$ 10"+             , "10$"+             , "10 Долара"+             , "десет долара"+             ]+  , examples (simple Cent 10)+             [ "10 цента"+             , "десет пенита"+             , "десет цента"+             , "10¢"+             ]+  , examples (simple Cent 50)+             [ "50 ст"+             , "петдесет стотинки"+             , "50ст"+             ]+  , examples (simple Dollar 1e4)+             [ "$10К"+             , "10к$"+             , "$10,000"+             ]+  , examples (simple USD 3.14)+             [ "USD3.14"+             , "3.14US$"+             , "US$ 3.14"+             ]+  , examples (simple EUR 20)+             [ "20\x20ac"+             , "20 евро"+             , "20 Евро"+             , "EUR 20"+             , "EUR 20.0"+             , "20€"+             , "20 €ur"+             ]+  , examples (simple Pound 10)+             [ "\x00a3\&10"+             , "десет паунда"+             ]+  , examples (simple Dollar 20.43)+             [ "$20 и 43ц"+             , "$20 43"+             , "20 долара 43ц"+             , "20 долара 43 цента"+             , "двадесет долара 43 цента"+             , "20 долара 43"+             , "двадесет долара и 43"+             ]+  , examples (simple GBP 3.01)+             [ "GBP3.01"+             , "GBP 3.01"+             , "3 GBP 1 пени"+             ]+  , examples (between Dollar (10, 20))+             [ "между 10 и 20 долара"+             , "от 10 до 20 долара"+             , "около 10-20 долара"+             , "между 10 и 20 долара"+             , "около $10-$20"+             , "10-20 долара"+             ]+  , examples (under EUR 7)+             [ "под седем евро"+             , "по-малко от 7 Евро"+             , "под 7€"+             ]+  , examples (above Dollar 1.42)+             [ "над 1 долар и четиридесет и два цента"+             , "поне $1.42"+             , "над 1.42 долара"+             ]+  ]
+ Duckling/AmountOfMoney/BG/Rules.hs view
@@ -0,0 +1,267 @@+-- 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.AmountOfMoney.BG.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.Types (NumeralData (..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.AmountOfMoney.Types as TAmountOfMoney+import qualified Duckling.Numeral.Types as TNumeral++ruleBGN :: Rule+ruleBGN = Rule+  { name = "лв"+  , pattern =+    [ regex "ле?ва?"+    ]+  , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly BGN+  }++rulePounds :: Rule+rulePounds = Rule+  { name = "£"+  , pattern =+    [ regex "паунд(а|и)?"+    ]+  , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Pound+  }++ruleDollar :: Rule+ruleDollar = Rule+  { name = "$"+  , pattern =+    [ regex "долар(а|и)?"+    ]+  , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar+  }++ruleCent :: Rule+ruleCent = Rule+  { name = "cent"+  , pattern =+    [ regex "ст(отинк(a|и))?|цента?|пени(та)?|пенса?|ц"+    ]+  , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent+  }++ruleEUR :: Rule+ruleEUR = Rule+  { name = "€"+  , pattern =+    [ regex "евр(о|а)"+    ]+  , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly EUR+  }++ruleIntersectAndXCents :: Rule+ruleIntersectAndXCents = Rule+  { name = "intersect (and X cents)"+  , pattern =+    [ financeWith TAmountOfMoney.value isJust+    , regex "и"+    , financeWith TAmountOfMoney.currency (== Cent)+    ]+  , 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 =+    [ financeWith TAmountOfMoney.value isJust+    , dimension Numeral+    ]+  , 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 =+    [ financeWith TAmountOfMoney.value isJust+    , regex "и"+    , dimension Numeral+    ]+  , 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 =+    [ financeWith TAmountOfMoney.value isJust+    , financeWith id $ \x -> case TAmountOfMoney.value x of+        Just v | v > 0 -> TAmountOfMoney.currency x == Cent+        _              -> False+    ]+  , 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 "точно|около|приблизително|близо (до)?|почти"+    , dimension AmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (_:token:_) -> Just token+      _ -> Nothing+  }++ruleIntervalBetweenNumeral :: Rule+ruleIntervalBetweenNumeral = Rule+  { name = "between|from <numeral> to|and <amount-of-money>"+  , pattern =+    [ regex "между|от"+    , dimension Numeral+    , 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}):+       _) ->+        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 "между|от"+    , 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}):+       _) | c1 == c2 ->+        Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+      _ -> Nothing+  }++ruleIntervalNumeralDash :: Rule+ruleIntervalNumeralDash = Rule+  { name = "<numeral> - <amount-of-money>"+  , pattern =+    [ dimension Numeral+    , 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}):+       _) ->+         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}):+       _) | 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 "под|по-малко от|не повече от"+    , 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 "над|поне|повече от"+    , 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 =+  [ ruleBGN+  , ruleDollar+  , ruleCent+  , ruleEUR+  , ruleIntersect+  , ruleIntersectAndNumeral+  , ruleIntersectAndXCents+  , ruleIntersectXCents+  , ruleIntervalBetweenNumeral+  , ruleIntervalBetween+  , ruleIntervalMax+  , ruleIntervalMin+  , ruleIntervalNumeralDash+  , ruleIntervalDash+  , rulePounds+  , rulePrecision+  ]
Duckling/AmountOfMoney/EN/Corpus.hs view
@@ -9,10 +9,11 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.EN.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types import Duckling.Testing.Types@@ -114,6 +115,9 @@   , examples (simple SAR 42)              [ "42 SAR"              , "42 Saudiriyal"+             ]+  , examples (simple BGN 42)+             [ "42 BGN"              ]   , examples (simple MYR 42)              [ "42 MYR"
Duckling/AmountOfMoney/ES/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.ES.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/ES/Rules.hs view
@@ -28,7 +28,7 @@ ruleDollar = Rule   { name = "dollar"   , pattern =-    [ regex "d(\x00f3|o)lar(es)?"+    [ regex "d(ó|o)lar(es)?"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar   }
Duckling/AmountOfMoney/FR/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.FR.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/FR/Rules.hs view
@@ -44,7 +44,7 @@ rulePrecision = Rule   { name = "precision"   , pattern =-    [ regex "exactement|quasi|plus ou moins|environ|autour de|(a|\x00e0) peu pr(e|\x00e8)s"+    [ regex "exactement|quasi|plus ou moins|environ|autour de|(a|à) peu pr(e|è)s"     , financeWith TAmountOfMoney.value isJust     ]   , prod = \tokens -> case tokens of
Duckling/AmountOfMoney/GA/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.GA.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/GA/Rules.hs view
@@ -111,7 +111,7 @@ ruleInr = Rule   { name = "INR"   , pattern =-    [ regex "r(\x00fa|u)pa(\x00ed|i)"+    [ regex "r(ú|u)pa(í|i)"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly INR   }@@ -137,7 +137,7 @@   { name = "<amount-of-money> glan"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "glan|baileach|(go )?d(\x00ed|i)reach"+    , regex "glan|baileach|(go )?d(í|i)reach"     ]   , prod = \tokens -> case tokens of       (token:_) -> Just token
Duckling/AmountOfMoney/HR/Corpus.hs view
@@ -8,18 +8,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.HR.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang import Duckling.AmountOfMoney.Types+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/HR/Rules.hs view
@@ -64,7 +64,7 @@ ruleCent = Rule   { name = "cent"   , pattern =-    [ regex "cent(i|a)?|penij(i|a)?|c|\x00a2|lp|lip(a|e)"+    [ regex "cent(i|a)?|penij(i|a)?|c|¢|lp|lip(a|e)"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent   }
Duckling/AmountOfMoney/ID/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.ID.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ID}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/ID/Rules.hs view
@@ -69,7 +69,7 @@ ruleJpy = Rule   { name = "JPY"   , pattern =-    [ regex "\x00a5\\."+    [ regex "¥\\."     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly JPY   }
Duckling/AmountOfMoney/KO/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.KO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/KO/Rules.hs view
@@ -27,7 +27,7 @@   { name = "<amount-of-money> about"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "\xc815\xb3c4|\xcbe4"+    , regex "정도|쯤"     ]   , prod = \tokens -> case tokens of       (token:_) -> Just token@@ -38,7 +38,7 @@ ruleAud = Rule   { name = "AUD"   , pattern =-    [ regex "\xd638\xc8fc\xb2ec\xb7ec"+    [ regex "호주달러"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly AUD   }@@ -47,7 +47,7 @@ ruleKrw = Rule   { name = "₩"   , pattern =-    [ regex "\x20a9|\xc6d0"+    [ regex "₩|원"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly KRW   }@@ -56,7 +56,7 @@ ruleAboutAmountofmoney = Rule   { name = "about <amount-of-money>"   , pattern =-    [ regex "\xc57d|\xb300\xcda9|\xc5bc\xcd94"+    [ regex "약|대충|얼추"     , financeWith TAmountOfMoney.value isJust     ]   , prod = \tokens -> case tokens of@@ -68,7 +68,7 @@ ruleCent = Rule   { name = "cent"   , pattern =-    [ regex "cents?|\xc13c(\xd2b8|\xce20)"+    [ regex "cents?|센(트|츠)"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent   }@@ -77,7 +77,7 @@ ruleExactlyAmountofmoney = Rule   { name = "exactly <amount-of-money>"   , pattern =-    [ regex "\xb531|\xc815\xd655\xd788"+    [ regex "딱|정확히"     , financeWith TAmountOfMoney.value isJust     ]   , prod = \tokens -> case tokens of@@ -103,7 +103,7 @@ ruleEuro = Rule   { name = "€"   , pattern =-    [ regex "\x20ac|\xc720\xb85c"+    [ regex "€|유로"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly EUR   }@@ -112,7 +112,7 @@ ruleDollar = Rule   { name = "$"   , pattern =-    [ regex "\xb2ec\xb7ec|\xbd88"+    [ regex "달러|불"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar   }@@ -121,7 +121,7 @@ ruleInr = Rule   { name = "INR"   , pattern =-    [ regex "\xb8e8\xd53c|\xc778\xb3c4\xb8e8\xd53c"+    [ regex "루피|인도루피"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly INR   }@@ -130,7 +130,7 @@ rulePounds = Rule   { name = "£"   , pattern =-    [ regex "\xd30c\xc6b4\xb4dc|\xc601\xad6d\xd30c\xc6b4\xb4dc"+    [ regex "파운드|영국파운드"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Pound   }
Duckling/AmountOfMoney/NB/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.NB.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NB}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/NB/Rules.hs view
@@ -56,7 +56,7 @@ ruleCent = Rule   { name = "cent"   , pattern =-    [ regex "cents?|penn(y|ies)|(\x00f8)re"+    [ regex "cents?|penn(y|ies)|(ø)re"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent   }
Duckling/AmountOfMoney/PT/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.PT.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/RO/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.RO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/RO/Rules.hs view
@@ -31,7 +31,7 @@   { name = "intersect (and number)"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "(s|\x0219)i"+    , regex "(s|ș)i"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -71,7 +71,7 @@ rulePrecisionAmountofmoney = Rule   { name = "about/exactly <amount-of-money>"   , pattern =-    [ regex "exact|cam|aprox(\\.|imativ)?|aproape|(i|\x00ee)n jur (de)?"+    [ regex "exact|cam|aprox(\\.|imativ)?|aproape|(i|î)n jur (de)?"     , financeWith TAmountOfMoney.value isJust     ]   , prod = \tokens -> case tokens of@@ -83,7 +83,7 @@ ruleCent = Rule   { name = "cent|bani"   , pattern =-    [ regex "bani?|cen(t|\x021b)i?|c|\x00a2"+    [ regex "bani?|cen(t|ț)i?|c|¢"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent   }@@ -102,7 +102,7 @@   { name = "intersect (and X cents)"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "(s|\x0219)i"+    , regex "(s|ș)i"     , financeWith TAmountOfMoney.currency (== Cent)     ]   , prod = \tokens -> case tokens of@@ -140,7 +140,7 @@ ruleOtherPounds = Rule   { name = "other pounds"   , pattern =-    [ regex "lir(a|\x0103) (egiptian|libanez)(a|\x0103)"+    [ regex "lir(a|ă) (egiptian|libanez)(a|ă)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (_:match:_)):_) -> case Text.toLower match of
Duckling/AmountOfMoney/Rules.hs view
@@ -34,22 +34,23 @@ currencies = HashMap.fromList   [ ("aed", AED)   , ("aud", AUD)+  , ("bgn", BGN)   , ("brl", BRL)-  , ("\x00a2", Cent)+  , ("¢", Cent)   , ("c", Cent)   , ("$", Dollar)   , ("dollar", Dollar)   , ("dollars", Dollar)   , ("egp", EGP)-  , ("\x20ac", EUR)+  , ("€", EUR)   , ("eur", EUR)   , ("euro", EUR)   , ("euros", EUR)   , ("eurs", EUR)-  , ("\x20acur", EUR)-  , ("\x20acuro", EUR)-  , ("\x20acuros", EUR)-  , ("\x20acurs", EUR)+  , ("€ur", EUR)+  , ("€uro", EUR)+  , ("€uros", EUR)+  , ("€urs", EUR)   , ("gbp", GBP)   , ("hrk", HRK)   , ("idr", IDR)@@ -58,7 +59,7 @@   , ("rs.", INR)   , ("rupee", INR)   , ("rupees", INR)-  , ("\x00a5", JPY)+  , ("¥", JPY)   , ("jpy", JPY)   , ("yen", JPY)   , ("krw", KRW)@@ -67,7 +68,7 @@   , ("myr", MYR)   , ("rm", MYR)   , ("nok", NOK)-  , ("\x00a3", Pound)+  , ("£", Pound)   , ("pt", PTS)   , ("pta", PTS)   , ("ptas", PTS)@@ -86,7 +87,7 @@ ruleCurrencies = Rule   { name = "currencies"   , pattern =-    [ regex "(aed|aud|brl|\x00a2|c|\\$|dollars?|egp|(e|\x20ac)uro?s?|\x20ac|gbp|hrk|idr|inr|\x00a5|jpy|krw|kwd|lbp|myr|rm|nok|\x00a3|pta?s?|qar|rs\\.?|ron|rupees?|sar|sek|sgb|us(d|\\$)|vnd|yen)"+    [ regex "(aed|aud|bgn|brl|¢|c|\\$|dollars?|egp|(e|€)uro?s?|€|gbp|hrk|idr|inr|¥|jpy|krw|kwd|lbp|myr|rm|nok|£|pta?s?|qar|rs\\.?|ron|rupees?|sar|sek|sgb|us(d|\\$)|vnd|yen)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> do
Duckling/AmountOfMoney/SV/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.SV.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = SV}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/SV/Rules.hs view
@@ -56,7 +56,7 @@ ruleCent = Rule   { name = "cent"   , pattern =-    [ regex "cents?|penn(y|ies)|\x00f6re"+    [ regex "cents?|penn(y|ies)|öre"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Cent   }
Duckling/AmountOfMoney/Types.hs view
@@ -34,6 +34,7 @@   -- unambiguous   | AED   | AUD+  | BGN   | BRL   | EGP   | EUR@@ -64,6 +65,7 @@   toJSON Unnamed = "unknown"   toJSON AED     = "AED"   toJSON AUD     = "AUD"+  toJSON BGN     = "BGN"   toJSON BRL     = "BRL"   toJSON EGP     = "EGP"   toJSON EUR     = "EUR"
Duckling/AmountOfMoney/VI/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.AmountOfMoney.VI.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.AmountOfMoney.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = VI}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/AmountOfMoney/VI/Rules.hs view
@@ -28,7 +28,7 @@ ruleNg = Rule   { name = "đồng"   , pattern =-    [ regex "\x0111\x1ed3ng?"+    [ regex "đồng?"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly VND   }@@ -37,7 +37,7 @@ ruleDollar = Rule   { name = "$"   , pattern =-    [ regex "\x0111\x00f4 la|\x0111\x00f4 m\x1ef9|\x0111(\x00f4)?"+    [ regex "đô la|đô mỹ|đ(ô)?"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar   }@@ -46,7 +46,7 @@ ruleVnd = Rule   { name = "VNĐ"   , pattern =-    [ regex "vn(\x0110|\\$)"+    [ regex "vn(Đ|\\$)"     ]   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly VND   }@@ -88,7 +88,7 @@   { name = "intersect and number"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "v\x00e0"+    , regex "và"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -118,7 +118,7 @@   { name = "intersect (và X xu|xen)"   , pattern =     [ financeWith TAmountOfMoney.value isJust-    , regex "v\x00e0"+    , regex "và"     , financeWith TAmountOfMoney.currency (== Cent)     ]   , prod = \tokens -> case tokens of
Duckling/Api.hs view
@@ -17,18 +17,18 @@   ) where  import Data.HashMap.Strict (HashMap)-import qualified Data.HashMap.Strict as HashMap import Data.HashSet (HashSet)-import qualified Data.HashSet as HashSet import Data.Text (Text)-import qualified Data.Text as Text import Prelude import TextShow+import qualified Data.HashMap.Strict as HashMap+import qualified Data.HashSet as HashSet+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Dimensions import Duckling.Engine-import Duckling.Lang+import Duckling.Locale import Duckling.Ranking.Classifiers import Duckling.Ranking.Rank import Duckling.Resolve@@ -47,11 +47,11 @@ -- When `targets` is non-empty, returns only tokens of such dimensions. analyze :: Text -> Context -> HashSet (Some Dimension) -> [ResolvedToken] analyze input context@Context{..} targets =-  rank (classifiers lang) targets+  rank (classifiers locale) targets   . filter (\(Resolved{node = Node{token = (Token d _)}}) ->       HashSet.null targets || HashSet.member (This d) targets     )-  $ parseAndResolve (rulesFor lang targets) input context+  $ parseAndResolve (rulesFor locale targets) input context  -- | Converts the resolved token to the API format formatToken :: Text -> ResolvedToken -> Entity
Duckling/Core.hs view
@@ -12,16 +12,20 @@  module Duckling.Core   ( Context(..)+  , Region(..)   , Dimension(..)-  , fromName   , Entity(..)   , Lang(..)+  , Locale   , Some(..)+  , fromName+  , makeLocale   , toName    -- Duckling API   , parse   , supportedDimensions+  , allLocales    -- Reference time builders   , currentReftime@@ -39,7 +43,7 @@  import Duckling.Api import Duckling.Dimensions.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Types 
Duckling/Debug.hs view
@@ -18,17 +18,17 @@   , ptree   ) where -import qualified Data.HashSet as HashSet import Data.Maybe import Data.Text (Text)+import Prelude+import qualified Data.HashSet as HashSet import qualified Data.Text as Text import qualified Data.Text.IO as Text-import Prelude  import Duckling.Api import Duckling.Dimensions.Types import Duckling.Engine-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Rules import Duckling.Testing.Types@@ -37,13 +37,13 @@ -- ----------------------------------------------------------------- -- API -debug :: Lang -> Text -> [Some Dimension] -> IO [Entity]-debug l = debugContext testContext {lang = l}+debug :: Locale -> Text -> [Some Dimension] -> IO [Entity]+debug locale = debugContext testContext {locale = locale} -allParses :: Lang -> Text -> [Some Dimension] -> IO [Entity]+allParses :: Locale -> Text -> [Some Dimension] -> IO [Entity] allParses l sentence targets = debugTokens sentence $ parses l sentence targets -fullParses :: Lang -> Text -> [Some Dimension] -> IO [Entity]+fullParses :: Locale -> Text -> [Some Dimension] -> IO [Entity] fullParses l sentence targets = debugTokens sentence .   filter (\(Resolved {range = Range start end}) -> start == 0 && end == n) $   parses l sentence targets@@ -56,14 +56,14 @@ -- ----------------------------------------------------------------- -- Internals -parses :: Lang -> Text -> [Some Dimension] -> [ResolvedToken]+parses :: Locale -> Text -> [Some Dimension] -> [ResolvedToken] parses l sentence targets = flip filter tokens $   \(Resolved {node = Node{token = (Token d _)}}) ->     case targets of       [] -> True       _ -> elem (This d) targets   where-    tokens = parseAndResolve rules sentence testContext {lang = l}+    tokens = parseAndResolve rules sentence testContext {locale = l}     rules = rulesFor l $ HashSet.fromList targets  debugContext :: Context -> Text -> [Some Dimension] -> IO [Entity]
Duckling/Dimensions.hs view
@@ -21,6 +21,7 @@ import Duckling.Dimensions.Types import qualified Duckling.Dimensions.Common as CommonDimensions import qualified Duckling.Dimensions.AR as ARDimensions+import qualified Duckling.Dimensions.BG as BGDimensions import qualified Duckling.Dimensions.CS as CSDimensions import qualified Duckling.Dimensions.DA as DADimensions import qualified Duckling.Dimensions.DE as DEDimensions@@ -31,9 +32,11 @@ import qualified Duckling.Dimensions.GA as GADimensions import qualified Duckling.Dimensions.HE as HEDimensions import qualified Duckling.Dimensions.HR as HRDimensions+import qualified Duckling.Dimensions.HU as HUDimensions import qualified Duckling.Dimensions.ID as IDDimensions import qualified Duckling.Dimensions.IT as ITDimensions import qualified Duckling.Dimensions.JA as JADimensions+import qualified Duckling.Dimensions.KA as KADimensions import qualified Duckling.Dimensions.KO as KODimensions import qualified Duckling.Dimensions.MY as MYDimensions import qualified Duckling.Dimensions.NB as NBDimensions@@ -47,7 +50,7 @@ import qualified Duckling.Dimensions.UK as UKDimensions import qualified Duckling.Dimensions.VI as VIDimensions import qualified Duckling.Dimensions.ZH as ZHDimensions-import Duckling.Lang+import Duckling.Locale  allDimensions :: Lang -> [Some Dimension] allDimensions lang = CommonDimensions.allDimensions ++ langDimensions lang@@ -78,6 +81,7 @@  langDimensions :: Lang -> [Some Dimension] langDimensions AR = ARDimensions.allDimensions+langDimensions BG = BGDimensions.allDimensions langDimensions CS = CSDimensions.allDimensions langDimensions DA = DADimensions.allDimensions langDimensions DE = DEDimensions.allDimensions@@ -88,9 +92,11 @@ langDimensions GA = GADimensions.allDimensions langDimensions HE = HEDimensions.allDimensions langDimensions HR = HRDimensions.allDimensions+langDimensions HU = HUDimensions.allDimensions langDimensions ID = IDDimensions.allDimensions langDimensions IT = ITDimensions.allDimensions langDimensions JA = JADimensions.allDimensions+langDimensions KA = KADimensions.allDimensions langDimensions KO = KODimensions.allDimensions langDimensions MY = MYDimensions.allDimensions langDimensions NB = NBDimensions.allDimensions
+ Duckling/Dimensions/BG.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.BG+  ( allDimensions+  ) where++import Duckling.Dimensions.Types++allDimensions :: [Some Dimension]+allDimensions =+  [ This Numeral+  ]
+ Duckling/Dimensions/HU.hs view
@@ -0,0 +1,21 @@+-- 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.HU+  ( allDimensions+  ) where++import Duckling.Dimensions.Types++allDimensions :: [Some Dimension]+allDimensions =+  [ This Duration+  , This Numeral+  , This Ordinal+  , This Time+  ]
+ Duckling/Dimensions/KA.hs view
@@ -0,0 +1,17 @@+-- 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.KA+  ( allDimensions+  ) where++import Duckling.Dimensions.Types++allDimensions :: [Some Dimension]+allDimensions =+  [ This Numeral ]
Duckling/Dimensions/NL.hs view
@@ -15,6 +15,7 @@ allDimensions :: [Some Dimension] allDimensions =   [ This Distance+  , This Duration   , This Numeral   , This Ordinal   , This Volume
Duckling/Distance/CS/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Distance.CS.Corpus-  ( corpus ) where+  ( corpus+  ) where  import Data.String import Prelude  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = CS}, allExamples)+corpus = (testContext {locale = makeLocale CS Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/ES/Corpus.hs view
@@ -9,18 +9,19 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Distance.ES.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/ES/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent dist> km"   , pattern =     [ dimension Distance-    , regex "k(il(\x00f3|o))?m?(etro)?s?"+    , regex "k(il(ó|o))?m?(etro)?s?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -51,7 +51,7 @@   { name = "<dist> centimeters"   , pattern =     [ dimension Distance-    , regex "(cm|cent(\x00ed|i)m(etros?))"+    , regex "(cm|cent(í|i)m(etros?))"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/FR/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/FR/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent dist> km"   , pattern =     [ dimension Distance-    , regex "k(ilo)?m?((e|\x00e9|\x00e8)tre)?s?"+    , regex "k(ilo)?m?((e|é|è)tre)?s?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -38,7 +38,7 @@   { name = "<dist> meters"   , pattern =     [ dimension Distance-    , regex "m((e|\x00e9|\x00e8)tres?)?"+    , regex "m((e|é|è)tres?)?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -51,7 +51,7 @@   { name = "<dist> centimeters"   , pattern =     [ dimension Distance-    , regex "cm|centim(e|\x00e9|\x00e8)tres?"+    , regex "cm|centim(e|é|è)tres?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/GA/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/GA/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<dist> meters"   , pattern =     [ dimension Distance-    , regex "mh?(e|\x00e9)adai?r"+    , regex "mh?(e|é)adai?r"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -38,7 +38,7 @@   { name = "<dist> centimeters"   , pattern =     [ dimension Distance-    , regex "(c\\.?m\\.?|g?ch?eintimh?(e|\x00e9)adai?r)"+    , regex "(c\\.?m\\.?|g?ch?eintimh?(e|é)adai?r)"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -51,7 +51,7 @@   { name = "<dist> miles"   , pattern =     [ dimension Distance-    , regex "mh?(\x00ed|i)lt?e"+    , regex "mh?(í|i)lt?e"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -64,7 +64,7 @@   { name = "<latent dist> km"   , pattern =     [ dimension Distance-    , regex "(k\\.?(m\\.?)?|g?ch?ilim(e|\x00e9)adai?r)"+    , regex "(k\\.?(m\\.?)?|g?ch?ilim(e|é)adai?r)"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -90,7 +90,7 @@   { name = "<latent dist> orlach"   , pattern =     [ dimension Distance-    , regex "(''|([nth]-?)?orl(ach|aigh|a(\x00ed|i)|\\.))"+    , regex "(''|([nth]-?)?orl(ach|aigh|a(í|i)|\\.))"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/HR/Corpus.hs view
@@ -14,12 +14,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/KO/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/KO/Rules.hs view
@@ -27,7 +27,7 @@   { name = "<latent dist> yard"   , pattern =     [ dimension Distance-    , regex "y(ar)?ds?|\xc57c\xb4dc"+    , regex "y(ar)?ds?|야드"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -40,7 +40,7 @@   { name = "<dist> centimeters"   , pattern =     [ dimension Distance-    , regex "cm|\xc13c(\xd2f0|\xce58)((\xbbf8|\xba54)\xd130)?"+    , regex "cm|센(티|치)((미|메)터)?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -53,9 +53,9 @@   { name = "<latent dist> feet and <latent dist> inch "   , pattern =     [ dimension Distance-    , regex "('|f(oo|ee)?ts?)|\xd53c\xd2b8"+    , regex "('|f(oo|ee)?ts?)|피트"     , dimension Distance-    , regex "(''|inch(es)?)|\xc778\xce58"+    , regex "(''|inch(es)?)|인치"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -68,7 +68,7 @@   { name = "<dist> meters"   , pattern =     [ dimension Distance-    , regex "m|(\xbbf8|\xba54|\xb9e4)\xd130"+    , regex "m|(미|메|매)터"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -81,7 +81,7 @@   { name = "<latent dist> feet"   , pattern =     [ dimension Distance-    , regex "('|f(oo|ee)?ts?)|\xd53c\xd2b8"+    , regex "('|f(oo|ee)?ts?)|피트"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -94,7 +94,7 @@   { name = "<latent dist> km"   , pattern =     [ dimension Distance-    , regex "km|(\xd0ac|\xd0a4)\xb85c((\xbbf8|\xba54)\xd130)?"+    , regex "km|(킬|키)로((미|메)터)?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -106,7 +106,7 @@ ruleHalf = Rule   { name = "half"   , pattern =-    [ regex "\xbc18"+    [ regex "반"     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData {TNumeral.value = v}:_) ->@@ -119,7 +119,7 @@   { name = "<dist> miles"   , pattern =     [ dimension Distance-    , regex "miles?|\xb9c8\xc77c(\xc988)?"+    , regex "miles?|마일(즈)?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -132,7 +132,7 @@   { name = "<latent dist> inch"   , pattern =     [ dimension Distance-    , regex "(''|inch(es)?)|\xc778\xce58"+    , regex "(''|inch(es)?)|인치"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/NL/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NL}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/PT/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/PT/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent dist> km"   , pattern =     [ dimension Distance-    , regex "k(il(\x00f3|o))?m?(etro)?s?"+    , regex "k(il(ó|o))?m?(etro)?s?"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->@@ -51,7 +51,7 @@   { name = "<dist> centimeters"   , pattern =     [ dimension Distance-    , regex "(cm|cent(\x00ed|i)m(etros?))"+    , regex "(cm|cent(í|i)m(etros?))"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/RO/Corpus.hs view
@@ -15,12 +15,12 @@ import Data.String  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Distance/RO/Rules.hs view
@@ -103,7 +103,7 @@   { name = "<dist> miles"   , pattern =     [ dimension Distance-    , regex "mil(e|a|\x0103)"+    , regex "mil(e|a|ă)"     ]   , prod = \tokens -> case tokens of       (Token Distance dd:_) ->
Duckling/Distance/TR/Corpus.hs view
@@ -15,12 +15,12 @@ import Prelude  import Duckling.Distance.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = TR}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/DA/Rules.hs view
@@ -30,7 +30,7 @@ ruleExactlyDuration = Rule   { name = "exactly <duration>"   , pattern =-    [ regex "pr(\x00e6)cis"+    [ regex "pr(æ)cis"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/DE/Rules.hs view
@@ -104,7 +104,7 @@ ruleAboutDuration = Rule   { name = "about <duration>"   , pattern =-    [ regex "ungef\x00e4hr|zirka"+    [ regex "ungefähr|zirka"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/FR/Corpus.hs view
@@ -17,16 +17,16 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {lang = FR}, examples)+negativeCorpus = (testContext {locale = makeLocale FR Nothing}, examples)   where     examples =       [ "les jours"
Duckling/Duration/GA/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/GA/Rules.hs view
@@ -26,7 +26,7 @@ ruleCoics = Rule   { name = "coicís"   , pattern =-    [ regex "coic(\x00ed|i)s(\x00ed|i|e)?"+    [ regex "coic(í|i)s(í|i|e)?"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Day 14   }
Duckling/Duration/HE/Rules.hs view
@@ -33,7 +33,7 @@ ruleQuarterOfAnHour = Rule   { name = "quarter of an hour"   , pattern =-    [ regex "(1/4/s \x05e9\x05e2\x05d4|\x05e8\x05d1\x05e2 \x05e9\x05e2\x05d4)"+    [ regex "(1/4/s שעה|רבע שעה)"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 15   }@@ -42,7 +42,7 @@ ruleHalfAnHour = Rule   { name = "half an hour"   , pattern =-    [ regex "(1/2/s \x05e9\x05e2\x05d4|\x05d7\x05e6\x05d9 \x05e9\x05e2\x05d4)"+    [ regex "(1/2/s שעה|חצי שעה)"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 30   }@@ -51,7 +51,7 @@ ruleThreequartersOfAnHour = Rule   { name = "three-quarters of an hour"   , pattern =-    [ regex "(3/4/s \x05e9\x05e2\x05d4|\x05e9\x05dc\x05d5\x05e9\x05ea \x05e8\x05d1\x05e2\x05d9 \x05e9\x05e2\x05d4)"+    [ regex "(3/4/s שעה|שלושת רבעי שעה)"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 45   }@@ -61,7 +61,7 @@   { name = "number.number hours"   , pattern =     [ regex "(\\d+)\\.(\\d+)"-    , regex "\x05e9\x05e2\x05d4|\x05e9\x05e2\x05d5\x05ea"+    , regex "שעה|שעות"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (h:m:_)):_) -> do@@ -77,7 +77,7 @@   { name = "<integer> and an half hours"   , pattern =     [ Predicate isNatural-    , regex "\x05d5\x05d7\x05e6\x05d9 (\x05e9\x05e2\x05d5\x05ea|\x05e9\x05e2\x05d4)"+    , regex "וחצי (שעות|שעה)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) ->@@ -89,7 +89,7 @@ ruleAboutDuration = Rule   { name = "about <duration>"   , pattern =-    [ regex "(\x05d1\x05e2\x05e8\x05da|\x05e1\x05d1\x05d9\x05d1\x05d5\x05ea|\x05d1\x05e7\x05d9\x05e8\x05d5\x05d1)"+    [ regex "(בערך|סביבות|בקירוב)"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -101,7 +101,7 @@ ruleExactlyDuration = Rule   { name = "exactly <duration>"   , pattern =-    [ regex "\x05d1\x05d3\x05d9\x05d5\x05e7"+    [ regex "בדיוק"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/HR/Rules.hs view
@@ -33,7 +33,7 @@ ruleExactlyDuration = Rule   { name = "exactly <duration>"   , pattern =-    [ regex "to(c|\x010d)no"+    [ regex "to(c|č)no"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -59,7 +59,7 @@   { name = "<integer> more <unit-of-duration>"   , pattern =     [ Predicate isNatural-    , regex "vi(s|\x0161)e|manje"+    , regex "vi(s|š)e|manje"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -74,7 +74,7 @@ ruleQuarterOfAnHour = Rule   { name = "quarter of an hour"   , pattern =-    [ regex "((1/4|frtalj|kvarat|(c|\x010d)etvrt)\\s?(h|sata)?)"+    [ regex "((1/4|frtalj|kvarat|(c|č)etvrt)\\s?(h|sata)?)"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 15   }@@ -111,7 +111,7 @@ ruleThreequartersOfAnHour = Rule   { name = "three-quarters of an hour"   , pattern =-    [ regex "((3/4|tri-?frtalja|tri-?kvarat|tri-?(c|\x010d)etvrt(ine)?)\\s?(h|sata)?)"+    [ regex "((3/4|tri-?frtalja|tri-?kvarat|tri-?(c|č)etvrt(ine)?)\\s?(h|sata)?)"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 45   }
+ Duckling/Duration/HU/Corpus.hs view
@@ -0,0 +1,74 @@+-- 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.HU.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 HU Nothing}, allExamples)+++allExamples :: [Example]+allExamples = concat+  [ examples (DurationData 1 Second)+             [ "egy másodperc"+             , "1 másodperc"+             ]+  , examples (DurationData 2 Minute)+             [ "2 perc"+             , "kettő perc"+             ]+  , examples (DurationData 15 Minute)+             [ "negyed óra"+             , "negyedóra"+             , "negyed-óra"+             ]+  , examples (DurationData 30 Minute)+             [ "fél óra"+             , "félóra"+             , "fél-óra"+             ]+  , examples (DurationData 45 Minute)+             [ "háromnegyed óra"+             , "háromnegyed-óra"+             , "háromnegyedóra"+             , "3/4 óra"+             , "3/4óra"+             ]+  , examples (DurationData 150 Minute)+             [ "2.5 óra"+             , "kettő és fél óra"+             , "kettő és fél-óra"+             , "kettő és félóra"+             ]+  , examples (DurationData 30 Day)+             [ "30 nap"+             ]+  , examples (DurationData 7 Week)+             [ "hét hét"+             ]+  , examples (DurationData 1 Month)+             [ "egy hónap"+             ]+  , examples (DurationData 3 Quarter)+             [ "3 negyedév"+             ]+  , examples (DurationData 2 Year)+             [ "2 év"+             ]+  ]
+ Duckling/Duration/HU/Rules.hs view
@@ -0,0 +1,91 @@+-- 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.Duration.HU.Rules+  ( rules ) where++import Control.Monad (join)+import Data.String+import Prelude+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Duration.Helpers+import Duckling.Numeral.Helpers (parseInt, parseInteger)+import Duckling.Numeral.Types (NumeralData(..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.TimeGrain.Types as TG++ruleDurationQuarterOfAnHour :: Rule+ruleDurationQuarterOfAnHour = Rule+  { name = "quarter of an hour"+  , pattern =+    [ regex "(negyed[\\s-]?\x00F3ra)"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 15+  }++ruleDurationHalfAnHour :: Rule+ruleDurationHalfAnHour = Rule+  { name = "half an hour"+  , pattern =+    [ regex "(f\x00E9l[\\s-]?\x00F3ra)"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 30+  }++ruleDurationThreeQuartersOfAnHour :: Rule+ruleDurationThreeQuartersOfAnHour = Rule+  { name = "three-quarters of an hour"+  , pattern =+    [ regex "(3/4[\\s-]?óra|h\x00E1romnegyed[\\s-]?\x00F3ra)"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 45+  }++ruleDurationDotNumeralHours :: Rule+ruleDurationDotNumeralHours = Rule+  { name = "number.number hours"+  , pattern =+    [ regex "(\\d+)\\.(\\d+) óra"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (h:m:_)):_) -> do+        hh <- parseInteger h+        mnum <- parseInteger m+        let mden = 10 ^ Text.length m+        Just . Token Duration $ minutesFromHourMixedFraction hh mnum mden+      _ -> Nothing+  }++ruleDurationAndHalfHour :: Rule+ruleDurationAndHalfHour = Rule+  { name = "<integer> and an half hour"+  , pattern =+    [ Predicate isNatural+    , regex "\x00E9s f\x00E9l[\\s-]?\x00F3ra"+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral (NumeralData {TNumeral.value = v}):_) ->+        Just . Token Duration . duration TG.Minute $ 30 + 60 * floor v+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleDurationQuarterOfAnHour+  , ruleDurationHalfAnHour+  , ruleDurationThreeQuartersOfAnHour+  , ruleDurationDotNumeralHours+  , ruleDurationAndHalfHour+  ]
Duckling/Duration/JA/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = JA}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/KO/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/KO/Rules.hs view
@@ -31,7 +31,7 @@   { name = "half an hour"   , pattern =     [ Predicate $ isGrain TG.Hour-    , regex "\xbc18"+    , regex "반"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 30   }@@ -40,7 +40,7 @@ ruleADay = Rule   { name = "a day - 하루"   , pattern =-    [ regex "\xd558\xb8e8"+    [ regex "하루"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Day 1   }@@ -50,7 +50,7 @@   { name = "number.number hours"   , pattern =     [ regex "(\\d+)\\.(\\d+)"-    , regex "\xc2dc\xac04"+    , regex "시간"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (h:m:_)):_) -> do@@ -66,7 +66,7 @@   { name = "<integer> and an half hours"   , pattern =     [ Predicate isNatural-    , regex "\xc2dc\xac04\xbc18"+    , regex "시간반"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) ->@@ -78,7 +78,7 @@ ruleAboutDuration = Rule   { name = "about <duration>"   , pattern =-    [ regex "\xb300\xcda9|\xc57d"+    [ regex "대충|약"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -90,7 +90,7 @@ ruleExactlyDuration = Rule   { name = "exactly <duration>"   , pattern =-    [ regex "\xc815\xd655\xd788"+    [ regex "정확히"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/NB/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = NB}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
+ Duckling/Duration/NL/Corpus.hs view
@@ -0,0 +1,83 @@+-- 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.NL.Corpus+  ( corpus+  , negativeCorpus+  ) where++import Prelude+import Data.String++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 NL Nothing}, allExamples)++negativeCorpus :: NegativeCorpus+negativeCorpus = (testContext {locale = makeLocale NL Nothing}, examples)+  where+    examples =+      [ "voor maanden"+      , "in enkele dagen"+      , "secretaris"+      , "last minute"+      , "12 uurtje"+      ]++allExamples :: [Example]+allExamples = concat+  [ examples (DurationData 1 Second)+             [ "een seconde"+             , "één seconde"+             , "1 secondes"+             , "1 s"+             , "1\""+             ]+  , examples (DurationData 14 Second)+             [ "veertien seconden"+             , "14 s"+             ]+  , examples (DurationData 2 Minute)+             [ "2 min"+             , "twee minuten"+             , "2 m"+             , "2'"+             ]+  , examples (DurationData 30 Day)+             [ "30 dagen"+             ]+  , examples (DurationData 7 Week)+             [ "zeven weken"+             , "7 w"+             ]+  , examples (DurationData 1 Month)+             [ "1 mnd"+             , "een maand"+             , "één maand"+             ]+  , examples (DurationData 3 Quarter)+             [ "drie kwartier"+             ]+  , examples (DurationData 2 Year)+             [ "2 jaar"+             , "2 jaren"+             , "twee jaren"+             , "2 j"+             ]+   , examples (DurationData 150 Minute)+              [ "twee en een half uur"+              , "2,5 uur"+              ]+  ]
+ Duckling/Duration/NL/Rules.hs view
@@ -0,0 +1,114 @@+-- 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.Duration.NL.Rules+  ( rules ) where++import Control.Monad (join)+import Prelude+import Data.String+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Duration.Helpers+import Duckling.Numeral.Helpers (parseInt, parseInteger)+import Duckling.Numeral.Types (NumeralData(..))+import Duckling.Regex.Types+import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.TimeGrain.Types as TG++ruleDurationQuarterOfAnHour :: Rule+ruleDurationQuarterOfAnHour = Rule+  { name = "quarter of an hour"+  , pattern = [ regex "1/4\\s?uur"]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 15+  }++ruleDurationHalfAnHour :: Rule+ruleDurationHalfAnHour = Rule+  { name = "half an hour"+  , pattern = [regex "(1/2\\s?uur|half uur)"]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 30+  }++ruleDurationThreeQuartersOfAnHour :: Rule+ruleDurationThreeQuartersOfAnHour = Rule+  { name = "three-quarters of an hour"+  , pattern = [regex "3/4\\s?uur"]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 45+  }++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 TG.Minute $ floor v+         "\"" -> Just . Token Duration . duration TG.Second $ floor v+         _    -> Nothing+      _ -> Nothing+  }++ruleDurationDotNumeralHours :: Rule+ruleDurationDotNumeralHours = Rule+  { name = "number,number uur"+  , pattern = [regex "(\\d+)\\,(\\d+) *(uur|uren)"]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (h:m:_)):_) -> do+        hh <- parseInteger h+        mnum <- parseInteger m+        let mden = 10 ^ Text.length m+        Just . Token Duration $ minutesFromHourMixedFraction hh mnum mden+      _ -> Nothing+  }++ruleDurationAndHalfHour :: Rule+ruleDurationAndHalfHour = Rule+  { name = "<integer> and an half hour"+  , pattern =+    [ Predicate isNatural+    , regex "en een half (uur|uren)"+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral (NumeralData {TNumeral.value = v}):_) ->+        Just . Token Duration . duration TG.Minute $ 30 + 60 * floor v+      _ -> Nothing+  }++ruleDurationPrecision :: Rule+ruleDurationPrecision = Rule+  { name = "about|exactly <duration>"+  , pattern =+    [ regex "(ongeveer|precies|plusminus|exact)"+    , dimension Duration+    ]+    , prod = \tokens -> case tokens of+        (_:token:_) -> Just token+        _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleDurationQuarterOfAnHour+  , ruleDurationHalfAnHour+  , ruleDurationThreeQuartersOfAnHour+  , ruleDurationDotNumeralHours+  , ruleDurationAndHalfHour+  , ruleDurationPrecision+  , ruleNumeralQuotes+  ]
Duckling/Duration/PL/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = PL}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/PL/Rules.hs view
@@ -30,7 +30,7 @@ ruleHalfAnHour = Rule   { name = "half an hour"   , pattern =-    [ regex "p(o|\x00f3)(l|\x0142) godziny"+    [ regex "p(o|ó)(l|ł) godziny"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 30   }@@ -72,7 +72,7 @@   { name = "<integer> and an half hours"   , pattern =     [ Predicate isNatural-    , regex "i (p(o|\x00f3)(l|\x0142)) godziny"+    , regex "i (p(o|ó)(l|ł)) godziny"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) ->@@ -96,7 +96,7 @@ ruleAboutDuration = Rule   { name = "about <duration>"   , pattern =-    [ regex "(oko(l|\x0142)o|miej wi(\x0119|e)cej|jakie(s|\x015b))"+    [ regex "(oko(l|ł)o|miej wi(ę|e)cej|jakie(s|ś))"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -108,7 +108,7 @@ ruleExactlyDuration = Rule   { name = "exactly <duration>"   , pattern =-    [ regex "r(o|\x00f3)wno|dok(l|\x0142)adnie"+    [ regex "r(o|ó)wno|dok(l|ł)adnie"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/PT/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/RO/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/RO/Rules.hs view
@@ -24,7 +24,7 @@ ruleQuarterOfAnHour = Rule   { name = "quarter of an hour"   , pattern =-    [ regex "(1/4\\s?(h|or(a|\x0103))|sfert de or(a|\x0103))"+    [ regex "(1/4\\s?(h|or(a|ă))|sfert de or(a|ă))"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 15   }@@ -33,7 +33,7 @@ ruleJumatateDeOra = Rule   { name = "jumatate de ora"   , pattern =-    [ regex "(1/2\\s?(h|or(a|\x0103))|jum(a|\x0103)tate (de )?or(a|\x0103))"+    [ regex "(1/2\\s?(h|or(a|ă))|jum(a|ă)tate (de )?or(a|ă))"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 30   }@@ -42,7 +42,7 @@ ruleTreiSferturiDeOra = Rule   { name = "trei sferturi de ora"   , pattern =-    [ regex "(3/4\\s?(h|or(a|\x0103))|trei sferturi de or(a|\x0103))"+    [ regex "(3/4\\s?(h|or(a|ă))|trei sferturi de or(a|ă))"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 45   }@@ -63,7 +63,7 @@ ruleExactInJurDeDuration = Rule   { name = "exact|in jur de <duration>"   , pattern =-    [ regex "(exact|aproximativ|(i|\x00ee)n jur de)"+    [ regex "(exact|aproximativ|(i|î)n jur de)"     , dimension Duration     ]   , prod = \tokens -> case tokens of
Duckling/Duration/SV/Corpus.hs view
@@ -16,13 +16,13 @@ import Data.String  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain(..))  corpus :: Corpus-corpus = (testContext {lang = SV}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/TR/Corpus.hs view
@@ -16,13 +16,13 @@ import Prelude  import Duckling.Duration.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.TimeGrain.Types (Grain (..))  corpus :: Corpus-corpus = (testContext {lang = TR}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Duration/TR/Rules.hs view
@@ -30,7 +30,7 @@ ruleDurationQuarterOfAnHour :: Rule ruleDurationQuarterOfAnHour = Rule   { name = "quarter of an hour"-  , pattern = [ regex "(1/4\\s?sa(at)?|\x00e7eyrek saat)" ]+  , pattern = [ regex "(1/4\\s?sa(at)?|çeyrek saat)" ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 15   } @@ -44,7 +44,7 @@ ruleDurationThreeQuartersOfAnHour :: Rule ruleDurationThreeQuartersOfAnHour = Rule   { name = "three-quarters of an hour"-  , pattern = [regex "(3/4\\s?sa(at)?|\x00fc\x00e7e \231eyrek sa(at)?)"]+  , pattern = [regex "(3/4\\s?sa(at)?|üçe \231eyrek sa(at)?)"]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 45   } @@ -90,7 +90,7 @@   { name = "<integer> and an half hour"   , pattern =     [ Predicate isNatural-    , regex "bu\x00e7euk sa(at)?"+    , regex "buçeuk sa(at)?"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) ->@@ -103,7 +103,7 @@ ruleDurationPrecision = Rule   { name = "<duration> about|exactly"   , pattern =-    [ regex "(gibi|civar\305nda|yakla\x015f\305k|tam( olarak)?)"+    [ regex "(gibi|civar\305nda|yaklaş\305k|tam( olarak)?)"     , dimension Duration     ]     , prod = \tokens -> case tokens of
Duckling/Duration/ZH/Corpus.hs view
@@ -12,15 +12,17 @@   ( corpus   ) where -import Prelude 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, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Email/Corpus.hs view
@@ -13,8 +13,8 @@   , negativeCorpus   ) where -import Prelude import Data.String+import Prelude  import Duckling.Email.Types import Duckling.Testing.Types
Duckling/Email/EN/Corpus.hs view
@@ -10,6 +10,7 @@  module Duckling.Email.EN.Corpus   ( corpus+  , negativeCorpus   ) where  import Data.String@@ -17,6 +18,15 @@  import Duckling.Email.Types import Duckling.Testing.Types++negativeCorpus :: NegativeCorpus+negativeCorpus = (testContext, examples)+  where+    examples =+      [ "fitness at 6.40"+      , "class at 12.00"+      , "tonight at 9.15"+      ]  corpus :: Corpus corpus = (testContext, allExamples)
Duckling/Email/EN/Rules.hs view
@@ -13,20 +13,20 @@   ( rules ) where  import Data.String-import qualified Data.Text as Text import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Email.Types (EmailData (..))-import qualified Duckling.Email.Types as TEmail import Duckling.Regex.Types import Duckling.Types+import qualified Duckling.Email.Types as TEmail  ruleEmailSpelledOut :: Rule ruleEmailSpelledOut = Rule   { name = "email spelled out"   , pattern =-    [ regex "([\\w\\._+-]+) at ([\\w_-]+(\\.[\\w_-]+)+)"+    [ regex "([\\w\\._+-]+) at ([\\w_-]+(\\.[a-zA-Z]+)+)"     ]   , prod = \xs -> case xs of       (Token RegexMatch (GroupMatch (m1:m2:_)):_) ->
Duckling/Email/FR/Corpus.hs view
@@ -16,12 +16,12 @@ import Prelude  import Duckling.Email.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Email/IT/Corpus.hs view
@@ -16,12 +16,12 @@ import Prelude  import Duckling.Email.Types-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = IT}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Engine.hs view
@@ -20,25 +20,25 @@ import Control.DeepSeq import Control.Monad.Extra import Data.Aeson-import qualified Data.Array as Array import Data.ByteString (ByteString) import Data.Functor.Identity-import qualified Data.Foldable as Foldable import Data.Maybe import Data.Text (Text)-import qualified Data.List as L import Prelude+import qualified Data.Array as Array+import qualified Data.Foldable as Foldable+import qualified Data.List as L import qualified Text.Regex.PCRE as PCRE  import Duckling.Dimensions.Types-import qualified Duckling.Engine.Regex as Regex import Duckling.Regex.Types import Duckling.Resolve import Duckling.Types-import qualified Duckling.Types.Document as Document import Duckling.Types.Document (Document)-import qualified Duckling.Types.Stash as Stash import Duckling.Types.Stash (Stash)+import qualified Duckling.Engine.Regex as Regex+import qualified Duckling.Types.Document as Document+import qualified Duckling.Types.Stash as Stash  -- ----------------------------------------------------------------- -- Engine
− Duckling/Lang.hs
@@ -1,55 +0,0 @@--- 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 NoRebindableSyntax #-}--module Duckling.Lang-  ( Lang(..)-  ) where--import Prelude--import Data.Hashable-import GHC.Generics-import TextShow (TextShow)-import qualified TextShow as TS--data Lang-  = AR-  | CS-  | DA-  | DE-  | EN-  | ES-  | ET-  | FR-  | GA-  | HE-  | HR-  | ID-  | IT-  | JA-  | KO-  | MY-  | NB-  | NL-  | PL-  | PT-  | RO-  | RU-  | SV-  | TR-  | UK-  | VI-  | ZH-  deriving (Bounded, Enum, Eq, Generic, Hashable, Ord, Read, Show)--instance TextShow Lang where-  showb = TS.fromString . show
+ Duckling/Locale.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 DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoRebindableSyntax #-}++module Duckling.Locale+  ( Lang(..)+  , Locale(..)+  , Region(..)+  , allLocales+  , makeLocale+  ) where++import Data.Hashable+import Data.HashMap.Strict (HashMap)+import Data.HashSet (HashSet)+import GHC.Generics+import Prelude+import TextShow (TextShow)+import qualified Data.HashMap.Strict as HashMap+import qualified Data.HashSet as HashSet+import qualified TextShow as TS++-- | ISO 639-1 Language.+-- See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes+data Lang+  = AR+  | BG+  | CS+  | DA+  | DE+  | EN+  | ES+  | ET+  | FR+  | GA+  | HE+  | HR+  | HU+  | ID+  | IT+  | JA+  | KA+  | KO+  | MY+  | NB+  | NL+  | PL+  | PT+  | RO+  | RU+  | SV+  | TR+  | UK+  | VI+  | ZH+  deriving (Bounded, Enum, Eq, Generic, Hashable, Ord, Read, Show)++instance TextShow Lang where+  showb = TS.fromString . show++-- | ISO 3166-1 alpha-2 Country code (includes regions and territories).+-- See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2+data Region+  = CA+  | CN+  | GB+  | HK+  | MO+  | TW+  | US+  deriving (Bounded, Enum, Eq, Generic, Hashable, Ord, Read, Show)++instance TextShow Region where+  showb = TS.fromString . show++data Locale = Locale Lang (Maybe Region)+  deriving (Eq, Generic, Hashable, Ord)++instance Show Locale where+  show (Locale lang Nothing) = show lang ++ "_XX"+  show (Locale lang (Just region)) = show lang ++ "_" ++ show region++instance TextShow Locale where+  showb = TS.fromString . show++makeLocale :: Lang -> Maybe Region -> Locale+makeLocale lang Nothing = Locale lang Nothing+makeLocale lang (Just region)+  | HashSet.member region locales = Locale lang $ Just region+  | otherwise = Locale lang Nothing+  where+    locales = HashMap.lookupDefault HashSet.empty lang allLocales++allLocales :: HashMap Lang (HashSet Region)+allLocales = HashMap.fromList+  [ (EN, HashSet.fromList [CA, GB, US])+  , (ZH, HashSet.fromList [CN, HK, MO, TW])+  ]
Duckling/Numeral/AR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = AR}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/AR/Rules.hs view
@@ -28,7 +28,7 @@ ruleInteger5 = Rule   { name = "integer 4"   , pattern =-    [ regex "(\x0623\x0631\x0628\x0639(\x0629)?)"+    [ regex "(أربع(ة)?)"     ]   , prod = \_ -> integer 4   }@@ -38,7 +38,7 @@   { name = "integer 101..999"   , pattern =     [ oneOf [100, 200 .. 900]-    , regex "\x0648"+    , regex "و"     , numberBetween 1 100     ]   , prod = \tokens -> case tokens of@@ -53,7 +53,7 @@ ruleInteger18 = Rule   { name = "integer 12"   , pattern =-    [ regex "(\x0625\x062b\x0646(\x062a)?\x0649 \x0639\x0634\x0631)"+    [ regex "(إثن(ت)?ى عشر)"     ]   , prod = \_ -> integer 12   }@@ -75,18 +75,18 @@ ruleInteger19 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(\x0639\x0634\x0631\x0648\x0646|\x062b\x0644\x0627\x062b\x0648\x0646|\x0623\x0631\x0628\x0639\x0648\x0646|\x062e\x0645\x0633\x0648\x0646|\x0633\x062a\x0648\x0646|\x0633\x0628\x0639\x0648\x0646|\x062b\x0645\x0627\x0646\x0648\x0646|\x062a\x0633\x0639\x0648\x0646)"+    [ regex "(عشرون|ثلاثون|أربعون|خمسون|ستون|سبعون|ثمانون|تسعون)"     ]   , prod = \tokens -> case tokens of       Token RegexMatch (GroupMatch (match:_)):_ -> case match of-        "\x0639\x0634\x0631\x0648\x0646" -> integer 20-        "\x062b\x0644\x0627\x062b\x0648\x0646" -> integer 30-        "\x0623\x0631\x0628\x0639\x0648\x0646" -> integer 40-        "\x062e\x0645\x0633\x0648\x0646" -> integer 50-        "\x0633\x062a\x0648\x0646" -> integer 60-        "\x0633\x0628\x0639\x0648\x0646" -> integer 70-        "\x062b\x0645\x0627\x0646\x0648\x0646" -> integer 80-        "\x062a\x0633\x0639\x0648\x0646" -> integer 90+        "عشرون" -> integer 20+        "ثلاثون" -> integer 30+        "أربعون" -> integer 40+        "خمسون" -> integer 50+        "ستون" -> integer 60+        "سبعون" -> integer 70+        "ثمانون" -> integer 80+        "تسعون" -> integer 90         _ -> Nothing       _ -> Nothing   }@@ -96,7 +96,7 @@   { name = "integer 21..99"   , pattern =     [ numberBetween 1 10-    , regex "\x0648"+    , regex "و"     , oneOf [20, 30 .. 90]     ]   , prod = \tokens -> case tokens of@@ -147,7 +147,7 @@ ruleInteger15 = Rule   { name = "integer 11"   , pattern =-    [ regex "(\x0625\x062d\x062f\x0649 \x0639\x0634\x0631(\x0629)?)"+    [ regex "(إحدى عشر(ة)?)"     ]   , prod = \_ -> integer 11   }@@ -168,21 +168,21 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(\x0645\x0627\x0626\x0629|\x0645\x0626\x0627\x062a|\x0623\x0644\x0641|\x0627\x0644\x0641|\x0622\x0644\x0627\x0641|\x0645\x0644\x0627\x064a\x064a(\x0646)?)"+    [ regex "(مائة|مئات|ألف|الف|آلاف|ملايي(ن)?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "\x0645\x0627\x0626\x0629" ->+        "مائة" ->           double 1e2 >>= withGrain 2 >>= withMultipliable-        "\x0645\x0626\x0627\x062a" ->+        "مئات" ->           double 1e2 >>= withGrain 2 >>= withMultipliable-        "\x0623\x0644\x0641" -> double 1e3 >>= withGrain 3 >>= withMultipliable-        "\x0627\x0644\x0641" -> double 1e3 >>= withGrain 3 >>= withMultipliable-        "\x0622\x0644\x0627\x0641" ->+        "ألف" -> double 1e3 >>= withGrain 3 >>= withMultipliable+        "الف" -> double 1e3 >>= withGrain 3 >>= withMultipliable+        "آلاف" ->           double 1e3 >>= withGrain 3 >>= withMultipliable-        "\x0645\x0644\x0627\x064a\x064a" ->+        "ملايي" ->           double 1e6 >>= withGrain 6 >>= withMultipliable-        "\x0645\x0644\x0627\x064a\x064a\x0646" ->+        "ملايين" ->           double 1e6 >>= withGrain 6 >>= withMultipliable         _ -> Nothing       _ -> Nothing@@ -192,7 +192,7 @@ ruleInteger3 = Rule   { name = "integer 2"   , pattern =-    [ regex "(\x0627\x062b\x0646\x0627\x0646|\x0627\x062b\x0646\x064a\x0646)"+    [ regex "(اثنان|اثنين)"     ]   , prod = \_ -> integer 2   }@@ -201,7 +201,7 @@ ruleInteger13 = Rule   { name = "integer 9"   , pattern =-    [ regex "(\x062a\x0633\x0639\x0629|\x062a\x0633\x0639)"+    [ regex "(تسعة|تسع)"     ]   , prod = \_ -> integer 9   }@@ -210,7 +210,7 @@ ruleInteger12 = Rule   { name = "integer 8"   , pattern =-    [ regex "(\x062b\x0645\x0627\x0646\x064a\x0629|\x062b\x0645\x0627\x0646)"+    [ regex "(ثمانية|ثمان)"     ]   , prod = \_ -> integer 8   }@@ -232,7 +232,7 @@ ruleInteger7 = Rule   { name = "integer 5"   , pattern =-    [ regex "(\x062e\x0645\x0633)(\x0629)?"+    [ regex "(خمس)(ة)?"     ]   , prod = \_ -> integer 5   }@@ -241,7 +241,7 @@ ruleInteger14 = Rule   { name = "integer 10"   , pattern =-    [ regex "(\x0639\x0634\x0631\x0629|\x0639\x0634\x0631)"+    [ regex "(عشرة|عشر)"     ]   , prod = \_ -> integer 10   }@@ -250,7 +250,7 @@ ruleInteger9 = Rule   { name = "integer 6"   , pattern =-    [ regex "(\x0633\x062a(\x0629)?)"+    [ regex "(ست(ة)?)"     ]   , prod = \_ -> integer 6   }@@ -259,7 +259,7 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "(\x0635\x0641\x0631)"+    [ regex "(صفر)"     ]   , prod = \_ -> integer 0   }@@ -268,7 +268,7 @@ ruleInteger4 = Rule   { name = "integer 3"   , pattern =-    [ regex "(\x062b\x0644\x0627\x062b|\x062b\x0644\x0627\x062b\x0629)"+    [ regex "(ثلاث|ثلاثة)"     ]   , prod = \_ -> integer 3   }@@ -277,7 +277,7 @@ ruleInteger2 = Rule   { name = "integer 1"   , pattern =-    [ regex "(\x0648\x0627\x062d\x062f\x0629|\x0648\x0627\x062d\x062f\x0647|\x0648\x0627\x062d\x062f)"+    [ regex "(واحدة|واحده|واحد)"     ]   , prod = \_ -> integer 1   }@@ -286,7 +286,7 @@ ruleInteger11 = Rule   { name = "integer 7"   , pattern =-    [ regex "(\x0633\x0628\x0639\x0629|\x0633\x0628\x0639)"+    [ regex "(سبعة|سبع)"     ]   , prod = \_ -> integer 7   }@@ -295,19 +295,19 @@ ruleInteger20 = Rule   { name = "integer (100..900)"   , pattern =-    [ regex "(\x0645\x0627\x0626\x0629|\x0645\x0627\x0626\x062a\x0627\x0646|\x062b\x0644\x0627\x062b\x0645\x0627\x0626\x0629|\x0623\x0631\x0628\x0639\x0645\x0627\x0626\x0629|\x062e\x0645\x0633\x0645\x0627\x0626\x0629|\x0633\x062a\x0645\x0627\x0626\x0629|\x0633\x0628\x0639\x0645\x0627\x0626\x0629|\x062b\x0645\x0627\x0646\x0645\x0627\x0626\x0629|\x062a\x0633\x0639\x0645\x0627\x0626\x0629)"+    [ regex "(مائة|مائتان|ثلاثمائة|أربعمائة|خمسمائة|ستمائة|سبعمائة|ثمانمائة|تسعمائة)"     ]   , prod = \tokens -> case tokens of       Token RegexMatch (GroupMatch (match:_)):_ -> case match of-        "\x0645\x0627\x0626\x0629" -> integer 100-        "\x0633\x0628\x0639\x0645\x0627\x0626\x0629" -> integer 700-        "\x062e\x0645\x0633\x0645\x0627\x0626\x0629" -> integer 500-        "\x0623\x0631\x0628\x0639\x0645\x0627\x0626\x0629" -> integer 400-        "\x0633\x062a\x0645\x0627\x0626\x0629" -> integer 600-        "\x0645\x0627\x0626\x062a\x0627\x0646" -> integer 200-        "\x062b\x0644\x0627\x062b\x0645\x0627\x0626\x0629" -> integer 300-        "\x062b\x0645\x0627\x0646\x0645\x0627\x0626\x0629" -> integer 800-        "\x062a\x0633\x0639\x0645\x0627\x0626\x0629" -> integer 900+        "مائة" -> integer 100+        "سبعمائة" -> integer 700+        "خمسمائة" -> integer 500+        "أربعمائة" -> integer 400+        "ستمائة" -> integer 600+        "مائتان" -> integer 200+        "ثلاثمائة" -> integer 300+        "ثمانمائة" -> integer 800+        "تسعمائة" -> integer 900         _ -> Nothing       _ -> Nothing   }@@ -317,7 +317,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "\x0641\x0627\x0635\x0644\x0629"+    , regex "فاصلة"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
+ Duckling/Numeral/BG/Corpus.hs view
@@ -0,0 +1,127 @@+-- 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.BG.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 BG Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (NumeralValue 0)+             [ "0"+             , "нула"+             ]+  , examples (NumeralValue 1)+             [ "1"+             , "един"+             , "една"+             , "едно"+             ]+  , examples (NumeralValue 2)+             [ "2"+             , "02"+             , "две"+             , "два"+             ]+  , examples (NumeralValue 3)+             [ "3"+             , "03"+             , "три"+             ]+  , examples (NumeralValue 4)+             [ "4"+             , "04"+             , "четири"+             ]+  , examples (NumeralValue 5)+             [ "5"+             , "05"+             , "пет"+             ]+  , examples (NumeralValue 33)+             [ "33"+             , "0033"+             , "тридесет и три"+             ]+  , examples (NumeralValue 14)+             [ "14"+             , "четиринадесет"+             , "четиринайсет"+             ]+  , examples (NumeralValue 15)+             [ "15"+             , "петнадесет"+             , "петнайсет"+             ]+  , examples (NumeralValue 16)+             [ "16"+             , "шестнадесет"+             , "шестнайсет"+             ]+  , examples (NumeralValue 17)+             [ "17"+             , "седемнадесет"+             , "седемнайсет"+             ]+  , examples (NumeralValue 18)+             [ "18"+             , "осемнадесет"+             , "осемнайсет"+             ]+  , examples (NumeralValue 525)+             [ "525"+             , "петстотин двадесет и пет"+             ]+  , examples (NumeralValue 1.1)+             [ "1.1"+             , "1.10"+             , "01.10"+             , "1 цяло и 1"+             , "едно цяло и едно"+             ]+  , examples (NumeralValue 0.77)+             [ "0.77"+             , ".77"+             ]+  , examples (NumeralValue 100000)+             [ "100000"+             , "100к"+             , "100К"+             ]+  , examples (NumeralValue 3000000)+             [ "3М"+             , "3000К"+             , "3000000"+             , "3,000,000"+             ]+  , examples (NumeralValue 1200000)+             [ "1200000"+             , "1.2М"+             , "1200К"+             , ".0012Г"+             ]+  , examples (NumeralValue (-1200000))+             [ "-1200000"+             , "минус 1200000"+             , "-1.2М"+             , "-1200К"+             , "-.0012Г"+             ]+  ]
+ Duckling/Numeral/BG/Rules.hs view
@@ -0,0 +1,273 @@+-- 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.Numeral.BG.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++ruleIntegers :: Rule+ruleIntegers = Rule+  { name = "integer (numeric)"+  , pattern =+    [ regex "(\\d{1,18})"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> do+        v <- parseInt match+        integer $ toInteger v+      _ -> Nothing+  }++zeroNineteenMap :: HashMap Text Integer+zeroNineteenMap = HashMap.fromList+  [ ( "нула", 0 )+  , ( "един", 1 )+  , ( "една", 1 )+  , ( "едно", 1 )+  , ( "два", 2 )+  , ( "две", 2 )+  , ( "три", 3 )+  , ( "четири", 4 )+  , ( "пет", 5)+  , ( "шест", 6)+  , ( "седем", 7)+  , ( "осем", 8)+  , ( "девет", 9)+  , ( "десет", 10)+  , ( "единадесет", 11 )+  , ( "единайсет", 11 )+  , ( "дванадесет", 12 )+  , ( "дванайсет", 12 )+  , ( "тринадесет", 13 )+  , ( "тринайсет", 13 )+  , ( "четиринадесет", 14)+  , ( "четиринайсет", 14)+  , ( "петнадесет", 15)+  , ( "петнайсет", 15)+  , ( "шестнадесет", 16)+  , ( "шестнайсет", 16)+  , ( "седемнадесет", 17)+  , ( "седемнайсет", 17)+  , ( "осемнадесет", 18)+  , ( "осемнайсет", 18)+  , ( "деветнадесет", 19)+  , ( "деветнайсет", 19)+  ]++ruleToNineteen :: Rule+ruleToNineteen = Rule+  { name = "number (0..19)"+  , pattern =+    [ regex "(нула|едина(де|й)сет|двана(де|й)сет|трина(де|й)сет|четирина(де|й)сет|петна(де|й)сет|шестна(де|й)сет|седемна(де|й)сет|осемна(де|й)сет|деветна(де|й)сет|един|една|едно|два|две|три|четири|пет|шест|седем|осем|девет|десет)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        let x = Text.toLower match in+        HashMap.lookup x zeroNineteenMap >>= integer+      _ -> Nothing+  }++ruleTens :: Rule+ruleTens = Rule+  { name = "integer (20..90)"+  , pattern =+    [ regex "((два|три|четири|пет|шест|седем|осем|девет)десет)"+    ]+  , prod = \tokens ->+      case tokens of+        (Token RegexMatch (GroupMatch (_:match:_)):_) -> do+          x <- HashMap.lookup (Text.toLower match) zeroNineteenMap+          integer $ x * 10+        _ -> Nothing+  }++rulePowersOfTen :: Rule+rulePowersOfTen = Rule+  { name = "powers of tens"+  , pattern =+    [ regex "(хиляд(а|и)|милион(а|и)?|милиард(а|и)?)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of+        "хиляд"   -> double 1e3 >>= withGrain 3 >>= withMultipliable+        "милион"  -> double 1e6 >>= withGrain 6 >>= withMultipliable+        "милиард" -> double 1e9 >>= withGrain 9 >>= withMultipliable+        _         -> Nothing+      _ -> Nothing+  }++ruleCompositeTens :: Rule+ruleCompositeTens = Rule+  { name = "integer 21..99"+  , pattern =+    [ oneOf [20, 30..90]+    , regex "и"+    , numberBetween 1 10+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral (NumeralData {TNumeral.value = tens}):+       _:+       Token Numeral (NumeralData {TNumeral.value = units}):+       _) -> double $ tens + units+      _ -> Nothing+  }++ruleHundreds :: Rule+ruleHundreds = Rule+  { name = "integer (100..900)"+  , pattern =+    [ regex "(сто|двеста|триста|(четири|пет|шест|седем|осем|девет)стотин)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of+        "сто"          -> integer 100+        "двеста"       -> integer 200+        "триста"       -> integer 300+        "четиристотин" -> integer 400+        "петстотин"    -> integer 500+        "шестстотин"   -> integer 600+        "седемстотин"  -> integer 700+        "осемстотин"   -> integer 800+        "деветстотин"  -> integer 900+        _              -> Nothing+      _ -> Nothing+  }++ruleCompositeHundreds :: Rule+ruleCompositeHundreds = Rule+  { name = "integer 101..999"+  , pattern =+    [ oneOf [200, 300..900]+    , numberBetween 1 100+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral (NumeralData {TNumeral.value = hundreds}):+       Token Numeral (NumeralData {TNumeral.value = tens}):+       _) -> double $ hundreds + tens+      _ -> Nothing+  }++ruleDotSpelledOut :: Rule+ruleDotSpelledOut = Rule+  { name = "one point 2"+  , pattern =+    [ dimension Numeral+    , regex "цяло и"+    , numberWith TNumeral.grain isNothing+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral nd1:_:Token Numeral nd2:_) ->+        double $ TNumeral.value nd1 + decimalsToDouble (TNumeral.value nd2)+      _ -> Nothing+  }++ruleDecimals :: Rule+ruleDecimals = Rule+  { name = "decimal number"+  , pattern =+    [ regex "(\\d*\\.\\d+)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> parseDecimal True match+      _ -> Nothing+  }++ruleFractions :: Rule+ruleFractions = Rule+  { name = "fractional number"+  , pattern =+    [ regex "(\\d+)/(\\d+)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (numerator:denominator:_)):_) -> do+        n <- parseDecimal False numerator+        d <- parseDecimal False denominator+        divide n d+      _ -> Nothing+  }++ruleCommas :: Rule+ruleCommas = Rule+  { name = "comma-separated numbers"+  , pattern =+    [ regex "(\\d+(,\\d\\d\\d)+(\\.\\d+)?)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        parseDouble (Text.replace (Text.singleton ',') Text.empty match) >>= double+      _ -> Nothing+  }++ruleSuffixes :: Rule+ruleSuffixes = Rule+  { name = "suffixes (K,M,G))"+  , pattern =+    [ dimension Numeral+    , regex "((к|м|г)|(К|М|Г))(?=[\\W$€¢£]|$)"+    ]+  , prod = \tokens ->+      case tokens of+        (Token Numeral nd : Token RegexMatch (GroupMatch (match : _)):_) -> do+          x <- case Text.toLower match of+            "к" -> Just 1e3+            "К" -> Just 1e3+            "м" -> Just 1e6+            "М" -> Just 1e6+            "г" -> Just 1e9+            "Г" -> Just 1e9+            _ -> Nothing+          double $ TNumeral.value nd * x+        _ -> Nothing+  }++ruleNegative :: Rule+ruleNegative = Rule+  { name = "negative numbers"+  , pattern =+    [ regex "-|минус\\s?"+    , dimension Numeral+    ]+  , prod = \tokens -> case tokens of+      (_:Token Numeral nd:_) -> double (TNumeral.value nd * (-1))+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleIntegers+  , ruleToNineteen+  , ruleTens+  , rulePowersOfTen+  , ruleCompositeTens+  , ruleHundreds+  , ruleCompositeHundreds+  , ruleDotSpelledOut+  , ruleDecimals+  , ruleFractions+  , ruleCommas+  , ruleSuffixes+  , ruleNegative+  ]
Duckling/Numeral/CS/Corpus.hs view
@@ -14,13 +14,13 @@ import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = CS}, allExamples)+corpus = (testContext {locale = makeLocale CS Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/CS/Rules.hs view
@@ -50,9 +50,9 @@   , ( "dva", 2 )   , ( "dv\x0115", 2 )   , ( "t\x0159i", 3 )-  , ( "\x010dty\x0159i", 4 )+  , ( "čty\x0159i", 4 )   , ( "p\x0115t", 5)-  , ( "\x0161est", 6)+  , ( "šest", 6)   , ( "sedm", 7)   , ( "osm", 8)   , ( "dev\x0115t", 9)@@ -63,7 +63,7 @@ ruleNumeral = Rule   { name = "number (0..10)"   , pattern =-    [ regex "(nula|jed(en|n[ao])|dv(a|\x0115)|t(\x0159)i|(\x010d)ty(\x0159)i|p(\x0115)t|(\x0161)est|sedm|osm|dev(\x0115)t|deset)"+    [ regex "(nula|jed(en|n[ao])|dv(a|\x0115)|t(\x0159)i|(č)ty(\x0159)i|p(\x0115)t|(š)est|sedm|osm|dev(\x0115)t|deset)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Numeral/DA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = DA}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/DA/Rules.hs view
@@ -57,7 +57,7 @@ ruleFew = Rule   { name = "few"   , pattern =-    [ regex "(nogle )?f\x00e5"+    [ regex "(nogle )?få"     ]   , prod = \_ -> integer 3   }@@ -137,7 +137,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -221,8 +221,8 @@   , ("intet", 0)   , ("en", 1)   , ("et", 1)-  , ("\x00e9n", 1)-  , ("\x00e9t", 1)+  , ("én", 1)+  , ("ét", 1)   , ("to", 2)   , ("tre", 3)   , ("fire", 4)@@ -247,7 +247,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(intet|ingen|nul|en|et|\x00e9n|\x00e9t|to|tretten|tre|fire|femten|fem|seksten|seks|syv|otte|nitten|ni|ti|elleve|tolv|fjorten|sytten|atten)"+    [ regex "(intet|ingen|nul|en|et|én|ét|to|tretten|tre|fire|femten|fem|seksten|seks|syv|otte|nitten|ni|ti|elleve|tolv|fjorten|sytten|atten)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Numeral/DE/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = DE}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/DE/Rules.hs view
@@ -103,7 +103,7 @@ ruleInteger3 = Rule   { name = "integer ([2-9][1-9])"   , pattern =-    [ regex "(ein|zwei|drei|vier|f\x00fcnf|sechs|sieben|acht|neun)und(zwanzig|dreissig|vierzig|f\x00fcnfzig|sechzig|siebzig|achtzig|neunzig)"+    [ regex "(ein|zwei|drei|vier|fünf|sechs|sieben|acht|neun)und(zwanzig|dreissig|vierzig|fünfzig|sechzig|siebzig|achtzig|neunzig)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (m1:m2:_)):_) -> do@@ -112,7 +112,7 @@           "zwei" -> Just 2           "drei" -> Just 3           "vier" -> Just 4-          "f\x00fcnf" -> Just 5+          "fünf" -> Just 5           "sechs" -> Just 6           "sieben" -> Just 7           "acht" -> Just 8@@ -122,7 +122,7 @@           "zwanzig" -> Just 20           "dreissig" -> Just 30           "vierzig" -> Just 40-          "f\x00fcnfzig" -> Just 50+          "fünfzig" -> Just 50           "sechzig" -> Just 60           "siebzig" -> Just 70           "achtzig" -> Just 80@@ -179,7 +179,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -246,17 +246,17 @@   , ("zwei", 2)   , ("drei", 3)   , ("vier", 4)-  , ("f\x00fcnf", 5)+  , ("fünf", 5)   , ("sechs", 6)   , ("sieben", 7)   , ("acht", 8)   , ("neun", 9)   , ("zehn", 10)   , ("elf", 11)-  , ("zw\x00f6lf", 12)+  , ("zwölf", 12)   , ("dreizehn", 13)   , ("vierzehn", 14)-  , ("f\x00fcnfzehn", 15)+  , ("fünfzehn", 15)   , ("sechzehn", 16)   , ("siebzehn", 17)   , ("achtzehn", 18)@@ -268,7 +268,7 @@   { name = "integer (0..19)"   -- e.g. fourteen must be before four,   -- otherwise four will always shadow fourteen-  , pattern = [regex "(keine?|keine?s|keiner|keinen|null|nichts|eins?(er)?|zwei|dreizehn|drei|vierzehn|vier|f\x00fcnf|sechzehn|sechs|siebzehn|sieben|achtzehn|acht|neunzehn|neun|elf|zw\x00f6lf|f\x00fcfzehn)"]+  , pattern = [regex "(keine?|keine?s|keiner|keinen|null|nichts|eins?(er)?|zwei|dreizehn|drei|vierzehn|vier|fünf|sechzehn|sechs|siebzehn|sieben|achtzehn|acht|neunzehn|neun|elf|zwölf|füfzehn)"]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->         HashMap.lookup (Text.toLower match) zeroNineteenMap >>= integer@@ -279,7 +279,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(keine?|keine?s|keiner|keinen|null|nichts|eins?(er)?|zwei|dreizehn|drei|vierzehn|vier|f\x00fcnf|sechzehn|sechs|siebzehn|sieben|achtzehn|acht|neunzehn|neun|elf|zw\x00f6lf|f\x00fcfzehn)"+    [ regex "(keine?|keine?s|keiner|keinen|null|nichts|eins?(er)?|zwei|dreizehn|drei|vierzehn|vier|fünf|sechzehn|sechs|siebzehn|sieben|achtzehn|acht|neunzehn|neun|elf|zwölf|füfzehn)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -298,17 +298,17 @@         "zwei" -> integer 2         "drei" -> integer 3         "vier" -> integer 4-        "f\x00fcnf" -> integer 5+        "fünf" -> integer 5         "sechs" -> integer 6         "sieben" -> integer 7         "acht" -> integer 8         "neun" -> integer 9         "zehn" -> integer 10         "elf" -> integer 11-        "zw\x00f6lf" -> integer 12+        "zwölf" -> integer 12         "dreizehn" -> integer 13         "vierzehn" -> integer 14-        "f\x00fcnfzehn" -> integer 15+        "fünfzehn" -> integer 15         "sechzehn" -> integer 16         "siebzehn" -> integer 17         "achtzehn" -> integer 18@@ -321,14 +321,14 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(zwanzig|dreissig|vierzig|f\x00fcnfzig|sechzig|siebzig|achtzig|neunzig)"+    [ regex "(zwanzig|dreissig|vierzig|fünfzig|sechzig|siebzig|achtzig|neunzig)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "zwanzig" -> integer 20         "dreissig" -> integer 30         "vierzig" -> integer 40-        "f\x00fcnfzig" -> integer 50+        "fünfzig" -> integer 50         "sechzig" -> integer 60         "siebzig" -> integer 70         "achtzig" -> integer 80
Duckling/Numeral/EN/Rules.hs view
@@ -234,7 +234,7 @@   { name = "suffixes (K,M,G))"   , pattern =     [ dimension Numeral-    , regex "(k|m|g)(?=[\\W$\x20ac\x00a2\x00a3]|$)"+    , regex "(k|m|g)(?=[\\W$€¢£]|$)"     ]   , prod = \tokens ->       case tokens of
Duckling/Numeral/ES/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/ES/Rules.hs view
@@ -110,12 +110,12 @@   , ( "una" , 1 )   , ( "uno" , 1 )   , ( "dos" , 2 )-  , ( "tr\x00e9s" , 3 )+  , ( "trés" , 3 )   , ( "tres" , 3 )   , ( "cuatro" , 4 )   , ( "cinco" , 5 )   , ( "seis" , 6 )-  , ( "s\x00e9is" , 6 )+  , ( "séis" , 6 )   , ( "siete" , 7 )   , ( "ocho" , 8 )   , ( "nueve" , 9 )@@ -132,7 +132,7 @@ ruleNumeral = Rule   { name = "number (0..15)"   , pattern =-    [ regex "((c|z)ero|un(o|a)?|dos|tr(\x00e9|e)s|cuatro|cinco|s(e|\x00e9)is|siete|ocho|nueve|die(z|s)|once|doce|trece|catorce|quince)"+    [ regex "((c|z)ero|un(o|a)?|dos|tr(é|e)s|cuatro|cinco|s(e|é)is|siete|ocho|nueve|die(z|s)|once|doce|trece|catorce|quince)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -143,20 +143,20 @@ sixteenToTwentyNineMap :: HashMap.HashMap Text.Text Integer sixteenToTwentyNineMap = HashMap.fromList   [ ( "dieciseis" , 16 )-  , ( "diesis\x00e9is" , 16 )+  , ( "diesiséis" , 16 )   , ( "diesiseis" , 16 )-  , ( "diecis\x00e9is" , 16 )+  , ( "dieciséis" , 16 )   , ( "diecisiete" , 17 )   , ( "dieciocho" , 18 )   , ( "diecinueve" , 19 )   , ( "veintiuno" , 21 )   , ( "veintiuna" , 21 )   , ( "veintidos" , 22 )-  , ( "veintitr\x00e9s" , 23 )+  , ( "veintitrés" , 23 )   , ( "veintitres" , 23 )   , ( "veinticuatro" , 24 )   , ( "veinticinco" , 25 )-  , ( "veintis\x00e9is" , 26 )+  , ( "veintiséis" , 26 )   , ( "veintiseis" , 26 )   , ( "veintisiete" , 27 )   , ( "veintiocho" , 28 )@@ -167,7 +167,7 @@ ruleNumeral5 = Rule   { name = "number (16..19 21..29)"   , pattern =-    [ regex "(die(c|s)is(\x00e9|e)is|diecisiete|dieciocho|diecinueve|veintiun(o|a)|veintidos|veintitr(\x00e9|e)s|veinticuatro|veinticinco|veintis(\x00e9|e)is|veintisiete|veintiocho|veintinueve)"+    [ regex "(die(c|s)is(é|e)is|diecisiete|dieciocho|diecinueve|veintiun(o|a)|veintidos|veintitr(é|e)s|veinticuatro|veinticinco|veintis(é|e)is|veintisiete|veintiocho|veintinueve)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -194,7 +194,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):
Duckling/Numeral/ET/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ET}, allExamples)+corpus = (testContext {locale = makeLocale ET Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/ET/Rules.hs view
@@ -77,7 +77,7 @@ ruleTen = Rule   { name = "ten"   , pattern =-    [ regex "k\x00fcmme"+    [ regex "kümme"     ]   , prod = \_ -> integer 10 >>= withGrain 1   }@@ -122,7 +122,7 @@ ruleAFew = Rule   { name = "(a )?few"   , pattern =-    [ regex "m\x00f5ni"+    [ regex "mõni"     ]   , prod = \_ -> integer 3   }@@ -158,7 +158,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -187,12 +187,12 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(null|\x00fcksteist|\x00fcks|kaksteist|kaks|kolmteist|kolm|neliteist|neli|viisteist|viis|kuusteist|kuus|seitseteist|seitse|kaheksateist|kaheksa|\x00fcheksateist|\x00fcheksa|k\x00fcmme)"+    [ regex "(null|üksteist|üks|kaksteist|kaks|kolmteist|kolm|neliteist|neli|viisteist|viis|kuusteist|kuus|seitseteist|seitse|kaheksateist|kaheksa|üheksateist|üheksa|kümme)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "null" -> integer 0-        "\x00fcks" -> integer 1+        "üks" -> integer 1         "kaks" -> integer 2         "kolm" -> integer 3         "neli" -> integer 4@@ -200,9 +200,9 @@         "kuus" -> integer 6         "seitse" -> integer 7         "kaheksa" -> integer 8-        "\x00fcheksa" -> integer 9-        "k\x00fcmme" -> integer 10-        "\x00fcksteist" -> integer 11+        "üheksa" -> integer 9+        "kümme" -> integer 10+        "üksteist" -> integer 11         "kaksteist" -> integer 12         "kolmteist" -> integer 13         "neliteist" -> integer 14@@ -210,7 +210,7 @@         "kuusteist" -> integer 16         "seitseteist" -> integer 17         "kaheksateist" -> integer 18-        "\x00fcheksateist" -> integer 19+        "üheksateist" -> integer 19         _ -> Nothing       _ -> Nothing   }@@ -219,7 +219,7 @@ ruleInteger4 = Rule   { name = "integer (200..900)"   , pattern =-    [ regex "(kakssada|kolmsada|nelisada|viissada|kuussada|seitsesada|kaheksasada|\x00fcheksasada)"+    [ regex "(kakssada|kolmsada|nelisada|viissada|kuussada|seitsesada|kaheksasada|üheksasada)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -230,7 +230,7 @@         "kuussada"        -> integer 600 >>= withGrain 2 >>= withMultipliable         "seitsesada"      -> integer 700 >>= withGrain 2 >>= withMultipliable         "kaheksasada"     -> integer 800 >>= withGrain 2 >>= withMultipliable-        "\x00fcheksasada" -> integer 900 >>= withGrain 2 >>= withMultipliable+        "üheksasada" -> integer 900 >>= withGrain 2 >>= withMultipliable         _ -> Nothing       _ -> Nothing   }@@ -239,18 +239,18 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "((kaks|kolm|neli|viis|kuus|seitse|kaheksa|(\x00fc)heksa)k(\x00fc)mmend)"+    [ regex "((kaks|kolm|neli|viis|kuus|seitse|kaheksa|(ü)heksa)k(ü)mmend)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "kaksk\x00fcmmend" -> integer 20-        "kolmk\x00fcmmend" -> integer 30-        "nelik\x00fcmmend" -> integer 40-        "viisk\x00fcmmend" -> integer 50-        "kuusk\x00fcmmend" -> integer 60-        "seitsek\x00fcmmend" -> integer 70-        "kaheksak\x00fcmmend" -> integer 80-        "\x00fcheksak\x00fcmmend" -> integer 90+        "kakskümmend" -> integer 20+        "kolmkümmend" -> integer 30+        "nelikümmend" -> integer 40+        "viiskümmend" -> integer 50+        "kuuskümmend" -> integer 60+        "seitsekümmend" -> integer 70+        "kaheksakümmend" -> integer 80+        "üheksakümmend" -> integer 90         _ -> Nothing       _ -> Nothing   }
Duckling/Numeral/FR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/FR/Rules.hs view
@@ -144,7 +144,7 @@ ruleNumeralMap :: HashMap Text Integer ruleNumeralMap = HashMap.fromList   [ ( "zero"     , 0 )-  , ( "z\x00e9ro", 0 )+  , ( "zéro", 0 )   , ( "un"       , 1 )   , ( "une"      , 1 )   , ( "deux"     , 2 )@@ -168,7 +168,7 @@ ruleNumeral = Rule   { name = "number (0..16)"   , pattern =-    [ regex "(z(e|\x00e9)ro|une?|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize)"+    [ regex "(z(e|é)ro|une?|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -211,7 +211,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W$\x20ac\x00a2\x00a3]|$)"+    , regex "([kmg])(?=[\\W$€¢£]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):
Duckling/Numeral/GA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/GA/Rules.hs view
@@ -27,7 +27,7 @@ ruleNumeralsPrefixWithNegativeOrMinus = Rule   { name = "numbers prefix with -, negative or minus"   , pattern =-    [ regex "-|m(\x00ed|i)neas(\\sa)?\\s?"+    [ regex "-|m(í|i)neas(\\sa)?\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -54,19 +54,19 @@ ruleNumerals2 = Rule   { name = "numbers, 1-10"   , pattern =-    [ regex "(aon|dh(\x00e1|a)|tr(\x00ed|i)|ceithre|c(\x00fa|u)ig|seacht|s(\x00e9|e)|ocht|naoi|deich)"+    [ regex "(aon|dh(á|a)|tr(í|i)|ceithre|c(ú|u)ig|seacht|s(é|e)|ocht|naoi|deich)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "aon" -> integer 1         "dha" -> integer 2-        "dh\x00e1" -> integer 2-        "tr\x00ed" -> integer 3+        "dhá" -> integer 2+        "trí" -> integer 3         "tri" -> integer 3         "ceithre" -> integer 4         "cuig" -> integer 5-        "c\x00faig" -> integer 5-        "s\x00e9" -> integer 6+        "cúig" -> integer 5+        "sé" -> integer 6         "se" -> integer 6         "seacht" -> integer 7         "ocht" -> integer 8@@ -103,7 +103,7 @@ ruleDag = Rule   { name = "déag"   , pattern =-    [ regex "d(\x00e9|e)ag"+    [ regex "d(é|e)ag"     ]   , prod = \_ -> integer 10   }@@ -113,7 +113,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -130,15 +130,15 @@ ruleOldVigesimalNumeralsS = Rule   { name = "old vigesimal numbers, 20s"   , pattern =-    [ regex "is (dh?(\x00e1|a) fhichead|tr(\x00ed|i) fichid|ceithre fichid)"+    [ regex "is (dh?(á|a) fhichead|tr(í|i) fichid|ceithre fichid)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "d\x00e1 fhichead" -> integer 40+        "dá fhichead" -> integer 40         "da fhichead" -> integer 40-        "dh\x00e1 fhichead" -> integer 40+        "dhá fhichead" -> integer 40         "dha fhichead" -> integer 40-        "tr\x00ed fichid" -> integer 60+        "trí fichid" -> integer 60         "tri fichid" -> integer 60         "ceithre fichid" -> integer 80         _ -> Nothing@@ -149,16 +149,16 @@ ruleOldVigesimalNumeralsS2 = Rule   { name = "old vigesimal numbers, 20s + 10"   , pattern =-    [ regex "d(\x00e9|e)ag is (fiche|dh?(\x00e1|a) fhichead|tr(\x00ed|i) fichid|ceithre fichid)"+    [ regex "d(é|e)ag is (fiche|dh?(á|a) fhichead|tr(í|i) fichid|ceithre fichid)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "fiche" -> integer 30-        "d\x00e1 fhichead" -> integer 50+        "dá fhichead" -> integer 50         "da fhichead" -> integer 50-        "dh\x00e1 fhichead" -> integer 50+        "dhá fhichead" -> integer 50         "dha fhichead" -> integer 50-        "tr\x00ed fichid" -> integer 70+        "trí fichid" -> integer 70         "tri fichid" -> integer 70         "ceithre fichid" -> integer 90         _ -> Nothing@@ -169,7 +169,7 @@ ruleAmhin = Rule   { name = "amháin"   , pattern =-    [ regex "amh(\x00e1|a)in"+    [ regex "amh(á|a)in"     ]   , prod = \_ -> integer 1   }@@ -178,21 +178,21 @@ ruleNumerals = Rule   { name = "numbers, 20-90"   , pattern =-    [ regex "(fiche|tr(\x00ed|i)ocha|daichead|caoga|seasca|seacht(\x00f3|o)|ocht(\x00f3|o)|n(\x00f3|o)cha)"+    [ regex "(fiche|tr(í|i)ocha|daichead|caoga|seasca|seacht(ó|o)|ocht(ó|o)|n(ó|o)cha)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "fiche" -> integer 20         "triocha" -> integer 30-        "tr\x00edocha" -> integer 30+        "tríocha" -> integer 30         "daichead" -> integer 40         "caoga" -> integer 50         "seasca" -> integer 60         "seachto" -> integer 70-        "seacht\x00f3" -> integer 70+        "seachtó" -> integer 70         "ochto" -> integer 80-        "ocht\x00f3" -> integer 80-        "n\x00f3cha" -> integer 90+        "ochtó" -> integer 80+        "nócha" -> integer 90         "nocha" -> integer 90         _ -> Nothing       _ -> Nothing@@ -214,21 +214,21 @@ ruleCountNumerals = Rule   { name = "count numbers"   , pattern =-    [ regex "a (n(\x00e1|a)id|haon|d(\x00f3|o)|tr(\x00ed|i)|ceathair|c(\x00fa|u)ig|s(\x00e9|e)|seacht|hocht|naoi|deich)"+    [ regex "a (n(á|a)id|haon|d(ó|o)|tr(í|i)|ceathair|c(ú|u)ig|s(é|e)|seacht|hocht|naoi|deich)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "naid" -> integer 0-        "n\x00e1id" -> integer 0+        "náid" -> integer 0         "haon" -> integer 1-        "d\x00f3" -> integer 2+        "dó" -> integer 2         "do" -> integer 2-        "tr\x00ed" -> integer 3+        "trí" -> integer 3         "tri" -> integer 3         "ceathair" -> integer 4         "cuig" -> integer 5-        "c\x00faig" -> integer 5-        "s\x00e9" -> integer 6+        "cúig" -> integer 5+        "sé" -> integer 6         "se" -> integer 6         "seacht" -> integer 7         "hocht" -> integer 8
Duckling/Numeral/HE/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HE}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/HE/Rules.hs view
@@ -28,7 +28,7 @@ ruleInteger5 = Rule   { name = "integer 4"   , pattern =-    [ regex "(\x05d0\x05e8\x05d1\x05e2(\x05d4)?)"+    [ regex "(ארבע(ה)?)"     ]   , prod = \_ -> integer 4   }@@ -52,7 +52,7 @@   { name = "intersect (with and)"   , pattern =     [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)-    , regex "\x05d5"+    , regex "ו"     , numberWith TNumeral.multipliable not     ]   , prod = \tokens -> case tokens of@@ -82,7 +82,7 @@   { name = "integer 21..99 (with and)"   , pattern =     [ oneOf [ 20, 30..90 ]-    , regex "\x05d5"+    , regex "ו"     , numberBetween 1 10     ]   , prod = \tokens -> case tokens of@@ -97,7 +97,7 @@ ruleNumeralsPrefixWithNegativeOrMinus = Rule   { name = "numbers prefix with -, negative or minus"   , pattern =-    [ regex "-|\x05de\x05d9\x05e0\x05d5\x05e1"+    [ regex "-|מינוס"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -122,7 +122,7 @@ ruleInteger10 = Rule   { name = "integer 9"   , pattern =-    [ regex "(\x05ea\x05e9\x05e2(\x05d4)?)"+    [ regex "(תשע(ה)?)"     ]   , prod = \_ -> integer 9   }@@ -131,18 +131,18 @@ ruleInteger15 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(\x05e2\x05e9\x05e8\x05d9\x05dd|\x05e9\x05dc\x05d5\x05e9\x05d9\x05dd|\x05d0\x05e8\x05d1\x05e2\x05d9\x05dd|\x05d7\x05de\x05d9\x05e9\x05d9\x05dd|\x05e9\x05d9\x05e9\x05d9\x05dd|\x05e9\x05d1\x05e2\x05d9\x05dd|\x05e9\x05de\x05d5\x05e0\x05d9\x05dd|\x05ea\x05e9\x05e2\x05d9\x05dd)"+    [ regex "(עשרים|שלושים|ארבעים|חמישים|שישים|שבעים|שמונים|תשעים)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x05e2\x05e9\x05e8\x05d9\x05dd" -> integer 20-        "\x05e9\x05dc\x05d5\x05e9\x05d9\x05dd" -> integer 30-        "\x05d0\x05e8\x05d1\x05e2\x05d9\x05dd" -> integer 40-        "\x05d7\x05de\x05d9\x05e9\x05d9\x05dd" -> integer 50-        "\x05e9\x05d9\x05e9\x05d9\x05dd" -> integer 60-        "\x05e9\x05d1\x05e2\x05d9\x05dd" -> integer 70-        "\x05e9\x05de\x05d5\x05e0\x05d9\x05dd" -> integer 80-        "\x05ea\x05e9\x05e2\x05d9\x05dd" -> integer 90+        "עשרים" -> integer 20+        "שלושים" -> integer 30+        "ארבעים" -> integer 40+        "חמישים" -> integer 50+        "שישים" -> integer 60+        "שבעים" -> integer 70+        "שמונים" -> integer 80+        "תשעים" -> integer 90         _ -> Nothing       _ -> Nothing   }@@ -162,7 +162,7 @@ ruleInteger3 = Rule   { name = "integer 2"   , pattern =-    [ regex "(\x05e9\x05ea\x05d9\x05d9\x05dd|\x05e9\x05e0\x05d9\x05d9\x05dd)"+    [ regex "(שתיים|שניים)"     ]   , prod = \_ -> integer 2   }@@ -171,7 +171,7 @@ ruleSingle = Rule   { name = "single"   , pattern =-    [ regex "\x05d9\x05d7\x05d9\x05d3"+    [ regex "יחיד"     ]   , prod = \_ -> integer 1   }@@ -180,7 +180,7 @@ ruleInteger13 = Rule   { name = "integer 12"   , pattern =-    [ regex "(\x05e9\x05e0\x05d9\x05d9\x05dd \x05e2\x05e9\x05e8|\x05ea\x05e8\x05d9 \x05e2\x05e9\x05e8)"+    [ regex "(שניים עשר|תרי עשר)"     ]   , prod = \_ -> integer 12   }@@ -201,7 +201,7 @@ ruleInteger6 = Rule   { name = "integer 5"   , pattern =-    [ regex "(\x05d7\x05de(\x05e9|\x05d9\x05e9\x05d4))"+    [ regex "(חמ(ש|ישה))"     ]   , prod = \_ -> integer 5   }@@ -210,21 +210,21 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(\x05de\x05d0(\x05d4|\x05d5\x05ea)|\x05d0\x05dc(\x05e3|\x05e4\x05d9\x05dd)|\x05de\x05d9\x05dc\x05d9\x05d5(\x05df|\x05e0\x05d9\x05dd))"+    [ regex "(מא(ה|ות)|אל(ף|פים)|מיליו(ן|נים))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "\x05de\x05d0\x05d4"                               ->+        "מאה"                               ->           double 1e2 >>= withGrain 2 >>= withMultipliable-        "\x05de\x05d0\x05d5\x05ea"                         ->+        "מאות"                         ->           double 1e2 >>= withGrain 2 >>= withMultipliable-        "\x05d0\x05dc\x05e3"                               ->+        "אלף"                               ->           double 1e3 >>= withGrain 3 >>= withMultipliable-        "\x05d0\x05dc\x05e4\x05d9\x05dd"                   ->+        "אלפים"                   ->           double 1e3 >>= withGrain 3 >>= withMultipliable-        "\x05de\x05d9\x05dc\x05d9\x05d5\x05df"             ->+        "מיליון"             ->           double 1e6 >>= withGrain 6 >>= withMultipliable-        "\x05de\x05d9\x05dc\x05d9\x05d5\x05e0\x05d9\x05dd" ->+        "מיליונים" ->           double 1e6 >>= withGrain 6 >>= withMultipliable         _          -> Nothing       _ -> Nothing@@ -234,7 +234,7 @@ ruleInteger7 = Rule   { name = "integer 6"   , pattern =-    [ regex "(\x05e9\x05e9(\x05d4)?)"+    [ regex "(שש(ה)?)"     ]   , prod = \_ -> integer 6   }@@ -257,7 +257,7 @@ ruleInteger8 = Rule   { name = "integer 7"   , pattern =-    [ regex "(\x05e9\x05d1\x05e2(\x05d4)?)"+    [ regex "(שבע(ה)?)"     ]   , prod = \_ -> integer 7   }@@ -266,7 +266,7 @@ ruleCouple = Rule   { name = "couple"   , pattern =-    [ regex "\x05d6\x05d5\x05d2( \x05e9\x05dc)?"+    [ regex "זוג( של)?"     ]   , prod = \_ -> integer 2   }@@ -289,7 +289,7 @@ ruleInteger9 = Rule   { name = "integer 8"   , pattern =-    [ regex "(\x05e9\x05de\x05d5\x05e0\x05d4)"+    [ regex "(שמונה)"     ]   , prod = \_ -> integer 8   }@@ -298,7 +298,7 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "(\x05d0\x05e4\x05e1|\x05db\x05dc\x05d5\x05dd)"+    [ regex "(אפס|כלום)"     ]   , prod = \_ -> integer 0   }@@ -307,7 +307,7 @@ ruleInteger4 = Rule   { name = "integer 3"   , pattern =-    [ regex "(\x05e9\x05dc\x05d5\x05e9(\x05d4)?)"+    [ regex "(שלוש(ה)?)"     ]   , prod = \_ -> integer 3   }@@ -316,7 +316,7 @@ ruleInteger2 = Rule   { name = "integer 1"   , pattern =-    [ regex "(\x05d0\x05d7\x05d3|\x05d0\x05d7\x05ea)"+    [ regex "(אחד|אחת)"     ]   , prod = \_ -> integer 1   }@@ -325,7 +325,7 @@ ruleInteger11 = Rule   { name = "integer 10"   , pattern =-    [ regex "(\x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(עשר(ה)?)"     ]   , prod = \_ -> integer 10   }@@ -335,7 +335,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "\x05e0\x05e7\x05d5\x05d3\x05d4"+    , regex "נקודה"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
Duckling/Numeral/HR/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/HR/Rules.hs view
@@ -98,7 +98,7 @@ ruleInteger3 = Rule   { name = "integer (100..900)"   , pattern =-    [ regex "(sto|dvjest(o|a)|tristo|(c|\x010d)etiristo|petsto|(\x0161|s)esto|sedamsto|osamsto|devetsto)"+    [ regex "(sto|dvjest(o|a)|tristo|(c|č)etiristo|petsto|(š|s)esto|sedamsto|osamsto|devetsto)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -131,7 +131,7 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(stotin(u|a|e)|tisu(c|\x0107)(a|u|e)|milij(u|o)na?)"+    [ regex "(stotin(u|a|e)|tisu(c|ć)(a|u|e)|milij(u|o)na?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -187,7 +187,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -222,7 +222,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(ni(s|\x0161)ta|ni(s|\x0161)tica|nula|jedanaest|dvanaest|trinaest|jeda?n(a|u|o(ga?)?)?|dv(i?je)?(a|o)?(ma)?|tri(ma)?|(\x010d|c)etiri|(\x010d|c)etrnaest|petnaest|pet|(s|\x0161)esnaest|(\x0161|s)est|sedamnaest|sedam|osamnaest|osam|devetnaest|devet)"+    [ regex "(ni(s|š)ta|ni(s|š)tica|nula|jedanaest|dvanaest|trinaest|jeda?n(a|u|o(ga?)?)?|dv(i?je)?(a|o)?(ma)?|tri(ma)?|(č|c)etiri|(č|c)etrnaest|petnaest|pet|(s|š)esnaest|(š|s)est|sedamnaest|sedam|osamnaest|osam|devetnaest|devet)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -283,7 +283,7 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(dvadeset|trideset|(c|\x010d)etrdeset|pedeset|(\x0161|s)esdeset|sedamdeset|osamdeset|devedeset)"+    [ regex "(dvadeset|trideset|(c|č)etrdeset|pedeset|(š|s)esdeset|sedamdeset|osamdeset|devedeset)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -322,7 +322,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "cijela|to(c|\x010d)ka|zarez"+    , regex "cijela|to(c|č)ka|zarez"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
+ Duckling/Numeral/HU/Corpus.hs view
@@ -0,0 +1,98 @@+-- 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.HU.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 HU Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (NumeralValue 0)+             [ "0"+             , "nulla"+             , "zéró"+             ]+  , examples (NumeralValue 1)+             [ "1"+             , "egy"+             ]+  , examples (NumeralValue 2)+             [ "kettő"+             ]+  , examples (NumeralValue 3)+             [ "három"+             ]+  , examples (NumeralValue 4)+             [ "négy"+             ]+  , examples (NumeralValue 5)+             [ "öt"+             ]+  , examples (NumeralValue 6)+             [ "hat"+             ]+  , examples (NumeralValue 7)+             [ "hét"+             ]+  , examples (NumeralValue 8)+             [ "nyolc"+             ]+  , examples (NumeralValue 9)+             [ "kilenc"+             ]+  , examples (NumeralValue 11)+             [ "tizenegy"+             ]+  , examples (NumeralValue 15)+             [ "tizenöt"+             ]+  , examples (NumeralValue 17)+             [ "tizenhét"+             ]+  , examples (NumeralValue 20)+             [ "20"+             , "húsz"+             ]+  , examples (NumeralValue 22)+             [ "huszonkettő"+             ]+  , examples (NumeralValue 24)+             [ "24"+             , "huszonnégy"+             ]+  , examples (NumeralValue 26)+             [ "huszonhat"+             ]+  , examples (NumeralValue 28)+             [ "huszonnyolc"+             ]+  , examples (NumeralValue 10)+             [ "tíz"+             ]+  , examples (NumeralValue 20)+             [ "húsz"+             ]+  , examples (NumeralValue 50)+             [ "ötven"+             ]+  , examples (NumeralValue 34)+             [ "harmincnégy"+             ]+  ]
+ Duckling/Numeral/HU/Rules.hs view
@@ -0,0 +1,169 @@+-- 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.Numeral.HU.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++ruleIntegerNumeric :: Rule+ruleIntegerNumeric = Rule+  { name = "integer (numeric)"+  , pattern =+    [ regex "(\\d{1,18})"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):+       _) -> do+         v <- parseInt match+         integer $ toInteger v+      _ -> Nothing+  }++ruleNumeralMap :: HashMap Text Integer+ruleNumeralMap = HashMap.fromList+  [ ( "nulla", 0 )+  , ( "z\x00E9r\x00F3", 0 )+  , ( "egy", 1 )+  , ( "kett\x0151", 2 )+  , ( "h\x00E1rom", 3 )+  , ( "n\x00E9gy", 4 )+  , ( "\x00F6t", 5)+  , ( "hat", 6)+  , ( "h\x00E9t", 7)+  , ( "nyolc", 8)+  , ( "kilenc", 9)+  , ( "t\x00EDz", 10)+  ]++ruleNumeral :: Rule+ruleNumeral = Rule+  { name = "number (0..10)"+  , pattern =+    [ regex "(nulla|z\x00E9r\x00F3|egy|kett\x0151|h\x00E1rom|n\x00E9gy|\x00F6t|hat|h\x00E9t|nyolc|kilenc|t\x00EDz)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) ruleNumeralMap >>= integer+      _ -> Nothing+  }++elevenToNineteenMap :: HashMap Text Integer+elevenToNineteenMap = HashMap.fromList+  [ ( "tizenegy", 11 )+  , ( "tizenkett\x0151", 12 )+  , ( "tizenh\x00E1rom", 13 )+  , ( "tizenn\x00E9gy", 14 )+  , ( "tizen\x00F6t", 15 )+  , ( "tizenhat", 16 )+  , ( "tizenh\x00E9t", 17 )+  , ( "tizennyolc", 18 )+  , ( "tizenkilenc", 19 )+  ]++ruleElevenToNineteen :: Rule+ruleElevenToNineteen = Rule+  { name = "number (11..19)"+  , pattern =+    [ regex "(tizenegy|tizenkett\x0151|tizenh\x00E1rom|tizenn\x00E9gy|tizen\x00F6t|tizenhat|tizenh\x00E9t|tizennyolc|tizenkilenc)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) elevenToNineteenMap >>= integer+      _ -> Nothing+  }++twentyoneToTwentynineMap :: HashMap Text Integer+twentyoneToTwentynineMap = HashMap.fromList+  [ ( "huszonegy", 21 )+  , ( "huszonkett\x0151", 22 )+  , ( "huszonh\x00E1rom", 23 )+  , ( "huszonn\x00E9gy", 24 )+  , ( "huszon\x00F6t", 25 )+  , ( "huszonhat", 26 )+  , ( "huszonh\x00E9t", 27 )+  , ( "huszonnyolc", 28 )+  , ( "huszonkilenc", 29 )+  ]++ruleTwentyoneToTwentynine :: Rule+ruleTwentyoneToTwentynine = Rule+  { name = "number (21..29)"+  , pattern =+    [ regex "(huszonegy|huszonkett\x0151|huszonh\x00E1rom|huszonn\x00E9gy|huszon\x00F6t|huszonhat|huszonh\x00E9t|huszonnyolc|huszonkilenc)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) twentyoneToTwentynineMap >>= integer+      _ -> Nothing+  }++dozensMap :: HashMap Text Integer+dozensMap = HashMap.fromList+  [ ( "h\x00FAsz", 20 )+  , ( "harminc", 30 )+  , ( "negyven", 40 )+  , ( "\x00F6tven", 50 )+  , ( "hatvan", 60 )+  , ( "hetven", 70 )+  , ( "nyolcvan", 80 )+  , ( "kilencven", 90 )+  ]++ruleTens :: Rule+ruleTens = Rule+  { name = "integer (20,30..90)"+  , pattern =+    [ regex "(h\x00FAsz|harminc|negyven|ötven|hatvan|hetven|nyolcvan|kilencven)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) dozensMap >>= integer+      _ -> Nothing+  }++ruleCompositeTens :: Rule+ruleCompositeTens = Rule+  { name = "integer ([3-9][1-9])"+  , pattern =+    [ regex "(harminc|negyven|\x00F6tven|hatvan|hetven|nyolcvan|kilencven)(egy|kett\x0151|h\x00E1rom|n\x00E9gy|\x00F6t|hat|h\x00E9t|nyolc|kilenc)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (m1:m2:_)):_) -> do+        v1 <- HashMap.lookup (Text.toLower m1) dozensMap+        v2 <- HashMap.lookup (Text.toLower m2) ruleNumeralMap+        integer $ v1 + v2+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleIntegerNumeric+  , ruleNumeral+  , ruleElevenToNineteen+  , ruleTwentyoneToTwentynine+  , ruleTens+  , ruleCompositeTens+  ]
Duckling/Numeral/ID/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ID}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/ID/Rules.hs view
@@ -184,7 +184,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):
Duckling/Numeral/IT/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = IT}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/IT/Rules.hs view
@@ -174,7 +174,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -191,14 +191,14 @@ ruleNumeral4 = Rule   { name = "number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)"   , pattern =-    [ regex "((venti|trenta|quaranta|cinquanta|sessanta|settanta|ottanta|novanta)(due|tre|tr\x00e9|quattro|cinque|sei|sette|nove))|((vent|trent|quarant|cinquant|sessant|settant|ottant|novant)(uno|otto))"+    [ regex "((venti|trenta|quaranta|cinquanta|sessanta|settanta|ottanta|novanta)(due|tre|tré|quattro|cinque|sei|sette|nove))|((vent|trent|quarant|cinquant|sessant|settant|ottant|novant)(uno|otto))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "ventuno" -> integer 21         "ventidue" -> integer 22         "ventitre" -> integer 23-        "ventitr\x00e9" -> integer 23+        "ventitré" -> integer 23         "ventiquattro" -> integer 24         "venticinque" -> integer 25         "ventisei" -> integer 26@@ -208,7 +208,7 @@         "trentuno" -> integer 31         "trentadue" -> integer 32         "trentatre" -> integer 33-        "trentatr\x00e9" -> integer 33+        "trentatré" -> integer 33         "trentaquattro" -> integer 34         "trentacinque" -> integer 35         "trentasei" -> integer 36@@ -218,7 +218,7 @@         "quarantuno" -> integer 41         "quarantadue" -> integer 42         "quarantatre" -> integer 43-        "quarantatr\x00e9" -> integer 43+        "quarantatré" -> integer 43         "quarantaquattro" -> integer 44         "quarantacinque" -> integer 45         "quarantasei" -> integer 46@@ -228,7 +228,7 @@         "cinquantuno" -> integer 51         "cinquantadue" -> integer 52         "cinquantatre" -> integer 53-        "cinquantatr\x00e9" -> integer 53+        "cinquantatré" -> integer 53         "cinquantaquattro" -> integer 54         "cinquantacinque" -> integer 55         "cinquantasei" -> integer 56@@ -237,7 +237,7 @@         "cinquantanove" -> integer 59         "sessantuno" -> integer 61         "sessantadue" -> integer 62-        "sessantatr\x00e9" -> integer 63+        "sessantatré" -> integer 63         "sessantatre" -> integer 63         "sessantaquattro" -> integer 64         "sessantacinque" -> integer 65@@ -247,7 +247,7 @@         "sessantanove" -> integer 69         "settantuno" -> integer 71         "settantadue" -> integer 72-        "settantatr\x00e9" -> integer 73+        "settantatré" -> integer 73         "settantatre" -> integer 73         "settantaquattro" -> integer 74         "settantacinque" -> integer 75@@ -257,7 +257,7 @@         "settantanove" -> integer 79         "ottantuno" -> integer 81         "ottantadue" -> integer 82-        "ottantatr\x00e9" -> integer 83+        "ottantatré" -> integer 83         "ottantatre" -> integer 83         "ottantaquattro" -> integer 84         "ottantacinque" -> integer 85@@ -268,7 +268,7 @@         "novantuno" -> integer 91         "novantadue" -> integer 92         "novantatre" -> integer 93-        "novantatr\x00e9" -> integer 93+        "novantatré" -> integer 93         "novantaquattro" -> integer 94         "novantacinque" -> integer 95         "novantasei" -> integer 96
Duckling/Numeral/JA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = JA}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/JA/Rules.hs view
@@ -12,7 +12,10 @@ module Duckling.Numeral.JA.Rules   ( rules ) where +import qualified Data.HashMap.Strict as HashMap import qualified Data.Text as Text+import Data.HashMap.Strict (HashMap)+import Data.Text (Text) import Prelude import Data.String @@ -27,7 +30,7 @@ ruleInteger5 = Rule   { name = "integer (100)"   , pattern =-    [ regex "\x767e"+    [ regex "百"     ]   , prod = \_ -> integer 100   }@@ -36,7 +39,7 @@ ruleNumeralsPrefixWithNegativeOrMinus = Rule   { name = "numbers prefix with -, negative or minus"   , pattern =-    [ regex "-|\x30de\x30a4\x30ca\x30b9\\s?|\x8ca0\\s?"+    [ regex "-|マイナス\\s?|負\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -44,30 +47,6 @@       _ -> Nothing   } -ruleInteger17 :: Rule-ruleInteger17 = Rule-  { name = "integer (0..10)"-  , pattern =-    [ regex "(\x30bc\x30ed|\x96f6|\x4e00|\x4e8c|\x4e09|\x56db|\x4e94|\x516d|\x4e03|\x516b|\x4e5d|\x5341)"-    ]-  , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x30bc\x30ed" -> integer 0-        "\x96f6" -> integer 0-        "\x4e00" -> integer 1-        "\x4e8c" -> integer 2-        "\x4e09" -> integer 3-        "\x56db" -> integer 4-        "\x4e94" -> integer 5-        "\x516d" -> integer 6-        "\x4e03" -> integer 7-        "\x516b" -> integer 8-        "\x4e5d" -> integer 9-        "\x5341" -> integer 10-        _ -> Nothing-      _ -> Nothing-  }- ruleIntegerNumeric :: Rule ruleIntegerNumeric = Rule   { name = "integer (numeric)"@@ -85,7 +64,7 @@ ruleInteger10 = Rule   { name = "integer (1000..1999)"   , pattern =-    [ regex "\x5343"+    [ regex "千"     , numberBetween 1 1000     ]   , prod = \tokens -> case tokens of@@ -111,7 +90,7 @@   { name = "integer (20000..90000)"   , pattern =     [ numberBetween 2 10-    , regex "\x4e07"+    , regex "万"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 10000@@ -134,7 +113,7 @@   { name = "<number>个"   , pattern =     [ dimension Numeral-    , regex "\x4e2a"+    , regex "个"     ]   , prod = \tokens -> case tokens of       (token:_) -> Just token@@ -146,7 +125,7 @@   { name = "integer (20..90)"   , pattern =     [ numberBetween 2 10-    , regex "\x5341"+    , regex "十"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 10@@ -157,7 +136,7 @@ ruleInteger13 = Rule   { name = "integer (10000)"   , pattern =-    [ regex "\x4e07"+    [ regex "万"     ]   , prod = \_ -> integer 10000   }@@ -166,7 +145,7 @@ ruleInteger6 = Rule   { name = "integer (100..199)"   , pattern =-    [ regex "\x767e"+    [ regex "百"     , numberBetween 1 100     ]   , prod = \tokens -> case tokens of@@ -193,15 +172,15 @@   { name = "numbers suffixes (K, M, G, 千, 万)"   , pattern =     [ dimension Numeral-    , regex "(k|m|g|\x5343|\x4e07)"+    , regex "(k|m|g|千|万)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):        Token RegexMatch (GroupMatch (match:_)):        _) -> case Text.toLower match of           "k"      -> double $ v * 1e3-          "\x5343" -> double $ v * 1e3-          "\x4e07" -> double $ v * 1e4+          "千" -> double $ v * 1e3+          "万" -> double $ v * 1e4           "m"      -> double $ v * 1e6           "g"      -> double $ v * 1e9           _ -> Nothing@@ -213,7 +192,7 @@   { name = "integer (200..900)"   , pattern =     [ numberBetween 2 10-    , regex "\x767e"+    , regex "百"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 100@@ -224,7 +203,7 @@ ruleInteger14 = Rule   { name = "integer (10000..19999)"   , pattern =-    [ regex "\x4e07"+    [ regex "万"     , numberBetween 1 10000     ]   , prod = \tokens -> case tokens of@@ -265,32 +244,36 @@ ruleInteger9 = Rule   { name = "integer (1000)"   , pattern =-    [ regex "\x5343"+    [ regex "千"     ]   , prod = \_ -> integer 1000   } +integerMap :: HashMap Text Integer+integerMap = HashMap.fromList+  [ ("零", 0)+  , ("ゼロ", 0)+  , ("一", 1)+  , ("二", 2)+  , ("三", 3)+  , ("四", 4)+  , ("五", 5)+  , ("六", 6)+  , ("七", 7)+  , ("八", 8)+  , ("九", 9)+  , ("十", 10)+  ]+ ruleInteger :: Rule ruleInteger = Rule   { name = "integer (0..10)"   , pattern =-    [ regex "\x30bc\x30ed|\x96f6|\x4e00|\x4e8c|\x4e09|\x56db|\x4e94|\x516d|\x4e03|\x516b|\x4e5d|\x5341"+    [ regex "(ゼロ|零|一|二|三|四|五|六|七|八|九|十)"     ]   , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x96f6" -> integer 0-        "\x30bc\x30ed" -> integer 0-        "\x4e00" -> integer 1-        "\x4e8c" -> integer 2-        "\x4e09" -> integer 3-        "\x56db" -> integer 4-        "\x4e94" -> integer 5-        "\x516d" -> integer 6-        "\x4e03" -> integer 7-        "\x516b" -> integer 8-        "\x4e5d" -> integer 9-        "\x5341" -> integer 10-        _ -> Nothing+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) integerMap >>= integer       _ -> Nothing   } @@ -312,7 +295,7 @@ ruleInteger2 = Rule   { name = "integer (11..19)"   , pattern =-    [ regex "\x5341"+    [ regex "十"     , numberBetween 1 10     ]   , prod = \tokens -> case tokens of@@ -325,7 +308,7 @@   { name = "integer (2000..9000)"   , pattern =     [ numberBetween 2 10-    , regex "\x5343"+    , regex "千"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 1000@@ -356,7 +339,6 @@   , ruleInteger14   , ruleInteger15   , ruleInteger16-  , ruleInteger17   , ruleInteger2   , ruleInteger3   , ruleInteger4
+ Duckling/Numeral/KA/Corpus.hs view
@@ -0,0 +1,43 @@+-- 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.KA.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 KA Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (NumeralValue 0)+             [ "0"+             , "ნული"+             ]+  , examples (NumeralValue 1)+             [ "1"+             , "ერთი"+             ]+  , examples (NumeralValue 2)+             [ "2"+             , "ორი"+             ]+  , examples (NumeralValue 3)+             [ "3"+             , "სამი"+             ]+  ]
+ Duckling/Numeral/KA/Rules.hs view
@@ -0,0 +1,75 @@+-- 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.Numeral.KA.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++ruleIntegerNumeric :: Rule+ruleIntegerNumeric = Rule+  { name = "integer (numeric)"+  , pattern =+    [ regex "(\\d{1,18})"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):+       _) -> do+         v <- parseInt match+         integer $ toInteger v+      _ -> Nothing+  }++ruleNumeralMap :: HashMap Text Integer+ruleNumeralMap = HashMap.fromList+  [ ( "ნული", 0 )+  , ( "ერთი", 1 )+  , ( "ორი", 2 )+  , ( "სამი", 3 )+  , ( "ოთხი", 4 )+  , ( "ხუთი", 5)+  , ( "ექვსი", 6)+  , ( "შვიდი", 7)+  , ( "რვა", 8)+  , ( "ცხრა", 9)+  , ( "ათი", 10)+  ]++ruleNumeral :: Rule+ruleNumeral = Rule+  { name = "number (0..10)"+  , pattern =+    [ regex "(ნული|ერთი|ორი|სამი|ოთხი|ხუთი|ექვსი|შვიდი|რვა|ცხრა|ათი)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        HashMap.lookup (Text.toLower match) ruleNumeralMap >>= integer+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleIntegerNumeric+  , ruleNumeral+  ]
Duckling/Numeral/KO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/KO/Rules.hs view
@@ -28,15 +28,15 @@ ruleIntegerForOrdinals = Rule   { name = "integer (1..4) - for ordinals"   , pattern =-    [ regex "(\xd55c|\xccab|\xb450|\xc138|\xb124)"+    [ regex "(한|첫|두|세|네)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xd55c" -> integer 1-        "\xccab" -> integer 1-        "\xb450" -> integer 2-        "\xc138" -> integer 3-        "\xb124" -> integer 4+        "한" -> integer 1+        "첫" -> integer 1+        "두" -> integer 2+        "세" -> integer 3+        "네" -> integer 4         _ -> Nothing       _ -> Nothing   }@@ -58,7 +58,7 @@ ruleFew = Rule   { name = "few 몇"   , pattern =-    [ regex "\xba87"+    [ regex "몇"     ]   , prod = \_ -> integer 3   }@@ -106,7 +106,7 @@ ruleNumeralsPrefixWithOr = Rule   { name = "numbers prefix with -, 마이너스, or 마이나스"   , pattern =-    [ regex "-|\xb9c8\xc774\xb108\xc2a4\\s?|\xb9c8\xc774\xb098\xc2a4\\s?"+    [ regex "-|마이너스\\s?|마이나스\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -118,7 +118,7 @@ ruleHalf = Rule   { name = "half - 반"   , pattern =-    [ regex "\xbc18"+    [ regex "반"     ]   , prod = \_ -> double 0.5   }@@ -127,7 +127,7 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "\xc601|\xacf5|\xbe75"+    [ regex "영|공|빵"     ]   , prod = \_ -> integer 0   }@@ -136,19 +136,19 @@ ruleIntegerTypeAndOrdinals = Rule   { name = "integer (20..90) - TYPE 2 and ordinals"   , pattern =-    [ regex "(\xc5f4|\xc2a4\xbb3c|\xc11c\xb978|\xb9c8\xd754|\xc270|\xc608\xc21c|\xc77c\xd754|\xc5ec\xb4e0|\xc544\xd754)"+    [ regex "(열|스물|서른|마흔|쉰|예순|일흔|여든|아흔)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xc5f4" -> integer 10-        "\xc2a4\xbb3c" -> integer 20-        "\xc11c\xb978" -> integer 30-        "\xb9c8\xd754" -> integer 40-        "\xc270" -> integer 50-        "\xc608\xc21c" -> integer 60-        "\xc77c\xd754" -> integer 70-        "\xc5ec\xb4e0" -> integer 80-        "\xc544\xd754" -> integer 90+        "열" -> integer 10+        "스물" -> integer 20+        "서른" -> integer 30+        "마흔" -> integer 40+        "쉰" -> integer 50+        "예순" -> integer 60+        "일흔" -> integer 70+        "여든" -> integer 80+        "아흔" -> integer 90         _ -> Nothing       _ -> Nothing   }@@ -157,20 +157,20 @@ ruleIntegerType1 = Rule   { name = "integer - TYPE 1"   , pattern =-    [ regex "(\xc601|\xc77c|\xc774|\xc0bc|\xc0ac|\xc624|\xc721|\xce60|\xd314|\xad6c)"+    [ regex "(영|일|이|삼|사|오|육|칠|팔|구)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xc601" -> integer 0-        "\xc77c" -> integer 1-        "\xc774" -> integer 2-        "\xc0bc" -> integer 3-        "\xc0ac" -> integer 4-        "\xc624" -> integer 5-        "\xc721" -> integer 6-        "\xce60" -> integer 7-        "\xd314" -> integer 8-        "\xad6c" -> integer 9+        "영" -> integer 0+        "일" -> integer 1+        "이" -> integer 2+        "삼" -> integer 3+        "사" -> integer 4+        "오" -> integer 5+        "육" -> integer 6+        "칠" -> integer 7+        "팔" -> integer 8+        "구" -> integer 9         _ -> Nothing       _ -> Nothing   }@@ -179,16 +179,16 @@ ruleIntegerType1PowersOfTen = Rule   { name = "integer - TYPE 1: powers of ten"   , pattern =-    [ regex "(\xc2ed|\xbc31|\xcc9c|\xb9cc|\xc5b5|\xc870)"+    [ regex "(십|백|천|만|억|조)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xc2ed" -> double 10   >>= withGrain 1  >>= withMultipliable-        "\xbc31" -> double 1e2  >>= withGrain 2  >>= withMultipliable-        "\xcc9c" -> double 1e3  >>= withGrain 3  >>= withMultipliable-        "\xb9cc" -> double 1e4  >>= withGrain 4  >>= withMultipliable-        "\xc5b5" -> double 1e8  >>= withGrain 8  >>= withMultipliable-        "\xc870" -> double 1e12 >>= withGrain 12 >>= withMultipliable+        "십" -> double 10   >>= withGrain 1  >>= withMultipliable+        "백" -> double 1e2  >>= withGrain 2  >>= withMultipliable+        "천" -> double 1e3  >>= withGrain 3  >>= withMultipliable+        "만" -> double 1e4  >>= withGrain 4  >>= withMultipliable+        "억" -> double 1e8  >>= withGrain 8  >>= withMultipliable+        "조" -> double 1e12 >>= withGrain 12 >>= withMultipliable         _ -> Nothing       _ -> Nothing   }@@ -224,19 +224,19 @@ ruleIntegerType2 = Rule   { name = "integer (1..10) - TYPE 2"   , pattern =-    [ regex "(\xd558\xb098|\xb458|\xc14b|\xb137|\xb2e4\xc12f|\xc5ec\xc12f|\xc77c\xacf1|\xc5ec\xb35f|\xc544\xd649)"+    [ regex "(하나|둘|셋|넷|다섯|여섯|일곱|여덟|아홉)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xd558\xb098" -> integer 1-        "\xb458" -> integer 2-        "\xc14b" -> integer 3-        "\xb137" -> integer 4-        "\xb2e4\xc12f" -> integer 5-        "\xc5ec\xc12f" -> integer 6-        "\xc77c\xacf1" -> integer 7-        "\xc5ec\xb35f" -> integer 8-        "\xc544\xd649" -> integer 9+        "하나" -> integer 1+        "둘" -> integer 2+        "셋" -> integer 3+        "넷" -> integer 4+        "다섯" -> integer 5+        "여섯" -> integer 6+        "일곱" -> integer 7+        "여덟" -> integer 8+        "아홉" -> integer 9         _ -> Nothing       _ -> Nothing   }@@ -246,7 +246,7 @@   { name = "fraction"   , pattern =     [ dimension Numeral-    , regex "\xbd84(\xc758|\xc5d0)"+    , regex "분(의|에)"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -262,22 +262,22 @@   { name = "number dot number - 삼점사"   , pattern =     [ dimension Numeral-    , regex "(\xc810|\xca5c)((\xc601|\xc77c|\xc774|\xc0bc|\xc0ac|\xc624|\xc721|\xce60|\xd314|\xad6c)+)"+    , regex "(점|쩜)((영|일|이|삼|사|오|육|칠|팔|구)+)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v1}):        Token RegexMatch (GroupMatch (_:match:_)):        _) -> do-        let getDigit '\xc601' = Just "0"-            getDigit '\xc77c' = Just "1"-            getDigit '\xc774' = Just "2"-            getDigit '\xc0bc' = Just "3"-            getDigit '\xc0ac' = Just "4"-            getDigit '\xc624' = Just "5"-            getDigit '\xc721' = Just "6"-            getDigit '\xce60' = Just "7"-            getDigit '\xd314' = Just "8"-            getDigit '\xad6c' = Just "9"+        let getDigit '영' = Just "0"+            getDigit '일' = Just "1"+            getDigit '이' = Just "2"+            getDigit '삼' = Just "3"+            getDigit '사' = Just "4"+            getDigit '오' = Just "5"+            getDigit '육' = Just "6"+            getDigit '칠' = Just "7"+            getDigit '팔' = Just "8"+            getDigit '구' = Just "9"             getDigit _ = Nothing         v2 <- parseDouble . Text.concat . mapMaybe getDigit $ Text.unpack match         double $ v1 + decimalsToDouble v2
Duckling/Numeral/MY/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = MY}, allExamples)+corpus = (testContext {locale = makeLocale MY Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/MY/Rules.hs view
@@ -27,7 +27,7 @@   { name = "integer (11..99) "   , pattern =     [ numberBetween 1 10-    , regex "\x1006\x101a\x103a\x1037"+    , regex "ဆယ့်"     , numberBetween 1 10     ]   , prod = \tokens -> case tokens of@@ -42,20 +42,20 @@ ruleIntegerNumeric = Rule   { name = "integer (0..9) - numeric"   , pattern =-    [ regex "(\x1040|\x1041|\x1042|\x1043|\x1044|\x1045|\x1046|\x1047|\x1048|\x1049)"+    [ regex "(၀|၁|၂|၃|၄|၅|၆|၇|၈|၉)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x1040" -> integer 0-        "\x1041" -> integer 1-        "\x1042" -> integer 2-        "\x1043" -> integer 3-        "\x1044" -> integer 4-        "\x1045" -> integer 5-        "\x1046" -> integer 6-        "\x1047" -> integer 7-        "\x1048" -> integer 8-        "\x1049" -> integer 9+        "၀" -> integer 0+        "၁" -> integer 1+        "၂" -> integer 2+        "၃" -> integer 3+        "၄" -> integer 4+        "၅" -> integer 5+        "၆" -> integer 6+        "၇" -> integer 7+        "၈" -> integer 8+        "၉" -> integer 9         _ -> Nothing       _ -> Nothing   }@@ -64,7 +64,7 @@ ruleInteger3 = Rule   { name = "integer (11..19) "   , pattern =-    [ regex "\x1006\x101a\x103a\x1037"+    [ regex "ဆယ့်"     , numberBetween 1 10     ]   , prod = \tokens -> case tokens of@@ -76,13 +76,13 @@ ruleIntegerPali = Rule   { name = "integer (1..3) - pali"   , pattern =-    [ regex "(\x1015\x1011\x1019|\x1012\x102f\x1010\x102d\x101a|\x1010\x1010\x102d\x101a)"+    [ regex "(ပထမ|ဒုတိယ|တတိယ)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x1015\x1011\x1019" -> integer 1-        "\x1012\x102f\x1010\x102d\x101a" -> integer 2-        "\x1010\x1010\x102d\x101a" -> integer 3+        "ပထမ" -> integer 1+        "ဒုတိယ" -> integer 2+        "တတိယ" -> integer 3         _ -> Nothing       _ -> Nothing   }@@ -92,7 +92,7 @@   { name = "integer (100..900)"   , pattern =     [ numberBetween 1 10-    , regex "\x101b\x102c"+    , regex "ရာ"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 100@@ -104,7 +104,7 @@   { name = "integer (1000..9000)"   , pattern =     [ numberBetween 1 10-    , regex "\x1011\x1031\x102c\x1004\x103a"+    , regex "ထောင်"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 1000@@ -116,7 +116,7 @@   { name = "integer (10000..90000)"   , pattern =     [ numberBetween 1 10-    , regex "\x101e\x1031\x102c\x1004\x103a\x1038"+    , regex "သောင်း"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 10000@@ -127,7 +127,7 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "\x101e\x102f\x1036\x100a|\x1019\x101b\x103e\x102d"+    [ regex "သုံည|မရှိ"     ]   , prod = \_ -> integer 0   }@@ -137,7 +137,7 @@   { name = "integer (10..90)"   , pattern =     [ numberBetween 1 10-    , regex "\x1006\x101a\x103a"+    , regex "ဆယ်"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 10@@ -148,20 +148,20 @@ ruleInteger2 = Rule   { name = "integer (1..10)"   , pattern =-    [ regex "(\x1010\x1005\x103a|\x1014\x103e\x1005\x103a|\x101e\x102f\x1036\x1038|\x101c\x1031\x1038|\x1004\x102b\x1038|\x1001\x103c\x1031\x102b\x1000\x103a|\x1001\x102f\x1014\x103e\x1005\x103a|\x101b\x103e\x1005\x103a|\x1000\x102d\x102f\x1038|\x1010\x1005\x103a\x1006\x101a\x103a)"+    [ regex "(တစ်|နှစ်|သုံး|လေး|ငါး|ခြေါက်|ခုနှစ်|ရှစ်|ကိုး|တစ်ဆယ်)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x1010\x1005\x103a" -> integer 1-        "\x1014\x103e\x1005\x103a" -> integer 2-        "\x101e\x102f\x1036\x1038" -> integer 3-        "\x101c\x1031\x1038" -> integer 4-        "\x1004\x102b\x1038" -> integer 5-        "\x1001\x103c\x1031\x102b\x1000\x103a" -> integer 6-        "\x1001\x102f\x1014\x103e\x1005\x103a" -> integer 7-        "\x101b\x103e\x1005\x103a" -> integer 8-        "\x1000\x102d\x102f\x1038" -> integer 9-        "\x1010\x1005\x103a\x1006\x101a\x103a" -> integer 10+        "တစ်" -> integer 1+        "နှစ်" -> integer 2+        "သုံး" -> integer 3+        "လေး" -> integer 4+        "ငါး" -> integer 5+        "ခြေါက်" -> integer 6+        "ခုနှစ်" -> integer 7+        "ရှစ်" -> integer 8+        "ကိုး" -> integer 9+        "တစ်ဆယ်" -> integer 10         _ -> Nothing       _ -> Nothing   }
Duckling/Numeral/NB/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NB}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/NB/Rules.hs view
@@ -72,7 +72,7 @@ ruleFew = Rule   { name = "few"   , pattern =-    [ regex "(noen )?f\x00e5"+    [ regex "(noen )?få"     ]   , prod = \_ -> integer 3   }@@ -158,7 +158,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -214,7 +214,7 @@   , ( "intet" , 0 )   , ( "en" , 1 )   , ( "ett" , 1 )-  , ( "\x00e9n" , 1 )+  , ( "én" , 1 )   , ( "to" , 2 )   , ( "tre" , 3 )   , ( "fire" , 4 )@@ -231,7 +231,7 @@   , ( "fjorten" , 14 )   , ( "femten" , 15 )   , ( "seksten" , 16 )-  , ( "s\x00f8tten" , 17 )+  , ( "søtten" , 17 )   , ( "sytten" , 17 )   , ( "atten" , 18 )   , ( "nitten" , 19 )@@ -241,7 +241,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(intet|ingen|null|en|ett|\x00e9n|to|tretten|tre|fire|femten|fem|seksten|seks|syv|sju|\x00e5tte|nitten|ni|ti|elleve|tolv|fjorten|sytten|s\x00f8tten|atten)"+    [ regex "(intet|ingen|null|en|ett|én|to|tretten|tre|fire|femten|fem|seksten|seks|syv|sju|åtte|nitten|ni|ti|elleve|tolv|fjorten|sytten|søtten|atten)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -255,12 +255,12 @@   , ( "tjue" , 20 )   , ( "tredve" , 30 )   , ( "tretti" , 30 )-  , ( "f\x00f8rti" , 40 )+  , ( "førti" , 40 )   , ( "femti" , 50 )   , ( "seksti" , 60 )   , ( "sytti" , 70 )-  , ( "s\x00f8tti" , 70 )-  , ( "\x00e5tti" , 80 )+  , ( "søtti" , 70 )+  , ( "åtti" , 80 )   , ( "nitti" , 90 )   ] @@ -268,7 +268,7 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(tyve|tjue|tredve|tretti|f\x00f8rti|femti|seksti|sytti|s\x00f8tti|\x00e5tti|nitti)"+    [ regex "(tyve|tjue|tredve|tretti|førti|femti|seksti|sytti|søtti|åtti|nitti)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Numeral/NL/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NL}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -47,6 +47,10 @@              , "drie en dertig"              , "0033"              ]+  , examples (NumeralValue 12)+             [ "twaalf"+             , "dozijn"+             ]   , examples (NumeralValue 14)              [ "14"              , "veertien"@@ -79,6 +83,9 @@   , examples (NumeralValue 5000)              [ "5 duizend"              , "vijf duizend"+             ]+  , examples (NumeralValue 144)+             [ "gros"              ]   , examples (NumeralValue 122)              [ "honderd tweeëntwintig"
Duckling/Numeral/NL/Rules.hs view
@@ -102,7 +102,7 @@ ruleInteger3 = Rule   { name = "integer ([2-9][1-9])"   , pattern =-    [ regex "(een|twee|drie|vier|vijf|zes|zeven|acht|negen)(?:e|\x00eb)n(twintig|dertig|veertig|vijftig|zestig|zeventig|tachtig|negentig)"+    [ regex "(een|twee|drie|vier|vijf|zes|zeven|acht|negen)(?:e|ë)n(twintig|dertig|veertig|vijftig|zestig|zeventig|tachtig|negentig)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (m1:m2:_)):_) -> do@@ -143,7 +143,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -205,12 +205,21 @@   , prod = \_ -> integer 12 >>= withGrain 1   } +ruleGross :: Rule+ruleGross = Rule+  { name = "gros"+  , pattern =+    [ regex "gros"+    ]+  , prod = \_ -> integer 144 >>= withGrain 1+  }+ zeroNineteenMap :: HashMap Text Integer zeroNineteenMap = HashMap.fromList   [ ("niks", 0)   , ("nul", 0)   , ("geen", 0)-  , ("\x00e9\x00e9n", 1)+  , ("één", 1)   , ("een", 1)   , ("twee", 2)   , ("drie", 3)@@ -236,7 +245,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(geen|nul|niks|een|\x00e9\x00e9n|twee|drie|vier|vijftien|vijf|zestien|zes|zeventien|zeven|achtien|acht|negentien|negen|tien|elf|twaalf|dertien|veertien)"+    [ regex "(geen|nul|niks|een|één|twee|drie|vier|vijftien|vijf|zestien|zes|zeventien|zeven|achtien|acht|negentien|negen|tien|elf|twaalf|dertien|veertien)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -274,6 +283,7 @@   , ruleDecimalNumeral   , ruleDecimalWithThousandsSeparator   , ruleDozen+  , ruleGross   , ruleFew   , ruleInteger   , ruleInteger2
Duckling/Numeral/PL/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PL}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/PL/Rules.hs view
@@ -28,7 +28,7 @@ ruleSixteen = Rule   { name = "sixteen"   , pattern =-    [ regex "szesna(s|\x015b)(tu|cie|toma)"+    [ regex "szesna(s|ś)(tu|cie|toma)"     ]   , prod = \_ -> integer 16   }@@ -37,7 +37,7 @@ ruleFourteen = Rule   { name = "fourteen"   , pattern =-    [ regex "czterna(s|\x015b)(tu|cie|toma)"+    [ regex "czterna(s|ś)(tu|cie|toma)"     ]   , prod = \_ -> integer 14   }@@ -46,7 +46,7 @@ ruleTwo = Rule   { name = "two"   , pattern =-    [ regex "dw(a|(o|\x00f3)(ch|m)|oma|iema|ie)"+    [ regex "dw(a|(o|ó)(ch|m)|oma|iema|ie)"     ]   , prod = \_ -> integer 2   }@@ -55,7 +55,7 @@ ruleSixty = Rule   { name = "sixty"   , pattern =-    [ regex "sze(\x015b\x0107)dziesi(\x0105)t|sze(\x015b\x0107)dziesi(\x0119)ci(u|oma)"+    [ regex "sze(ść)dziesi(ą)t|sze(ść)dziesi(ę)ci(u|oma)"     ]   , prod = \_ -> integer 60   }@@ -92,7 +92,7 @@ ruleOne = Rule   { name = "one"   , pattern =-    [ regex "jed(en|nego|nemu|nym|nej|n(a|\x0105))"+    [ regex "jed(en|nego|nemu|nym|nej|n(a|ą))"     ]   , prod = \_ -> integer 1   }@@ -114,7 +114,7 @@ ruleTen = Rule   { name = "ten"   , pattern =-    [ regex "dzisi(e|\x0119)(\x0107|c)(iu|ioma)?"+    [ regex "dzisi(e|ę)(ć|c)(iu|ioma)?"     ]   , prod = \_ -> integer 10   }@@ -149,7 +149,7 @@ ruleNine = Rule   { name = "nine"   , pattern =-    [ regex "dziewi(e|\x0119)(\x0107|c)(iu|ioma)?"+    [ regex "dziewi(e|ę)(ć|c)(iu|ioma)?"     ]   , prod = \_ -> integer 9   }@@ -167,7 +167,7 @@ ruleTwelve = Rule   { name = "twelve"   , pattern =-    [ regex "dwunast(u|oma)|dwana(\x015b|s)cie"+    [ regex "dwunast(u|oma)|dwana(ś|s)cie"     ]   , prod = \_ -> integer 12   }@@ -187,7 +187,7 @@ ruleFifteen = Rule   { name = "fifteen"   , pattern =-    [ regex "pi(\x0119)tna(s|\x015b)(ta|tu|cie|toma)"+    [ regex "pi(ę)tna(s|ś)(ta|tu|cie|toma)"     ]   , prod = \_ -> integer 15   }@@ -196,7 +196,7 @@ ruleEleven = Rule   { name = "eleven"   , pattern =-    [ regex "jedena(stu|(s|\x015b)cie|stoma)"+    [ regex "jedena(stu|(s|ś)cie|stoma)"     ]   , prod = \_ -> integer 11   }@@ -205,7 +205,7 @@ ruleThirteen = Rule   { name = "thirteen"   , pattern =-    [ regex "trzyna(\x015b|s)(tu|cie|toma)"+    [ regex "trzyna(ś|s)(tu|cie|toma)"     ]   , prod = \_ -> integer 13   }@@ -214,7 +214,7 @@ ruleThirty = Rule   { name = "thirty"   , pattern =-    [ regex "trzydzie(\x015b)ci|trzydziest(u|oma)"+    [ regex "trzydzie(ś)ci|trzydziest(u|oma)"     ]   , prod = \_ -> integer 30   }@@ -223,7 +223,7 @@ ruleNumeral2 = Rule   { name = "number 200"   , pattern =-    [ regex "dwie((\x015b)cie| setki)"+    [ regex "dwie((ś)cie| setki)"     ]   , prod = \_ -> integer 200 >>= withGrain 2   }@@ -232,7 +232,7 @@ ruleSeventeen = Rule   { name = "seventeen"   , pattern =-    [ regex "siedemna(s|\x015b)(tu|cie|toma)"+    [ regex "siedemna(s|ś)(tu|cie|toma)"     ]   , prod = \_ -> integer 17   }@@ -250,7 +250,7 @@ ruleNumeral9 = Rule   { name = "number 900"   , pattern =-    [ regex "dziewi(\x0119\x0107)(set| setek)"+    [ regex "dziewi(ęć)(set| setek)"     ]   , prod = \_ -> integer 900 >>= withGrain 2   }@@ -268,7 +268,7 @@ ruleTwenty = Rule   { name = "twenty"   , pattern =-    [ regex "dwadzie(\x015b|s)cia|dwudziest(u|oma)"+    [ regex "dwadzie(ś|s)cia|dwudziest(u|oma)"     ]   , prod = \_ -> integer 20   }@@ -286,7 +286,7 @@ ruleEight = Rule   { name = "eight"   , pattern =-    [ regex "o(s|\x015b)(iem|miu|mioma)"+    [ regex "o(s|ś)(iem|miu|mioma)"     ]   , prod = \_ -> integer 8   }@@ -295,7 +295,7 @@ ruleNumeral5 = Rule   { name = "number 500"   , pattern =-    [ regex "pi(\x0119\x0107)(set| setek)"+    [ regex "pi(ęć)(set| setek)"     ]   , prod = \_ -> integer 500 >>= withGrain 2   }@@ -322,7 +322,7 @@ ruleThousand = Rule   { name = "thousand"   , pattern =-    [ regex "ty(s|\x015b)i(a|\x0105|\x0119)c(e|y)?"+    [ regex "ty(s|ś)i(a|ą|ę)c(e|y)?"     ]   , prod = \_ -> integer 1000 >>= withGrain 3 >>= withMultipliable   }@@ -331,7 +331,7 @@ ruleMillion = Rule   { name = "million"   , pattern =-    [ regex "milion(y|(\x00f3)w)?"+    [ regex "milion(y|(ó)w)?"     ]   , prod = \_ -> integer 1000000 >>= withGrain 6 >>= withMultipliable   }@@ -385,7 +385,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -429,7 +429,7 @@ ruleSix = Rule   { name = "six"   , pattern =-    [ regex "sze(s|\x015b)(c|\x0107)(iu|oma|u)?"+    [ regex "sze(s|ś)(c|ć)(iu|oma|u)?"     ]   , prod = \_ -> integer 6   }@@ -438,7 +438,7 @@ ruleNumeral6 = Rule   { name = "number 600"   , pattern =-    [ regex "(sze\x015b\x0107(set| setek))"+    [ regex "(sześć(set| setek))"     ]   , prod = \_ -> integer 600 >>= withGrain 2   }@@ -456,7 +456,7 @@ ruleFive = Rule   { name = "five"   , pattern =-    [ regex "pi(e|\x0119)(c|\x0107)(iu|oma|u)?"+    [ regex "pi(e|ę)(c|ć)(iu|oma|u)?"     ]   , prod = \_ -> integer 5   }@@ -465,7 +465,7 @@ ruleFourty = Rule   { name = "fou?rty"   , pattern =-    [ regex "czterdzie(\x015b)ci|czterdziest(u|oma)"+    [ regex "czterdzie(ś)ci|czterdziest(u|oma)"     ]   , prod = \_ -> integer 40   }@@ -492,7 +492,7 @@ ruleNineteen = Rule   { name = "nineteen"   , pattern =-    [ regex "dziewietna(s|\x015b)(tu|cie|toma)"+    [ regex "dziewietna(s|ś)(tu|cie|toma)"     ]   , prod = \_ -> integer 19   }@@ -515,7 +515,7 @@ ruleEighteen = Rule   { name = "eighteen"   , pattern =-    [ regex "osiemna(s|\x015b)(tu|cie|toma)"+    [ regex "osiemna(s|ś)(tu|cie|toma)"     ]   , prod = \_ -> integer 18   }@@ -550,7 +550,7 @@ ruleFifty = Rule   { name = "fifty"   , pattern =-    [ regex "pi(\x0119\x0107)dziesi(\x0105)t|pi(\x0119\x0107)dziesi(\x0119)ci(u|oma)"+    [ regex "pi(ęć)dziesi(ą)t|pi(ęć)dziesi(ę)ci(u|oma)"     ]   , prod = \_ -> integer 50   }
Duckling/Numeral/PT/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/PT/Rules.hs view
@@ -80,7 +80,7 @@ ruleNumeral2 = Rule   { name = "number (20..90)"   , pattern =-    [ regex "(vinte|trinta|quarenta|cincoenta|cinq(\x00fc)enta|cinquenta|sessenta|setenta|oitenta|noventa)"+    [ regex "(vinte|trinta|quarenta|cincoenta|cinq(ü)enta|cinquenta|sessenta|setenta|oitenta|noventa)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -102,7 +102,7 @@ ruleNumeral = Rule   { name = "number (0..15)"   , pattern =-    [ regex "(zero|uma?|d(oi|ua)s|tr(\x00ea|e)s|quatro|cinco|seis|sete|oito|nove|dez|onze|doze|treze|(ca|qua)torze|quinze)"+    [ regex "(zero|uma?|d(oi|ua)s|tr(ê|e)s|quatro|cinco|seis|sete|oito|nove|dez|onze|doze|treze|(ca|qua)torze|quinze)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -111,7 +111,7 @@         "um" -> integer 1         "dois" -> integer 2         "duas" -> integer 2-        "tr\x00eas" -> integer 3+        "três" -> integer 3         "tres" -> integer 3         "quatro" -> integer 4         "cinco" -> integer 5@@ -167,7 +167,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -224,7 +224,7 @@ ruleDozen = Rule   { name = "dozen"   , pattern =-    [ regex "d(\x00fa|u)zias?"+    [ regex "d(ú|u)zias?"     ]   , prod = \_ -> integer 12 >>= withGrain 1 >>= withMultipliable   }
Duckling/Numeral/RO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/RO/Rules.hs view
@@ -138,7 +138,7 @@   { name = "intersect (cu și)"   , pattern =     [ numberWith (fromMaybe 0 . TNumeral.grain) (>1)-    , regex "(s|\x0219)i"+    , regex "(s|ș)i"     , numberWith TNumeral.multipliable not     ]   , prod = \tokens -> case tokens of@@ -166,13 +166,13 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(sut(a|e|\x0103)?|milio(n|ane)?|miliar(de?)?|mi[ei]?)"+    [ regex "(sut(a|e|ă)?|milio(n|ane)?|miliar(de?)?|mi[ei]?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "suta"      -> double 1e2 >>= withGrain 2 >>= withMultipliable         "sute"      -> double 1e2 >>= withGrain 2 >>= withMultipliable-        "sut\x0103" -> double 1e2 >>= withGrain 2 >>= withMultipliable+        "sută" -> double 1e2 >>= withGrain 2 >>= withMultipliable         "mi"        -> double 1e3 >>= withGrain 3 >>= withMultipliable         "mie"       -> double 1e3 >>= withGrain 3 >>= withMultipliable         "mii"       -> double 1e3 >>= withGrain 3 >>= withMultipliable@@ -200,13 +200,13 @@   , ("unu", 1)   , ("unul", 1)   , ("intai", 1)-  , ("\x00eentai", 1)-  , ("int\x00e2i", 1)-  , ("\x00eent\x00e2i", 1)+  , ("întai", 1)+  , ("intâi", 1)+  , ("întâi", 1)   , ("o", 1)   , ("doi", 2)   , ("doua", 2)-  , ("dou\x0103", 2)+  , ("două", 2)   , ("trei", 3)   , ("patru", 4)   , ("cinci", 5)@@ -216,7 +216,7 @@   , ("\537apte", 7)   , ("opt", 8)   , ("noua", 9)-  , ("nou\x0103", 9)+  , ("nouă", 9)   , ("zece", 10)   , ("zeci", 10)   ]@@ -225,7 +225,7 @@ ruleIntegerZeroTen = Rule   { name = "integer (0..10)"   , pattern =-    [ regex "(zero|nimic|nici(\\s?o|\\sun(a|ul?))|una|unul?|doi|dou(a|\x0103)|trei|patru|cinci|(s|\x0219)ase|(s|\x0219)apte|opt|nou(a|\x0103)|zec[ei]|(i|\x00ee)nt(a|\x00e2)i|un|o)"+    [ regex "(zero|nimic|nici(\\s?o|\\sun(a|ul?))|una|unul?|doi|dou(a|ă)|trei|patru|cinci|(s|ș)ase|(s|ș)apte|opt|nou(a|ă)|zec[ei]|(i|î)nt(a|â)i|un|o)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -250,14 +250,14 @@   , ("opti", 18)   , ("opt", 18)   , ("noua", 19)-  , ("nou\x0103", 19)+  , ("nouă", 19)   ]  ruleInteger :: Rule ruleInteger = Rule   { name = "integer (11..19)"   , pattern =-    [ regex "(cin|sapti|opti)(s|\x0219)pe|(cinci|(s|\x0219)apte|opt)sprezece|(un|doi|trei|pai|(s|\x0219)ai|nou(a|\x0103))((s|\x0219)pe|sprezece)"+    [ regex "(cin|sapti|opti)(s|ș)pe|(cinci|(s|ș)apte|opt)sprezece|(un|doi|trei|pai|(s|ș)ai|nou(a|ă))((s|ș)pe|sprezece)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (e1:_:e2:_:r:_)):_) -> do@@ -274,7 +274,7 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(dou(a|\x0103)|trei|patru|cinci|(s|\x0219)ai|(s|\x0219)apte|opt|nou(a|\x0103))\\s?zeci"+    [ regex "(dou(a|ă)|trei|patru|cinci|(s|ș)ai|(s|ș)apte|opt|nou(a|ă))\\s?zeci"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> do
Duckling/Numeral/RU/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RU}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/RU/Rules.hs view
@@ -29,21 +29,21 @@  dozensMap :: HashMap Text Integer dozensMap = HashMap.fromList-  [ ( "\x0434\x0432\x0430\x0434\x0446\x0430\x0442\x044c", 20)-  , ( "\x0442\x0440\x0438\x0434\x0446\x0430\x0442\x044c", 30)-  , ( "\x0441\x043e\x0440\x043e\x043a", 40)-  , ( "\x043f\x044f\x0442\x044c\x0434\x0435\x0441\x044f\x0442", 50)-  , ( "\x0448\x0435\x0441\x0442\x044c\x0434\x0435\x0441\x044f\x0442", 60)-  , ( "\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442", 70)-  , ( "\x0432\x043e\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442", 80)-  , ( "\x0434\x0435\x0432\x044f\x043d\x043e\x0441\x0442\x043e", 90)+  [ ( "двадцать", 20)+  , ( "тридцать", 30)+  , ( "сорок", 40)+  , ( "пятьдесят", 50)+  , ( "шестьдесят", 60)+  , ( "семьдесят", 70)+  , ( "восемьдесят", 80)+  , ( "девяносто", 90)   ]  ruleInteger5 :: Rule ruleInteger5 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(\x0434\x0432\x0430\x0434\x0446\x0430\x0442\x044c|\x0442\x0440\x0438\x0434\x0446\x0430\x0442\x044c|\x0441\x043e\x0440\x043e\x043a|\x043f\x044f\x0442\x044c\x0434\x0435\x0441\x044f\x0442|\x0448\x0435\x0441\x0442\x044c\x0434\x0435\x0441\x044f\x0442|\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442|\x0432\x043e\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442|\x0434\x0435\x0432\x044f\x043d\x043e\x0441\x0442\x043e)"+    [ regex "(двадцать|тридцать|сорок|пятьдесят|шестьдесят|семьдесят|восемьдесят|девяносто)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -91,29 +91,29 @@ ruleInteger3 = Rule   { name = "integer 2"   , pattern =-    [ regex "(\x0434\x0432\x0430|\x0434\x0432\x0435|\x0434\x0432\x043e\x0435|\x043f\x0430\x0440\x0430|\x043f\x0430\x0440\x0443|\x043f\x0430\x0440\x043e\x0447\x043a\x0443|\x043f\x0430\x0440\x043e\x0447\x043a\x0430)"+    [ regex "(два|две|двое|пара|пару|парочку|парочка)"     ]   , prod = \_ -> integer 2   }  hundredsMap :: HashMap Text Integer hundredsMap = HashMap.fromList-  [ ( "\x0441\x0442\x043e", 100)-  , ( "\x0434\x0432\x0435\x0441\x0442\x0438", 200)-  , ( "\x0442\x0440\x0438\x0441\x0442\x043e", 300)-  , ( "\x0447\x0435\x0442\x044b\x0440\x0435\x0441\x0442\x043e", 400)-  , ( "\x043f\x044f\x0442\x044c\x0441\x043e\x0442", 500)-  , ( "\x0448\x0435\x0441\x0442\x044c\x0441\x043e\x0442", 600)-  , ( "\x0441\x0435\x043c\x044c\x0441\x043e\x0442", 700)-  , ( "\x0432\x043e\x0441\x0435\x043c\x044c\x0441\x043e\x0442", 800)-  , ( "\x0434\x0435\x0432\x044f\x0442\x044c\x0441\x043e\x0442", 900)+  [ ( "сто", 100)+  , ( "двести", 200)+  , ( "тристо", 300)+  , ( "четыресто", 400)+  , ( "пятьсот", 500)+  , ( "шестьсот", 600)+  , ( "семьсот", 700)+  , ( "восемьсот", 800)+  , ( "девятьсот", 900)   ]  ruleInteger6 :: Rule ruleInteger6 = Rule   { name = "integer (100..900)"   , pattern =-    [ regex "(\x0441\x0442\x043e|\x0434\x0432\x0435\x0441\x0442\x0438|\x0442\x0440\x0438\x0441\x0442\x043e|\x0447\x0435\x0442\x044b\x0440\x0435\x0441\x0442\x043e|\x043f\x044f\x0442\x044c\x0441\x043e\x0442|\x0448\x0435\x0441\x0442\x044c\x0441\x043e\x0442|\x0441\x0435\x043c\x044c\x0441\x043e\x0442|\x0432\x043e\x0441\x0435\x043c\x044c\x0441\x043e\x0442|\x0434\x0435\x0432\x044f\x0442\x044c\x0441\x043e\x0442)"+    [ regex "(сто|двести|тристо|четыресто|пятьсот|шестьсот|семьсот|восемьсот|девятьсот)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -125,7 +125,7 @@ ruleNumeralsPrefixWithMinus = Rule   { name = "numbers prefix with -, minus"   , pattern =-    [ regex "-|\x043c\x0438\x043d\x0443\x0441\\s?"+    [ regex "-|минус\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -138,18 +138,18 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "((\x043a|\x043c|\x0433)|(\x041a|\x041c|\x0413))(?=[\\W\\$\x20ac]|$)"+    , regex "((к|м|г)|(К|М|Г))(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):        Token RegexMatch (GroupMatch (match:_)):        _) -> case Text.toLower match of-         "\x043a" -> double $ v * 1e3-         "\x041a" -> double $ v * 1e3-         "\x043c" -> double $ v * 1e6-         "\x041c" -> double $ v * 1e6-         "\x0433" -> double $ v * 1e9-         "\x0413" -> double $ v * 1e9+         "к" -> double $ v * 1e3+         "К" -> double $ v * 1e3+         "м" -> double $ v * 1e6+         "М" -> double $ v * 1e6+         "г" -> double $ v * 1e9+         "Г" -> double $ v * 1e9          _   -> Nothing       _ -> Nothing   }@@ -186,37 +186,37 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "(\x043d\x043e\x043b\x044c)"+    [ regex "(ноль)"     ]   , prod = \_ -> integer 0   }  threeToNineteenMap:: HashMap Text Integer threeToNineteenMap = HashMap.fromList-  [ ( "\x0442\x0440\x0438", 3)-  , ( "\x0447\x0435\x0442\x044b\x0440\x0435", 4)-  , ( "\x043f\x044f\x0442\x044c", 5)-  , ( "\x0448\x0435\x0441\x0442\x044c", 6)-  , ( "\x0441\x0435\x043c\x044c", 7)-  , ( "\x0432\x043e\x0441\x0435\x043c\x044c", 8)-  , ( "\x0434\x0435\x0432\x044f\x0442\x044c", 9)-  , ( "\x0434\x0435\x0441\x044f\x0442\x044c", 10)-  , ( "\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 11)-  , ( "\x0434\x0432\x0435\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 12)-  , ( "\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 13)-  , ( "\x0447\x0435\x0442\x044b\x0440\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 14)-  , ( "\x043f\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 15)-  , ( "\x0448\x0435\x0441\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 16)-  , ( "\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 17)-  , ( "\x0432\x043e\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 18)-  , ( "\x0434\x0435\x0432\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c", 19)+  [ ( "три", 3)+  , ( "четыре", 4)+  , ( "пять", 5)+  , ( "шесть", 6)+  , ( "семь", 7)+  , ( "восемь", 8)+  , ( "девять", 9)+  , ( "десять", 10)+  , ( "одинадцать", 11)+  , ( "двенадцать", 12)+  , ( "тринадцать", 13)+  , ( "четырнадцать", 14)+  , ( "пятнадцать", 15)+  , ( "шестнадцать", 16)+  , ( "семнадцать", 17)+  , ( "восемнадцать", 18)+  , ( "девятнадцать", 19)   ]  ruleInteger4 :: Rule ruleInteger4 = Rule   { name = "integer (3..19)"   , pattern =-    [ regex "(\x0442\x0440\x0438|\x0447\x0435\x0442\x044b\x0440\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0447\x0435\x0442\x044b\x0440\x0435|\x043f\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x043f\x044f\x0442\x044c|\x0448\x0435\x0441\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0448\x0435\x0441\x0442\x044c|\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0441\x0435\x043c\x044c|\x0432\x043e\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0432\x043e\x0441\x0435\x043c\x044c|\x0434\x0435\x0432\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0434\x0435\x0432\x044f\x0442\x044c|\x0434\x0435\x0441\x044f\x0442\x044c|\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0434\x0432\x0435\x043d\x0430\x0434\x0446\x0430\x0442\x044c|\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x0430\x0442\x044c)"+    [ regex "(три|четырнадцать|четыре|пятнадцать|пять|шестнадцать|шесть|семнадцать|семь|восемнадцать|восемь|девятнадцать|девять|десять|одинадцать|двенадцать|тринадцать)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -228,7 +228,7 @@ ruleInteger2 = Rule   { name = "integer 1"   , pattern =-    [ regex "(\x043e\x0434\x0438\x043d|\x043e\x0434\x043d\x0430|\x043e\x0434\x043d\x0443)"+    [ regex "(один|одна|одну)"     ]   , prod = \_ -> integer 1   }@@ -238,7 +238,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "\x0442\x043e\x0447\x043a\x0430"+    , regex "точка"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
Duckling/Numeral/SV/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = SV}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/SV/Rules.hs view
@@ -75,7 +75,7 @@ ruleFew = Rule   { name = "few"   , pattern =-    [ regex "(n\x00e5gra )?f\x00e5"+    [ regex "(några )?få"     ]   , prod = \_ -> integer 3   }@@ -161,7 +161,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -217,13 +217,13 @@   , ( "noll"     , 0 )   , ( "en"       , 1 )   , ( "ett"      , 1 )-  , ( "tv\x00e5" , 2 )+  , ( "två" , 2 )   , ( "tre"      , 3 )   , ( "fyra"     , 4 )   , ( "fem"      , 5 )   , ( "sex"      , 6 )   , ( "sju"      , 7 )-  , ( "\x00e5tta", 8 )+  , ( "åtta", 8 )   , ( "nio"      , 9 )   , ( "tio"      , 10 )   , ( "elva"     , 11 )@@ -241,7 +241,7 @@ ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(inget|ingen|noll|en|ett|tv\x00e5|tretton|tre|fyra|femton|fem|sexton|sex|sjutton|sju|\x00e5tta|nio|tio|elva|tolv|fjorton|arton|nitton)"+    [ regex "(inget|ingen|noll|en|ett|två|tretton|tre|fyra|femton|fem|sexton|sex|sjutton|sju|åtta|nio|tio|elva|tolv|fjorton|arton|nitton)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -257,7 +257,7 @@   , ( "femtio"     , 50)   , ( "sextio"     , 60)   , ( "sjuttio"    , 70)-  , ( "\x00e5ttio" , 80)+  , ( "åttio" , 80)   , ( "nittio"     , 90)   ] @@ -265,7 +265,7 @@ ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(tjugo|trettio|fyrtio|femtio|sextio|sjuttio|\x00e5ttio|nittio)"+    [ regex "(tjugo|trettio|fyrtio|femtio|sextio|sjuttio|åttio|nittio)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Numeral/TR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = TR}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/TR/Rules.hs view
@@ -29,15 +29,15 @@  hundredsMap :: HashMap Text Integer hundredsMap = HashMap.fromList-  [ ( "y\x00fcz", 100)-  , ( "ikiy\x00fcz", 200)-  , ( "\x00fc\x00e7y\x00fcz", 300)-  , ( "d\x00f6rty\x00fcz", 400)-  , ( "be\x015fy\x00fcz", 500)-  , ( "alt\x0131y\x00fcz", 600)-  , ( "yediy\x00fcz", 700)-  , ( "sekizy\x00fcz", 800)-  , ( "dokuzy\x00fcz", 900)+  [ ( "yüz", 100)+  , ( "ikiyüz", 200)+  , ( "üçyüz", 300)+  , ( "dörtyüz", 400)+  , ( "beşyüz", 500)+  , ( "altıyüz", 600)+  , ( "yediyüz", 700)+  , ( "sekizyüz", 800)+  , ( "dokuzyüz", 900)   ]  @@ -45,7 +45,7 @@ ruleInteger5 = Rule   { name = "integer 100..900"   , pattern =-    [ regex "(y\x00fcz|ikiy\x00fcz|\x00fc\x00e7y\x00fcz|d\x00f6rty\x00fcz|be\x015fy\x00fcz|alt\x0131y\x00fcz|yediy\x00fcz|sekizy\x00fcz|dokuzy\x00fcz)"+    [ regex "(yüz|ikiyüz|üçyüz|dörtyüz|beşyüz|altıyüz|yediyüz|sekizyüz|dokuzyüz)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -83,7 +83,7 @@ ruleACoupleOf = Rule   { name = "a couple (of)"   , pattern =-    [ regex "(bir )?\x00e7ift"+    [ regex "(bir )?çift"     ]   , prod = \_ -> integer 2 >>= withGrain 1   }@@ -151,23 +151,23 @@  numeralSuffixesHalfsuffixTextMap :: HashMap Text Double numeralSuffixesHalfsuffixTextMap = HashMap.fromList-  [ ( "birbu\x00e7uk", 1.5)-  , ( "bibu\x00e7uk", 1.5)-  , ( "ikibu\x00e7uk", 2.5)-  , ( "\x00fc\231bu\x00e7uk", 3.5)-  , ( "d\x00f6rtbu\x00e7uk", 4.5)-  , ( "be\351bu\x00e7uk", 5.5)-  , ( "alt\x0131bu\x00e7uk", 6.5)-  , ( "yedibu\x00e7uk", 7.5)-  , ( "sekizbu\x00e7uk", 8.5)-  , ( "dokuzbu\x00e7uk", 9.5)+  [ ( "birbuçuk", 1.5)+  , ( "bibuçuk", 1.5)+  , ( "ikibuçuk", 2.5)+  , ( "ü\231buçuk", 3.5)+  , ( "dörtbuçuk", 4.5)+  , ( "be\351buçuk", 5.5)+  , ( "altıbuçuk", 6.5)+  , ( "yedibuçuk", 7.5)+  , ( "sekizbuçuk", 8.5)+  , ( "dokuzbuçuk", 9.5)   ]  ruleNumeralSuffixesHalfsuffixText :: Rule ruleNumeralSuffixesHalfsuffixText = Rule   { name = "number suffixes (half-suffix text) (1..9)"   , pattern =-    [ regex "((bir?|iki|\x00fc\x00e7|d\x00f6rt|be\x015f|alt\x0131|yedi|sekiz|dokuz)(bu\x00e7uk))"+    [ regex "((bir?|iki|üç|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -180,98 +180,98 @@   [ ( "onbi", 11)   , ( "onbir", 11)   , ( "oniki", 12)-  , ( "on\x00fc\x00e7", 13)-  , ( "ond\x00f6rt", 14)-  , ( "onbe\x015f", 15)-  , ( "onalt\x0131", 16)+  , ( "onüç", 13)+  , ( "ondört", 14)+  , ( "onbeş", 15)+  , ( "onaltı", 16)   , ( "onyedi", 17)   , ( "onsekiz", 18)   , ( "ondokuz", 19)   , ( "yirmibi", 21)   , ( "yirmibir", 21)   , ( "yirmiiki", 22)-  , ( "yirmi\x00fc\x00e7", 23)-  , ( "yirmid\x00f6rt", 24)-  , ( "yirmibe\x015f", 25)-  , ( "yirmialt\x0131", 26)+  , ( "yirmiüç", 23)+  , ( "yirmidört", 24)+  , ( "yirmibeş", 25)+  , ( "yirmialtı", 26)   , ( "yirmiyedi", 27)   , ( "yirmisekiz", 28)   , ( "yirmidokuz", 29)   , ( "otuzbi", 31)   , ( "otuzbir", 31)   , ( "otuziki", 32)-  , ( "otuz\x00fc\x00e7", 33)-  , ( "otuzd\x00f6rt", 34)-  , ( "otuzbe\x015f", 35)-  , ( "otuzalt\x0131", 36)+  , ( "otuzüç", 33)+  , ( "otuzdört", 34)+  , ( "otuzbeş", 35)+  , ( "otuzaltı", 36)   , ( "otuzyedi", 37)   , ( "otuzsekiz", 38)   , ( "otuzdokuz", 39)-  , ( "k\x0131rkbir", 41)-  , ( "k\x0131rkbi", 41)-  , ( "k\x0131rkiki", 42)-  , ( "k\x0131rk\x00fc\x00e7", 43)-  , ( "k\x0131rkd\x00f6rt", 44)-  , ( "k\x0131rkbe\x015f", 45)-  , ( "k\x0131rkalt\x0131", 46)-  , ( "k\x0131rkyedi", 47)-  , ( "k\x0131rksekiz", 48)-  , ( "k\x0131rkdokuz", 49)+  , ( "kırkbir", 41)+  , ( "kırkbi", 41)+  , ( "kırkiki", 42)+  , ( "kırküç", 43)+  , ( "kırkdört", 44)+  , ( "kırkbeş", 45)+  , ( "kırkaltı", 46)+  , ( "kırkyedi", 47)+  , ( "kırksekiz", 48)+  , ( "kırkdokuz", 49)   , ( "ellibi", 51)   , ( "ellibir", 51)   , ( "elliiki", 52)-  , ( "elli\x00fc\x00e7", 53)-  , ( "ellid\x00f6rt", 54)-  , ( "ellibe\x015f", 55)-  , ( "ellialt\x0131", 56)+  , ( "elliüç", 53)+  , ( "ellidört", 54)+  , ( "ellibeş", 55)+  , ( "ellialtı", 56)   , ( "elliyedi", 57)   , ( "ellisekiz", 58)   , ( "ellidokuz", 59)-  , ( "altm\x0131\x015fbir", 61)-  , ( "atm\x0131\x015fbir", 61)-  , ( "atm\x0131\x015fiki", 62)-  , ( "altm\x0131\x015fiki", 62)-  , ( "atm\x0131\x015f\x00fc\x00e7", 63)-  , ( "altm\x0131\x015f\x00fc\x00e7", 63)-  , ( "atm\x0131\x015fd\x00f6rt", 64)-  , ( "altm\x0131\x015fd\x00f6rt", 64)-  , ( "atm\x0131\x015fbe\x015f", 65)-  , ( "altm\x0131\x015fbe\x015f", 65)-  , ( "atm\x0131\x015falt\x0131", 66)-  , ( "altm\x0131\x015falt\x0131", 66)-  , ( "altm\x0131\x015fyedi", 67)-  , ( "atm\x0131\x015fyedi", 67)-  , ( "altm\x0131\x015fsekiz", 68)-  , ( "atm\x0131\x015fsekiz", 68)-  , ( "atm\x0131\x015fdokuz", 69)-  , ( "altm\x0131\x015fdokuz", 69)-  , ( "yetmi\x015fbir", 71)-  , ( "yetmi\x015fbi", 71)-  , ( "yetmi\x015fiki", 72)-  , ( "yetmi\x015f\x00fc\x00e7", 73)-  , ( "yetmi\x015fd\x00f6rt", 74)-  , ( "yetmi\x015fbe\x015f", 75)-  , ( "yetmi\x015falt\x0131", 76)-  , ( "yetmi\x015fyedi", 77)-  , ( "yetmi\x015fsekiz", 78)-  , ( "yetmi\x015fdokuz", 79)+  , ( "altmışbir", 61)+  , ( "atmışbir", 61)+  , ( "atmışiki", 62)+  , ( "altmışiki", 62)+  , ( "atmışüç", 63)+  , ( "altmışüç", 63)+  , ( "atmışdört", 64)+  , ( "altmışdört", 64)+  , ( "atmışbeş", 65)+  , ( "altmışbeş", 65)+  , ( "atmışaltı", 66)+  , ( "altmışaltı", 66)+  , ( "altmışyedi", 67)+  , ( "atmışyedi", 67)+  , ( "altmışsekiz", 68)+  , ( "atmışsekiz", 68)+  , ( "atmışdokuz", 69)+  , ( "altmışdokuz", 69)+  , ( "yetmişbir", 71)+  , ( "yetmişbi", 71)+  , ( "yetmişiki", 72)+  , ( "yetmişüç", 73)+  , ( "yetmişdört", 74)+  , ( "yetmişbeş", 75)+  , ( "yetmişaltı", 76)+  , ( "yetmişyedi", 77)+  , ( "yetmişsekiz", 78)+  , ( "yetmişdokuz", 79)   , ( "seksenbir", 81)   , ( "seksenbi", 81)   , ( "sekseniki", 82)-  , ( "seksen\x00fc\x00e7", 83)-  , ( "seksend\x00f6rt", 84)-  , ( "seksenbe\x015f", 85)-  , ( "seksenalt\x0131", 86)+  , ( "seksenüç", 83)+  , ( "seksendört", 84)+  , ( "seksenbeş", 85)+  , ( "seksenaltı", 86)   , ( "seksenyedi", 87)   , ( "seksensekiz", 88)   , ( "seksendokuz", 89)   , ( "doksanbi", 91)   , ( "doksanbir", 91)   , ( "doksaniki", 92)-  , ( "doksan\x00fc\x00e7", 93)-  , ( "doksand\x00f6rt", 94)-  , ( "doksanbe\x015f", 95)-  , ( "doksanalt\x0131", 96)+  , ( "doksanüç", 93)+  , ( "doksandört", 94)+  , ( "doksanbeş", 95)+  , ( "doksanaltı", 96)   , ( "doksanyedi", 97)   , ( "doksansekiz", 98)   , ( "doksandokuz", 99)@@ -281,7 +281,7 @@ ruleInteger3 = Rule   { name = "integer 11..19 21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99"   , pattern =-    [ regex "((on|yirmi|otuz|k\x0131rk|elli|atm\x0131\x015f|altm\x0131\x015f|yetmi\x015f|seksen|doksan)(bir|bi|iki|\x00fc\x00e7|d\x00f6rt|be\x015f|alt\x0131|yedi|sekiz|dokuz))"+    [ regex "((on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)(bir|bi|iki|üç|dört|beş|altı|yedi|sekiz|dokuz))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -294,10 +294,10 @@ thousandsMap = HashMap.fromList   [ ( "bin", 1000)   , ( "ikibin", 2000)-  , ( "\x00fc\x00e7bin", 3000)-  , ( "d\x00f6rtbin", 4000)-  , ( "be\x015fbin", 5000)-  , ( "alt\x0131bin", 6000)+  , ( "üçbin", 3000)+  , ( "dörtbin", 4000)+  , ( "beşbin", 5000)+  , ( "altıbin", 6000)   , ( "yedibin", 7000)   , ( "sekizbin", 8000)   , ( "dokuzbin", 9000)@@ -307,7 +307,7 @@ ruleInteger6 = Rule   { name = "integer 1000..9000"   , pattern =-    [ regex "(bin|ikibin|\x00fc\x00e7bin|d\x00f6rtbin|be\x015fbin|alt\x0131bin|yedibin|sekizbin|dokuzbin)"+    [ regex "(bin|ikibin|üçbin|dörtbin|beşbin|altıbin|yedibin|sekizbin|dokuzbin)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -334,7 +334,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmgb])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmgb])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -352,11 +352,11 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(y(\x00fc)z|bin|milyon)"+    [ regex "(y(ü)z|bin|milyon)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "y\x00fcz" -> double 1e2 >>= withGrain 2 >>= withMultipliable+        "yüz" -> double 1e2 >>= withGrain 2 >>= withMultipliable         "bin"      -> double 1e3 >>= withGrain 3 >>= withMultipliable         "milyon"   -> double 1e6 >>= withGrain 6 >>= withMultipliable         _          -> Nothing@@ -368,11 +368,11 @@   [  ( "onbin", 10000)    , ( "yirmibin", 20000)    , ( "otuzbin", 30000)-   , ( "k\x0131rkbin", 40000)+   , ( "kırkbin", 40000)    , ( "ellibin", 50000)-   , ( "altm\x0131\x015fbin", 60000)-   , ( "atm\x0131\x015fbin", 60000)-   , ( "yetmi\x015fbin", 70000)+   , ( "altmışbin", 60000)+   , ( "atmışbin", 60000)+   , ( "yetmişbin", 70000)    , ( "seksenbin", 80000)    , ( "doksanbin", 90000)   ]@@ -381,7 +381,7 @@ ruleInteger7 = Rule   { name = "integer 10000..90000"   , pattern =-    [ regex "(onbin|yirmibin|otuzbin|k\x0131rkbin|ellibin|atm\x0131\x015fbin|altm\x0131\x015fbin|yetmi\x015fbin|seksenbin|doksanbin)"+    [ regex "(onbin|yirmibin|otuzbin|kırkbin|ellibin|atmışbin|altmışbin|yetmişbin|seksenbin|doksanbin)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -391,22 +391,22 @@  hundredThousandsMap :: HashMap Text Integer hundredThousandsMap = HashMap.fromList-  [ ( "y\x00fczbin", 100000)-  , ( "ikiy\x00fczbin", 200000)-  , ( "\x00fc\x00e7y\x00fczbin", 300000)-  , ( "d\x00f6rty\x00fczbin", 400000)-  , ( "be\x015fy\x00fczbin", 500000)-  , ( "alt\x0131y\x00fczbin", 600000)-  , ( "yediy\x00fczbin", 700000)-  , ( "sekizy\x00fczbin", 800000)-  , ( "dokuzy\x00fczbin", 900000)+  [ ( "yüzbin", 100000)+  , ( "ikiyüzbin", 200000)+  , ( "üçyüzbin", 300000)+  , ( "dörtyüzbin", 400000)+  , ( "beşyüzbin", 500000)+  , ( "altıyüzbin", 600000)+  , ( "yediyüzbin", 700000)+  , ( "sekizyüzbin", 800000)+  , ( "dokuzyüzbin", 900000)   ]  ruleInteger8 :: Rule ruleInteger8 = Rule   { name = "integer 100000..900000"   , pattern =-    [ regex "(y\x00fczbin|ikiy\x00fczbin|\x00fc\x00e7y\x00fczbin|d\x00f6rty\x00fczbin|be\x015fy\x00fczbin|alt\x0131y\x00fczbin|yediy\x00fczbin|sekizy\x00fczbin|dokuzy\x00fczbin)"+    [ regex "(yüzbin|ikiyüzbin|üçyüzbin|dörtyüzbin|beşyüzbin|altıyüzbin|yediyüzbin|sekizyüzbin|dokuzyüzbin)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -418,118 +418,118 @@ ruleHalf = Rule   { name = "half"   , pattern =-    [ regex "(yar\x0131m)"+    [ regex "(yarım)"     ]   , prod = \_ -> double 0.5   }  integer9Map :: HashMap Text Double integer9Map = HashMap.fromList-  [ ( "onbirbu\x00e7uk", 11.5)-  , ( "onbibu\x00e7uk", 11.5)-  , ( "onikibu\x00e7uk", 12.5)-  , ( "on\x00fc\x00e7bu\x00e7uk", 13.5)-  , ( "ond\x00f6rtbu\x00e7uk", 14.5)-  , ( "onbe\x015fbu\x00e7uk", 15.5)-  , ( "onalt\x0131bu\x00e7uk", 16.5)-  , ( "onyedibu\x00e7uk", 17.5)-  , ( "onsekizbu\x00e7uk", 18.5)-  , ( "ondokuzbu\x00e7uk", 19.5)-  , ( "yirmibibu\x00e7uk", 21.5)-  , ( "yirmibirbu\x00e7uk", 21.5)-  , ( "yirmiikibu\x00e7uk", 22.5)-  , ( "yirmi\x00fc\x00e7bu\x00e7uk", 23.5)-  , ( "yirmid\x00f6rtbu\x00e7uk", 24.5)-  , ( "yirmibe\x015fbu\x00e7uk", 25.5)-  , ( "yirmialt\x0131bu\x00e7uk", 26.5)-  , ( "yirmiyedibu\x00e7uk", 27.5)-  , ( "yirmisekizbu\x00e7uk", 28.5)-  , ( "yirmidokuzbu\x00e7uk", 29.5)-  , ( "otuzbibu\x00e7uk", 31.5)-  , ( "otuzbirbu\x00e7uk", 31.5)-  , ( "otuzikibu\x00e7uk", 32.5)-  , ( "otuz\x00fc\x00e7bu\x00e7uk", 33.5)-  , ( "otuzd\x00f6rtbu\x00e7uk", 34.5)-  , ( "otuzbe\x015fbu\x00e7uk", 35.5)-  , ( "otuzalt\x0131bu\x00e7uk", 36.5)-  , ( "otuzyedibu\x00e7uk", 37.5)-  , ( "otuzsekizbu\x00e7uk", 38.5)-  , ( "otuzdokuzbu\x00e7uk", 39.5)-  , ( "k\x0131rkbirbu\x00e7uk", 41.5)-  , ( "k\x0131rkbibu\x00e7uk", 41.5)-  , ( "k\x0131rkikibu\x00e7uk", 42.5)-  , ( "k\x0131rk\x00fc\x00e7bu\x00e7uk", 43.5)-  , ( "k\x0131rkd\x00f6rtbu\x00e7uk", 44.5)-  , ( "k\x0131rkbe\x015fbu\x00e7uk", 45.5)-  , ( "k\x0131rkalt\x0131bu\x00e7uk", 46.5)-  , ( "k\x0131rkyedibu\x00e7uk", 47.5)-  , ( "k\x0131rksekizbu\x00e7uk", 48.5)-  , ( "k\x0131rkdokuzbu\x00e7uk", 49.5)-  , ( "ellibibu\x00e7uk", 51.5)-  , ( "ellibirbu\x00e7uk", 51.5)-  , ( "elliikibu\x00e7uk", 52.5)-  , ( "elli\x00fc\x00e7bu\x00e7uk", 53.5)-  , ( "ellid\x00f6rtbu\x00e7uk", 54.5)-  , ( "ellibe\x015fbu\x00e7uk", 55.5)-  , ( "ellialt\x0131bu\x00e7uk", 56.5)-  , ( "elliyedibu\x00e7uk", 57.5)-  , ( "ellisekizbu\x00e7uk", 58.5)-  , ( "ellidokuzbu\x00e7uk", 59.5)-  , ( "altm\x0131\x015fbirbu\x00e7uk", 61.5)-  , ( "atm\x0131\x015fbirbu\x00e7uk", 61.5)-  , ( "altm\x0131\x015fikibu\x00e7uk", 62.5)-  , ( "atm\x0131\x015fikibu\x00e7uk", 62.5)-  , ( "atm\x0131\x015f\x00fc\x00e7bu\x00e7uk", 63.5)-  , ( "altm\x0131\x015f\x00fc\x00e7bu\x00e7uk", 63.5)-  , ( "altm\x0131\x015fd\x00f6rtbu\x00e7uk", 64.5)-  , ( "atm\x0131\x015fd\x00f6rtbu\x00e7uk", 64.5)-  , ( "altm\x0131\x015fbe\x015fbu\x00e7uk", 65.5)-  , ( "atm\x0131\x015fbe\x015fbu\x00e7uk", 65.5)-  , ( "altm\x0131\x015falt\x0131bu\x00e7uk", 66.5)-  , ( "atm\x0131\x015falt\x0131bu\x00e7uk", 66.5)-  , ( "atm\x0131\x015fyedibu\x00e7uk", 67.5)-  , ( "altm\x0131\x015fyedibu\x00e7uk", 67.5)-  , ( "altm\x0131\x015fsekizbu\x00e7uk", 68.5)-  , ( "atm\x0131\x015fsekizbu\x00e7uk", 68.5)-  , ( "altm\x0131\x015fdokuzbu\x00e7uk", 69.5)-  , ( "atm\x0131\x015fdokuzbu\x00e7uk", 69.5)-  , ( "yetmi\x015fbibu\x00e7uk", 71.5)-  , ( "yetmi\x015fbirbu\x00e7uk", 71.5)-  , ( "yetmi\x015fikibu\x00e7uk", 72.5)-  , ( "yetmi\x015f\x00fc\x00e7bu\x00e7uk", 73.5)-  , ( "yetmi\x015fd\x00f6rtbu\x00e7uk", 74.5)-  , ( "yetmi\x015fbe\x015fbu\x00e7uk", 75.5)-  , ( "yetmi\x015falt\x0131bu\x00e7uk", 76.5)-  , ( "yetmi\x015fyedibu\x00e7uk", 77.5)-  , ( "yetmi\x015fsekizbu\x00e7uk", 78.5)-  , ( "yetmi\x015fdokuzbu\x00e7uk", 79.5)-  , ( "seksenbibu\x00e7uk", 81.5)-  , ( "seksenbirbu\x00e7uk", 81.5)-  , ( "seksenikibu\x00e7uk", 82.5)-  , ( "seksen\x00fc\x00e7bu\x00e7uk", 83.5)-  , ( "seksend\x00f6rtbu\x00e7uk", 84.5)-  , ( "seksenbe\x015fbu\x00e7uk", 85.5)-  , ( "seksenalt\x0131bu\x00e7uk", 86.5)-  , ( "seksenyedibu\x00e7uk", 87.5)-  , ( "seksensekizbu\x00e7uk", 88.5)-  , ( "seksendokuzbu\x00e7uk", 89.5)-  , ( "doksanbirbu\x00e7uk", 91.5)-  , ( "doksanbibu\x00e7uk", 91.5)-  , ( "doksanikibu\x00e7uk", 92.5)-  , ( "doksan\x00fc\x00e7bu\x00e7uk", 93.5)-  , ( "doksand\x00f6rtbu\x00e7uk", 94.5)-  , ( "doksanbe\x015fbu\x00e7uk", 95.5)-  , ( "doksanalt\x0131bu\x00e7uk", 96.5)-  , ( "doksanyedibu\x00e7uk", 97.5)-  , ( "doksansekizbu\x00e7uk", 98.5)-  , ( "doksandokuzbu\x00e7uk", 99.5)+  [ ( "onbirbuçuk", 11.5)+  , ( "onbibuçuk", 11.5)+  , ( "onikibuçuk", 12.5)+  , ( "onüçbuçuk", 13.5)+  , ( "ondörtbuçuk", 14.5)+  , ( "onbeşbuçuk", 15.5)+  , ( "onaltıbuçuk", 16.5)+  , ( "onyedibuçuk", 17.5)+  , ( "onsekizbuçuk", 18.5)+  , ( "ondokuzbuçuk", 19.5)+  , ( "yirmibibuçuk", 21.5)+  , ( "yirmibirbuçuk", 21.5)+  , ( "yirmiikibuçuk", 22.5)+  , ( "yirmiüçbuçuk", 23.5)+  , ( "yirmidörtbuçuk", 24.5)+  , ( "yirmibeşbuçuk", 25.5)+  , ( "yirmialtıbuçuk", 26.5)+  , ( "yirmiyedibuçuk", 27.5)+  , ( "yirmisekizbuçuk", 28.5)+  , ( "yirmidokuzbuçuk", 29.5)+  , ( "otuzbibuçuk", 31.5)+  , ( "otuzbirbuçuk", 31.5)+  , ( "otuzikibuçuk", 32.5)+  , ( "otuzüçbuçuk", 33.5)+  , ( "otuzdörtbuçuk", 34.5)+  , ( "otuzbeşbuçuk", 35.5)+  , ( "otuzaltıbuçuk", 36.5)+  , ( "otuzyedibuçuk", 37.5)+  , ( "otuzsekizbuçuk", 38.5)+  , ( "otuzdokuzbuçuk", 39.5)+  , ( "kırkbirbuçuk", 41.5)+  , ( "kırkbibuçuk", 41.5)+  , ( "kırkikibuçuk", 42.5)+  , ( "kırküçbuçuk", 43.5)+  , ( "kırkdörtbuçuk", 44.5)+  , ( "kırkbeşbuçuk", 45.5)+  , ( "kırkaltıbuçuk", 46.5)+  , ( "kırkyedibuçuk", 47.5)+  , ( "kırksekizbuçuk", 48.5)+  , ( "kırkdokuzbuçuk", 49.5)+  , ( "ellibibuçuk", 51.5)+  , ( "ellibirbuçuk", 51.5)+  , ( "elliikibuçuk", 52.5)+  , ( "elliüçbuçuk", 53.5)+  , ( "ellidörtbuçuk", 54.5)+  , ( "ellibeşbuçuk", 55.5)+  , ( "ellialtıbuçuk", 56.5)+  , ( "elliyedibuçuk", 57.5)+  , ( "ellisekizbuçuk", 58.5)+  , ( "ellidokuzbuçuk", 59.5)+  , ( "altmışbirbuçuk", 61.5)+  , ( "atmışbirbuçuk", 61.5)+  , ( "altmışikibuçuk", 62.5)+  , ( "atmışikibuçuk", 62.5)+  , ( "atmışüçbuçuk", 63.5)+  , ( "altmışüçbuçuk", 63.5)+  , ( "altmışdörtbuçuk", 64.5)+  , ( "atmışdörtbuçuk", 64.5)+  , ( "altmışbeşbuçuk", 65.5)+  , ( "atmışbeşbuçuk", 65.5)+  , ( "altmışaltıbuçuk", 66.5)+  , ( "atmışaltıbuçuk", 66.5)+  , ( "atmışyedibuçuk", 67.5)+  , ( "altmışyedibuçuk", 67.5)+  , ( "altmışsekizbuçuk", 68.5)+  , ( "atmışsekizbuçuk", 68.5)+  , ( "altmışdokuzbuçuk", 69.5)+  , ( "atmışdokuzbuçuk", 69.5)+  , ( "yetmişbibuçuk", 71.5)+  , ( "yetmişbirbuçuk", 71.5)+  , ( "yetmişikibuçuk", 72.5)+  , ( "yetmişüçbuçuk", 73.5)+  , ( "yetmişdörtbuçuk", 74.5)+  , ( "yetmişbeşbuçuk", 75.5)+  , ( "yetmişaltıbuçuk", 76.5)+  , ( "yetmişyedibuçuk", 77.5)+  , ( "yetmişsekizbuçuk", 78.5)+  , ( "yetmişdokuzbuçuk", 79.5)+  , ( "seksenbibuçuk", 81.5)+  , ( "seksenbirbuçuk", 81.5)+  , ( "seksenikibuçuk", 82.5)+  , ( "seksenüçbuçuk", 83.5)+  , ( "seksendörtbuçuk", 84.5)+  , ( "seksenbeşbuçuk", 85.5)+  , ( "seksenaltıbuçuk", 86.5)+  , ( "seksenyedibuçuk", 87.5)+  , ( "seksensekizbuçuk", 88.5)+  , ( "seksendokuzbuçuk", 89.5)+  , ( "doksanbirbuçuk", 91.5)+  , ( "doksanbibuçuk", 91.5)+  , ( "doksanikibuçuk", 92.5)+  , ( "doksanüçbuçuk", 93.5)+  , ( "doksandörtbuçuk", 94.5)+  , ( "doksanbeşbuçuk", 95.5)+  , ( "doksanaltıbuçuk", 96.5)+  , ( "doksanyedibuçuk", 97.5)+  , ( "doksansekizbuçuk", 98.5)+  , ( "doksandokuzbuçuk", 99.5)   ]  ruleInteger9 :: Rule ruleInteger9 = Rule   { name = "integer 11..19 21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99"   , pattern =-    [ regex "((on|yirmi|otuz|k\x0131rk|elli|atm\x0131\x015f|altm\x0131\x015f|yetmi\x015f|seksen|doksan)(bir|bi|iki|\x00fc\x00e7|d\x00f6rt|be\x015f|alt\x0131|yedi|sekiz|dokuz)(bu\x00e7uk))"+    [ regex "((on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)(bir|bi|iki|üç|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -541,7 +541,7 @@ ruleDozen = Rule   { name = "dozen"   , pattern =-    [ regex "d\x00fczine"+    [ regex "düzine"     ]   , prod = \_ -> integer 12 >>= withGrain 1 >>= withMultipliable   }@@ -550,16 +550,16 @@ oneToNineMap = HashMap.fromList   [ ( "s\305f\305r", 0)   , ( "yok", 0)-  , ( "hi\x00e7", 0)+  , ( "hiç", 0)   , ( "bir", 1)   , ( "bi", 1)   , ( "yek", 1)   , ( "tek", 1)   , ( "iki", 2)-  , ( "\x00fc\x00e7", 3)-  , ( "d\x00f6rt", 4)-  , ( "be\x015f", 5)-  , ( "alt\x0131", 6)+  , ( "üç", 3)+  , ( "dört", 4)+  , ( "beş", 5)+  , ( "altı", 6)   , ( "yedi", 7)   , ( "sekiz", 8)   , ( "dokuz", 9)@@ -569,7 +569,7 @@ ruleInteger = Rule   { name = "integer (0..9)"   , pattern =-    [ regex "(yok|hi(\x00e7)|s(\x0131)f(\x0131)r|bir?|[ty]ek|iki|(\x00fc)(\x00e7)|d(\x00f6)rt|be(\x015f)|alt(\x0131)|yedi|sekiz|dokuz)"+    [ regex "(yok|hi(ç)|s(ı)f(ı)r|bir?|[ty]ek|iki|(ü)(ç)|d(ö)rt|be(ş)|alt(ı)|yedi|sekiz|dokuz)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -579,23 +579,23 @@  numeralSuffixesHalfsuffixText2Map :: HashMap Text Double numeralSuffixesHalfsuffixText2Map = HashMap.fromList-  [ ( "onbu\x00e7uk", 10.5)-  , ( "yirmibu\x00e7uk", 20.5)-  , ( "otuzbu\x00e7uk", 30.5)-  , ( "k\x0131rkbu\x00e7uk", 40.5)-  , ( "ellibu\x00e7uk", 50.5)-  , ( "atm\x0131\x015fbu\x00e7uk", 60.5)-  , ( "altm\x0131\x015fbu\x00e7uk", 60.5)-  , ( "yetmi\x015fbu\x00e7uk", 70.5)-  , ( "seksenbu\x00e7uk", 80.5)-  , ( "doksanbu\x00e7uk", 90.5)+  [ ( "onbuçuk", 10.5)+  , ( "yirmibuçuk", 20.5)+  , ( "otuzbuçuk", 30.5)+  , ( "kırkbuçuk", 40.5)+  , ( "ellibuçuk", 50.5)+  , ( "atmışbuçuk", 60.5)+  , ( "altmışbuçuk", 60.5)+  , ( "yetmişbuçuk", 70.5)+  , ( "seksenbuçuk", 80.5)+  , ( "doksanbuçuk", 90.5)   ]  ruleNumeralSuffixesHalfsuffixText2 :: Rule ruleNumeralSuffixesHalfsuffixText2 = Rule   { name = "number suffixes (half-suffix text) (10..90)"   , pattern =-    [ regex "((on|yirmi|otuz|k\x0131rk|elli|atm\x0131\x015f|altm\x0131\x015f|yetmi\x015f|seksen|doksan)(bu\x00e7uk))"+    [ regex "((on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)(buçuk))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -609,7 +609,7 @@   { name = "number suffixes (half-suffix)"   , pattern =     [ dimension Numeral-    , regex "(bu\x00e7uk)(?=[\\W\\$\x20ac]|$)"+    , regex "(buçuk)(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v + 0.5@@ -644,11 +644,11 @@   [ ( "on", 10)   , ( "yirmi", 20)   , ( "otuz", 30)-  , ( "k\x0131rk", 40)+  , ( "kırk", 40)   , ( "elli", 50)-  , ( "altm\x0131\x015f", 60)-  , ( "atm\x0131\x015f", 60)-  , ( "yetmi\x015f", 70)+  , ( "altmış", 60)+  , ( "atmış", 60)+  , ( "yetmiş", 70)   , ( "seksen", 80)   , ( "doksan", 90)   ]@@ -657,7 +657,7 @@ ruleInteger2 = Rule   { name = "integer (10..90)"   , pattern =-    [ regex "(on|yirmi|otuz|k\x0131rk|elli|atm\x0131\x015f|altm\x0131\x015f|yetmi\x015f|seksen|doksan)"+    [ regex "(on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -669,7 +669,7 @@ ruleQuarter = Rule   { name = "quarter"   , pattern =-    [ regex "(\x00e7eyrek)"+    [ regex "(çeyrek)"     ]   , prod = \_ -> double 0.25   }@@ -679,7 +679,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "nokta|virg\x00fcl"+    , regex "nokta|virgül"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
Duckling/Numeral/UK/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = UK}, allExamples)+corpus = (testContext {locale = makeLocale UK Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/UK/Rules.hs view
@@ -29,21 +29,21 @@  twentyNinetyMap :: HashMap Text Integer twentyNinetyMap = HashMap.fromList-  [ ( "\x0434\x0432\x0430\x0434\x0446\x044f\x0442\x044c"             , 20 )-  , ( "\x0442\x0440\x0438\x0434\x0446\x044f\x0442\x044c"             , 30 )-  , ( "\x0441\x043e\x0440\x043e\x043a"                               , 40 )-  , ( "\x043f\x2018\x044f\x0442\x0434\x0435\x0441\x044f\x0442"       , 50 )-  , ( "\x0448\x0456\x0441\x0442\x0434\x0435\x0441\x044f\x0442"       , 60 )-  , ( "\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442"             , 70 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x043d\x043e\x0441\x0442\x043e" , 90 )-  , ( "\x0432\x0456\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442" , 80 )+  [ ( "двадцять"             , 20 )+  , ( "тридцять"             , 30 )+  , ( "сорок"                               , 40 )+  , ( "п‘ятдесят"       , 50 )+  , ( "шістдесят"       , 60 )+  , ( "сімдесят"             , 70 )+  , ( "дев‘яносто" , 90 )+  , ( "вісімдесят" , 80 )   ]  ruleInteger5 :: Rule ruleInteger5 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(\x0434\x0432\x0430\x0434\x0446\x044f\x0442\x044c|\x0442\x0440\x0438\x0434\x0446\x044f\x0442\x044c|\x0441\x043e\x0440\x043e\x043a|\x043f\x2018\x044f\x0442\x0434\x0435\x0441\x044f\x0442|\x0448\x0456\x0441\x0442\x0434\x0435\x0441\x044f\x0442|\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442|\x0432\x0456\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442|\x0434\x0435\x0432\x2018\x044f\x043d\x043e\x0441\x0442\x043e)"+    [ regex "(двадцять|тридцять|сорок|п‘ятдесят|шістдесят|сімдесят|вісімдесят|дев‘яносто)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -91,28 +91,28 @@ ruleInteger3 = Rule   { name = "integer 2"   , pattern =-    [ regex "(\x0434\x0432\x0430|\x0434\x0432\x0456|\x0434\x0432\x043e\x0454|\x043f\x0430\x0440\x0430|\x043f\x0430\x0440\x0443|\x043f\x0430\x0440\x043e\x0447\x043a\x0443|\x043f\x0430\x0440\x043e\x0447\x043a\x0430)"+    [ regex "(два|дві|двоє|пара|пару|парочку|парочка)"     ]   , prod = \_ -> integer 2   }  hundredsMap :: HashMap Text Integer hundredsMap = HashMap.fromList-  [ ( "\x0441\x0442\x043e"                                     , 100 )-  , ( "\x0434\x0432\x0456\x0441\x0442\x0456"                   , 200 )-  , ( "\x0442\x0440\x0438\x0441\x0442\x0430"                   , 300 )-  , ( "\x0447\x043e\x0442\x0438\x0440\x0438\x0441\x0442\x0430" , 400 )-  , ( "\x043f\x2018\x044f\x0442\x0441\x043e\x0442"             , 500 )-  , ( "\x0448\x0456\x0441\x0442\x0441\x043e\x0442"             , 600 )-  , ( "\x0441\x0456\x043c\x0441\x043e\x0442"                   , 700 )-  , ( "\x0432\x0456\x0441\x0456\x043c\x0441\x043e\x0442"       , 800 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x0442\x0441\x043e\x0442" , 900 )+  [ ( "сто"                                     , 100 )+  , ( "двісті"                   , 200 )+  , ( "триста"                   , 300 )+  , ( "чотириста" , 400 )+  , ( "п‘ятсот"             , 500 )+  , ( "шістсот"             , 600 )+  , ( "сімсот"                   , 700 )+  , ( "вісімсот"       , 800 )+  , ( "дев‘ятсот" , 900 )   ] ruleInteger6 :: Rule ruleInteger6 = Rule   { name = "integer (100..900)"   , pattern =-    [ regex "(\x0441\x0442\x043e|\x0434\x0432\x0456\x0441\x0442\x0456|\x0442\x0440\x0438\x0441\x0442\x0430|\x0447\x043e\x0442\x0438\x0440\x0438\x0441\x0442\x0430|\x043f\x2018\x044f\x0442\x0441\x043e\x0442|\x0448\x0456\x0441\x0442\x0441\x043e\x0442|\x0441\x0456\x043c\x0441\x043e\x0442|\x0432\x0456\x0441\x0456\x043c\x0441\x043e\x0442|\x0434\x0435\x0432\x2018\x044f\x0442\x0441\x043e\x0442)"+    [ regex "(сто|двісті|триста|чотириста|п‘ятсот|шістсот|сімсот|вісімсот|дев‘ятсот)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -124,7 +124,7 @@ ruleNumeralsPrefixWithMinus = Rule   { name = "numbers prefix with -, minus"   , pattern =-    [ regex "-|\x043c\x0456\x043d\x0443\x0441\\s?"+    [ regex "-|мінус\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -137,18 +137,18 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "((\x043a|\x043c|\x0433)|(\x041a|\x041c|\x0413))(?=[\\W\\$\x20ac]|$)"+    , regex "((к|м|г)|(К|М|Г))(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):        Token RegexMatch (GroupMatch (match:_)):        _) -> case Text.toLower match of-         "\x043a" -> double $ v * 1e3-         "\x041a" -> double $ v * 1e3-         "\x043c" -> double $ v * 1e6-         "\x041c" -> double $ v * 1e6-         "\x0433" -> double $ v * 1e9-         "\x0413" -> double $ v * 1e9+         "к" -> double $ v * 1e3+         "К" -> double $ v * 1e3+         "м" -> double $ v * 1e6+         "М" -> double $ v * 1e6+         "г" -> double $ v * 1e9+         "Г" -> double $ v * 1e9          _   -> Nothing       _ -> Nothing   }@@ -185,36 +185,36 @@ ruleInteger = Rule   { name = "integer 0"   , pattern =-    [ regex "(\x043d\x0443\x043b\x044c)"+    [ regex "(нуль)"     ]   , prod = \_ -> integer 0   }  threeNineteenMap :: HashMap Text Integer threeNineteenMap = HashMap.fromList-  [ ( "\x0442\x0440\x0438"                                           , 3 )-  , ( "\x0447\x043e\x0442\x0438\x0440\x0438"                         , 4 )-  , ( "\x043f\x2018\x044f\x0442\x044c"                               , 5 )-  , ( "\x0448\x0456\x0441\x0442\x044c"                               , 6 )-  , ( "\x0441\x0456\x043c"                                           , 7 )-  , ( "\x0432\x0456\x0441\x0456\x043c"                               , 8 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x0442\x044c"                   , 9 )-  , ( "\x0434\x0435\x0441\x044f\x0442\x044c"                         , 10 )-  , ( "\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 11 )-  , ( "\x0434\x0432\x0430\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 12 )-  , ( "\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 13 )-  , ( "\x0447\x043e\x0442\x0438\x0440\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 14 )-  , ( "\x043f\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c"       , 15 )-  , ( "\x0448\x0456\x0441\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c"       , 16 )-  , ( "\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442\x044c"             , 17 )-  , ( "\x0432\x0456\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 18 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c" , 19 )+  [ ( "три"                                           , 3 )+  , ( "чотири"                         , 4 )+  , ( "п‘ять"                               , 5 )+  , ( "шість"                               , 6 )+  , ( "сім"                                           , 7 )+  , ( "вісім"                               , 8 )+  , ( "дев‘ять"                   , 9 )+  , ( "десять"                         , 10 )+  , ( "одинадцять" , 11 )+  , ( "дванадцять" , 12 )+  , ( "тринадцять" , 13 )+  , ( "чотирнадцять" , 14 )+  , ( "п‘ятнадцять"       , 15 )+  , ( "шістнадцять"       , 16 )+  , ( "сімнадцять"             , 17 )+  , ( "вісімнадцять" , 18 )+  , ( "дев‘ятнадцять" , 19 )   ] ruleInteger4 :: Rule ruleInteger4 = Rule   { name = "integer (3..19)"   , pattern =-    [ regex "(\x0442\x0440\x0438|\x0447\x043e\x0442\x0438\x0440\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0447\x043e\x0442\x0438\x0440\x0438|\x043f\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x043f\x2018\x044f\x0442\x044c|\x0448\x0456\x0441\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0448\x0456\x0441\x0442\x044c|\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0441\x0456\x043c|\x0432\x0456\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0432\x0456\x0441\x0456\x043c|\x0434\x0435\x0432\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0434\x0435\x0432\x2018\x044f\x0442\x044c|\x0434\x0435\x0441\x044f\x0442\x044c|\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0434\x0432\x0430\x043d\x0430\x0434\x0446\x044f\x0442\x044c|\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x044f\x0442\x044c)"+    [ regex "(три|чотирнадцять|чотири|п‘ятнадцять|п‘ять|шістнадцять|шість|сімнадцять|сім|вісімнадцять|вісім|дев‘ятнадцять|дев‘ять|десять|одинадцять|дванадцять|тринадцять)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -226,7 +226,7 @@ ruleInteger2 = Rule   { name = "integer 1"   , pattern =-    [ regex "(\x043e\x0434\x0438\x043d|\x043e\x0434\x043d\x0430|\x043e\x0434\x043d\x0443|\x043e\x0434\x043d\x0435|\x043e\x0434\x043d\x043e\x0433\x043e)"+    [ regex "(один|одна|одну|одне|одного)"     ]   , prod = \_ -> integer 1   }@@ -236,7 +236,7 @@   { name = "number dot number"   , pattern =     [ dimension Numeral-    , regex "\x043a\x0440\x0430\x043f\x043a\x0430"+    , regex "крапка"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of
Duckling/Numeral/VI/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = VI}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/VI/Rules.hs view
@@ -27,21 +27,21 @@  powersOfTenMap :: HashMap.HashMap Text.Text (Double, Int) powersOfTenMap = HashMap.fromList-  [ ( "tr\x0103",   (1e2, 2) )-  , ( "tr\x0103m",  (1e2, 2) )-  , ( "ngh\x00ec",  (1e3, 3) )-  , ( "ngh\x00ecn", (1e3, 3) )-  , ( "tri\x1ec7",  (1e6, 6) )-  , ( "tri\x1ec7u", (1e6, 6) )+  [ ( "tră",   (1e2, 2) )+  , ( "trăm",  (1e2, 2) )+  , ( "nghì",  (1e3, 3) )+  , ( "nghìn", (1e3, 3) )+  , ( "triệ",  (1e6, 6) )+  , ( "triệu", (1e6, 6) )   , ( "t",          (1e9, 9) )-  , ( "t\x1ef7",    (1e9, 9) )+  , ( "tỷ",    (1e9, 9) )   ]  rulePowersOfTen :: Rule rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(tr\x0103m?|ngh\x00ecn?|tri\x1ec7u?|t\x1ef7?)"+    [ regex "(trăm?|nghìn?|triệu?|tỷ?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -84,7 +84,7 @@ ruleNumeralsPrefixWithM = Rule   { name = "numbers prefix with -, âm"   , pattern =-    [ regex "-|\x00e2m\\s?"+    [ regex "-|âm\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -97,7 +97,7 @@   { name = "numbers 25 35 45 55 65 75 85 95"   , pattern =     [ oneOf [20, 30 .. 90]-    , regex "l\x0103m"+    , regex "lăm"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v + 5@@ -146,7 +146,7 @@   { name = "number dot 1 9"   , pattern =     [ dimension Numeral-    , regex "ch\x1ea5m|ph\x1ea9y"+    , regex "chấm|phẩy"     , numberWith TNumeral.grain isNothing     ]   , prod = \tokens -> case tokens of@@ -186,7 +186,7 @@   { name = "numbers suffixes (K, M, G)"   , pattern =     [ dimension Numeral-    , regex "([kmg])(?=[\\W\\$\x20ac]|$)"+    , regex "([kmg])(?=[\\W\\$€]|$)"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):@@ -215,53 +215,53 @@  integerMap :: HashMap.HashMap Text.Text Integer integerMap = HashMap.fromList-  [ ("kh\x00f4ng",               0)-  , ("m\x1ed9t",                 1)-  , ("linh m\x1ed9t",            1)-  , ("l\x1ebb m\x1ed9t",         1)+  [ ("không",               0)+  , ("một",                 1)+  , ("linh một",            1)+  , ("lẻ một",         1)   , ("hai",                      2)-  , ("l\x1ebb hai",              2)+  , ("lẻ hai",              2)   , ("linh hai",                 2)   , ("ba",                       3)-  , ("l\x1ebb",                  3)+  , ("lẻ",                  3)   , ("linh ba",                  3)-  , ("l\x1ebb b\x1ed1n",         4)-  , ("linh b\x1ed1n",            4)-  , ("b\x1ed1n",                 4)-  , ("n\x0103m",                 5)-  , ("l\x1ebb n\x0103m",         5)-  , ("linh n\x0103m",            5)-  , ("linh s\x00e1u",            6)-  , ("s\x00e1u",                 6)-  , ("l\x1ebb s\x00e1u",         6)-  , ("linh b\x1ea3y",            7)-  , ("l\x1ebb b\x1ea3y",         7)-  , ("b\x1ea3y",                 7)-  , ("l\x1ebb t\x00e1m",         8)-  , ("linh t\x00e1m",            8)-  , ("t\x00e1m",                 8)-  , ("l\x1ebb ch\x00edn",        9)-  , ("ch\x00edn",                9)-  , ("linh ch\x00edn",           9)-  , ("linh m\x01b0\x1eddi",      10)-  , ("m\x01b0\x1eddi",           10)-  , ("l\x1ebb m\x01b0\x1eddi",   10)-  , ("m\x01b0\x1eddi m\x1ed9t",  11)-  , ("m\x01b0\x1eddi hai",       12)-  , ("m\x01b0\x1eddi ba",        13)-  , ("m\x01b0\x1eddi b\x1ed1n",  14)-  , ("m\x01b0\x1eddi l\x0103m",  15)-  , ("m\x01b0\x1eddi s\x00e1u",  16)-  , ("m\x01b0\x1eddi b\x1ea3y",  17)-  , ("m\x01b0\x1eddi t\x00e1m",  18)-  , ("m\x01b0\x1eddi ch\x00edn", 19)+  , ("lẻ bốn",         4)+  , ("linh bốn",            4)+  , ("bốn",                 4)+  , ("năm",                 5)+  , ("lẻ năm",         5)+  , ("linh năm",            5)+  , ("linh sáu",            6)+  , ("sáu",                 6)+  , ("lẻ sáu",         6)+  , ("linh bảy",            7)+  , ("lẻ bảy",         7)+  , ("bảy",                 7)+  , ("lẻ tám",         8)+  , ("linh tám",            8)+  , ("tám",                 8)+  , ("lẻ chín",        9)+  , ("chín",                9)+  , ("linh chín",           9)+  , ("linh mười",      10)+  , ("mười",           10)+  , ("lẻ mười",   10)+  , ("mười một",  11)+  , ("mười hai",       12)+  , ("mười ba",        13)+  , ("mười bốn",  14)+  , ("mười lăm",  15)+  , ("mười sáu",  16)+  , ("mười bảy",  17)+  , ("mười tám",  18)+  , ("mười chín", 19)   ]  ruleInteger :: Rule ruleInteger = Rule   { name = "integer (0..19)"   , pattern =-    [ regex "(kh\x00f4ng|m\x1ed9t|linh m\x1ed9t|l\x1ebb m\x1ed9t|hai|linh hai|l\x1ebb hai|ba|linh ba|l\x1ebb ba|b\x1ed1n|linh b\x1ed1n|l\x1ebb b\x1ed1n|n\x0103m|linh n\x0103m|l\x1ebb n\x0103m|s\x00e1u|l\x1ebb s\x00e1u|linh s\x00e1u|b\x1ea3y|l\x1ebb b\x1ea3y|linh b\x1ea3y|t\x00e1m|linh t\x00e1m|l\x1ebb t\x00e1m|ch\x00edn|linh ch\x00edn|l\x1ebb ch\x00edn|m\x01b0\x1eddi m\x1ed9t|m\x01b0\x1eddi hai|m\x01b0\x1eddi ba|m\x01b0\x1eddi b\x1ed1n|m\x01b0\x1eddi l\x0103m|m\x01b0\x1eddi s\x00e1u|m\x01b0\x1eddi b\x1ea3y|m\x01b0\x1eddi t\x00e1m|m\x01b0\x1eddi ch\x00edn|m\x01b0\x1eddi|linh m\x01b0\x1eddi)"+    [ regex "(không|một|linh một|lẻ một|hai|linh hai|lẻ hai|ba|linh ba|lẻ ba|bốn|linh bốn|lẻ bốn|năm|linh năm|lẻ năm|sáu|lẻ sáu|linh sáu|bảy|lẻ bảy|linh bảy|tám|linh tám|lẻ tám|chín|linh chín|lẻ chín|mười một|mười hai|mười ba|mười bốn|mười lăm|mười sáu|mười bảy|mười tám|mười chín|mười|linh mười)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -271,21 +271,21 @@  tensMap :: HashMap.HashMap Text.Text Integer tensMap = HashMap.fromList-  [ ("hai m\x01b0\x01a1i",       20)-  , ("ba m\x01b0\x01a1i",        30)-  , ("b\x1ed1n m\x01b0\x01a1i",  40)-  , ("n\x0103m m\x01b0\x01a1i",  50)-  , ("s\x00e1u m\x01b0\x01a1i",  60)-  , ("b\x1ea3y m\x01b0\x01a1i",  70)-  , ("t\x00e1m m\x01b0\x01a1i",  80)-  , ("ch\x00edn m\x01b0\x01a1i", 90)+  [ ("hai mươi",       20)+  , ("ba mươi",        30)+  , ("bốn mươi",  40)+  , ("năm mươi",  50)+  , ("sáu mươi",  60)+  , ("bảy mươi",  70)+  , ("tám mươi",  80)+  , ("chín mươi", 90)   ]  ruleInteger2 :: Rule ruleInteger2 = Rule   { name = "integer (20..90)"   , pattern =-    [ regex "(hai m\x01b0\x01a1i|ba m\x01b0\x01a1i|b\x1ed1n m\x01b0\x01a1i|n\x0103m m\x01b0\x01a1i|s\x00e1u m\x01b0\x01a1i|b\x1ea3y m\x01b0\x01a1i|t\x00e1m m\x01b0\x01a1i|ch\x00edn m\x01b0\x01a1i)"+    [ regex "(hai mươi|ba mươi|bốn mươi|năm mươi|sáu mươi|bảy mươi|tám mươi|chín mươi)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -298,7 +298,7 @@   { name = "numbers 21 31 41 51 61 71 81 91"   , pattern =     [ oneOf [20, 30 .. 90]-    , regex "m\x1ed1t"+    , regex "mốt"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v + 1@@ -309,7 +309,7 @@ ruleT = Rule   { name = "tá"   , pattern =-    [ regex "t\x00e1"+    [ regex "tá"     ]   , prod = \_ -> integer 12 >>= withGrain 1 >>= withMultipliable   }
Duckling/Numeral/ZH/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Numeral.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ZH}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Numeral/ZH/Rules.hs view
@@ -29,7 +29,7 @@ ruleInteger5 = Rule   { name = "integer (0..10)"   , pattern =-    [ regex "(\x3007|\x96f6|\x4e00|\x4e8c|\x4e24|\x5169|\x4e09|\x56db|\x4e94|\x516d|\x4e03|\x516b|\x4e5d|\x5341)(\x4e2a|\x500b)?"+    [ regex "(〇|零|一|二|两|兩|三|四|五|六|七|八|九|十)(个|個)?"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -39,20 +39,20 @@  integerMap :: HashMap.HashMap Text.Text Integer integerMap = HashMap.fromList-  [ ( "\x3007", 0 )-  , ( "\x96f6", 0 )-  , ( "\x4e00", 1 )-  , ( "\x5169", 2 )-  , ( "\x4e24", 2 )-  , ( "\x4e8c", 2 )-  , ( "\x4e09", 3 )-  , ( "\x56db", 4 )-  , ( "\x4e94", 5 )-  , ( "\x516d", 6 )-  , ( "\x4e03", 7 )-  , ( "\x516b", 8 )-  , ( "\x4e5d", 9 )-  , ( "\x5341", 10 )+  [ ( "〇", 0 )+  , ( "零", 0 )+  , ( "一", 1 )+  , ( "兩", 2 )+  , ( "两", 2 )+  , ( "二", 2 )+  , ( "三", 3 )+  , ( "四", 4 )+  , ( "五", 5 )+  , ( "六", 6 )+  , ( "七", 7 )+  , ( "八", 8 )+  , ( "九", 9 )+  , ( "十", 10 )   ]  @@ -60,7 +60,7 @@ ruleNumeralsPrefixWithNegativeOrMinus = Rule   { name = "numbers prefix with -, negative or minus"   , pattern =-    [ regex "-|\x8d1f\\s?|\x8ca0\\s?"+    [ regex "-|负\\s?|負\\s?"     , dimension Numeral     ]   , prod = \tokens -> case tokens of@@ -109,7 +109,7 @@   { name = "<number>个"   , pattern =     [ dimension Numeral-    , regex "\x4e2a"+    , regex "个"     ]   , prod = \tokens -> case tokens of       (token:_) -> Just token@@ -121,7 +121,7 @@   { name = "integer (20..90)"   , pattern =     [ numberBetween 2 10-    , regex "\x5341"+    , regex "十"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) -> double $ v * 10@@ -164,7 +164,7 @@ ruleInteger2 = Rule   { name = "integer (11..19)"   , pattern =-    [ regex "\x5341"+    [ regex "十"     , numberBetween 1 10     ]   , prod = \tokens -> case tokens of
Duckling/Ordinal/AR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = AR}, allExamples)+corpus = (testContext {locale = makeLocale AR Nothing}, allExamples)  allExamples :: [Example] allExamples =
Duckling/Ordinal/AR/Rules.hs view
@@ -22,7 +22,7 @@ ruleOrdinalsTh = Rule   { name = "ordinals 7th"   , pattern =-    [ regex "(\x0633\x0627\x0628\x0639 | \x0633\x0627\x0628\x0639\x0629 | \x0627\x0644\x0633\x0627\x0628\x0639 | \x0627\x0644\x0633\x0627\x0628\x0639\x0629)"+    [ regex "(سابع | سابعة | السابع | السابعة)"     ]   , prod = \_ -> Just $ ordinal 7   }@@ -31,7 +31,7 @@ ruleOrdinalsSecond = Rule   { name = "ordinals second"   , pattern =-    [ regex "(\x062b\x0627\x0646\x064a|\x062b\x0627\x0646\x064a\x0629|\x0627\x0644\x062b\x0627\x0646\x064a|\x0627\x0644\x062b\x0627\x0646\x064a\x0629)"+    [ regex "(ثاني|ثانية|الثاني|الثانية)"     ]   , prod = \_ -> Just $ ordinal 2   }@@ -40,7 +40,7 @@ ruleOrdinalsFirst = Rule   { name = "ordinals first"   , pattern =-    [ regex "(\x0623\x0648\x0644|\x0627\x0644\x0623\x0648\x0644|\x0623\x0648\x0644\x0649|\x0627\x0644\x0623\x0648\x0644\x0649)"+    [ regex "(أول|الأول|أولى|الأولى)"     ]   , prod = \_ -> Just $ ordinal 1   }@@ -49,7 +49,7 @@ ruleOrdinalsFirst5 = Rule   { name = "ordinals first"   , pattern =-    [ regex "(\x0633\x0627\x062f\x0633 | \x0633\x0627\x062f\x0633\x0629 | \x0627\x0644\x0633\x0627\x062f\x0633 | \x0627\x0644\x0633\x0627\x062f\x0633\x0629)"+    [ regex "(سادس | سادسة | السادس | السادسة)"     ]   , prod = \_ -> Just $ ordinal 6   }@@ -58,7 +58,7 @@ ruleOrdinalsTh2 = Rule   { name = "ordinals 8th"   , pattern =-    [ regex "(\x062b\x0627\x0645\x0646 | \x062b\x0627\x0645\x0646\x0629 | \x0627\x0644\x062b\x0627\x0645\x0646 | \x0627\x0644\x062b\x0627\x0645\x0646\x0629)"+    [ regex "(ثامن | ثامنة | الثامن | الثامنة)"     ]   , prod = \_ -> Just $ ordinal 8   }@@ -67,7 +67,7 @@ ruleOrdinalsFirst2 = Rule   { name = "ordinals first"   , pattern =-    [ regex "(\x062b\x0627\x0644\x062b|\x062b\x0627\x0644\x062b\x0629|\x0627\x0644\x062b\x0627\x0644\x062b|\x0627\x0644\x062b\x0627\x0644\x062b\x0629)"+    [ regex "(ثالث|ثالثة|الثالث|الثالثة)"     ]   , prod = \_ -> Just $ ordinal 3   }@@ -76,7 +76,7 @@ ruleOrdinalsTh4 = Rule   { name = "ordinals 10th"   , pattern =-    [ regex "(\x0639\x0627\x0634\x0631 | \x0639\x0627\x0634\x0631\x0629 | \x0627\x0644\x0639\x0627\x0634\x0631 | \x0627\x0644\x0639\x0627\x0634\x0631\x0629)"+    [ regex "(عاشر | عاشرة | العاشر | العاشرة)"     ]   , prod = \_ -> Just $ ordinal 10   }@@ -85,7 +85,7 @@ ruleOrdinalsTh3 = Rule   { name = "ordinals 9th"   , pattern =-    [ regex "(\x062a\x0627\x0633\x0639 | \x062a\x0627\x0633\x0639\x0629 | \x0627\x0644\x062a\x0627\x0633\x0639 | \x0627\x0644\x062a\x0627\x0633\x0639\x0629)"+    [ regex "(تاسع | تاسعة | التاسع | التاسعة)"     ]   , prod = \_ -> Just $ ordinal 9   }@@ -94,7 +94,7 @@ ruleOrdinalsFirst4 = Rule   { name = "ordinals first"   , pattern =-    [ regex "(\x062e\x0627\x0645\x0633 | \x0627\x0644\x062e\x0627\x0645\x0633 | \x062e\x0627\x0645\x0633\x0629 | \x0627\x0644\x062e\x0627\x0645\x0633\x0629)"+    [ regex "(خامس | الخامس | خامسة | الخامسة)"     ]   , prod = \_ -> Just $ ordinal 5   }@@ -103,7 +103,7 @@ ruleOrdinalsFirst3 = Rule   { name = "ordinals first"   , pattern =-    [ regex "(\x0631\x0627\x0628\x0639|\x0631\x0627\x0628\x0639\x0629 | \x0627\x0644\x0631\x0627\x0628\x0639|\x0627\x0644\x0631\x0627\x0628\x0639\x0629)"+    [ regex "(رابع|رابعة | الرابع|الرابعة)"     ]   , prod = \_ -> Just $ ordinal 4   }
Duckling/Ordinal/DA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = DA}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)  allExamples :: [Example] allExamples =
Duckling/Ordinal/DA/Rules.hs view
@@ -26,11 +26,11 @@ ruleOrdinalsFirstst = Rule   { name = "ordinals (first..31st)"   , pattern =-    [ regex "(f\x00f8rste|anden|tredje|fjerde|femte|sjette|syvende|ottende|niende|tiende|elfte|tolvte|trettende|fjortende|femtende|sekstende|syttende|attende|nittende|tyvende|tenogtyvende|toogtyvende|treogtyvende|fireogtyvende|femogtyvende|seksogtyvende|syvogtyvende|otteogtyvende|niogtyvende|tredivte|enogtredivte)"+    [ regex "(første|anden|tredje|fjerde|femte|sjette|syvende|ottende|niende|tiende|elfte|tolvte|trettende|fjortende|femtende|sekstende|syttende|attende|nittende|tyvende|tenogtyvende|toogtyvende|treogtyvende|fireogtyvende|femogtyvende|seksogtyvende|syvogtyvende|otteogtyvende|niogtyvende|tredivte|enogtredivte)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "f\x00f8rste" -> Just $ ordinal 1+        "første" -> Just $ ordinal 1         "anden" -> Just $ ordinal 2         "tredje" -> Just $ ordinal 3         "fjerde" -> Just $ ordinal 4
Duckling/Ordinal/DE/Corpus.hs view
@@ -16,16 +16,16 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = DE}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)  negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {lang = DE}, examples)+negativeCorpus = (testContext {locale = makeLocale DE Nothing}, examples)   where     examples =       [ "1.1"
Duckling/Ordinal/DE/Rules.hs view
@@ -26,7 +26,7 @@ ruleOrdinalsFirstth = Rule   { name = "ordinals (first..19th)"   , pattern =-    [ regex "(erste(r|s)?|zweite(r|s)|dritte(r|s)|vierte(r|s)|fuenfte(r|s)|sechste(r|s)|siebte(r|s)|achte(r|s)|neunte(r|s)|zehnte(r|s)|elfter|zw\x00f6lfter|dreizenter|vierzehnter|f\x00fcnfzehnter|sechzenter|siebzehnter|achtzehnter|neunzehnter)"+    [ regex "(erste(r|s)?|zweite(r|s)|dritte(r|s)|vierte(r|s)|fuenfte(r|s)|sechste(r|s)|siebte(r|s)|achte(r|s)|neunte(r|s)|zehnte(r|s)|elfter|zwölfter|dreizenter|vierzehnter|fünfzehnter|sechzenter|siebzehnter|achtzehnter|neunzehnter)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -42,9 +42,9 @@         "viertes" -> Just $ ordinal 4         "vierte" -> Just $ ordinal 4         "vierter" -> Just $ ordinal 4-        "f\x00fcnftes" -> Just $ ordinal 5-        "f\x00fcnfter" -> Just $ ordinal 5-        "f\x00fcnfte" -> Just $ ordinal 5+        "fünftes" -> Just $ ordinal 5+        "fünfter" -> Just $ ordinal 5+        "fünfte" -> Just $ ordinal 5         "sechste" -> Just $ ordinal 6         "sechstes" -> Just $ ordinal 6         "sechster" -> Just $ ordinal 6@@ -61,10 +61,10 @@         "zehnter" -> Just $ ordinal 10         "zehntes" -> Just $ ordinal 10         "elfter" -> Just $ ordinal 11-        "zw\x00f6lfter" -> Just $ ordinal 12+        "zwölfter" -> Just $ ordinal 12         "dreizehnter" -> Just $ ordinal 13         "vierzehnter" -> Just $ ordinal 14-        "f\x00fcnfzehnter" -> Just $ ordinal 15+        "fünfzehnter" -> Just $ ordinal 15         "sechzehnter" -> Just $ ordinal 16         "siebzehnter" -> Just $ ordinal 17         "achtzehnter" -> Just $ ordinal 18
+ Duckling/Ordinal/ES/Corpus.hs view
@@ -0,0 +1,42 @@+-- 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.ES.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 ES Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (OrdinalData 1)+             [ "primer"+             , "primero"+             , "primeras"+             ]+  , examples (OrdinalData 2)+             [ "segundo"+             , "segunda"+             , "segundos"+             ]+  , examples (OrdinalData 10)+             [ "decimo"+             , "decimas"+             , "décimos"+             ]+  ]
Duckling/Ordinal/ES/Rules.hs view
@@ -50,13 +50,13 @@   , ( "sexto" , 6 )   , ( "sexta" , 6 )   , ( "sextas" , 6 )-  , ( "s\x00e9ptimas" , 7 )+  , ( "séptimas" , 7 )   , ( "septimas" , 7 )-  , ( "s\x00e9ptima" , 7 )+  , ( "séptima" , 7 )   , ( "septimos" , 7 )   , ( "septima" , 7 )-  , ( "s\x00e9ptimo" , 7 )-  , ( "s\x00e9ptimos" , 7 )+  , ( "séptimo" , 7 )+  , ( "séptimos" , 7 )   , ( "septimo" , 7 )   , ( "octavas" , 8 )   , ( "octavo" , 8 )@@ -66,21 +66,21 @@   , ( "novena" , 9 )   , ( "noveno" , 9 )   , ( "novenas" , 9 )-  , ( "d\x00e9cimos" , 10 )+  , ( "décimos" , 10 )   , ( "decimo" , 10 )   , ( "decimos" , 10 )-  , ( "d\x00e9cimo" , 10 )+  , ( "décimo" , 10 )   , ( "decimas" , 10 )-  , ( "d\x00e9cima" , 10 )+  , ( "décima" , 10 )   , ( "decima" , 10 )-  , ( "d\x00e9cimas" , 10 )+  , ( "décimas" , 10 )   ]  ruleOrdinalsPrimero :: Rule ruleOrdinalsPrimero = Rule   { name = "ordinals (primero..10)"   , pattern =-    [ regex "(primer|tercer(os?|as?)?|(primer|segund|cuart|quint|sext|s[e\x00e9]ptim|octav|noven|d[e\x00e9]cim)(os?|as?))"+    [ regex "((primer|segund|cuart|quint|sext|s[eé]ptim|octav|noven|d[eé]cim)(os?|as?)|(prim|terc)er)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Ordinal/ET/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ET}, allExamples)+corpus = (testContext {locale = makeLocale ET Nothing}, allExamples)  allExamples :: [Example] allExamples =
Duckling/Ordinal/ET/Rules.hs view
@@ -26,7 +26,7 @@ ruleOrdinalsFirstth = Rule   { name = "ordinals (first..19th)"   , pattern =-    [ regex "(esimene|teine|kolmas|neljas|viies|kuues|seitsmes|kaheksas|\x00fcheksas|k\x00fcmnes|\x00fcheteistk\x00fcmnes|kaheteistk\x00fcmnes|kolmeteistk\x00fcmnes|neljateistk\x00fcmnes|viieteistk\x00fcmnes|kuueteistk\x00fcmnes|seitsmeteistk\x00fcmnes|kaheksateistk\x00fcmnes|\x00fcheksateistk\x00fcmnes)"+    [ regex "(esimene|teine|kolmas|neljas|viies|kuues|seitsmes|kaheksas|üheksas|kümnes|üheteistkümnes|kaheteistkümnes|kolmeteistkümnes|neljateistkümnes|viieteistkümnes|kuueteistkümnes|seitsmeteistkümnes|kaheksateistkümnes|üheksateistkümnes)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -38,17 +38,17 @@         "kuues" -> Just $ ordinal 6         "seitsmes" -> Just $ ordinal 7         "kaheksas" -> Just $ ordinal 8-        "\x00fcheksas" -> Just $ ordinal 9-        "k\x00fcmnes" -> Just $ ordinal 10-        "\x00fcheteistk\x00fcmnes" -> Just $ ordinal 11-        "kaheteistk\x00fcmnes" -> Just $ ordinal 12-        "kolmeteistk\x00fcmnes" -> Just $ ordinal 13-        "neljateistk\x00fcmnes" -> Just $ ordinal 14-        "viieteistk\x00fcmnes" -> Just $ ordinal 15-        "kuueteistk\x00fcmnes" -> Just $ ordinal 16-        "seitsmeteistk\x00fcmnes" -> Just $ ordinal 17-        "kaheksateistk\x00fcmnes" -> Just $ ordinal 18-        "\x00fcheksateistk\x00fcmnes" -> Just $ ordinal 19+        "üheksas" -> Just $ ordinal 9+        "kümnes" -> Just $ ordinal 10+        "üheteistkümnes" -> Just $ ordinal 11+        "kaheteistkümnes" -> Just $ ordinal 12+        "kolmeteistkümnes" -> Just $ ordinal 13+        "neljateistkümnes" -> Just $ ordinal 14+        "viieteistkümnes" -> Just $ ordinal 15+        "kuueteistkümnes" -> Just $ ordinal 16+        "seitsmeteistkümnes" -> Just $ ordinal 17+        "kaheksateistkümnes" -> Just $ ordinal 18+        "üheksateistkümnes" -> Just $ ordinal 19         _ -> Nothing       _ -> Nothing   }
Duckling/Ordinal/FR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/FR/Rules.hs view
@@ -27,48 +27,48 @@  ruleOrdinalsPremierseiziemeMap :: HashMap Text Int ruleOrdinalsPremierseiziemeMap = HashMap.fromList-  [ ( "premi\x00e8re"   , 1 )+  [ ( "première"   , 1 )   , ( "premiere"        , 1 )   , ( "premier"         , 1 )-  , ( "deuxi\x00e8me"   , 2 )+  , ( "deuxième"   , 2 )   , ( "deuxieme"        , 2 )   , ( "second"          , 2 )   , ( "seconde"         , 2 )-  , ( "troisi\x00e8me"  , 3 )+  , ( "troisième"  , 3 )   , ( "troisieme"       , 3 )   , ( "quatrieme"       , 4 )-  , ( "quatri\x00e8me"  , 4 )+  , ( "quatrième"  , 4 )   , ( "cinquieme"       , 5 )-  , ( "cinqui\x00e8me"  , 5 )-  , ( "sixi\x00e8me"    , 6 )+  , ( "cinquième"  , 5 )+  , ( "sixième"    , 6 )   , ( "sixieme"         , 6 )   , ( "septieme"        , 7 )-  , ( "septi\x00e8me"   , 7 )-  , ( "huiti\x00e8me"   , 8 )+  , ( "septième"   , 7 )+  , ( "huitième"   , 8 )   , ( "huitieme"        , 8 )   , ( "neuvieme"        , 9 )-  , ( "neuvi\x00e8me"   , 9 )-  , ( "dixi\x00e8me"    , 10 )+  , ( "neuvième"   , 9 )+  , ( "dixième"    , 10 )   , ( "dixieme"         , 10 )-  , ( "onzi\x00e8me"    , 11 )+  , ( "onzième"    , 11 )   , ( "onzieme"         , 11 )   , ( "douzieme"        , 12 )-  , ( "douzi\x00e8me"   , 12 )+  , ( "douzième"   , 12 )   , ( "treizieme"       , 13 )-  , ( "treizi\x00e8me"  , 13 )-  , ( "quatorzi\x00e8me", 14 )+  , ( "treizième"  , 13 )+  , ( "quatorzième", 14 )   , ( "quatorzieme"     , 14 )-  , ( "quinzi\x00e8me"  , 15 )+  , ( "quinzième"  , 15 )   , ( "quinzieme"       , 15 )   , ( "seizieme"        , 16 )-  , ( "seizi\x00e8me"   , 16 )+  , ( "seizième"   , 16 )   ]  ruleOrdinalsPremierseizieme :: Rule ruleOrdinalsPremierseizieme = Rule   { name = "ordinals (premier..seizieme)"   , pattern =-    [ regex "(premi(ere?|\x00e8re)|(deux|trois|quatr|cinqu|six|sept|huit|neuv|dix|onz|douz|treiz|quatorz|quinz|seiz)i(e|\x00e8)me|seconde?)"+    [ regex "(premi(ere?|ère)|(deux|trois|quatr|cinqu|six|sept|huit|neuv|dix|onz|douz|treiz|quatorz|quinz|seiz)i(e|è)me|seconde?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -80,7 +80,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+) ?(ere?|\x00e8re|\x00e8me|eme|e)"+    [ regex "0*(\\d+) ?(ere?|ère|ème|eme|e)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> do
Duckling/Ordinal/GA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/GA/Rules.hs view
@@ -26,79 +26,79 @@ ruleOrdinalsChadDaraEtc = Rule   { name = "ordinals (chéad, dara, etc.)"   , pattern =-    [ regex "(ch(\x00e9|e)ad|aon(\x00fa|u)|t-aon(\x00fa|u)|dara|tr(\x00ed|i)(\x00fa|u)|ceathr(\x00fa|u)|c(\x00fa|u)igi(\x00fa|u)|s(\x00e9|e)(\x00fa|u)|seacht(\x00fa|u)|ocht(\x00fa|u)|t-ocht(\x00fa|u)|nao(\x00fa|u)|deichi(\x00fa|u)|fichi(\x00fa|u)|tr(\x00ed|i)ochad(\x00fa|u)|daichead(\x00fa|u)|caogad(\x00fa|u)|seascad(\x00fa|u)|seacht(\x00f3|o)d(\x00fa|u)|ocht(\x00f3|o)d(\x00fa|u)|t-ocht(\x00f3|o)d(\x00fa|u)|n(\x00f3|o)chad(\x00fa|u)|c(\x00e9|e)ad(\x00fa|u)|mili(\x00fa|u)|milli(\x00fa|u)n(\x00fa|u))"+    [ regex "(ch(é|e)ad|aon(ú|u)|t-aon(ú|u)|dara|tr(í|i)(ú|u)|ceathr(ú|u)|c(ú|u)igi(ú|u)|s(é|e)(ú|u)|seacht(ú|u)|ocht(ú|u)|t-ocht(ú|u)|nao(ú|u)|deichi(ú|u)|fichi(ú|u)|tr(í|i)ochad(ú|u)|daichead(ú|u)|caogad(ú|u)|seascad(ú|u)|seacht(ó|o)d(ú|u)|ocht(ó|o)d(ú|u)|t-ocht(ó|o)d(ú|u)|n(ó|o)chad(ú|u)|c(é|e)ad(ú|u)|mili(ú|u)|milli(ú|u)n(ú|u))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of         "t-aonu" -> Just $ ordinal 1         "aonu" -> Just $ ordinal 1-        "aon\x00fa" -> Just $ ordinal 1-        "ch\x00e9ad" -> Just $ ordinal 1+        "aonú" -> Just $ ordinal 1+        "chéad" -> Just $ ordinal 1         "chead" -> Just $ ordinal 1-        "t-aon\x00fa" -> Just $ ordinal 1+        "t-aonú" -> Just $ ordinal 1         "dara" -> Just $ ordinal 2-        "tri\x00fa" -> Just $ ordinal 3-        "tr\x00edu" -> Just $ ordinal 3-        "tr\x00ed\x00fa" -> Just $ ordinal 3+        "triú" -> Just $ ordinal 3+        "tríu" -> Just $ ordinal 3+        "tríú" -> Just $ ordinal 3         "triu" -> Just $ ordinal 3-        "ceathr\x00fa" -> Just $ ordinal 4+        "ceathrú" -> Just $ ordinal 4         "ceathru" -> Just $ ordinal 4-        "c\x00faigiu" -> Just $ ordinal 5-        "c\x00faigi\x00fa" -> Just $ ordinal 5+        "cúigiu" -> Just $ ordinal 5+        "cúigiú" -> Just $ ordinal 5         "cuigiu" -> Just $ ordinal 5-        "cuigi\x00fa" -> Just $ ordinal 5-        "s\x00e9u" -> Just $ ordinal 6-        "s\x00e9\x00fa" -> Just $ ordinal 6+        "cuigiú" -> Just $ ordinal 5+        "séu" -> Just $ ordinal 6+        "séú" -> Just $ ordinal 6         "seu" -> Just $ ordinal 6-        "se\x00fa" -> Just $ ordinal 6+        "seú" -> Just $ ordinal 6         "seachtu" -> Just $ ordinal 7-        "seacht\x00fa" -> Just $ ordinal 7-        "t-ocht\x00fa" -> Just $ ordinal 8+        "seachtú" -> Just $ ordinal 7+        "t-ochtú" -> Just $ ordinal 8         "ochtu" -> Just $ ordinal 8         "t-ochtu" -> Just $ ordinal 8-        "ocht\x00fa" -> Just $ ordinal 8+        "ochtú" -> Just $ ordinal 8         "naou" -> Just $ ordinal 9-        "nao\x00fa" -> Just $ ordinal 9+        "naoú" -> Just $ ordinal 9         "deichiu" -> Just $ ordinal 10-        "deichi\x00fa" -> Just $ ordinal 10+        "deichiú" -> Just $ ordinal 10         "fichiu" -> Just $ ordinal 20-        "fichi\x00fa" -> Just $ ordinal 20-        "tr\x00edochadu" -> Just $ ordinal 30+        "fichiú" -> Just $ ordinal 20+        "tríochadu" -> Just $ ordinal 30         "triochadu" -> Just $ ordinal 30-        "tr\x00edochad\x00fa" -> Just $ ordinal 30-        "triochad\x00fa" -> Just $ ordinal 30-        "daichead\x00fa" -> Just $ ordinal 40+        "tríochadú" -> Just $ ordinal 30+        "triochadú" -> Just $ ordinal 30+        "daicheadú" -> Just $ ordinal 40         "daicheadu" -> Just $ ordinal 40         "caogadu" -> Just $ ordinal 50-        "caogad\x00fa" -> Just $ ordinal 50+        "caogadú" -> Just $ ordinal 50         "seascadu" -> Just $ ordinal 60-        "seascad\x00fa" -> Just $ ordinal 60+        "seascadú" -> Just $ ordinal 60         "seachtodu" -> Just $ ordinal 70-        "seachtod\x00fa" -> Just $ ordinal 70-        "seacht\x00f3d\x00fa" -> Just $ ordinal 70-        "seacht\x00f3du" -> Just $ ordinal 70-        "ocht\x00f3du" -> Just $ ordinal 80+        "seachtodú" -> Just $ ordinal 70+        "seachtódú" -> Just $ ordinal 70+        "seachtódu" -> Just $ ordinal 70+        "ochtódu" -> Just $ ordinal 80         "ochtodu" -> Just $ ordinal 80         "t-ochtodu" -> Just $ ordinal 80-        "t-ocht\x00f3d\x00fa" -> Just $ ordinal 80-        "t-ochtod\x00fa" -> Just $ ordinal 80-        "ocht\x00f3d\x00fa" -> Just $ ordinal 80-        "t-ocht\x00f3du" -> Just $ ordinal 80-        "ochtod\x00fa" -> Just $ ordinal 80-        "n\x00f3chad\x00fa" -> Just $ ordinal 90-        "n\x00f3chadu" -> Just $ ordinal 90-        "nochad\x00fa" -> Just $ ordinal 90+        "t-ochtódú" -> Just $ ordinal 80+        "t-ochtodú" -> Just $ ordinal 80+        "ochtódú" -> Just $ ordinal 80+        "t-ochtódu" -> Just $ ordinal 80+        "ochtodú" -> Just $ ordinal 80+        "nóchadú" -> Just $ ordinal 90+        "nóchadu" -> Just $ ordinal 90+        "nochadú" -> Just $ ordinal 90         "nochadu" -> Just $ ordinal 90-        "c\x00e9ad\x00fa" -> Just $ ordinal 100-        "cead\x00fa" -> Just $ ordinal 100+        "céadú" -> Just $ ordinal 100+        "ceadú" -> Just $ ordinal 100         "ceadu" -> Just $ ordinal 100-        "c\x00e9adu" -> Just $ ordinal 100+        "céadu" -> Just $ ordinal 100         "miliu" -> Just $ ordinal 1000-        "mili\x00fa" -> Just $ ordinal 1000-        "milliun\x00fa" -> Just $ ordinal 1000000+        "miliú" -> Just $ ordinal 1000+        "milliunú" -> Just $ ordinal 1000000         "milliunu" -> Just $ ordinal 1000000-        "milli\x00fanu" -> Just $ ordinal 1000000-        "milli\x00fan\x00fa" -> Just $ ordinal 1000000+        "milliúnu" -> Just $ ordinal 1000000+        "milliúnú" -> Just $ ordinal 1000000         _ -> Nothing       _ -> Nothing   }@@ -107,7 +107,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+) ?(adh|a|d|\x00fa|u)"+    [ regex "0*(\\d+) ?(adh|a|d|ú|u)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match
Duckling/Ordinal/HE/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HE}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HE/Rules.hs view
@@ -29,7 +29,7 @@ ruleOrdinal4 = Rule   { name = "ordinal 4"   , pattern =-    [ regex "(\x05d0\x05e8\x05d1\x05e2\x05d4|\x05e8\x05d1\x05d9\x05e2\x05d9)"+    [ regex "(ארבעה|רביעי)"     ]   , prod = \_ -> Just $ ordinal 4   }@@ -38,7 +38,7 @@ ruleOrdinal9 = Rule   { name = "ordinal 9"   , pattern =-    [ regex "(\x05ea\x05e9\x05e2\x05d4|\x05ea\x05e9\x05d9\x05e2\x05d9)"+    [ regex "(תשעה|תשיעי)"     ]   , prod = \_ -> Just $ ordinal 9   }@@ -47,7 +47,7 @@ ruleOrdinal10 = Rule   { name = "ordinal 10"   , pattern =-    [ regex "(\x05e2\x05e9\x05e8\x05d4|\x05e2\x05e9\x05d9\x05e8\x05d9)"+    [ regex "(עשרה|עשירי)"     ]   , prod = \_ -> Just $ ordinal 10   }@@ -56,7 +56,7 @@ ruleOrdinal12 = Rule   { name = "ordinal 12"   , pattern =-    [ regex "(\x05e9\x05e0\x05d9\x05d9\x05dd \x05e2\x05e9\x05e8|\x05ea\x05e8\x05d9 \x05e2\x05e9\x05e8)"+    [ regex "(שניים עשר|תרי עשר)"     ]   , prod = \_ -> Just $ ordinal 12   }@@ -65,7 +65,7 @@ ruleOrdinal17 = Rule   { name = "ordinal 17"   , pattern =-    [ regex "(\x05e9\x05d1\x05e2(\x05d4)? \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(שבע(ה)? עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 17   }@@ -74,7 +74,7 @@ ruleOrdinal18 = Rule   { name = "ordinal 18"   , pattern =-    [ regex "(\x05e9\x05de\x05d5\x05e0\x05d4 \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(שמונה עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 18   }@@ -94,7 +94,7 @@ ruleOrdinal15 = Rule   { name = "ordinal 15"   , pattern =-    [ regex "(\x05d7\x05de\x05d9\x05e9\x05d4 \x05e2\x05e9\x05e8|\x05d7\x05de\x05e9 \x05e2\x05e9\x05e8\x05d4?)"+    [ regex "(חמישה עשר|חמש עשרה?)"     ]   , prod = \_ -> Just $ ordinal 15   }@@ -103,7 +103,7 @@ ruleOrdinal5 = Rule   { name = "ordinal 5"   , pattern =-    [ regex "(\x05d7\x05de\x05d9\x05e9\x05d9|\x05d7\x05de\x05d9\x05e9\x05d4)"+    [ regex "(חמישי|חמישה)"     ]   , prod = \_ -> Just $ ordinal 5   }@@ -112,7 +112,7 @@ ruleOrdinal16 = Rule   { name = "ordinal 16"   , pattern =-    [ regex "(\x05e9\x05e9(\x05d4)? \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(שש(ה)? עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 16   }@@ -121,7 +121,7 @@ ruleOrdinal14 = Rule   { name = "ordinal 14"   , pattern =-    [ regex "(\x05d0\x05e8\x05d1\x05e2(\x05d4)? \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(ארבע(ה)? עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 14   }@@ -130,18 +130,18 @@ ruleOrdinal20 = Rule   { name = "ordinal 20..90"   , pattern =-    [ regex "(\x05e2\x05e9\x05e8\x05d9\x05dd|\x05e9\x05dc\x05d5\x05e9\x05d9\x05dd|\x05d0\x05e8\x05d1\x05e2\x05d9\x05dd|\x05d7\x05de\x05d9\x05e9\x05d9\x05dd|\x05e9\x05d9\x05e9\x05d9\x05dd|\x05e9\x05d1\x05e2\x05d9\x05dd|\x05e9\x05de\x05d5\x05e0\x05d9\x05dd|\x05ea\x05e9\x05e2\x05d9\x05dd)"+    [ regex "(עשרים|שלושים|ארבעים|חמישים|שישים|שבעים|שמונים|תשעים)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x05e2\x05e9\x05e8\x05d9\x05dd" -> Just $ ordinal 20-        "\x05e9\x05dc\x05d5\x05e9\x05d9\x05dd" -> Just $ ordinal 30-        "\x05d0\x05e8\x05d1\x05e2\x05d9\x05dd" -> Just $ ordinal 40-        "\x05d7\x05de\x05d9\x05e9\x05d9\x05dd" -> Just $ ordinal 50-        "\x05e9\x05d9\x05e9\x05d9\x05dd" -> Just $ ordinal 60-        "\x05e9\x05d1\x05e2\x05d9\x05dd" -> Just $ ordinal 70-        "\x05e9\x05de\x05d5\x05e0\x05d9\x05dd" -> Just $ ordinal 80-        "\x05ea\x05e9\x05e2\x05d9\x05dd" -> Just $ ordinal 90+        "עשרים" -> Just $ ordinal 20+        "שלושים" -> Just $ ordinal 30+        "ארבעים" -> Just $ ordinal 40+        "חמישים" -> Just $ ordinal 50+        "שישים" -> Just $ ordinal 60+        "שבעים" -> Just $ ordinal 70+        "שמונים" -> Just $ ordinal 80+        "תשעים" -> Just $ ordinal 90         _ -> Nothing       _ -> Nothing   }@@ -150,7 +150,7 @@ ruleOrdinal = Rule   { name = "ordinal 1"   , pattern =-    [ regex "(\x05d0\x05d7\x05d3|\x05e8\x05d0\x05e9\x05d5\x05df)"+    [ regex "(אחד|ראשון)"     ]   , prod = \_ -> Just $ ordinal 1   }@@ -159,7 +159,7 @@ ruleOrdinal13 = Rule   { name = "ordinal 13"   , pattern =-    [ regex "(\x05e9\x05dc\x05d5\x05e9(\x05d4)? \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(שלוש(ה)? עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 13   }@@ -168,7 +168,7 @@ ruleOrdinal7 = Rule   { name = "ordinal 7"   , pattern =-    [ regex "(\x05e9\x05d1\x05e2\x05d4|\x05e9\x05d1\x05d9\x05e2\x05d9)"+    [ regex "(שבעה|שביעי)"     ]   , prod = \_ -> Just $ ordinal 7   }@@ -177,7 +177,7 @@ ruleOrdinal8 = Rule   { name = "ordinal 8"   , pattern =-    [ regex "(\x05e9\x05de\x05d5\x05e0\x05d4|\x05e9\x05de\x05d9\x05e0\x05d9)"+    [ regex "(שמונה|שמיני)"     ]   , prod = \_ -> Just $ ordinal 8   }@@ -186,7 +186,7 @@ ruleOrdinal2 = Rule   { name = "ordinal 2"   , pattern =-    [ regex "(\x05e9\x05ea\x05d9\x05d9\x05dd|\x05e9\x05e0\x05d9\x05d9\x05dd|\x05e9\x05e0\x05d9)"+    [ regex "(שתיים|שניים|שני)"     ]   , prod = \_ -> Just $ ordinal 2   }@@ -195,7 +195,7 @@ ruleOrdinal11 = Rule   { name = "ordinal 11"   , pattern =-    [ regex "(\x05d0\x05d7\x05d3 \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(אחד עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 11   }@@ -204,7 +204,7 @@ ruleOrdinal3 = Rule   { name = "ordinal 3"   , pattern =-    [ regex "(\x05e9\x05dc\x05d5\x05e9\x05d4|\x05e9\x05dc\x05d9\x05e9\x05d9)"+    [ regex "(שלושה|שלישי)"     ]   , prod = \_ -> Just $ ordinal 3   }@@ -213,7 +213,7 @@ ruleOrdinal6 = Rule   { name = "ordinal 6"   , pattern =-    [ regex "(\x05e9\x05e9\x05d4|\x05e9\x05d9\x05e9\x05d9)"+    [ regex "(ששה|שישי)"     ]   , prod = \_ -> Just $ ordinal 6   }@@ -222,7 +222,7 @@ ruleOrdinal19 = Rule   { name = "ordinal 19"   , pattern =-    [ regex "(\x05ea\x05e9\x05e2(\x05d4)? \x05e2\x05e9\x05e8(\x05d4)?)"+    [ regex "(תשע(ה)? עשר(ה)?)"     ]   , prod = \_ -> Just $ ordinal 19   }@@ -232,7 +232,7 @@   { name = "ordinal composition (with and)"   , pattern =     [ dimension Ordinal-    , regex "\x05d5"+    , regex "ו"     , dimension Ordinal     ]   , prod = \tokens -> case tokens of
Duckling/Ordinal/HR/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/HR/Rules.hs view
@@ -152,7 +152,7 @@ ruleOrdinalsFirstth = Rule   { name = "ordinals (first..19th)"   , pattern =-    [ regex "(prv(i|a|o(ga?)?)|drug(i|a|o(ga?)?)|tre(c|\x0107)(i|a|e(ga?)?)|(\x010d|c)etvrt(i|a|o(ga?)?)|pet(i|a|o(ga?)?)|(\x0161|s)est(i|a|o(ga?)?)|sedm(i|a|o(ga?)?)|osm(i|a|o(ga?)?)|devet(i|a|o(ga?)?)|deset(i|a|o(ga?)?)|jedanaest(i|a|o(ga?)?)|dvanaest(i|a|o(ga?)?)|trinaest(i|a|o(ga?)?)|(c|\x010d)etrnaest(i|a|o(ga?)?)|petnaest(i|a|o(ga?)?)|(s|\x0161)esnaest(i|a|o(ga?)?)|sedamnaest(i|a|o(ga?)?)|osamnaest(i|a|o(ga?)?)|devetnaest(i|a|o(ga?)?))"+    [ regex "(prv(i|a|o(ga?)?)|drug(i|a|o(ga?)?)|tre(c|ć)(i|a|e(ga?)?)|(č|c)etvrt(i|a|o(ga?)?)|pet(i|a|o(ga?)?)|(š|s)est(i|a|o(ga?)?)|sedm(i|a|o(ga?)?)|osm(i|a|o(ga?)?)|devet(i|a|o(ga?)?)|deset(i|a|o(ga?)?)|jedanaest(i|a|o(ga?)?)|dvanaest(i|a|o(ga?)?)|trinaest(i|a|o(ga?)?)|(c|č)etrnaest(i|a|o(ga?)?)|petnaest(i|a|o(ga?)?)|(s|š)esnaest(i|a|o(ga?)?)|sedamnaest(i|a|o(ga?)?)|osamnaest(i|a|o(ga?)?)|devetnaest(i|a|o(ga?)?))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
+ Duckling/Ordinal/HU/Corpus.hs view
@@ -0,0 +1,67 @@+-- 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.HU.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 HU Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (OrdinalData 1)+             [ "első"+             , "1."+             ]+  , examples (OrdinalData 2)+             [ "második"+             , "2."+             ]+  , examples (OrdinalData 3)+             [ "harmadik"+             , "3."+             ]+  , examples (OrdinalData 4)+             [ "negyedik"+             , "4."+             ]+  , examples (OrdinalData 8)+             [ "nyolcadik"+             , "8."+             ]+  , examples (OrdinalData 25)+             [ "huszonötödik"+             , "25."+             ]+  , examples (OrdinalData 31)+             [ "harmincegyedik"+             , "31."+             ]+  , examples (OrdinalData 42)+             [ "negyvenkettedik"+             , "42."+             ]+  , examples (OrdinalData 77)+            [ "hetvenhetedik"+            , "77."+            ]+  , examples (OrdinalData 90)+            [ "kilencvenedik"+            , "90."+            ]+  ]
+ Duckling/Ordinal/HU/Rules.hs view
@@ -0,0 +1,119 @@+-- 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.Ordinal.HU.Rules+  ( rules ) where++import Control.Monad (join)+import Data.HashMap.Strict ( HashMap)+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 (parseInt)+import Duckling.Ordinal.Helpers+import Duckling.Regex.Types+import Duckling.Types++ordinalsMap :: HashMap Text Int+ordinalsMap = HashMap.fromList+  [ ( "első", 1 )+  , ( "második", 2 )+  , ( "harmadik", 3 )+  , ( "negyedik", 4 )+  , ( "ötödik", 5 )+  , ( "hatodik", 6 )+  , ( "hetedik", 7 )+  , ( "nyolcadik", 8 )+  , ( "kilencedik", 9 )+  , ( "tizedik", 10 )+  , ( "huszadik", 20 )+  , ( "harmincadik", 30 )+  , ( "negyvenedik", 40 )+  , ( "ötvenedik", 50 )+  , ( "hatvanadik", 60 )+  , ( "hetvenedik", 70 )+  , ( "nyolcvanadik", 80 )+  , ( "kilencvenedik", 90 )+  ]++ordinalsMap2 :: HashMap Text Int+ordinalsMap2 = HashMap.fromList+    [ ( "egyedik", 1 )+    , ( "kettedik", 2 )+    , ( "harmadik", 3 )+    , ( "negyedik", 4 )+    , ( "ötödik", 5 )+    , ( "hatodik", 6 )+    , ( "hetedik", 7 )+    , ( "nyolcadik", 8 )+    , ( "kilencedik", 9 )+    ]++cardinalsMap :: HashMap Text Int+cardinalsMap = HashMap.fromList+  [ ( "tizen", 10 )+  , ( "huszon", 20 )+  , ( "harminc", 30 )+  , ( "negyven", 40 )+  , ( "ötven", 50 )+  , ( "hatvan", 60 )+  , ( "hetven", 70 )+  , ( "nyolcvan", 80 )+  , ( "kilencven", 90 )+  ]++ruleOrdinals :: Rule+ruleOrdinals = Rule+  { name = "ordinals (first..twentieth,thirtieth,...)"+  , pattern =+    [ regex "(első|második|harmadik|negyedik|ötödik|hatodik|hetedik|nyolcadik|kilencedik|tizedik|huszadik|harmincadik|negyvenedik|ötvenedik|hatvanadik|hetvenedik|nyolcvanadik|kilencvenedik)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        ordinal <$> HashMap.lookup (Text.toLower match) ordinalsMap+      _ -> Nothing+    }++ruleCompositeOrdinals :: Rule+ruleCompositeOrdinals = Rule+  { name = "ordinals (composite, e.g., eighty-seven)"+  , pattern =+    [ regex "(tizen|huszon|harminc|negyven|ötven|hatvan|hetven|nyolcvan|kilencven)\\-?(egyedik|kettedik|harmadik|negyedik|ötödik|hatodik|hetedik|nyolcadik|kilencedik)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (tens:units:_)):_) -> do+        tt <- HashMap.lookup (Text.toLower tens) cardinalsMap+        uu <- HashMap.lookup (Text.toLower units) ordinalsMap2+        Just . ordinal $ tt + uu+      _ -> 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 =+  [ ruleOrdinals+  , ruleCompositeOrdinals+  , ruleOrdinalDigits+  ]
Duckling/Ordinal/ID/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ID}, allExamples)+corpus = (testContext {locale = makeLocale ID Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/IT/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = IT}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/IT/Rules.hs view
@@ -78,7 +78,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+) ?(\x00aa|\x00b0|\x00b0)"+    [ regex "0*(\\d+) ?(ª|°|°)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match
Duckling/Ordinal/JA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = JA}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)  allExamples :: [Example] allExamples =
Duckling/Ordinal/JA/Rules.hs view
@@ -25,7 +25,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "\x7b2c"+    [ regex "第"     , dimension Numeral     ]   , prod = \tokens -> case tokens of
Duckling/Ordinal/KO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/KO/Rules.hs view
@@ -26,7 +26,7 @@   { name = "ordinals (첫번째)"   , pattern =     [ dimension Numeral-    , regex "\xbc88\xc9f8|\xc9f8(\xbc88)?"+    , regex "번째|째(번)?"     ]   , prod = \tokens -> case tokens of       (Token Numeral (NumeralData {TNumeral.value = v}):_) ->
Duckling/Ordinal/NB/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NB}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/NB/Rules.hs view
@@ -26,18 +26,18 @@ ruleOrdinalsFirstst = Rule   { name = "ordinals (first..31st)"   , pattern =-    [ regex "(f\x00f8rste|andre|tredje|fjerde|femtende|femte|sjette|syvende|\x00e5ttende|niende|tiende|ellevte|tolvte|trettende|fjortende|sekstende|syttende|attende|nittende|tyvende|tjuende|enogtyvende|toogtyvende|treogtyvende|fireogtyvende|femogtyvende|seksogtyvende|syvogtyvende|\x00e5tteogtyvende|niogtyvende|enogtjuende|toogtjuende|treogtjuende|fireogtjuende|femogtjuende|seksogtjuende|syvogtjuende|\x00e5tteogtyvend|niogtjuende|tredefte|enogtredefte)"+    [ regex "(første|andre|tredje|fjerde|femtende|femte|sjette|syvende|åttende|niende|tiende|ellevte|tolvte|trettende|fjortende|sekstende|syttende|attende|nittende|tyvende|tjuende|enogtyvende|toogtyvende|treogtyvende|fireogtyvende|femogtyvende|seksogtyvende|syvogtyvende|åtteogtyvende|niogtyvende|enogtjuende|toogtjuende|treogtjuende|fireogtjuende|femogtjuende|seksogtjuende|syvogtjuende|åtteogtyvend|niogtjuende|tredefte|enogtredefte)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "f\x00f8rste" -> Just $ ordinal 1+        "første" -> Just $ ordinal 1         "andre" -> Just $ ordinal 2         "tredje" -> Just $ ordinal 3         "fjerde" -> Just $ ordinal 4         "femte" -> Just $ ordinal 5         "sjette" -> Just $ ordinal 6         "syvende" -> Just $ ordinal 7-        "\x00e5ttende" -> Just $ ordinal 8+        "åttende" -> Just $ ordinal 8         "niende" -> Just $ ordinal 9         "tiende" -> Just $ ordinal 10         "ellevte" -> Just $ ordinal 11@@ -65,8 +65,8 @@         "seksogtyvende" -> Just $ ordinal 26         "syvogtyvende" -> Just $ ordinal 27         "syvogtjuende" -> Just $ ordinal 27-        "\x00e5tteogtyvende" -> Just $ ordinal 28-        "\x00e5tteogtjuende" -> Just $ ordinal 28+        "åtteogtyvende" -> Just $ ordinal 28+        "åtteogtjuende" -> Just $ ordinal 28         "niogtyvende" -> Just $ ordinal 29         "niogtjuende" -> Just $ ordinal 29         "tredefte" -> Just $ ordinal 30
Duckling/Ordinal/NL/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = NL}, allExamples)+corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/PL/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PL}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, allExamples)  allExamples :: [Example] allExamples =
Duckling/Ordinal/PL/Rules.hs view
@@ -27,7 +27,7 @@ ruleThOrdinalNoSpace = Rule   { name = "24th ordinal no space"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)czwart(y|ego|emu|ym|(a|\x0105)|ej)"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)czwart(y|ego|emu|ym|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 24   }@@ -36,7 +36,7 @@ ruleThOrdinal16 = Rule   { name = "31-39th ordinal"   , pattern =-    [ regex "trzydziest(ym|y|ego|emu|(a|\x0105)|ej)( |-)?"+    [ regex "trzydziest(ym|y|ego|emu|(a|ą)|ej)( |-)?"     , dimension Ordinal     ]   , prod = \tokens -> case tokens of@@ -49,7 +49,7 @@ ruleThOrdinal3 = Rule   { name = "10th ordinal"   , pattern =-    [ regex "dziesi(a|\x0105)t(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "dziesi(a|ą)t(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 10   }@@ -69,7 +69,7 @@ ruleThOrdinal8 = Rule   { name = "15th ordinal"   , pattern =-    [ regex "pi(e|\x0119)tnast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "pi(e|ę)tnast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 15   }@@ -78,7 +78,7 @@ ruleThOrdinal13 = Rule   { name = "20th ordinal"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 20   }@@ -87,7 +87,7 @@ ruleThOrdinal4 = Rule   { name = "11th ordinal"   , pattern =-    [ regex "jedenast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "jedenast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 11   }@@ -96,7 +96,7 @@ ruleFifthOrdinal = Rule   { name = "fifth ordinal"   , pattern =-    [ regex "pi(a|\x0105)t(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "pi(a|ą)t(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 5   }@@ -105,7 +105,7 @@ ruleThOrdinal11 = Rule   { name = "18th ordinal"   , pattern =-    [ regex "osiemnast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "osiemnast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 18   }@@ -114,7 +114,7 @@ ruleSecondOrdinal = Rule   { name = "second ordinal"   , pattern =-    [ regex "drugi?(ego|emu|m|(a|\x0105)|ej)?"+    [ regex "drugi?(ego|emu|m|(a|ą)|ej)?"     ]   , prod = \_ -> Just $ ordinal 2   }@@ -123,7 +123,7 @@ ruleNdOrdinalNoSpace = Rule   { name = "22nd ordinal no space"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)drugi?(ego|emu|m|(a|\x0105)|ej)?"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)drugi?(ego|emu|m|(a|ą)|ej)?"     ]   , prod = \_ -> Just $ ordinal 22   }@@ -132,7 +132,7 @@ ruleSeventhOrdinal = Rule   { name = "seventh ordinal"   , pattern =-    [ regex "si(o|\x00f3)dm(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "si(o|ó)dm(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 7   }@@ -141,7 +141,7 @@ ruleStOrdinalNoSpace = Rule   { name = "21st ordinal no space"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)pierw?sz(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)pierw?sz(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 21   }@@ -150,7 +150,7 @@ ruleThOrdinal7 = Rule   { name = "14th ordinal"   , pattern =-    [ regex "czternast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "czternast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 14   }@@ -159,7 +159,7 @@ ruleThOrdinal2 = Rule   { name = "9th ordinal"   , pattern =-    [ regex "dziewi(a|\x0105)t(ym|y|ego|em|emu|(a|\x0105)|ej)"+    [ regex "dziewi(a|ą)t(ym|y|ego|em|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 9   }@@ -168,7 +168,7 @@ ruleThOrdinal9 = Rule   { name = "16th ordinal"   , pattern =-    [ regex "szesnast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "szesnast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 16   }@@ -177,7 +177,7 @@ ruleThOrdinal = Rule   { name = "8th ordinal"   , pattern =-    [ regex "(o|\x00f3|\x00d3)sm(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "(o|ó|Ó)sm(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 8   }@@ -186,7 +186,7 @@ ruleThOrdinal14 = Rule   { name = "21-29th ordinal"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)( |-)?"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)( |-)?"     , dimension Ordinal     ]   , prod = \tokens -> case tokens of@@ -199,7 +199,7 @@ ruleThOrdinal10 = Rule   { name = "17th ordinal"   , pattern =-    [ regex "siedemnast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "siedemnast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 17   }@@ -208,7 +208,7 @@ ruleRdOrdinalNoSpace = Rule   { name = "23rd ordinal no space"   , pattern =-    [ regex "dwudziest(ym|y|ego|emu|(a|\x0105)|ej)trzeci(ego|ch|emu|m|mi|ej|(a|\x0105))?"+    [ regex "dwudziest(ym|y|ego|emu|(a|ą)|ej)trzeci(ego|ch|emu|m|mi|ej|(a|ą))?"     ]   , prod = \_ -> Just $ ordinal 23   }@@ -217,7 +217,7 @@ ruleThOrdinal5 = Rule   { name = "12th ordinal"   , pattern =-    [ regex "dwunast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "dwunast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 12   }@@ -226,7 +226,7 @@ ruleThOrdinal6 = Rule   { name = "13th ordinal"   , pattern =-    [ regex "trzynast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "trzynast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 13   }@@ -235,7 +235,7 @@ ruleFirstOrdinal = Rule   { name = "first ordinal"   , pattern =-    [ regex "pierw?sz(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "pierw?sz(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 1   }@@ -244,7 +244,7 @@ ruleSixthOrdinal = Rule   { name = "sixth ordinal"   , pattern =-    [ regex "sz(o|\x00f3)st(y|ego|emu|m|(a|\x0105)|ej)"+    [ regex "sz(o|ó)st(y|ego|emu|m|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 6   }@@ -253,7 +253,7 @@ ruleFourthOrdinal = Rule   { name = "fourth ordinal"   , pattern =-    [ regex "czwart(y|ego|emu|ym|(a|\x0105)|ej)"+    [ regex "czwart(y|ego|emu|ym|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 4   }@@ -262,7 +262,7 @@ ruleThOrdinal15 = Rule   { name = "30th ordinal"   , pattern =-    [ regex "trzydziest(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "trzydziest(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 30   }@@ -271,7 +271,7 @@ ruleThOrdinal12 = Rule   { name = "19th ordinal"   , pattern =-    [ regex "dziewi(\x0119|e)tnast(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "dziewi(ę|e)tnast(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \_ -> Just $ ordinal 19   }@@ -280,7 +280,7 @@ ruleThirdOrdinal = Rule   { name = "third ordinal"   , pattern =-    [ regex "trzeci(ego|ch|emu|m|mi|ej|(a|\x0105))?"+    [ regex "trzeci(ego|ch|emu|m|mi|ej|(a|ą))?"     ]   , prod = \_ -> Just $ ordinal 3   }
Duckling/Ordinal/PT/Corpus.hs view
@@ -15,13 +15,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/PT/Rules.hs view
@@ -25,7 +25,7 @@ ruleOrdinalsPrimeiro = Rule   { name = "ordinals (primeiro..10)"   , pattern =-    [ regex "((primeir|segund|quart|quint|sext|s(e|\x00e9)tim|oitav|non|d(e|\x00e9)cim)(os?|as?))"+    [ regex "((primeir|segund|quart|quint|sext|s(e|é)tim|oitav|non|d(e|é)cim)(os?|as?))"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -54,13 +54,13 @@         "sexta" -> Just $ ordinal 6         "sextas" -> Just $ ordinal 6         "setimas" -> Just $ ordinal 7-        "s\x00e9tima" -> Just $ ordinal 7+        "sétima" -> Just $ ordinal 7         "setimo" -> Just $ ordinal 7         "setimos" -> Just $ ordinal 7         "setima" -> Just $ ordinal 7-        "s\x00e9timos" -> Just $ ordinal 7-        "s\x00e9timo" -> Just $ ordinal 7-        "s\x00e9timas" -> Just $ ordinal 7+        "sétimos" -> Just $ ordinal 7+        "sétimo" -> Just $ ordinal 7+        "sétimas" -> Just $ ordinal 7         "oitavas" -> Just $ ordinal 8         "oitava" -> Just $ ordinal 8         "oitavo" -> Just $ ordinal 8@@ -69,14 +69,14 @@         "nona" -> Just $ ordinal 9         "nono" -> Just $ ordinal 9         "nonas" -> Just $ ordinal 9-        "d\x00e9cimos" -> Just $ ordinal 10+        "décimos" -> Just $ ordinal 10         "decimo" -> Just $ ordinal 10         "decimos" -> Just $ ordinal 10-        "d\x00e9cimo" -> Just $ ordinal 10+        "décimo" -> Just $ ordinal 10         "decimas" -> Just $ ordinal 10-        "d\x00e9cima" -> Just $ ordinal 10+        "décima" -> Just $ ordinal 10         "decima" -> Just $ ordinal 10-        "d\x00e9cimas" -> Just $ ordinal 10+        "décimas" -> Just $ ordinal 10         _ -> Nothing       _ -> Nothing   }
Duckling/Ordinal/RO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/RO/Rules.hs view
@@ -70,14 +70,14 @@   , ("\537apte", 7)   , ("opt", 8)   , ("noua", 9)-  , ("nou\x0103", 9)+  , ("nouă", 9)   ]  ruleSpelledOutOrdinals :: Rule ruleSpelledOutOrdinals = Rule   { name = "spelled out ordinals"   , pattern =-    [ regex "al?\\s(doi|trei|patru|cinci|(s|\x0219)a(s|pt)e|opt|nou(a|\x0103))[ -]?(le)?a"+    [ regex "al?\\s(doi|trei|patru|cinci|(s|ș)a(s|pt)e|opt|nou(a|ă))[ -]?(le)?a"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Ordinal/RU/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RU}, allExamples)+corpus = (testContext {locale = makeLocale RU Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/RU/Rules.hs view
@@ -27,30 +27,30 @@ ruleOrdinalsFirstth = Rule   { name = "ordinals (first..19th)"   , pattern =-    [ regex "(\x043f\x0435\x0440\x0432|\x0432\x0442\x043e\x0440|\x0442\x0440\x0435\x0442|\x0447\x0435\x0442\x0432\x0435\x0440\x0442|\x043f\x044f\x0442|\x0448\x0435\x0441\x0442|\x0441\x0435\x0434\x044c\x043c|\x0432\x043e\x0441\x044c\x043c|\x0434\x0435\x0432\x044f\x0442|\x0434\x0435\x0441\x044f\x0442|\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x0430\x0442|\x0434\x0432\x0435\x043d\x0430\x0434\x0446\x0430\x0442|\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x0430\x0442|\x0447\x0435\x0442\x044b\x0440\x043d\x0430\x0434\x0446\x0430\x0442|\x043f\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442|\x0448\x0435\x0441\x0442\x043d\x0430\x0434\x0446\x0430\x0442|\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442|\x0432\x043e\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442|\x0434\x0435\x0432\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442|\x0434\x0432\x0430\x0434\x0446\x0430\x0442)(\x044b\x0439|\x043e\x0439|\x0438\x0439|\x0430\x044f|\x043e\x0435)"+    [ regex "(перв|втор|трет|четверт|пят|шест|седьм|восьм|девят|десят|одинадцат|двенадцат|тринадцат|четырнадцат|пятнадцат|шестнадцат|семнадцат|восемнадцат|девятнадцат|двадцат)(ый|ой|ий|ая|ое)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\x043f\x0435\x0440\x0432" -> Just $ ordinal 1-        "\x0432\x0442\x043e\x0440" -> Just $ ordinal 2-        "\x0442\x0440\x0435\x0442" -> Just $ ordinal 3-        "\x0447\x0435\x0442\x0432\x0435\x0440\x0442" -> Just $ ordinal 4-        "\x043f\x044f\x0442" -> Just $ ordinal 5-        "\x0448\x0435\x0441\x0442" -> Just $ ordinal 6-        "\x0441\x0435\x0434\x044c\x043c" -> Just $ ordinal 7-        "\x0432\x043e\x0441\x044c\x043c" -> Just $ ordinal 8-        "\x0434\x0435\x0432\x044f\x0442" -> Just $ ordinal 9-        "\x0434\x0435\x0441\x044f\x0442" -> Just $ ordinal 10-        "\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 11-        "\x0434\x0432\x0435\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 12-        "\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 13-        "\x0447\x0435\x0442\x044b\x0440\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 14-        "\x043f\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 15-        "\x0448\x0435\x0441\x0442\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 16-        "\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 17-        "\x0432\x043e\x0441\x0435\x043c\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 18-        "\x0434\x0435\x0432\x044f\x0442\x043d\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 19-        "\x0434\x0432\x0430\x0434\x0446\x0430\x0442" -> Just $ ordinal 20+        "перв" -> 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       _ -> Nothing   }@@ -59,33 +59,33 @@ ruleOrdinal = Rule   { name = "ordinal 21..99"   , pattern =-    [ regex "(\x0434\x0432\x0430\x0434\x0446\x0430\x0442\x044c|\x0442\x0440\x0438\x0434\x0446\x0430\x0442\x044c|\x0441\x043e\x0440\x043e\x043a|\x043f\x044f\x0442\x044c\x0434\x0435\x0441\x044f\x0442|\x0448\x0435\x0441\x0442\x044c\x0434\x0435\x0441\x044f\x0442|\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442|\x0432\x043e\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442|\x0434\x0435\x0432\x044f\x043d\x043e\x0441\x0442\x043e)"-    , regex "(\x043f\x0435\x0440\x0432|\x0432\x0442\x043e\x0440|\x0442\x0440\x0435\x0442|\x0447\x0435\x0442\x0432\x0435\x0440\x0442|\x043f\x044f\x0442|\x0448\x0435\x0441\x0442|\x0441\x0435\x0434\x044c\x043c|\x0432\x043e\x0441\x044c\x043c|\x0434\x0435\x0432\x044f\x0442)(\x044b\x0439|\x043e\x0439|\x0438\x0439|\x0430\x044f|\x043e\x0435)"+    [ regex "(двадцать|тридцать|сорок|пятьдесят|шестьдесят|семьдесят|восемьдесят|девяносто)"+    , regex "(перв|втор|трет|четверт|пят|шест|седьм|восьм|девят)(ый|ой|ий|ая|ое)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (m1:_)):        Token RegexMatch (GroupMatch (m2:_)):        _) -> do          dozen <- case Text.toLower m1 of-           "\x0434\x0432\x0430\x0434\x0446\x0430\x0442\x044c" -> Just 20-           "\x0442\x0440\x0438\x0434\x0446\x0430\x0442\x044c" -> Just 30-           "\x0441\x043e\x0440\x043e\x043a" -> Just 40-           "\x043f\x044f\x0442\x044c\x0434\x0435\x0441\x044f\x0442" -> Just 50-           "\x0448\x0435\x0441\x0442\x044c\x0434\x0435\x0441\x044f\x0442" -> Just 60-           "\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442" -> Just 70-           "\x0432\x043e\x0441\x0435\x043c\x044c\x0434\x0435\x0441\x044f\x0442" -> Just 80-           "\x0434\x0435\x0432\x044f\x043d\x043e\x0441\x0442\x043e" -> Just 90+           "двадцать" -> Just 20+           "тридцать" -> Just 30+           "сорок" -> Just 40+           "пятьдесят" -> Just 50+           "шестьдесят" -> Just 60+           "семьдесят" -> Just 70+           "восемьдесят" -> Just 80+           "девяносто" -> Just 90            _ -> Nothing          unit <- case Text.toLower m2 of-           "\x043f\x0435\x0440\x0432" -> Just 1-           "\x0432\x0442\x043e\x0440" -> Just 2-           "\x0442\x0440\x0435\x0442" -> Just 3-           "\x0447\x0435\x0442\x0432\x0435\x0440\x0442" -> Just 4-           "\x043f\x044f\x0442" -> Just 5-           "\x0448\x0435\x0441\x0442" -> Just 6-           "\x0441\x0435\x0434\x044c\x043c" -> Just 7-           "\x0432\x043e\x0441\x044c\x043c" -> Just 8-           "\x0434\x0435\x0432\x044f\x0442" -> Just 9+           "перв" -> Just 1+           "втор" -> Just 2+           "трет" -> Just 3+           "четверт" -> Just 4+           "пят" -> Just 5+           "шест" -> Just 6+           "седьм" -> Just 7+           "восьм" -> Just 8+           "девят" -> Just 9            _ -> Nothing          Just . ordinal $ dozen + unit       _ -> Nothing@@ -95,7 +95,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+)-?((\x044b|\x043e|\x0438)?\x0439|\x0430\x044f|\x043e\x0435)"+    [ regex "0*(\\d+)-?((ы|о|и)?й|ая|ое)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match
Duckling/Ordinal/SV/Corpus.hs view
@@ -14,30 +14,68 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = SV}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)  allExamples :: [Example] allExamples = concat   [ examples (OrdinalData 1)-             [ "förste"-             , "första"+             [ "första"+             , "förste"+             , "1a"              , "1:a"-             , "1:e"              ]-  , examples (OrdinalData 10)-             [ "tionde"-             , "10."-             , "10"+  , examples (OrdinalData 2)+             [ "andra"+             , "andre"+             , "2a"+             , "2:a"              ]-  , examples (OrdinalData 26)-             [ "seksogtjuende"-             , "Seksogtyvende"-             , "26e"+  , examples (OrdinalData 3)+             [ "tredje"+             , "3e"+             , "3:e"              ]+  , examples (OrdinalData 4)+             [ "fjärde"+             , "4e"+             , "4:e"+             ]+  , examples (OrdinalData 8)+             [ "åttonde"+             , "8e"+             , "8:e"+             ]+  , examples (OrdinalData 25)+             [ "tjugofemte"+             , "25e"+             , "25:e"+             ]+  , examples (OrdinalData 31)+             [ "trettioförsta"+             , "trettioförste"+             , "31a"+             , "31:a"+             ]+  , examples (OrdinalData 42)+             [ "fyrtioandra"+             , "fyrtioandre"+             , "42a"+             , "42:a"+             ]+  , examples (OrdinalData 77)+            [ "sjuttiosjunde"+            , "77e"+            , "77:e"+            ]+  , examples (OrdinalData 90)+            [ "nittionde"+            , "90e"+            , "90:e"+            ]   ]
Duckling/Ordinal/SV/Rules.hs view
@@ -12,9 +12,13 @@ module Duckling.Ordinal.SV.Rules   ( rules ) where -import qualified Data.Text as Text-import Prelude+import Control.Monad (join)+import Data.HashMap.Strict ( HashMap) 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 (parseInt)@@ -22,65 +26,82 @@ import Duckling.Regex.Types import Duckling.Types -ruleOrdinalsFirstst :: Rule-ruleOrdinalsFirstst = Rule-  { name = "ordinals (first..31st)"+ordinalsMap :: HashMap Text Int+ordinalsMap = HashMap.fromList+  [ ( "första", 1 )+  , ( "förste", 1 )+  , ( "andra", 2 )+  , ( "andre", 2)+  , ( "tredje", 3 )+  , ( "fjärde", 4 )+  , ( "femte", 5 )+  , ( "sjätte", 6 )+  , ( "sjunde", 7 )+  , ( "åttonde", 8 )+  , ( "nionde", 9 )+  , ( "tionde", 10 )+  , ( "elfte", 11 )+  , ( "tolfte", 12 )+  , ( "trettonde", 13 )+  , ( "fjortonde", 14 )+  , ( "femtonde", 15 )+  , ( "sextonde", 16 )+  , ( "sjuttonde", 17 )+  , ( "artonde", 18 )+  , ( "nittonde", 19 )+  , ( "tjugonde", 20 )+  , ( "trettionde", 30 )+  , ( "fyrtionde", 40 )+  , ( "femtionde", 50 )+  , ( "sextionde", 60 )+  , ( "sjuttionde", 70 )+  , ( "åttionde", 80 )+  , ( "nittionde", 90 )+  ]++cardinalsMap :: HashMap Text Int+cardinalsMap = HashMap.fromList+  [ ( "tjugo", 20 )+  , ( "trettio", 30 )+  , ( "fyrtio", 40 )+  , ( "femtio", 50 )+  , ( "sextio", 60 )+  , ( "sjuttio", 70 )+  , ( "åttio", 80 )+  , ( "nittio", 90 )+  ]++ruleOrdinals :: Rule+ruleOrdinals = Rule+  { name = "ordinals (first..twentieth,thirtieth,...)"   , pattern =-    [ regex "(f\x00f6rste|f\x00f6rsta|andra|tredje|fj\x00e4rde|femte|sj\x00e4tte|sjunde|\x00e5ttonde|nionde|tionde|ellevte|tolfte|trettonde|fjortonde|femtonde|sekstende|syttende|attende|nittende|tyvende|tjuende|enogtyvende|toogtyvende|treogtyvende|fireogtyvende|femogtyvende|seksogtyvende|syvogtyvende|\x00e5tteogtyvende|niogtyvende|enogtjuende|toogtjuende|treogtjuende|fireogtjuende|femogtjuende|seksogtjuende|syvogtjuende|\x00e5tteogtyvend|niogtjuende|tredefte|enogtredefte)"+    [ regex "(första|förste|andra|andre|tredje|fjärde|femte|sjätte|sjunde|åttonde|nionde|tionde|elfte|tolfte|trettionde|fjortonde|femtonde|sextonde|sjuttonde|artonde|nittonde|tjugonde|trettionde|fyrtionde|femtonde|sextionde|sjuttionde|åttionde|nittionde)"     ]   , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "f\x00f6rsta" -> Just $ ordinal 1-        "f\x00f6rste" -> Just $ ordinal 1-        "andra" -> Just $ ordinal 2-        "tredje" -> Just $ ordinal 3-        "fj\x00e4rde" -> Just $ ordinal 4-        "femte" -> Just $ ordinal 5-        "sj\x00e4tte" -> Just $ ordinal 6-        "sjunde" -> Just $ ordinal 7-        "\x00e5ttonde" -> Just $ ordinal 8-        "nionde" -> Just $ ordinal 9-        "tionde" -> Just $ ordinal 10-        "ellevte" -> Just $ ordinal 11-        "tolfte" -> Just $ ordinal 12-        "trettonde" -> Just $ ordinal 13-        "fjortonde" -> Just $ ordinal 14-        "femtonde" -> Just $ ordinal 15-        "sekstende" -> Just $ ordinal 16-        "syttende" -> Just $ ordinal 17-        "attende" -> Just $ ordinal 18-        "nittende" -> Just $ ordinal 19-        "tyvende" -> Just $ ordinal 20-        "tjuende" -> Just $ ordinal 20-        "enogtjuende" -> Just $ ordinal 21-        "enogtyvende" -> Just $ ordinal 21-        "toogtyvende" -> Just $ ordinal 22-        "toogtjuende" -> Just $ ordinal 22-        "treogtyvende" -> Just $ ordinal 23-        "treogtjuende" -> Just $ ordinal 23-        "fireogtjuende" -> Just $ ordinal 24-        "fireogtyvende" -> Just $ ordinal 24-        "femogtyvende" -> Just $ ordinal 25-        "femogtjuende" -> Just $ ordinal 25-        "seksogtjuende" -> Just $ ordinal 26-        "seksogtyvende" -> Just $ ordinal 26-        "syvogtyvende" -> Just $ ordinal 27-        "syvogtjuende" -> Just $ ordinal 27-        "\x00e5tteogtyvende" -> Just $ ordinal 28-        "\x00e5tteogtjuende" -> Just $ ordinal 28-        "niogtyvende" -> Just $ ordinal 29-        "niogtjuende" -> Just $ ordinal 29-        "tredefte" -> Just $ ordinal 30-        "enogtredefte" -> Just $ ordinal 31-        _ -> Nothing+      (Token RegexMatch (GroupMatch (match:_)):_) ->+        ordinal <$> HashMap.lookup (Text.toLower match) ordinalsMap       _ -> Nothing+    }++ruleCompositeOrdinals :: Rule+ruleCompositeOrdinals = Rule+  { name = "ordinals (composite, e.g., eighty-seven)"+  , pattern =+    [ regex "(tjugo|trettio|fyrtio|femtio|sextio|sjuttio|åttio|nittio)(första|förste|andra|andre|tredje|fjärde|femte|sjätte|sjunde|åttonde|nionde)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (tens:units:_)):_) -> do+        tt <- HashMap.lookup (Text.toLower tens) cardinalsMap+        uu <- HashMap.lookup (Text.toLower units) ordinalsMap+        Just . ordinal $ tt + uu+      _ -> Nothing   }  ruleOrdinalDigits :: Rule ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+)(\\.|e|\\:[ae])?"+    [ regex "0*(\\d+):?(a|e)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match@@ -89,6 +110,7 @@  rules :: [Rule] rules =-  [ ruleOrdinalDigits-  , ruleOrdinalsFirstst+  [ ruleOrdinals+  , ruleCompositeOrdinals+  , ruleOrdinalDigits   ]
Duckling/Ordinal/TR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = TR}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/TR/Rules.hs view
@@ -29,30 +29,30 @@ ordinals =   [ "birinci"   , "ikinci"-  , "\x00fc\x00e7\x00fcnc\x00fc"-  , "d\x00f6rd\x00fcnc\x00fc"-  , "be\x015finci"-  , "alt\x0131nc\x0131"+  , "üçüncü"+  , "dördüncü"+  , "beşinci"+  , "altıncı"   , "yedinci"   , "sekizinci"   , "dokuzuncu"   , "onuncu"   , "on birinci"   , "on ikinci"-  , "on \x00fc\x00e7\x00fcnc\x00fc"-  , "on d\x00f6rd\x00fcnc\x00fc"-  , "on be\x015finci"-  , "on alt\x0131nc\x0131"+  , "on üçüncü"+  , "on dördüncü"+  , "on beşinci"+  , "on altıncı"   , "on yedinci"   , "on sekizinci"   , "on dokuzuncu"   , "yirminci"   , "yirmi birinci"   , "yirmi ikinci"-  , "yirmi \x00fc\x00e7\x00fcnc\x00fc"-  , "yirmi d\x00f6rd\x00fcnc\x00fc"-  , "yirmi be\x015finci"-  , "yirmi alt\x0131nc\x0131"+  , "yirmi üçüncü"+  , "yirmi dördüncü"+  , "yirmi beşinci"+  , "yirmi altıncı"   , "yirmi yedinci"   , "yirmi sekizinci"   , "yirmi dokuzuncu"@@ -80,7 +80,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+) ?('?)(inci|nci|\x0131nc\x0131|nc\x0131|uncu|ncu|\x00fcnc\x00fc|nc\x00fc|.)"+    [ regex "0*(\\d+) ?('?)(inci|nci|ıncı|ncı|uncu|ncu|üncü|ncü|.)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) ->
Duckling/Ordinal/UK/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = UK}, allExamples)+corpus = (testContext {locale = makeLocale UK Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/UK/Rules.hs view
@@ -28,33 +28,33 @@  ordinalsFirstThMap :: HashMap Text Int ordinalsFirstThMap = HashMap.fromList-  [ ( "\x043f\x0435\x0440\x0448"                   , 1 )-  , ( "\x0434\x0440\x0443\x0433"                   , 2 )-  , ( "\x0442\x0440\x0435\x0442"                   , 3 )-  , ( "\x0447\x0435\x0442\x0432\x0435\x0440\x0442" , 4 )-  , ( "\x043f\x2018\x044f\x0442"                   , 5 )-  , ( "\x0448\x043e\x0441\x0442"                   , 6 )-  , ( "\x0441\x044c\x043e\x043c"                   , 7 )-  , ( "\x0432\x043e\x0441\x044c\x043c"             , 8 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x0442"       , 9 )-  , ( "\x0434\x0435\x0441\x044f\x0442"             , 10 )-  , ( "\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x044f\x0442"             , 11 )-  , ( "\x0434\x0432\x0430\x043d\x0430\x0434\x0446\x044f\x0442"             , 12 )-  , ( "\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x044f\x0442"             , 13 )-  , ( "\x0447\x043e\x0442\x0438\x0440\x043d\x0430\x0434\x0446\x044f\x0442" , 14 )-  , ( "\x043f\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442"       , 15 )-  , ( "\x0448\x0456\x0441\x0442\x043d\x0430\x0434\x0446\x044f\x0442"       , 16 )-  , ( "\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442"             , 17 )-  , ( "\x0432\x0456\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442" , 18 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442" , 19 )-  , ( "\x0434\x0432\x0430\x0434\x0446\x044f\x0442"                               , 20 )+  [ ( "перш"                   , 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 "(\x043f\x0435\x0440\x0448|\x0434\x0440\x0443\x0433|\x0442\x0440\x0435\x0442|\x0447\x0435\x0442\x0432\x0435\x0440\x0442|\x043f\x2018\x044f\x0442|\x0448\x043e\x0441\x0442|\x0441\x044c\x043e\x043c|\x0432\x043e\x0441\x044c\x043c|\x0434\x0435\x0432\x2018\x044f\x0442|\x0434\x0435\x0441\x044f\x0442|\x043e\x0434\x0438\x043d\x0430\x0434\x0446\x044f\x0442|\x0434\x0432\x0430\x043d\x0430\x0434\x0446\x044f\x0442|\x0442\x0440\x0438\x043d\x0430\x0434\x0446\x044f\x0442|\x0447\x043e\x0442\x0438\x0440\x043d\x0430\x0434\x0446\x044f\x0442|\x043f\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442|\x0448\x0456\x0441\x0442\x043d\x0430\x0434\x0446\x044f\x0442|\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442|\x0432\x0456\x0441\x0456\x043c\x043d\x0430\x0434\x0446\x044f\x0442|\x0434\x0435\x0432\x2018\x044f\x0442\x043d\x0430\x0434\x0446\x044f\x0442|\x0434\x0432\x0430\x0434\x0446\x044f\x0442)(\x0438\x0439|\x0456\x0439|\x0430|\x044f|\x0435|\x0454)"+    [ regex "(перш|друг|трет|четверт|п‘ят|шост|сьом|восьм|дев‘ят|десят|одинадцят|дванадцят|тринадцят|чотирнадцят|п‘ятнадцят|шістнадцят|сімнадцят|вісімнадцят|дев‘ятнадцят|двадцят)(ий|ій|а|я|е|є)"     ]   , prod = \tokens -> case tokens of     (Token RegexMatch (GroupMatch (match:_)):_) ->@@ -64,22 +64,22 @@  ordinalTensMap :: HashMap Text Int ordinalTensMap = HashMap.fromList-  [ ( "\x0434\x0432\x0430\x0434\x0446\x044f\x0442\x044c"             , 20 )-  , ( "\x0442\x0440\x0438\x0434\x0446\x044f\x0442\x044c"             , 30 )-  , ( "\x0441\x043e\x0440\x043e\x043a"                               , 40 )-  , ( "\x043f\x2018\x044f\x0442\x0434\x0435\x0441\x044f\x0442"       , 50 )-  , ( "\x0448\x0456\x0441\x0442\x0434\x0435\x0441\x044f\x0442"       , 60 )-  , ( "\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442"             , 70 )-  , ( "\x0432\x0456\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442" , 80 )-  , ( "\x0434\x0435\x0432\x2018\x044f\x043d\x043e\x0441\x0442\x043e" , 90 )+  [ ( "двадцять"             , 20 )+  , ( "тридцять"             , 30 )+  , ( "сорок"                               , 40 )+  , ( "п‘ятдесят"       , 50 )+  , ( "шістдесят"       , 60 )+  , ( "сімдесят"             , 70 )+  , ( "вісімдесят" , 80 )+  , ( "дев‘яносто" , 90 )   ]  ruleOrdinal :: Rule ruleOrdinal = Rule   { name = "ordinal 21..99"   , pattern =-    [ regex "(\x0434\x0432\x0430\x0434\x0446\x044f\x0442\x044c|\x0442\x0440\x0438\x0434\x0446\x044f\x0442\x044c|\x0441\x043e\x0440\x043e\x043a|\x043f\x2018\x044f\x0442\x0434\x0435\x0441\x044f\x0442|\x0448\x0456\x0441\x0442\x044c\x0434\x0435\x0441\x044f\x0442|\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442|\x0432\x0456\x0441\x0456\x043c\x0434\x0435\x0441\x044f\x0442|\x0434\x0435\x0432\x2018\x044f\x043d\x043e\x0441\x0442\x043e)"-    , regex "(\x043f\x0435\x0440\x0448|\x0434\x0440\x0443\x0433|\x0442\x0440\x0435\x0442|\x0447\x0435\x0442\x0432\x0435\x0440\x0442|\x043f\x2018\x044f\x0442|\x0448\x043e\x0441\x0442|\x0441\x044c\x043e\x043c|\x0432\x043e\x0441\x044c\x043c|\x0434\x0435\x0432\x2018\x044f\x0442)(\x0438\x0439|\x0456\x0439|\x0430|\x044f|\x0435|\x0454)"+    [ regex "(двадцять|тридцять|сорок|п‘ятдесят|шістьдесят|сімдесят|вісімдесят|дев‘яносто)"+    , regex "(перш|друг|трет|четверт|п‘ят|шост|сьом|восьм|дев‘ят)(ий|ій|а|я|е|є)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (m1:_)):@@ -95,7 +95,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "0*(\\d+)-?((\x0438|\x0456)?\x0439|\x0430|\x044f|\x0435|\x0454)"+    [ regex "0*(\\d+)-?((и|і)?й|а|я|е|є)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> ordinal <$> parseInt match
Duckling/Ordinal/VI/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = VI}, allExamples)+corpus = (testContext {locale = makeLocale VI Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/VI/Rules.hs view
@@ -22,7 +22,7 @@ ruleOrdinals = Rule   { name = "ordinals"   , pattern =-    [ regex "(\x0111\x1ea7u ti\x00ean|th\x1ee9 nh\x1ea5t|th\x1ee9 1)"+    [ regex "(đầu tiên|thứ nhất|thứ 1)"     ]   , prod = \_ -> Just $ ordinal 1   }
Duckling/Ordinal/ZH/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Ordinal.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ZH}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Ordinal/ZH/Rules.hs view
@@ -25,7 +25,7 @@ ruleOrdinalDigits = Rule   { name = "ordinal (digits)"   , pattern =-    [ regex "\x7b2c"+    [ regex "第"     , dimension Numeral     ]   , prod = \tokens -> case tokens of
Duckling/PhoneNumber/PT/Corpus.hs view
@@ -15,13 +15,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.PhoneNumber.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/EN/Corpus.hs view
@@ -25,9 +25,25 @@   [ examples (QuantityData Pound 2 (Just "meat"))              [ "two pounds of meat"              ]+  , examples (QuantityData Gram 2 Nothing)+             [ "2 grams"+             , "0.002 kg"+             , "2/1000 kilograms"+             , "2000 milligrams"+             ]+  , examples (QuantityData Gram 1000 Nothing)+             [ "a kilogram"+             , "a kg"+             ]   , examples (QuantityData Pound 1 Nothing)              [ "a Pound"+             , "1 lb"+             , "a lb"              ]+  , examples (QuantityData Ounce 2 Nothing)+             [ "2 ounces"+             , "2oz"+             ]   , examples (QuantityData Cup 3 (Just "sugar"))              [ "3 Cups of sugar"              ]@@ -39,5 +55,8 @@   , examples (QuantityData Gram 500 (Just "strawberries"))              [ "500 grams of strawberries"              , "500g of strawberries"+             , "0.5 kilograms of strawberries"+             , "0.5 kg of strawberries"+             , "500000mg of strawberries"              ]   ]
Duckling/Quantity/EN/Rules.hs view
@@ -13,60 +13,66 @@   ( rules ) where  import Data.String+import Data.Text (Text) import Prelude import qualified Data.Text as Text  import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers import Duckling.Quantity.Helpers import Duckling.Regex.Types import Duckling.Types import qualified Duckling.Numeral.Types as TNumeral import qualified Duckling.Quantity.Types as TQuantity -ruleNumeralQuantity :: Rule-ruleNumeralQuantity = Rule-  { name = "<number> <quantity>"-  , pattern =-    [ dimension Numeral-    , regex "((pound|cup|gram)s?|g)"-    ]-  , prod = \tokens -> case tokens of-    (Token Numeral nd:-     Token RegexMatch (GroupMatch (match:_)):-     _) -> case Text.toLower match of-      "cup"    ->-        Just . Token Quantity . quantity TQuantity.Cup $ TNumeral.value nd-      "cups"   ->-        Just . Token Quantity . quantity TQuantity.Cup $ TNumeral.value nd-      "g"      ->-        Just . Token Quantity . quantity TQuantity.Gram $ TNumeral.value nd-      "gram"   ->-        Just . Token Quantity . quantity TQuantity.Gram $ TNumeral.value nd-      "grams"  ->-        Just . Token Quantity . quantity TQuantity.Gram $ TNumeral.value nd-      "pound"  ->-        Just . Token Quantity . quantity TQuantity.Pound $ TNumeral.value nd-      "pounds" ->-        Just . Token Quantity . quantity TQuantity.Pound $ TNumeral.value nd-      _        -> Nothing-    _ -> Nothing-  }+quantities :: [(Text, String, TQuantity.Unit)]+quantities =+  [ ("<quantity> cups", "(cups?)", TQuantity.Cup)+  , ("<quantity> grams", "(((m(illi)?)|(k(ilo)?))?g(ram)?s?)", TQuantity.Gram)+  , ("<quantity> lb", "((lb|pound)s?)", TQuantity.Pound)+  , ("<quantity> oz", "((ounces?)|oz)", TQuantity.Ounce)+  ] -ruleAQuantity :: Rule-ruleAQuantity = Rule-  { name = "a quantity"-  , pattern =-    [ regex "a (pound|cup|gram)s?"-    ]-  , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of-        "cup"    -> Just . Token Quantity $ quantity TQuantity.Cup 1-        "gram"   -> Just . Token Quantity $ quantity TQuantity.Gram 1-        "pound"  -> Just . Token Quantity $ quantity TQuantity.Pound 1-        _        -> Nothing-      _ -> Nothing-  }+getValue :: Text -> Double -> Double+getValue match value = case Text.toLower match of+  "milligram" -> value / 1000+  "milligrams" -> value / 1000+  "mg" -> value / 1000+  "mgs" -> value / 1000+  "kilogram" -> value * 1000+  "kilograms" -> value * 1000+  "kg" -> value * 1000+  "kgs" -> value * 1000+  _ -> value +ruleNumeralQuantities :: [Rule]+ruleNumeralQuantities = map go quantities+  where+    go :: (Text, String, TQuantity.Unit) -> Rule+    go (name, regexPattern, u) = Rule+      { name = name+      , pattern = [ numberWith TNumeral.value (> 0), regex regexPattern ]+      , prod = \tokens -> case tokens of+        (Token Numeral nd:+         Token RegexMatch (GroupMatch (match:_)):+         _) -> Just . Token Quantity $ quantity u value+          where value = getValue match $ TNumeral.value nd+        _ -> Nothing+      }++ruleAQuantity :: [Rule]+ruleAQuantity = map go quantities+  where+    go :: (Text, String, TQuantity.Unit) -> Rule+    go (name, regexPattern, u) = Rule+      { name = name+      , pattern = [ regex ("an? " ++ regexPattern) ]+      , prod = \tokens -> case tokens of+        (Token RegexMatch (GroupMatch (match:_)):+         _) -> Just . Token Quantity $ quantity u $ getValue match 1+        _ -> Nothing+      }+ ruleQuantityOfProduct :: Rule ruleQuantityOfProduct = Rule   { name = "<quantity> of product"@@ -82,7 +88,7 @@  rules :: [Rule] rules =-  [ ruleNumeralQuantity-  , ruleAQuantity-  , ruleQuantityOfProduct+  [ ruleQuantityOfProduct   ]+  ++ ruleNumeralQuantities+  ++ ruleAQuantity
Duckling/Quantity/FR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Quantity.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/FR/Rules.hs view
@@ -29,7 +29,7 @@   { name = "<number> <units>"   , pattern =     [ dimension Numeral-    , regex "(tasses?|cuill?(e|\x00e8)res? (a|\x00e0) soupe?)"+    , regex "(tasses?|cuill?(e|è)res? (a|à) soupe?)"     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData {TNumeral.value = v}:@@ -46,7 +46,7 @@   { name = "<quantity> of product"   , pattern =     [ dimension Quantity-    , regex "de (caf(e|\x00e9)|sucre)"+    , regex "de (caf(e|é)|sucre)"     ]   , prod = \tokens -> case tokens of       (Token Quantity qd:
Duckling/Quantity/HR/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Quantity.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/KO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Quantity.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/KO/Rules.hs view
@@ -28,7 +28,7 @@   { name = "<quantity> of product"   , pattern =     [ dimension Quantity-    , regex "\xc758 (\xc0bc\xacb9\xc0b4|\xcf5c\xb77c)"+    , regex "의 (삼겹살|콜라)"     ]   , prod = \tokens -> case tokens of       (Token Quantity qd:@@ -41,7 +41,7 @@ ruleQuantityOfProduct2 = Rule   { name = "<quantity> of product"   , pattern =-    [ regex "(\xc0bc\xacb9\xc0b4|\xcf5c\xb77c)"+    [ regex "(삼겹살|콜라)"     , dimension Quantity     ]   , prod = \tokens -> case tokens of@@ -56,22 +56,22 @@   { name = "<number> <units>"   , pattern =     [ dimension Numeral-    , regex "(\xac1c|\xd310|\xadf8(\xb7a8|\xb78c)|\xadfc|\xd30c\xc6b4(\xb4dc|\xc988)|\xc8111\xc2dc|\xadf8\xb987|\xcef5)"+    , regex "(개|판|그(램|람)|근|파운(드|즈)|접1시|그릇|컵)"     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData {TNumeral.value = v}:        Token RegexMatch (GroupMatch (match:_)):        _) -> case match of-         "\xac1c"             -> Just . Token Quantity $ quantity TQuantity.Unnamed v-         "\xd310"             -> Just . Token Quantity $ quantity (TQuantity.Custom "판") v-         "\xadfc"             -> Just . Token Quantity $ quantity (TQuantity.Custom "근") v-         "\xadf8\xb7a8"       -> Just . Token Quantity $ quantity TQuantity.Gram v-         "\xadf8\xb78c"       -> Just . Token Quantity $ quantity TQuantity.Gram v-         "\xd30c\xc6b4\xb4dc" -> Just . Token Quantity $ quantity TQuantity.Pound v-         "\xd30c\xc6b4\xc988" -> Just . Token Quantity $ quantity TQuantity.Pound v-         "\xc8111\xc2dc"      -> Just . Token Quantity $ quantity TQuantity.Dish v-         "\xadf8\xb987"       -> Just . Token Quantity $ quantity TQuantity.Bowl v-         "\xcef5"             -> Just . Token Quantity $ quantity TQuantity.Cup v+         "개"             -> Just . Token Quantity $ quantity TQuantity.Unnamed v+         "판"             -> Just . Token Quantity $ quantity (TQuantity.Custom "판") v+         "근"             -> Just . Token Quantity $ quantity (TQuantity.Custom "근") v+         "그램"       -> Just . Token Quantity $ quantity TQuantity.Gram v+         "그람"       -> Just . Token Quantity $ quantity TQuantity.Gram v+         "파운드" -> Just . Token Quantity $ quantity TQuantity.Pound v+         "파운즈" -> Just . Token Quantity $ quantity TQuantity.Pound v+         "접1시"      -> Just . Token Quantity $ quantity TQuantity.Dish v+         "그릇"       -> Just . Token Quantity $ quantity TQuantity.Bowl v+         "컵"             -> Just . Token Quantity $ quantity TQuantity.Cup v          _                    -> Nothing       _ -> Nothing   }
Duckling/Quantity/PT/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Quantity.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/PT/Rules.hs view
@@ -46,7 +46,7 @@   { name = "<quantity> of product"   , pattern =     [ dimension Quantity-    , regex "de (caf(e|\x00e9)|a(\x00e7|c)ucar)"+    , regex "de (caf(e|é)|a(ç|c)ucar)"     ]   , prod = \tokens -> case tokens of       (Token Quantity qd:
Duckling/Quantity/RO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Quantity.Types import Duckling.Resolve import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Quantity/RO/Rules.hs view
@@ -28,7 +28,7 @@   { name = "<number> <units>"   , pattern =     [ dimension Numeral-    , regex "livr(a|e|\x0103)"+    , regex "livr(a|e|ă)"     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData {TNumeral.value = v}:_) ->@@ -41,7 +41,7 @@   { name = "<quantity> of product"   , pattern =     [ dimension Quantity-    , regex "de (carne|can(a|\x0103)|zah(a|\x0103)r)"+    , regex "de (carne|can(a|ă)|zah(a|ă)r)"     ]   , prod = \tokens -> case tokens of       (Token Quantity qd:
Duckling/Quantity/Types.hs view
@@ -30,6 +30,7 @@   | Custom Text   | Dish   | Gram+  | Ounce   | Pint   | Pound   | Quart
Duckling/Ranking/Classifiers.hs view
@@ -10,61 +10,73 @@   ( classifiers   ) where -import Duckling.Lang-import qualified Duckling.Ranking.Classifiers.AR as ARClassifiers-import qualified Duckling.Ranking.Classifiers.CS as CSClassifiers-import qualified Duckling.Ranking.Classifiers.DA as DAClassifiers-import qualified Duckling.Ranking.Classifiers.DE as DEClassifiers-import qualified Duckling.Ranking.Classifiers.EN as ENClassifiers-import qualified Duckling.Ranking.Classifiers.ES as ESClassifiers-import qualified Duckling.Ranking.Classifiers.ET as ETClassifiers-import qualified Duckling.Ranking.Classifiers.FR as FRClassifiers-import qualified Duckling.Ranking.Classifiers.GA as GAClassifiers-import qualified Duckling.Ranking.Classifiers.HE as HEClassifiers-import qualified Duckling.Ranking.Classifiers.HR as HRClassifiers-import qualified Duckling.Ranking.Classifiers.ID as IDClassifiers-import qualified Duckling.Ranking.Classifiers.IT as ITClassifiers-import qualified Duckling.Ranking.Classifiers.JA as JAClassifiers-import qualified Duckling.Ranking.Classifiers.KO as KOClassifiers-import qualified Duckling.Ranking.Classifiers.MY as MYClassifiers-import qualified Duckling.Ranking.Classifiers.NB as NBClassifiers-import qualified Duckling.Ranking.Classifiers.NL as NLClassifiers-import qualified Duckling.Ranking.Classifiers.PL as PLClassifiers-import qualified Duckling.Ranking.Classifiers.PT as PTClassifiers-import qualified Duckling.Ranking.Classifiers.RO as ROClassifiers-import qualified Duckling.Ranking.Classifiers.RU as RUClassifiers-import qualified Duckling.Ranking.Classifiers.SV as SVClassifiers-import qualified Duckling.Ranking.Classifiers.TR as TRClassifiers-import qualified Duckling.Ranking.Classifiers.UK as UKClassifiers-import qualified Duckling.Ranking.Classifiers.VI as VIClassifiers-import qualified Duckling.Ranking.Classifiers.ZH as ZHClassifiers+import Data.Maybe++import Duckling.Locale import Duckling.Ranking.Types+import qualified Duckling.Ranking.Classifiers.AR_XX as AR_XXClassifiers+import qualified Duckling.Ranking.Classifiers.BG_XX as BG_XXClassifiers+import qualified Duckling.Ranking.Classifiers.CS_XX as CS_XXClassifiers+import qualified Duckling.Ranking.Classifiers.DA_XX as DA_XXClassifiers+import qualified Duckling.Ranking.Classifiers.DE_XX as DE_XXClassifiers+import qualified Duckling.Ranking.Classifiers.EN_GB as EN_GBClassifiers+import qualified Duckling.Ranking.Classifiers.EN_US as EN_USClassifiers+import qualified Duckling.Ranking.Classifiers.EN_XX as EN_XXClassifiers+import qualified Duckling.Ranking.Classifiers.ES_XX as ES_XXClassifiers+import qualified Duckling.Ranking.Classifiers.ET_XX as ET_XXClassifiers+import qualified Duckling.Ranking.Classifiers.FR_XX as FR_XXClassifiers+import qualified Duckling.Ranking.Classifiers.GA_XX as GA_XXClassifiers+import qualified Duckling.Ranking.Classifiers.HE_XX as HE_XXClassifiers+import qualified Duckling.Ranking.Classifiers.HR_XX as HR_XXClassifiers+import qualified Duckling.Ranking.Classifiers.HU_XX as HU_XXClassifiers+import qualified Duckling.Ranking.Classifiers.ID_XX as ID_XXClassifiers+import qualified Duckling.Ranking.Classifiers.IT_XX as IT_XXClassifiers+import qualified Duckling.Ranking.Classifiers.JA_XX as JA_XXClassifiers+import qualified Duckling.Ranking.Classifiers.KA_XX as KA_XXClassifiers+import qualified Duckling.Ranking.Classifiers.KO_XX as KO_XXClassifiers+import qualified Duckling.Ranking.Classifiers.MY_XX as MY_XXClassifiers+import qualified Duckling.Ranking.Classifiers.NB_XX as NB_XXClassifiers+import qualified Duckling.Ranking.Classifiers.NL_XX as NL_XXClassifiers+import qualified Duckling.Ranking.Classifiers.PL_XX as PL_XXClassifiers+import qualified Duckling.Ranking.Classifiers.PT_XX as PT_XXClassifiers+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.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+import qualified Duckling.Ranking.Classifiers.ZH_XX as ZH_XXClassifiers -classifiers :: Lang -> Classifiers-classifiers AR = ARClassifiers.classifiers-classifiers CS = CSClassifiers.classifiers-classifiers DA = DAClassifiers.classifiers-classifiers DE = DEClassifiers.classifiers-classifiers EN = ENClassifiers.classifiers-classifiers ES = ESClassifiers.classifiers-classifiers ET = ETClassifiers.classifiers-classifiers FR = FRClassifiers.classifiers-classifiers GA = GAClassifiers.classifiers-classifiers HE = HEClassifiers.classifiers-classifiers HR = HRClassifiers.classifiers-classifiers ID = IDClassifiers.classifiers-classifiers IT = ITClassifiers.classifiers-classifiers JA = JAClassifiers.classifiers-classifiers KO = KOClassifiers.classifiers-classifiers MY = MYClassifiers.classifiers-classifiers NB = NBClassifiers.classifiers-classifiers NL = NLClassifiers.classifiers-classifiers PL = PLClassifiers.classifiers-classifiers PT = PTClassifiers.classifiers-classifiers RO = ROClassifiers.classifiers-classifiers RU = RUClassifiers.classifiers-classifiers SV = SVClassifiers.classifiers-classifiers TR = TRClassifiers.classifiers-classifiers UK = UKClassifiers.classifiers-classifiers VI = VIClassifiers.classifiers-classifiers ZH = ZHClassifiers.classifiers+classifiers :: Locale -> Classifiers+classifiers (Locale AR _) = AR_XXClassifiers.classifiers+classifiers (Locale BG _) = BG_XXClassifiers.classifiers+classifiers (Locale CS _) = CS_XXClassifiers.classifiers+classifiers (Locale DA _) = DA_XXClassifiers.classifiers+classifiers (Locale DE _) = DE_XXClassifiers.classifiers+classifiers (Locale EN (Just GB)) = EN_GBClassifiers.classifiers+classifiers (Locale EN (Just US)) = EN_USClassifiers.classifiers+classifiers (Locale EN _) = EN_XXClassifiers.classifiers+classifiers (Locale ES _) = ES_XXClassifiers.classifiers+classifiers (Locale ET _) = ET_XXClassifiers.classifiers+classifiers (Locale FR _) = FR_XXClassifiers.classifiers+classifiers (Locale GA _) = GA_XXClassifiers.classifiers+classifiers (Locale HE _) = HE_XXClassifiers.classifiers+classifiers (Locale HR _) = HR_XXClassifiers.classifiers+classifiers (Locale HU _) = HU_XXClassifiers.classifiers+classifiers (Locale ID _) = ID_XXClassifiers.classifiers+classifiers (Locale IT _) = IT_XXClassifiers.classifiers+classifiers (Locale JA _) = JA_XXClassifiers.classifiers+classifiers (Locale KA _) = KA_XXClassifiers.classifiers+classifiers (Locale KO _) = KO_XXClassifiers.classifiers+classifiers (Locale MY _) = MY_XXClassifiers.classifiers+classifiers (Locale NB _) = NB_XXClassifiers.classifiers+classifiers (Locale NL _) = NL_XXClassifiers.classifiers+classifiers (Locale PL _) = PL_XXClassifiers.classifiers+classifiers (Locale PT _) = PT_XXClassifiers.classifiers+classifiers (Locale RO _) = RO_XXClassifiers.classifiers+classifiers (Locale RU _) = RU_XXClassifiers.classifiers+classifiers (Locale SV _) = SV_XXClassifiers.classifiers+classifiers (Locale TR _) = TR_XXClassifiers.classifiers+classifiers (Locale UK _) = UK_XXClassifiers.classifiers+classifiers (Locale VI _) = VI_XXClassifiers.classifiers+classifiers (Locale ZH _) = ZH_XXClassifiers.classifiers
− Duckling/Ranking/Classifiers/AR.hs
@@ -1,22 +0,0 @@--- 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.AR (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/AR_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.AR_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/BG_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.BG_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/CS.hs
@@ -1,22 +0,0 @@--- 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.CS (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/CS_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.CS_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/DA.hs
@@ -1,1566 +0,0 @@--- 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.DA (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.2039728043259361),-                                    ("hh:mm", -1.6094379124341003), ("hour", -1.6094379124341003),-                                    ("minute", -1.2039728043259361)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.778087857209029, unseen = -4.962844630259907,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 141},-                   koData =-                     ClassData{prior = -0.6148599592306538, unseen = -5.123963979403259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 166}}),-       ("the day before yesterday",-        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}}),-       ("lunch",-        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> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.0986122886681098),-                                    ("tomorrowevening", -2.0149030205422647),-                                    ("named-daymorning", -2.0149030205422647),-                                    ("tomorrowlunch", -2.0149030205422647),-                                    ("yesterdayevening", -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -1.1786549963416462),-                                    ("year (latent)in|during the <part-of-day>",-                                     -1.1786549963416462)],-                               n = 3}}),-       ("dd/mm",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("today",-        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}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.25593337413720063,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.536116699561526),-                                    ("time-of-day (latent)", -1.2007417837444896),-                                    ("relative minutes after|past <integer> (hour-of-day)",-                                     -3.536116699561526),-                                    ("hh:mm", -2.069779630768099),-                                    ("<time-of-day> sharp", -3.536116699561526),-                                    ("hour", -1.1382214267631554), ("minute", -1.8015156441734197)],-                               n = 48},-                   koData =-                     ClassData{prior = -1.488077055429833, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.8472978603872037),-                                    ("hour", -0.8472978603872037)],-                               n = 14}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        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}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("the <day-of-month> (non ordinal)", -2.6149597780361984),-                                    ("<day-of-month>(ordinal) <named-month>", -1.7676619176489945),-                                    ("day", -0.7691330875378672),-                                    ("the <day-of-month> (ordinal)", -3.0204248861443626),-                                    ("named-day", -1.410986973710262)],-                               n = 18},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -3.7376696182833684,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 40},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.9808292530117262),-                                    ("hh:mmhh:mm", -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 2}}),-       ("between <datetime> and <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("hh:mmhh:mm", -1.0986122886681098)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.2992829841302609),-                                    ("minuteminute", -1.7047480922384253),-                                    ("minutehour", -1.2992829841302609),-                                    ("hh:mmintersect", -1.7047480922384253)],-                               n = 3}}),-       ("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 = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -1.252762968495368),-                                    ("integer (0..19)minute (grain)", -1.252762968495368),-                                    ("minute", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        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}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -2.3025850929940455,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037),-                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037),-                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],-                               n = 2}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.46117571512217015, unseen = -5.8111409929767,-                               likelihoods =-                                 HashMap.fromList-                                   [("<datetime> - <datetime> (interval)on <date>",-                                     -4.0163830207523885),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.0163830207523885),-                                    ("hourday", -5.1149953094204985),-                                    ("dayhour", -2.863703510814003),-                                    ("daymonth", -3.3232358401924436),-                                    ("monthyear", -3.0355537677406628),-                                    ("intersecthh:mm", -5.1149953094204985),-                                    ("the <day-of-month> (ordinal)named-month",-                                     -3.8622323409251305),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -4.709530201312334),-                                    ("last <day-of-week> of <time>year", -4.709530201312334),-                                    ("todayat <time-of-day>", -4.709530201312334),-                                    ("dayday", -3.0355537677406628),-                                    ("dd/mmat <time-of-day>", -4.198704577546343),-                                    ("intersect by \",\"hh:mm", -4.198704577546343),-                                    ("intersectnamed-month", -5.1149953094204985),-                                    ("dayyear", -3.243193132518907),-                                    ("named-daythis <time>", -3.6109179126442243),-                                    ("tomorrow<time-of-day> sharp", -4.709530201312334),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -4.709530201312334),-                                    ("named-day<time> timezone", -4.421848128860553),-                                    ("named-monthyear", -3.0355537677406628),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.0163830207523885),-                                    ("tomorrowuntil <time-of-day>", -4.709530201312334),-                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -4.421848128860553),-                                    ("after <time-of-day>at <time-of-day>", -4.709530201312334),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -4.709530201312334),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -5.1149953094204985),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -5.1149953094204985),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.709530201312334),-                                    ("named-daynext <cycle>", -5.1149953094204985),-                                    ("named-dayintersect", -5.1149953094204985),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.709530201312334),-                                    ("tomorrowafter <time-of-day>", -4.709530201312334),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.198704577546343),-                                    ("dayminute", -2.763620052257021),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -4.421848128860553),-                                    ("<ordinal> <cycle> of <time>year", -4.709530201312334),-                                    ("minuteday", -2.512305623976115),-                                    ("absorption of , after named dayintersect",-                                     -5.1149953094204985),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -5.1149953094204985),-                                    ("named-dayon <date>", -5.1149953094204985),-                                    ("named-dayat <time-of-day>", -4.709530201312334),-                                    ("yearhh:mm", -5.1149953094204985),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -5.1149953094204985),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -4.709530201312334),-                                    ("dd/mmyear", -4.709530201312334),-                                    ("at <time-of-day>on <date>", -5.1149953094204985),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -5.1149953094204985),-                                    ("between <datetime> and <datetime> (interval)on <date>",-                                     -5.1149953094204985),-                                    ("dayweek", -4.0163830207523885),-                                    ("weekyear", -4.198704577546343),-                                    ("hh:mmtomorrow", -4.421848128860553),-                                    ("tomorrowat <time-of-day>", -3.8622323409251305),-                                    ("named-daythe <day-of-month> (ordinal)", -5.1149953094204985),-                                    ("at <time-of-day>tomorrow", -4.709530201312334),-                                    ("last <cycle> of <time>year", -4.198704577546343),-                                    ("named-daythe <day-of-month> (non ordinal)",-                                     -5.1149953094204985),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -4.709530201312334),-                                    ("yearminute", -5.1149953094204985)],-                               n = 128},-                   koData =-                     ClassData{prior = -0.9957178655054769, unseen = -5.429345628954441,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -4.7318028369214575),-                                    ("dayhour", -3.3455084758015667),-                                    ("daymonth", -2.129113151477074),-                                    ("monthday", -3.8155121050473024),-                                    ("monthyear", -3.8155121050473024),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -3.4790398684260895),-                                    ("named-dayhh:mm", -4.7318028369214575),-                                    ("dd/mmat <time-of-day>", -3.8155121050473024),-                                    ("hourhour", -3.4790398684260895),-                                    ("dayyear", -3.3455084758015667),-                                    ("named-daythis <time>", -2.5917366734251868),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -4.326337728813293),-                                    ("minutemonth", -4.326337728813293),-                                    ("named-monthyear", -3.8155121050473024),-                                    ("in|during the <part-of-day>until <time-of-day>",-                                     -4.326337728813293),-                                    ("absorption of , after named daynamed-month",-                                     -3.6331905482533475),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.326337728813293),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -4.326337728813293),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.7318028369214575),-                                    ("until <time-of-day>on <date>", -4.7318028369214575),-                                    ("dayminute", -3.3455084758015667),-                                    ("minuteday", -3.2277254401451834),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.7318028369214575),-                                    ("named-dayat <time-of-day>", -3.8155121050473024),-                                    ("hh:mmon <date>", -3.3455084758015667),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -4.7318028369214575),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -3.8155121050473024),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -3.8155121050473024),-                                    ("this <part-of-day>until <time-of-day>", -4.326337728813293),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -4.326337728813293),-                                    ("tomorrownoon", -4.7318028369214575),-                                    ("this <time>until <time-of-day>", -4.326337728813293),-                                    ("minuteyear", -4.326337728813293),-                                    ("yearminute", -4.326337728813293)],-                               n = 75}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)intersect",-                                     -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)named-month",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.2237754316221157),-                                    ("ordinals (first..31st)day (grain)named-month",-                                     -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.4350845252893227),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.3513752571634776),-                                    ("hh:mmhh:mm", -1.4350845252893227),-                                    ("hourhour", -2.3513752571634776)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.4418327522790392,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -2.6741486494265287),-                                    ("hh:mmtime-of-day (latent)", -1.7578579175523736),-                                    ("minuteminute", -1.9810014688665833),-                                    ("yearyear", -2.6741486494265287),-                                    ("year (latent)year (latent)", -2.6741486494265287),-                                    ("minutehour", -1.7578579175523736),-                                    ("hh:mmintersect", -1.9810014688665833),-                                    ("year (latent)time-of-day (latent)", -2.6741486494265287)],-                               n = 9}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("month (grain)", -2.3025850929940455),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.6094379124341003),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("month", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               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.6061358035703156,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.1972245773362196),-                                    ("hh:mmhh:mm", -1.0986122886681098),-                                    ("hourhour", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 5}}),-       ("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 = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.4462871026284195),-                                    ("integer (0..19)", -1.0216512475319814)],-                               n = 23}}),-       ("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.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)quarter (grain)year",-                                     -1.252762968495368),-                                    ("quarteryear", -0.8472978603872037),-                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after lunch",-        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}}),-       ("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}}),-       ("the <cycle> after <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (grain)christmas eve", -0.6931471805599453),-                                    ("yearday", -0.6931471805599453)],-                               n = 2}}),-       ("quarter to|till|before <integer> (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}}),-       ("a pair",-        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> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7472144018302211),-                                    ("ordinals (first..31st)named-dayintersect",-                                     -0.9985288301111273),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -1.845826690498331)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7621400520468967),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -0.7621400520468967)],-                               n = 6}}),-       ("the <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..31st)",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.189654742026425,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 64},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (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}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8472978603872037), ("evening", -1.252762968495368),-                                    ("morning", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7308875085427924),-                                    ("morning", -0.7308875085427924)],-                               n = 12}}),-       ("christmas 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}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.749199854809259),-                                    ("ordinal (digits)named-month", -1.0560526742493137),-                                    ("month", -0.7375989431307791)],-                               n = 10},-                   koData =-                     ClassData{prior = -2.3978952727983707, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -0.916290731874155),-                                    ("month", -0.916290731874155)],-                               n = 1}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 28}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("evening", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7672551527136672),-                                    ("morning", -0.7672551527136672)],-                               n = 12}}),-       ("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}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (grain)christmas eve", -0.6931471805599453),-                                    ("yearday", -0.6931471805599453)],-                               n = 2}}),-       ("<time> after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)", -1.2039728043259361),-                                    ("ordinal (digits)", -0.35667494393873245)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        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> from now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("second", -1.4469189829363254), ("year", -2.1400661634962708),-                                    ("<integer> <unit-of-duration>", -1.041453874828161),-                                    ("a <unit-of-duration>", -2.1400661634962708),-                                    ("minute", -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5686159179138452),-                                    ("year (grain)", -2.0794415416798357),-                                    ("week (grain)", -1.5686159179138452),-                                    ("day", -2.4849066497880004), ("quarter", -2.4849066497880004),-                                    ("year", -2.0794415416798357),-                                    ("quarter (grain)", -2.4849066497880004),-                                    ("day (grain)", -2.4849066497880004)],-                               n = 8},-                   koData =-                     ClassData{prior = -2.1972245773362196,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.6094379124341003),-                                    ("day (grain)", -1.6094379124341003)],-                               n = 1}}),-       ("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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.3862943611198906),-                                    ("hour", -1.3862943611198906),-                                    ("<hour-of-day> half (as relative minutes)",-                                     -1.3862943611198906),-                                    ("minute", -1.3862943611198906)],-                               n = 4}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.9711673420999893,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -2.469261259037152e-2)],-                               n = 39},-                   koData =-                     ClassData{prior = -0.475845904869964, unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.29783444391579894),-                                    ("integer (0..19)", -1.3564413979702095)],-                               n = 64}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.1431008436406733, unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 26},-                   koData =-                     ClassData{prior = -2.0149030205422647, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.7621400520468967),-                                    ("named-dayintersect", -1.6094379124341003)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.5408064559779265, unseen = -4.74493212836325,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.538973871058276),-                                    ("integer (0..19)year (grain)", -3.349904087274605),-                                    ("integer (numeric)day (grain)", -2.9444389791664407),-                                    ("integer (0..19)hour (grain)", -4.04305126783455),-                                    ("second", -2.9444389791664407),-                                    ("integer (numeric)second (grain)", -4.04305126783455),-                                    ("a pairhour (grain)", -4.04305126783455),-                                    ("integer (numeric)year (grain)", -3.6375861597263857),-                                    ("day", -2.338303175596125), ("year", -2.9444389791664407),-                                    ("integer (numeric)week (grain)", -3.349904087274605),-                                    ("integer (0..19)month (grain)", -4.04305126783455),-                                    ("integer (0..19)second (grain)", -3.126760535960395),-                                    ("hour", -2.9444389791664407), ("month", -3.6375861597263857),-                                    ("integer (numeric)minute (grain)", -2.790288299339182),-                                    ("integer (0..19)minute (grain)", -2.9444389791664407),-                                    ("integer (numeric)month (grain)", -4.04305126783455),-                                    ("minute", -2.2512917986064953),-                                    ("integer (numeric)hour (grain)", -3.349904087274605),-                                    ("integer (0..19)day (grain)", -2.9444389791664407),-                                    ("integer (0..19)week (grain)", -2.9444389791664407)],-                               n = 46},-                   koData =-                     ClassData{prior = -0.8729402910005413, unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6855773452501515),-                                    ("integer (0..19)year (grain)", -3.378724525810097),-                                    ("integer (numeric)day (grain)", -3.0910424533583156),-                                    ("integer (0..19)hour (grain)", -3.784189633918261),-                                    ("second", -2.867898902044106),-                                    ("integer (numeric)second (grain)", -3.378724525810097),-                                    ("integer (numeric)year (grain)", -3.0910424533583156),-                                    ("day", -2.6855773452501515), ("year", -2.6855773452501515),-                                    ("integer (numeric)week (grain)", -3.378724525810097),-                                    ("integer (0..19)month (grain)", -3.0910424533583156),-                                    ("integer (0..19)second (grain)", -3.378724525810097),-                                    ("hour", -2.6855773452501515), ("month", -2.6855773452501515),-                                    ("integer (numeric)minute (grain)", -3.378724525810097),-                                    ("integer (0..19)minute (grain)", -3.378724525810097),-                                    ("integer (numeric)month (grain)", -3.378724525810097),-                                    ("minute", -2.867898902044106),-                                    ("integer (numeric)hour (grain)", -2.867898902044106),-                                    ("integer (0..19)day (grain)", -3.378724525810097),-                                    ("integer (0..19)week (grain)", -3.0910424533583156)],-                               n = 33}}),-       ("<duration> after <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>christmas eve", -1.5040773967762742),-                                    ("yearday", -0.8109302162163288),-                                    ("<integer> <unit-of-duration>christmas eve",-                                     -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("relative minutes after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("integer (numeric)time-of-day (latent)", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.0794415416798357),-                                    ("year (grain)", -2.4849066497880004),-                                    ("second", -2.0794415416798357),-                                    ("week (grain)", -2.0794415416798357),-                                    ("day", -2.4849066497880004),-                                    ("minute (grain)", -2.4849066497880004),-                                    ("year", -2.4849066497880004),-                                    ("second (grain)", -2.0794415416798357),-                                    ("minute", -2.4849066497880004),-                                    ("day (grain)", -2.4849066497880004)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.1590646946296874, unseen = -4.442651256490317,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>named-day", -3.7376696182833684),-                                    ("intersect by \",\"year", -3.7376696182833684),-                                    ("hh:mmintersect by \",\"", -3.7376696182833684),-                                    ("dayday", -2.032921526044943),-                                    ("hh:mmnamed-day", -3.7376696182833684),-                                    ("named-dayintersect by \",\"", -3.332204510175204),-                                    ("dayyear", -2.8213788864092133),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -3.7376696182833684),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -3.332204510175204),-                                    ("<named-month> <day-of-month> (non ordinal)named-day",-                                     -3.7376696182833684),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -3.044522437723423),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -2.639057329615259),-                                    ("hh:mmintersect", -3.7376696182833684),-                                    ("intersect by \",\"intersect", -3.7376696182833684),-                                    ("named-dayintersect", -3.7376696182833684),-                                    ("at <time-of-day>intersect", -3.7376696182833684),-                                    ("dayminute", -2.639057329615259),-                                    ("intersectyear", -3.7376696182833684),-                                    ("minuteday", -2.032921526044943),-                                    ("hh:mmabsorption of , after named day", -3.7376696182833684),-                                    ("at <time-of-day>intersect by \",\"", -3.7376696182833684),-                                    ("at <time-of-day>absorption of , after named day",-                                     -3.7376696182833684),-                                    ("intersectintersect", -3.7376696182833684),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.332204510175204)],-                               n = 29},-                   koData =-                     ClassData{prior = -1.916922612182061, unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.791759469228055),-                                    ("daymonth", -1.791759469228055)],-                               n = 5}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -1.8018505502678365e-2,-                               unseen = -4.04305126783455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 55},-                   koData =-                     ClassData{prior = -4.02535169073515, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter after|past <integer> (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}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.276666119016055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 70},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (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}}),-       ("<time-of-day> sharp",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.2992829841302609),-                                    ("time-of-day (latent)", -1.2992829841302609),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.8209805520698302,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.7578579175523736),-                                    ("daymonth", -1.4213856809311607),-                                    ("named-daylast <cycle>", -2.6741486494265287),-                                    ("named-daynext <cycle>", -2.6741486494265287),-                                    ("named-dayintersect", -2.268683541318364),-                                    ("dayweek", -1.575536360758419),-                                    ("named-daythis <cycle>", -1.9810014688665833)],-                               n = 11},-                   koData =-                     ClassData{prior = -0.579818495252942, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.3581234841531944),-                                    ("daymonth", -0.8472978603872037),-                                    ("named-dayintersect", -1.6094379124341003)],-                               n = 14}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.580450375560848), ("day", -1.916922612182061),-                                    ("year", -2.4277482359480516),-                                    ("<integer> <unit-of-duration>", -0.8873031950009028),-                                    ("a <unit-of-duration>", -2.833213344056216),-                                    ("month", -2.4277482359480516)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -2.751535313041949, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.540445040947149), ("named-day", -1.540445040947149),-                                    ("hour", -1.9459101490553135),-                                    ("week-end", -1.9459101490553135)],-                               n = 3},-                   koData =-                     ClassData{prior = -6.59579677917974e-2,-                               unseen = -4.574710978503383,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -1.6199092123013958),-                                    ("day", -2.367123614131617),-                                    ("time-of-day (latent)", -1.6199092123013958),-                                    ("year", -1.6199092123013958),-                                    ("named-day", -2.9549102790337356),-                                    ("intersect by \"of\", \"from\", \"'s\"", -2.9549102790337356),-                                    ("hour", -1.6199092123013958)],-                               n = 44}}),-       ("the day after tomorrow",-        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}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.25131442828090605,-                               unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -0.8649974374866046),-                                    ("hour", -0.8649974374866046)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.5040773967762742,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.5040773967762742),-                                    ("hh:mm", -1.5040773967762742),-                                    ("minute", -1.0986122886681098)],-                               n = 2}}),-       ("<integer> and an half hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.6931471805599453),-                                    ("integer (0..19)", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("evening",-        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}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.9459101490553135),-                                    ("day", -1.0296194171811581),-                                    ("named-day", -1.0296194171811581),-                                    ("month", -1.9459101490553135)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.8109302162163288,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("month (grain)", -2.0794415416798357),-                                    ("year (grain)", -2.0794415416798357),-                                    ("week (grain)", -1.6739764335716716),-                                    ("year", -2.0794415416798357), ("month", -2.0794415416798357)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("week (grain)", -1.6739764335716716),-                                    ("day", -1.6739764335716716),-                                    ("day (grain)", -1.6739764335716716)],-                               n = 4}}),-       ("christmas",-        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 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}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.793208009442517),-                                    ("integer (0..19)year (grain)", -3.1986731175506815),-                                    ("integer (numeric)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)hour (grain)", -3.1986731175506815),-                                    ("second", -2.793208009442517),-                                    ("integer (numeric)second (grain)", -3.1986731175506815),-                                    ("integer (numeric)year (grain)", -3.1986731175506815),-                                    ("day", -2.793208009442517), ("year", -2.793208009442517),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("integer (0..19)month (grain)", -3.1986731175506815),-                                    ("integer (0..19)second (grain)", -3.1986731175506815),-                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),-                                    ("integer (numeric)minute (grain)", -3.1986731175506815),-                                    ("integer (0..19)minute (grain)", -3.1986731175506815),-                                    ("integer (numeric)month (grain)", -3.1986731175506815),-                                    ("minute", -2.793208009442517),-                                    ("integer (numeric)hour (grain)", -3.1986731175506815),-                                    ("integer (0..19)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)week (grain)", -3.1986731175506815)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.418840607796598,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.0204248861443626),-                                    ("<integer> more <unit-of-duration>", -3.3081069585961433),-                                    ("number.number hours", -3.713572066704308),-                                    ("second", -2.797281334830153), ("day", -2.6149597780361984),-                                    ("half an hour", -3.713572066704308),-                                    ("<integer> <unit-of-duration>", -1.2286654169163076),-                                    ("a <unit-of-duration>", -2.797281334830153),-                                    ("<integer> and an half hours", -3.3081069585961433),-                                    ("hour", -2.6149597780361984), ("minute", -1.4622802680978126),-                                    ("about <duration>", -3.3081069585961433)],-                               n = 35},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6649763035932491, unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.252762968495368),-                                    ("hh:mmhh:mm", -1.252762968495368),-                                    ("dayday", -2.1000608288825715),-                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",-                                     -2.1000608288825715)],-                               n = 18},-                   koData =-                     ClassData{prior = -0.7221347174331976, unseen = -3.871201010907891,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -2.0583881324820035),-                                    ("minuteminute", -1.9042374526547454),-                                    ("hh:mmhh:mm", -3.1570004211501135),-                                    ("dayyear", -2.751535313041949),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -2.751535313041949),-                                    ("hh:mmintersect", -2.0583881324820035),-                                    ("dd/mmyear", -2.751535313041949),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -2.0583881324820035),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -2.751535313041949),-                                    ("minuteyear", -2.751535313041949),-                                    ("yearminute", -2.751535313041949)],-                               n = 17}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.7672551527136672,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7621400520468967),-                                    ("hh:mmhh:mm", -0.7621400520468967)],-                               n = 13},-                   koData =-                     ClassData{prior = -0.6241543090729939,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.8183103235139514),-                                    ("minuteminute", -2.833213344056216),-                                    ("hh:mmhh:mm", -2.833213344056216),-                                    ("minutehour", -0.8183103235139514)],-                               n = 15}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.639057329615259),-                                    ("integer (0..19)year (grain)", -3.332204510175204),-                                    ("integer (numeric)day (grain)", -2.9267394020670396),-                                    ("second", -2.9267394020670396),-                                    ("integer (numeric)second (grain)", -3.332204510175204),-                                    ("integer (numeric)year (grain)", -2.9267394020670396),-                                    ("day", -2.639057329615259), ("year", -2.639057329615259),-                                    ("integer (numeric)week (grain)", -3.332204510175204),-                                    ("integer (0..19)month (grain)", -2.9267394020670396),-                                    ("integer (0..19)second (grain)", -3.332204510175204),-                                    ("hour", -2.9267394020670396), ("month", -2.639057329615259),-                                    ("integer (numeric)minute (grain)", -3.332204510175204),-                                    ("integer (0..19)minute (grain)", -3.332204510175204),-                                    ("integer (numeric)month (grain)", -3.332204510175204),-                                    ("minute", -2.9267394020670396),-                                    ("integer (numeric)hour (grain)", -2.9267394020670396),-                                    ("integer (0..19)day (grain)", -3.332204510175204),-                                    ("integer (0..19)week (grain)", -2.9267394020670396)],-                               n = 18},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 5}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 18},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3}}),-       ("<hour-of-day> half (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("about <time-of-day>", -1.7346010553881064),-                                    ("time-of-day (latent)", -1.041453874828161),-                                    ("hour", -0.7537718023763802)],-                               n = 7}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter (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}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.4816045409242156),-                                    ("week (grain)named-month", -1.9924301646902063),-                                    ("day (grain)intersect", -1.9924301646902063),-                                    ("weekmonth", -1.4816045409242156),-                                    ("day (grain)named-month", -1.9924301646902063),-                                    ("week (grain)intersect", -1.9924301646902063)],-                               n = 8},-                   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 = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.0986122886681098),-                                    ("ordinal (digits)named-month", -1.5040773967762742),-                                    ("month", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("week-end",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.7537718023763802, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.6863989535702288),-                                    ("intersect", -2.1972245773362196),-                                    ("tomorrow", -2.1972245773362196), ("day", -2.1972245773362196),-                                    ("hour", -1.349926716949016)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.6359887667199967,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("this <part-of-day>", -2.268683541318364),-                                    ("christmas eve", -2.268683541318364),-                                    ("in|during the <part-of-day>", -2.268683541318364),-                                    ("day", -2.268683541318364), ("hh:mm", -2.6741486494265287),-                                    ("hour", -1.4213856809311607), ("minute", -2.6741486494265287),-                                    ("this <time>", -2.268683541318364)],-                               n = 9}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = -4.8790164169432056e-2,-                               unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},-                   koData =-                     ClassData{prior = -3.044522437723423, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 10}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -1.3217558399823195, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.1972245773362196), ("intersect", -2.70805020110221),-                                    ("season", -2.1972245773362196),-                                    ("next <cycle>", -3.1135153092103742),-                                    ("named-month", -2.70805020110221),-                                    ("day", -2.1972245773362196),-                                    ("this <cycle>", -2.4203681286504293),-                                    ("hour", -2.1972245773362196), ("evening", -3.1135153092103742),-                                    ("month", -2.1972245773362196),-                                    ("morning", -3.1135153092103742),-                                    ("week-end", -2.70805020110221)],-                               n = 16},-                   koData =-                     ClassData{prior = -0.3101549283038396, unseen = -4.624972813284271,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.0501711593797225),-                                    ("named-month", -1.670681537674819),-                                    ("time-of-day (latent)", -3.5165082281731497),-                                    ("hour", -1.9070703157390494), ("month", -1.1811333123561132),-                                    ("morning", -2.0501711593797225)],-                               n = 44}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/DA_XX.hs view
@@ -0,0 +1,1670 @@+-- 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.DA_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.2039728043259361),+                                    ("hh:mm", -1.6094379124341003), ("hour", -1.6094379124341003),+                                    ("minute", -1.2039728043259361)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.778087857209029, unseen = -4.962844630259907,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 141},+                   koData =+                     ClassData{prior = -0.6148599592306538, unseen = -5.123963979403259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 166}}),+       ("the day before yesterday",+        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}}),+       ("lunch",+        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> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.0986122886681098),+                                    ("tomorrowevening", -2.0149030205422647),+                                    ("tomorrowlunch", -2.0149030205422647),+                                    ("yesterdayevening", -2.0149030205422647),+                                    ("Mondaymorning", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -1.1786549963416462),+                                    ("year (latent)in|during the <part-of-day>",+                                     -1.1786549963416462)],+                               n = 3}}),+       ("dd/mm",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("today",+        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}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.25593337413720063,+                               unseen = -4.6443908991413725,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.536116699561526),+                                    ("time-of-day (latent)", -1.2007417837444896),+                                    ("relative minutes after|past <integer> (hour-of-day)",+                                     -3.536116699561526),+                                    ("hh:mm", -2.069779630768099),+                                    ("<time-of-day> sharp", -3.536116699561526),+                                    ("hour", -1.1382214267631554), ("minute", -1.8015156441734197)],+                               n = 48},+                   koData =+                     ClassData{prior = -1.488077055429833, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8472978603872037),+                                    ("hour", -0.8472978603872037)],+                               n = 14}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.3978952727983707),+                                    ("Saturday", -2.3978952727983707),+                                    ("Monday", -1.7047480922384253),+                                    ("Friday", -1.9924301646902063), ("day", -0.8938178760220964),+                                    ("Sunday", -2.3978952727983707)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        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}}),+       ("tonight",+        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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.6817585740137264),+                                    ("Saturday", -3.068052935133617),+                                    ("Monday", -3.068052935133617),+                                    ("the <day-of-month> (non ordinal)", -2.662587827025453),+                                    ("<day-of-month>(ordinal) <named-month>", -1.8152899666382492),+                                    ("day", -0.8167611365271219),+                                    ("the <day-of-month> (ordinal)", -3.068052935133617)],+                               n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.13976194237515874,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, 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.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.9808292530117262),+                                    ("hh:mmhh:mm", -0.9808292530117262)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 2}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.2992829841302609),+                                    ("minuteminute", -1.7047480922384253),+                                    ("minutehour", -1.2992829841302609),+                                    ("hh:mmintersect", -1.7047480922384253)],+                               n = 3}}),+       ("October",+        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}}),+       ("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 = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -1.252762968495368),+                                    ("integer (0..19)minute (grain)", -1.252762968495368),+                                    ("minute", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        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}}),+       ("Wednesday",+        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}}),+       ("July",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("quarter", -0.8472978603872037),+                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("quarter", -0.8472978603872037),+                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],+                               n = 2}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.43117346481837143,+                               unseen = -5.820082930352362,+                               likelihoods =+                                 HashMap.fromList+                                   [("<datetime> - <datetime> (interval)on <date>",+                                     -4.02535169073515),+                                    ("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -5.123963979403259),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.02535169073515),+                                    ("hourday", -5.123963979403259),+                                    ("dayhour", -2.872672180796764),+                                    ("daymonth", -3.332204510175204),+                                    ("monthyear", -3.044522437723423),+                                    ("Mondayon <date>", -5.123963979403259),+                                    ("intersecthh:mm", -5.123963979403259),+                                    ("Wednesdaynext <cycle>", -5.123963979403259),+                                    ("Marchyear", -4.718498871295094),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -4.718498871295094),+                                    ("Mondayintersect", -5.123963979403259),+                                    ("last <day-of-week> of <time>year", -4.718498871295094),+                                    ("todayat <time-of-day>", -4.718498871295094),+                                    ("Thursday<time> timezone", -4.430816798843313),+                                    ("dayday", -3.044522437723423),+                                    ("dd/mmat <time-of-day>", -4.207673247529104),+                                    ("the <day-of-month> (ordinal)February", -4.718498871295094),+                                    ("intersect by \",\"hh:mm", -4.207673247529104),+                                    ("Mondaythe <day-of-month> (non ordinal)", -5.123963979403259),+                                    ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -5.123963979403259),+                                    ("dayyear", -3.2521618025016674),+                                    ("Thursdaybetween <datetime> and <datetime> (interval)",+                                     -5.123963979403259),+                                    ("Thursdayat <time-of-day>", -4.718498871295094),+                                    ("tomorrow<time-of-day> sharp", -4.718498871295094),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -4.718498871295094),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.02535169073515),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.718498871295094),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.718498871295094),+                                    ("tomorrowuntil <time-of-day>", -4.718498871295094),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -4.430816798843313),+                                    ("the <day-of-month> (ordinal)March", -4.207673247529104),+                                    ("after <time-of-day>at <time-of-day>", -4.718498871295094),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -4.718498871295094),+                                    ("Mondaythe <day-of-month> (ordinal)", -5.123963979403259),+                                    ("tomorrowafter <time-of-day>", -4.718498871295094),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.207673247529104),+                                    ("Sunday<day-of-month> (non ordinal) <named-month>",+                                     -5.123963979403259),+                                    ("dayminute", -2.772588722239781),+                                    ("Tuesdaythis <time>", -4.430816798843313),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -4.430816798843313),+                                    ("<ordinal> <cycle> of <time>year", -4.718498871295094),+                                    ("minuteday", -2.521274293958875),+                                    ("absorption of , after named dayintersect",+                                     -5.123963979403259),+                                    ("Octoberyear", -3.5145260669691587),+                                    ("yearhh:mm", -5.123963979403259),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -4.718498871295094),+                                    ("dd/mmyear", -4.718498871295094),+                                    ("Septemberyear", -4.207673247529104),+                                    ("at <time-of-day>on <date>", -5.123963979403259),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -5.123963979403259),+                                    ("between <datetime> and <datetime> (interval)on <date>",+                                     -5.123963979403259),+                                    ("dayweek", -4.02535169073515),+                                    ("weekyear", -4.207673247529104),+                                    ("hh:mmtomorrow", -4.430816798843313),+                                    ("Wednesdaythis <time>", -4.207673247529104),+                                    ("tomorrowat <time-of-day>", -3.871201010907891),+                                    ("at <time-of-day>tomorrow", -4.718498871295094),+                                    ("intersectFebruary", -5.123963979403259),+                                    ("last <cycle> of <time>year", -4.207673247529104),+                                    ("Mondaythis <time>", -5.123963979403259),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -4.718498871295094),+                                    ("yearminute", -5.123963979403259)],+                               n = 128},+                   koData =+                     ClassData{prior = -1.049097224140729, unseen = -5.389071729816501,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -3.305053521109253),+                                    ("daymonth", -2.0886581967847597),+                                    ("monthday", -3.775057150354989),+                                    ("monthyear", -3.775057150354989),+                                    ("Marchyear", -3.9982007016691985),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -3.438584913733776),+                                    ("Sundaythis <time>", -3.775057150354989),+                                    ("absorption of , after named dayJuly", -4.285882774120979),+                                    ("dd/mmat <time-of-day>", -3.775057150354989),+                                    ("hourhour", -3.438584913733776),+                                    ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -4.6913478822291435),+                                    ("dayyear", -3.305053521109253),+                                    ("Thursdaybetween <datetime> and <datetime> (interval)",+                                     -4.6913478822291435),+                                    ("Thursdayat <time-of-day>", -3.775057150354989),+                                    ("Thursdayhh:mm", -4.6913478822291435),+                                    ("WednesdayFebruary", -4.6913478822291435),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.285882774120979),+                                    ("in|during the <part-of-day>until <time-of-day>",+                                     -4.285882774120979),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.6913478822291435),+                                    ("Aprilyear", -4.6913478822291435),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.775057150354989),+                                    ("until <time-of-day>on <date>", -4.6913478822291435),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -3.775057150354989),+                                    ("dayminute", -3.305053521109253),+                                    ("Tuesdaythis <time>", -3.775057150354989),+                                    ("minuteday", -3.1872704854528697),+                                    ("hh:mmon <date>", -3.305053521109253),+                                    ("Wednesdaythis <time>", -3.438584913733776),+                                    ("absorption of , after named dayFebruary",+                                     -3.9982007016691985),+                                    ("this <part-of-day>until <time-of-day>", -4.285882774120979),+                                    ("tomorrownoon", -4.6913478822291435),+                                    ("this <time>until <time-of-day>", -4.285882774120979),+                                    ("Mondaythis <time>", -4.285882774120979)],+                               n = 69}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.7346010553881064),+                                    ("ordinals (first..31st)week (grain)October",+                                     -1.7346010553881064),+                                    ("ordinals (first..31st)week (grain)intersect",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.2237754316221157),+                                    ("ordinals (first..31st)day (grain)October",+                                     -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4350845252893227),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.3513752571634776),+                                    ("hh:mmhh:mm", -1.4350845252893227),+                                    ("hourhour", -2.3513752571634776)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.6741486494265287),+                                    ("hh:mmtime-of-day (latent)", -1.7578579175523736),+                                    ("minuteminute", -1.9810014688665833),+                                    ("yearyear", -2.6741486494265287),+                                    ("year (latent)year (latent)", -2.6741486494265287),+                                    ("minutehour", -1.7578579175523736),+                                    ("hh:mmintersect", -1.9810014688665833),+                                    ("year (latent)time-of-day (latent)", -2.6741486494265287)],+                               n = 9}}),+       ("Saturday",+        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}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("month (grain)", -2.3025850929940455),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.6094379124341003),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("month", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               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.6061358035703156,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.1972245773362196),+                                    ("hh:mmhh:mm", -1.0986122886681098),+                                    ("hourhour", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 5}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.4462871026284195),+                                    ("integer (0..19)", -1.0216512475319814)],+                               n = 23}}),+       ("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.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.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)quarter (grain)year",+                                     -1.252762968495368),+                                    ("quarteryear", -0.8472978603872037),+                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after lunch",+        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}}),+       ("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}}),+       ("the <cycle> after <time>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (grain)christmas eve", -0.6931471805599453),+                                    ("yearday", -0.6931471805599453)],+                               n = 2}}),+       ("quarter to|till|before <integer> (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}}),+       ("a pair",+        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> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8938178760220964),+                                    ("ordinals (first..31st)TuesdayOctober", -1.9924301646902063),+                                    ("ordinals (first..31st)Tuesdayintersect", -1.9924301646902063),+                                    ("ordinals (first..31st)Wednesdayintersect",+                                     -1.4816045409242156)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9444616088408514),+                                    ("ordinals (first..31st)WednesdayOctober", -1.2809338454620642),+                                    ("ordinals (first..31st)TuesdaySeptember", -1.791759469228055)],+                               n = 6}}),+       ("the <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..31st)",+        Classifier{okData =+                     ClassData{prior = -5.406722127027582e-2,+                               unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("week (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}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.8472978603872037), ("evening", -1.252762968495368),+                                    ("morning", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7308875085427924),+                                    ("morning", -0.7308875085427924)],+                               n = 12}}),+       ("christmas 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}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)March", -1.8325814637483102),+                                    ("ordinal (digits)February", -1.8325814637483102),+                                    ("month", -0.8209805520698302),+                                    ("ordinal (digits)March", -1.6094379124341003)],+                               n = 10},+                   koData =+                     ClassData{prior = -2.3978952727983707,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)April", -1.252762968495368),+                                    ("month", -1.252762968495368)],+                               n = 1}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 28}}),+       ("Friday",+        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}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.3862943611198906),+                                    ("hour", -0.9808292530117262),+                                    ("evening", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7672551527136672),+                                    ("morning", -0.7672551527136672)],+                               n = 12}}),+       ("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}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after <time>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (grain)christmas eve", -0.6931471805599453),+                                    ("yearday", -0.6931471805599453)],+                               n = 2}}),+       ("<time> 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}}),+       ("half an hour",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)", -1.2039728043259361),+                                    ("ordinal (digits)", -0.35667494393873245)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        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}}),+       ("afternoon",+        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> from now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("second", -1.4469189829363254), ("year", -2.1400661634962708),+                                    ("<integer> <unit-of-duration>", -1.041453874828161),+                                    ("a <unit-of-duration>", -2.1400661634962708),+                                    ("minute", -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.5686159179138452),+                                    ("year (grain)", -2.0794415416798357),+                                    ("week (grain)", -1.5686159179138452),+                                    ("day", -2.4849066497880004), ("quarter", -2.4849066497880004),+                                    ("year", -2.0794415416798357),+                                    ("quarter (grain)", -2.4849066497880004),+                                    ("day (grain)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.6094379124341003),+                                    ("day (grain)", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.3862943611198906),+                                    ("hour", -1.3862943611198906),+                                    ("<hour-of-day> half (as relative minutes)",+                                     -1.3862943611198906),+                                    ("minute", -1.3862943611198906)],+                               n = 4}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.8690378470236094,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.469261259037152e-2)],+                               n = 39},+                   koData =+                     ClassData{prior = -0.5436154465889815, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2876820724517809),+                                    ("integer (0..19)", -1.3862943611198906)],+                               n = 54}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.1431008436406733, unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 26},+                   koData =+                     ClassData{prior = -2.0149030205422647, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8266785731844679),+                                    ("SundayMarch", -1.6739764335716716),+                                    ("MondayMarch", -1.6739764335716716),+                                    ("Sundayintersect", -1.6739764335716716)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.5408064559779265, unseen = -4.74493212836325,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.538973871058276),+                                    ("integer (0..19)year (grain)", -3.349904087274605),+                                    ("integer (numeric)day (grain)", -2.9444389791664407),+                                    ("integer (0..19)hour (grain)", -4.04305126783455),+                                    ("second", -2.9444389791664407),+                                    ("integer (numeric)second (grain)", -4.04305126783455),+                                    ("a pairhour (grain)", -4.04305126783455),+                                    ("integer (numeric)year (grain)", -3.6375861597263857),+                                    ("day", -2.338303175596125), ("year", -2.9444389791664407),+                                    ("integer (numeric)week (grain)", -3.349904087274605),+                                    ("integer (0..19)month (grain)", -4.04305126783455),+                                    ("integer (0..19)second (grain)", -3.126760535960395),+                                    ("hour", -2.9444389791664407), ("month", -3.6375861597263857),+                                    ("integer (numeric)minute (grain)", -2.790288299339182),+                                    ("integer (0..19)minute (grain)", -2.9444389791664407),+                                    ("integer (numeric)month (grain)", -4.04305126783455),+                                    ("minute", -2.2512917986064953),+                                    ("integer (numeric)hour (grain)", -3.349904087274605),+                                    ("integer (0..19)day (grain)", -2.9444389791664407),+                                    ("integer (0..19)week (grain)", -2.9444389791664407)],+                               n = 46},+                   koData =+                     ClassData{prior = -0.8729402910005413, unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6855773452501515),+                                    ("integer (0..19)year (grain)", -3.378724525810097),+                                    ("integer (numeric)day (grain)", -3.0910424533583156),+                                    ("integer (0..19)hour (grain)", -3.784189633918261),+                                    ("second", -2.867898902044106),+                                    ("integer (numeric)second (grain)", -3.378724525810097),+                                    ("integer (numeric)year (grain)", -3.0910424533583156),+                                    ("day", -2.6855773452501515), ("year", -2.6855773452501515),+                                    ("integer (numeric)week (grain)", -3.378724525810097),+                                    ("integer (0..19)month (grain)", -3.0910424533583156),+                                    ("integer (0..19)second (grain)", -3.378724525810097),+                                    ("hour", -2.6855773452501515), ("month", -2.6855773452501515),+                                    ("integer (numeric)minute (grain)", -3.378724525810097),+                                    ("integer (0..19)minute (grain)", -3.378724525810097),+                                    ("integer (numeric)month (grain)", -3.378724525810097),+                                    ("minute", -2.867898902044106),+                                    ("integer (numeric)hour (grain)", -2.867898902044106),+                                    ("integer (0..19)day (grain)", -3.378724525810097),+                                    ("integer (0..19)week (grain)", -3.0910424533583156)],+                               n = 33}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>christmas eve", -1.5040773967762742),+                                    ("yearday", -0.8109302162163288),+                                    ("<integer> <unit-of-duration>christmas eve",+                                     -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("integer (numeric)time-of-day (latent)", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.0794415416798357),+                                    ("year (grain)", -2.4849066497880004),+                                    ("second", -2.0794415416798357),+                                    ("week (grain)", -2.0794415416798357),+                                    ("day", -2.4849066497880004),+                                    ("minute (grain)", -2.4849066497880004),+                                    ("year", -2.4849066497880004),+                                    ("second (grain)", -2.0794415416798357),+                                    ("minute", -2.4849066497880004),+                                    ("day (grain)", -2.4849066497880004)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.1590646946296874, unseen = -4.51085950651685,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)Friday",+                                     -3.8066624897703196),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("at <time-of-day>Saturday", -3.8066624897703196),+                                    ("intersect by \",\"year", -3.8066624897703196),+                                    ("hh:mmintersect by \",\"", -3.8066624897703196),+                                    ("dayday", -2.1019143975318944),+                                    ("dayyear", -2.890371757896165),+                                    ("Saturday<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -3.8066624897703196),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -3.4011973816621555),+                                    ("Fridayintersect", -3.8066624897703196),+                                    ("hh:mmintersect", -3.8066624897703196),+                                    ("intersect by \",\"intersect", -3.8066624897703196),+                                    ("hh:mmSaturday", -3.8066624897703196),+                                    ("at <time-of-day>intersect", -3.8066624897703196),+                                    ("Sunday<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("dayminute", -2.70805020110221),+                                    ("intersectyear", -3.8066624897703196),+                                    ("minuteday", -2.1019143975318944),+                                    ("hh:mmabsorption of , after named day", -3.8066624897703196),+                                    ("at <time-of-day>intersect by \",\"", -3.8066624897703196),+                                    ("at <time-of-day>absorption of , after named day",+                                     -3.8066624897703196),+                                    ("intersectintersect", -3.8066624897703196),+                                    ("Fridayintersect by \",\"", -3.4011973816621555),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("Monday<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -3.4011973816621555)],+                               n = 29},+                   koData =+                     ClassData{prior = -1.916922612182061, unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.9459101490553135),+                                    ("FridayJuly", -2.639057329615259),+                                    ("WednesdayFebruary", -3.044522437723423),+                                    ("MondayFebruary", -2.639057329615259)],+                               n = 5}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -1.8018505502678365e-2,+                               unseen = -4.04305126783455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 55},+                   koData =+                     ClassData{prior = -4.02535169073515, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter after|past <integer> (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}}),+       ("second (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}}),+       ("<time-of-day> sharp",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.2992829841302609),+                                    ("time-of-day (latent)", -1.2992829841302609),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.8209805520698302,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sundaylast <cycle>", -2.917770732084279),+                                    ("daymonth", -1.6650077635889111),+                                    ("Wednesdayintersect", -2.512305623976115),+                                    ("Wednesdaynext <cycle>", -2.917770732084279),+                                    ("Tuesdaythis <cycle>", -2.917770732084279),+                                    ("WednesdayOctober", -2.512305623976115),+                                    ("Wednesdaythis <cycle>", -2.917770732084279),+                                    ("TuesdayOctober", -2.512305623976115),+                                    ("Mondaythis <cycle>", -2.917770732084279),+                                    ("dayweek", -1.8191584434161694)],+                               n = 11},+                   koData =+                     ClassData{prior = -0.579818495252942, unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0531499145913523),+                                    ("TuesdaySeptember", -2.662587827025453),+                                    ("Wednesdayintersect", -2.662587827025453),+                                    ("WednesdayOctober", -2.662587827025453),+                                    ("SundayMarch", -2.662587827025453),+                                    ("MondayMarch", -2.662587827025453),+                                    ("Tuesdayintersect", -2.662587827025453),+                                    ("Sundayintersect", -2.662587827025453)],+                               n = 14}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.580450375560848), ("day", -1.916922612182061),+                                    ("year", -2.4277482359480516),+                                    ("<integer> <unit-of-duration>", -0.8873031950009028),+                                    ("a <unit-of-duration>", -2.833213344056216),+                                    ("month", -2.4277482359480516)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -2.751535313041949, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.6739764335716716), ("Sunday", -2.0794415416798357),+                                    ("hour", -2.0794415416798357), ("Tuesday", -2.0794415416798357),+                                    ("week-end", -2.0794415416798357)],+                               n = 3},+                   koData =+                     ClassData{prior = -6.59579677917974e-2, unseen = -4.59511985013459,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -1.6405284995041316),+                                    ("Monday", -3.4863551900024623), ("day", -2.3877429013343523),+                                    ("Sunday", -3.4863551900024623),+                                    ("time-of-day (latent)", -1.6405284995041316),+                                    ("year", -1.6405284995041316),+                                    ("intersect by \"of\", \"from\", \"'s\"", -2.9755295662364714),+                                    ("hour", -1.6405284995041316)],+                               n = 44}}),+       ("March",+        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 day after tomorrow",+        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}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -0.8649974374866046),+                                    ("hour", -0.8649974374866046)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.5040773967762742,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.5040773967762742),+                                    ("hh:mm", -1.5040773967762742),+                                    ("minute", -1.0986122886681098)],+                               n = 2}}),+       ("<integer> and an half hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.6931471805599453),+                                    ("integer (0..19)", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("evening",+        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}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.1400661634962708),+                                    ("Monday", -2.1400661634962708), ("day", -1.2237754316221157),+                                    ("March", -2.1400661634962708), ("month", -2.1400661634962708),+                                    ("Tuesday", -1.7346010553881064)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.0149030205422647),+                                    ("Friday", -1.6094379124341003), ("day", -1.3217558399823195),+                                    ("March", -2.0149030205422647), ("month", -2.0149030205422647)],+                               n = 4}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("month (grain)", -2.0794415416798357),+                                    ("year (grain)", -2.0794415416798357),+                                    ("week (grain)", -1.6739764335716716),+                                    ("year", -2.0794415416798357), ("month", -2.0794415416798357)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("week (grain)", -1.6739764335716716),+                                    ("day", -1.6739764335716716),+                                    ("day (grain)", -1.6739764335716716)],+                               n = 4}}),+       ("christmas",+        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 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}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.793208009442517),+                                    ("integer (0..19)year (grain)", -3.1986731175506815),+                                    ("integer (numeric)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)hour (grain)", -3.1986731175506815),+                                    ("second", -2.793208009442517),+                                    ("integer (numeric)second (grain)", -3.1986731175506815),+                                    ("integer (numeric)year (grain)", -3.1986731175506815),+                                    ("day", -2.793208009442517), ("year", -2.793208009442517),+                                    ("integer (numeric)week (grain)", -3.1986731175506815),+                                    ("integer (0..19)month (grain)", -3.1986731175506815),+                                    ("integer (0..19)second (grain)", -3.1986731175506815),+                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),+                                    ("integer (numeric)minute (grain)", -3.1986731175506815),+                                    ("integer (0..19)minute (grain)", -3.1986731175506815),+                                    ("integer (numeric)month (grain)", -3.1986731175506815),+                                    ("minute", -2.793208009442517),+                                    ("integer (numeric)hour (grain)", -3.1986731175506815),+                                    ("integer (0..19)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)week (grain)", -3.1986731175506815)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.418840607796598,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.0204248861443626),+                                    ("<integer> more <unit-of-duration>", -3.3081069585961433),+                                    ("number.number hours", -3.713572066704308),+                                    ("second", -2.797281334830153), ("day", -2.6149597780361984),+                                    ("half an hour", -3.713572066704308),+                                    ("<integer> <unit-of-duration>", -1.2286654169163076),+                                    ("a <unit-of-duration>", -2.797281334830153),+                                    ("<integer> and an half hours", -3.3081069585961433),+                                    ("hour", -2.6149597780361984), ("minute", -1.4622802680978126),+                                    ("about <duration>", -3.3081069585961433)],+                               n = 35},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.5436154465889815,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.1895840668738362),+                                    ("hh:mmhh:mm", -1.1895840668738362),+                                    ("dayday", -2.03688192726104),+                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",+                                     -2.03688192726104)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.8690378470236094,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("July<day-of-month> (non ordinal) <named-month>",+                                     -2.890371757896165),+                                    ("monthday", -1.791759469228055),+                                    ("minuteminute", -1.6376087894007967),+                                    ("hh:mmhh:mm", -2.890371757896165),+                                    ("dayyear", -2.4849066497880004),+                                    ("hh:mmintersect", -1.791759469228055),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -1.9740810260220096),+                                    ("dd/mmyear", -2.4849066497880004)],+                               n = 13}}),+       ("Tuesday",+        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}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.7672551527136672,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7621400520468967),+                                    ("hh:mmhh:mm", -0.7621400520468967)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.6241543090729939,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.8183103235139514),+                                    ("minuteminute", -2.833213344056216),+                                    ("hh:mmhh:mm", -2.833213344056216),+                                    ("minutehour", -0.8183103235139514)],+                               n = 15}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.639057329615259),+                                    ("integer (0..19)year (grain)", -3.332204510175204),+                                    ("integer (numeric)day (grain)", -2.9267394020670396),+                                    ("second", -2.9267394020670396),+                                    ("integer (numeric)second (grain)", -3.332204510175204),+                                    ("integer (numeric)year (grain)", -2.9267394020670396),+                                    ("day", -2.639057329615259), ("year", -2.639057329615259),+                                    ("integer (numeric)week (grain)", -3.332204510175204),+                                    ("integer (0..19)month (grain)", -2.9267394020670396),+                                    ("integer (0..19)second (grain)", -3.332204510175204),+                                    ("hour", -2.9267394020670396), ("month", -2.639057329615259),+                                    ("integer (numeric)minute (grain)", -3.332204510175204),+                                    ("integer (0..19)minute (grain)", -3.332204510175204),+                                    ("integer (numeric)month (grain)", -3.332204510175204),+                                    ("minute", -2.9267394020670396),+                                    ("integer (numeric)hour (grain)", -2.9267394020670396),+                                    ("integer (0..19)day (grain)", -3.332204510175204),+                                    ("integer (0..19)week (grain)", -2.9267394020670396)],+                               n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Aprilinteger (numeric)", -2.4423470353692043),+                                    ("month", -0.832909122935104),+                                    ("Februaryinteger (numeric)", -1.3437347467010947),+                                    ("Julyinteger (numeric)", -1.749199854809259)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -1.0986122886681098),+                                    ("Aprilinteger (numeric)", -2.0149030205422647),+                                    ("month", -0.916290731874155)],+                               n = 5}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)September", -3.068052935133617),+                                    ("integer (numeric)April", -3.068052935133617),+                                    ("integer (numeric)August", -1.4586150226995167),+                                    ("integer (numeric)February", -2.374905754573672),+                                    ("month", -0.8167611365271219),+                                    ("integer (numeric)July", -2.662587827025453),+                                    ("integer (numeric)March", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -1.1786549963416462),+                                    ("integer (numeric)July", -1.1786549963416462)],+                               n = 3}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.9555114450274363),+                                    ("Tuesday", -1.466337068793427)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.7047480922384253),+                                    ("Friday", -1.2992829841302609), ("day", -1.0116009116784799)],+                               n = 3}}),+       ("<hour-of-day> half (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("about <time-of-day>", -1.7346010553881064),+                                    ("time-of-day (latent)", -1.041453874828161),+                                    ("hour", -0.7537718023763802)],+                               n = 7}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter (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}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9924301646902063),+                                    ("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.4816045409242156),+                                    ("week (grain)intersect", -1.9924301646902063),+                                    ("week (grain)September", -1.9924301646902063)],+                               n = 8},+                   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 = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)April", -1.6094379124341003),+                                    ("ordinals (first..31st)March", -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("ordinal (digits)March", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("week-end",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.7537718023763802, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.6863989535702288),+                                    ("intersect", -2.1972245773362196),+                                    ("tomorrow", -2.1972245773362196), ("day", -2.1972245773362196),+                                    ("hour", -1.349926716949016)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.6359887667199967,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("this <part-of-day>", -2.268683541318364),+                                    ("christmas eve", -2.268683541318364),+                                    ("in|during the <part-of-day>", -2.268683541318364),+                                    ("day", -2.268683541318364), ("hh:mm", -2.6741486494265287),+                                    ("hour", -1.4213856809311607), ("minute", -2.6741486494265287),+                                    ("this <time>", -2.268683541318364)],+                               n = 9}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = -4.8790164169432056e-2,+                               unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -3.044522437723423, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("July", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195, unseen = -3.871201010907891,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2407096892759584), ("October", -2.751535313041949),+                                    ("intersect", -2.751535313041949),+                                    ("season", -2.2407096892759584),+                                    ("next <cycle>", -3.1570004211501135),+                                    ("day", -2.2407096892759584),+                                    ("this <cycle>", -2.463853240590168),+                                    ("hour", -2.2407096892759584), ("evening", -3.1570004211501135),+                                    ("month", -2.2407096892759584),+                                    ("morning", -3.1570004211501135),+                                    ("week-end", -2.751535313041949)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -4.6443908991413725,+                               likelihoods =+                                 HashMap.fromList+                                   [("September", -3.0252910757955354),+                                    ("October", -2.236833715431265),+                                    ("intersect", -2.069779630768099),+                                    ("time-of-day (latent)", -3.536116699561526),+                                    ("March", -3.0252910757955354), ("hour", -1.9266787871274258),+                                    ("month", -1.2007417837444896),+                                    ("morning", -2.069779630768099)],+                               n = 44}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("August",+        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}})]
− Duckling/Ranking/Classifiers/DE.hs
@@ -1,1934 +0,0 @@--- 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.DE (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.3862943611198906),-                                    ("hh:mm", -1.3862943611198906), ("hour", -1.3862943611198906),-                                    ("minute", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.9179699933938751, unseen = -4.795790545596741,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 119},-                   koData =-                     ClassData{prior = -0.5097076806646496, unseen = -5.198497031265826,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 179}}),-       ("exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.0986122886681098),-                                    ("<time-of-day>  o'clock", -1.5040773967762742),-                                    ("hour", -0.8109302162163288)],-                               n = 3},-                   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,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1}}),-       ("lunch",-        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 (20..90)",-        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> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -5.720311776607412,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clockmorning", -4.618415412738112),-                                    ("until <time-of-day>afternoon", -5.0238805208462765),-                                    ("dayhour", -3.319132428607851),-                                    ("todayevening", -4.618415412738112),-                                    ("half <integer> (german style hour-of-day)afternoon",-                                     -5.0238805208462765),-                                    ("<time-of-day>  o'clockafter lunch", -4.330733340286331),-                                    ("intersect by ','evening", -3.5198031240700023),-                                    ("<time-of-day>  o'clockon <date>", -3.925268232178167),-                                    ("intersectevening", -1.9558275857126592),-                                    ("time-of-day (latent)on <date>", -4.330733340286331),-                                    ("about <time-of-day>on <date>", -4.618415412738112),-                                    ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",-                                     -4.618415412738112),-                                    ("hourhour", -1.1952391243571814),-                                    ("<time-of-day>  o'clockin|during the <part-of-day>",-                                     -3.925268232178167),-                                    ("<time-of-day>  o'clockafternoon", -4.330733340286331),-                                    ("half <integer> (german style hour-of-day)after lunch",-                                     -5.0238805208462765),-                                    ("until <time-of-day>morning", -4.618415412738112),-                                    ("minutehour", -2.384823191231018),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -4.107589788972121),-                                    ("<hour-of-day> <integer> (as relative minutes)after lunch",-                                     -5.0238805208462765),-                                    ("<time-of-day> am|pmmorning", -4.618415412738112),-                                    ("tomorrowevening", -5.0238805208462765),-                                    ("time-of-day (latent)morning", -5.0238805208462765),-                                    ("named-daymorning", -4.618415412738112),-                                    ("hh:mmmorning", -5.0238805208462765),-                                    ("half <integer> (german style hour-of-day)in|during the <part-of-day>",-                                     -4.618415412738112),-                                    ("until <time-of-day>on <date>", -5.0238805208462765),-                                    ("<day-of-month>(ordinal) <named-month>morning",-                                     -5.0238805208462765),-                                    ("<time-of-day>  o'clockevening", -5.0238805208462765),-                                    ("hh:mmon <date>", -4.107589788972121),-                                    ("<hour-of-day> <integer> (as relative minutes)afternoon",-                                     -5.0238805208462765),-                                    ("tomorrowlunch", -4.618415412738112),-                                    ("until <time-of-day>after lunch", -5.0238805208462765),-                                    ("at <time-of-day>on <date>", -4.107589788972121),-                                    ("yesterdayevening", -5.0238805208462765),-                                    ("intersectmorning", -5.0238805208462765),-                                    ("hh:mmin|during the <part-of-day>", -4.107589788972121),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -4.330733340286331),-                                    ("<hour-of-day> <integer> (as relative minutes)on <date>",-                                     -4.618415412738112),-                                    ("about <time-of-day>in|during the <part-of-day>",-                                     -4.618415412738112),-                                    ("half <integer> (german style hour-of-day)on <date>",-                                     -4.618415412738112),-                                    ("at <time-of-day>morning", -5.0238805208462765),-                                    ("until <time-of-day>in|during the <part-of-day>",-                                     -5.0238805208462765)],-                               n = 128},-                   koData =-                     ClassData{prior = -2.1972245773362196, unseen = -4.394449154672439,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -3.283414346005772),-                                    ("year (latent)on <date>", -3.6888794541139363),-                                    ("<time-of-day>  o'clockafter lunch", -3.6888794541139363),-                                    ("intersectevening", -2.995732273553991),-                                    ("monthhour", -3.6888794541139363),-                                    ("time-of-day (latent)on <date>", -2.772588722239781),-                                    ("hourhour", -1.742969305058623),-                                    ("<time-of-day>  o'clockafternoon", -3.6888794541139363),-                                    ("year (latent)in|during the <part-of-day>",-                                     -3.6888794541139363),-                                    ("named-monthmorning", -3.6888794541139363),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.772588722239781)],-                               n = 16}}),-       ("today",-        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}}),-       ("mm/dd",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.258096538021482,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2113090936672069, unseen = -4.382026634673881,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -2.0668627594729756),-                                    ("half <integer> (german style hour-of-day)",-                                     -3.676300671907076),-                                    ("about <time-of-day>", -2.760009940032921),-                                    ("time-of-day (latent)", -1.7303905228517629),-                                    ("relative minutes after|past <integer> (hour-of-day)",-                                     -3.676300671907076),-                                    ("hh:mm", -2.760009940032921),-                                    ("quarter after|past <integer> (hour-of-day)",-                                     -3.676300671907076),-                                    ("hour", -1.0736109864626924), ("minute", -2.172223275130802),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.676300671907076)],-                               n = 34},-                   koData =-                     ClassData{prior = -1.6582280766035324, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.5040773967762742),-                                    ("<time-of-day> am|pm", -1.9095425048844386),-                                    ("hour", -1.349926716949016), ("minute", -2.1972245773362196)],-                               n = 8}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = -7.410797215372185e-2,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.268683541318364), ("day", -0.7282385003712154),-                                    ("named-day", -0.8823891801984737)],-                               n = 13},-                   koData =-                     ClassData{prior = -2.639057329615259, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.916290731874155), ("named-day", -0.916290731874155)],-                               n = 1}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.24256163717131135,-                               unseen = -4.787491742782046,-                               likelihoods =-                                 HashMap.fromList-                                   [("absorption of , after named day", -3.6805112044434196),-                                    ("intersect", -1.834684513945089),-                                    ("after lunch", -2.833213344056216),-                                    ("day", -1.5210269550900473), ("afternoon", -2.833213344056216),-                                    ("named-day", -2.833213344056216),-                                    ("intersect by ','", -2.833213344056216),-                                    ("intersect by 'of', 'from', 's", -3.392829131991639),-                                    ("<day-of-month> (ordinal)", -4.085976312551584),-                                    ("hour", -1.8887517352153647), ("evening", -4.085976312551584),-                                    ("<datetime> - <datetime> (interval)", -4.085976312551584),-                                    ("minute", -2.4765384001174837),-                                    ("morning", -4.085976312551584)],-                               n = 51},-                   koData =-                     ClassData{prior = -1.5353299402803784, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7272209480904839),-                                    ("after lunch", -3.1135153092103742),-                                    ("<day-of-month>(ordinal) <named-month>", -3.1135153092103742),-                                    ("tomorrow", -3.1135153092103742), ("day", -2.1972245773362196),-                                    ("hh:mm", -2.70805020110221),-                                    ("intersect by 'of', 'from', 's", -3.1135153092103742),-                                    ("<day-of-month> (ordinal)", -3.1135153092103742),-                                    ("hour", -3.1135153092103742), ("minute", -1.5040773967762742)],-                               n = 14}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -3.6375861597263857,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},-                   koData =-                     ClassData{prior = -2.3025850929940455, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("hh:mmhh:mm", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),-                                    ("minutehour", -1.0986122886681098)],-                               n = 1}}),-       ("between <datetime> and <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("hh:mmhh:mm", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),-                                    ("minutehour", -1.0986122886681098)],-                               n = 1}}),-       ("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}}),-       ("<time-of-day>  o'clock",-        Classifier{okData =-                     ClassData{prior = -4.580953603129422e-2,-                               unseen = -4.9344739331306915,-                               likelihoods =-                                 HashMap.fromList-                                   [("exactly <time-of-day>", -4.23410650459726),-                                    ("at <time-of-day>", -2.624668592163159),-                                    ("half <integer> (german style hour-of-day)",-                                     -4.23410650459726),-                                    ("about <time-of-day>", -2.847812143477369),-                                    ("time-of-day (latent)", -1.3437347467010947),-                                    ("quarter after|past <integer> (hour-of-day)",-                                     -4.23410650459726),-                                    ("until <time-of-day>", -3.1354942159291497),-                                    ("hour", -0.7841189587656721), ("minute", -3.828641396489095),-                                    ("after <time-of-day>", -3.1354942159291497)],-                               n = 64},-                   koData =-                     ClassData{prior = -3.1060803307228566, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.6739764335716716),-                                    ("hour", -1.3862943611198906),-                                    ("after <time-of-day>", -2.0794415416798357)],-                               n = 3}}),-       ("hour (grain)",-        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}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..19th)quarter (grain)", -0.916290731874155),-                                    ("quarter", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.916290731874155),-                                    ("quarter", -0.916290731874155)],-                               n = 1}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.26452876747706405, unseen = -6.90975328164481,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect by ','named-month", -4.4238481295272205),-                                    ("hourday", -4.962844630259907),-                                    ("<datetime> - <datetime> (interval)year", -4.962844630259907),-                                    ("dayhour", -2.5520459526256287),-                                    ("daymonth", -3.147554663621658),-                                    ("<day-of-month>(ordinal) <named-month> year<time-of-day>  o'clock",-                                     -6.215607598755275),-                                    ("monthyear", -4.51085950651685),-                                    ("yearhour", -6.215607598755275),-                                    ("intersect<time-of-day>  o'clock", -4.075541435259004),-                                    ("christmasyear", -6.215607598755275),-                                    ("after lunchat <time-of-day>", -6.215607598755275),-                                    ("absorption of , after named daymm/dd/yyyy",-                                     -6.215607598755275),-                                    ("named-daylast <cycle>", -6.215607598755275),-                                    ("intersect by 'of', 'from', 'syear", -5.810142490647111),-                                    ("<time-of-day> am|pmintersect", -5.116995310087166),-                                    ("intersect<time> <part-of-day>", -4.13616605707544),-                                    ("the <day-of-month> (ordinal)named-month", -6.215607598755275),-                                    ("<time-of-day>  o'clockafter lunch", -5.52246041819533),-                                    ("<time> <part-of-day><time-of-day>  o'clock",-                                     -6.215607598755275),-                                    ("today<time-of-day>  o'clock", -6.215607598755275),-                                    ("<time-of-day>  o'clockon <date>", -5.810142490647111),-                                    ("<time-of-day> am|pmintersect by ','", -5.52246041819533),-                                    ("intersect by ','year", -5.116995310087166),-                                    ("on <date><time-of-day>  o'clock", -6.215607598755275),-                                    ("exactly <time-of-day>tomorrow", -5.810142490647111),-                                    ("mm/dd<time-of-day>  o'clock", -6.215607598755275),-                                    ("monthhour", -5.810142490647111),-                                    ("on <date>between <datetime> and <datetime> (interval)",-                                     -6.215607598755275),-                                    ("last <day-of-week> of <time>year", -6.215607598755275),-                                    ("hourmonth", -5.810142490647111),-                                    ("todayat <time-of-day>", -5.52246041819533),-                                    ("mm/ddabout <time-of-day>", -5.810142490647111),-                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",-                                     -6.215607598755275),-                                    ("on <date>at <time-of-day>", -5.810142490647111),-                                    ("named-dayhh:mm", -6.215607598755275),-                                    ("dayday", -3.0375537684073297),-                                    ("<time> <part-of-day>at <time-of-day>", -5.810142490647111),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -6.215607598755275),-                                    ("about <time-of-day>on <date>", -6.215607598755275),-                                    ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",-                                     -5.810142490647111),-                                    ("<day-of-month> (ordinal)intersect", -5.116995310087166),-                                    ("hourhour", -3.68987895444702),-                                    ("<part-of-day> of <time>named-month", -5.810142490647111),-                                    ("hh:mmintersect by ','", -4.962844630259907),-                                    ("intersectnamed-month", -3.3823942546990593),-                                    ("dayyear", -3.297836866670996),-                                    ("<time-of-day>  o'clockin|during the <part-of-day>",-                                     -5.116995310087166),-                                    ("tomorrow<time-of-day>  o'clock", -6.215607598755275),-                                    ("<time-of-day>  o'clocktomorrow", -5.52246041819533),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -5.810142490647111),-                                    ("half <integer> (german style hour-of-day)after lunch",-                                     -6.215607598755275),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -4.962844630259907),-                                    ("hourminute", -5.52246041819533),-                                    ("on <date><day-of-month>(ordinal) <named-month>",-                                     -5.810142490647111),-                                    ("minutemonth", -3.5414589493287467),-                                    ("minutehour", -3.96431580014878),-                                    ("named-day<time> timezone", -6.215607598755275),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.29931686688112),-                                    ("named-monthyear", -4.51085950651685),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",-                                     -5.810142490647111),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -5.116995310087166),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -6.215607598755275),-                                    ("<day-of-month>(ordinal) <named-month> year<time> <part-of-day>",-                                     -6.215607598755275),-                                    ("<hour-of-day> <integer> (as relative minutes)after lunch",-                                     -6.215607598755275),-                                    ("named-day<datetime> - <datetime> (interval)",-                                     -6.215607598755275),-                                    ("on <date>named-month", -5.29931686688112),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -4.829313237635384),-                                    ("this <part-of-day><time-of-day>  o'clock",-                                     -6.215607598755275),-                                    ("<day-of-month>(ordinal) <named-month>intersect",-                                     -6.215607598755275),-                                    ("hh:mmintersect", -3.7732605633860707),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -5.810142490647111),-                                    ("named-daynext <cycle>", -6.215607598755275),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.52246041819533),-                                    ("<day-of-month> (ordinal)named-day", -5.810142490647111),-                                    ("intersect by ','intersect", -4.962844630259907),-                                    ("half <integer> (german style hour-of-day)in|during the <part-of-day>",-                                     -5.810142490647111),-                                    ("from <datetime> - <datetime> (interval)year",-                                     -5.52246041819533),-                                    ("at <time-of-day>intersect", -4.4238481295272205),-                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",-                                     -5.810142490647111),-                                    ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",-                                     -6.215607598755275),-                                    ("absorption of , after named day<day-of-month> (ordinal)",-                                     -4.962844630259907),-                                    ("dayminute", -4.018383021419056),-                                    ("on <date>from <datetime> - <datetime> (interval)",-                                     -6.215607598755275),-                                    ("<time> <part-of-day>from <datetime> - <datetime> (interval)",-                                     -6.215607598755275),-                                    ("intersectyear", -4.4238481295272205),-                                    ("on <date>intersect", -5.810142490647111),-                                    ("on <date><day-of-month> (ordinal)", -5.810142490647111),-                                    ("<ordinal> <cycle> of <time>year", -6.215607598755275),-                                    ("minuteday", -2.235925944853314),-                                    ("absorption of , after named dayintersect",-                                     -3.817712325956905),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -6.215607598755275),-                                    ("<datetime> - <datetime> (interval)named-month",-                                     -5.810142490647111),-                                    ("year<time-of-day>  o'clock", -6.215607598755275),-                                    ("at <time-of-day>intersect by ','", -5.52246041819533),-                                    ("named-dayat <time-of-day>", -5.810142490647111),-                                    ("hh:mmabsorption of , after named day", -5.810142490647111),-                                    ("<time-of-day> am|pmnamed-day", -6.215607598755275),-                                    ("intersect by ','<time> <part-of-day>", -5.29931686688112),-                                    ("hh:mmon <date>", -3.7732605633860707),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -6.215607598755275),-                                    ("at <time-of-day>absorption of , after named day",-                                     -6.215607598755275),-                                    ("until <time-of-day>after lunch", -6.215607598755275),-                                    ("mm/ddyear", -5.810142490647111),-                                    ("intersect by ','<time-of-day>  o'clock", -5.29931686688112),-                                    ("intersect<day-of-month> (ordinal)", -4.829313237635384),-                                    ("absorption of , after named daymm/dd", -6.215607598755275),-                                    ("named-day<time-of-day>  o'clock", -6.215607598755275),-                                    ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",-                                     -5.52246041819533),-                                    ("at <time-of-day>on <date>", -4.343805421853684),-                                    ("intersectintersect", -4.075541435259004),-                                    ("dayweek", -5.116995310087166),-                                    ("absorption of , after named daythe <day-of-month> (ordinal)",-                                     -6.215607598755275),-                                    ("weekyear", -5.810142490647111),-                                    ("hh:mmin|during the <part-of-day>", -5.29931686688112),-                                    ("intersect by 'of', 'from', 'snamed-month",-                                     -6.215607598755275),-                                    ("named-monthintersect", -6.215607598755275),-                                    ("<day-of-month> (ordinal)named-month", -4.343805421853684),-                                    ("tomorrowat <time-of-day>", -5.810142490647111),-                                    ("<hour-of-day> <integer> (as relative minutes)on <date>",-                                     -6.215607598755275),-                                    ("named-daythis <cycle>", -5.52246041819533),-                                    ("at <time-of-day>tomorrow", -6.215607598755275),-                                    ("about <time-of-day>in|during the <part-of-day>",-                                     -5.810142490647111),-                                    ("half <integer> (german style hour-of-day)on <date>",-                                     -6.215607598755275),-                                    ("this <part-of-day>at <time-of-day>", -5.810142490647111),-                                    ("after lunch<hour-of-day> <integer> (as relative minutes)",-                                     -5.810142490647111),-                                    ("last <cycle> of <time>year", -5.810142490647111),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -6.215607598755275),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -6.215607598755275)],-                               n = 426},-                   koData =-                     ClassData{prior = -1.4591557093847622,-                               unseen = -6.0112671744041615,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect by ','named-month", -4.622518824322705),-                                    ("named-day<part-of-day> of <time>", -5.31566600488265),-                                    ("absorption of , after named daythe <day-of-month> (non ordinal)",-                                     -5.31566600488265),-                                    ("<datetime> - <datetime> (interval)year", -5.31566600488265),-                                    ("dayhour", -4.622518824322705),-                                    ("daymonth", -3.4438638279810583),-                                    ("monthday", -4.9102008967744855),-                                    ("monthyear", -5.31566600488265),-                                    ("yearhour", -5.31566600488265),-                                    ("after lunchat <time-of-day>", -4.9102008967744855),-                                    ("mm/dduntil <time-of-day>", -4.9102008967744855),-                                    ("until <time-of-day>year", -4.9102008967744855),-                                    ("intersect by 'of', 'from', 'syear", -4.622518824322705),-                                    ("<time-of-day> am|pmintersect", -3.6109179126442243),-                                    ("intersect<time> <part-of-day>", -5.31566600488265),-                                    ("<time-of-day>  o'clockafter lunch", -5.31566600488265),-                                    ("after lunch<time-of-day>  o'clock", -5.31566600488265),-                                    ("at <time-of-day>named-day", -5.31566600488265),-                                    ("absorption of , after named dayhh:mm", -5.31566600488265),-                                    ("<time-of-day> am|pmintersect by ','", -4.062903036387282),-                                    ("<time-of-day>  o'clock<time> <part-of-day>",-                                     -4.399375273008495),-                                    ("mm/ddhh:mm", -4.399375273008495),-                                    ("monthhour", -5.31566600488265),-                                    ("on <date>between <datetime> and <datetime> (interval)",-                                     -5.31566600488265),-                                    ("todayat <time-of-day>", -5.31566600488265),-                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",-                                     -5.31566600488265),-                                    ("named-dayhh:mm", -5.31566600488265),-                                    ("dayday", -3.9293716437627593),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -4.9102008967744855),-                                    ("hourhour", -3.8115886081063755),-                                    ("intersectnamed-month", -3.7062280924485496),-                                    ("dayyear", -3.236224463202814),-                                    ("minutemonth", -3.369755855827336),-                                    ("named-monthyear", -5.31566600488265),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -5.31566600488265),-                                    ("on <date>named-month", -5.31566600488265),-                                    ("absorption of , after named daynamed-month",-                                     -4.21705371621454),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -4.622518824322705),-                                    ("named-dayafter <time-of-day>", -4.9102008967744855),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.9102008967744855),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -5.31566600488265),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.622518824322705),-                                    ("<day-of-month> (ordinal)named-day", -4.622518824322705),-                                    ("<day-of-month> (ordinal)hh:mm", -4.399375273008495),-                                    ("at <time-of-day>intersect", -4.21705371621454),-                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",-                                     -4.9102008967744855),-                                    ("dayminute", -2.676608675267391),-                                    ("on <date>from <datetime> - <datetime> (interval)",-                                     -5.31566600488265),-                                    ("minuteday", -2.3199337313286588),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -5.31566600488265),-                                    ("at <time-of-day>intersect by ','", -4.622518824322705),-                                    ("<time-of-day> am|pmnamed-day", -4.9102008967744855),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -5.31566600488265),-                                    ("at <time-of-day>absorption of , after named day",-                                     -5.31566600488265),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -4.9102008967744855),-                                    ("year<time> <part-of-day>", -5.31566600488265),-                                    ("mm/ddyear", -3.8115886081063755),-                                    ("intersect<day-of-month> (ordinal)", -4.622518824322705),-                                    ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",-                                     -4.9102008967744855),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -4.9102008967744855),-                                    ("intersectintersect", -4.622518824322705),-                                    ("<day-of-month> (ordinal)named-month", -4.622518824322705),-                                    ("until <time-of-day>named-month", -5.31566600488265),-                                    ("after <time-of-day>year", -5.31566600488265),-                                    ("on <date>after <time-of-day>", -5.31566600488265),-                                    ("tomorrownoon", -5.31566600488265)],-                               n = 129}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7047480922384253),-                                    ("ordinals (first..19th)week (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (first..19th)day (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (first..19th)week (grain)intersect",-                                     -1.7047480922384253),-                                    ("weekmonth", -1.2992829841302609)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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}}),-       ("year (grain)",-        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}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -2.159484249353372),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.5649493574615367),-                                    ("hh:mmhh:mm", -2.159484249353372),-                                    ("dayday", -1.8718021769015913),-                                    ("hourhour", -2.5649493574615367),-                                    ("mm/ddmm/dd", -1.8718021769015913)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.3513752571634776),-                                    ("mm/ddmm/dd/yyyy", -2.3513752571634776),-                                    ("hh:mmtime-of-day (latent)", -2.639057329615259),-                                    ("mm/ddhh:mm", -2.3513752571634776),-                                    ("dayday", -1.791759469228055),-                                    ("minutehour", -2.639057329615259),-                                    ("mm/ddintersect", -2.3513752571634776),-                                    ("dayminute", -2.3513752571634776),-                                    ("mm/ddtime-of-day (latent)", -2.3513752571634776)],-                               n = 14}}),-       ("after tomorrow",-        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,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("month (grain)", -2.3025850929940455),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.6094379124341003),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("month", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("week (grain)", -1.6094379124341003)],-                               n = 1}}),-       ("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.5596157879354228, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.252762968495368),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -1.9459101490553135),-                                    ("hh:mmhh:mm", -1.252762968495368),-                                    ("hourhour", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),-                                    ("minutehour", -1.0986122886681098)],-                               n = 3}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("mm/dd/yyyy",-        Classifier{okData =-                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("couple",-        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}}),-       ("yesterday",-        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}}),-       ("<ordinal> quarter <year>",-        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}}),-       ("after lunch",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter to|till|before <integer> (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}}),-       ("Allerheiligen",-        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> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7884573603642702),-                                    ("ordinals (first..19th)named-dayintersect",-                                     -1.0116009116784799),-                                    ("ordinals (first..19th)named-daynamed-month",-                                     -1.7047480922384253)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.8109302162163288),-                                    ("ordinals (first..19th)named-daynamed-month",-                                     -0.8109302162163288)],-                               n = 3}}),-       ("the <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.891820298110627,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 47},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (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}}),-       ("<part-of-day> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -0.9444616088408514),-                                    ("morning<day-of-month>(ordinal) <named-month>",-                                     -1.791759469228055),-                                    ("morningintersect", -1.791759469228055),-                                    ("morning<day-of-month> (ordinal)", -1.791759469228055)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("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}}),-       ("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}}),-       ("half <integer> (german style hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.7047480922384253),-                                    ("time-of-day (latent)", -1.0116009116784799),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("evening", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.8109302162163288),-                                    ("month", -0.7308875085427924),-                                    ("ordinals (first..19th)named-month", -2.6026896854443837)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.8109302162163288),-                                    ("month", -0.8109302162163288)],-                               n = 3}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 18}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -6.0624621816434854e-2,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("after lunch", -1.6650077635889111),-                                    ("afternoon", -1.5314763709643884),-                                    ("hour", -0.7777045685880083), ("evening", -2.512305623976115),-                                    ("morning", -2.917770732084279)],-                               n = 16},-                   koData =-                     ClassData{prior = -2.833213344056216, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("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,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     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 = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.3862943611198906),-                                    ("day", -1.3862943611198906),-                                    ("named-day", -1.3862943611198906),-                                    ("month", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        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 <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 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.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2039728043259361),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.2039728043259361),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.3862943611198906),-                                    ("time-of-day (latent)", -1.3862943611198906),-                                    ("hour", -0.7576857016975165)],-                               n = 14},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.3862943611198906),-                                    ("<time-of-day> am|pm", -1.3862943611198906),-                                    ("hour", -0.9808292530117262)],-                               n = 2}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.7686547330680905, unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.379546134130174)],-                               n = 51},-                   koData =-                     ClassData{prior = -0.6229429218866968, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.4895482253187058),-                                    ("integer (0..19)", -1.0826119473216687),-                                    ("couple", -3.028522096376982)],-                               n = 59}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -8.338160893905101e-2,-                               unseen = -3.2188758248682006,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 23},-                   koData =-                     ClassData{prior = -2.5257286443082556,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.8109302162163288),-                                    ("named-dayintersect", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.8850381883700507, unseen = -4.330733340286331,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.2380465718564744),-                                    ("integer (0..19)year (grain)", -3.2188758248682006),-                                    ("integer (numeric)day (grain)", -2.70805020110221),-                                    ("couplehour (grain)", -3.624340932976365),-                                    ("integer (0..19)hour (grain)", -3.2188758248682006),-                                    ("second", -3.624340932976365),-                                    ("integer (numeric)year (grain)", -3.624340932976365),-                                    ("day", -2.70805020110221), ("year", -2.9311937524164198),-                                    ("integer (numeric)week (grain)", -2.9311937524164198),-                                    ("integer (0..19)month (grain)", -3.624340932976365),-                                    ("integer (0..19)second (grain)", -3.624340932976365),-                                    ("hour", -2.70805020110221), ("month", -3.624340932976365),-                                    ("integer (numeric)minute (grain)", -2.5257286443082556),-                                    ("integer (0..19)minute (grain)", -3.624340932976365),-                                    ("minute", -2.371577964480997),-                                    ("integer (numeric)hour (grain)", -3.624340932976365),-                                    ("integer (0..19)week (grain)", -2.70805020110221)],-                               n = 26},-                   koData =-                     ClassData{prior = -0.5322168137473082, unseen = -4.584967478670572,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.62880082944807),-                                    ("integer (0..19)year (grain)", -2.9652730660692823),-                                    ("integer (numeric)day (grain)", -3.4760986898352733),-                                    ("integer (0..19)hour (grain)", -3.8815637979434374),-                                    ("second", -2.9652730660692823),-                                    ("integer (numeric)second (grain)", -3.4760986898352733),-                                    ("integer (numeric)year (grain)", -3.4760986898352733),-                                    ("day", -2.3774864011671633), ("year", -2.62880082944807),-                                    ("integer (numeric)week (grain)", -3.188416617383492),-                                    ("integer (0..19)month (grain)", -2.9652730660692823),-                                    ("integer (0..19)second (grain)", -3.4760986898352733),-                                    ("hour", -3.188416617383492), ("month", -2.62880082944807),-                                    ("integer (numeric)minute (grain)", -3.4760986898352733),-                                    ("integer (0..19)minute (grain)", -3.4760986898352733),-                                    ("integer (numeric)month (grain)", -3.4760986898352733),-                                    ("minute", -2.9652730660692823),-                                    ("coupleday (grain)", -3.4760986898352733),-                                    ("integer (numeric)hour (grain)", -3.4760986898352733),-                                    ("integer (0..19)day (grain)", -2.9652730660692823),-                                    ("integer (0..19)week (grain)", -3.188416617383492)],-                               n = 37}}),-       ("ordinals (first..19th)",-        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}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -1.845826690498331, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.0794415416798357),-                                    ("hh:mm", -2.0794415416798357),-                                    ("until <time-of-day>", -2.0794415416798357),-                                    ("hour", -1.6739764335716716), ("minute", -2.0794415416798357)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.17185025692665928,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.3513752571634776),-                                    ("<time-of-day>  o'clock", -2.3513752571634776),-                                    ("half <integer> (german style hour-of-day)",-                                     -3.044522437723423),-                                    ("about <time-of-day>", -3.044522437723423),-                                    ("time-of-day (latent)", -2.128231705849268),-                                    ("hh:mm", -2.3513752571634776), ("hour", -1.4350845252893227),-                                    ("minute", -1.6582280766035324),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.044522437723423)],-                               n = 16}}),-       ("<duration> after <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>christmas", -1.252762968495368),-                                    ("<integer> <unit-of-duration>christmas", -1.252762968495368),-                                    ("yearday", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("relative minutes after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8472978603872037),-                                    ("integer (numeric)time-of-day (latent)", -1.252762968495368),-                                    ("integer (20..90)time-of-day (latent)", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9924301646902063),-                                    ("hour (grain)", -2.3978952727983707),-                                    ("year (grain)", -2.3978952727983707),-                                    ("second", -2.3978952727983707),-                                    ("week (grain)", -1.9924301646902063),-                                    ("minute (grain)", -2.3978952727983707),-                                    ("year", -2.3978952727983707),-                                    ("second (grain)", -2.3978952727983707),-                                    ("hour", -2.3978952727983707), ("minute", -2.3978952727983707)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dd.(mm.)? - dd.mm.(yy[yy]?)? (interval)",-        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}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -0.6190392084062235,-                               unseen = -3.6109179126442243,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 35},-                   koData =-                     ClassData{prior = -0.7731898882334817,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),-       ("quarter after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.5040773967762742),-                                    ("time-of-day (latent)", -1.0986122886681098),-                                    ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.0943445622221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 58},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>time-of-day (latent)",-                                     -0.6931471805599453),-                                    ("minutehour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by ','",-        Classifier{okData =-                     ClassData{prior = -0.2531958963806117, unseen = -4.962844630259907,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.7586024802650413),-                                    ("named-day<day-of-month> (ordinal)", -3.3463891451671604),-                                    ("dayday", -1.2922654114716141),-                                    ("dayyear", -4.2626798770413155),-                                    ("on <date><day-of-month>(ordinal) <named-month>",-                                     -3.857214768933151),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -3.164067588373206),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -3.3463891451671604),-                                    ("named-day<day-of-month>(ordinal) <named-month> year",-                                     -3.857214768933151),-                                    ("named-dayintersect", -1.9113046198778378),-                                    ("on <date>intersect", -3.857214768933151),-                                    ("on <date><day-of-month> (ordinal)", -3.857214768933151),-                                    ("named-daymm/dd/yyyy", -3.857214768933151),-                                    ("minuteday", -2.390877700139724),-                                    ("named-daymm/dd", -3.857214768933151),-                                    ("intersect<day-of-month> (ordinal)", -3.3463891451671604),-                                    ("intersectintersect", -3.3463891451671604),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -3.3463891451671604),-                                    ("named-daythe <day-of-month> (ordinal)", -4.2626798770413155),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -4.2626798770413155)],-                               n = 59},-                   koData =-                     ClassData{prior = -1.497519996230115, unseen = -4.07753744390572,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.268683541318364),-                                    ("daymonth", -2.268683541318364),-                                    ("named-dayhh:mm", -2.9618307218783095),-                                    ("dayday", -3.367295829986474),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -2.6741486494265287),-                                    ("dayminute", -2.9618307218783095),-                                    ("minuteday", -1.7578579175523736),-                                    ("intersect<day-of-month> (ordinal)", -2.6741486494265287),-                                    ("intersectintersect", -2.6741486494265287),-                                    ("named-daythe <day-of-month> (non ordinal)",-                                     -3.367295829986474)],-                               n = 17}}),-       ("second (grain)",-        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}}),-       ("intersect by 'of', 'from', 's",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -3.028522096376982),-                                    ("daymonth", -2.181224235989778),-                                    ("named-daylast <cycle>", -3.4339872044851463),-                                    ("on <date>hh:mm", -3.4339872044851463),-                                    ("named-dayhh:mm", -3.028522096376982),-                                    ("dayday", -2.517696472610991),-                                    ("intersectnamed-month", -3.028522096376982),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -3.4339872044851463),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",-                                     -3.4339872044851463),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -3.028522096376982),-                                    ("named-day<datetime> - <datetime> (interval)",-                                     -3.028522096376982),-                                    ("on <date><time-of-day> - <time-of-day> (interval)",-                                     -3.4339872044851463),-                                    ("on <date><datetime> - <datetime> (interval)",-                                     -3.4339872044851463),-                                    ("named-daynext <cycle>", -3.4339872044851463),-                                    ("named-dayintersect", -3.4339872044851463),-                                    ("absorption of , after named day<day-of-month> (ordinal)",-                                     -3.4339872044851463),-                                    ("dayminute", -1.824549292051046),-                                    ("absorption of , after named dayintersect",-                                     -3.4339872044851463),-                                    ("intersectintersect", -3.4339872044851463),-                                    ("dayweek", -3.028522096376982)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.174751721484161),-                                    ("daymonth", -1.4816045409242156),-                                    ("intersectnamed-month", -2.6855773452501515),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -2.6855773452501515),-                                    ("on <date><time-of-day> - <time-of-day> (interval)",-                                     -3.0910424533583156),-                                    ("named-dayintersect", -2.3978952727983707),-                                    ("dayminute", -2.3978952727983707)],-                               n = 12}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.4816045409242156), ("day", -1.9924301646902063),-                                    ("year", -2.3978952727983707),-                                    ("<integer> <unit-of-duration>", -1.0116009116784799),-                                    ("a <unit-of-duration>", -2.3978952727983707),-                                    ("month", -2.3978952727983707)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.9808292530117262),-                                    ("named-day", -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.7672551527136672),-                                    ("hour", -0.7672551527136672)],-                               n = 12}}),-       ("EOM|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}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.5520685823000397,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..19th)", -1.6582280766035324),-                                    ("ordinal (digits)", -0.2113090936672069)],-                               n = 19},-                   koData =-                     ClassData{prior = -0.8574502318512216, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..19th)", -0.8266785731844679),-                                    ("ordinal (digits)", -0.5753641449035618)],-                               n = 14}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -4.0943445622221,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -2.1316272948504063),-                                    ("<time-of-day>  o'clock", -2.2857779746776643),-                                    ("intersect", -3.3843902633457743),-                                    ("time-of-day (latent)", -2.1316272948504063),-                                    ("<time-of-day> am|pm", -3.3843902633457743),-                                    ("EOM|End of month", -3.3843902633457743),-                                    ("hour", -1.0330150061822965), ("month", -3.3843902633457743),-                                    ("midnight|EOD|end of day", -3.3843902633457743)],-                               n = 21},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("mm/dd", -2.70805020110221),-                                    ("intersect", -2.4203681286504293),-                                    ("mm/dd/yyyy", -2.70805020110221),-                                    ("<day-of-month>(ordinal) <named-month>", -3.1135153092103742),-                                    ("day", -1.4087672169719492), ("hh:mm", -2.1972245773362196),-                                    ("<day-of-month> (ordinal)", -3.1135153092103742),-                                    ("<day-of-month> (non ordinal) <named-month>",-                                     -3.1135153092103742),-                                    ("minute", -2.1972245773362196)],-                               n = 14}}),-       ("<integer> and an half hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (0..19)", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Nikolaus",-        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}}),-       ("evening",-        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}}),-       ("midnight|EOD|end of 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-of-day> until",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -1.466337068793427, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -2.1972245773362196),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.262364264467491, unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.7841189587656721),-                                    ("hour", -0.7841189587656721)],-                               n = 20}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5040773967762742),-                                    ("month (grain)", -2.1972245773362196),-                                    ("year (grain)", -2.1972245773362196),-                                    ("week (grain)", -1.5040773967762742),-                                    ("year", -2.1972245773362196), ("month", -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("week (grain)", -1.791759469228055),-                                    ("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,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   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,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.740840023925201),-                                    ("integer (0..19)year (grain)", -3.028522096376982),-                                    ("integer (numeric)day (grain)", -3.4339872044851463),-                                    ("integer (0..19)hour (grain)", -3.4339872044851463),-                                    ("second", -3.028522096376982),-                                    ("integer (numeric)second (grain)", -3.4339872044851463),-                                    ("integer (numeric)year (grain)", -3.4339872044851463),-                                    ("day", -2.3353749158170367), ("year", -2.740840023925201),-                                    ("integer (numeric)week (grain)", -3.4339872044851463),-                                    ("integer (0..19)month (grain)", -3.028522096376982),-                                    ("integer (0..19)second (grain)", -3.4339872044851463),-                                    ("hour", -3.028522096376982), ("month", -2.740840023925201),-                                    ("integer (numeric)minute (grain)", -3.4339872044851463),-                                    ("integer (0..19)minute (grain)", -3.4339872044851463),-                                    ("integer (numeric)month (grain)", -3.4339872044851463),-                                    ("minute", -3.028522096376982),-                                    ("coupleday (grain)", -3.028522096376982),-                                    ("integer (numeric)hour (grain)", -3.4339872044851463),-                                    ("integer (0..19)day (grain)", -3.028522096376982),-                                    ("integer (0..19)week (grain)", -3.028522096376982)],-                               n = 20},-                   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,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.0986122886681098),-                                    ("hh:mm", -1.791759469228055), ("hour", -1.0986122886681098),-                                    ("minute", -1.791759469228055)],-                               n = 4}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.07753744390572,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6741486494265287),-                                    ("number.number hours", -3.367295829986474),-                                    ("second", -2.9618307218783095), ("day", -2.9618307218783095),-                                    ("half an hour", -3.367295829986474),-                                    ("year", -3.367295829986474),-                                    ("<integer> <unit-of-duration>", -1.2878542883066382),-                                    ("a <unit-of-duration>", -2.451005098112319),-                                    ("<integer> and an half hours", -3.367295829986474),-                                    ("hour", -2.268683541318364), ("minute", -1.6625477377480489),-                                    ("about <duration>", -3.367295829986474)],-                               n = 23},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.9694005571881036, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -3.4657359027997265),-                                    ("on <date>hh:mm", -3.4657359027997265),-                                    ("minuteminute", -1.6739764335716716),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -3.0602707946915624),-                                    ("hh:mmhh:mm", -2.2129729343043585),-                                    ("dayday", -1.6739764335716716),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -3.0602707946915624),-                                    ("intersect by 'of', 'from', 'shh:mm", -2.772588722239781),-                                    ("mm/ddmm/dd", -2.0794415416798357)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.4769240720903093, unseen = -4.532599493153256,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> (ordinal)<day-of-month>(ordinal) <named-month>",-                                     -3.4231762883809305),-                                    ("daymonth", -3.4231762883809305),-                                    ("mm/ddmm/dd/yyyy", -2.575878427993727),-                                    ("<day-of-month> (ordinal)mm/dd", -2.91235066461494),-                                    ("mm/ddhh:mm", -2.4423470353692043),-                                    ("dayday", -1.3437347467010947),-                                    ("<day-of-month> (ordinal)intersect", -3.1354942159291497),-                                    ("<day-of-month> (ordinal)hh:mm", -2.91235066461494),-                                    ("mm/ddintersect", -2.575878427993727),-                                    ("dayminute", -2.03688192726104),-                                    ("<day-of-month> (ordinal)mm/dd/yyyy", -3.4231762883809305),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -3.4231762883809305)],-                               n = 36}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8266785731844679, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.916290731874155),-                                    ("hh:mmhh:mm", -0.916290731874155)],-                               n = 7},-                   koData =-                     ClassData{prior = -0.5753641449035618,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.2321436812926323),-                                    ("hourminute", -1.791759469228055),-                                    ("minutehour", -1.2321436812926323),-                                    ("time-of-day (latent)hh:mm", -1.791759469228055)],-                               n = 9}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.9318256327243257,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5257286443082556),-                                    ("integer (0..19)year (grain)", -2.8134107167600364),-                                    ("integer (numeric)day (grain)", -3.2188758248682006),-                                    ("second", -2.8134107167600364),-                                    ("integer (numeric)second (grain)", -3.2188758248682006),-                                    ("integer (numeric)year (grain)", -3.2188758248682006),-                                    ("day", -2.5257286443082556), ("year", -2.5257286443082556),-                                    ("integer (numeric)week (grain)", -2.8134107167600364),-                                    ("integer (0..19)month (grain)", -2.8134107167600364),-                                    ("integer (0..19)second (grain)", -3.2188758248682006),-                                    ("month", -2.5257286443082556),-                                    ("integer (numeric)minute (grain)", -3.2188758248682006),-                                    ("integer (0..19)minute (grain)", -3.2188758248682006),-                                    ("integer (numeric)month (grain)", -3.2188758248682006),-                                    ("minute", -2.8134107167600364),-                                    ("integer (0..19)day (grain)", -2.8134107167600364),-                                    ("integer (0..19)week (grain)", -3.2188758248682006)],-                               n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.9444389791664407,-                               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..19th)named-dayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..19th)named-daychristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.12516314295400605,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 15},-                   koData =-                     ClassData{prior = -2.1400661634962708,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> after",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("quarter (grain)",-        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 <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.540445040947149),-                                    ("week (grain)named-month", -1.9459101490553135),-                                    ("day (grain)intersect", -1.9459101490553135),-                                    ("weekmonth", -1.540445040947149),-                                    ("day (grain)named-month", -1.9459101490553135),-                                    ("week (grain)intersect", -1.9459101490553135)],-                               n = 4},-                   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 = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        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}}),-       ("week-end",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.540445040947149),-                                    ("time-of-day (latent)", -1.540445040947149),-                                    ("hour", -0.9343092373768334)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day>  o'clock", -2.3025850929940455),-                                    ("intersect", -2.3025850929940455),-                                    ("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)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <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}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("at <time-of-day>integer (numeric)", -2.0149030205422647),-                                    ("<time-of-day>  o'clockinteger (numeric)",-                                     -1.0986122886681098)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (0..19)", -2.0149030205422647),-                                    ("time-of-day (latent)integer (numeric)", -1.0986122886681098),-                                    ("hour", -0.916290731874155)],-                               n = 5}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -1.466337068793427), ("day", -1.1786549963416462),-                                    ("named-day", -1.8718021769015913),-                                    ("hour", -1.8718021769015913),-                                    ("week-end", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("before yesterday",-        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}})]
+ Duckling/Ranking/Classifiers/DE_XX.hs view
@@ -0,0 +1,2063 @@+-- 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.DE_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.3862943611198906),+                                    ("hh:mm", -1.3862943611198906), ("hour", -1.3862943611198906),+                                    ("minute", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.9179699933938751, unseen = -4.795790545596741,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 119},+                   koData =+                     ClassData{prior = -0.5097076806646496, unseen = -5.198497031265826,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 179}}),+       ("exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.0986122886681098),+                                    ("<time-of-day>  o'clock", -1.5040773967762742),+                                    ("hour", -0.8109302162163288)],+                               n = 3},+                   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,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("lunch",+        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 (20..90)",+        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}}),+       ("Marz",+        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}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -5.723585101952381,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clockmorning", -4.621699487939302),+                                    ("until <time-of-day>afternoon", -5.0271645960474665),+                                    ("dayhour", -3.322416503809041),+                                    ("todayevening", -4.621699487939302),+                                    ("half <integer> (german style hour-of-day)afternoon",+                                     -5.0271645960474665),+                                    ("<time-of-day>  o'clockafter lunch", -4.334017415487521),+                                    ("intersect by ','evening", -3.5230871992711923),+                                    ("<time-of-day>  o'clockon <date>", -3.9285523073793565),+                                    ("intersectevening", -1.9591116609138493),+                                    ("time-of-day (latent)on <date>", -4.334017415487521),+                                    ("about <time-of-day>on <date>", -4.621699487939302),+                                    ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",+                                     -4.621699487939302),+                                    ("hourhour", -1.1985231995583712),+                                    ("<time-of-day>  o'clockin|during the <part-of-day>",+                                     -3.9285523073793565),+                                    ("Donnerstagmorning", -5.0271645960474665),+                                    ("<time-of-day>  o'clockafternoon", -4.334017415487521),+                                    ("half <integer> (german style hour-of-day)after lunch",+                                     -5.0271645960474665),+                                    ("until <time-of-day>morning", -4.621699487939302),+                                    ("minutehour", -2.3881072664322076),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -4.110873864173311),+                                    ("<hour-of-day> <integer> (as relative minutes)after lunch",+                                     -5.0271645960474665),+                                    ("<time-of-day> am|pmmorning", -4.621699487939302),+                                    ("tomorrowevening", -5.0271645960474665),+                                    ("time-of-day (latent)morning", -5.0271645960474665),+                                    ("hh:mmmorning", -5.0271645960474665),+                                    ("half <integer> (german style hour-of-day)in|during the <part-of-day>",+                                     -4.621699487939302),+                                    ("until <time-of-day>on <date>", -5.0271645960474665),+                                    ("<day-of-month>(ordinal) <named-month>morning",+                                     -5.0271645960474665),+                                    ("<time-of-day>  o'clockevening", -5.0271645960474665),+                                    ("hh:mmon <date>", -4.110873864173311),+                                    ("<hour-of-day> <integer> (as relative minutes)afternoon",+                                     -5.0271645960474665),+                                    ("tomorrowlunch", -4.621699487939302),+                                    ("until <time-of-day>after lunch", -5.0271645960474665),+                                    ("Montagmorning", -5.0271645960474665),+                                    ("at <time-of-day>on <date>", -4.110873864173311),+                                    ("yesterdayevening", -5.0271645960474665),+                                    ("intersectmorning", -5.0271645960474665),+                                    ("hh:mmin|during the <part-of-day>", -4.110873864173311),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -4.334017415487521),+                                    ("<hour-of-day> <integer> (as relative minutes)on <date>",+                                     -4.621699487939302),+                                    ("about <time-of-day>in|during the <part-of-day>",+                                     -4.621699487939302),+                                    ("half <integer> (german style hour-of-day)on <date>",+                                     -4.621699487939302),+                                    ("at <time-of-day>morning", -5.0271645960474665),+                                    ("until <time-of-day>in|during the <part-of-day>",+                                     -5.0271645960474665)],+                               n = 128},+                   koData =+                     ClassData{prior = -2.1972245773362196, unseen = -4.406719247264253,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -3.295836866004329),+                                    ("year (latent)on <date>", -3.7013019741124937),+                                    ("<time-of-day>  o'clockafter lunch", -3.7013019741124937),+                                    ("intersectevening", -3.0081547935525483),+                                    ("monthhour", -3.7013019741124937),+                                    ("time-of-day (latent)on <date>", -2.7850112422383386),+                                    ("hourhour", -1.7553918250571803),+                                    ("Februarmorning", -3.7013019741124937),+                                    ("<time-of-day>  o'clockafternoon", -3.7013019741124937),+                                    ("year (latent)in|during the <part-of-day>",+                                     -3.7013019741124937),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -2.7850112422383386)],+                               n = 16}}),+       ("today",+        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}}),+       ("mm/dd",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -4.382026634673881,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -2.0668627594729756),+                                    ("half <integer> (german style hour-of-day)",+                                     -3.676300671907076),+                                    ("about <time-of-day>", -2.760009940032921),+                                    ("time-of-day (latent)", -1.7303905228517629),+                                    ("relative minutes after|past <integer> (hour-of-day)",+                                     -3.676300671907076),+                                    ("hh:mm", -2.760009940032921),+                                    ("quarter after|past <integer> (hour-of-day)",+                                     -3.676300671907076),+                                    ("hour", -1.0736109864626924), ("minute", -2.172223275130802),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -3.676300671907076)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.5040773967762742),+                                    ("<time-of-day> am|pm", -1.9095425048844386),+                                    ("hour", -1.349926716949016), ("minute", -2.1972245773362196)],+                               n = 8}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = -7.410797215372185e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.3978952727983707),+                                    ("Freitag", -1.7047480922384253),+                                    ("Sonntag", -2.803360380906535),+                                    ("Montag", -2.1102132003465894), ("day", -0.8574502318512216),+                                    ("Mittwoch", -2.803360380906535),+                                    ("Samstag", -2.803360380906535)],+                               n = 13},+                   koData =+                     ClassData{prior = -2.639057329615259, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("Freitag", -1.5040773967762742), ("day", -1.5040773967762742)],+                               n = 1}}),+       ("September",+        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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.24256163717131135,+                               unseen = -4.804021044733257,+                               likelihoods =+                                 HashMap.fromList+                                   [("absorption of , after named day", -3.6971782569286313),+                                    ("Freitag", -4.102643365036796),+                                    ("intersect", -1.8513515664303006),+                                    ("after lunch", -2.849880396541428),+                                    ("day", -1.537694007575259), ("afternoon", -2.849880396541428),+                                    ("intersect by ','", -2.849880396541428),+                                    ("intersect by 'of', 'from', 's", -3.4094961844768505),+                                    ("Donnerstag", -3.4094961844768505),+                                    ("<day-of-month> (ordinal)", -4.102643365036796),+                                    ("hour", -1.9054187877005764), ("evening", -4.102643365036796),+                                    ("<datetime> - <datetime> (interval)", -4.102643365036796),+                                    ("minute", -2.4932054526026954),+                                    ("Samstag", -3.6971782569286313),+                                    ("morning", -4.102643365036796)],+                               n = 51},+                   koData =+                     ClassData{prior = -1.5353299402803784, unseen = -3.871201010907891,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.7707060600302227),+                                    ("after lunch", -3.1570004211501135),+                                    ("<day-of-month>(ordinal) <named-month>", -3.1570004211501135),+                                    ("tomorrow", -3.1570004211501135), ("day", -2.2407096892759584),+                                    ("hh:mm", -2.751535313041949),+                                    ("intersect by 'of', 'from', 's", -3.1570004211501135),+                                    ("<day-of-month> (ordinal)", -3.1570004211501135),+                                    ("hour", -3.1570004211501135), ("minute", -1.547562508716013)],+                               n = 14}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.6375861597263857,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},+                   koData =+                     ClassData{prior = -2.3025850929940455, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),+                                    ("minutehour", -1.0986122886681098)],+                               n = 1}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),+                                    ("minutehour", -1.0986122886681098)],+                               n = 1}}),+       ("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}}),+       ("<time-of-day>  o'clock",+        Classifier{okData =+                     ClassData{prior = -4.580953603129422e-2,+                               unseen = -4.9344739331306915,+                               likelihoods =+                                 HashMap.fromList+                                   [("exactly <time-of-day>", -4.23410650459726),+                                    ("at <time-of-day>", -2.624668592163159),+                                    ("half <integer> (german style hour-of-day)",+                                     -4.23410650459726),+                                    ("about <time-of-day>", -2.847812143477369),+                                    ("time-of-day (latent)", -1.3437347467010947),+                                    ("quarter after|past <integer> (hour-of-day)",+                                     -4.23410650459726),+                                    ("until <time-of-day>", -3.1354942159291497),+                                    ("hour", -0.7841189587656721), ("minute", -3.828641396489095),+                                    ("after <time-of-day>", -3.1354942159291497)],+                               n = 64},+                   koData =+                     ClassData{prior = -3.1060803307228566, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.6739764335716716),+                                    ("hour", -1.3862943611198906),+                                    ("after <time-of-day>", -2.0794415416798357)],+                               n = 3}}),+       ("Freitag",+        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}}),+       ("Juli",+        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}}),+       ("hour (grain)",+        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}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)quarter (grain)", -0.916290731874155),+                                    ("quarter", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.916290731874155),+                                    ("quarter", -0.916290731874155)],+                               n = 1}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.26272534047791335,+                               unseen = -6.927557906278317,+                               likelihoods =+                                 HashMap.fromList+                                   [("Samstag<time-of-day>  o'clock", -6.23342985266278),+                                    ("hourday", -4.9806668841674115),+                                    ("<datetime> - <datetime> (interval)year", -4.9806668841674115),+                                    ("dayhour", -2.5698682065331333),+                                    ("daymonth", -3.1653769175291626),+                                    ("<day-of-month>(ordinal) <named-month> year<time-of-day>  o'clock",+                                     -6.23342985266278),+                                    ("monthyear", -4.528681760424354),+                                    ("yearhour", -6.23342985266278),+                                    ("Juliintersect", -6.23342985266278),+                                    ("intersect<time-of-day>  o'clock", -4.093363689166509),+                                    ("christmasyear", -6.23342985266278),+                                    ("after lunchat <time-of-day>", -6.23342985266278),+                                    ("absorption of , after named daymm/dd/yyyy",+                                     -6.23342985266278),+                                    ("intersectJuli", -5.540282672102834),+                                    ("<day-of-month> (ordinal)Dienstag", -6.23342985266278),+                                    ("intersect by 'of', 'from', 'syear", -5.827964744554615),+                                    ("<time-of-day> am|pmintersect", -5.13481756399467),+                                    ("<day-of-month> (ordinal)September", -5.827964744554615),+                                    ("intersect<time> <part-of-day>", -4.153988310982943),+                                    ("<time-of-day>  o'clockafter lunch", -5.540282672102834),+                                    ("<day-of-month> (ordinal)Mittwoch", -6.23342985266278),+                                    ("Montagthis <cycle>", -6.23342985266278),+                                    ("<time> <part-of-day><time-of-day>  o'clock",+                                     -6.23342985266278),+                                    ("Oktoberyear", -5.13481756399467),+                                    ("today<time-of-day>  o'clock", -6.23342985266278),+                                    ("<time-of-day>  o'clockon <date>", -5.827964744554615),+                                    ("<time-of-day> am|pmintersect by ','", -5.540282672102834),+                                    ("intersect by ','year", -5.13481756399467),+                                    ("on <date><time-of-day>  o'clock", -6.23342985266278),+                                    ("exactly <time-of-day>tomorrow", -5.827964744554615),+                                    ("mm/dd<time-of-day>  o'clock", -6.23342985266278),+                                    ("monthhour", -5.827964744554615),+                                    ("on <date>between <datetime> and <datetime> (interval)",+                                     -6.23342985266278),+                                    ("last <day-of-week> of <time>year", -6.23342985266278),+                                    ("hourmonth", -5.827964744554615),+                                    ("todayat <time-of-day>", -5.540282672102834),+                                    ("mm/ddabout <time-of-day>", -5.827964744554615),+                                    ("Donnerstagfrom <datetime> - <datetime> (interval)",+                                     -5.827964744554615),+                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",+                                     -6.23342985266278),+                                    ("on <date>at <time-of-day>", -5.827964744554615),+                                    ("dayday", -3.055376022314834),+                                    ("<time> <part-of-day>at <time-of-day>", -5.827964744554615),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -6.23342985266278),+                                    ("about <time-of-day>on <date>", -6.23342985266278),+                                    ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",+                                     -5.827964744554615),+                                    ("<day-of-month> (ordinal)intersect", -5.13481756399467),+                                    ("hourhour", -3.707701208354524),+                                    ("hh:mmintersect by ','", -4.9806668841674115),+                                    ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.540282672102834),+                                    ("Dienstagthis <cycle>", -6.23342985266278),+                                    ("<part-of-day> of <time>Februar", -5.827964744554615),+                                    ("dayyear", -3.3156591205785),+                                    ("Mittwochthis <cycle>", -6.23342985266278),+                                    ("<time-of-day>  o'clockin|during the <part-of-day>",+                                     -5.13481756399467),+                                    ("tomorrow<time-of-day>  o'clock", -6.23342985266278),+                                    ("<time-of-day>  o'clocktomorrow", -5.540282672102834),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -5.827964744554615),+                                    ("half <integer> (german style hour-of-day)after lunch",+                                     -6.23342985266278),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",+                                     -4.9806668841674115),+                                    ("hourminute", -5.540282672102834),+                                    ("the <day-of-month> (ordinal)Juli", -6.23342985266278),+                                    ("on <date><day-of-month>(ordinal) <named-month>",+                                     -5.827964744554615),+                                    ("minutemonth", -3.559281203236251),+                                    ("minutehour", -3.9821380540562843),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.3171391207886245),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",+                                     -5.827964744554615),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -5.13481756399467),+                                    ("<day-of-month>(ordinal) <named-month> year<time> <part-of-day>",+                                     -6.23342985266278),+                                    ("<hour-of-day> <integer> (as relative minutes)after lunch",+                                     -6.23342985266278),+                                    ("Donnerstag<time> timezone", -6.23342985266278),+                                    ("Samstagat <time-of-day>", -5.827964744554615),+                                    ("<time-of-day> am|pmSamstag", -6.23342985266278),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -4.847135491542889),+                                    ("this <part-of-day><time-of-day>  o'clock", -6.23342985266278),+                                    ("<day-of-month>(ordinal) <named-month>intersect",+                                     -6.23342985266278),+                                    ("hh:mmintersect", -3.7910828172935753),+                                    ("Donnerstaghh:mm", -6.23342985266278),+                                    ("<day-of-month> (ordinal)Juli", -5.540282672102834),+                                    ("intersect by ','intersect", -4.9806668841674115),+                                    ("intersect by 'of', 'from', 'sJuli", -6.23342985266278),+                                    ("<day-of-month> (ordinal)Oktober", -6.23342985266278),+                                    ("half <integer> (german style hour-of-day)in|during the <part-of-day>",+                                     -5.827964744554615),+                                    ("from <datetime> - <datetime> (interval)year",+                                     -5.540282672102834),+                                    ("at <time-of-day>intersect", -4.441670383434724),+                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",+                                     -5.827964744554615),+                                    ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",+                                     -6.23342985266278),+                                    ("absorption of , after named day<day-of-month> (ordinal)",+                                     -4.9806668841674115),+                                    ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",+                                     -6.23342985266278),+                                    ("dayminute", -4.03620527532656),+                                    ("on <date>from <datetime> - <datetime> (interval)",+                                     -6.23342985266278),+                                    ("Mittwochnext <cycle>", -6.23342985266278),+                                    ("Donnerstagbetween <datetime> and <datetime> (interval)",+                                     -6.23342985266278),+                                    ("<time> <part-of-day>from <datetime> - <datetime> (interval)",+                                     -6.23342985266278),+                                    ("intersectyear", -4.441670383434724),+                                    ("on <date>intersect", -5.827964744554615),+                                    ("on <date><day-of-month> (ordinal)", -5.827964744554615),+                                    ("intersectSeptember", -3.4925898287375787),+                                    ("<ordinal> <cycle> of <time>year", -6.23342985266278),+                                    ("minuteday", -2.2537481987608188),+                                    ("absorption of , after named dayintersect",+                                     -3.835534579864409),+                                    ("intersect by ','September", -4.729352455886505),+                                    ("year<time-of-day>  o'clock", -6.23342985266278),+                                    ("Juliyear", -5.827964744554615),+                                    ("at <time-of-day>intersect by ','", -5.540282672102834),+                                    ("hh:mmabsorption of , after named day", -5.827964744554615),+                                    ("intersect by ','<time> <part-of-day>", -5.3171391207886245),+                                    ("hh:mmon <date>", -3.7910828172935753),+                                    ("at <time-of-day>absorption of , after named day",+                                     -6.23342985266278),+                                    ("until <time-of-day>after lunch", -6.23342985266278),+                                    ("mm/ddyear", -5.827964744554615),+                                    ("intersect by ','<time-of-day>  o'clock", -5.3171391207886245),+                                    ("intersect<day-of-month> (ordinal)", -4.847135491542889),+                                    ("absorption of , after named daymm/dd", -6.23342985266278),+                                    ("on <date>September", -5.3171391207886245),+                                    ("Septemberyear", -5.827964744554615),+                                    ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",+                                     -5.540282672102834),+                                    ("at <time-of-day>on <date>", -4.361627675761188),+                                    ("intersectintersect", -4.093363689166509),+                                    ("<day-of-month> (ordinal)Februar", -5.13481756399467),+                                    ("dayweek", -5.13481756399467),+                                    ("intersect by ','Juli", -5.540282672102834),+                                    ("absorption of , after named daythe <day-of-month> (ordinal)",+                                     -6.23342985266278),+                                    ("weekyear", -5.827964744554615),+                                    ("hh:mmin|during the <part-of-day>", -5.3171391207886245),+                                    ("Marzyear", -6.23342985266278),+                                    ("tomorrowat <time-of-day>", -5.827964744554615),+                                    ("<hour-of-day> <integer> (as relative minutes)on <date>",+                                     -6.23342985266278),+                                    ("Donnerstag<time-of-day> - <time-of-day> (interval)",+                                     -6.23342985266278),+                                    ("Donnerstag<datetime> - <datetime> (interval)",+                                     -6.23342985266278),+                                    ("Sonntaglast <cycle>", -6.23342985266278),+                                    ("at <time-of-day>tomorrow", -6.23342985266278),+                                    ("about <time-of-day>in|during the <part-of-day>",+                                     -5.827964744554615),+                                    ("half <integer> (german style hour-of-day)on <date>",+                                     -6.23342985266278),+                                    ("this <part-of-day>at <time-of-day>", -5.827964744554615),+                                    ("<datetime> - <datetime> (interval)Juli", -5.827964744554615),+                                    ("after lunch<hour-of-day> <integer> (as relative minutes)",+                                     -5.827964744554615),+                                    ("<day-of-month> (ordinal)Marz", -6.23342985266278),+                                    ("last <cycle> of <time>year", -5.827964744554615),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -6.23342985266278),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -6.23342985266278)],+                               n = 426},+                   koData =+                     ClassData{prior = -1.4651344228276666, unseen = -6.049733455231958,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli<day-of-month> (non ordinal) <named-month>",+                                     -5.354224998486333),+                                    ("absorption of , after named daythe <day-of-month> (non ordinal)",+                                     -5.354224998486333),+                                    ("<datetime> - <datetime> (interval)year", -5.354224998486333),+                                    ("dayhour", -4.661077817926388),+                                    ("<named-month> <day-of-month> (non ordinal)Juli",+                                     -5.354224998486333),+                                    ("daymonth", -3.4824228215847413),+                                    ("monthday", -4.948759890378168),+                                    ("monthyear", -5.354224998486333),+                                    ("yearhour", -5.354224998486333),+                                    ("after lunchat <time-of-day>", -4.948759890378168),+                                    ("mm/dduntil <time-of-day>", -4.948759890378168),+                                    ("until <time-of-day>year", -4.948759890378168),+                                    ("<day-of-month> (ordinal)Dienstag", -4.948759890378168),+                                    ("absorption of , after named dayFebruar", -4.255612709818223),+                                    ("on <date>Februar", -5.354224998486333),+                                    ("intersect by 'of', 'from', 'syear", -4.661077817926388),+                                    ("<time-of-day> am|pmintersect", -3.6494769062479073),+                                    ("intersect<time> <part-of-day>", -5.354224998486333),+                                    ("<time-of-day>  o'clockafter lunch", -5.354224998486333),+                                    ("<day-of-month> (ordinal)Mittwoch", -5.354224998486333),+                                    ("after lunch<time-of-day>  o'clock", -5.354224998486333),+                                    ("absorption of , after named dayhh:mm", -5.354224998486333),+                                    ("<time-of-day> am|pmintersect by ','", -4.101462029990965),+                                    ("<time-of-day>  o'clock<time> <part-of-day>",+                                     -4.437934266612178),+                                    ("<time-of-day> am|pmFreitag", -4.948759890378168),+                                    ("mm/ddhh:mm", -4.437934266612178),+                                    ("monthhour", -5.354224998486333),+                                    ("on <date>between <datetime> and <datetime> (interval)",+                                     -5.354224998486333),+                                    ("todayat <time-of-day>", -5.354224998486333),+                                    ("Donnerstagfrom <datetime> - <datetime> (interval)",+                                     -4.948759890378168),+                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",+                                     -5.354224998486333),+                                    ("dayday", -3.9679306373664422),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -4.948759890378168),+                                    ("hourhour", -3.8501476017100584),+                                    ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.661077817926388),+                                    ("Donnerstagafter <time-of-day>", -5.354224998486333),+                                    ("dayyear", -3.274783456806497),+                                    ("minutemonth", -3.4824228215847413),+                                    ("Aprilyear", -5.354224998486333),+                                    ("Dienstagafter <time-of-day>", -5.354224998486333),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -4.661077817926388),+                                    ("Donnerstaghh:mm", -5.354224998486333),+                                    ("<day-of-month> (ordinal)Juli", -4.948759890378168),+                                    ("<day-of-month> (ordinal)hh:mm", -4.437934266612178),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.354224998486333),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -5.354224998486333),+                                    ("at <time-of-day>intersect", -4.255612709818223),+                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",+                                     -4.948759890378168),+                                    ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",+                                     -5.354224998486333),+                                    ("dayminute", -2.715167668871074),+                                    ("on <date>from <datetime> - <datetime> (interval)",+                                     -5.354224998486333),+                                    ("Donnerstagbetween <datetime> and <datetime> (interval)",+                                     -5.354224998486333),+                                    ("until <time-of-day>Juli", -5.354224998486333),+                                    ("intersectSeptember", -3.744787086052232),+                                    ("minuteday", -2.3584927249323417),+                                    ("intersect by ','September", -4.661077817926388),+                                    ("at <time-of-day>intersect by ','", -4.661077817926388),+                                    ("at <time-of-day>Freitag", -5.354224998486333),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.354224998486333),+                                    ("year<time> <part-of-day>", -5.354224998486333),+                                    ("mm/ddyear", -3.8501476017100584),+                                    ("intersect<day-of-month> (ordinal)", -4.661077817926388),+                                    ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",+                                     -4.948759890378168),+                                    ("intersectintersect", -4.661077817926388),+                                    ("Donnerstag<part-of-day> of <time>", -5.354224998486333),+                                    ("<day-of-month> (ordinal)April", -5.354224998486333),+                                    ("Donnerstag<time-of-day> - <time-of-day> (interval)",+                                     -5.354224998486333),+                                    ("after <time-of-day>year", -5.354224998486333),+                                    ("on <date>after <time-of-day>", -5.354224998486333),+                                    ("tomorrownoon", -5.354224998486333)],+                               n = 128}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.7047480922384253),+                                    ("ordinals (first..19th)week (grain)Oktober",+                                     -1.7047480922384253),+                                    ("ordinals (first..19th)day (grain)Oktober",+                                     -1.7047480922384253),+                                    ("ordinals (first..19th)week (grain)intersect",+                                     -1.7047480922384253),+                                    ("weekmonth", -1.2992829841302609)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (grain)",+        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}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.159484249353372),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.5649493574615367),+                                    ("hh:mmhh:mm", -2.159484249353372),+                                    ("dayday", -1.8718021769015913),+                                    ("hourhour", -2.5649493574615367),+                                    ("mm/ddmm/dd", -1.8718021769015913)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.35667494393873245,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.3513752571634776),+                                    ("mm/ddmm/dd/yyyy", -2.3513752571634776),+                                    ("hh:mmtime-of-day (latent)", -2.639057329615259),+                                    ("mm/ddhh:mm", -2.3513752571634776),+                                    ("dayday", -1.791759469228055),+                                    ("minutehour", -2.639057329615259),+                                    ("mm/ddintersect", -2.3513752571634776),+                                    ("dayminute", -2.3513752571634776),+                                    ("mm/ddtime-of-day (latent)", -2.3513752571634776)],+                               n = 14}}),+       ("after tomorrow",+        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,+                               unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("month (grain)", -2.3025850929940455),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.6094379124341003),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("month", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("week (grain)", -1.6094379124341003)],+                               n = 1}}),+       ("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.5596157879354228, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.252762968495368),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -1.9459101490553135),+                                    ("hh:mmhh:mm", -1.252762968495368),+                                    ("hourhour", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),+                                    ("minutehour", -1.0986122886681098)],+                               n = 3}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1}}),+       ("mm/dd/yyyy",+        Classifier{okData =+                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("couple",+        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}}),+       ("yesterday",+        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}}),+       ("<ordinal> quarter <year>",+        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}}),+       ("after lunch",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter to|till|before <integer> (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}}),+       ("Allerheiligen",+        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> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0296194171811581),+                                    ("ordinals (first..19th)Dienstagintersect",+                                     -1.9459101490553135),+                                    ("ordinals (first..19th)Mittwochintersect", -1.540445040947149),+                                    ("ordinals (first..19th)DienstagOktober", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0986122886681098),+                                    ("ordinals (first..19th)DienstagSeptember", -1.791759469228055),+                                    ("ordinals (first..19th)MittwochOktober", -1.3862943611198906)],+                               n = 3}}),+       ("the <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1}}),+       ("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}}),+       ("week (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}}),+       ("<part-of-day> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -0.9444616088408514),+                                    ("morning<day-of-month>(ordinal) <named-month>",+                                     -1.791759469228055),+                                    ("morningintersect", -1.791759469228055),+                                    ("morning<day-of-month> (ordinal)", -1.791759469228055)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("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,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("half <integer> (german style hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.7047480922384253),+                                    ("time-of-day (latent)", -1.0116009116784799),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("evening", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Montag",+        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}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.4657359027997265,+                               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},+                   koData =+                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)Juli", -1.466337068793427),+                                    ("ordinal (digits)April", -1.8718021769015913),+                                    ("month", -1.1786549963416462)],+                               n = 3}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 18}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -6.0624621816434854e-2,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("after lunch", -1.6650077635889111),+                                    ("afternoon", -1.5314763709643884),+                                    ("hour", -0.7777045685880083), ("evening", -2.512305623976115),+                                    ("morning", -2.917770732084279)],+                               n = 16},+                   koData =+                     ClassData{prior = -2.833213344056216, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("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,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     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,+                               likelihoods =+                                 HashMap.fromList+                                   [("Freitag", -1.252762968495368), ("day", -0.8472978603872037),+                                    ("Mittwoch", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Marz", -1.3862943611198906), ("Freitag", -1.3862943611198906),+                                    ("day", -1.3862943611198906), ("month", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half an hour",+        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 <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("ordinal (digits)", 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.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2039728043259361),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.2039728043259361),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.3862943611198906),+                                    ("time-of-day (latent)", -1.3862943611198906),+                                    ("hour", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.3862943611198906),+                                    ("<time-of-day> am|pm", -1.3862943611198906),+                                    ("hour", -0.9808292530117262)],+                               n = 2}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.5455111817538806,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -9.909090264423089e-2),+                                    ("integer (0..19)", -2.3608540011180215)],+                               n = 51},+                   koData =+                     ClassData{prior = -0.866418901833982, unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.262364264467491),+                                    ("integer (0..19)", -1.466337068793427)],+                               n = 37}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -8.338160893905101e-2,+                               unseen = -3.2188758248682006,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 23},+                   koData =+                     ClassData{prior = -2.5257286443082556,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 2}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("MontagMarz", -1.6094379124341003),+                                    ("SonntagMarz", -1.6094379124341003),+                                    ("Sonntagintersect", -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.8850381883700507, unseen = -4.330733340286331,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2380465718564744),+                                    ("integer (0..19)year (grain)", -3.2188758248682006),+                                    ("integer (numeric)day (grain)", -2.70805020110221),+                                    ("couplehour (grain)", -3.624340932976365),+                                    ("integer (0..19)hour (grain)", -3.2188758248682006),+                                    ("second", -3.624340932976365),+                                    ("integer (numeric)year (grain)", -3.624340932976365),+                                    ("day", -2.70805020110221), ("year", -2.9311937524164198),+                                    ("integer (numeric)week (grain)", -2.9311937524164198),+                                    ("integer (0..19)month (grain)", -3.624340932976365),+                                    ("integer (0..19)second (grain)", -3.624340932976365),+                                    ("hour", -2.70805020110221), ("month", -3.624340932976365),+                                    ("integer (numeric)minute (grain)", -2.5257286443082556),+                                    ("integer (0..19)minute (grain)", -3.624340932976365),+                                    ("minute", -2.371577964480997),+                                    ("integer (numeric)hour (grain)", -3.624340932976365),+                                    ("integer (0..19)week (grain)", -2.70805020110221)],+                               n = 26},+                   koData =+                     ClassData{prior = -0.5322168137473082, unseen = -4.584967478670572,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.62880082944807),+                                    ("integer (0..19)year (grain)", -2.9652730660692823),+                                    ("integer (numeric)day (grain)", -3.4760986898352733),+                                    ("integer (0..19)hour (grain)", -3.8815637979434374),+                                    ("second", -2.9652730660692823),+                                    ("integer (numeric)second (grain)", -3.4760986898352733),+                                    ("integer (numeric)year (grain)", -3.4760986898352733),+                                    ("day", -2.3774864011671633), ("year", -2.62880082944807),+                                    ("integer (numeric)week (grain)", -3.188416617383492),+                                    ("integer (0..19)month (grain)", -2.9652730660692823),+                                    ("integer (0..19)second (grain)", -3.4760986898352733),+                                    ("hour", -3.188416617383492), ("month", -2.62880082944807),+                                    ("integer (numeric)minute (grain)", -3.4760986898352733),+                                    ("integer (0..19)minute (grain)", -3.4760986898352733),+                                    ("integer (numeric)month (grain)", -3.4760986898352733),+                                    ("minute", -2.9652730660692823),+                                    ("coupleday (grain)", -3.4760986898352733),+                                    ("integer (numeric)hour (grain)", -3.4760986898352733),+                                    ("integer (0..19)day (grain)", -2.9652730660692823),+                                    ("integer (0..19)week (grain)", -3.188416617383492)],+                               n = 37}}),+       ("Dienstag",+        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}}),+       ("ordinals (first..19th)",+        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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -1.845826690498331, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -2.0794415416798357),+                                    ("hh:mm", -2.0794415416798357),+                                    ("until <time-of-day>", -2.0794415416798357),+                                    ("hour", -1.6739764335716716), ("minute", -2.0794415416798357)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.17185025692665928,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.3513752571634776),+                                    ("<time-of-day>  o'clock", -2.3513752571634776),+                                    ("half <integer> (german style hour-of-day)",+                                     -3.044522437723423),+                                    ("about <time-of-day>", -3.044522437723423),+                                    ("time-of-day (latent)", -2.128231705849268),+                                    ("hh:mm", -2.3513752571634776), ("hour", -1.4350845252893227),+                                    ("minute", -1.6582280766035324),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -3.044522437723423)],+                               n = 16}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>christmas", -1.252762968495368),+                                    ("<integer> <unit-of-duration>christmas", -1.252762968495368),+                                    ("yearday", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.8472978603872037),+                                    ("integer (numeric)time-of-day (latent)", -1.252762968495368),+                                    ("integer (20..90)time-of-day (latent)", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mittwoch",+        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}}),+       ("Oktober",+        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}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9924301646902063),+                                    ("hour (grain)", -2.3978952727983707),+                                    ("year (grain)", -2.3978952727983707),+                                    ("second", -2.3978952727983707),+                                    ("week (grain)", -1.9924301646902063),+                                    ("minute (grain)", -2.3978952727983707),+                                    ("year", -2.3978952727983707),+                                    ("second (grain)", -2.3978952727983707),+                                    ("hour", -2.3978952727983707), ("minute", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dd.(mm.)? - dd.mm.(yy[yy]?)? (interval)",+        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}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -0.6190392084062235,+                               unseen = -3.6109179126442243,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 35},+                   koData =+                     ClassData{prior = -0.7731898882334817,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("quarter after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.5040773967762742),+                                    ("time-of-day (latent)", -1.0986122886681098),+                                    ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>time-of-day (latent)",+                                     -0.6931471805599453),+                                    ("minutehour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by ','",+        Classifier{okData =+                     ClassData{prior = -0.2531958963806117,+                               unseen = -5.0106352940962555,+                               likelihoods =+                                 HashMap.fromList+                                   [("Freitag<day-of-month>(ordinal) <named-month> year",+                                     -3.9053340172773496),+                                    ("dayhour", -2.8067217286092396),+                                    ("Freitagintersect", -2.0082140323914683),+                                    ("Samstag<day-of-month>(ordinal) <named-month>",+                                     -4.310799125385514),+                                    ("Freitagmm/dd/yyyy", -3.9053340172773496),+                                    ("Freitagmm/dd", -3.9053340172773496),+                                    ("dayday", -1.3403846598158127),+                                    ("Samstagintersect", -4.310799125385514),+                                    ("dayyear", -4.310799125385514),+                                    ("Freitag<day-of-month>(ordinal) <named-month>",+                                     -3.6176519448255684),+                                    ("Freitagthe <day-of-month> (ordinal)", -4.310799125385514),+                                    ("on <date><day-of-month>(ordinal) <named-month>",+                                     -3.9053340172773496),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -3.3945083935113587),+                                    ("Freitag<day-of-month> (ordinal)", -3.6176519448255684),+                                    ("on <date>intersect", -3.9053340172773496),+                                    ("on <date><day-of-month> (ordinal)", -3.9053340172773496),+                                    ("minuteday", -2.4389969484839225),+                                    ("Montag<named-month> <day-of-month> (non ordinal)",+                                     -3.6176519448255684),+                                    ("Sonntag<named-month> <day-of-month> (non ordinal)",+                                     -4.310799125385514),+                                    ("intersect<day-of-month> (ordinal)", -3.3945083935113587),+                                    ("intersectintersect", -3.3945083935113587),+                                    ("Samstag<day-of-month> (ordinal)", -4.310799125385514),+                                    ("Mittwoch<named-month> <day-of-month> (non ordinal)",+                                     -4.310799125385514),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -4.310799125385514)],+                               n = 59},+                   koData =+                     ClassData{prior = -1.497519996230115, unseen = -4.189654742026425,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.382627800667582),+                                    ("dayday", -3.481240089335692),+                                    ("SonntagFebruar", -3.481240089335692),+                                    ("MontagFebruar", -2.7880929087757464),+                                    ("Freitagthe <day-of-month> (non ordinal)", -3.481240089335692),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -2.7880929087757464),+                                    ("dayminute", -3.0757749812275272),+                                    ("MittwochFebruar", -3.481240089335692),+                                    ("minuteday", -1.8718021769015913),+                                    ("Freitaghh:mm", -3.0757749812275272),+                                    ("intersect<day-of-month> (ordinal)", -2.7880929087757464),+                                    ("intersectintersect", -2.7880929087757464)],+                               n = 17}}),+       ("second (grain)",+        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}}),+       ("Februar",+        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}}),+       ("intersect by 'of', 'from', 's",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -4.248495242049359,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.2881963555419462),+                                    ("intersectOktober", -3.1354942159291497),+                                    ("Mittwochintersect", -3.5409593240373143),+                                    ("on <date>hh:mm", -3.5409593240373143),+                                    ("dayday", -2.624668592163159),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",+                                     -3.5409593240373143),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",+                                     -3.5409593240373143),+                                    ("on <date><time-of-day> - <time-of-day> (interval)",+                                     -3.5409593240373143),+                                    ("on <date><datetime> - <datetime> (interval)",+                                     -3.5409593240373143),+                                    ("Donnerstaghh:mm", -3.1354942159291497),+                                    ("absorption of , after named day<day-of-month> (ordinal)",+                                     -3.5409593240373143),+                                    ("dayminute", -1.9315214116032136),+                                    ("Mittwochnext <cycle>", -3.5409593240373143),+                                    ("absorption of , after named dayintersect",+                                     -3.5409593240373143),+                                    ("DienstagOktober", -3.5409593240373143),+                                    ("MittwochOktober", -3.5409593240373143),+                                    ("intersectintersect", -3.5409593240373143),+                                    ("dayweek", -3.1354942159291497),+                                    ("Donnerstag<time-of-day> - <time-of-day> (interval)",+                                     -3.1354942159291497),+                                    ("Donnerstag<datetime> - <datetime> (interval)",+                                     -3.1354942159291497),+                                    ("Sonntaglast <cycle>", -3.5409593240373143)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.62924053973028),+                                    ("intersectOktober", -3.2386784521643803),+                                    ("Mittwochintersect", -3.2386784521643803),+                                    ("Dienstagintersect", -3.2386784521643803),+                                    ("DienstagSeptember", -3.2386784521643803),+                                    ("on <date><time-of-day> - <time-of-day> (interval)",+                                     -3.2386784521643803),+                                    ("MontagMarz", -3.2386784521643803),+                                    ("dayminute", -2.5455312716044354),+                                    ("SonntagMarz", -3.2386784521643803),+                                    ("intersectSeptember", -3.2386784521643803),+                                    ("MittwochOktober", -3.2386784521643803),+                                    ("Sonntagintersect", -3.2386784521643803),+                                    ("Donnerstag<time-of-day> - <time-of-day> (interval)",+                                     -2.833213344056216)],+                               n = 12}}),+       ("Donnerstag",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.4816045409242156), ("day", -1.9924301646902063),+                                    ("year", -2.3978952727983707),+                                    ("<integer> <unit-of-duration>", -1.0116009116784799),+                                    ("a <unit-of-duration>", -2.3978952727983707),+                                    ("month", -2.3978952727983707)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sonntag", -1.5040773967762742), ("day", -1.0986122886681098),+                                    ("Dienstag", -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8023464725249373),+                                    ("hour", -0.8023464725249373)],+                               n = 12}}),+       ("EOM|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}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.5520685823000397,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)", -1.6582280766035324),+                                    ("ordinal (digits)", -0.2113090936672069)],+                               n = 19},+                   koData =+                     ClassData{prior = -0.8574502318512216, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)", -0.8266785731844679),+                                    ("ordinal (digits)", -0.5753641449035618)],+                               n = 14}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -2.1316272948504063),+                                    ("<time-of-day>  o'clock", -2.2857779746776643),+                                    ("intersect", -3.3843902633457743),+                                    ("time-of-day (latent)", -2.1316272948504063),+                                    ("<time-of-day> am|pm", -3.3843902633457743),+                                    ("EOM|End of month", -3.3843902633457743),+                                    ("hour", -1.0330150061822965), ("month", -3.3843902633457743),+                                    ("midnight|EOD|end of day", -3.3843902633457743)],+                               n = 21},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("mm/dd", -2.70805020110221),+                                    ("intersect", -2.4203681286504293),+                                    ("mm/dd/yyyy", -2.70805020110221),+                                    ("<day-of-month>(ordinal) <named-month>", -3.1135153092103742),+                                    ("day", -1.4087672169719492), ("hh:mm", -2.1972245773362196),+                                    ("<day-of-month> (ordinal)", -3.1135153092103742),+                                    ("<day-of-month> (non ordinal) <named-month>",+                                     -3.1135153092103742),+                                    ("minute", -2.1972245773362196)],+                               n = 14}}),+       ("<integer> and an half hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (0..19)", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Nikolaus",+        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}}),+       ("evening",+        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}}),+       ("midnight|EOD|end of 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-of-day> until",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("Marz", -2.1972245773362196), ("Montag", -1.791759469228055),+                                    ("day", -1.0986122886681098), ("Dienstag", -1.791759469228055),+                                    ("Mittwoch", -2.1972245773362196),+                                    ("month", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.5040773967762742),+                                    ("month (grain)", -2.1972245773362196),+                                    ("year (grain)", -2.1972245773362196),+                                    ("week (grain)", -1.5040773967762742),+                                    ("year", -2.1972245773362196), ("month", -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("week (grain)", -1.791759469228055),+                                    ("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,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.740840023925201),+                                    ("integer (0..19)year (grain)", -3.028522096376982),+                                    ("integer (numeric)day (grain)", -3.4339872044851463),+                                    ("integer (0..19)hour (grain)", -3.4339872044851463),+                                    ("second", -3.028522096376982),+                                    ("integer (numeric)second (grain)", -3.4339872044851463),+                                    ("integer (numeric)year (grain)", -3.4339872044851463),+                                    ("day", -2.3353749158170367), ("year", -2.740840023925201),+                                    ("integer (numeric)week (grain)", -3.4339872044851463),+                                    ("integer (0..19)month (grain)", -3.028522096376982),+                                    ("integer (0..19)second (grain)", -3.4339872044851463),+                                    ("hour", -3.028522096376982), ("month", -2.740840023925201),+                                    ("integer (numeric)minute (grain)", -3.4339872044851463),+                                    ("integer (0..19)minute (grain)", -3.4339872044851463),+                                    ("integer (numeric)month (grain)", -3.4339872044851463),+                                    ("minute", -3.028522096376982),+                                    ("coupleday (grain)", -3.028522096376982),+                                    ("integer (numeric)hour (grain)", -3.4339872044851463),+                                    ("integer (0..19)day (grain)", -3.028522096376982),+                                    ("integer (0..19)week (grain)", -3.028522096376982)],+                               n = 20},+                   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,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.0986122886681098),+                                    ("hh:mm", -1.791759469228055), ("hour", -1.0986122886681098),+                                    ("minute", -1.791759469228055)],+                               n = 4}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.07753744390572,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6741486494265287),+                                    ("number.number hours", -3.367295829986474),+                                    ("second", -2.9618307218783095), ("day", -2.9618307218783095),+                                    ("half an hour", -3.367295829986474),+                                    ("year", -3.367295829986474),+                                    ("<integer> <unit-of-duration>", -1.2878542883066382),+                                    ("a <unit-of-duration>", -2.451005098112319),+                                    ("<integer> and an half hours", -3.367295829986474),+                                    ("hour", -2.268683541318364), ("minute", -1.6625477377480489),+                                    ("about <duration>", -3.367295829986474)],+                               n = 23},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.9694005571881036, unseen = -4.189654742026425,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -3.481240089335692),+                                    ("on <date>hh:mm", -3.481240089335692),+                                    ("minuteminute", -1.6894806201076367),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -3.0757749812275272),+                                    ("hh:mmhh:mm", -2.228477120840324),+                                    ("dayday", -1.6894806201076367),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -3.0757749812275272),+                                    ("intersect by 'of', 'from', 'shh:mm", -2.7880929087757464),+                                    ("mm/ddmm/dd", -2.094945728215801)],+                               n = 22},+                   koData =+                     ClassData{prior = -0.4769240720903093, unseen = -4.543294782270004,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal)<day-of-month>(ordinal) <named-month>",+                                     -3.4339872044851463),+                                    ("<named-month> <day-of-month> (non ordinal)Juli",+                                     -3.8394523125933104),+                                    ("daymonth", -3.4339872044851463),+                                    ("mm/ddmm/dd/yyyy", -2.5866893440979424),+                                    ("<day-of-month> (ordinal)mm/dd", -2.9231615807191553),+                                    ("mm/ddhh:mm", -2.45315795147342),+                                    ("dayday", -1.3545456628053103),+                                    ("<day-of-month> (ordinal)intersect", -3.146305132033365),+                                    ("<day-of-month> (ordinal)hh:mm", -2.9231615807191553),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.8394523125933104),+                                    ("mm/ddintersect", -2.5866893440979424),+                                    ("dayminute", -2.0476928433652555),+                                    ("<day-of-month> (ordinal)mm/dd/yyyy", -3.4339872044851463)],+                               n = 36}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8266785731844679, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.916290731874155),+                                    ("hh:mmhh:mm", -0.916290731874155)],+                               n = 7},+                   koData =+                     ClassData{prior = -0.5753641449035618,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.2321436812926323),+                                    ("hourminute", -1.791759469228055),+                                    ("minutehour", -1.2321436812926323),+                                    ("time-of-day (latent)hh:mm", -1.791759469228055)],+                               n = 9}}),+       ("sommer",+        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}}),+       ("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}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5257286443082556),+                                    ("integer (0..19)year (grain)", -2.8134107167600364),+                                    ("integer (numeric)day (grain)", -3.2188758248682006),+                                    ("second", -2.8134107167600364),+                                    ("integer (numeric)second (grain)", -3.2188758248682006),+                                    ("integer (numeric)year (grain)", -3.2188758248682006),+                                    ("day", -2.5257286443082556), ("year", -2.5257286443082556),+                                    ("integer (numeric)week (grain)", -2.8134107167600364),+                                    ("integer (0..19)month (grain)", -2.8134107167600364),+                                    ("integer (0..19)second (grain)", -3.2188758248682006),+                                    ("month", -2.5257286443082556),+                                    ("integer (numeric)minute (grain)", -3.2188758248682006),+                                    ("integer (0..19)minute (grain)", -3.2188758248682006),+                                    ("integer (numeric)month (grain)", -3.2188758248682006),+                                    ("minute", -2.8134107167600364),+                                    ("integer (0..19)day (grain)", -2.8134107167600364),+                                    ("integer (0..19)week (grain)", -3.2188758248682006)],+                               n = 16},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> after <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)Dienstagintersect", -0.916290731874155),+                                    ("dayday", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..19th)Dienstagchristmas",+                                     -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.12516314295400605,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.1972245773362196),+                                    ("Marzinteger (numeric)", -2.4849066497880004),+                                    ("Februarinteger (numeric)", -1.5040773967762742),+                                    ("Aprilinteger (numeric)", -2.890371757896165),+                                    ("month", -0.8109302162163288),+                                    ("Juliinteger (numeric)", -2.4849066497880004)],+                               n = 15},+                   koData =+                     ClassData{prior = -2.1400661634962708,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Aprilinteger (numeric)", -1.6094379124341003),+                                    ("month", -1.2039728043259361),+                                    ("Juliinteger (numeric)", -1.6094379124341003)],+                               n = 2}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Marz", -1.5040773967762742),+                                    ("integer (numeric)April", -1.5040773967762742),+                                    ("month", -1.0986122886681098)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)August", -1.8718021769015913),+                                    ("month", -0.9555114450274363),+                                    ("integer (numeric)Juli", -1.1786549963416462)],+                               n = 4}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Montag", -1.3862943611198906), ("day", -0.8266785731844679),+                                    ("Dienstag", -1.6739764335716716),+                                    ("Mittwoch", -2.0794415416798357)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> after",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("quarter (grain)",+        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 <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.540445040947149),+                                    ("day (grain)intersect", -1.9459101490553135),+                                    ("weekmonth", -1.540445040947149),+                                    ("day (grain)Oktober", -1.9459101490553135),+                                    ("week (grain)intersect", -1.9459101490553135),+                                    ("week (grain)September", -1.9459101490553135)],+                               n = 4},+                   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 = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)Juli", -1.0116009116784799),+                                    ("ordinal (digits)April", -1.7047480922384253),+                                    ("month", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Samstag",+        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}}),+       ("morning",+        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}}),+       ("week-end",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.540445040947149),+                                    ("time-of-day (latent)", -1.540445040947149),+                                    ("hour", -0.9343092373768334)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -2.3025850929940455),+                                    ("intersect", -2.3025850929940455),+                                    ("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)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <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}}),+       ("<hour-of-day> <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7731898882334817),+                                    ("at <time-of-day>integer (numeric)", -1.8718021769015913),+                                    ("<time-of-day>  o'clockinteger (numeric)",+                                     -0.9555114450274363)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Montag", -1.9459101490553135), ("day", -1.252762968495368),+                                    ("hour", -1.9459101490553135), ("sommer", -1.9459101490553135),+                                    ("winter", -1.9459101490553135),+                                    ("week-end", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("before yesterday",+        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",+        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}})]
− Duckling/Ranking/Classifiers/EN.hs
@@ -1,2190 +0,0 @@--- 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.EN (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<integer> to|till|before <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.791759469228055, 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.1823215567939546, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7731898882334817),-                                    ("integer (numeric)time-of-day (latent)", -0.7731898882334817)],-                               n = 5}}),-       ("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.7047480922384253),-                                    ("<time-of-day> am|pm", -1.7047480922384253),-                                    ("hh:mm", -1.7047480922384253), ("hour", -1.2992829841302609),-                                    ("minute", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thursday",-        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 (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.8649974374866046,-                               unseen = -5.0369526024136295,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 152},-                   koData =-                     ClassData{prior = -0.5465437063680699, unseen = -5.351858133476067,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 209}}),-       ("<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.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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 = -0.916290731874155, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.6094379124341003),-                                    ("integer (numeric)April", -1.6094379124341003),-                                    ("month", -1.2039728043259361)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)August", -1.791759469228055),-                                    ("ordinal (digits)April", -1.791759469228055),-                                    ("month", -1.0986122886681098),-                                    ("integer (numeric)July", -1.791759469228055)],-                               n = 3}}),-       ("<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.3862943611198906,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.10919929196499197,-                               unseen = -4.7535901911063645,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -3.6463198396951406),-                                    ("integer after|past <hour-of-day>", -3.6463198396951406),-                                    ("half after|past <hour-of-day>", -4.051784947803305),-                                    ("time-of-day (latent)", -1.8004931491968097),-                                    ("hhmm (latent)", -3.3586377672433594),-                                    ("<time-of-day> am|pm", -1.749199854809259),-                                    ("hh:mm", -3.1354942159291497),-                                    ("about|exactly <time-of-day>", -3.6463198396951406),-                                    ("hour", -1.16141318990714),-                                    ("<time-of-day> sharp|exactly", -4.051784947803305),-                                    ("minute", -1.8545603704670852)],-                               n = 52},-                   koData =-                     ClassData{prior = -2.268683541318364, unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.1895840668738362),-                                    ("hour", -1.1895840668738362)],-                               n = 6}}),-       ("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 = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   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}}),-       ("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 = -2.469261259037152e-2,-                               unseen = -3.7376696182833684,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 40},-                   koData =-                     ClassData{prior = -3.713572066704308, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("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 = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("October",-        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}}),-       ("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.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   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 = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],-                               n = 3}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.4563567154045537, unseen = -6.124683390894205,-                               likelihoods =-                                 HashMap.fromList-                                   [("<datetime> - <datetime> (interval)on <date>",-                                     -4.513054897080286),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.513054897080286),-                                    ("hourday", -3.724597536716016),-                                    ("dayhour", -3.1780538303479458),-                                    ("daymonth", -5.429345628954441),-                                    ("monthday", -5.0238805208462765),-                                    ("monthyear", -3.8199077165203406),-                                    ("Tuesdaythe <day-of-month> (ordinal)", -5.429345628954441),-                                    ("Christmasyear", -5.429345628954441),-                                    ("houryear", -5.429345628954441),-                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",-                                     -5.429345628954441),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.736198448394496),-                                    ("<time-of-day> am|pmintersect", -4.176582660459073),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",-                                     -5.429345628954441),-                                    ("Marchyear", -5.429345628954441),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year",-                                     -5.0238805208462765),-                                    ("intersect<time-of-day> am|pm", -5.429345628954441),-                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.429345628954441),-                                    ("monthhour", -5.0238805208462765),-                                    ("last <day-of-week> of <time>year", -5.429345628954441),-                                    ("todayat <time-of-day>", -5.429345628954441),-                                    ("Thursday<time> timezone", -5.0238805208462765),-                                    ("this <time>hh(:mm) - <time-of-day> am|pm",-                                     -5.429345628954441),-                                    ("dayday", -3.414442608412176),-                                    ("Thanksgiving Dayyear", -5.0238805208462765),-                                    ("<time> <part-of-day>at <time-of-day>", -5.429345628954441),-                                    ("Tuesdayin <named-month>", -5.429345628954441),-                                    ("mm/ddat <time-of-day>", -5.429345628954441),-                                    ("tonightat <time-of-day>", -5.429345628954441),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -4.736198448394496),-                                    ("today<time-of-day> am|pm", -5.429345628954441),-                                    ("Februarythe <day-of-month> (ordinal)", -5.0238805208462765),-                                    ("at <time-of-day><time> <part-of-day>", -5.429345628954441),-                                    ("mm/dd<time-of-day> am|pm", -5.429345628954441),-                                    ("hourhour", -4.176582660459073),-                                    ("<time-of-day> am|pmon <date>", -3.414442608412176),-                                    ("Wednesdaythis|last|next <cycle>", -5.429345628954441),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.925268232178167),-                                    ("dayyear", -3.2321210516182215),-                                    ("last weekend of <named-month>year", -5.429345628954441),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -5.429345628954441),-                                    ("<time-of-day> am|pmtomorrow", -4.736198448394496),-                                    ("minutehour", -4.513054897080286),-                                    ("Mother's Dayyear", -5.429345628954441),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.0238805208462765),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -3.724597536716016),-                                    ("tomorrow<time-of-day> sharp|exactly", -5.429345628954441),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -4.513054897080286),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -5.0238805208462765),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.513054897080286),-                                    ("Mondayin|during the <part-of-day>", -5.429345628954441),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.0238805208462765),-                                    ("intersectin|during the <part-of-day>", -5.429345628954441),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -5.429345628954441),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.736198448394496),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -4.513054897080286),-                                    ("at <time-of-day>intersect", -5.0238805208462765),-                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",-                                     -5.429345628954441),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.429345628954441),-                                    ("dayminute", -3.126760535960395),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.0238805208462765),-                                    ("<datetime> - <datetime> (interval)tomorrow",-                                     -5.429345628954441),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.0238805208462765),-                                    ("<ordinal> <cycle> of <time>year", -5.429345628954441),-                                    ("minuteday", -2.0281482472922856),-                                    ("absorption of , after named dayintersect",-                                     -5.429345628954441),-                                    ("Octoberyear", -4.176582660459073),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -5.429345628954441),-                                    ("at <time-of-day>absorption of , after named day",-                                     -5.429345628954441),-                                    ("<day-of-month> (ordinal or number) <named-month>year",-                                     -5.429345628954441),-                                    ("year<time-of-day> am|pm", -5.429345628954441),-                                    ("Septemberyear", -5.0238805208462765),-                                    ("at <time-of-day>on <date>", -4.330733340286331),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -4.736198448394496),-                                    ("Halloweenyear", -5.429345628954441),-                                    ("dayweek", -5.429345628954441),-                                    ("weekyear", -5.0238805208462765),-                                    ("hh:mmin|during the <part-of-day>", -4.736198448394496),-                                    ("Father's Dayyear", -5.429345628954441),-                                    ("<cycle> after|before <time><time-of-day> am|pm",-                                     -5.0238805208462765),-                                    ("February<time> <part-of-day>", -5.429345628954441),-                                    ("Martin Luther King's Dayyear", -5.0238805208462765),-                                    ("tomorrowat <time-of-day>", -4.736198448394496),-                                    ("between <time> and <time>on <date>", -4.736198448394496),-                                    ("at <time-of-day>tomorrow", -5.0238805208462765),-                                    ("tomorrow<time-of-day> am|pm", -5.429345628954441),-                                    ("in|during the <part-of-day>at <time-of-day>",-                                     -5.429345628954441),-                                    ("Labor Dayyear", -5.429345628954441),-                                    ("Februaryintersect", -5.429345628954441),-                                    ("last <cycle> of <time>year", -4.736198448394496),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -5.429345628954441),-                                    ("yearminute", -5.429345628954441)],-                               n = 166},-                   koData =-                     ClassData{prior = -1.0039963122932607, unseen = -5.75890177387728,-                               likelihoods =-                                 HashMap.fromList-                                   [("in <named-month>year", -5.062595033026967),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.062595033026967),-                                    ("hourday", -5.062595033026967),-                                    ("<named-month> <day-of-month> (non ordinal)July",-                                     -5.062595033026967),-                                    ("dayhour", -3.270835563798912),-                                    ("daymonth", -3.047692012484702),-                                    ("monthday", -4.657129924918802),-                                    ("monthyear", -4.3694478524670215),-                                    ("intersecthh:mm", -5.062595033026967),-                                    ("houryear", -5.062595033026967),-                                    ("until <time-of-day><time-of-day> am|pm", -5.062595033026967),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.3694478524670215),-                                    ("<time-of-day> am|pmintersect", -3.809832064531599),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",-                                     -4.146304301152812),-                                    ("Tuesdayafter <time-of-day>", -5.062595033026967),-                                    ("July<day-of-month> (ordinal or number) <named-month>",-                                     -5.062595033026967),-                                    ("absorption of , after named dayJuly", -4.657129924918802),-                                    ("monthhour", -4.657129924918802),-                                    ("hourmonth", -5.062595033026967),-                                    ("todayat <time-of-day>", -5.062595033026967),-                                    ("dayday", -4.657129924918802),-                                    ("mm/ddat <time-of-day>", -4.657129924918802),-                                    ("<time-of-day> am|pmon <date>", -3.809832064531599),-                                    ("dayyear", -4.146304301152812),-                                    ("Thursdaymm/dd", -5.062595033026967),-                                    ("Thursdayat <time-of-day>", -5.062595033026967),-                                    ("August<time-of-day> am|pm", -5.062595033026967),-                                    ("monthminute", -5.062595033026967),-                                    ("<time-of-day> am|pmtomorrow", -5.062595033026967),-                                    ("Thursdayhh:mm", -5.062595033026967),-                                    ("August<day-of-month> (ordinal or number) <named-month>",-                                     -5.062595033026967),-                                    ("minutemonth", -3.5585176362506927),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -4.657129924918802),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.657129924918802),-                                    ("Aprilyear", -5.062595033026967),-                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",-                                     -4.657129924918802),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.062595033026967),-                                    ("yesterday<time-of-day> am|pm", -5.062595033026967),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -4.146304301152812),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.062595033026967),-                                    ("until <time-of-day>on <date>", -4.3694478524670215),-                                    ("at <time-of-day>intersect", -4.657129924918802),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.062595033026967),-                                    ("dayminute", -3.1166848839716534),-                                    ("intersectSeptember", -3.5585176362506927),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.062595033026967),-                                    ("minuteday", -2.259234652120432),-                                    ("absorption of , after named dayintersect",-                                     -5.062595033026967),-                                    ("Februaryin|during the <part-of-day>", -5.062595033026967),-                                    ("week-endin <named-month>", -5.062595033026967),-                                    ("Octoberyear", -5.062595033026967),-                                    ("yearhh:mm", -5.062595033026967),-                                    ("hh:mmon <date>", -3.5585176362506927),-                                    ("absorption of , after named daySeptember",-                                     -4.146304301152812),-                                    ("on <date>September", -4.657129924918802),-                                    ("at <time-of-day>on <date>", -4.657129924918802),-                                    ("absorption of , after named dayFebruary", -4.146304301152812),-                                    ("July<integer> to|till|before <hour-of-day>",-                                     -5.062595033026967),-                                    ("tomorrowat <time-of-day>", -5.062595033026967),-                                    ("tomorrow<time-of-day> am|pm", -5.062595033026967),-                                    ("after <time-of-day><time-of-day> am|pm", -5.062595033026967),-                                    ("after <time-of-day>year", -5.062595033026967),-                                    ("yearminute", -5.062595033026967)],-                               n = 96}}),-       ("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.041453874828161, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.5596157879354228),-                                    ("integer (0..19)", -0.8472978603872037)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.4353180712578455,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3448404862917295),-                                    ("integer (0..19)", -1.2321436812926323)],-                               n = 22}}),-       ("<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.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.5686159179138452),-                                    ("hh:mmhh:mm", -1.5686159179138452),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -2.4849066497880004),-                                    ("hourhour", -2.0794415416798357),-                                    ("<time-of-day> am|pm<time-of-day> am|pm",-                                     -2.4849066497880004)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.70805020110221),-                                    ("hh:mmtime-of-day (latent)", -1.791759469228055),-                                    ("minuteminute", -2.3025850929940455),-                                    ("time-of-day (latent)time-of-day (latent)", -2.70805020110221),-                                    ("hourhour", -2.3025850929940455),-                                    ("minutehour", -1.791759469228055),-                                    ("hh:mmintersect", -2.3025850929940455),-                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221),-                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",-                                     -2.70805020110221)],-                               n = 9}}),-       ("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.6359887667199967,-                               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.7537718023763802, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.540445040947149),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.2335922215070942),-                                    ("hourhour", -1.9459101490553135),-                                    ("minutehour", -1.540445040947149),-                                    ("time-of-day (latent)<time-of-day> am|pm",-                                     -2.639057329615259)],-                               n = 8}}),-       ("integer 21..99",-        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)integer (numeric)", 0.0)],-                               n = 2}}),-       ("last|next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.430816798843313,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.627081138568543),-                                    ("integer (0..19)year (grain)", -3.3202283191284883),-                                    ("integer (numeric)day (grain)", -3.0325462466767075),-                                    ("integer (0..19)second (grain) ", -3.3202283191284883),-                                    ("integer (0..19)hour (grain)", -3.3202283191284883),-                                    ("second", -2.8094026953624978),-                                    ("integer (numeric)second (grain) ", -3.3202283191284883),-                                    ("integer (numeric)year (grain)", -3.3202283191284883),-                                    ("day", -2.472930458741285), ("year", -2.8094026953624978),-                                    ("integer (numeric)week (grain)", -3.0325462466767075),-                                    ("integer (0..19)month (grain)", -3.3202283191284883),-                                    ("hour", -2.8094026953624978), ("month", -2.8094026953624978),-                                    ("integer (numeric)minute (grain)", -3.3202283191284883),-                                    ("integer (0..19)minute (grain)", -3.3202283191284883),-                                    ("integer (numeric)month (grain)", -3.3202283191284883),-                                    ("minute", -2.8094026953624978),-                                    ("integer (numeric)hour (grain)", -3.3202283191284883),-                                    ("integer (0..19)day (grain)", -3.0325462466767075),-                                    ("integer (0..19)week (grain)", -3.3202283191284883)],-                               n = 31},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               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}}),-       ("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 = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>integer (numeric)",-                                     -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               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.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("now",-        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}}),-       ("<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.0, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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.16251892949777494,-                               unseen = -4.3694478524670215,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5234954826333758),-                                    ("month (grain)", -2.9704144655697013),-                                    ("year (grain)", -1.8718021769015913),-                                    ("week (grain)", -1.5234954826333758),-                                    ("quarter", -2.7472709142554916), ("year", -1.8718021769015913),-                                    ("month", -2.9704144655697013),-                                    ("quarter (grain)", -2.7472709142554916)],-                               n = 34},-                   koData =-                     ClassData{prior = -1.8971199848858813,-                               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.5108256237659907, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.10178269430994236),-                                    ("integer (0..19)", -2.3353749158170367)],-                               n = 60},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -2.409755157906053e-2)],-                               n = 40}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.24362208265775043,-                               unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 29},-                   koData =-                     ClassData{prior = -1.5314763709643884,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 8}}),-       ("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.758529939822797, unseen = -4.584967478670572,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.3774864011671633),-                                    ("integer (0..19)year (grain)", -3.188416617383492),-                                    ("integer (numeric)day (grain)", -2.62880082944807),-                                    ("integer (0..19)second (grain) ", -3.8815637979434374),-                                    ("integer (0..19)hour (grain)", -2.782951509275328),-                                    ("second", -3.8815637979434374),-                                    ("integer (numeric)year (grain)", -3.8815637979434374),-                                    ("day", -2.62880082944807), ("year", -2.9652730660692823),-                                    ("integer (numeric)week (grain)", -2.9652730660692823),-                                    ("integer (0..19)month (grain)", -3.4760986898352733),-                                    ("hour", -2.495269436823547), ("month", -3.4760986898352733),-                                    ("integer (numeric)minute (grain)", -2.9652730660692823),-                                    ("integer (0..19)minute (grain)", -2.782951509275328),-                                    ("minute", -2.2721258855093374),-                                    ("integer (numeric)hour (grain)", -3.4760986898352733),-                                    ("integer (0..19)week (grain)", -2.9652730660692823)],-                               n = 37},-                   koData =-                     ClassData{prior = -0.6317782341836533, unseen = -4.68213122712422,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.8810693652338513),-                                    ("integer (0..19)year (grain)", -3.5742165457937967),-                                    ("integer (numeric)day (grain)", -3.2865344733420154),-                                    ("integer (0..19)second (grain) ", -3.5742165457937967),-                                    ("integer (0..19)hour (grain)", -3.5742165457937967),-                                    ("second", -3.0633909220278057),-                                    ("integer (numeric)second (grain) ", -3.5742165457937967),-                                    ("integer (numeric)year (grain)", -3.5742165457937967),-                                    ("day", -2.7269186854065928), ("quarter", -3.979681653901961),-                                    ("year", -3.0633909220278057),-                                    ("integer (numeric)week (grain)", -3.2865344733420154),-                                    ("integer (0..19)month (grain)", -3.5742165457937967),-                                    ("hour", -1.9647786333596962), ("month", -3.0633909220278057),-                                    ("integer (numeric)minute (grain)", -3.5742165457937967),-                                    ("integer (0..19)minute (grain)", -3.5742165457937967),-                                    ("integer (numeric)month (grain)", -3.5742165457937967),-                                    ("minute", -3.0633909220278057),-                                    ("integer (numeric)hour (grain)", -2.1078794770003695),-                                    ("integer (0..19)day (grain)", -3.2865344733420154),-                                    ("integer (0..19)week (grain)", -3.5742165457937967),-                                    ("integer (0..19)quarter (grain)", -3.979681653901961)],-                               n = 42}}),-       ("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.29354719190417905,-                               unseen = -5.231108616854587,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer after|past <hour-of-day>", -3.8394523125933104),-                                    ("at <time-of-day>", -2.2300144001592104),-                                    ("<time-of-day> o'clock", -4.127134385045092),-                                    ("half after|past <hour-of-day>", -4.127134385045092),-                                    ("time-of-day (latent)", -1.7600107709134747),-                                    ("hhmm (latent)", -4.532599493153256),-                                    ("hh:mm", -2.181224235989778),-                                    ("quarter after|past <hour-of-day>", -4.532599493153256),-                                    ("about|exactly <time-of-day>", -4.532599493153256),-                                    ("until <time-of-day>", -3.8394523125933104),-                                    ("hour", -1.2939210409888755),-                                    ("<time-of-day> sharp|exactly", -4.532599493153256),-                                    ("minute", -1.6422277352570913),-                                    ("after <time-of-day>", -4.532599493153256)],-                               n = 85},-                   koData =-                     ClassData{prior = -1.3689026184080213, unseen = -4.31748811353631,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.20545280453606),-                                    ("<hour-of-day> <integer>", -3.6109179126442243),-                                    ("time-of-day (latent)", -1.0459685551826876),-                                    ("hour", -1.0082282271998406), ("minute", -2.917770732084279),-                                    ("after <time-of-day>", -3.6109179126442243)],-                               n = 29}}),-       ("Thanksgiving 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}}),-       ("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.6286086594223742,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.0149030205422647),-                                    ("year (grain)", -2.70805020110221),-                                    ("second", -2.70805020110221),-                                    ("week (grain)", -2.0149030205422647),-                                    ("day", -2.3025850929940455),-                                    ("minute (grain)", -2.70805020110221),-                                    ("year", -2.70805020110221),-                                    ("second (grain) ", -2.70805020110221),-                                    ("minute", -2.70805020110221),-                                    ("day (grain)", -2.3025850929940455)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.7621400520468967, 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.406722127027582e-2,-                               unseen = -4.02535169073515,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 54},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               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-                                   [("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.4769240720903093, unseen = -5.147494476813453,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -4.448516375942715),-                                    ("dayhour", -3.1957534074473464),-                                    ("daymonth", -3.1957534074473464),-                                    ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -4.448516375942715),-                                    ("Friday<named-month> <day-of-month> (non ordinal)",-                                     -3.7553691953827695),-                                    ("Wednesdayintersect", -4.448516375942715),-                                    ("Labor Daythis|last|next <cycle>", -4.448516375942715),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",-                                     -4.448516375942715),-                                    ("<part-of-day> of <time>February", -4.448516375942715),-                                    ("Saturday<time-of-day> am|pm", -4.448516375942715),-                                    ("Martin Luther King's Daythis|last|next <cycle>",-                                     -4.448516375942715),-                                    ("on <date><time-of-day> am|pm", -4.448516375942715),-                                    ("hourmonth", -4.448516375942715),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",-                                     -4.448516375942715),-                                    ("dayday", -2.576714199041123),-                                    ("the <day-of-month> (ordinal)February", -4.04305126783455),-                                    ("WednesdayOctober", -4.448516375942715),-                                    ("Wednesdaythis|last|next <cycle>", -4.04305126783455),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.5322256440685593),-                                    ("dayyear", -2.9444389791664407),-                                    ("Saturday<named-month> <day-of-month> (non ordinal)",-                                     -4.448516375942715),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -4.448516375942715),-                                    ("Thursdayhh:mm", -4.04305126783455),-                                    ("Thanksgiving Daythis|last|next <cycle>", -4.448516375942715),-                                    ("Memorial Daythis|last|next <cycle>", -4.448516375942715),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -4.04305126783455),-                                    ("TuesdayOctober", -4.448516375942715),-                                    ("the <day-of-month> (ordinal)March", -4.448516375942715),-                                    ("Mondaythis|last|next <cycle>", -4.448516375942715),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.04305126783455),-                                    ("Fridayintersect", -4.448516375942715),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -3.7553691953827695),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.5322256440685593),-                                    ("Tuesdaythis|last|next <cycle>", -4.448516375942715),-                                    ("Sunday<named-month> <day-of-month> (non ordinal)",-                                     -4.448516375942715),-                                    ("dayminute", -2.6567569067146595),-                                    ("intersectyear", -4.448516375942715),-                                    ("minuteday", -3.5322256440685593),-                                    ("this|last|next <cycle>Sunday", -4.448516375942715),-                                    ("Sundaythis|last|next <cycle>", -4.448516375942715),-                                    ("intersectintersect", -4.448516375942715),-                                    ("weekday", -4.448516375942715),-                                    ("dayweek", -3.349904087274605),-                                    ("Thursday<time-of-day> am|pm", -4.448516375942715),-                                    ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -4.04305126783455),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -4.04305126783455)],-                               n = 54},-                   koData =-                     ClassData{prior = -0.9694005571881036, unseen = -4.867534450455582,-                               likelihoods =-                                 HashMap.fromList-                                   [("week-endJuly", -4.1666652238017265),-                                    ("week-endOctober", -3.4735180432417816),-                                    ("daymonth", -1.9694406464655074),-                                    ("TuesdaySeptember", -4.1666652238017265),-                                    ("Wednesdayintersect", -4.1666652238017265),-                                    ("hourmonth", -3.068052935133617),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"intersect",-                                     -4.1666652238017265),-                                    ("SundayFebruary", -4.1666652238017265),-                                    ("WednesdayOctober", -4.1666652238017265),-                                    ("week-endintersect", -4.1666652238017265),-                                    ("FridayJuly", -3.7612001156935624),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -4.1666652238017265),-                                    ("FridaySeptember", -4.1666652238017265),-                                    ("WednesdayFebruary", -4.1666652238017265),-                                    ("minutemonth", -3.250374491927572),-                                    ("SundayMarch", -4.1666652238017265),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.1666652238017265),-                                    ("MondayFebruary", -3.7612001156935624),-                                    ("Fridayintersect", -4.1666652238017265),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.7612001156935624),-                                    ("dayminute", -2.780370862681836),-                                    ("SaturdaySeptember", -4.1666652238017265),-                                    ("intersectSeptember", -3.250374491927572),-                                    ("MondayMarch", -4.1666652238017265),-                                    ("on <date>September", -3.7612001156935624),-                                    ("intersectintersect", -4.1666652238017265),-                                    ("Tuesdayintersect", -4.1666652238017265),-                                    ("Sundayintersect", -4.1666652238017265)],-                               n = 33}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("Father's Day", -2.5649493574615367),-                                    ("Martin Luther King's Day", -2.5649493574615367),-                                    ("Memorial Day", -2.5649493574615367),-                                    ("Mother's Day", -2.5649493574615367),-                                    ("day", -1.3121863889661687), ("Sunday", -2.5649493574615367),-                                    ("hour", -2.5649493574615367), ("Tuesday", -2.5649493574615367),-                                    ("week-end", -2.5649493574615367)],-                               n = 7},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.995732273553991),-                                    ("Monday", -2.995732273553991), ("day", -2.0794415416798357),-                                    ("Sunday", -2.995732273553991),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -1.742969305058623),-                                    ("hour", -1.2909841813155656),-                                    ("week-end", -1.8971199848858813)],-                               n = 14}}),-       ("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.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("Octoberordinal (digits)", -1.9459101490553135),-                                    ("Thursdayordinal (digits)", -2.3513752571634776),-                                    ("day", -1.9459101490553135),-                                    ("Marchordinals (first..twentieth,thirtieth,...)",-                                     -1.9459101490553135),-                                    ("Tuesdayordinal (digits)", -2.3513752571634776),-                                    ("month", -1.252762968495368),-                                    ("Marchordinal (digits)", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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.0986122886681098,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 1},-                   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}}),-       ("<duration> after|before|from <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>now", -2.3513752571634776),-                                    ("a <unit-of-duration>Christmas", -2.3513752571634776),-                                    ("<integer> <unit-of-duration>today", -2.3513752571634776),-                                    ("secondsecond", -2.3513752571634776),-                                    ("daysecond", -2.3513752571634776),-                                    ("<integer> <unit-of-duration>Christmas", -2.3513752571634776),-                                    ("yearday", -1.6582280766035324),-                                    ("minutesecond", -2.3513752571634776),-                                    ("<integer> <unit-of-duration>now", -1.9459101490553135)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("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}}),-       ("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}}),-       ("negative numbers",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 21}}),-       ("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.48550781578170077,-                               unseen = -3.891820298110627,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.4733057381095205),-                                    ("hh:mmhh:mm", -1.6739764335716716),-                                    ("dayday", -2.772588722239781),-                                    ("hourhour", -2.2617630984737906),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -2.772588722239781),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -2.772588722239781),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -3.1780538303479458),-                                    ("<time-of-day> am|pm<time-of-day> am|pm",-                                     -2.4849066497880004)],-                               n = 16},-                   koData =-                     ClassData{prior = -0.9555114450274363,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (non ordinal)July",-                                     -2.890371757896165),-                                    ("daymonth", -2.4849066497880004),-                                    ("<time-of-day> am|pmintersect", -2.890371757896165),-                                    ("hh:mm<time-of-day> am|pm", -2.4849066497880004),-                                    ("minuteminute", -1.9740810260220096),-                                    ("hourhour", -2.4849066497880004),-                                    ("minutehour", -2.4849066497880004),-                                    ("hh:mmintersect", -1.9740810260220096),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -2.890371757896165),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -2.890371757896165)],-                               n = 10}}),-       ("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}}),-       ("<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.8873031950009028,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.5163474893680884),-                                    ("hh:mmhh:mm", -1.5163474893680884),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.327277705584417),-                                    ("hourhour", -1.7676619176489945),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.327277705584417)],-                               n = 14},-                   koData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>time-of-day (latent)",-                                     -3.2771447329921766),-                                    ("hh:mmtime-of-day (latent)", -1.5723966407537513),-                                    ("hh:mm<time-of-day> am|pm", -2.871679624884012),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -3.2771447329921766),-                                    ("at <time-of-day><time-of-day> am|pm", -3.2771447329921766),-                                    ("hourhour", -2.0243817644968085),-                                    ("minutehour", -1.262241712449912),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.2771447329921766),-                                    ("at <time-of-day>time-of-day (latent)", -2.871679624884012),-                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",-                                     -2.871679624884012)],-                               n = 20}}),-       ("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.2876820724517809,-                               unseen = -3.9318256327243257,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.5257286443082556),-                                    ("Marchinteger (numeric)", -2.8134107167600364),-                                    ("Aprilinteger (numeric)", -3.2188758248682006),-                                    ("month", -0.8209805520698302),-                                    ("Februaryinteger (numeric)", -1.9661128563728327),-                                    ("Septemberinteger (numeric)", -2.8134107167600364),-                                    ("Octoberinteger (numeric)", -2.8134107167600364),-                                    ("Julyinteger (numeric)", -2.120263536200091)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("Marchinteger (numeric)", -2.3978952727983707),-                                    ("Aprilinteger (numeric)", -2.3978952727983707),-                                    ("month", -1.0116009116784799),-                                    ("Julyinteger (numeric)", -1.2992829841302609)],-                               n = 7}}),-       ("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.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   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}}),-       ("seasons",-        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-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}}),-       ("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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.7047480922384253),-                                    ("<time-of-day> am|pm", -1.7047480922384253),-                                    ("hour", -1.2992829841302609)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.03688192726104),-                                    ("tomorrow", -2.03688192726104), ("day", -1.3437347467010947),-                                    ("time-of-day (latent)", -2.4423470353692043),-                                    ("<time-of-day> am|pm", -2.4423470353692043),-                                    ("Christmas", -2.03688192726104), ("hour", -1.749199854809259)],-                               n = 8}}),-       ("day (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}}),-       ("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 = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               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}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -2.6026896854443837),-                                    ("Martin Luther King's Day", -2.6026896854443837),-                                    ("intersect", -2.6026896854443837),-                                    ("Monday", -2.6026896854443837), ("day", -1.2163953243244932),-                                    ("Thanksgiving Day", -2.6026896854443837),-                                    ("hour", -2.1972245773362196), ("seasons", -1.9095425048844386),-                                    ("week-end", -2.6026896854443837)],-                               n = 9},-                   koData =-                     ClassData{prior = -2.3025850929940455,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7047480922384253),-                                    ("day", -1.7047480922384253)],-                               n = 1}}),-       ("August",-        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}})]
+ Duckling/Ranking/Classifiers/EN_CA.hs view
@@ -0,0 +1,2349 @@+-- 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.EN_CA (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++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 = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253), ("hour", -1.2992829841302609),+                                    ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7740538191727457, unseen = -5.19295685089021,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 178},+                   koData =+                     ClassData{prior = -0.6182992897635128,+                               unseen = -5.3471075307174685,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 208}}),+       ("<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.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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 = -0.10536051565782628,+                               unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -3.6805112044434196),+                                    ("integer after|past <hour-of-day>", -3.6805112044434196),+                                    ("half after|past <hour-of-day>", -4.085976312551584),+                                    ("time-of-day (latent)", -1.7346010553881064),+                                    ("hhmm (latent)", -3.392829131991639),+                                    ("<time-of-day> am|pm", -1.7833912195575383),+                                    ("hh:mm", -3.169685580677429),+                                    ("about|exactly <time-of-day>", -3.6805112044434196),+                                    ("hour", -1.1415373333851437),+                                    ("<time-of-day> sharp|exactly", -4.085976312551584),+                                    ("minute", -1.8887517352153647)],+                               n = 54},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.1895840668738362),+                                    ("hour", -1.1895840668738362)],+                               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}}),+       ("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 = -2.409755157906053e-2,+                               unseen = -3.7612001156935624,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 41},+                   koData =+                     ClassData{prior = -3.7376696182833684,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.3364722366212129),+                                    ("integer (0..19)integer (20..90)", -1.252762968495368)],+                               n = 5}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4634795031687923, unseen = -6.169610732491456,+                               likelihoods =+                                 HashMap.fromList+                                   [("<datetime> - <datetime> (interval)on <date>",+                                     -4.558078578454241),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.558078578454241),+                                    ("hourday", -3.769621218089971),+                                    ("dayhour", -3.223077511721901),+                                    ("daymonth", -4.781222129768451),+                                    ("monthday", -5.0689042022202315),+                                    ("monthyear", -3.8649313978942956),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -5.474369310328396),+                                    ("Christmasyear", -5.474369310328396),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.474369310328396),+                                    ("houryear", -5.474369310328396),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.781222129768451),+                                    ("<time-of-day> am|pmintersect", -4.221606341833028),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -5.474369310328396),+                                    ("Marchyear", -5.474369310328396),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year",+                                     -5.0689042022202315),+                                    ("intersect<time-of-day> am|pm", -5.474369310328396),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.474369310328396),+                                    ("monthhour", -5.0689042022202315),+                                    ("last <day-of-week> of <time>year", -5.474369310328396),+                                    ("todayat <time-of-day>", -5.474369310328396),+                                    ("Thursday<time> timezone", -5.0689042022202315),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("dayday", -3.459466289786131),+                                    ("Thanksgiving Dayyear", -4.375757021660286),+                                    ("<time> <part-of-day>at <time-of-day>", -5.474369310328396),+                                    ("Tuesdayin <named-month>", -5.474369310328396),+                                    ("mm/ddat <time-of-day>", -5.474369310328396),+                                    ("tonightat <time-of-day>", -5.474369310328396),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -4.781222129768451),+                                    ("today<time-of-day> am|pm", -5.474369310328396),+                                    ("Februarythe <day-of-month> (ordinal)", -5.0689042022202315),+                                    ("at <time-of-day><time> <part-of-day>", -5.474369310328396),+                                    ("mm/dd<time-of-day> am|pm", -5.474369310328396),+                                    ("hourhour", -4.221606341833028),+                                    ("<time-of-day> am|pmon <date>", -3.459466289786131),+                                    ("Wednesdaythis|last|next <cycle>", -5.474369310328396),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.970291913552122),+                                    ("dayyear", -3.0320222749591914),+                                    ("last weekend of <named-month>year", -5.474369310328396),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmtomorrow", -4.781222129768451),+                                    ("minutehour", -4.558078578454241),+                                    ("Mother's Dayyear", -5.474369310328396),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.0689042022202315),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -3.769621218089971),+                                    ("for <duration> from <time>December", -5.474369310328396),+                                    ("tomorrow<time-of-day> sharp|exactly", -5.474369310328396),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.558078578454241),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.0689042022202315),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.558078578454241),+                                    ("Mondayin|during the <part-of-day>", -5.474369310328396),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.0689042022202315),+                                    ("intersectin|during the <part-of-day>", -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -4.558078578454241),+                                    ("at <time-of-day>intersect", -5.0689042022202315),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.474369310328396),+                                    ("dayminute", -3.1717842173343502),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.0689042022202315),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.0689042022202315),+                                    ("<ordinal> <cycle> of <time>year", -5.474369310328396),+                                    ("minuteday", -2.0731719286662407),+                                    ("absorption of , after named dayintersect",+                                     -5.474369310328396),+                                    ("Octoberyear", -4.221606341833028),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) <named-month>year",+                                     -5.474369310328396),+                                    ("year<time-of-day> am|pm", -5.474369310328396),+                                    ("Septemberyear", -5.0689042022202315),+                                    ("at <time-of-day>on <date>", -4.375757021660286),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("Halloweenyear", -5.474369310328396),+                                    ("dayweek", -5.474369310328396),+                                    ("weekyear", -5.0689042022202315),+                                    ("hh:mmin|during the <part-of-day>", -4.781222129768451),+                                    ("Father's Dayyear", -5.474369310328396),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.0689042022202315),+                                    ("February<time> <part-of-day>", -5.474369310328396),+                                    ("Martin Luther King's Dayyear", -5.0689042022202315),+                                    ("tomorrowat <time-of-day>", -4.781222129768451),+                                    ("between <time> and <time>on <date>", -4.781222129768451),+                                    ("at <time-of-day>tomorrow", -5.0689042022202315),+                                    ("tomorrow<time-of-day> am|pm", -5.474369310328396),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -5.474369310328396),+                                    ("black fridayyear", -5.0689042022202315),+                                    ("Labor Dayyear", -5.474369310328396),+                                    ("Februaryintersect", -5.474369310328396),+                                    ("last <cycle> of <time>year", -4.781222129768451),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -5.474369310328396),+                                    ("yearminute", -5.474369310328396)],+                               n = 173},+                   koData =+                     ClassData{prior = -0.9917982843823002, unseen = -5.817111159963204,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>year", -5.120983351265121),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.120983351265121),+                                    ("hourday", -5.120983351265121),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.120983351265121),+                                    ("dayhour", -3.329223882037066),+                                    ("daymonth", -3.041541809585285),+                                    ("monthday", -4.715518243156957),+                                    ("monthyear", -4.427836170705175),+                                    ("intersecthh:mm", -5.120983351265121),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.120983351265121),+                                    ("houryear", -5.120983351265121),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.120983351265121),+                                    ("until <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.427836170705175),+                                    ("<time-of-day> am|pmintersect", -3.868220382769753),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -4.204692619390966),+                                    ("Tuesdayafter <time-of-day>", -5.120983351265121),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("absorption of , after named dayJuly", -4.715518243156957),+                                    ("monthhour", -5.120983351265121),+                                    ("hourmonth", -4.427836170705175),+                                    ("todayat <time-of-day>", -5.120983351265121),+                                    ("dayday", -4.715518243156957),+                                    ("mm/ddat <time-of-day>", -4.715518243156957),+                                    ("<time-of-day> am|pmon <date>", -3.868220382769753),+                                    ("dayyear", -3.868220382769753),+                                    ("Thursdaymm/dd", -5.120983351265121),+                                    ("Thursdayat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.120983351265121),+                                    ("monthminute", -5.120983351265121),+                                    ("<time-of-day> am|pmtomorrow", -5.120983351265121),+                                    ("Thursdayhh:mm", -5.120983351265121),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("Fridayyear", -4.715518243156957),+                                    ("minutemonth", -3.416235259026696),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.715518243156957),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("Aprilyear", -5.120983351265121),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.120983351265121),+                                    ("<duration> after|before|from <time>December",+                                     -5.120983351265121),+                                    ("yesterday<time-of-day> am|pm", -5.120983351265121),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -4.204692619390966),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.120983351265121),+                                    ("until <time-of-day>on <date>", -4.427836170705175),+                                    ("at <time-of-day>intersect", -4.715518243156957),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("dayminute", -3.175073202209808),+                                    ("intersectSeptember", -3.616905954488847),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("minuteday", -2.317622970358586),+                                    ("absorption of , after named dayintersect",+                                     -5.120983351265121),+                                    ("Februaryin|during the <part-of-day>", -5.120983351265121),+                                    ("week-endin <named-month>", -5.120983351265121),+                                    ("Octoberyear", -5.120983351265121),+                                    ("yearhh:mm", -5.120983351265121),+                                    ("hh:mmon <date>", -3.616905954488847),+                                    ("absorption of , after named daySeptember",+                                     -4.204692619390966),+                                    ("on <date>September", -4.715518243156957),+                                    ("at <time-of-day>on <date>", -4.715518243156957),+                                    ("absorption of , after named dayFebruary", -4.204692619390966),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.120983351265121),+                                    ("tomorrowat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.120983351265121),+                                    ("tomorrow<time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day>year", -5.120983351265121),+                                    ("yearminute", -5.120983351265121)],+                               n = 102}}),+       ("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.041453874828161, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5596157879354228),+                                    ("integer (0..19)", -0.8472978603872037)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.4353180712578455,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3448404862917295),+                                    ("integer (0..19)", -1.2321436812926323)],+                               n = 22}}),+       ("<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 = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 2}}),+       ("last|next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.430816798843313,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.627081138568543),+                                    ("integer (0..19)year (grain)", -3.3202283191284883),+                                    ("integer (numeric)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)second (grain) ", -3.3202283191284883),+                                    ("integer (0..19)hour (grain)", -3.3202283191284883),+                                    ("second", -2.8094026953624978),+                                    ("integer (numeric)second (grain) ", -3.3202283191284883),+                                    ("integer (numeric)year (grain)", -3.3202283191284883),+                                    ("day", -2.472930458741285), ("year", -2.8094026953624978),+                                    ("integer (numeric)week (grain)", -3.0325462466767075),+                                    ("integer (0..19)month (grain)", -3.3202283191284883),+                                    ("hour", -2.8094026953624978), ("month", -2.8094026953624978),+                                    ("integer (numeric)minute (grain)", -3.3202283191284883),+                                    ("integer (0..19)minute (grain)", -3.3202283191284883),+                                    ("integer (numeric)month (grain)", -3.3202283191284883),+                                    ("minute", -2.8094026953624978),+                                    ("integer (numeric)hour (grain)", -3.3202283191284883),+                                    ("integer (0..19)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)week (grain)", -3.3202283191284883)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               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}}),+       ("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}}),+       ("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.5363047090669756, unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1158318155251217),+                                    ("integer (0..19)", -2.2129729343043585)],+                               n = 62},+                   koData =+                     ClassData{prior = -0.8792494601938059,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.197890671877523e-2)],+                               n = 44}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -3.58351893845611,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8}}),+       ("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.7444404749474959, unseen = -4.605170185988091,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.3978952727983707),+                                    ("integer (0..19)year (grain)", -3.2088254890146994),+                                    ("integer (numeric)day (grain)", -2.515678308454754),+                                    ("integer (0..19)second (grain) ", -3.9019726695746444),+                                    ("integer (0..19)hour (grain)", -2.803360380906535),+                                    ("second", -3.9019726695746444),+                                    ("integer (numeric)year (grain)", -3.9019726695746444),+                                    ("day", -2.515678308454754), ("year", -2.9856819377004897),+                                    ("integer (numeric)week (grain)", -2.9856819377004897),+                                    ("integer (0..19)month (grain)", -3.4965075614664802),+                                    ("hour", -2.515678308454754), ("month", -3.4965075614664802),+                                    ("integer (numeric)minute (grain)", -2.9856819377004897),+                                    ("integer (0..19)minute (grain)", -2.803360380906535),+                                    ("minute", -2.2925347571405443),+                                    ("integer (numeric)hour (grain)", -3.4965075614664802),+                                    ("integer (0..19)week (grain)", -2.9856819377004897)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.6443570163905132, unseen = -4.68213122712422,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.8810693652338513),+                                    ("integer (0..19)year (grain)", -3.5742165457937967),+                                    ("integer (numeric)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)second (grain) ", -3.5742165457937967),+                                    ("integer (0..19)hour (grain)", -3.5742165457937967),+                                    ("second", -3.0633909220278057),+                                    ("integer (numeric)second (grain) ", -3.5742165457937967),+                                    ("integer (numeric)year (grain)", -3.5742165457937967),+                                    ("day", -2.7269186854065928), ("quarter", -3.979681653901961),+                                    ("year", -3.0633909220278057),+                                    ("integer (numeric)week (grain)", -3.2865344733420154),+                                    ("integer (0..19)month (grain)", -3.5742165457937967),+                                    ("hour", -1.9647786333596962), ("month", -3.0633909220278057),+                                    ("integer (numeric)minute (grain)", -3.5742165457937967),+                                    ("integer (0..19)minute (grain)", -3.5742165457937967),+                                    ("integer (numeric)month (grain)", -3.5742165457937967),+                                    ("minute", -3.0633909220278057),+                                    ("integer (numeric)hour (grain)", -2.1078794770003695),+                                    ("integer (0..19)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)week (grain)", -3.5742165457937967),+                                    ("integer (0..19)quarter (grain)", -3.979681653901961)],+                               n = 42}}),+       ("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.2847365622220242, unseen = -5.231108616854587,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer after|past <hour-of-day>", -3.8394523125933104),+                                    ("at <time-of-day>", -2.2300144001592104),+                                    ("<time-of-day> o'clock", -4.127134385045092),+                                    ("half after|past <hour-of-day>", -4.127134385045092),+                                    ("time-of-day (latent)", -1.7600107709134747),+                                    ("hhmm (latent)", -4.532599493153256),+                                    ("hh:mm", -2.181224235989778),+                                    ("quarter after|past <hour-of-day>", -4.532599493153256),+                                    ("about|exactly <time-of-day>", -4.532599493153256),+                                    ("until <time-of-day>", -3.8394523125933104),+                                    ("hour", -1.2939210409888755),+                                    ("<time-of-day> sharp|exactly", -4.532599493153256),+                                    ("minute", -1.6422277352570913),+                                    ("after <time-of-day>", -4.532599493153256)],+                               n = 85},+                   koData =+                     ClassData{prior = -1.3951833085371366, unseen = -4.290459441148391,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.1780538303479458),+                                    ("<hour-of-day> <integer>", -3.58351893845611),+                                    ("time-of-day (latent)", -1.0577902941478545),+                                    ("hour", -1.0185695809945732), ("minute", -2.890371757896165),+                                    ("after <time-of-day>", -3.58351893845611)],+                               n = 28}}),+       ("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.406722127027582e-2,+                               unseen = -4.02535169073515,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 54},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               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+                                   [("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 = -1.0116009116784799,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.6741486494265287),+                                    ("Martin Luther King's Day", -2.6741486494265287),+                                    ("Memorial Day", -2.6741486494265287),+                                    ("Mother's Day", -2.6741486494265287),+                                    ("day", -1.2878542883066382), ("Sunday", -2.6741486494265287),+                                    ("Thanksgiving Day", -2.6741486494265287),+                                    ("hour", -2.6741486494265287), ("Tuesday", -2.6741486494265287),+                                    ("week-end", -2.6741486494265287)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -3.0204248861443626),+                                    ("Monday", -3.0204248861443626), ("day", -2.1041341542702074),+                                    ("Sunday", -3.0204248861443626),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.7676619176489945),+                                    ("hour", -1.3156767939059373),+                                    ("week-end", -1.9218125974762528)],+                               n = 14}}),+       ("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.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.0794415416798357),+                                    ("Thursdayordinal (digits)", -2.4849066497880004),+                                    ("day", -2.0794415416798357),+                                    ("Augustordinal (digits)", -2.4849066497880004),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.0794415416798357),+                                    ("Tuesdayordinal (digits)", -2.4849066497880004),+                                    ("month", -1.2321436812926323),+                                    ("Marchordinal (digits)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustordinal (digits)", -1.6094379124341003),+                                    ("month", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("<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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 24}}),+       ("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.48550781578170077,+                               unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4733057381095205),+                                    ("hh:mmhh:mm", -1.6739764335716716),+                                    ("dayday", -2.772588722239781),+                                    ("hourhour", -2.2617630984737906),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -3.1780538303479458),+                                    ("<time-of-day> am|pm<time-of-day> am|pm",+                                     -2.4849066497880004)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.890371757896165),+                                    ("daymonth", -2.4849066497880004),+                                    ("<time-of-day> am|pmintersect", -2.890371757896165),+                                    ("hh:mm<time-of-day> am|pm", -2.4849066497880004),+                                    ("minuteminute", -1.9740810260220096),+                                    ("hourhour", -2.4849066497880004),+                                    ("minutehour", -2.4849066497880004),+                                    ("hh:mmintersect", -1.9740810260220096),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.890371757896165),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -2.890371757896165)],+                               n = 10}}),+       ("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}}),+       ("<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.8873031950009028,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.5163474893680884),+                                    ("hh:mmhh:mm", -1.5163474893680884),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.327277705584417),+                                    ("hourhour", -1.7676619176489945),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.327277705584417)],+                               n = 14},+                   koData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.2771447329921766),+                                    ("hh:mmtime-of-day (latent)", -1.5723966407537513),+                                    ("hh:mm<time-of-day> am|pm", -2.871679624884012),+                                    ("<time-of-day> am|pmtime-of-day (latent)",+                                     -3.2771447329921766),+                                    ("at <time-of-day><time-of-day> am|pm", -3.2771447329921766),+                                    ("hourhour", -2.0243817644968085),+                                    ("minutehour", -1.262241712449912),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2771447329921766),+                                    ("at <time-of-day>time-of-day (latent)", -2.871679624884012),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -2.871679624884012)],+                               n = 20}}),+       ("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.35667494393873245,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5257286443082556),+                                    ("Marchinteger (numeric)", -2.8134107167600364),+                                    ("Aprilinteger (numeric)", -3.2188758248682006),+                                    ("month", -0.8209805520698302),+                                    ("Februaryinteger (numeric)", -1.9661128563728327),+                                    ("Septemberinteger (numeric)", -2.8134107167600364),+                                    ("Octoberinteger (numeric)", -2.8134107167600364),+                                    ("Julyinteger (numeric)", -2.120263536200091)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.159484249353372),+                                    ("Marchinteger (numeric)", -2.5649493574615367),+                                    ("Aprilinteger (numeric)", -2.5649493574615367),+                                    ("month", -0.9555114450274363),+                                    ("Julyinteger (numeric)", -1.466337068793427)],+                               n = 9}}),+       ("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}}),+       ("seasons",+        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-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}}),+       ("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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hour", -1.2992829841302609)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.03688192726104),+                                    ("tomorrow", -2.03688192726104), ("day", -1.3437347467010947),+                                    ("time-of-day (latent)", -2.4423470353692043),+                                    ("<time-of-day> am|pm", -2.4423470353692043),+                                    ("Christmas", -2.03688192726104), ("hour", -1.749199854809259)],+                               n = 8}}),+       ("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}}),+       ("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}}),+       ("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.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.2992829841302609),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.9924301646902063),+                                    ("month", -0.7884573603642702),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.9924301646902063)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("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.10536051565782628,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.6026896854443837),+                                    ("Martin Luther King's Day", -2.6026896854443837),+                                    ("intersect", -2.6026896854443837),+                                    ("Monday", -2.6026896854443837), ("day", -1.2163953243244932),+                                    ("Thanksgiving Day", -2.6026896854443837),+                                    ("hour", -2.1972245773362196), ("seasons", -1.9095425048844386),+                                    ("week-end", -2.6026896854443837)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.7047480922384253),+                                    ("day", -1.7047480922384253)],+                               n = 1}}),+       ("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}})]
+ Duckling/Ranking/Classifiers/EN_GB.hs view
@@ -0,0 +1,2345 @@+-- 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.EN_GB (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++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 = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253), ("hour", -1.2992829841302609),+                                    ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7740538191727457, unseen = -5.19295685089021,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 178},+                   koData =+                     ClassData{prior = -0.6182992897635128,+                               unseen = -5.3471075307174685,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 208}}),+       ("<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.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm/yyyy",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("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.3437347467010947,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -0.3022808718729337,+                               unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+       ("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 = -0.10536051565782628,+                               unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -3.6805112044434196),+                                    ("integer after|past <hour-of-day>", -3.6805112044434196),+                                    ("half after|past <hour-of-day>", -4.085976312551584),+                                    ("time-of-day (latent)", -1.7346010553881064),+                                    ("hhmm (latent)", -3.392829131991639),+                                    ("<time-of-day> am|pm", -1.7833912195575383),+                                    ("hh:mm", -3.169685580677429),+                                    ("about|exactly <time-of-day>", -3.6805112044434196),+                                    ("hour", -1.1415373333851437),+                                    ("<time-of-day> sharp|exactly", -4.085976312551584),+                                    ("minute", -1.8887517352153647)],+                               n = 54},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.1895840668738362),+                                    ("hour", -1.1895840668738362)],+                               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}}),+       ("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 = -2.409755157906053e-2,+                               unseen = -3.7612001156935624,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 41},+                   koData =+                     ClassData{prior = -3.7376696182833684,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.5108256237659907),+                                    ("integer (0..19)integer (20..90)", -0.916290731874155)],+                               n = 3}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.45983651189029134,+                               unseen = -6.1675164908883415,+                               likelihoods =+                                 HashMap.fromList+                                   [("<datetime> - <datetime> (interval)on <date>",+                                     -4.55597994179732),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.55597994179732),+                                    ("hourday", -3.7675225814330493),+                                    ("dayhour", -3.2209788750649797),+                                    ("daymonth", -4.77912349311153),+                                    ("monthday", -5.06680556556331),+                                    ("monthyear", -3.862832761237374),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -5.472270673671475),+                                    ("Christmasyear", -5.472270673671475),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.472270673671475),+                                    ("houryear", -5.472270673671475),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -5.472270673671475),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.77912349311153),+                                    ("<time-of-day> am|pmintersect", -4.219507705176107),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -5.472270673671475),+                                    ("Marchyear", -5.472270673671475),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year",+                                     -5.06680556556331),+                                    ("intersect<time-of-day> am|pm", -5.472270673671475),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.472270673671475),+                                    ("monthhour", -5.06680556556331),+                                    ("last <day-of-week> of <time>year", -5.472270673671475),+                                    ("todayat <time-of-day>", -5.472270673671475),+                                    ("Thursday<time> timezone", -5.06680556556331),+                                    ("dd/mm<time-of-day> am|pm", -5.472270673671475),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -5.472270673671475),+                                    ("dayday", -3.45736765312921),+                                    ("Thanksgiving Dayyear", -4.373658385003365),+                                    ("dd/mmat <time-of-day>", -5.472270673671475),+                                    ("<time> <part-of-day>at <time-of-day>", -5.472270673671475),+                                    ("Tuesdayin <named-month>", -5.472270673671475),+                                    ("tonightat <time-of-day>", -5.472270673671475),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -4.77912349311153),+                                    ("today<time-of-day> am|pm", -5.472270673671475),+                                    ("Februarythe <day-of-month> (ordinal)", -5.06680556556331),+                                    ("at <time-of-day><time> <part-of-day>", -5.472270673671475),+                                    ("hourhour", -4.219507705176107),+                                    ("<time-of-day> am|pmon <date>", -3.45736765312921),+                                    ("Wednesdaythis|last|next <cycle>", -5.472270673671475),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.968193276895201),+                                    ("dayyear", -3.0299236383022703),+                                    ("last weekend of <named-month>year", -5.472270673671475),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -5.472270673671475),+                                    ("<time-of-day> am|pmtomorrow", -4.77912349311153),+                                    ("minutehour", -4.55597994179732),+                                    ("Mother's Dayyear", -5.472270673671475),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.06680556556331),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -3.7675225814330493),+                                    ("for <duration> from <time>December", -5.472270673671475),+                                    ("tomorrow<time-of-day> sharp|exactly", -5.472270673671475),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.55597994179732),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.06680556556331),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.55597994179732),+                                    ("Mondayin|during the <part-of-day>", -5.472270673671475),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.06680556556331),+                                    ("intersectin|during the <part-of-day>", -5.472270673671475),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -5.472270673671475),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.77912349311153),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -4.55597994179732),+                                    ("at <time-of-day>intersect", -5.06680556556331),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -5.472270673671475),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.472270673671475),+                                    ("dayminute", -3.169685580677429),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.06680556556331),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -5.472270673671475),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.06680556556331),+                                    ("<ordinal> <cycle> of <time>year", -5.472270673671475),+                                    ("minuteday", -2.0710732920093196),+                                    ("absorption of , after named dayintersect",+                                     -5.472270673671475),+                                    ("Octoberyear", -4.219507705176107),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -5.472270673671475),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.472270673671475),+                                    ("<day-of-month> (ordinal or number) <named-month>year",+                                     -5.472270673671475),+                                    ("year<time-of-day> am|pm", -5.472270673671475),+                                    ("Septemberyear", -5.06680556556331),+                                    ("at <time-of-day>on <date>", -4.373658385003365),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.77912349311153),+                                    ("Halloweenyear", -5.472270673671475),+                                    ("dayweek", -5.472270673671475),+                                    ("weekyear", -5.06680556556331),+                                    ("hh:mmin|during the <part-of-day>", -4.77912349311153),+                                    ("Father's Dayyear", -5.472270673671475),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.06680556556331),+                                    ("February<time> <part-of-day>", -5.472270673671475),+                                    ("Martin Luther King's Dayyear", -5.06680556556331),+                                    ("tomorrowat <time-of-day>", -4.77912349311153),+                                    ("between <time> and <time>on <date>", -4.77912349311153),+                                    ("at <time-of-day>tomorrow", -5.06680556556331),+                                    ("tomorrow<time-of-day> am|pm", -5.472270673671475),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -5.472270673671475),+                                    ("black fridayyear", -5.06680556556331),+                                    ("Labor Dayyear", -5.472270673671475),+                                    ("Februaryintersect", -5.472270673671475),+                                    ("last <cycle> of <time>year", -4.77912349311153),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -5.472270673671475),+                                    ("yearminute", -5.472270673671475)],+                               n = 173},+                   koData =+                     ClassData{prior = -0.9980075895468108, unseen = -5.808142489980444,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>year", -5.111987788356543),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.111987788356543),+                                    ("hourday", -5.111987788356543),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.111987788356543),+                                    ("dayhour", -3.3202283191284883),+                                    ("daymonth", -3.0325462466767075),+                                    ("monthday", -4.706522680248379),+                                    ("monthyear", -4.418840607796598),+                                    ("intersecthh:mm", -5.111987788356543),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.111987788356543),+                                    ("houryear", -5.111987788356543),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.111987788356543),+                                    ("until <time-of-day><time-of-day> am|pm", -5.111987788356543),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.418840607796598),+                                    ("<time-of-day> am|pmintersect", -3.859224819861175),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -4.1956970564823886),+                                    ("Tuesdayafter <time-of-day>", -5.111987788356543),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.111987788356543),+                                    ("absorption of , after named dayJuly", -4.706522680248379),+                                    ("monthhour", -5.111987788356543),+                                    ("hourmonth", -4.418840607796598),+                                    ("todayat <time-of-day>", -5.111987788356543),+                                    ("dayday", -5.111987788356543),+                                    ("dd/mmat <time-of-day>", -4.706522680248379),+                                    ("<time-of-day> am|pmon <date>", -3.859224819861175),+                                    ("dayyear", -3.859224819861175),+                                    ("Thursdayat <time-of-day>", -5.111987788356543),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.111987788356543),+                                    ("monthminute", -5.111987788356543),+                                    ("<time-of-day> am|pmtomorrow", -5.111987788356543),+                                    ("Thursdayhh:mm", -5.111987788356543),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.111987788356543),+                                    ("Fridayyear", -4.706522680248379),+                                    ("minutemonth", -3.407239696118118),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.706522680248379),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.706522680248379),+                                    ("Aprilyear", -5.111987788356543),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.111987788356543),+                                    ("dd/mm<time-of-day> - <time-of-day> (interval)",+                                     -4.706522680248379),+                                    ("<duration> after|before|from <time>December",+                                     -5.111987788356543),+                                    ("yesterday<time-of-day> am|pm", -5.111987788356543),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -4.1956970564823886),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.111987788356543),+                                    ("until <time-of-day>on <date>", -4.418840607796598),+                                    ("at <time-of-day>intersect", -4.706522680248379),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.111987788356543),+                                    ("dayminute", -3.16607763930123),+                                    ("intersectSeptember", -3.607910391580269),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.111987788356543),+                                    ("minuteday", -2.3086274074500084),+                                    ("absorption of , after named dayintersect",+                                     -5.111987788356543),+                                    ("Februaryin|during the <part-of-day>", -5.111987788356543),+                                    ("week-endin <named-month>", -5.111987788356543),+                                    ("Octoberyear", -5.111987788356543),+                                    ("yearhh:mm", -5.111987788356543),+                                    ("hh:mmon <date>", -3.607910391580269),+                                    ("absorption of , after named daySeptember",+                                     -4.1956970564823886),+                                    ("on <date>September", -4.706522680248379),+                                    ("at <time-of-day>on <date>", -4.706522680248379),+                                    ("absorption of , after named dayFebruary",+                                     -4.1956970564823886),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.111987788356543),+                                    ("tomorrowat <time-of-day>", -5.111987788356543),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.111987788356543),+                                    ("tomorrow<time-of-day> am|pm", -5.111987788356543),+                                    ("after <time-of-day><time-of-day> am|pm", -5.111987788356543),+                                    ("after <time-of-day>year", -5.111987788356543),+                                    ("yearminute", -5.111987788356543)],+                               n = 101}}),+       ("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.041453874828161, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5596157879354228),+                                    ("integer (0..19)", -0.8472978603872037)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.4353180712578455,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3448404862917295),+                                    ("integer (0..19)", -1.2321436812926323)],+                               n = 22}}),+       ("<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 = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 2}}),+       ("last|next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.430816798843313,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.627081138568543),+                                    ("integer (0..19)year (grain)", -3.3202283191284883),+                                    ("integer (numeric)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)second (grain) ", -3.3202283191284883),+                                    ("integer (0..19)hour (grain)", -3.3202283191284883),+                                    ("second", -2.8094026953624978),+                                    ("integer (numeric)second (grain) ", -3.3202283191284883),+                                    ("integer (numeric)year (grain)", -3.3202283191284883),+                                    ("day", -2.472930458741285), ("year", -2.8094026953624978),+                                    ("integer (numeric)week (grain)", -3.0325462466767075),+                                    ("integer (0..19)month (grain)", -3.3202283191284883),+                                    ("hour", -2.8094026953624978), ("month", -2.8094026953624978),+                                    ("integer (numeric)minute (grain)", -3.3202283191284883),+                                    ("integer (0..19)minute (grain)", -3.3202283191284883),+                                    ("integer (numeric)month (grain)", -3.3202283191284883),+                                    ("minute", -2.8094026953624978),+                                    ("integer (numeric)hour (grain)", -3.3202283191284883),+                                    ("integer (0..19)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)week (grain)", -3.3202283191284883)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               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}}),+       ("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 = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   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}}),+       ("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.5363047090669756, unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1158318155251217),+                                    ("integer (0..19)", -2.2129729343043585)],+                               n = 62},+                   koData =+                     ClassData{prior = -0.8792494601938059,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.197890671877523e-2)],+                               n = 44}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -3.58351893845611,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8}}),+       ("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.7444404749474959, unseen = -4.605170185988091,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.3978952727983707),+                                    ("integer (0..19)year (grain)", -3.2088254890146994),+                                    ("integer (numeric)day (grain)", -2.515678308454754),+                                    ("integer (0..19)second (grain) ", -3.9019726695746444),+                                    ("integer (0..19)hour (grain)", -2.803360380906535),+                                    ("second", -3.9019726695746444),+                                    ("integer (numeric)year (grain)", -3.9019726695746444),+                                    ("day", -2.515678308454754), ("year", -2.9856819377004897),+                                    ("integer (numeric)week (grain)", -2.9856819377004897),+                                    ("integer (0..19)month (grain)", -3.4965075614664802),+                                    ("hour", -2.515678308454754), ("month", -3.4965075614664802),+                                    ("integer (numeric)minute (grain)", -2.9856819377004897),+                                    ("integer (0..19)minute (grain)", -2.803360380906535),+                                    ("minute", -2.2925347571405443),+                                    ("integer (numeric)hour (grain)", -3.4965075614664802),+                                    ("integer (0..19)week (grain)", -2.9856819377004897)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.6443570163905132, unseen = -4.68213122712422,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.8810693652338513),+                                    ("integer (0..19)year (grain)", -3.5742165457937967),+                                    ("integer (numeric)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)second (grain) ", -3.5742165457937967),+                                    ("integer (0..19)hour (grain)", -3.5742165457937967),+                                    ("second", -3.0633909220278057),+                                    ("integer (numeric)second (grain) ", -3.5742165457937967),+                                    ("integer (numeric)year (grain)", -3.5742165457937967),+                                    ("day", -2.7269186854065928), ("quarter", -3.979681653901961),+                                    ("year", -3.0633909220278057),+                                    ("integer (numeric)week (grain)", -3.2865344733420154),+                                    ("integer (0..19)month (grain)", -3.5742165457937967),+                                    ("hour", -1.9647786333596962), ("month", -3.0633909220278057),+                                    ("integer (numeric)minute (grain)", -3.5742165457937967),+                                    ("integer (0..19)minute (grain)", -3.5742165457937967),+                                    ("integer (numeric)month (grain)", -3.5742165457937967),+                                    ("minute", -3.0633909220278057),+                                    ("integer (numeric)hour (grain)", -2.1078794770003695),+                                    ("integer (0..19)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)week (grain)", -3.5742165457937967),+                                    ("integer (0..19)quarter (grain)", -3.979681653901961)],+                               n = 42}}),+       ("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.2847365622220242, unseen = -5.231108616854587,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer after|past <hour-of-day>", -3.8394523125933104),+                                    ("at <time-of-day>", -2.2300144001592104),+                                    ("<time-of-day> o'clock", -4.127134385045092),+                                    ("half after|past <hour-of-day>", -4.127134385045092),+                                    ("time-of-day (latent)", -1.7600107709134747),+                                    ("hhmm (latent)", -4.532599493153256),+                                    ("hh:mm", -2.181224235989778),+                                    ("quarter after|past <hour-of-day>", -4.532599493153256),+                                    ("about|exactly <time-of-day>", -4.532599493153256),+                                    ("until <time-of-day>", -3.8394523125933104),+                                    ("hour", -1.2939210409888755),+                                    ("<time-of-day> sharp|exactly", -4.532599493153256),+                                    ("minute", -1.6422277352570913),+                                    ("after <time-of-day>", -4.532599493153256)],+                               n = 85},+                   koData =+                     ClassData{prior = -1.3951833085371366, unseen = -4.290459441148391,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.1780538303479458),+                                    ("<hour-of-day> <integer>", -3.58351893845611),+                                    ("time-of-day (latent)", -1.0577902941478545),+                                    ("hour", -1.0185695809945732), ("minute", -2.890371757896165),+                                    ("after <time-of-day>", -3.58351893845611)],+                               n = 28}}),+       ("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.406722127027582e-2,+                               unseen = -4.02535169073515,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 54},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               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 = -1.0116009116784799,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.6741486494265287),+                                    ("Martin Luther King's Day", -2.6741486494265287),+                                    ("Memorial Day", -2.6741486494265287),+                                    ("Mother's Day", -2.6741486494265287),+                                    ("day", -1.2878542883066382), ("Sunday", -2.6741486494265287),+                                    ("Thanksgiving Day", -2.6741486494265287),+                                    ("hour", -2.6741486494265287), ("Tuesday", -2.6741486494265287),+                                    ("week-end", -2.6741486494265287)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -3.0204248861443626),+                                    ("Monday", -3.0204248861443626), ("day", -2.1041341542702074),+                                    ("Sunday", -3.0204248861443626),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.7676619176489945),+                                    ("hour", -1.3156767939059373),+                                    ("week-end", -1.9218125974762528)],+                               n = 14}}),+       ("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.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.0794415416798357),+                                    ("Thursdayordinal (digits)", -2.4849066497880004),+                                    ("day", -2.0794415416798357),+                                    ("Augustordinal (digits)", -2.4849066497880004),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.0794415416798357),+                                    ("Tuesdayordinal (digits)", -2.4849066497880004),+                                    ("month", -1.2321436812926323),+                                    ("Marchordinal (digits)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustordinal (digits)", -1.6094379124341003),+                                    ("month", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("<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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 24}}),+       ("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.48550781578170077,+                               unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4733057381095205),+                                    ("hh:mmhh:mm", -1.6739764335716716),+                                    ("dayday", -2.772588722239781),+                                    ("hourhour", -2.2617630984737906),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -3.1780538303479458),+                                    ("<time-of-day> am|pm<time-of-day> am|pm",+                                     -2.4849066497880004)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.890371757896165),+                                    ("daymonth", -2.4849066497880004),+                                    ("<time-of-day> am|pmintersect", -2.890371757896165),+                                    ("hh:mm<time-of-day> am|pm", -2.4849066497880004),+                                    ("minuteminute", -1.9740810260220096),+                                    ("hourhour", -2.4849066497880004),+                                    ("minutehour", -2.4849066497880004),+                                    ("hh:mmintersect", -1.9740810260220096),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.890371757896165),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -2.890371757896165)],+                               n = 10}}),+       ("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}}),+       ("<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.8873031950009028,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.5163474893680884),+                                    ("hh:mmhh:mm", -1.5163474893680884),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.327277705584417),+                                    ("hourhour", -1.7676619176489945),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.327277705584417)],+                               n = 14},+                   koData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.2771447329921766),+                                    ("hh:mmtime-of-day (latent)", -1.5723966407537513),+                                    ("hh:mm<time-of-day> am|pm", -2.871679624884012),+                                    ("<time-of-day> am|pmtime-of-day (latent)",+                                     -3.2771447329921766),+                                    ("at <time-of-day><time-of-day> am|pm", -3.2771447329921766),+                                    ("hourhour", -2.0243817644968085),+                                    ("minutehour", -1.262241712449912),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2771447329921766),+                                    ("at <time-of-day>time-of-day (latent)", -2.871679624884012),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -2.871679624884012)],+                               n = 20}}),+       ("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.35667494393873245,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5257286443082556),+                                    ("Marchinteger (numeric)", -2.8134107167600364),+                                    ("Aprilinteger (numeric)", -3.2188758248682006),+                                    ("month", -0.8209805520698302),+                                    ("Februaryinteger (numeric)", -1.9661128563728327),+                                    ("Septemberinteger (numeric)", -2.8134107167600364),+                                    ("Octoberinteger (numeric)", -2.8134107167600364),+                                    ("Julyinteger (numeric)", -2.120263536200091)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.159484249353372),+                                    ("Marchinteger (numeric)", -2.5649493574615367),+                                    ("Aprilinteger (numeric)", -2.5649493574615367),+                                    ("month", -0.9555114450274363),+                                    ("Julyinteger (numeric)", -1.466337068793427)],+                               n = 9}}),+       ("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}}),+       ("seasons",+        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-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}}),+       ("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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hour", -1.2992829841302609)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.03688192726104),+                                    ("tomorrow", -2.03688192726104), ("day", -1.3437347467010947),+                                    ("time-of-day (latent)", -2.4423470353692043),+                                    ("<time-of-day> am|pm", -2.4423470353692043),+                                    ("Christmas", -2.03688192726104), ("hour", -1.749199854809259)],+                               n = 8}}),+       ("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}}),+       ("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}}),+       ("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.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.2992829841302609),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.9924301646902063),+                                    ("month", -0.7884573603642702),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.9924301646902063)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("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.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.6026896854443837),+                                    ("Martin Luther King's Day", -2.6026896854443837),+                                    ("intersect", -2.6026896854443837),+                                    ("Monday", -2.6026896854443837), ("day", -1.2163953243244932),+                                    ("Thanksgiving Day", -2.6026896854443837),+                                    ("hour", -2.1972245773362196), ("seasons", -1.9095425048844386),+                                    ("week-end", -2.6026896854443837)],+                               n = 9},+                   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}})]
+ Duckling/Ranking/Classifiers/EN_US.hs view
@@ -0,0 +1,2349 @@+-- 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.EN_US (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++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 = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253), ("hour", -1.2992829841302609),+                                    ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7740538191727457, unseen = -5.19295685089021,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 178},+                   koData =+                     ClassData{prior = -0.6182992897635128,+                               unseen = -5.3471075307174685,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 208}}),+       ("<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.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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 = -0.10536051565782628,+                               unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -3.6805112044434196),+                                    ("integer after|past <hour-of-day>", -3.6805112044434196),+                                    ("half after|past <hour-of-day>", -4.085976312551584),+                                    ("time-of-day (latent)", -1.7346010553881064),+                                    ("hhmm (latent)", -3.392829131991639),+                                    ("<time-of-day> am|pm", -1.7833912195575383),+                                    ("hh:mm", -3.169685580677429),+                                    ("about|exactly <time-of-day>", -3.6805112044434196),+                                    ("hour", -1.1415373333851437),+                                    ("<time-of-day> sharp|exactly", -4.085976312551584),+                                    ("minute", -1.8887517352153647)],+                               n = 54},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.1895840668738362),+                                    ("hour", -1.1895840668738362)],+                               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}}),+       ("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 = -2.409755157906053e-2,+                               unseen = -3.7612001156935624,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 41},+                   koData =+                     ClassData{prior = -3.7376696182833684,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.3364722366212129),+                                    ("integer (0..19)integer (20..90)", -1.252762968495368)],+                               n = 5}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4634795031687923, unseen = -6.169610732491456,+                               likelihoods =+                                 HashMap.fromList+                                   [("<datetime> - <datetime> (interval)on <date>",+                                     -4.558078578454241),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.558078578454241),+                                    ("hourday", -3.769621218089971),+                                    ("dayhour", -3.223077511721901),+                                    ("daymonth", -4.781222129768451),+                                    ("monthday", -5.0689042022202315),+                                    ("monthyear", -3.8649313978942956),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -5.474369310328396),+                                    ("Christmasyear", -5.474369310328396),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.474369310328396),+                                    ("houryear", -5.474369310328396),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.781222129768451),+                                    ("<time-of-day> am|pmintersect", -4.221606341833028),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -5.474369310328396),+                                    ("Marchyear", -5.474369310328396),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year",+                                     -5.0689042022202315),+                                    ("intersect<time-of-day> am|pm", -5.474369310328396),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.474369310328396),+                                    ("monthhour", -5.0689042022202315),+                                    ("last <day-of-week> of <time>year", -5.474369310328396),+                                    ("todayat <time-of-day>", -5.474369310328396),+                                    ("Thursday<time> timezone", -5.0689042022202315),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("dayday", -3.459466289786131),+                                    ("Thanksgiving Dayyear", -4.375757021660286),+                                    ("<time> <part-of-day>at <time-of-day>", -5.474369310328396),+                                    ("Tuesdayin <named-month>", -5.474369310328396),+                                    ("mm/ddat <time-of-day>", -5.474369310328396),+                                    ("tonightat <time-of-day>", -5.474369310328396),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -4.781222129768451),+                                    ("today<time-of-day> am|pm", -5.474369310328396),+                                    ("Februarythe <day-of-month> (ordinal)", -5.0689042022202315),+                                    ("at <time-of-day><time> <part-of-day>", -5.474369310328396),+                                    ("mm/dd<time-of-day> am|pm", -5.474369310328396),+                                    ("hourhour", -4.221606341833028),+                                    ("<time-of-day> am|pmon <date>", -3.459466289786131),+                                    ("Wednesdaythis|last|next <cycle>", -5.474369310328396),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.970291913552122),+                                    ("dayyear", -3.0320222749591914),+                                    ("last weekend of <named-month>year", -5.474369310328396),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmtomorrow", -4.781222129768451),+                                    ("minutehour", -4.558078578454241),+                                    ("Mother's Dayyear", -5.474369310328396),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.0689042022202315),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -3.769621218089971),+                                    ("for <duration> from <time>December", -5.474369310328396),+                                    ("tomorrow<time-of-day> sharp|exactly", -5.474369310328396),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.558078578454241),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.0689042022202315),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.558078578454241),+                                    ("Mondayin|during the <part-of-day>", -5.474369310328396),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.0689042022202315),+                                    ("intersectin|during the <part-of-day>", -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -4.558078578454241),+                                    ("at <time-of-day>intersect", -5.0689042022202315),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.474369310328396),+                                    ("dayminute", -3.1717842173343502),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.0689042022202315),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.0689042022202315),+                                    ("<ordinal> <cycle> of <time>year", -5.474369310328396),+                                    ("minuteday", -2.0731719286662407),+                                    ("absorption of , after named dayintersect",+                                     -5.474369310328396),+                                    ("Octoberyear", -4.221606341833028),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) <named-month>year",+                                     -5.474369310328396),+                                    ("year<time-of-day> am|pm", -5.474369310328396),+                                    ("Septemberyear", -5.0689042022202315),+                                    ("at <time-of-day>on <date>", -4.375757021660286),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("Halloweenyear", -5.474369310328396),+                                    ("dayweek", -5.474369310328396),+                                    ("weekyear", -5.0689042022202315),+                                    ("hh:mmin|during the <part-of-day>", -4.781222129768451),+                                    ("Father's Dayyear", -5.474369310328396),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.0689042022202315),+                                    ("February<time> <part-of-day>", -5.474369310328396),+                                    ("Martin Luther King's Dayyear", -5.0689042022202315),+                                    ("tomorrowat <time-of-day>", -4.781222129768451),+                                    ("between <time> and <time>on <date>", -4.781222129768451),+                                    ("at <time-of-day>tomorrow", -5.0689042022202315),+                                    ("tomorrow<time-of-day> am|pm", -5.474369310328396),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -5.474369310328396),+                                    ("black fridayyear", -5.0689042022202315),+                                    ("Labor Dayyear", -5.474369310328396),+                                    ("Februaryintersect", -5.474369310328396),+                                    ("last <cycle> of <time>year", -4.781222129768451),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -5.474369310328396),+                                    ("yearminute", -5.474369310328396)],+                               n = 173},+                   koData =+                     ClassData{prior = -0.9917982843823002, unseen = -5.817111159963204,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>year", -5.120983351265121),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.120983351265121),+                                    ("hourday", -5.120983351265121),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.120983351265121),+                                    ("dayhour", -3.329223882037066),+                                    ("daymonth", -3.041541809585285),+                                    ("monthday", -4.715518243156957),+                                    ("monthyear", -4.427836170705175),+                                    ("intersecthh:mm", -5.120983351265121),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.120983351265121),+                                    ("houryear", -5.120983351265121),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.120983351265121),+                                    ("until <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.427836170705175),+                                    ("<time-of-day> am|pmintersect", -3.868220382769753),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -4.204692619390966),+                                    ("Tuesdayafter <time-of-day>", -5.120983351265121),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("absorption of , after named dayJuly", -4.715518243156957),+                                    ("monthhour", -5.120983351265121),+                                    ("hourmonth", -4.427836170705175),+                                    ("todayat <time-of-day>", -5.120983351265121),+                                    ("dayday", -4.715518243156957),+                                    ("mm/ddat <time-of-day>", -4.715518243156957),+                                    ("<time-of-day> am|pmon <date>", -3.868220382769753),+                                    ("dayyear", -3.868220382769753),+                                    ("Thursdaymm/dd", -5.120983351265121),+                                    ("Thursdayat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.120983351265121),+                                    ("monthminute", -5.120983351265121),+                                    ("<time-of-day> am|pmtomorrow", -5.120983351265121),+                                    ("Thursdayhh:mm", -5.120983351265121),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("Fridayyear", -4.715518243156957),+                                    ("minutemonth", -3.416235259026696),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.715518243156957),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("Aprilyear", -5.120983351265121),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.120983351265121),+                                    ("<duration> after|before|from <time>December",+                                     -5.120983351265121),+                                    ("yesterday<time-of-day> am|pm", -5.120983351265121),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -4.204692619390966),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.120983351265121),+                                    ("until <time-of-day>on <date>", -4.427836170705175),+                                    ("at <time-of-day>intersect", -4.715518243156957),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("dayminute", -3.175073202209808),+                                    ("intersectSeptember", -3.616905954488847),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("minuteday", -2.317622970358586),+                                    ("absorption of , after named dayintersect",+                                     -5.120983351265121),+                                    ("Februaryin|during the <part-of-day>", -5.120983351265121),+                                    ("week-endin <named-month>", -5.120983351265121),+                                    ("Octoberyear", -5.120983351265121),+                                    ("yearhh:mm", -5.120983351265121),+                                    ("hh:mmon <date>", -3.616905954488847),+                                    ("absorption of , after named daySeptember",+                                     -4.204692619390966),+                                    ("on <date>September", -4.715518243156957),+                                    ("at <time-of-day>on <date>", -4.715518243156957),+                                    ("absorption of , after named dayFebruary", -4.204692619390966),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.120983351265121),+                                    ("tomorrowat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.120983351265121),+                                    ("tomorrow<time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day>year", -5.120983351265121),+                                    ("yearminute", -5.120983351265121)],+                               n = 102}}),+       ("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.041453874828161, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5596157879354228),+                                    ("integer (0..19)", -0.8472978603872037)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.4353180712578455,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3448404862917295),+                                    ("integer (0..19)", -1.2321436812926323)],+                               n = 22}}),+       ("<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 = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 2}}),+       ("last|next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.430816798843313,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.627081138568543),+                                    ("integer (0..19)year (grain)", -3.3202283191284883),+                                    ("integer (numeric)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)second (grain) ", -3.3202283191284883),+                                    ("integer (0..19)hour (grain)", -3.3202283191284883),+                                    ("second", -2.8094026953624978),+                                    ("integer (numeric)second (grain) ", -3.3202283191284883),+                                    ("integer (numeric)year (grain)", -3.3202283191284883),+                                    ("day", -2.472930458741285), ("year", -2.8094026953624978),+                                    ("integer (numeric)week (grain)", -3.0325462466767075),+                                    ("integer (0..19)month (grain)", -3.3202283191284883),+                                    ("hour", -2.8094026953624978), ("month", -2.8094026953624978),+                                    ("integer (numeric)minute (grain)", -3.3202283191284883),+                                    ("integer (0..19)minute (grain)", -3.3202283191284883),+                                    ("integer (numeric)month (grain)", -3.3202283191284883),+                                    ("minute", -2.8094026953624978),+                                    ("integer (numeric)hour (grain)", -3.3202283191284883),+                                    ("integer (0..19)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)week (grain)", -3.3202283191284883)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               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}}),+       ("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}}),+       ("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.5363047090669756, unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1158318155251217),+                                    ("integer (0..19)", -2.2129729343043585)],+                               n = 62},+                   koData =+                     ClassData{prior = -0.8792494601938059,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.197890671877523e-2)],+                               n = 44}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -3.58351893845611,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8}}),+       ("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.7444404749474959, unseen = -4.605170185988091,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.3978952727983707),+                                    ("integer (0..19)year (grain)", -3.2088254890146994),+                                    ("integer (numeric)day (grain)", -2.515678308454754),+                                    ("integer (0..19)second (grain) ", -3.9019726695746444),+                                    ("integer (0..19)hour (grain)", -2.803360380906535),+                                    ("second", -3.9019726695746444),+                                    ("integer (numeric)year (grain)", -3.9019726695746444),+                                    ("day", -2.515678308454754), ("year", -2.9856819377004897),+                                    ("integer (numeric)week (grain)", -2.9856819377004897),+                                    ("integer (0..19)month (grain)", -3.4965075614664802),+                                    ("hour", -2.515678308454754), ("month", -3.4965075614664802),+                                    ("integer (numeric)minute (grain)", -2.9856819377004897),+                                    ("integer (0..19)minute (grain)", -2.803360380906535),+                                    ("minute", -2.2925347571405443),+                                    ("integer (numeric)hour (grain)", -3.4965075614664802),+                                    ("integer (0..19)week (grain)", -2.9856819377004897)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.6443570163905132, unseen = -4.68213122712422,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.8810693652338513),+                                    ("integer (0..19)year (grain)", -3.5742165457937967),+                                    ("integer (numeric)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)second (grain) ", -3.5742165457937967),+                                    ("integer (0..19)hour (grain)", -3.5742165457937967),+                                    ("second", -3.0633909220278057),+                                    ("integer (numeric)second (grain) ", -3.5742165457937967),+                                    ("integer (numeric)year (grain)", -3.5742165457937967),+                                    ("day", -2.7269186854065928), ("quarter", -3.979681653901961),+                                    ("year", -3.0633909220278057),+                                    ("integer (numeric)week (grain)", -3.2865344733420154),+                                    ("integer (0..19)month (grain)", -3.5742165457937967),+                                    ("hour", -1.9647786333596962), ("month", -3.0633909220278057),+                                    ("integer (numeric)minute (grain)", -3.5742165457937967),+                                    ("integer (0..19)minute (grain)", -3.5742165457937967),+                                    ("integer (numeric)month (grain)", -3.5742165457937967),+                                    ("minute", -3.0633909220278057),+                                    ("integer (numeric)hour (grain)", -2.1078794770003695),+                                    ("integer (0..19)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)week (grain)", -3.5742165457937967),+                                    ("integer (0..19)quarter (grain)", -3.979681653901961)],+                               n = 42}}),+       ("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.2847365622220242, unseen = -5.231108616854587,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer after|past <hour-of-day>", -3.8394523125933104),+                                    ("at <time-of-day>", -2.2300144001592104),+                                    ("<time-of-day> o'clock", -4.127134385045092),+                                    ("half after|past <hour-of-day>", -4.127134385045092),+                                    ("time-of-day (latent)", -1.7600107709134747),+                                    ("hhmm (latent)", -4.532599493153256),+                                    ("hh:mm", -2.181224235989778),+                                    ("quarter after|past <hour-of-day>", -4.532599493153256),+                                    ("about|exactly <time-of-day>", -4.532599493153256),+                                    ("until <time-of-day>", -3.8394523125933104),+                                    ("hour", -1.2939210409888755),+                                    ("<time-of-day> sharp|exactly", -4.532599493153256),+                                    ("minute", -1.6422277352570913),+                                    ("after <time-of-day>", -4.532599493153256)],+                               n = 85},+                   koData =+                     ClassData{prior = -1.3951833085371366, unseen = -4.290459441148391,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.1780538303479458),+                                    ("<hour-of-day> <integer>", -3.58351893845611),+                                    ("time-of-day (latent)", -1.0577902941478545),+                                    ("hour", -1.0185695809945732), ("minute", -2.890371757896165),+                                    ("after <time-of-day>", -3.58351893845611)],+                               n = 28}}),+       ("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.406722127027582e-2,+                               unseen = -4.02535169073515,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 54},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               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+                                   [("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 = -1.0116009116784799,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.6741486494265287),+                                    ("Martin Luther King's Day", -2.6741486494265287),+                                    ("Memorial Day", -2.6741486494265287),+                                    ("Mother's Day", -2.6741486494265287),+                                    ("day", -1.2878542883066382), ("Sunday", -2.6741486494265287),+                                    ("Thanksgiving Day", -2.6741486494265287),+                                    ("hour", -2.6741486494265287), ("Tuesday", -2.6741486494265287),+                                    ("week-end", -2.6741486494265287)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -3.0204248861443626),+                                    ("Monday", -3.0204248861443626), ("day", -2.1041341542702074),+                                    ("Sunday", -3.0204248861443626),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.7676619176489945),+                                    ("hour", -1.3156767939059373),+                                    ("week-end", -1.9218125974762528)],+                               n = 14}}),+       ("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.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.0794415416798357),+                                    ("Thursdayordinal (digits)", -2.4849066497880004),+                                    ("day", -2.0794415416798357),+                                    ("Augustordinal (digits)", -2.4849066497880004),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.0794415416798357),+                                    ("Tuesdayordinal (digits)", -2.4849066497880004),+                                    ("month", -1.2321436812926323),+                                    ("Marchordinal (digits)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustordinal (digits)", -1.6094379124341003),+                                    ("month", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("<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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 24}}),+       ("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.48550781578170077,+                               unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4733057381095205),+                                    ("hh:mmhh:mm", -1.6739764335716716),+                                    ("dayday", -2.772588722239781),+                                    ("hourhour", -2.2617630984737906),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -3.1780538303479458),+                                    ("<time-of-day> am|pm<time-of-day> am|pm",+                                     -2.4849066497880004)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.890371757896165),+                                    ("daymonth", -2.4849066497880004),+                                    ("<time-of-day> am|pmintersect", -2.890371757896165),+                                    ("hh:mm<time-of-day> am|pm", -2.4849066497880004),+                                    ("minuteminute", -1.9740810260220096),+                                    ("hourhour", -2.4849066497880004),+                                    ("minutehour", -2.4849066497880004),+                                    ("hh:mmintersect", -1.9740810260220096),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.890371757896165),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -2.890371757896165)],+                               n = 10}}),+       ("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}}),+       ("<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.8873031950009028,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.5163474893680884),+                                    ("hh:mmhh:mm", -1.5163474893680884),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.327277705584417),+                                    ("hourhour", -1.7676619176489945),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.327277705584417)],+                               n = 14},+                   koData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.2771447329921766),+                                    ("hh:mmtime-of-day (latent)", -1.5723966407537513),+                                    ("hh:mm<time-of-day> am|pm", -2.871679624884012),+                                    ("<time-of-day> am|pmtime-of-day (latent)",+                                     -3.2771447329921766),+                                    ("at <time-of-day><time-of-day> am|pm", -3.2771447329921766),+                                    ("hourhour", -2.0243817644968085),+                                    ("minutehour", -1.262241712449912),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2771447329921766),+                                    ("at <time-of-day>time-of-day (latent)", -2.871679624884012),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -2.871679624884012)],+                               n = 20}}),+       ("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.35667494393873245,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5257286443082556),+                                    ("Marchinteger (numeric)", -2.8134107167600364),+                                    ("Aprilinteger (numeric)", -3.2188758248682006),+                                    ("month", -0.8209805520698302),+                                    ("Februaryinteger (numeric)", -1.9661128563728327),+                                    ("Septemberinteger (numeric)", -2.8134107167600364),+                                    ("Octoberinteger (numeric)", -2.8134107167600364),+                                    ("Julyinteger (numeric)", -2.120263536200091)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.159484249353372),+                                    ("Marchinteger (numeric)", -2.5649493574615367),+                                    ("Aprilinteger (numeric)", -2.5649493574615367),+                                    ("month", -0.9555114450274363),+                                    ("Julyinteger (numeric)", -1.466337068793427)],+                               n = 9}}),+       ("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}}),+       ("seasons",+        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-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}}),+       ("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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hour", -1.2992829841302609)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.03688192726104),+                                    ("tomorrow", -2.03688192726104), ("day", -1.3437347467010947),+                                    ("time-of-day (latent)", -2.4423470353692043),+                                    ("<time-of-day> am|pm", -2.4423470353692043),+                                    ("Christmas", -2.03688192726104), ("hour", -1.749199854809259)],+                               n = 8}}),+       ("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}}),+       ("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}}),+       ("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.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.2992829841302609),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.9924301646902063),+                                    ("month", -0.7884573603642702),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.9924301646902063)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("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.10536051565782628,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.6026896854443837),+                                    ("Martin Luther King's Day", -2.6026896854443837),+                                    ("intersect", -2.6026896854443837),+                                    ("Monday", -2.6026896854443837), ("day", -1.2163953243244932),+                                    ("Thanksgiving Day", -2.6026896854443837),+                                    ("hour", -2.1972245773362196), ("seasons", -1.9095425048844386),+                                    ("week-end", -2.6026896854443837)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.7047480922384253),+                                    ("day", -1.7047480922384253)],+                               n = 1}}),+       ("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}})]
+ Duckling/Ranking/Classifiers/EN_XX.hs view
@@ -0,0 +1,2349 @@+-- 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.EN_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++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 = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253), ("hour", -1.2992829841302609),+                                    ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7740538191727457, unseen = -5.19295685089021,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 178},+                   koData =+                     ClassData{prior = -0.6182992897635128,+                               unseen = -5.3471075307174685,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 208}}),+       ("<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.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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 = -0.10536051565782628,+                               unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -3.6805112044434196),+                                    ("integer after|past <hour-of-day>", -3.6805112044434196),+                                    ("half after|past <hour-of-day>", -4.085976312551584),+                                    ("time-of-day (latent)", -1.7346010553881064),+                                    ("hhmm (latent)", -3.392829131991639),+                                    ("<time-of-day> am|pm", -1.7833912195575383),+                                    ("hh:mm", -3.169685580677429),+                                    ("about|exactly <time-of-day>", -3.6805112044434196),+                                    ("hour", -1.1415373333851437),+                                    ("<time-of-day> sharp|exactly", -4.085976312551584),+                                    ("minute", -1.8887517352153647)],+                               n = 54},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.1895840668738362),+                                    ("hour", -1.1895840668738362)],+                               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}}),+       ("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 = -2.409755157906053e-2,+                               unseen = -3.7612001156935624,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 41},+                   koData =+                     ClassData{prior = -3.7376696182833684,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.3364722366212129),+                                    ("integer (0..19)integer (20..90)", -1.252762968495368)],+                               n = 5}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4634795031687923, unseen = -6.169610732491456,+                               likelihoods =+                                 HashMap.fromList+                                   [("<datetime> - <datetime> (interval)on <date>",+                                     -4.558078578454241),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.558078578454241),+                                    ("hourday", -3.769621218089971),+                                    ("dayhour", -3.223077511721901),+                                    ("daymonth", -4.781222129768451),+                                    ("monthday", -5.0689042022202315),+                                    ("monthyear", -3.8649313978942956),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -5.474369310328396),+                                    ("Christmasyear", -5.474369310328396),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.474369310328396),+                                    ("houryear", -5.474369310328396),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.781222129768451),+                                    ("<time-of-day> am|pmintersect", -4.221606341833028),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -5.474369310328396),+                                    ("Marchyear", -5.474369310328396),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year",+                                     -5.0689042022202315),+                                    ("intersect<time-of-day> am|pm", -5.474369310328396),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -5.474369310328396),+                                    ("monthhour", -5.0689042022202315),+                                    ("last <day-of-week> of <time>year", -5.474369310328396),+                                    ("todayat <time-of-day>", -5.474369310328396),+                                    ("Thursday<time> timezone", -5.0689042022202315),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -5.474369310328396),+                                    ("dayday", -3.459466289786131),+                                    ("Thanksgiving Dayyear", -4.375757021660286),+                                    ("<time> <part-of-day>at <time-of-day>", -5.474369310328396),+                                    ("Tuesdayin <named-month>", -5.474369310328396),+                                    ("mm/ddat <time-of-day>", -5.474369310328396),+                                    ("tonightat <time-of-day>", -5.474369310328396),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -4.781222129768451),+                                    ("today<time-of-day> am|pm", -5.474369310328396),+                                    ("Februarythe <day-of-month> (ordinal)", -5.0689042022202315),+                                    ("at <time-of-day><time> <part-of-day>", -5.474369310328396),+                                    ("mm/dd<time-of-day> am|pm", -5.474369310328396),+                                    ("hourhour", -4.221606341833028),+                                    ("<time-of-day> am|pmon <date>", -3.459466289786131),+                                    ("Wednesdaythis|last|next <cycle>", -5.474369310328396),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.970291913552122),+                                    ("dayyear", -3.0320222749591914),+                                    ("last weekend of <named-month>year", -5.474369310328396),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("<time-of-day> am|pmtomorrow", -4.781222129768451),+                                    ("minutehour", -4.558078578454241),+                                    ("Mother's Dayyear", -5.474369310328396),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.0689042022202315),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -3.769621218089971),+                                    ("for <duration> from <time>December", -5.474369310328396),+                                    ("tomorrow<time-of-day> sharp|exactly", -5.474369310328396),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.558078578454241),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.0689042022202315),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.558078578454241),+                                    ("Mondayin|during the <part-of-day>", -5.474369310328396),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.0689042022202315),+                                    ("intersectin|during the <part-of-day>", -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -4.558078578454241),+                                    ("at <time-of-day>intersect", -5.0689042022202315),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.474369310328396),+                                    ("dayminute", -3.1717842173343502),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.0689042022202315),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -5.474369310328396),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.0689042022202315),+                                    ("<ordinal> <cycle> of <time>year", -5.474369310328396),+                                    ("minuteday", -2.0731719286662407),+                                    ("absorption of , after named dayintersect",+                                     -5.474369310328396),+                                    ("Octoberyear", -4.221606341833028),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -5.474369310328396),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.474369310328396),+                                    ("<day-of-month> (ordinal or number) <named-month>year",+                                     -5.474369310328396),+                                    ("year<time-of-day> am|pm", -5.474369310328396),+                                    ("Septemberyear", -5.0689042022202315),+                                    ("at <time-of-day>on <date>", -4.375757021660286),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.781222129768451),+                                    ("Halloweenyear", -5.474369310328396),+                                    ("dayweek", -5.474369310328396),+                                    ("weekyear", -5.0689042022202315),+                                    ("hh:mmin|during the <part-of-day>", -4.781222129768451),+                                    ("Father's Dayyear", -5.474369310328396),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.0689042022202315),+                                    ("February<time> <part-of-day>", -5.474369310328396),+                                    ("Martin Luther King's Dayyear", -5.0689042022202315),+                                    ("tomorrowat <time-of-day>", -4.781222129768451),+                                    ("between <time> and <time>on <date>", -4.781222129768451),+                                    ("at <time-of-day>tomorrow", -5.0689042022202315),+                                    ("tomorrow<time-of-day> am|pm", -5.474369310328396),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -5.474369310328396),+                                    ("black fridayyear", -5.0689042022202315),+                                    ("Labor Dayyear", -5.474369310328396),+                                    ("Februaryintersect", -5.474369310328396),+                                    ("last <cycle> of <time>year", -4.781222129768451),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -5.474369310328396),+                                    ("yearminute", -5.474369310328396)],+                               n = 173},+                   koData =+                     ClassData{prior = -0.9917982843823002, unseen = -5.817111159963204,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>year", -5.120983351265121),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.120983351265121),+                                    ("hourday", -5.120983351265121),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.120983351265121),+                                    ("dayhour", -3.329223882037066),+                                    ("daymonth", -3.041541809585285),+                                    ("monthday", -4.715518243156957),+                                    ("monthyear", -4.427836170705175),+                                    ("intersecthh:mm", -5.120983351265121),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.120983351265121),+                                    ("houryear", -5.120983351265121),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.120983351265121),+                                    ("until <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.427836170705175),+                                    ("<time-of-day> am|pmintersect", -3.868220382769753),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year",+                                     -4.204692619390966),+                                    ("Tuesdayafter <time-of-day>", -5.120983351265121),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("absorption of , after named dayJuly", -4.715518243156957),+                                    ("monthhour", -5.120983351265121),+                                    ("hourmonth", -4.427836170705175),+                                    ("todayat <time-of-day>", -5.120983351265121),+                                    ("dayday", -4.715518243156957),+                                    ("mm/ddat <time-of-day>", -4.715518243156957),+                                    ("<time-of-day> am|pmon <date>", -3.868220382769753),+                                    ("dayyear", -3.868220382769753),+                                    ("Thursdaymm/dd", -5.120983351265121),+                                    ("Thursdayat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.120983351265121),+                                    ("monthminute", -5.120983351265121),+                                    ("<time-of-day> am|pmtomorrow", -5.120983351265121),+                                    ("Thursdayhh:mm", -5.120983351265121),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.120983351265121),+                                    ("Fridayyear", -4.715518243156957),+                                    ("minutemonth", -3.416235259026696),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.715518243156957),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("Aprilyear", -5.120983351265121),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -4.715518243156957),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.120983351265121),+                                    ("<duration> after|before|from <time>December",+                                     -5.120983351265121),+                                    ("yesterday<time-of-day> am|pm", -5.120983351265121),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -4.204692619390966),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.120983351265121),+                                    ("until <time-of-day>on <date>", -4.427836170705175),+                                    ("at <time-of-day>intersect", -4.715518243156957),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("dayminute", -3.175073202209808),+                                    ("intersectSeptember", -3.616905954488847),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.120983351265121),+                                    ("minuteday", -2.317622970358586),+                                    ("absorption of , after named dayintersect",+                                     -5.120983351265121),+                                    ("Februaryin|during the <part-of-day>", -5.120983351265121),+                                    ("week-endin <named-month>", -5.120983351265121),+                                    ("Octoberyear", -5.120983351265121),+                                    ("yearhh:mm", -5.120983351265121),+                                    ("hh:mmon <date>", -3.616905954488847),+                                    ("absorption of , after named daySeptember",+                                     -4.204692619390966),+                                    ("on <date>September", -4.715518243156957),+                                    ("at <time-of-day>on <date>", -4.715518243156957),+                                    ("absorption of , after named dayFebruary", -4.204692619390966),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.120983351265121),+                                    ("tomorrowat <time-of-day>", -5.120983351265121),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.120983351265121),+                                    ("tomorrow<time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day><time-of-day> am|pm", -5.120983351265121),+                                    ("after <time-of-day>year", -5.120983351265121),+                                    ("yearminute", -5.120983351265121)],+                               n = 102}}),+       ("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.041453874828161, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5596157879354228),+                                    ("integer (0..19)", -0.8472978603872037)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.4353180712578455,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3448404862917295),+                                    ("integer (0..19)", -1.2321436812926323)],+                               n = 22}}),+       ("<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 = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 2}}),+       ("last|next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.430816798843313,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.627081138568543),+                                    ("integer (0..19)year (grain)", -3.3202283191284883),+                                    ("integer (numeric)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)second (grain) ", -3.3202283191284883),+                                    ("integer (0..19)hour (grain)", -3.3202283191284883),+                                    ("second", -2.8094026953624978),+                                    ("integer (numeric)second (grain) ", -3.3202283191284883),+                                    ("integer (numeric)year (grain)", -3.3202283191284883),+                                    ("day", -2.472930458741285), ("year", -2.8094026953624978),+                                    ("integer (numeric)week (grain)", -3.0325462466767075),+                                    ("integer (0..19)month (grain)", -3.3202283191284883),+                                    ("hour", -2.8094026953624978), ("month", -2.8094026953624978),+                                    ("integer (numeric)minute (grain)", -3.3202283191284883),+                                    ("integer (0..19)minute (grain)", -3.3202283191284883),+                                    ("integer (numeric)month (grain)", -3.3202283191284883),+                                    ("minute", -2.8094026953624978),+                                    ("integer (numeric)hour (grain)", -3.3202283191284883),+                                    ("integer (0..19)day (grain)", -3.0325462466767075),+                                    ("integer (0..19)week (grain)", -3.3202283191284883)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               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}}),+       ("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}}),+       ("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.5363047090669756, unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1158318155251217),+                                    ("integer (0..19)", -2.2129729343043585)],+                               n = 62},+                   koData =+                     ClassData{prior = -0.8792494601938059,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.197890671877523e-2)],+                               n = 44}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -3.58351893845611,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8}}),+       ("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.7444404749474959, unseen = -4.605170185988091,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.3978952727983707),+                                    ("integer (0..19)year (grain)", -3.2088254890146994),+                                    ("integer (numeric)day (grain)", -2.515678308454754),+                                    ("integer (0..19)second (grain) ", -3.9019726695746444),+                                    ("integer (0..19)hour (grain)", -2.803360380906535),+                                    ("second", -3.9019726695746444),+                                    ("integer (numeric)year (grain)", -3.9019726695746444),+                                    ("day", -2.515678308454754), ("year", -2.9856819377004897),+                                    ("integer (numeric)week (grain)", -2.9856819377004897),+                                    ("integer (0..19)month (grain)", -3.4965075614664802),+                                    ("hour", -2.515678308454754), ("month", -3.4965075614664802),+                                    ("integer (numeric)minute (grain)", -2.9856819377004897),+                                    ("integer (0..19)minute (grain)", -2.803360380906535),+                                    ("minute", -2.2925347571405443),+                                    ("integer (numeric)hour (grain)", -3.4965075614664802),+                                    ("integer (0..19)week (grain)", -2.9856819377004897)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.6443570163905132, unseen = -4.68213122712422,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.8810693652338513),+                                    ("integer (0..19)year (grain)", -3.5742165457937967),+                                    ("integer (numeric)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)second (grain) ", -3.5742165457937967),+                                    ("integer (0..19)hour (grain)", -3.5742165457937967),+                                    ("second", -3.0633909220278057),+                                    ("integer (numeric)second (grain) ", -3.5742165457937967),+                                    ("integer (numeric)year (grain)", -3.5742165457937967),+                                    ("day", -2.7269186854065928), ("quarter", -3.979681653901961),+                                    ("year", -3.0633909220278057),+                                    ("integer (numeric)week (grain)", -3.2865344733420154),+                                    ("integer (0..19)month (grain)", -3.5742165457937967),+                                    ("hour", -1.9647786333596962), ("month", -3.0633909220278057),+                                    ("integer (numeric)minute (grain)", -3.5742165457937967),+                                    ("integer (0..19)minute (grain)", -3.5742165457937967),+                                    ("integer (numeric)month (grain)", -3.5742165457937967),+                                    ("minute", -3.0633909220278057),+                                    ("integer (numeric)hour (grain)", -2.1078794770003695),+                                    ("integer (0..19)day (grain)", -3.2865344733420154),+                                    ("integer (0..19)week (grain)", -3.5742165457937967),+                                    ("integer (0..19)quarter (grain)", -3.979681653901961)],+                               n = 42}}),+       ("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.2847365622220242, unseen = -5.231108616854587,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer after|past <hour-of-day>", -3.8394523125933104),+                                    ("at <time-of-day>", -2.2300144001592104),+                                    ("<time-of-day> o'clock", -4.127134385045092),+                                    ("half after|past <hour-of-day>", -4.127134385045092),+                                    ("time-of-day (latent)", -1.7600107709134747),+                                    ("hhmm (latent)", -4.532599493153256),+                                    ("hh:mm", -2.181224235989778),+                                    ("quarter after|past <hour-of-day>", -4.532599493153256),+                                    ("about|exactly <time-of-day>", -4.532599493153256),+                                    ("until <time-of-day>", -3.8394523125933104),+                                    ("hour", -1.2939210409888755),+                                    ("<time-of-day> sharp|exactly", -4.532599493153256),+                                    ("minute", -1.6422277352570913),+                                    ("after <time-of-day>", -4.532599493153256)],+                               n = 85},+                   koData =+                     ClassData{prior = -1.3951833085371366, unseen = -4.290459441148391,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.1780538303479458),+                                    ("<hour-of-day> <integer>", -3.58351893845611),+                                    ("time-of-day (latent)", -1.0577902941478545),+                                    ("hour", -1.0185695809945732), ("minute", -2.890371757896165),+                                    ("after <time-of-day>", -3.58351893845611)],+                               n = 28}}),+       ("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.406722127027582e-2,+                               unseen = -4.02535169073515,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 54},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               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+                                   [("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 = -1.0116009116784799,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.6741486494265287),+                                    ("Martin Luther King's Day", -2.6741486494265287),+                                    ("Memorial Day", -2.6741486494265287),+                                    ("Mother's Day", -2.6741486494265287),+                                    ("day", -1.2878542883066382), ("Sunday", -2.6741486494265287),+                                    ("Thanksgiving Day", -2.6741486494265287),+                                    ("hour", -2.6741486494265287), ("Tuesday", -2.6741486494265287),+                                    ("week-end", -2.6741486494265287)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -3.0204248861443626),+                                    ("Monday", -3.0204248861443626), ("day", -2.1041341542702074),+                                    ("Sunday", -3.0204248861443626),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.7676619176489945),+                                    ("hour", -1.3156767939059373),+                                    ("week-end", -1.9218125974762528)],+                               n = 14}}),+       ("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.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.0794415416798357),+                                    ("Thursdayordinal (digits)", -2.4849066497880004),+                                    ("day", -2.0794415416798357),+                                    ("Augustordinal (digits)", -2.4849066497880004),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.0794415416798357),+                                    ("Tuesdayordinal (digits)", -2.4849066497880004),+                                    ("month", -1.2321436812926323),+                                    ("Marchordinal (digits)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustordinal (digits)", -1.6094379124341003),+                                    ("month", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("<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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("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}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 24}}),+       ("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.48550781578170077,+                               unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4733057381095205),+                                    ("hh:mmhh:mm", -1.6739764335716716),+                                    ("dayday", -2.772588722239781),+                                    ("hourhour", -2.2617630984737906),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -2.772588722239781),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -3.1780538303479458),+                                    ("<time-of-day> am|pm<time-of-day> am|pm",+                                     -2.4849066497880004)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.890371757896165),+                                    ("daymonth", -2.4849066497880004),+                                    ("<time-of-day> am|pmintersect", -2.890371757896165),+                                    ("hh:mm<time-of-day> am|pm", -2.4849066497880004),+                                    ("minuteminute", -1.9740810260220096),+                                    ("hourhour", -2.4849066497880004),+                                    ("minutehour", -2.4849066497880004),+                                    ("hh:mmintersect", -1.9740810260220096),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.890371757896165),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -2.890371757896165)],+                               n = 10}}),+       ("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}}),+       ("<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.8873031950009028,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.5163474893680884),+                                    ("hh:mmhh:mm", -1.5163474893680884),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.327277705584417),+                                    ("hourhour", -1.7676619176489945),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.327277705584417)],+                               n = 14},+                   koData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.2771447329921766),+                                    ("hh:mmtime-of-day (latent)", -1.5723966407537513),+                                    ("hh:mm<time-of-day> am|pm", -2.871679624884012),+                                    ("<time-of-day> am|pmtime-of-day (latent)",+                                     -3.2771447329921766),+                                    ("at <time-of-day><time-of-day> am|pm", -3.2771447329921766),+                                    ("hourhour", -2.0243817644968085),+                                    ("minutehour", -1.262241712449912),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2771447329921766),+                                    ("at <time-of-day>time-of-day (latent)", -2.871679624884012),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -2.871679624884012)],+                               n = 20}}),+       ("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.35667494393873245,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5257286443082556),+                                    ("Marchinteger (numeric)", -2.8134107167600364),+                                    ("Aprilinteger (numeric)", -3.2188758248682006),+                                    ("month", -0.8209805520698302),+                                    ("Februaryinteger (numeric)", -1.9661128563728327),+                                    ("Septemberinteger (numeric)", -2.8134107167600364),+                                    ("Octoberinteger (numeric)", -2.8134107167600364),+                                    ("Julyinteger (numeric)", -2.120263536200091)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.159484249353372),+                                    ("Marchinteger (numeric)", -2.5649493574615367),+                                    ("Aprilinteger (numeric)", -2.5649493574615367),+                                    ("month", -0.9555114450274363),+                                    ("Julyinteger (numeric)", -1.466337068793427)],+                               n = 9}}),+       ("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}}),+       ("seasons",+        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-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}}),+       ("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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.7047480922384253),+                                    ("<time-of-day> am|pm", -1.7047480922384253),+                                    ("hour", -1.2992829841302609)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.03688192726104),+                                    ("tomorrow", -2.03688192726104), ("day", -1.3437347467010947),+                                    ("time-of-day (latent)", -2.4423470353692043),+                                    ("<time-of-day> am|pm", -2.4423470353692043),+                                    ("Christmas", -2.03688192726104), ("hour", -1.749199854809259)],+                               n = 8}}),+       ("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}}),+       ("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}}),+       ("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.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.2992829841302609),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.9924301646902063),+                                    ("month", -0.7884573603642702),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.9924301646902063)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("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.10536051565782628,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.6026896854443837),+                                    ("Martin Luther King's Day", -2.6026896854443837),+                                    ("intersect", -2.6026896854443837),+                                    ("Monday", -2.6026896854443837), ("day", -1.2163953243244932),+                                    ("Thanksgiving Day", -2.6026896854443837),+                                    ("hour", -2.1972245773362196), ("seasons", -1.9095425048844386),+                                    ("week-end", -2.6026896854443837)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.7047480922384253),+                                    ("day", -1.7047480922384253)],+                               n = 1}}),+       ("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}})]
− Duckling/Ranking/Classifiers/ES.hs
@@ -1,1160 +0,0 @@--- 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.ES (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("midnight",-        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> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.5839478885949533, unseen = -4.0943445622221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 58},-                   koData =-                     ClassData{prior = -0.8157495026522777, unseen = -3.871201010907891,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 46}}),-       ("the day before yesterday",-        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(:|.|h)mm (time-of-day)",-        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}}),-       ("<named-month|named-day> past",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("el <time>", -1.2992829841302609),-                                    ("day", -0.7884573603642702),-                                    ("named-day", -1.2992829841302609)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dd[/-]mm",-        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}}),-       ("intersect by `de`",-        Classifier{okData =-                     ClassData{prior = -0.16362942378180204,-                               unseen = -4.812184355372417,-                               likelihoods =-                                 HashMap.fromList-                                   [("el <day-of-month> (non ordinal)intersect by `de`",-                                     -3.7054087560651467),-                                    ("day of month (1st)named-month", -3.1945831322991562),-                                    ("daymonth", -1.7594986070098335),-                                    ("monthyear", -3.7054087560651467),-                                    ("named-dayel proximo <cycle> ", -4.110873864173311),-                                    ("named-dayla <cycle> pasado", -4.110873864173311),-                                    ("el <time>named-month", -3.7054087560651467),-                                    ("dayyear", -2.164963715117998),-                                    ("dd-dd <month>(interval)year", -4.110873864173311),-                                    ("el <time>el <cycle> (proximo|que viene)", -4.110873864173311),-                                    ("two time tokens separated by \",\"named-month",-                                     -4.110873864173311),-                                    ("named-monthyear", -3.7054087560651467),-                                    ("el <time>year", -3.7054087560651467),-                                    ("el <time>la <cycle> pasado", -4.110873864173311),-                                    ("el <day-of-month> de <named-month>year", -3.7054087560651467),-                                    ("el <time>este|en un <cycle>", -3.7054087560651467),-                                    ("named-dayel <cycle> (proximo|que viene)", -4.110873864173311),-                                    ("el <day-of-month> (non ordinal)named-month",-                                     -2.406125771934886),-                                    ("<day-of-month> de <named-month>year", -3.7054087560651467),-                                    ("two time tokens separated by \",\"year", -3.417726683613366),-                                    ("two time tokens separated by \",\"intersect by `de`",-                                     -4.110873864173311),-                                    ("dayweek", -2.406125771934886),-                                    ("intersect by `de`year", -3.417726683613366),-                                    ("named-dayeste|en un <cycle>", -3.417726683613366)],-                               n = 45},-                   koData =-                     ClassData{prior = -1.890850371872286, unseen = -3.891820298110627,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthyear", -3.1780538303479458),-                                    ("hourmonth", -2.772588722239781),-                                    ("monthmonth", -3.1780538303479458),-                                    ("a las <time-of-day>named-month", -2.772588722239781),-                                    ("dayyear", -3.1780538303479458),-                                    ("minutemonth", -2.772588722239781),-                                    ("named-monthyear", -3.1780538303479458),-                                    ("de <datetime> - <datetime> (interval)named-month",-                                     -3.1780538303479458),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -3.1780538303479458),-                                    ("<day-of-month> de <named-month>year", -3.1780538303479458),-                                    ("intersect by `de`year", -3.1780538303479458),-                                    ("<hour-of-day> <integer> (as relative minutes)intersect by `de`",-                                     -3.1780538303479458),-                                    ("minuteyear", -3.1780538303479458)],-                               n = 8}}),-       ("n pasados <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..15)a\241o (grain)", -1.3862943611198906),-                                    ("year", -1.3862943611198906),-                                    ("number (0..15)mes (grain)", -1.3862943611198906),-                                    ("month", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> and half",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.3217558399823195),-                                    ("time-of-day (latent)", -1.3217558399823195),-                                    ("hour", -0.7621400520468967)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("pasados n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.4849066497880004),-                                    ("integer (numeric)dia (grain)", -2.4849066497880004),-                                    ("integer (numeric)mes (grain)", -2.4849066497880004),-                                    ("second", -2.4849066497880004),-                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),-                                    ("day", -2.4849066497880004),-                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),-                                    ("year", -2.4849066497880004), ("month", -2.4849066497880004),-                                    ("minute", -2.4849066497880004),-                                    ("integer (numeric)a\241o (grain)", -2.4849066497880004),-                                    ("number (0..15)semana (grain)", -2.4849066497880004)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("semana (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}}),-       ("two time tokens separated by \",\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayel <time>", -2.159484249353372),-                                    ("dayday", -0.8602012652231115),-                                    ("named-dayel <day-of-month> (non ordinal)",-                                     -2.5649493574615367),-                                    ("named-dayintersect by `de`", -1.466337068793427),-                                    ("named-day<day-of-month> de <named-month>",-                                     -2.5649493574615367),-                                    ("named-dayel <day-of-month> de <named-month>",-                                     -2.5649493574615367)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<dim time> de la manana",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.3217558399823195),-                                    ("time-of-day (latent)", -1.3217558399823195),-                                    ("hour", -0.7621400520468967)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("del mediod\237a",-        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> de <named-month>",-        Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..15)named-month", -2.151762203259462),-                                    ("integer (numeric)named-month", -0.9279867716373464),-                                    ("month", -0.7166776779701395)],-                               n = 20},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.8472978603872037),-                                    ("month", -0.8472978603872037)],-                               n = 2}}),-       ("<time-of-day> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.3528213746227423, unseen = -4.31748811353631,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> de <named-month>in the <part-of-day>",-                                     -3.6109179126442243),-                                    ("dayhour", -2.2246235515243336),-                                    ("tomorrowin the <part-of-day>", -3.6109179126442243),-                                    ("a las <time-of-day>del mediod\237a", -3.6109179126442243),-                                    ("el <day-of-month> de <named-month>in the <part-of-day>",-                                     -3.6109179126442243),-                                    ("hourhour", -2.2246235515243336),-                                    ("a las <time-of-day>in the <part-of-day>",-                                     -2.3581549441488563),-                                    ("intersectin the <part-of-day>", -3.6109179126442243),-                                    ("minutehour", -1.739115735742633),-                                    ("intersect by `de`in the <part-of-day>", -3.6109179126442243),-                                    ("<hour-of-day> and halfin the <part-of-day>",-                                     -3.20545280453606),-                                    ("named-dayin the <part-of-day>", -3.6109179126442243),-                                    ("<hour-of-day> and <relative minutes>del mediod\237a",-                                     -3.20545280453606),-                                    ("el <time>in the <part-of-day>", -3.6109179126442243),-                                    ("<hour-of-day> and quarterin the <part-of-day>",-                                     -2.6946271807700692),-                                    ("yesterdayin the <part-of-day>", -3.6109179126442243),-                                    ("time-of-day (latent)in the <part-of-day>",-                                     -2.917770732084279)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.213022639845854, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -1.4816045409242156),-                                    ("year (latent)del mediod\237a", -3.0910424533583156),-                                    ("monthhour", -3.0910424533583156),-                                    ("hourhour", -3.0910424533583156),-                                    ("named-monthin the <part-of-day>", -3.0910424533583156),-                                    ("year (latent)in the <part-of-day>", -1.5869650565820417),-                                    ("time-of-day (latent)in the <part-of-day>",-                                     -3.0910424533583156)],-                               n = 11}}),-       ("de <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.791759469228055),-                                    ("monthyear", -1.791759469228055),-                                    ("monthhour", -1.791759469228055),-                                    ("named-monthyear (latent)", -1.791759469228055),-                                    ("named-monthtime-of-day (latent)", -1.791759469228055),-                                    ("named-month<day-of-month> de <named-month>",-                                     -1.791759469228055)],-                               n = 3}}),-       ("<time-of-day> horas",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.252762968495368),-                                    ("time-of-day (latent)", -1.252762968495368),-                                    ("hour", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.7884573603642702),-                                    ("hour", -0.7884573603642702)],-                               n = 4}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.2578291093020998,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> de <named-month>in the <part-of-day>",-                                     -3.9415818076696905),-                                    ("dayhour", -1.9956716586143772),-                                    ("tomorrowin the <part-of-day>", -3.9415818076696905),-                                    ("el <day-of-month> de <named-month>in the <part-of-day>",-                                     -3.9415818076696905),-                                    ("hourhour", -3.0252910757955354),-                                    ("now<hour-of-day> minus quarter (as relative minutes)",-                                     -3.9415818076696905),-                                    ("dayyear", -3.0252910757955354),-                                    ("a las <time-of-day>in the <part-of-day>",-                                     -2.6888188391743224),-                                    ("intersectin the <part-of-day>", -3.9415818076696905),-                                    ("<named-month> <day-of-month>del <year>", -3.9415818076696905),-                                    ("minutehour", -2.33214389523559),-                                    ("intersect by `de`in the <part-of-day>", -3.9415818076696905),-                                    ("now<hour-of-day> and <relative minutes>",-                                     -3.9415818076696905),-                                    ("<hour-of-day> and halfin the <part-of-day>",-                                     -3.536116699561526),-                                    ("named-dayin the <part-of-day>", -3.9415818076696905),-                                    ("tomorrowa las <time-of-day>", -3.536116699561526),-                                    ("named-daya las <time-of-day>", -3.9415818076696905),-                                    ("named-dayintersect", -3.9415818076696905),-                                    ("dayminute", -3.0252910757955354),-                                    ("<named-month> <day-of-month>el <time>", -3.9415818076696905),-                                    ("named-day<dim time> de la manana", -3.9415818076696905),-                                    ("el <time>in the <part-of-day>", -3.9415818076696905),-                                    ("named-day<time-of-day> <part-of-day>", -3.9415818076696905),-                                    ("dd[/-]mmyear", -3.536116699561526),-                                    ("nowa las <time-of-day>", -3.536116699561526),-                                    ("<hour-of-day> and quarterin the <part-of-day>",-                                     -3.0252910757955354),-                                    ("yesterdayin the <part-of-day>", -3.9415818076696905)],-                               n = 34},-                   koData =-                     ClassData{prior = -1.4816045409242156, unseen = -4.02535169073515,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.3141860046725258),-                                    ("dayhour", -2.6210388241125804),-                                    ("<day-of-month> de <named-month>a las <time-of-day>",-                                     -3.3141860046725258),-                                    ("<time-of-day> am|pm<day-of-month> de <named-month>",-                                     -3.3141860046725258),-                                    ("monthhour", -2.908720896564361),-                                    ("now<hour-of-day> and <relative minutes>",-                                     -3.3141860046725258),-                                    ("dayminute", -2.908720896564361),-                                    ("named-monthin the <part-of-day>", -3.3141860046725258),-                                    ("named-montha las <time-of-day>", -3.3141860046725258),-                                    ("nowa las <time-of-day>", -2.6210388241125804),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -2.908720896564361),-                                    ("minuteyear", -2.908720896564361)],-                               n = 10}}),-       ("a las <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.338160893905101e-2,-                               unseen = -4.634728988229636,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> and half", -3.2386784521643803),-                                    ("<time-of-day> horas", -3.9318256327243257),-                                    ("<hour-of-day> and quarter", -3.0155349008501706),-                                    ("time-of-day (latent)", -1.2237754316221157),-                                    ("<hour-of-day> and <relative minutes>", -2.833213344056216),-                                    ("<time-of-day> am|pm", -3.9318256327243257),-                                    ("<hour-of-day> minus <integer> (as relative minutes)",-                                     -3.9318256327243257),-                                    ("<hour-of-day> minus quarter (as relative minutes)",-                                     -3.5263605246161616),-                                    ("hour", -1.1592369104845446), ("minute", -1.8523840910444898)],-                               n = 46},-                   koData =-                     ClassData{prior = -2.5257286443082556,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.791759469228055),-                                    ("<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,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.1786549963416462),-                                    ("number (0..15)", -0.6190392084062235),-                                    ("number (20..90)", -1.8718021769015913)],-                               n = 10}}),-       ("el <cycle> (proximo|que viene)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("semana (grain)", -1.540445040947149),-                                    ("mes (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135),-                                    ("a\241o (grain)", -1.9459101490553135),-                                    ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yesterday",-        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}}),-       ("<hour-of-day> and quarter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.4350845252893227),-                                    ("time-of-day (latent)", -1.252762968495368),-                                    ("hour", -0.7419373447293773)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dentro de <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hace <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8718021769015913), ("year", -1.8718021769015913),-                                    ("<integer> <unit-of-duration>", -0.9555114450274363),-                                    ("hour", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("el <day-of-month> de <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..15)named-month", -1.749199854809259),-                                    ("integer (numeric)named-month", -1.0560526742493137),-                                    ("month", -0.7375989431307791)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-month",-        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}}),-       ("el <time>",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -4.465908118654584,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month|named-day> past", -3.355735007585398),-                                    ("dd[/-]mm", -3.068052935133617),-                                    ("intersect by `de`", -2.257122718917288),-                                    ("<day-of-month> de <named-month>", -2.056452023455137),-                                    ("<time-of-day> <part-of-day>", -3.7612001156935624),-                                    ("intersect", -3.7612001156935624),-                                    ("day", -0.9279867716373464), ("year", -3.7612001156935624),-                                    ("named-day", -2.374905754573672),-                                    ("day of month (1st)", -3.355735007585398),-                                    ("<named-month|named-day> next", -3.7612001156935624),-                                    ("hour", -3.355735007585398)],-                               n = 36},-                   koData =-                     ClassData{prior = -2.9444389791664407, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -2.2512917986064953), ("hour", -2.2512917986064953),-                                    ("minute", -2.2512917986064953),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -2.2512917986064953)],-                               n = 2}}),-       ("now",-        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}}),-       ("ordinals (primero..10)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("evening", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (0..15)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.9318256327243257,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 49},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("este|en un <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.0296194171811581),-                                    ("semana (grain)", -1.0296194171811581),-                                    ("year", -1.9459101490553135),-                                    ("a\241o (grain)", -1.9459101490553135)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2006706954621511),-                                    ("number (0..15)", -1.7047480922384253)],-                               n = 9}}),-       ("dd-dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("mes (grain)",-        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}}),-       ("number (20..90)",-        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}}),-       ("<day-of-week> <day-of-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayinteger (numeric)", -0.6931471805599453),-                                    ("day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.3272129112084162,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.1939224684724346),-                                    ("number (0..15)", -0.3610133455373305)],-                               n = 31},-                   koData =-                     ClassData{prior = -1.276293465905562, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3364722366212129),-                                    ("number (0..15)", -1.252762968495368)],-                               n = 12}}),-       ("<hour-of-day> and <relative minutes>",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-                                     -2.1972245773362196),-                                    ("time-of-day (latent)number (0..15)", -2.6026896854443837),-                                    ("a las <time-of-day>number (20..90)", -2.1972245773362196),-                                    ("a las <time-of-day>number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-                                     -2.1972245773362196),-                                    ("hour", -0.8979415932059586),-                                    ("a las <time-of-day>number (0..15)", -2.6026896854443837),-                                    ("time-of-day (latent)number (20..90)", -2.1972245773362196)],-                               n = 10},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>number (20..90)", -1.6094379124341003),-                                    ("hour", -1.0986122886681098),-                                    ("time-of-day (latent)number (20..90)", -1.6094379124341003)],-                               n = 4}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3}}),-       ("en <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),-                                    ("day", -2.538973871058276), ("year", -2.538973871058276),-                                    ("<integer> <unit-of-duration>", -0.8649974374866046),-                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),-                                    ("minute", -1.845826690498331)],-                               n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("n <cycle> (proximo|que viene)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("integer (numeric)semana (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055),-                                    ("number (0..15)mes (grain)", -1.791759469228055),-                                    ("month", -1.791759469228055),-                                    ("integer (numeric)a\241o (grain)", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.028522096376982),-                                    ("integer (numeric)hora (grain)", -3.4339872044851463),-                                    ("integer (numeric)dia (grain)", -3.4339872044851463),-                                    ("number (0..15)segundo (grain)", -3.4339872044851463),-                                    ("second", -3.4339872044851463),-                                    ("number (0..15)a\241o (grain)", -3.028522096376982),-                                    ("integer (numeric)minutos (grain)", -2.740840023925201),-                                    ("day", -3.028522096376982), ("year", -2.740840023925201),-                                    ("number (0..15)mes (grain)", -3.028522096376982),-                                    ("number (0..15)hora (grain)", -2.740840023925201),-                                    ("hour", -2.3353749158170367), ("month", -3.028522096376982),-                                    ("number (0..15)dia (grain)", -3.4339872044851463),-                                    ("number (0..15)minutos (grain)", -3.028522096376982),-                                    ("number (16..19 21..29)hora (grain)", -3.4339872044851463),-                                    ("minute", -2.3353749158170367),-                                    ("integer (numeric)a\241o (grain)", -3.4339872044851463),-                                    ("number (0..15)semana (grain)", -3.028522096376982)],-                               n = 20},-                   koData =-                     ClassData{prior = -0.8109302162163288, unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.890371757896165),-                                    ("integer (numeric)hora (grain)", -2.890371757896165),-                                    ("integer (numeric)dia (grain)", -2.890371757896165),-                                    ("integer (numeric)mes (grain)", -3.295836866004329),-                                    ("second", -2.890371757896165),-                                    ("number (0..15)a\241o (grain)", -3.295836866004329),-                                    ("integer (numeric)semana (grain)", -3.295836866004329),-                                    ("integer (numeric)minutos (grain)", -2.890371757896165),-                                    ("day", -2.890371757896165),-                                    ("integer (numeric)segundo (grain)", -2.890371757896165),-                                    ("year", -2.6026896854443837),-                                    ("number (0..15)mes (grain)", -2.890371757896165),-                                    ("hour", -2.890371757896165), ("month", -2.6026896854443837),-                                    ("minute", -2.890371757896165),-                                    ("integer (numeric)a\241o (grain)", -2.890371757896165),-                                    ("number (0..15)semana (grain)", -3.295836866004329)],-                               n = 16}}),-       ("proximas n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)hora (grain)", -2.4849066497880004),-                                    ("integer (numeric)dia (grain)", -2.4849066497880004),-                                    ("second", -2.4849066497880004),-                                    ("number (0..15)a\241o (grain)", -2.4849066497880004),-                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),-                                    ("day", -2.4849066497880004),-                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),-                                    ("year", -2.4849066497880004),-                                    ("number (0..15)mes (grain)", -2.4849066497880004),-                                    ("hour", -2.4849066497880004), ("month", -2.4849066497880004),-                                    ("minute", -2.4849066497880004)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.252762968495368),-                                    ("time-of-day (latent)", -1.252762968495368),-                                    ("hour", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("n proximas <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("integer (numeric)mes (grain)", -1.791759469228055),-                                    ("integer (numeric)semana (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055), ("month", -1.791759469228055),-                                    ("integer (numeric)a\241o (grain)", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ano nuevo",-        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}}),-       ("la <cycle> pasado",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2039728043259361),-                                    ("semana (grain)", -1.2039728043259361),-                                    ("year", -1.6094379124341003),-                                    ("a\241o (grain)", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("la pasado <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("mes (grain)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList [("number (20..90)number (0..15)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day of month (1st)",-        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}}),-       ("a\241o (grain)",-        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}}),-       ("<hour-of-day> minus <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)number (0..15)", -1.252762968495368),-                                    ("hour", -0.8472978603872037),-                                    ("a las <time-of-day>number (0..15)", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month|named-day> next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("el <time>", -1.5040773967762742),-                                    ("day", -0.8109302162163288),-                                    ("named-day", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (16..19 21..29)",-        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}}),-       ("<dim time> de la tarde",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> and half", -2.5902671654458267),-                                    ("a las <time-of-day>", -1.6094379124341003),-                                    ("<hour-of-day> and quarter", -2.0794415416798357),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("hour", -1.491654876777717), ("minute", -1.3862943611198906)],-                               n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("el proximo <cycle> ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("semana (grain)", -1.540445040947149),-                                    ("mes (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135),-                                    ("a\241o (grain)", -1.9459101490553135),-                                    ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> minus quarter (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("a las <time-of-day>", -1.2992829841302609),-                                    ("time-of-day (latent)", -1.2992829841302609),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the day after tomorrow",-        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}}),-       ("del <year>",-        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}}),-       ("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}}),-       ("noon",-        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}}),-       ("evening",-        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}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.252762968495368, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.9459101490553135),-                                    ("dayday", -1.9459101490553135),-                                    ("hh(:|.|h)mm (time-of-day)hh(:|.|h)mm (time-of-day)",-                                     -1.9459101490553135),-                                    ("<day-of-month> de <named-month><day-of-month> de <named-month>",-                                     -1.9459101490553135)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.3364722366212129, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -2.3025850929940455),-                                    ("dayyear", -1.8971199848858813),-                                    ("named-month<day-of-month> de <named-month>",-                                     -2.3025850929940455),-                                    ("dd[/-]mmyear", -1.8971199848858813),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -1.8971199848858813),-                                    ("minuteyear", -1.8971199848858813)],-                               n = 5}}),-       ("el <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -6.453852113757118e-2,-                               unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2682639865946794),-                                    ("number (0..15)", -1.4469189829363254)],-                               n = 15},-                   koData =-                     ClassData{prior = -2.772588722239781, unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -0.40546510810816444)],-                               n = 1}}),-       ("segundo (grain)",-        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}}),-       ("<named-month> <day-of-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dia (grain)",-        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}}),-       ("in the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.3101549283038396, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -1.466337068793427),-                                    ("hour", -0.7731898882334817), ("evening", -2.159484249353372),-                                    ("morning", -1.6486586255873816)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.3217558399823195,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -1.3862943611198906),-                                    ("hour", -0.8754687373538999),-                                    ("morning", -1.3862943611198906)],-                               n = 4}}),-       ("morning",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("week-end",-        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}}),-       ("Nochevieja",-        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}}),-       ("hora (grain)",-        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}}),-       ("right now",-        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}}),-       ("Navidad",-        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}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 5}}),-       ("ce <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -1.6094379124341003), ("day", -1.3217558399823195),-                                    ("named-day", -2.0149030205422647),-                                    ("hour", -1.6094379124341003),-                                    ("week-end", -1.6094379124341003)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/ES_XX.hs view
@@ -0,0 +1,1248 @@+-- 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.ES_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("midnight",+        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}}),+       ("Martes",+        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> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5839478885949533, unseen = -4.0943445622221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 58},+                   koData =+                     ClassData{prior = -0.8157495026522777, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46}}),+       ("the day before yesterday",+        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(:|.|h)mm (time-of-day)",+        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}}),+       ("<named-month|named-day> past",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martes", -1.791759469228055),+                                    ("el <time>", -1.3862943611198906),+                                    ("Domingo", -1.791759469228055), ("day", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Abril",+        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[/-]mm",+        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}}),+       ("intersect by `de`",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -4.859812404361672,+                               likelihoods =+                                 HashMap.fromList+                                   [("Miercoleseste|en un <cycle>", -4.1588830833596715),+                                    ("el <day-of-month> (non ordinal)intersect by `de`",+                                     -3.7534179752515073),+                                    ("daymonth", -1.807507826196194),+                                    ("monthyear", -3.7534179752515073),+                                    ("el <day-of-month> (non ordinal)Abril", -4.1588830833596715),+                                    ("Marteseste|en un <cycle>", -4.1588830833596715),+                                    ("Miercolesel <cycle> (proximo|que viene)",+                                     -4.1588830833596715),+                                    ("el <time>Marzo", -3.7534179752515073),+                                    ("el <day-of-month> (non ordinal)Septiembre",+                                     -4.1588830833596715),+                                    ("Miercolesel proximo <cycle> ", -4.1588830833596715),+                                    ("Luneseste|en un <cycle>", -4.1588830833596715),+                                    ("dayyear", -2.2129729343043585),+                                    ("dd-dd <month>(interval)year", -4.1588830833596715),+                                    ("el <time>el <cycle> (proximo|que viene)",+                                     -4.1588830833596715),+                                    ("el <day-of-month> (non ordinal)Julio", -4.1588830833596715),+                                    ("el <time>year", -3.7534179752515073),+                                    ("Septiembreyear", -4.1588830833596715),+                                    ("el <time>la <cycle> pasado", -4.1588830833596715),+                                    ("day of month (1st)Marzo", -3.242592351485517),+                                    ("el <day-of-month> de <named-month>year", -3.7534179752515073),+                                    ("el <time>este|en un <cycle>", -3.7534179752515073),+                                    ("Mayoyear", -4.1588830833596715),+                                    ("<day-of-month> de <named-month>year", -3.7534179752515073),+                                    ("two time tokens separated by \",\"year", -3.4657359027997265),+                                    ("el <day-of-month> (non ordinal)Febrero", -4.1588830833596715),+                                    ("two time tokens separated by \",\"intersect by `de`",+                                     -4.1588830833596715),+                                    ("dayweek", -2.4541349911212467),+                                    ("intersect by `de`year", -3.4657359027997265),+                                    ("el <day-of-month> (non ordinal)Marzo", -3.4657359027997265),+                                    ("Domingola <cycle> pasado", -4.1588830833596715),+                                    ("two time tokens separated by \",\"Septiembre",+                                     -4.1588830833596715),+                                    ("el <day-of-month> (non ordinal)Mayo", -3.4657359027997265)],+                               n = 45},+                   koData =+                     ClassData{prior = -2.3025850929940455, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthyear", -3.1780538303479458),+                                    ("Julioyear", -3.1780538303479458),+                                    ("hourmonth", -2.772588722239781),+                                    ("monthmonth", -3.1780538303479458),+                                    ("a las <time-of-day>Julio", -3.1780538303479458),+                                    ("dayyear", -3.1780538303479458),+                                    ("<day-of-month> de <named-month>year", -3.1780538303479458),+                                    ("a las <time-of-day>Enero", -3.1780538303479458),+                                    ("de <datetime> - <datetime> (interval)Enero",+                                     -3.1780538303479458)],+                               n = 5}}),+       ("n pasados <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..15)a\241o (grain)", -1.3862943611198906),+                                    ("year", -1.3862943611198906),+                                    ("number (0..15)mes (grain)", -1.3862943611198906),+                                    ("month", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> and half",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.3217558399823195),+                                    ("time-of-day (latent)", -1.3217558399823195),+                                    ("hour", -0.7621400520468967)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("pasados n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.4849066497880004),+                                    ("integer (numeric)dia (grain)", -2.4849066497880004),+                                    ("integer (numeric)mes (grain)", -2.4849066497880004),+                                    ("second", -2.4849066497880004),+                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),+                                    ("day", -2.4849066497880004),+                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),+                                    ("year", -2.4849066497880004), ("month", -2.4849066497880004),+                                    ("minute", -2.4849066497880004),+                                    ("integer (numeric)a\241o (grain)", -2.4849066497880004),+                                    ("number (0..15)semana (grain)", -2.4849066497880004)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("semana (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}}),+       ("two time tokens separated by \",\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Viernesintersect by `de`", -1.466337068793427),+                                    ("dayday", -0.8602012652231115),+                                    ("Viernesel <day-of-month> de <named-month>",+                                     -2.5649493574615367),+                                    ("Viernesel <time>", -2.159484249353372),+                                    ("Lunes<day-of-month> de <named-month>", -2.5649493574615367),+                                    ("Viernesel <day-of-month> (non ordinal)",+                                     -2.5649493574615367)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<dim time> de la manana",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.3217558399823195),+                                    ("time-of-day (latent)", -1.3217558399823195),+                                    ("hour", -0.7621400520468967)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("del mediod\237a",+        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}}),+       ("Mayo",+        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}}),+       ("Jueves",+        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> de <named-month>",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..15)Marzo", -2.833213344056216),+                                    ("integer (numeric)Abril", -2.833213344056216),+                                    ("integer (numeric)Diciembre", -3.2386784521643803),+                                    ("number (0..15)Mayo", -2.833213344056216),+                                    ("integer (numeric)Enero", -3.2386784521643803),+                                    ("integer (numeric)Marzo", -2.322387720290225),+                                    ("integer (numeric)Febrero", -2.1400661634962708),+                                    ("integer (numeric)Septiembre", -3.2386784521643803),+                                    ("month", -0.8873031950009028),+                                    ("integer (numeric)Mayo", -3.2386784521643803),+                                    ("integer (numeric)Julio", -3.2386784521643803)],+                               n = 20},+                   koData =+                     ClassData{prior = -2.3978952727983707, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -1.6094379124341003),+                                    ("integer (numeric)Julio", -1.6094379124341003)],+                               n = 2}}),+       ("<time-of-day> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.3528213746227423, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> de <named-month>in the <part-of-day>",+                                     -3.6109179126442243),+                                    ("dayhour", -2.2246235515243336),+                                    ("Lunesin the <part-of-day>", -3.6109179126442243),+                                    ("tomorrowin the <part-of-day>", -3.6109179126442243),+                                    ("a las <time-of-day>del mediod\237a", -3.6109179126442243),+                                    ("el <day-of-month> de <named-month>in the <part-of-day>",+                                     -3.6109179126442243),+                                    ("hourhour", -2.2246235515243336),+                                    ("a las <time-of-day>in the <part-of-day>",+                                     -2.3581549441488563),+                                    ("intersectin the <part-of-day>", -3.6109179126442243),+                                    ("minutehour", -1.739115735742633),+                                    ("intersect by `de`in the <part-of-day>", -3.6109179126442243),+                                    ("<hour-of-day> and halfin the <part-of-day>",+                                     -3.20545280453606),+                                    ("<hour-of-day> and <relative minutes>del mediod\237a",+                                     -3.20545280453606),+                                    ("el <time>in the <part-of-day>", -3.6109179126442243),+                                    ("<hour-of-day> and quarterin the <part-of-day>",+                                     -2.6946271807700692),+                                    ("yesterdayin the <part-of-day>", -3.6109179126442243),+                                    ("time-of-day (latent)in the <part-of-day>",+                                     -2.917770732084279)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.213022639845854, unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -1.4816045409242156),+                                    ("year (latent)del mediod\237a", -3.0910424533583156),+                                    ("monthhour", -3.0910424533583156),+                                    ("hourhour", -3.0910424533583156),+                                    ("Febreroin the <part-of-day>", -3.0910424533583156),+                                    ("year (latent)in the <part-of-day>", -1.5869650565820417),+                                    ("time-of-day (latent)in the <part-of-day>",+                                     -3.0910424533583156)],+                               n = 11}}),+       ("de <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.791759469228055),+                                    ("monthyear", -1.791759469228055),+                                    ("Diciembretime-of-day (latent)", -1.791759469228055),+                                    ("monthhour", -1.791759469228055),+                                    ("Diciembreyear (latent)", -1.791759469228055),+                                    ("Diciembre<day-of-month> de <named-month>",+                                     -1.791759469228055)],+                               n = 3}}),+       ("<time-of-day> horas",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.252762968495368),+                                    ("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.7884573603642702),+                                    ("hour", -0.7884573603642702)],+                               n = 4}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.2113090936672069, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> de <named-month>in the <part-of-day>",+                                     -3.9219733362813143),+                                    ("dayhour", -1.9760631872260008),+                                    ("Lunesin the <part-of-day>", -3.9219733362813143),+                                    ("tomorrowin the <part-of-day>", -3.9219733362813143),+                                    ("el <day-of-month> de <named-month>in the <part-of-day>",+                                     -3.9219733362813143),+                                    ("hourhour", -3.005682604407159),+                                    ("now<hour-of-day> minus quarter (as relative minutes)",+                                     -3.9219733362813143),+                                    ("dayyear", -3.005682604407159),+                                    ("a las <time-of-day>in the <part-of-day>",+                                     -2.6692103677859462),+                                    ("intersectin the <part-of-day>", -3.9219733362813143),+                                    ("<named-month> <day-of-month>del <year>", -3.9219733362813143),+                                    ("minutehour", -2.312535423847214),+                                    ("intersect by `de`in the <part-of-day>", -3.9219733362813143),+                                    ("now<hour-of-day> and <relative minutes>",+                                     -3.9219733362813143),+                                    ("<hour-of-day> and halfin the <part-of-day>",+                                     -3.5165082281731497),+                                    ("tomorrowa las <time-of-day>", -3.5165082281731497),+                                    ("Miercoles<time-of-day> <part-of-day>", -3.9219733362813143),+                                    ("Miercoles<dim time> de la manana", -3.9219733362813143),+                                    ("dayminute", -3.005682604407159),+                                    ("<named-month> <day-of-month>el <time>", -3.9219733362813143),+                                    ("Miercolesa las <time-of-day>", -3.9219733362813143),+                                    ("el <time>in the <part-of-day>", -3.9219733362813143),+                                    ("Miercolesintersect", -3.9219733362813143),+                                    ("dd[/-]mmyear", -3.5165082281731497),+                                    ("nowa las <time-of-day>", -3.5165082281731497),+                                    ("<hour-of-day> and quarterin the <part-of-day>",+                                     -3.005682604407159),+                                    ("yesterdayin the <part-of-day>", -3.9219733362813143)],+                               n = 34},+                   koData =+                     ClassData{prior = -1.6582280766035324, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.1986731175506815),+                                    ("dayhour", -2.505525936990736),+                                    ("<day-of-month> de <named-month>a las <time-of-day>",+                                     -3.1986731175506815),+                                    ("<time-of-day> am|pm<day-of-month> de <named-month>",+                                     -3.1986731175506815),+                                    ("monthhour", -2.793208009442517),+                                    ("now<hour-of-day> and <relative minutes>",+                                     -3.1986731175506815),+                                    ("Diciembrea las <time-of-day>", -3.1986731175506815),+                                    ("dayminute", -2.793208009442517),+                                    ("Febreroin the <part-of-day>", -3.1986731175506815),+                                    ("nowa las <time-of-day>", -2.505525936990736)],+                               n = 8}}),+       ("Miercoles",+        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}}),+       ("a las <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.338160893905101e-2,+                               unseen = -4.634728988229636,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> and half", -3.2386784521643803),+                                    ("<time-of-day> horas", -3.9318256327243257),+                                    ("<hour-of-day> and quarter", -3.0155349008501706),+                                    ("time-of-day (latent)", -1.2237754316221157),+                                    ("<hour-of-day> and <relative minutes>", -2.833213344056216),+                                    ("<time-of-day> am|pm", -3.9318256327243257),+                                    ("<hour-of-day> minus <integer> (as relative minutes)",+                                     -3.9318256327243257),+                                    ("<hour-of-day> minus quarter (as relative minutes)",+                                     -3.5263605246161616),+                                    ("hour", -1.1592369104845446), ("minute", -1.8523840910444898)],+                               n = 46},+                   koData =+                     ClassData{prior = -2.5257286443082556,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.791759469228055),+                                    ("<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,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Lunes", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1786549963416462),+                                    ("number (0..15)", -0.6190392084062235),+                                    ("number (20..90)", -1.8718021769015913)],+                               n = 10}}),+       ("Viernes",+        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}}),+       ("el <cycle> (proximo|que viene)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("semana (grain)", -1.540445040947149),+                                    ("mes (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135),+                                    ("a\241o (grain)", -1.9459101490553135),+                                    ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yesterday",+        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}}),+       ("<hour-of-day> and quarter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.4350845252893227),+                                    ("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.7419373447293773)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dentro de <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hace <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8718021769015913), ("year", -1.8718021769015913),+                                    ("<integer> <unit-of-duration>", -0.9555114450274363),+                                    ("hour", -1.8718021769015913), ("month", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("el <day-of-month> de <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..15)Marzo", -2.6741486494265287),+                                    ("integer (numeric)Abril", -2.6741486494265287),+                                    ("number (0..15)Mayo", -2.268683541318364),+                                    ("integer (numeric)Marzo", -2.268683541318364),+                                    ("integer (numeric)Febrero", -2.6741486494265287),+                                    ("integer (numeric)Septiembre", -2.6741486494265287),+                                    ("month", -0.9694005571881036),+                                    ("integer (numeric)Mayo", -2.6741486494265287),+                                    ("integer (numeric)Julio", -2.6741486494265287)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("el <time>",+        Classifier{okData =+                     ClassData{prior = -2.7398974188114388e-2,+                               unseen = -4.477336814478207,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martes", -3.367295829986474),+                                    ("<named-month|named-day> past", -3.367295829986474),+                                    ("dd[/-]mm", -3.079613757534693),+                                    ("intersect by `de`", -2.268683541318364),+                                    ("<day-of-month> de <named-month>", -2.068012845856213),+                                    ("<time-of-day> <part-of-day>", -3.7727609380946383),+                                    ("intersect", -3.7727609380946383),+                                    ("Miercoles", -3.367295829986474),+                                    ("Domingo", -3.367295829986474), ("Lunes", -3.7727609380946383),+                                    ("day", -0.9395475940384223), ("year", -3.7727609380946383),+                                    ("day of month (1st)", -3.367295829986474),+                                    ("<named-month|named-day> next", -3.7727609380946383),+                                    ("hour", -3.367295829986474)],+                               n = 36},+                   koData =+                     ClassData{prior = -3.6109179126442243,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -2.1972245773362196), ("hour", -2.1972245773362196)],+                               n = 1}}),+       ("Septiembre",+        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.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (primero..10)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("evening", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (0..15)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Domingo",+        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}}),+       ("este|en un <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.0296194171811581),+                                    ("semana (grain)", -1.0296194171811581),+                                    ("year", -1.9459101490553135),+                                    ("a\241o (grain)", -1.9459101490553135)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2006706954621511),+                                    ("number (0..15)", -1.7047480922384253)],+                               n = 9}}),+       ("Lunes",+        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}}),+       ("dd-dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julio", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("mes (grain)",+        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}}),+       ("number (20..90)",+        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}}),+       ("<day-of-week> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("Juevesinteger (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.20359895524123955,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1939224684724346),+                                    ("number (0..15)", -0.3610133455373305)],+                               n = 31},+                   koData =+                     ClassData{prior = -1.6916760106710724,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.587786664902119),+                                    ("number (0..15)", -0.8109302162163288)],+                               n = 7}}),+       ("<hour-of-day> and <relative minutes>",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+                                     -2.1972245773362196),+                                    ("time-of-day (latent)number (0..15)", -2.6026896854443837),+                                    ("a las <time-of-day>number (20..90)", -2.1972245773362196),+                                    ("a las <time-of-day>number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+                                     -2.1972245773362196),+                                    ("hour", -0.8979415932059586),+                                    ("a las <time-of-day>number (0..15)", -2.6026896854443837),+                                    ("time-of-day (latent)number (20..90)", -2.1972245773362196)],+                               n = 10},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>number (20..90)", -1.6094379124341003),+                                    ("hour", -1.0986122886681098),+                                    ("time-of-day (latent)number (20..90)", -1.6094379124341003)],+                               n = 4}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3}}),+       ("en <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),+                                    ("day", -2.538973871058276), ("year", -2.538973871058276),+                                    ("<integer> <unit-of-duration>", -0.8649974374866046),+                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),+                                    ("minute", -1.845826690498331)],+                               n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> (proximo|que viene)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("integer (numeric)semana (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055),+                                    ("number (0..15)mes (grain)", -1.791759469228055),+                                    ("month", -1.791759469228055),+                                    ("integer (numeric)a\241o (grain)", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -4.143134726391533,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.028522096376982),+                                    ("integer (numeric)hora (grain)", -3.4339872044851463),+                                    ("integer (numeric)dia (grain)", -3.4339872044851463),+                                    ("number (0..15)segundo (grain)", -3.4339872044851463),+                                    ("second", -3.4339872044851463),+                                    ("number (0..15)a\241o (grain)", -3.028522096376982),+                                    ("integer (numeric)minutos (grain)", -2.740840023925201),+                                    ("day", -3.028522096376982), ("year", -2.740840023925201),+                                    ("number (0..15)mes (grain)", -3.028522096376982),+                                    ("number (0..15)hora (grain)", -2.740840023925201),+                                    ("hour", -2.3353749158170367), ("month", -3.028522096376982),+                                    ("number (0..15)dia (grain)", -3.4339872044851463),+                                    ("number (0..15)minutos (grain)", -3.028522096376982),+                                    ("number (16..19 21..29)hora (grain)", -3.4339872044851463),+                                    ("minute", -2.3353749158170367),+                                    ("integer (numeric)a\241o (grain)", -3.4339872044851463),+                                    ("number (0..15)semana (grain)", -3.028522096376982)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.890371757896165),+                                    ("integer (numeric)hora (grain)", -2.890371757896165),+                                    ("integer (numeric)dia (grain)", -2.890371757896165),+                                    ("integer (numeric)mes (grain)", -3.295836866004329),+                                    ("second", -2.890371757896165),+                                    ("number (0..15)a\241o (grain)", -3.295836866004329),+                                    ("integer (numeric)semana (grain)", -3.295836866004329),+                                    ("integer (numeric)minutos (grain)", -2.890371757896165),+                                    ("day", -2.890371757896165),+                                    ("integer (numeric)segundo (grain)", -2.890371757896165),+                                    ("year", -2.6026896854443837),+                                    ("number (0..15)mes (grain)", -2.890371757896165),+                                    ("hour", -2.890371757896165), ("month", -2.6026896854443837),+                                    ("minute", -2.890371757896165),+                                    ("integer (numeric)a\241o (grain)", -2.890371757896165),+                                    ("number (0..15)semana (grain)", -3.295836866004329)],+                               n = 16}}),+       ("proximas n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)hora (grain)", -2.4849066497880004),+                                    ("integer (numeric)dia (grain)", -2.4849066497880004),+                                    ("second", -2.4849066497880004),+                                    ("number (0..15)a\241o (grain)", -2.4849066497880004),+                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),+                                    ("day", -2.4849066497880004),+                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),+                                    ("year", -2.4849066497880004),+                                    ("number (0..15)mes (grain)", -2.4849066497880004),+                                    ("hour", -2.4849066497880004), ("month", -2.4849066497880004),+                                    ("minute", -2.4849066497880004)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.252762968495368),+                                    ("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("n proximas <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("integer (numeric)mes (grain)", -1.791759469228055),+                                    ("integer (numeric)semana (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055), ("month", -1.791759469228055),+                                    ("integer (numeric)a\241o (grain)", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ano nuevo",+        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}}),+       ("la <cycle> pasado",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2039728043259361),+                                    ("semana (grain)", -1.2039728043259361),+                                    ("year", -1.6094379124341003),+                                    ("a\241o (grain)", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("la pasado <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("mes (grain)", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("number (20..90)number (0..15)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day of month (1st)",+        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}}),+       ("Sabado",+        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}}),+       ("Diciembre",+        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\241o (grain)",+        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}}),+       ("Julio",+        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}}),+       ("<hour-of-day> minus <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)number (0..15)", -1.252762968495368),+                                    ("hour", -0.8472978603872037),+                                    ("a las <time-of-day>number (0..15)", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month|named-day> next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martes", -1.6094379124341003),+                                    ("Miercoles", -1.6094379124341003),+                                    ("el <time>", -1.6094379124341003),+                                    ("day", -0.916290731874155)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (16..19 21..29)",+        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}}),+       ("<dim time> de la tarde",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> and half", -2.5902671654458267),+                                    ("a las <time-of-day>", -1.6094379124341003),+                                    ("<hour-of-day> and quarter", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -1.491654876777717), ("minute", -1.3862943611198906)],+                               n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("el proximo <cycle> ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("semana (grain)", -1.540445040947149),+                                    ("mes (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135),+                                    ("a\241o (grain)", -1.9459101490553135),+                                    ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> minus quarter (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("a las <time-of-day>", -1.2992829841302609),+                                    ("time-of-day (latent)", -1.2992829841302609),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the day after tomorrow",+        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}}),+       ("del <year>",+        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}}),+       ("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}}),+       ("noon",+        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}}),+       ("evening",+        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}}),+       ("Febrero",+        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}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.791759469228055),+                                    ("dayday", -1.791759469228055),+                                    ("hh(:|.|h)mm (time-of-day)hh(:|.|h)mm (time-of-day)",+                                     -1.791759469228055),+                                    ("<day-of-month> de <named-month><day-of-month> de <named-month>",+                                     -1.791759469228055)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.9459101490553135),+                                    ("dayyear", -1.540445040947149),+                                    ("Diciembre<day-of-month> de <named-month>",+                                     -1.9459101490553135),+                                    ("dd[/-]mmyear", -1.540445040947149)],+                               n = 3}}),+       ("Enero",+        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}}),+       ("el <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2682639865946794),+                                    ("number (0..15)", -1.4469189829363254)],+                               n = 15},+                   koData =+                     ClassData{prior = -2.772588722239781, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -0.40546510810816444)],+                               n = 1}}),+       ("segundo (grain)",+        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}}),+       ("Marzo",+        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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -0.6931471805599453),+                                    ("Mayointeger (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dia (grain)",+        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}}),+       ("in the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.3101549283038396, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.466337068793427),+                                    ("hour", -0.7731898882334817), ("evening", -2.159484249353372),+                                    ("morning", -1.6486586255873816)],+                               n = 11},+                   koData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.3862943611198906),+                                    ("hour", -0.8754687373538999),+                                    ("morning", -1.3862943611198906)],+                               n = 4}}),+       ("morning",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("week-end",+        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}}),+       ("Nochevieja",+        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}}),+       ("hora (grain)",+        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}}),+       ("right now",+        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}}),+       ("Navidad",+        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}}),+       ("ce <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("season", -1.6094379124341003), ("Lunes", -2.0149030205422647),+                                    ("day", -1.3217558399823195), ("hour", -1.6094379124341003),+                                    ("week-end", -1.6094379124341003)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/ET.hs
@@ -1,22 +0,0 @@--- 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.ET (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/ET_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.ET_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/FR.hs
@@ -1,2601 +0,0 @@--- 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.FR (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("n derniers <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.803360380906535),-                                    ("number (0..16)seconde (grain)", -2.803360380906535),-                                    ("number (0..16)jour (grain)", -2.803360380906535),-                                    ("second", -2.3978952727983707),-                                    ("integer (numeric)ann\233e (grain)", -2.803360380906535),-                                    ("integer (numeric)seconde (grain)", -2.803360380906535),-                                    ("number (0..16)minute (grain)", -2.803360380906535),-                                    ("integer (numeric)jour (grain)", -2.803360380906535),-                                    ("day", -2.3978952727983707), ("year", -2.803360380906535),-                                    ("month", -2.803360380906535),-                                    ("integer (numeric)minute (grain)", -2.803360380906535),-                                    ("integer (numeric)mois (grain)", -2.803360380906535),-                                    ("minute", -2.3978952727983707),-                                    ("integer (numeric)semaine (grain)", -2.803360380906535)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> prochain",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2}}),-       ("du|dans le <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("soir", -1.3862943611198906),-                                    ("apr\232s-midi", -2.174751721484161),-                                    ("matin", -1.8382794848629478), ("hour", -0.7396671961948381)],-                               n = 20},-                   koData =-                     ClassData{prior = -0.8109302162163288,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("soir", -2.1972245773362196),-                                    ("apr\232s-midi", -2.1972245773362196),-                                    ("matin", -1.1856236656577395), ("hour", -0.750305594399894)],-                               n = 16}}),-       ("dans <duration>",-        Classifier{okData =-                     ClassData{prior = -8.338160893905101e-2,-                               unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.639057329615259),-                                    ("<integer> + '\"", -2.9267394020670396),-                                    ("second", -2.639057329615259), ("day", -2.9267394020670396),-                                    ("year", -2.639057329615259),-                                    ("<integer> <unit-of-duration>", -1.1921383466789333),-                                    ("une <unit-of-duration>", -2.2335922215070942),-                                    ("hour", -2.4159137783010487), ("month", -3.332204510175204),-                                    ("minute", -1.9459101490553135)],-                               n = 23},-                   koData =-                     ClassData{prior = -2.5257286443082556, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9459101490553135), ("day", -1.9459101490553135),-                                    ("une <unit-of-duration>", -1.540445040947149)],-                               n = 2}}),-       ("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>", -1.5040773967762742),-                                    ("hour", -0.8109302162163288),-                                    ("<time-of-day> heures", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("n <cycle> apr\232s",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..16)jour (grain)", -0.6931471805599453),-                                    ("day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.4793738175333202, unseen = -5.484796933490655,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 239},-                   koData =-                     ClassData{prior = -0.9654047826860945, unseen = -5.003946305945459,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 147}}),-       ("<named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("apr\232s le travail",-        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}}),-       ("n prochains <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.833213344056216),-                                    ("number (0..16)seconde (grain)", -2.833213344056216),-                                    ("second", -2.4277482359480516),-                                    ("integer (numeric)ann\233e (grain)", -2.833213344056216),-                                    ("integer (numeric)seconde (grain)", -2.833213344056216),-                                    ("number (0..16)minute (grain)", -2.833213344056216),-                                    ("integer (numeric)jour (grain)", -2.833213344056216),-                                    ("day", -2.833213344056216), ("year", -2.833213344056216),-                                    ("hour", -2.833213344056216), ("month", -2.833213344056216),-                                    ("integer (numeric)minute (grain)", -2.833213344056216),-                                    ("integer (numeric)mois (grain)", -2.833213344056216),-                                    ("minute", -2.4277482359480516),-                                    ("integer (numeric)semaine (grain)", -2.833213344056216),-                                    ("integer (numeric)heure (grain)", -2.833213344056216)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fin d'ann\233e",-        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-week> <day-of-month> \224 <time-of-day>)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -0.7827593392496325),-                                    ("named-dayinteger (numeric)\224|vers <time-of-day>",-                                     -1.6094379124341003),-                                    ("named-daynumber (0..16)<time-of-day> heures",-                                     -2.456735772821304),-                                    ("named-dayinteger (numeric)<time-of-day> heures",-                                     -2.169053700369523),-                                    ("named-daynumber (0..16)\224|vers <time-of-day>",-                                     -1.9459101490553135)],-                               n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("apr\232s le d\233jeuner",-        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}}),-       ("<named-day> en quinze",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("entre <datetime> et <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.25131442828090605,-                               unseen = -4.127134385045092,-                               likelihoods =-                                 HashMap.fromList-                                   [("le <time>le <day-of-month> (non ordinal)",-                                     -3.417726683613366),-                                    ("le <time>le <time>", -3.012261575505202),-                                    ("dayday", -1.7129785913749407),-                                    ("hourhour", -3.417726683613366),-                                    ("le <time>intersect", -3.417726683613366),-                                    ("miditime-of-day (latent)", -3.417726683613366),-                                    ("intersectle <day-of-month> (non ordinal)",-                                     -3.417726683613366),-                                    ("minutehour", -1.7129785913749407),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -3.012261575505202),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -2.7245795030534206),-                                    ("le <day-of-month> (non ordinal)le <day-of-month> (non ordinal)",-                                     -3.012261575505202),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -2.7245795030534206),-                                    ("intersectintersect", -3.417726683613366),-                                    ("intersectle <time>", -3.012261575505202),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -3.012261575505202)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.5040773967762742,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -2.740840023925201),-                                    ("dayday", -2.3353749158170367),-                                    ("le <day-of-month> (non ordinal)intersect",-                                     -2.740840023925201),-                                    ("minutehour", -1.824549292051046),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -2.740840023925201),-                                    ("le <day-of-month> (non ordinal)le <time>",-                                     -2.740840023925201),-                                    ("hh(:|h)mm (time-of-day)intersect", -2.740840023925201),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -2.740840023925201)],-                               n = 6}}),-       ("soir",-        Classifier{okData =-                     ClassData{prior = -0.1823215567939546, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("ann\233e (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}}),-       ("d\233but de semaine",-        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}}),-       ("<hour-of-day> moins <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("midinumber (0..16)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month|named-day> suivant|d'apr\232s",-        Classifier{okData =-                     ClassData{prior = -0.10178269430994236,-                               unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.5494451709255714),-                                    ("en semaine", -1.9616585060234524),-                                    ("intersect by 'de' or ','", -2.5494451709255714),-                                    ("day", -0.7915872533731978),-                                    ("named-day", -2.5494451709255714),-                                    ("le <time>", -1.9616585060234524)],-                               n = 28},-                   koData =-                     ClassData{prior = -2.3353749158170367, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("en semaine", -1.9459101490553135),-                                    ("day", -1.540445040947149), ("hour", -1.9459101490553135),-                                    ("<time-of-day> heures", -1.9459101490553135),-                                    ("le <time>", -1.9459101490553135)],-                               n = 3}}),-       ("seconde (grain)",-        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}}),-       ("<hour-of-day> et|pass\233 de <number>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>number (20..60)", -2.3513752571634776),-                                    ("<time-of-day> heuresinteger (numeric)", -2.3513752571634776),-                                    ("\224|vers <time-of-day>number (0..16)", -2.3513752571634776),-                                    ("hour", -0.9650808960435872),-                                    ("<time-of-day> heuresnumber (20..60)", -1.9459101490553135),-                                    ("<time-of-day> heuresnumber (0..16)", -1.9459101490553135)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("midiinteger (numeric)", -1.5040773967762742),-                                    ("hour", -1.5040773967762742)],-                               n = 1}}),-       ("<hour-of-day> moins quart",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("midi", -0.6931471805599453), ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("de <time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",-                                     -2.6855773452501515),-                                    ("minuteminute", -1.5869650565820417),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -3.0910424533583156),-                                    ("<time-of-day> heures<time-of-day> heures",-                                     -3.0910424533583156),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -2.6855773452501515),-                                    ("hourhour", -2.3978952727983707),-                                    ("minutehour", -2.174751721484161),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -2.3978952727983707),-                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",-                                     -2.6855773452501515),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.0910424533583156),-                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",-                                     -2.6855773452501515),-                                    ("<time-of-day> heurestime-of-day (latent)",-                                     -3.0910424533583156)],-                               n = 15},-                   koData =-                     ClassData{prior = -0.8109302162163288,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minutehour", -1.072636802264849),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -2.2512917986064953),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -2.538973871058276),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -2.538973871058276),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -1.845826690498331)],-                               n = 12}}),-       ("<datetime>-dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = -1.466337068793427, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.3217558399823195),-                                    ("<day-of-month> <named-month>named-month",-                                     -1.6094379124341003),-                                    ("day of month (premier)named-month", -2.0149030205422647)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.262364264467491, unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourmonth", -1.7578579175523736),-                                    ("named-monthnamed-month", -2.268683541318364),-                                    ("monthmonth", -2.268683541318364),-                                    ("year (latent)named-month", -1.7578579175523736),-                                    ("yearmonth", -1.7578579175523736),-                                    ("time-of-day (latent)named-month", -1.7578579175523736)],-                               n = 10}}),-       ("semaine (grain)",-        Classifier{okData =-                     ClassData{prior = -7.79615414697118e-2,-                               unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -2.5902671654458267,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<integer> + '\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("demain",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("mois (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}}),-       ("intersect by 'mais/par exemple/plut\244t'",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.3978952727983707),-                                    ("named-dayentre <time-of-day> et <time-of-day> (interval)",-                                     -1.5869650565820417),-                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",-                                     -3.0910424533583156),-                                    ("le <day-of-month> (non ordinal)\224|vers <time-of-day>",-                                     -2.6855773452501515),-                                    ("dayminute", -0.9509762898620451),-                                    ("named-dayentre <datetime> et <datetime> (interval)",-                                     -1.5869650565820417)],-                               n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("de <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.410986973710262, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("day of month (premier)<day-of-week> <day-of-month>",-                                     -3.4339872044851463),-                                    ("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",-                                     -3.4339872044851463),-                                    ("minuteminute", -2.517696472610991),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -3.4339872044851463),-                                    ("dayday", -2.517696472610991),-                                    ("<day-of-month> <named-month>day of month (premier)",-                                     -3.4339872044851463),-                                    ("minutehour", -3.028522096376982),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -3.4339872044851463),-                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",-                                     -3.4339872044851463),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.4339872044851463),-                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",-                                     -3.4339872044851463),-                                    ("<day-of-month> <named-month>intersect", -3.4339872044851463),-                                    ("intersect<day-of-week> <day-of-month>", -3.4339872044851463)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.27958486221916157,-                               unseen = -4.653960350157523,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -3.951243718581427),-                                    ("<day-of-month> <named-month>time-of-day (latent)",-                                     -3.951243718581427),-                                    ("hourday", -3.0349529867072724),-                                    ("dayhour", -3.951243718581427),-                                    ("yearhour", -3.951243718581427),-                                    ("intersectnamed-day", -3.951243718581427),-                                    ("time-of-day (latent)year (latent)", -3.951243718581427),-                                    ("houryear", -3.951243718581427),-                                    ("day of month (premier)named-day", -3.951243718581427),-                                    ("time-of-day (latent)intersect", -3.545778610473263),-                                    ("year (latent)intersect", -3.545778610473263),-                                    ("yearyear", -3.951243718581427),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -3.951243718581427),-                                    ("dayday", -2.2464956263430023),-                                    ("year (latent)year (latent)", -3.951243718581427),-                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",-                                     -3.951243718581427),-                                    ("hourhour", -3.951243718581427),-                                    ("time-of-day (latent)<day-of-week> <day-of-month>",-                                     -3.951243718581427),-                                    ("minutehour", -2.4471663218051534),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -3.545778610473263),-                                    ("year (latent)<day-of-week> <day-of-month>",-                                     -3.951243718581427),-                                    ("year (latent)time-of-day (latent)", -3.951243718581427),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -3.951243718581427),-                                    ("year (latent)named-day", -3.951243718581427),-                                    ("time-of-day (latent)named-day", -3.951243718581427),-                                    ("day of month (premier)intersect", -3.545778610473263),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.951243718581427),-                                    ("intersectintersect", -3.545778610473263),-                                    ("hh(:|h)mm (time-of-day)intersect", -3.951243718581427),-                                    ("yearday", -3.0349529867072724),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -3.545778610473263),-                                    ("<day-of-week> <day-of-month>named-day", -3.951243718581427),-                                    ("<day-of-week> <day-of-month>intersect", -3.545778610473263)],-                               n = 31}}),-       ("<ordinal> <cycle> de <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7346010553881064),-                                    ("ordinals (premier..seizieme)semaine (grain)named-month",-                                     -1.7346010553881064),-                                    ("ordinal (digits)jour (grain)named-month",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.2237754316221157),-                                    ("ordinals (premier..seizieme)semaine (grain)intersect",-                                     -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("premi\232re quinzaine de <named-month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("n <cycle> suivants",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -1.6094379124341003), ("month", -1.6094379124341003),-                                    ("integer (numeric)mois (grain)", -1.6094379124341003),-                                    ("integer (numeric)heure (grain)", -1.6094379124341003)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..16)jour (grain)", -1.2039728043259361),-                                    ("day", -1.2039728043259361)],-                               n = 2}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.24867991464851183,-                               unseen = -7.182352111885263,-                               likelihoods =-                                 HashMap.fromList-                                   [("apr\232s <time-of-day>named-month", -5.795297583491974),-                                    ("<day-of-month> <named-month><dim time> <part-of-day>",-                                     -6.082979655943755),-                                    ("intersect<dim time> du matin", -6.082979655943755),-                                    ("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -6.082979655943755),-                                    ("hh(:|h)mm (time-of-day)named-day", -6.082979655943755),-                                    ("<day-of-month> <named-month>d\233but de journ\233e",-                                     -6.48844476405192),-                                    ("demain<time-of-day> heures", -6.082979655943755),-                                    ("hourday", -4.237152965445424),-                                    ("<day-of-month> <named-month>year", -5.795297583491974),-                                    ("dayhour", -1.6132474408507682),-                                    ("daymonth", -3.070718080438554),-                                    ("monthyear", -4.984367367275645),-                                    ("<day-of-month> <named-month>d\233but de matin\233e",-                                     -6.48844476405192),-                                    ("dernier <cycle> de <time> (latent)year", -5.572154032177765),-                                    ("aujourd'huimilieu d'apr\232s-midi", -6.48844476405192),-                                    ("named-month<dim time> du matin", -6.082979655943755),-                                    ("<day-of-month> <named-month>\224|vers <time-of-day>",-                                     -4.348378600555649),-                                    ("dd mmyear", -5.235681795556552),-                                    ("named-monthd\233but d'apr\232s-midi", -6.48844476405192),-                                    ("aujourd'huifin d'apr\232s-midi", -6.48844476405192),-                                    ("le <day-of-month> (non ordinal)<dim time> du matin",-                                     -6.082979655943755),-                                    ("named-monthd\233but de matin\233e", -6.48844476405192),-                                    ("aujourd'huimilieu de matin\233e", -6.48844476405192),-                                    ("hh(:|h)mm (time-of-day)<day-of-week> <day-of-month>",-                                     -6.48844476405192),-                                    ("named-month\224|vers <time-of-day>", -5.235681795556552),-                                    ("named-dayday of month (premier)", -5.795297583491974),-                                    ("<time-of-day> heuresdu|dans le <part-of-day>",-                                     -4.984367367275645),-                                    ("named-monthd\233but de soir\233e", -6.48844476405192),-                                    ("<hour-of-day> et quart<dim time> <part-of-day>",-                                     -5.795297583491974),-                                    ("<day-of-week> <day-of-month>named-month", -5.795297583491974),-                                    ("le <time>du|dans le <part-of-day>", -5.572154032177765),-                                    ("aujourd'huifin de matin\233e", -6.48844476405192),-                                    ("aujourd'huifin de soir\233e", -6.48844476405192),-                                    ("\224|vers <time-of-day>ce <part-of-day>", -5.795297583491974),-                                    ("<day-of-month> <named-month>d\233but d'apr\232s-midi",-                                     -6.48844476405192),-                                    ("le <day-of-month> (non ordinal)<dim time> du soir",-                                     -5.235681795556552),-                                    ("named-monthmilieu de matin\233e", -6.48844476405192),-                                    ("aujourd'huid\233but de soir\233e", -6.48844476405192),-                                    ("named-monthfin de soir\233e", -6.48844476405192),-                                    ("entre <datetime> et <datetime> (interval)named-day",-                                     -6.082979655943755),-                                    ("<hour-of-day> et demice <part-of-day>", -5.795297583491974),-                                    ("le <time>fin de matin\233e", -6.48844476405192),-                                    ("intersectmilieu de journ\233e", -6.48844476405192),-                                    ("intersectfin de journ\233e", -6.48844476405192),-                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",-                                     -4.879006851617819),-                                    ("<hour-of-day> <integer> (as relative minutes)<day-of-week> <day-of-month>",-                                     -6.48844476405192),-                                    ("le <day-of-month> (non ordinal)named-month",-                                     -3.923495406590383),-                                    ("monthhour", -3.8857550786075357),-                                    ("le <time><time-of-day> heures", -5.38983247538381),-                                    ("le <time>fin d'apr\232s-midi", -6.48844476405192),-                                    ("hourmonth", -4.984367367275645),-                                    ("named-monthmilieu d'apr\232s-midi", -6.48844476405192),-                                    ("<time-of-day> heuresle <time>", -4.984367367275645),-                                    ("dayday", -4.137069506888442),-                                    ("aujourd'hui<hour-of-day> <integer> (as relative minutes)",-                                     -5.795297583491974),-                                    ("apr\232s <time-of-day>named-day", -6.082979655943755),-                                    ("named-dayle <cycle> prochain|suivant|d'apr\232s",-                                     -5.102150402932029),-                                    ("named-dayapr\232s <time-of-day>", -5.38983247538381),-                                    ("hourhour", -3.4680198779075573),-                                    ("<day-of-week> <day-of-month>\224|vers <time-of-day>",-                                     -4.783696671813495),-                                    ("le <time>intersect", -5.795297583491974),-                                    ("\224|vers <time-of-day><dim time> <part-of-day>",-                                     -6.48844476405192),-                                    ("aujourd'huiau d\233jeuner", -6.48844476405192),-                                    ("<time-of-day> heuresintersect", -5.572154032177765),-                                    ("intersectnamed-month", -4.879006851617819),-                                    ("intersect<time-of-day> heures", -5.795297583491974),-                                    ("<hour-of-day> et quartce <part-of-day>", -5.795297583491974),-                                    ("dayyear", -4.090549491253549),-                                    ("named-dayce|dans le <cycle>", -5.795297583491974),-                                    ("apr\232s-demain\224|vers <time-of-day>", -5.572154032177765),-                                    ("intersectfin d'apr\232s-midi", -6.48844476405192),-                                    ("le <ordinal> <cycle> de <time>year", -6.48844476405192),-                                    ("intersectmilieu d'apr\232s-midi", -6.48844476405192),-                                    ("named-monthfin de journ\233e", -6.48844476405192),-                                    ("le <time>milieu de journ\233e", -6.48844476405192),-                                    ("aujourd'huid\233but de journ\233e", -6.48844476405192),-                                    ("demain\224|vers <time-of-day>", -5.572154032177765),-                                    ("le <day-of-month> (non ordinal)intersect",-                                     -3.544005784885479),-                                    ("hourminute", -6.48844476405192),-                                    ("dd-dd <month>(interval)year", -6.48844476405192),-                                    ("intersect<day-of-month> <named-month>", -6.082979655943755),-                                    ("minutemonth", -6.082979655943755),-                                    ("\224|vers <time-of-day>demain", -6.48844476405192),-                                    ("minutehour", -4.616642587150328),-                                    ("named-daydu|dans le <part-of-day>", -6.082979655943755),-                                    ("aujourd'huimilieu de journ\233e", -6.48844476405192),-                                    ("named-monthyear", -4.984367367275645),-                                    ("intersectd\233but de soir\233e", -6.48844476405192),-                                    ("entre <datetime> et <datetime> (interval)named-month",-                                     -6.48844476405192),-                                    ("aujourd'huifin de journ\233e", -6.48844476405192),-                                    ("intersectdu|dans le <part-of-day>", -4.137069506888442),-                                    ("le <day-of-month> \224 <datetime>du|dans le <part-of-day>",-                                     -6.082979655943755),-                                    ("named-monthd\233but de journ\233e", -6.48844476405192),-                                    ("named-month<dim time> <part-of-day>", -6.082979655943755),-                                    ("le <day-of-month> (non ordinal)apr\232s <time-of-day>",-                                     -6.48844476405192),-                                    ("named-day<day-of-month> <named-month>", -5.795297583491974),-                                    ("named-dayle <time>", -4.348378600555649),-                                    ("le <day-of-month> (non ordinal)<dim time> <part-of-day>",-                                     -4.090549491253549),-                                    ("dd/-mm<time-of-day> heures", -6.082979655943755),-                                    ("de <datetime> - <datetime> (interval)named-month",-                                     -6.082979655943755),-                                    ("apr\232s <time-of-day>le <time>", -5.572154032177765),-                                    ("named-day<time-of-day> heures", -5.795297583491974),-                                    ("intersectd\233but d'apr\232s-midi", -6.48844476405192),-                                    ("named-dayfin d'apr\232s-midi", -6.082979655943755),-                                    ("<hour-of-day> et quartdemain", -5.795297583491974),-                                    ("<time-of-day> heuresce <time>", -6.48844476405192),-                                    ("le <time>d\233but d'apr\232s-midi", -6.48844476405192),-                                    ("<day-of-month> <named-month>du|dans le <part-of-day>",-                                     -6.082979655943755),-                                    ("named-dayintersect", -6.48844476405192),-                                    ("le <time><dim time> du matin", -6.082979655943755),-                                    ("apr\232s <time-of-day>intersect", -6.082979655943755),-                                    ("le <day-of-month> (non ordinal)\224|vers <time-of-day>",-                                     -4.542534614996606),-                                    ("<day-of-month> <named-month>d\233but de soir\233e",-                                     -6.48844476405192),-                                    ("hierdu|dans le <part-of-day>", -6.48844476405192),-                                    ("le <time>d\233but de soir\233e", -6.48844476405192),-                                    ("intersect<dim time> <part-of-day>", -6.082979655943755),-                                    ("dayminute", -4.783696671813495),-                                    ("intersectd\233but de journ\233e", -6.48844476405192),-                                    ("<ordinal> <cycle> de <time>year", -6.082979655943755),-                                    ("le <time>\224|vers <time-of-day>", -4.783696671813495),-                                    ("<day-of-month> <named-month><dim time> du matin",-                                     -6.082979655943755),-                                    ("intersectyear", -5.795297583491974),-                                    ("<day-of-week> <day-of-month><time-of-day> heures",-                                     -5.38983247538381),-                                    ("minuteday", -3.5180302984822185),-                                    ("le <time>d\233but de matin\233e", -6.48844476405192),-                                    ("<datetime> - <datetime> (interval)named-month",-                                     -5.235681795556552),-                                    ("<day-of-month> <named-month><time-of-day> heures",-                                     -4.984367367275645),-                                    ("aujourd'hui\224|vers <time-of-day>", -5.572154032177765),-                                    ("<day-of-month> <named-month>milieu d'apr\232s-midi",-                                     -6.48844476405192),-                                    ("day of month (premier)intersect", -6.48844476405192),-                                    ("<day-of-month> <named-month>fin d'apr\232s-midi",-                                     -6.48844476405192),-                                    ("entre <time-of-day> et <time-of-day> (interval)named-day",-                                     -6.082979655943755),-                                    ("named-monthfin de matin\233e", -6.48844476405192),-                                    ("named-day<named-month|named-day> suivant|d'apr\232s",-                                     -5.572154032177765),-                                    ("le <time>milieu de matin\233e", -6.48844476405192),-                                    ("aujourd'huid\233but de matin\233e", -5.38983247538381),-                                    ("<dim time> <part-of-day>apr\232s <time-of-day>",-                                     -6.48844476405192),-                                    ("le <time>fin de soir\233e", -6.48844476405192),-                                    ("<day-of-month> <named-month>milieu de matin\233e",-                                     -6.48844476405192),-                                    ("<day-of-month> <named-month>fin de soir\233e",-                                     -6.48844476405192),-                                    ("named-month<time-of-day> heures", -5.795297583491974),-                                    ("<day-of-month> <named-month>fin de matin\233e",-                                     -6.48844476405192),-                                    ("<time-of-day> heuresce <part-of-day>", -5.795297583491974),-                                    ("named-monthfin d'apr\232s-midi", -6.48844476405192),-                                    ("le <time>named-month", -5.235681795556552),-                                    ("apr\232s le <day-of-month>named-month", -6.48844476405192),-                                    ("aujourd'huid\233but d'apr\232s-midi", -6.48844476405192),-                                    ("le <time>milieu d'apr\232s-midi", -6.48844476405192),-                                    ("\224|vers <time-of-day>du|dans le <part-of-day>",-                                     -5.38983247538381),-                                    ("intersectintersect", -6.082979655943755),-                                    ("de <time-of-day> - <time-of-day> (interval)named-day",-                                     -5.572154032177765),-                                    ("de <datetime> - <datetime> (interval)named-day",-                                     -6.082979655943755),-                                    ("named-dayde <time-of-day> - <time-of-day> (interval)",-                                     -6.082979655943755),-                                    ("dayweek", -4.2912201867157), ("weekyear", -5.102150402932029),-                                    ("<hour-of-day> <integer> (as relative minutes)named-day",-                                     -6.082979655943755),-                                    ("hh(:|h)mm (time-of-day)intersect", -6.082979655943755),-                                    ("named-monthintersect", -6.082979655943755),-                                    ("<day-of-month> <named-month>fin de journ\233e",-                                     -6.48844476405192),-                                    ("<day-of-month> <named-month>milieu de journ\233e",-                                     -6.48844476405192),-                                    ("le <time>fin de journ\233e", -6.48844476405192),-                                    ("dd/-mm\224|vers <time-of-day>", -5.572154032177765),-                                    ("intersectfin de matin\233e", -6.48844476405192),-                                    ("day of month (premier)named-month", -4.696685294823864),-                                    ("named-day\224|vers <time-of-day>", -5.102150402932029),-                                    ("named-monthmilieu de journ\233e", -6.48844476405192),-                                    ("<day-of-month> <named-month>intersect", -6.082979655943755),-                                    ("intersectfin de soir\233e", -6.48844476405192),-                                    ("intersectmilieu de matin\233e", -6.48844476405192),-                                    ("intersect\224|vers <time-of-day>", -5.235681795556552),-                                    ("le <time>year", -4.984367367275645),-                                    ("le <time><dim time> <part-of-day>", -6.082979655943755),-                                    ("<time-of-day> - <time-of-day> (interval)named-day",-                                     -5.235681795556552),-                                    ("apr\232s-demain<time-of-day> heures", -6.082979655943755),-                                    ("le <time>d\233but de journ\233e", -6.48844476405192),-                                    ("intersectd\233but de matin\233e", -6.48844476405192),-                                    ("<datetime> - <datetime> (interval)named-day",-                                     -5.572154032177765)],-                               n = 549},-                   koData =-                     ClassData{prior = -1.5133532392387958, unseen = -6.269096283706261,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -5.574053367981417),-                                    ("hh(:|h)mm (time-of-day)named-day", -5.574053367981417),-                                    ("year<time-of-day> - <time-of-day> (interval)",-                                     -4.880906187421472),-                                    ("demain<time-of-day> heures", -4.880906187421472),-                                    ("hourday", -3.2226781108179394),-                                    ("<day-of-month> <named-month>year", -5.574053367981417),-                                    ("demainavant <time-of-day>", -5.574053367981417),-                                    ("dayhour", -2.529530930257994),-                                    ("le lendemain du <time>named-month", -5.574053367981417),-                                    ("daymonth", -3.9646154555473165),-                                    ("monthday", -5.574053367981417),-                                    ("monthyear", -4.880906187421472),-                                    ("yearhour", -4.880906187421472),-                                    ("houryear", -5.168588259873252),-                                    ("aujourd'hui<time-of-day> heures", -5.574053367981417),-                                    ("named-month\224|vers <time-of-day>", -3.8693052757429918),-                                    ("<time-of-day> heuresdu|dans le <part-of-day>",-                                     -4.880906187421472),-                                    ("<day-of-week> <day-of-month>named-month", -4.187759006861526),-                                    ("le <time>du|dans le <part-of-day>", -5.168588259873252),-                                    ("le <day-of-month> (non ordinal)<hour-of-day> <integer> (as relative minutes)",-                                     -4.880906187421472),-                                    ("named-month<day-of-month> <named-month>", -5.574053367981417),-                                    ("<time-of-day> heuresle <day-of-month> (non ordinal)",-                                     -4.657762636107262),-                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",-                                     -5.574053367981417),-                                    ("aujourd'huidu|dans le <part-of-day>", -5.168588259873252),-                                    ("le <day-of-month> (non ordinal)named-month",-                                     -5.574053367981417),-                                    ("monthhour", -3.3768287906451975),-                                    ("hourmonth", -4.321290399486049),-                                    ("dayday", -3.782293898753362),-                                    ("named-dayapr\232s <time-of-day>", -4.880906187421472),-                                    ("hourhour", -3.9646154555473165),-                                    ("named-day<hour-of-day> <integer> (as relative minutes)",-                                     -4.657762636107262),-                                    ("dayyear", -4.321290399486049),-                                    ("le <cycle> de <time>named-month", -5.168588259873252),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -4.880906187421472),-                                    ("demain\224|vers <time-of-day>", -4.657762636107262),-                                    ("<dim time> <part-of-day><hour-of-day> <integer> (as relative minutes)",-                                     -5.168588259873252),-                                    ("hourminute", -5.168588259873252),-                                    ("minutemonth", -4.880906187421472),-                                    ("named-monthyear", -4.880906187421472),-                                    ("intersect by 'de' or ','year", -5.168588259873252),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -3.8693052757429918),-                                    ("named-day<datetime> - <datetime> (interval)",-                                     -5.168588259873252),-                                    ("named-day<day-of-month> <named-month>", -4.187759006861526),-                                    ("weekmonth", -5.168588259873252),-                                    ("named-dayle <time>", -5.168588259873252),-                                    ("avant <time-of-day>named-day", -5.574053367981417),-                                    ("de <datetime> - <datetime> (interval)named-month",-                                     -5.574053367981417),-                                    ("le <day-of-month> (non ordinal)year", -5.168588259873252),-                                    ("named-day<time-of-day> heures", -5.168588259873252),-                                    ("<time-of-day> heuresnamed-day", -4.069975971205143),-                                    ("apr\232s <time-of-day><time-of-day> heures",-                                     -5.168588259873252),-                                    ("<time-of-day> heuresdd/-mm", -5.574053367981417),-                                    ("<time-of-day> - <time-of-day> (interval)du|dans le <part-of-day>",-                                     -5.168588259873252),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -5.168588259873252),-                                    ("le <day-of-month> (non ordinal)\224|vers <time-of-day>",-                                     -4.880906187421472),-                                    ("dayminute", -4.187759006861526),-                                    ("named-monthdu|dans le <part-of-day>", -5.168588259873252),-                                    ("intersectyear", -5.168588259873252),-                                    ("minuteday", -4.880906187421472),-                                    ("aujourd'hui\224|vers <time-of-day>", -4.880906187421472),-                                    ("<datetime>-dd <month>(interval)year", -5.168588259873252),-                                    ("<time-of-day> - <time-of-day> (interval)named-month",-                                     -4.657762636107262),-                                    ("le <day-of-month> (non ordinal)avant <time-of-day>",-                                     -5.574053367981417),-                                    ("<dim time> <part-of-day>apr\232s <time-of-day>",-                                     -5.574053367981417),-                                    ("named-month<time-of-day> heures", -4.475441079313307),-                                    ("demainapr\232s <time-of-day>", -5.574053367981417),-                                    ("<hour-of-day> <integer> (as relative minutes)named-day",-                                     -5.168588259873252),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -4.657762636107262),-                                    ("<time-of-day> - <time-of-day> (interval)intersect",-                                     -5.574053367981417),-                                    ("apr\232s <time-of-day>\224|vers <time-of-day>",-                                     -4.657762636107262),-                                    ("\224|vers <time-of-day>named-day", -4.880906187421472),-                                    ("le <time>year", -5.168588259873252),-                                    ("apr\232s <time-of-day>le <day-of-month> (non ordinal)",-                                     -5.168588259873252),-                                    ("de <datetime> - <datetime> (interval)<day-of-month> <named-month>",-                                     -5.574053367981417),-                                    ("minuteyear", -4.187759006861526),-                                    ("yearminute", -4.880906187421472),-                                    ("<dim time> <part-of-day><time-of-day> heures",-                                     -5.574053367981417)],-                               n = 155}}),-       ("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}}),-       ("ce <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("le <cycle> de <time>",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthmonth", -1.9459101490553135),-                                    ("mois (grain)named-month", -1.9459101490553135),-                                    ("weekday", -1.540445040947149),-                                    ("semaine (grain)<day-of-month> <named-month>",-                                     -1.540445040947149)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("semaine (grain)year (latent)", -1.6739764335716716),-                                    ("weekhour", -1.6739764335716716),-                                    ("semaine (grain)time-of-day (latent)", -1.6739764335716716),-                                    ("weekyear", -1.6739764335716716)],-                               n = 4}}),-       ("<hour-of-day> et trois quarts",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("<time-of-day> heures", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("le <day-of-month> \224 <datetime>",-        Classifier{okData =-                     ClassData{prior = -0.325422400434628, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)<time-of-day> heures", -1.9459101490553135),-                                    ("integer (numeric)<dim time> du soir", -2.8622008809294686),-                                    ("integer (numeric)intersect", -2.456735772821304),-                                    ("integer (numeric)<dim time> du matin", -2.8622008809294686),-                                    ("hour", -0.916290731874155),-                                    ("integer (numeric)time-of-day (latent)", -2.169053700369523),-                                    ("integer (numeric)<dim time> <part-of-day>",-                                     -2.456735772821304)],-                               n = 13},-                   koData =-                     ClassData{prior = -1.2809338454620642, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)year (latent)", -1.3350010667323402),-                                    ("year", -1.3350010667323402), ("hour", -2.2512917986064953),-                                    ("integer (numeric)time-of-day (latent)", -2.2512917986064953)],-                               n = 5}}),-       ("yyyy-mm-dd",-        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}}),-       ("le <cycle> dernier",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("ann\233e (grain)", -1.9459101490553135),-                                    ("semaine (grain)", -1.540445040947149),-                                    ("mois (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135), ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 19}}),-       ("soir de no\235l",-        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}}),-       ("fin de journ\233e",-        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}}),-       ("du <datetime>-<day-of-week> dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersectnamed-daynamed-month", -1.9459101490553135),-                                    ("day of month (premier)named-daynamed-month",-                                     -1.9459101490553135),-                                    ("<day-of-week> <day-of-month>named-daynamed-month",-                                     -1.9459101490553135),-                                    ("daydaymonth", -1.252762968495368)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)named-daynamed-month", -1.791759469228055),-                                    ("hourdaymonth", -1.791759469228055),-                                    ("time-of-day (latent)named-daynamed-month",-                                     -1.791759469228055),-                                    ("yeardaymonth", -1.791759469228055)],-                               n = 2}}),-       ("milieu de semaine",-        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}}),-       ("d\233but d'ann\233e",-        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}}),-       ("noel",-        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}}),-       ("fin de matin\233e",-        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}}),-       ("le <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -1.9802627296179754e-2)],-                               n = 49},-                   koData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.24512245803298496),-                                    ("numbers 22..29 32..39 .. 52..59", -1.5260563034950494)],-                               n = 21}}),-       ("du dd-<day-of-week> dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -0.6931471805599453),-                                    ("daymonth", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("en semaine",-        Classifier{okData =-                     ClassData{prior = -1.2656663733312759,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.3313571359544425,-                               unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28}}),-       ("numbers 22..29 32..39 .. 52..59",-        Classifier{okData =-                     ClassData{prior = -2.3025850929940455,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (20..60)number (0..16)", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.2876820724517809),-                                    ("integer (numeric)number (0..16)", -1.791759469228055)],-                               n = 9}}),-       ("<day-of-week> prochain",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by 'de' or ','",-        Classifier{okData =-                     ClassData{prior = -0.26469255422708216,-                               unseen = -4.430816798843313,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -3.3202283191284883),-                                    ("daymonth", -3.7256934272366524),-                                    ("hourmonth", -3.7256934272366524),-                                    ("dayday", -1.7797832781813394),-                                    ("named-dayle <cycle> prochain|suivant|d'apr\232s",-                                     -2.339399066116762),-                                    ("named-day<time-of-day> - <time-of-day> (interval)",-                                     -3.3202283191284883),-                                    ("named-dayle <time>", -1.5284688499004333),-                                    ("named-dayle <cycle> dernier", -3.7256934272366524),-                                    ("named-day<named-month|named-day> suivant|d'apr\232s",-                                     -2.8094026953624978),-                                    ("week-endnamed-month", -3.7256934272366524),-                                    ("dayweek", -1.5856272637403819),-                                    ("fin du moisnamed-month", -3.7256934272366524)],-                               n = 33},-                   koData =-                     ClassData{prior = -1.4586150226995167,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -2.917770732084279),-                                    ("dayhour", -2.917770732084279),-                                    ("daymonth", -2.001480000210124),-                                    ("du|dans le <part-of-day>noel", -2.917770732084279),-                                    ("en semainenamed-month", -2.512305623976115),-                                    ("hourmonth", -2.512305623976115),-                                    ("dayday", -2.512305623976115),-                                    ("en semaineintersect", -2.512305623976115),-                                    ("named-dayle <time>", -2.512305623976115),-                                    ("named-day<time-of-day> heures", -2.917770732084279),-                                    ("week-endnamed-month", -2.512305623976115)],-                               n = 10}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.624972813284271,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 100},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("milieu d'apr\232s-midi",-        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}}),-       ("ce <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("soir", -1.6094379124341003),-                                    ("apr\232s-midi", -1.0986122886681098),-                                    ("hour", -0.7621400520468967)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh(:|h)mm (time-of-day)",-        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}}),-       ("number (20..60)",-        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}}),-       ("hier",-        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}}),-       ("plus tard",-        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}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2876820724517809),-                                    ("numbers 22..29 32..39 .. 52..59", -2.0794415416798357),-                                    ("number (0..16)", -2.0794415416798357)],-                               n = 13}}),-       ("dd-dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("plus tard <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("du|dans le <part-of-day>", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime>-<day-of-week> dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersectnamed-daynamed-month", -2.0794415416798357),-                                    ("day of month (premier)named-daynamed-month",-                                     -1.791759469228055),-                                    ("<day-of-week> <day-of-month>named-daynamed-month",-                                     -1.791759469228055),-                                    ("daydaymonth", -0.9808292530117262)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)named-daynamed-month", -1.5686159179138452),-                                    ("hourdaymonth", -1.5686159179138452),-                                    ("time-of-day (latent)named-daynamed-month",-                                     -1.5686159179138452),-                                    ("yeardaymonth", -1.5686159179138452)],-                               n = 8}}),-       ("<dim time> du soir",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>", -1.55814461804655),-                                    ("hour", -0.7472144018302211),-                                    ("<time-of-day> heures", -1.1526795099383855)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8472978603872037),-                                    ("<time-of-day> heures", -0.8472978603872037)],-                               n = 2}}),-       ("aujourd'hui",-        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}}),-       ("midi",-        Classifier{okData =-                     ClassData{prior = -1.157452788691043, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.37729423114146804,-                               unseen = -3.258096538021482,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 24}}),-       ("toussaint",-        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}}),-       ("d\233but de soir\233e",-        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}}),-       ("<day-of-week> <day-of-month>",-        Classifier{okData =-                     ClassData{prior = -0.24512245803298496,-                               unseen = -3.6888794541139363,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynumber (0..16)", -2.5649493574615367),-                                    ("named-dayinteger (numeric)", -0.8303483020734304),-                                    ("day", -0.719122666963206)],-                               n = 18},-                   koData =-                     ClassData{prior = -1.5260563034950494, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayinteger (numeric)", -0.7731898882334817),-                                    ("day", -0.7731898882334817)],-                               n = 5}}),-       ("d'ici <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.252762968495368), ("day", -1.252762968495368),-                                    ("<integer> <unit-of-duration>", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("\224|vers <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.21936282847430377,-                               unseen = -5.420534999272286,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -4.722953221644475),-                                    ("<hour-of-day> et|pass\233 de <number>", -4.31748811353631),-                                    ("hh(:|h)mm (time-of-day)", -4.722953221644475),-                                    ("midi", -4.31748811353631),-                                    ("time-of-day (latent)", -1.587459005715325),-                                    ("<hour-of-day> et|pass\233 de <number> minutes",-                                     -4.31748811353631),-                                    ("minuit", -4.722953221644475),-                                    ("<hour-of-day> et quart", -4.31748811353631),-                                    ("hour", -0.8622235106038793),-                                    ("<hour-of-day> et demi", -4.722953221644475),-                                    ("minute", -2.8511510447428834),-                                    ("<time-of-day> heures", -1.587459005715325),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.8066624897703196)],-                               n = 106},-                   koData =-                     ClassData{prior = -1.6247053845648889, unseen = -4.189654742026425,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)", -3.0757749812275272),-                                    ("time-of-day (latent)", -1.5353299402803784),-                                    ("hour", -1.0388930539664873), ("minute", -2.5649493574615367),-                                    ("<time-of-day> heures", -1.8718021769015913),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.0757749812275272)],-                               n = 26}}),-       ("d\233but <named-month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("d\233but de matin\233e",-        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}}),-       ("apr\232s-midi",-        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}}),-       ("le <ordinal> <cycle> de <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7047480922384253),-                                    ("ordinals (premier..seizieme)semaine (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinal (digits)jour (grain)named-month",-                                     -1.7047480922384253),-                                    ("weekmonth", -1.2992829841302609),-                                    ("ordinals (premier..seizieme)semaine (grain)intersect",-                                     -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (premier..seizieme)",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("deuxi\232me quinzaine de <named-month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<dim time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.183001824763224e-2,-                               unseen = -5.834810737062605,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> <named-month>d\233but de journ\233e",-                                     -5.1387352967235715),-                                    ("dayhour", -1.6123747721074102),-                                    ("<day-of-month> <named-month>d\233but de matin\233e",-                                     -5.1387352967235715),-                                    ("aujourd'huimilieu d'apr\232s-midi", -5.1387352967235715),-                                    ("named-monthd\233but d'apr\232s-midi", -5.1387352967235715),-                                    ("aujourd'huifin d'apr\232s-midi", -5.1387352967235715),-                                    ("named-monthd\233but de matin\233e", -5.1387352967235715),-                                    ("aujourd'huimilieu de matin\233e", -5.1387352967235715),-                                    ("<time-of-day> heuresdu|dans le <part-of-day>",-                                     -3.6346578999472974),-                                    ("named-monthd\233but de soir\233e", -5.1387352967235715),-                                    ("le <time>du|dans le <part-of-day>", -4.222444564849416),-                                    ("aujourd'huifin de matin\233e", -5.1387352967235715),-                                    ("aujourd'huifin de soir\233e", -5.1387352967235715),-                                    ("\224|vers <time-of-day>ce <part-of-day>", -4.445588116163626),-                                    ("<day-of-month> <named-month>d\233but d'apr\232s-midi",-                                     -5.1387352967235715),-                                    ("named-daymatin", -4.733270188615407),-                                    ("named-monthmilieu de matin\233e", -5.1387352967235715),-                                    ("demainsoir", -5.1387352967235715),-                                    ("aujourd'huid\233but de soir\233e", -5.1387352967235715),-                                    ("named-monthfin de soir\233e", -5.1387352967235715),-                                    ("<hour-of-day> et demice <part-of-day>", -4.445588116163626),-                                    ("le <time>fin de matin\233e", -5.1387352967235715),-                                    ("intersectmilieu de journ\233e", -5.1387352967235715),-                                    ("intersectfin de journ\233e", -5.1387352967235715),-                                    ("monthhour", -3.3469758274955166),-                                    ("le <time>fin d'apr\232s-midi", -5.1387352967235715),-                                    ("named-monthmilieu d'apr\232s-midi", -5.1387352967235715),-                                    ("hourhour", -2.1430030231695802),-                                    ("aujourd'huiau d\233jeuner", -5.1387352967235715),-                                    ("<hour-of-day> et quartce <part-of-day>", -4.445588116163626),-                                    ("intersectfin d'apr\232s-midi", -5.1387352967235715),-                                    ("intersectmilieu d'apr\232s-midi", -5.1387352967235715),-                                    ("named-monthfin de journ\233e", -5.1387352967235715),-                                    ("le <time>milieu de journ\233e", -5.1387352967235715),-                                    ("aujourd'huid\233but de journ\233e", -5.1387352967235715),-                                    ("demainapr\232s-midi", -5.1387352967235715),-                                    ("minutehour", -3.26693311982198),-                                    ("named-daydu|dans le <part-of-day>", -4.733270188615407),-                                    ("aujourd'huimilieu de journ\233e", -5.1387352967235715),-                                    ("intersectd\233but de soir\233e", -5.1387352967235715),-                                    ("aujourd'huifin de journ\233e", -5.1387352967235715),-                                    ("intersectdu|dans le <part-of-day>", -2.787360039560094),-                                    ("le <day-of-month> \224 <datetime>du|dans le <part-of-day>",-                                     -4.733270188615407),-                                    ("named-monthd\233but de journ\233e", -5.1387352967235715),-                                    ("intersectd\233but d'apr\232s-midi", -5.1387352967235715),-                                    ("named-dayfin d'apr\232s-midi", -4.733270188615407),-                                    ("le <time>d\233but d'apr\232s-midi", -5.1387352967235715),-                                    ("<day-of-month> <named-month>du|dans le <part-of-day>",-                                     -4.733270188615407),-                                    ("<day-of-month> <named-month>d\233but de soir\233e",-                                     -5.1387352967235715),-                                    ("hierdu|dans le <part-of-day>", -5.1387352967235715),-                                    ("le <time>d\233but de soir\233e", -5.1387352967235715),-                                    ("intersectd\233but de journ\233e", -5.1387352967235715),-                                    ("le <time>d\233but de matin\233e", -5.1387352967235715),-                                    ("<day-of-month> <named-month>milieu d'apr\232s-midi",-                                     -5.1387352967235715),-                                    ("<day-of-month> <named-month>fin d'apr\232s-midi",-                                     -5.1387352967235715),-                                    ("named-daysoir", -5.1387352967235715),-                                    ("named-monthfin de matin\233e", -5.1387352967235715),-                                    ("le <time>milieu de matin\233e", -5.1387352967235715),-                                    ("aujourd'huid\233but de matin\233e", -4.0401230080554615),-                                    ("le <time>fin de soir\233e", -5.1387352967235715),-                                    ("<day-of-month> <named-month>milieu de matin\233e",-                                     -5.1387352967235715),-                                    ("<day-of-month> <named-month>fin de soir\233e",-                                     -5.1387352967235715),-                                    ("<day-of-month> <named-month>fin de matin\233e",-                                     -5.1387352967235715),-                                    ("<time-of-day> heuresce <part-of-day>", -4.445588116163626),-                                    ("named-monthfin d'apr\232s-midi", -5.1387352967235715),-                                    ("aujourd'huid\233but d'apr\232s-midi", -5.1387352967235715),-                                    ("le <time>milieu d'apr\232s-midi", -5.1387352967235715),-                                    ("\224|vers <time-of-day>du|dans le <part-of-day>",-                                     -4.0401230080554615),-                                    ("<day-of-month> <named-month>fin de journ\233e",-                                     -5.1387352967235715),-                                    ("<day-of-month> <named-month>milieu de journ\233e",-                                     -5.1387352967235715),-                                    ("le <time>fin de journ\233e", -5.1387352967235715),-                                    ("intersectfin de matin\233e", -5.1387352967235715),-                                    ("named-monthmilieu de journ\233e", -5.1387352967235715),-                                    ("named-dayapr\232s-midi", -5.1387352967235715),-                                    ("intersectfin de soir\233e", -5.1387352967235715),-                                    ("intersectmilieu de matin\233e", -5.1387352967235715),-                                    ("intersectapr\232s-midi", -4.222444564849416),-                                    ("le <time>d\233but de journ\233e", -5.1387352967235715),-                                    ("intersectd\233but de matin\233e", -5.1387352967235715),-                                    ("hiersoir", -5.1387352967235715)],-                               n = 129},-                   koData =-                     ClassData{prior = -2.5437471498109336, unseen = -4.663439094112067,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -3.5553480614894135),-                                    ("<time-of-day> heuresdu|dans le <part-of-day>",-                                     -3.2676659890376327),-                                    ("le <time>du|dans le <part-of-day>", -3.5553480614894135),-                                    ("aujourd'huidu|dans le <part-of-day>", -3.5553480614894135),-                                    ("monthhour", -3.5553480614894135),-                                    ("hourhour", -2.5745188084776873),-                                    ("<time-of-day> - <time-of-day> (interval)du|dans le <part-of-day>",-                                     -3.5553480614894135),-                                    ("named-monthdu|dans le <part-of-day>", -3.5553480614894135)],-                               n = 11}}),-       ("jour de l'an",-        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}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -4.574710978503383,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.15762894420358317),-                                    ("number (0..16)", -2.0794415416798357)],-                               n = 92},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.24740817331384096),-                                    ("numbers 22..29 32..39 .. 52..59", -2.681021528714291),-                                    ("number (20..60)", -3.597312260588446),-                                    ("number (0..16)", -2.093234863812172)],-                               n = 69}}),-       ("apr\232s-demain",-        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}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.46262352194811296,-                               unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 17},-                   koData =-                     ClassData{prior = -0.9932517730102834,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 10}}),-       ("<hour-of-day> et|pass\233 de <number> minutes",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>number (20..60)", -2.3025850929940455),-                                    ("<time-of-day> heuresinteger (numeric)", -2.3025850929940455),-                                    ("\224|vers <time-of-day>number (0..16)", -2.3025850929940455),-                                    ("hour", -0.916290731874155),-                                    ("<time-of-day> heuresnumber (20..60)", -1.8971199848858813),-                                    ("<time-of-day> heuresnumber (0..16)", -1.8971199848858813)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.580216829592325),-                                    ("number (0..16)semaine (grain)", -3.0910424533583156),-                                    ("number (0..16)ann\233e (grain)", -3.0910424533583156),-                                    ("number (0..16)seconde (grain)", -3.4965075614664802),-                                    ("number (0..16)jour (grain)", -3.4965075614664802),-                                    ("second", -3.4965075614664802),-                                    ("integer (numeric)ann\233e (grain)", -3.4965075614664802),-                                    ("number (0..16)minute (grain)", -3.0910424533583156),-                                    ("integer (numeric)jour (grain)", -3.0910424533583156),-                                    ("day", -2.803360380906535), ("year", -2.803360380906535),-                                    ("number (0..16)mois (grain)", -3.0910424533583156),-                                    ("hour", -2.580216829592325),-                                    ("number (0..16)heure (grain)", -3.0910424533583156),-                                    ("month", -3.0910424533583156),-                                    ("integer (numeric)minute (grain)", -2.803360380906535),-                                    ("minute", -2.3978952727983707),-                                    ("integer (numeric)semaine (grain)", -3.0910424533583156),-                                    ("numbers 22..29 32..39 .. 52..59heure (grain)",-                                     -3.4965075614664802),-                                    ("integer (numeric)heure (grain)", -3.4965075614664802)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.5108256237659907, unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.784189633918261),-                                    ("number (20..60)minute (grain)", -3.784189633918261),-                                    ("number (0..16)jour (grain)", -3.0910424533583156),-                                    ("integer (numeric)ann\233e (grain)", -3.784189633918261),-                                    ("number (0..16)minute (grain)", -3.784189633918261),-                                    ("day", -3.0910424533583156), ("year", -3.784189633918261),-                                    ("hour", -1.2584609896100056),-                                    ("number (0..16)heure (grain)", -1.9123874570166697),-                                    ("month", -3.784189633918261),-                                    ("integer (numeric)minute (grain)", -3.784189633918261),-                                    ("integer (numeric)mois (grain)", -3.784189633918261),-                                    ("minute", -3.0910424533583156),-                                    ("integer (numeric)semaine (grain)", -3.784189633918261),-                                    ("integer (numeric)heure (grain)", -1.9123874570166697)],-                               n = 33}}),-       ("avant-hier",-        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}}),-       ("d\233but de journ\233e",-        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}}),-       ("entre <time-of-day> et <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.1670540846631662,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourhour", -2.6741486494265287),-                                    ("miditime-of-day (latent)", -2.6741486494265287),-                                    ("minutehour", -0.9694005571881036),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -2.268683541318364),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -1.9810014688665833),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -1.9810014688665833),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -2.268683541318364)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.8718021769015913,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("minutehour", -1.2992829841302609),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -1.7047480922384253),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -1.7047480922384253)],-                               n = 2}}),-       ("d\233but du mois",-        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}}),-       ("matin",-        Classifier{okData =-                     ClassData{prior = -0.7472144018302211,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -0.6418538861723948,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("en <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("maintenant",-        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-week> 1er-<day-of-week> dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-daynamed-month", -0.6931471805599453),-                                    ("daydaymonth", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.553876891600541,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 93},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("au d\233jeuner",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("le lendemain du <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.3862943611198906),-                                    ("<day-of-month> <named-month>", -1.3862943611198906)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -1.6094379124341003),-                                    ("time-of-day (latent)", -1.6094379124341003),-                                    ("year", -1.6094379124341003), ("hour", -1.6094379124341003)],-                               n = 2}}),-       ("le <cycle> prochain|suivant|d'apr\232s",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.970291913552122,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.0608719606852628),-                                    ("ann\233e (grain)", -3.258096538021482),-                                    ("semaine (grain)", -1.0608719606852628),-                                    ("mois (grain)", -2.8526314299133175),-                                    ("day", -2.8526314299133175), ("year", -3.258096538021482),-                                    ("jour (grain)", -2.8526314299133175),-                                    ("month", -2.8526314299133175)],-                               n = 22},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("apr\232s <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -4.219507705176107,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7197859696029658),-                                    ("hh(:|h)mm (time-of-day)", -2.8183982582710754),-                                    ("midi", -3.5115454388310208), ("day", -2.8183982582710754),-                                    ("time-of-day (latent)", -2.8183982582710754),-                                    ("hour", -1.4321038971511848), ("minute", -1.9021075263969205),-                                    ("<time-of-day> heures", -2.8183982582710754),-                                    ("le <time>", -3.1060803307228566),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -2.5952547069568657)],-                               n = 27},-                   koData =-                     ClassData{prior = -0.4700036292457356,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("demain", -3.248434627109745),-                                    ("intersect", -2.4375044108934163),-                                    ("le <day-of-month> (non ordinal)", -3.9415818076696905),-                                    ("midi", -1.415853163361435), ("day", -3.0252910757955354),-                                    ("time-of-day (latent)", -3.0252910757955354),-                                    ("au d\233jeuner", -3.9415818076696905),-                                    ("hour", -0.8970593699462674),-                                    ("<time-of-day> heures", -3.0252910757955354)],-                               n = 45}}),-       ("dd/-mm",-        Classifier{okData =-                     ClassData{prior = -0.7375989431307791,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.6505875661411494, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("minuit",-        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}}),-       ("entre dd et dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("une <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -2.174751721484161, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.4849066497880004),-                                    ("ann\233e (grain)", -2.4849066497880004),-                                    ("seconde (grain)", -2.4849066497880004),-                                    ("semaine (grain)", -2.4849066497880004),-                                    ("second", -2.4849066497880004),-                                    ("minute (grain)", -2.4849066497880004),-                                    ("year", -2.4849066497880004),-                                    ("heure (grain)", -2.4849066497880004),-                                    ("hour", -2.4849066497880004), ("minute", -2.4849066497880004)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.12062798778861475,-                               unseen = -4.532599493153256,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2636920390275583),-                                    ("semaine (grain)", -1.2636920390275583),-                                    ("mois (grain)", -2.91235066461494), ("day", -2.12389330425067),-                                    ("jour (grain)", -2.12389330425067),-                                    ("month", -2.91235066461494)],-                               n = 39}}),-       ("<hour-of-day> et quart",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("midi", -2.1972245773362196),-                                    ("\224|vers <time-of-day>", -1.791759469228055),-                                    ("hour", -0.8109302162163288),-                                    ("<time-of-day> heures", -1.2809338454620642)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (0..16)",-        Classifier{okData =-                     ClassData{prior = -0.2682639865946794, unseen = -3.713572066704308,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 39},-                   koData =-                     ClassData{prior = -1.4469189829363254, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("heure (grain)",-        Classifier{okData =-                     ClassData{prior = -1.540445040947149, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -0.2411620568168881,-                               unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22}}),-       ("<named-month|named-day> dernier|pass\233",-        Classifier{okData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.791759469228055), ("named-day", -1.791759469228055)],-                               n = 1},-                   koData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -2.70805020110221),-                                    ("en semaine", -2.3025850929940455),-                                    ("day", -1.791759469228055),-                                    ("\224|vers <time-of-day>", -2.70805020110221),-                                    ("time-of-day (latent)", -2.70805020110221),-                                    ("year", -2.70805020110221), ("hour", -1.6094379124341003),-                                    ("<time-of-day> heures", -2.0149030205422647),-                                    ("le <time>", -2.3025850929940455)],-                               n = 10}}),-       ("milieu de journ\233e",-        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}}),-       ("dd/-mm/-yyyy",-        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}}),-       ("fin de semaine",-        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 mm yyyy",-        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}}),-       ("fin du mois",-        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 of month (premier)",-        Classifier{okData =-                     ClassData{prior = -6.453852113757118e-2,-                               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}}),-       ("jour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -1.4271163556401458,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("dd mm",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("dernier <cycle> de <time> (latent)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.4816045409242156),-                                    ("semaine (grain)intersect", -1.9924301646902063),-                                    ("weekmonth", -1.4816045409242156),-                                    ("semaine (grain)named-month", -1.9924301646902063),-                                    ("jour (grain)intersect", -1.9924301646902063),-                                    ("jour (grain)named-month", -1.9924301646902063)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("milieu de matin\233e",-        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}}),-       ("avant le d\233jeuner",-        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}}),-       ("1er mai",-        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}}),-       ("fin de soir\233e",-        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}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0185695809945732, unseen = -4.454347296253507,-                               likelihoods =-                                 HashMap.fromList-                                   [("demain<time-of-day> heures", -3.7495040759303713),-                                    ("day of month (premier)<day-of-week> <day-of-month>",-                                     -3.056356895370426),-                                    ("dayhour", -3.3440389678222067),-                                    ("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",-                                     -3.3440389678222067),-                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",-                                     -3.7495040759303713),-                                    ("minuteminute", -2.044755983691946),-                                    ("<day-of-month> <named-month><day-of-month> <named-month>",-                                     -3.3440389678222067),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -3.056356895370426),-                                    ("dayday", -1.8777018990287797),-                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",-                                     -3.7495040759303713),-                                    ("<day-of-month> <named-month>day of month (premier)",-                                     -3.3440389678222067),-                                    ("minutehour", -3.3440389678222067),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -3.7495040759303713),-                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",-                                     -3.056356895370426),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.7495040759303713),-                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",-                                     -3.3440389678222067),-                                    ("<day-of-month> <named-month>intersect", -3.3440389678222067),-                                    ("intersect<day-of-week> <day-of-month>", -3.3440389678222067)],-                               n = 26},-                   koData =-                     ClassData{prior = -0.4480247225269604, unseen = -4.836281906951478,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -3.7297014486341915),-                                    ("monthday", -2.8824035882469876),-                                    ("intersectnamed-day", -3.7297014486341915),-                                    ("day of month (premier)named-day", -3.4420193761824103),-                                    ("named-month<day-of-month> <named-month>",-                                     -3.7297014486341915),-                                    ("minuteminute", -3.7297014486341915),-                                    ("dayday", -1.4961092271270973),-                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",-                                     -3.7297014486341915),-                                    ("day of month (premier)<day-of-month> <named-month>",-                                     -4.135166556742356),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -3.4420193761824103),-                                    ("minutehour", -2.631089159966082),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -3.4420193761824103),-                                    ("day of month (premier)intersect", -2.8824035882469876),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.4420193761824103),-                                    ("intersectintersect", -3.2188758248682006),-                                    ("hh(:|h)mm (time-of-day)intersect", -3.7297014486341915),-                                    ("named-monthintersect", -3.7297014486341915),-                                    ("<day-of-week> <day-of-month>named-day", -3.4420193761824103),-                                    ("named-monthday of month (premier)", -3.7297014486341915),-                                    ("<day-of-week> <day-of-month>intersect", -2.8824035882469876),-                                    ("yearminute", -3.4420193761824103)],-                               n = 46}}),-       ("<day-of-month> <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.24256163717131135,-                               unseen = -4.653960350157523,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 51},-                   koData =-                     ClassData{prior = -1.5353299402803784,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 14}}),-       ("<cycle> prochain|suivant|d'apr\232s",-        Classifier{okData =-                     ClassData{prior = -8.338160893905101e-2,-                               unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.0986122886681098),-                                    ("ann\233e (grain)", -3.295836866004329),-                                    ("semaine (grain)", -1.0986122886681098),-                                    ("mois (grain)", -2.890371757896165),-                                    ("day", -2.6026896854443837), ("year", -3.295836866004329),-                                    ("jour (grain)", -2.6026896854443837),-                                    ("month", -2.890371757896165)],-                               n = 23},-                   koData =-                     ClassData{prior = -2.5257286443082556,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("mois (grain)", -1.791759469228055),-                                    ("day", -1.791759469228055),-                                    ("jour (grain)", -1.791759469228055),-                                    ("month", -1.791759469228055)],-                               n = 2}}),-       ("fin <named-month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.2321436812926323, unseen = -4.0943445622221,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",-                                     -2.691243082785829),-                                    ("minuteminute", -1.3694872428035094),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -3.3843902633457743),-                                    ("<time-of-day> heures<time-of-day> heures",-                                     -3.3843902633457743),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -2.468099531471619),-                                    ("hourhour", -2.691243082785829),-                                    ("minutehour", -2.468099531471619),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -2.691243082785829),-                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",-                                     -2.468099531471619),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.3843902633457743),-                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",-                                     -2.691243082785829),-                                    ("<time-of-day> heurestime-of-day (latent)",-                                     -3.3843902633457743)],-                               n = 21},-                   koData =-                     ClassData{prior = -0.3448404862917295, unseen = -4.787491742782046,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)time-of-day (latent)",-                                     -1.7833912195575383),-                                    ("hourhour", -1.3451362886263831),-                                    ("time-of-day (latent)<hour-of-day> <integer> (as relative minutes)",-                                     -4.085976312551584),-                                    ("hourminute", -4.085976312551584),-                                    ("minutehour", -1.7346010553881064),-                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",-                                     -2.987364023883474),-                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",-                                     -3.169685580677429),-                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",-                                     -3.169685580677429),-                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",-                                     -2.6996819514316934),-                                    ("time-of-day (latent)<time-of-day> heures",-                                     -2.2942168433235293)],-                               n = 51}}),-       ("<named-day> en huit",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> et demi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("midi", -1.791759469228055),-                                    ("\224|vers <time-of-day>", -1.791759469228055),-                                    ("hour", -0.8754687373538999),-                                    ("<time-of-day> heures", -1.3862943611198906)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dernier week-end de <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("du dd au dd(interval)",-        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}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("avant <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.4469189829363254,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.791759469228055),-                                    ("hour", -1.2809338454620642),-                                    ("<time-of-day> heures", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.2682639865946794,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.890371757896165),-                                    ("hh(:|h)mm (time-of-day)", -2.890371757896165),-                                    ("hier", -2.890371757896165), ("day", -2.890371757896165),-                                    ("time-of-day (latent)", -1.9740810260220096),-                                    ("au d\233jeuner", -2.890371757896165),-                                    ("hour", -1.1856236656577395), ("minute", -2.4849066497880004),-                                    ("<time-of-day> heures", -1.9740810260220096),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -2.890371757896165)],-                               n = 13}}),-       ("fin d'apr\232s-midi",-        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}}),-       ("<part-of-day> du <dim time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("matin<day-of-month> <named-month>", -1.0986122886681098),-                                    ("hourday", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("matinyear (latent)", -1.0986122886681098),-                                    ("houryear", -1.0986122886681098)],-                               n = 1}}),-       ("<time-of-day> heures",-        Classifier{okData =-                     ClassData{prior = -0.1653924946935067, unseen = -5.655991810819852,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>", -1.8238477837795555),-                                    ("time-of-day (latent)", -1.1526795099383855),-                                    ("apr\232s <time-of-day>", -4.26619481914876),-                                    ("hour", -0.7108467576593462),-                                    ("avant <time-of-day>", -4.553876891600541)],-                               n = 139},-                   koData =-                     ClassData{prior = -1.8809906029559977, unseen = -4.060443010546419,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>", -1.7404661748405046),-                                    ("time-of-day (latent)", -1.9636097261547143),-                                    ("apr\232s <time-of-day>", -2.4336133554004498),-                                    ("hour", -0.8241754429663495),-                                    ("avant <time-of-day>", -2.4336133554004498),-                                    ("minute", -3.349904087274605),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.349904087274605)],-                               n = 25}}),-       ("week-end",-        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}}),-       ("le <time>",-        Classifier{okData =-                     ClassData{prior = -0.2500510042341341, unseen = -5.942799375126701,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6820747146989494),-                                    ("<named-month|named-day> suivant|d'apr\232s",-                                     -3.742946675384212),-                                    ("<ordinal> <cycle> de <time>", -4.553876891600541),-                                    ("premi\232re quinzaine de <named-month>(interval)",-                                     -5.247024072160486),-                                    ("intersect", -1.988927534139004),-                                    ("soir de no\235l", -5.247024072160486),-                                    ("en semaine", -3.542275979922061),-                                    ("toussaint", -4.841558964052322), ("day", -1.3968764704504275),-                                    ("deuxi\232me quinzaine de <named-month>(interval)",-                                     -5.247024072160486),-                                    ("<dim time> <part-of-day>", -3.1675825304806504),-                                    ("dd/-mm", -3.994261103665118),-                                    ("dd/-mm/-yyyy", -4.553876891600541),-                                    ("dd mm yyyy", -3.994261103665118),-                                    ("day of month (premier)", -3.994261103665118),-                                    ("dd mm", -3.994261103665118), ("hour", -1.9148195619852824),-                                    ("month", -4.553876891600541),-                                    ("dernier <cycle> de <time> (latent)", -4.330733340286331),-                                    ("<day-of-month> <named-month>", -2.6820747146989494),-                                    ("<cycle> prochain|suivant|d'apr\232s", -2.8956488149970085),-                                    ("dernier week-end de <time>", -5.247024072160486),-                                    ("<ordinal> week-end de <time>", -4.841558964052322),-                                    ("<cycle> dernier", -4.148411783492376)],-                               n = 176},-                   koData =-                     ClassData{prior = -1.5085119938441398, unseen = -4.859812404361672,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month|named-day> suivant|d'apr\232s",-                                     -4.1588830833596715),-                                    ("intersect", -3.242592351485517),-                                    ("en semaine", -2.0794415416798357),-                                    ("day", -1.556193397915288),-                                    ("<dim time> <part-of-day>", -3.7534179752515073),-                                    ("dd/-mm", -3.4657359027997265),-                                    ("<named-month|named-day> dernier|pass\233",-                                     -3.7534179752515073),-                                    ("day of month (premier)", -4.1588830833596715),-                                    ("dd mm", -3.4657359027997265), ("hour", -2.1439800628174073),-                                    ("<day-of-month> <named-month>", -4.1588830833596715),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.4541349911212467),-                                    ("minute", -2.4541349911212467),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -2.6548056865833978)],-                               n = 50}}),-       ("apr\232s le <day-of-month>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("n <cycle> passes|precedents",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("integer (numeric)ann\233e (grain)", -1.6094379124341003),-                                    ("year", -1.6094379124341003),-                                    ("integer (numeric)semaine (grain)", -1.6094379124341003)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -1.3862943611198906),-                                    ("number (0..16)heure (grain)", -1.3862943611198906)],-                               n = 1}}),-       ("il y a <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8718021769015913), ("year", -1.8718021769015913),-                                    ("<integer> <unit-of-duration>", -0.9555114450274363),-                                    ("hour", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> week-end de <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (premier..seizieme)named-month",-                                     -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<dim time> du matin",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224|vers <time-of-day>", -1.7346010553881064),-                                    ("hour", -0.7537718023763802),-                                    ("<time-of-day> heures", -1.041453874828161)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("<time-of-day> heures", -0.916290731874155)],-                               n = 1}}),-       ("d\233but d'apr\232s-midi",-        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}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -0.8266785731844679, unseen = -4.454347296253507,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuitnumber (0..16)", -3.3440389678222067),-                                    ("midinumber (20..60)", -3.7495040759303713),-                                    ("\224|vers <time-of-day>number (20..60)", -3.7495040759303713),-                                    ("<time-of-day> heuresinteger (numeric)", -1.264597426142371),-                                    ("\224|vers <time-of-day>number (0..16)", -3.3440389678222067),-                                    ("midinumber (0..16)", -3.7495040759303713),-                                    ("hour", -0.8591323180342064),-                                    ("<time-of-day> heuresnumber (20..60)", -3.3440389678222067),-                                    ("\224|vers <time-of-day>integer (numeric)",-                                     -3.7495040759303713),-                                    ("<time-of-day> heuresnumber (0..16)", -3.3440389678222067)],-                               n = 35},-                   koData =-                     ClassData{prior = -0.5753641449035618, unseen = -4.663439094112067,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)numbers 22..29 32..39 .. 52..59",-                                     -3.960813169597578),-                                    ("time-of-day (latent)number (0..16)", -3.5553480614894135),-                                    ("<time-of-day> heuresinteger (numeric)", -2.5745188084776873),-                                    ("avant <time-of-day>integer (numeric)", -3.960813169597578),-                                    ("time-of-day (latent)integer (numeric)", -1.3217558399823195),-                                    ("apr\232s <time-of-day>integer (numeric)", -3.044522437723423),-                                    ("hour", -0.8253189536684283),-                                    ("\224|vers <time-of-day>integer (numeric)",-                                     -3.5553480614894135),-                                    ("<time-of-day> heuresnumber (0..16)", -3.960813169597578)],-                               n = 45}}),-       ("<cycle> dernier",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9924301646902063),-                                    ("ann\233e (grain)", -2.3978952727983707),-                                    ("semaine (grain)", -1.9924301646902063),-                                    ("mois (grain)", -2.3978952727983707),-                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),-                                    ("jour (grain)", -1.9924301646902063),-                                    ("month", -2.3978952727983707)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("heure (grain)", -1.791759469228055),-                                    ("hour", -1.791759469228055)],-                               n = 1}}),-       ("ce|dans le <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2992829841302609),-                                    ("ann\233e (grain)", -2.3978952727983707),-                                    ("semaine (grain)", -1.2992829841302609),-                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),-                                    ("jour (grain)", -1.9924301646902063)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ce <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("soir", -1.466337068793427), ("day", -1.8718021769015913),-                                    ("named-day", -1.8718021769015913),-                                    ("hour", -1.1786549963416462),-                                    ("week-end", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/FR_XX.hs view
@@ -0,0 +1,2701 @@+-- 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.FR_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("n derniers <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.803360380906535),+                                    ("number (0..16)seconde (grain)", -2.803360380906535),+                                    ("number (0..16)jour (grain)", -2.803360380906535),+                                    ("second", -2.3978952727983707),+                                    ("integer (numeric)ann\233e (grain)", -2.803360380906535),+                                    ("integer (numeric)seconde (grain)", -2.803360380906535),+                                    ("number (0..16)minute (grain)", -2.803360380906535),+                                    ("integer (numeric)jour (grain)", -2.803360380906535),+                                    ("day", -2.3978952727983707), ("year", -2.803360380906535),+                                    ("month", -2.803360380906535),+                                    ("integer (numeric)minute (grain)", -2.803360380906535),+                                    ("integer (numeric)mois (grain)", -2.803360380906535),+                                    ("minute", -2.3978952727983707),+                                    ("integer (numeric)semaine (grain)", -2.803360380906535)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> prochain",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mardi", -1.0986122886681098), ("day", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mercredi", -1.3862943611198906), ("day", -0.9808292530117262),+                                    ("Lundi", -1.3862943611198906)],+                               n = 2}}),+       ("du|dans le <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("soir", -1.3862943611198906),+                                    ("apr\232s-midi", -2.174751721484161),+                                    ("matin", -1.8382794848629478), ("hour", -0.7396671961948381)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8109302162163288,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("soir", -2.1972245773362196),+                                    ("apr\232s-midi", -2.1972245773362196),+                                    ("matin", -1.1856236656577395), ("hour", -0.750305594399894)],+                               n = 16}}),+       ("dans <duration>",+        Classifier{okData =+                     ClassData{prior = -8.338160893905101e-2,+                               unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.639057329615259),+                                    ("<integer> + '\"", -2.9267394020670396),+                                    ("second", -2.639057329615259), ("day", -2.9267394020670396),+                                    ("year", -2.639057329615259),+                                    ("<integer> <unit-of-duration>", -1.1921383466789333),+                                    ("une <unit-of-duration>", -2.2335922215070942),+                                    ("hour", -2.4159137783010487), ("month", -3.332204510175204),+                                    ("minute", -1.9459101490553135)],+                               n = 23},+                   koData =+                     ClassData{prior = -2.5257286443082556, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9459101490553135), ("day", -1.9459101490553135),+                                    ("une <unit-of-duration>", -1.540445040947149)],+                               n = 2}}),+       ("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224|vers <time-of-day>", -1.252762968495368),+                                    ("hour", -0.8472978603872037),+                                    ("<time-of-day> heures", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> apr\232s",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..16)jour (grain)", -0.6931471805599453),+                                    ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.4793738175333202, unseen = -5.484796933490655,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 239},+                   koData =+                     ClassData{prior = -0.9654047826860945, unseen = -5.003946305945459,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 147}}),+       ("<named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Decembre", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("apr\232s le travail",+        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}}),+       ("n prochains <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.833213344056216),+                                    ("number (0..16)seconde (grain)", -2.833213344056216),+                                    ("second", -2.4277482359480516),+                                    ("integer (numeric)ann\233e (grain)", -2.833213344056216),+                                    ("integer (numeric)seconde (grain)", -2.833213344056216),+                                    ("number (0..16)minute (grain)", -2.833213344056216),+                                    ("integer (numeric)jour (grain)", -2.833213344056216),+                                    ("day", -2.833213344056216), ("year", -2.833213344056216),+                                    ("hour", -2.833213344056216), ("month", -2.833213344056216),+                                    ("integer (numeric)minute (grain)", -2.833213344056216),+                                    ("integer (numeric)mois (grain)", -2.833213344056216),+                                    ("minute", -2.4277482359480516),+                                    ("integer (numeric)semaine (grain)", -2.833213344056216),+                                    ("integer (numeric)heure (grain)", -2.833213344056216)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fin d'ann\233e",+        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-week> <day-of-month> \224 <time-of-day>)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -0.916290731874155),+                                    ("Samediinteger (numeric)\224|vers <time-of-day>",+                                     -2.0149030205422647),+                                    ("Jeudiinteger (numeric)\224|vers <time-of-day>",+                                     -2.0149030205422647),+                                    ("Vendredinumber (0..16)\224|vers <time-of-day>",+                                     -1.6094379124341003),+                                    ("Vendrediinteger (numeric)\224|vers <time-of-day>",+                                     -2.0149030205422647)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("apr\232s le d\233jeuner",+        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}}),+       ("<named-day> en quinze",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mercredi", -1.6739764335716716),+                                    ("Mardi", -1.6739764335716716), ("day", -0.8266785731844679),+                                    ("Lundi", -1.6739764335716716)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Juillet",+        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}}),+       ("entre <datetime> et <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -4.127134385045092,+                               likelihoods =+                                 HashMap.fromList+                                   [("le <time>le <day-of-month> (non ordinal)",+                                     -3.417726683613366),+                                    ("le <time>le <time>", -3.012261575505202),+                                    ("dayday", -1.7129785913749407),+                                    ("hourhour", -3.417726683613366),+                                    ("le <time>intersect", -3.417726683613366),+                                    ("miditime-of-day (latent)", -3.417726683613366),+                                    ("intersectle <day-of-month> (non ordinal)",+                                     -3.417726683613366),+                                    ("minutehour", -1.7129785913749407),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -3.012261575505202),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -2.7245795030534206),+                                    ("le <day-of-month> (non ordinal)le <day-of-month> (non ordinal)",+                                     -3.012261575505202),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -2.7245795030534206),+                                    ("intersectintersect", -3.417726683613366),+                                    ("intersectle <time>", -3.012261575505202),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -3.012261575505202)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.5040773967762742,+                               unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> <integer> (as relative minutes)intersect",+                                     -2.740840023925201),+                                    ("dayday", -2.3353749158170367),+                                    ("le <day-of-month> (non ordinal)intersect",+                                     -2.740840023925201),+                                    ("minutehour", -1.824549292051046),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -2.740840023925201),+                                    ("le <day-of-month> (non ordinal)le <time>",+                                     -2.740840023925201),+                                    ("hh(:|h)mm (time-of-day)intersect", -2.740840023925201),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -2.740840023925201)],+                               n = 6}}),+       ("soir",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("ann\233e (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}}),+       ("d\233but de semaine",+        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}}),+       ("<hour-of-day> moins <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("midinumber (0..16)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month|named-day> suivant|d'apr\232s",+        Classifier{okData =+                     ClassData{prior = -0.10178269430994236,+                               unseen = -4.189654742026425,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.5649493574615367),+                                    ("en semaine", -1.9771626925594177),+                                    ("Mercredi", -3.0757749812275272),+                                    ("Mardi", -3.0757749812275272),+                                    ("intersect by 'de' or ','", -2.5649493574615367),+                                    ("day", -0.807091439909163),+                                    ("le <time>", -1.9771626925594177)],+                               n = 28},+                   koData =+                     ClassData{prior = -2.3353749158170367, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("en semaine", -2.0149030205422647),+                                    ("day", -1.6094379124341003), ("hour", -2.0149030205422647),+                                    ("<time-of-day> heures", -2.0149030205422647),+                                    ("le <time>", -2.0149030205422647)],+                               n = 3}}),+       ("Samedi",+        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}}),+       ("seconde (grain)",+        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}}),+       ("<hour-of-day> et|pass\233 de <number>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224|vers <time-of-day>number (20..60)", -2.1400661634962708),+                                    ("<time-of-day> heuresinteger (numeric)", -2.1400661634962708),+                                    ("\224|vers <time-of-day>number (0..16)", -2.1400661634962708),+                                    ("hour", -1.041453874828161),+                                    ("<time-of-day> heuresnumber (20..60)", -2.1400661634962708),+                                    ("<time-of-day> heuresnumber (0..16)", -2.1400661634962708)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("midiinteger (numeric)", -1.5040773967762742),+                                    ("hour", -1.5040773967762742)],+                               n = 1}}),+       ("<hour-of-day> moins quart",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("midi", -0.6931471805599453), ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("de <time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",+                                     -2.6855773452501515),+                                    ("minuteminute", -1.5869650565820417),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -3.0910424533583156),+                                    ("<time-of-day> heures<time-of-day> heures",+                                     -3.0910424533583156),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -2.6855773452501515),+                                    ("hourhour", -2.3978952727983707),+                                    ("minutehour", -2.174751721484161),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -2.3978952727983707),+                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",+                                     -2.6855773452501515),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.0910424533583156),+                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",+                                     -2.6855773452501515),+                                    ("<time-of-day> heurestime-of-day (latent)",+                                     -3.0910424533583156)],+                               n = 15},+                   koData =+                     ClassData{prior = -0.8109302162163288,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minutehour", -1.072636802264849),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -2.2512917986064953),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -2.538973871058276),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -2.538973871058276),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -1.845826690498331)],+                               n = 12}}),+       ("<datetime>-dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = -1.466337068793427, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> <named-month>Juillet", -1.7346010553881064),+                                    ("daymonth", -1.4469189829363254),+                                    ("day of month (premier)Juillet", -2.1400661634962708)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.262364264467491, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)Juillet", -2.0476928433652555),+                                    ("hourmonth", -1.824549292051046),+                                    ("time-of-day (latent)Juillet", -2.0476928433652555),+                                    ("monthmonth", -2.3353749158170367),+                                    ("yearmonth", -1.824549292051046),+                                    ("year (latent)Septembre", -2.740840023925201),+                                    ("time-of-day (latent)Septembre", -2.740840023925201),+                                    ("JuilletJuillet", -2.3353749158170367)],+                               n = 10}}),+       ("semaine (grain)",+        Classifier{okData =+                     ClassData{prior = -7.79615414697118e-2,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -2.5902671654458267,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<integer> + '\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("demain",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("mois (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}}),+       ("intersect by 'mais/par exemple/plut\244t'",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.9704144655697013),+                                    ("Jeudientre <datetime> et <datetime> (interval)",+                                     -1.466337068793427),+                                    ("le <day-of-month> (non ordinal)\224|vers <time-of-day>",+                                     -2.9704144655697013),+                                    ("dayminute", -0.8303483020734304),+                                    ("Jeudientre <time-of-day> et <time-of-day> (interval)",+                                     -1.466337068793427)],+                               n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("de <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.410986973710262, unseen = -4.143134726391533,+                               likelihoods =+                                 HashMap.fromList+                                   [("day of month (premier)<day-of-week> <day-of-month>",+                                     -3.4339872044851463),+                                    ("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",+                                     -3.4339872044851463),+                                    ("minuteminute", -2.517696472610991),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -3.4339872044851463),+                                    ("dayday", -2.517696472610991),+                                    ("<day-of-month> <named-month>day of month (premier)",+                                     -3.4339872044851463),+                                    ("minutehour", -3.028522096376982),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -3.4339872044851463),+                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",+                                     -3.4339872044851463),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.4339872044851463),+                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",+                                     -3.4339872044851463),+                                    ("<day-of-month> <named-month>intersect", -3.4339872044851463),+                                    ("intersect<day-of-week> <day-of-month>", -3.4339872044851463)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.27958486221916157,+                               unseen = -4.653960350157523,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> <integer> (as relative minutes)intersect",+                                     -3.951243718581427),+                                    ("<day-of-month> <named-month>time-of-day (latent)",+                                     -3.951243718581427),+                                    ("hourday", -3.0349529867072724),+                                    ("dayhour", -3.951243718581427),+                                    ("yearhour", -3.951243718581427),+                                    ("time-of-day (latent)year (latent)", -3.951243718581427),+                                    ("houryear", -3.951243718581427),+                                    ("time-of-day (latent)intersect", -3.545778610473263),+                                    ("<day-of-week> <day-of-month>Dimanche", -3.951243718581427),+                                    ("year (latent)intersect", -3.545778610473263),+                                    ("yearyear", -3.951243718581427),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -3.951243718581427),+                                    ("dayday", -2.2464956263430023),+                                    ("year (latent)year (latent)", -3.951243718581427),+                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",+                                     -3.951243718581427),+                                    ("hourhour", -3.951243718581427),+                                    ("time-of-day (latent)<day-of-week> <day-of-month>",+                                     -3.951243718581427),+                                    ("minutehour", -2.4471663218051534),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -3.545778610473263),+                                    ("year (latent)<day-of-week> <day-of-month>",+                                     -3.951243718581427),+                                    ("year (latent)time-of-day (latent)", -3.951243718581427),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -3.951243718581427),+                                    ("day of month (premier)intersect", -3.545778610473263),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.951243718581427),+                                    ("intersectintersect", -3.545778610473263),+                                    ("hh(:|h)mm (time-of-day)intersect", -3.951243718581427),+                                    ("yearday", -3.0349529867072724),+                                    ("day of month (premier)Mercredi", -3.951243718581427),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -3.545778610473263),+                                    ("intersectMercredi", -3.951243718581427),+                                    ("time-of-day (latent)Dimanche", -3.951243718581427),+                                    ("<day-of-week> <day-of-month>intersect", -3.545778610473263),+                                    ("year (latent)Dimanche", -3.951243718581427)],+                               n = 31}}),+       ("<ordinal> <cycle> de <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)jour (grain)Octobre", -1.7346010553881064),+                                    ("ordinals (premier..seizieme)semaine (grain)Octobre",+                                     -1.7346010553881064),+                                    ("daymonth", -1.7346010553881064),+                                    ("weekmonth", -1.2237754316221157),+                                    ("ordinals (premier..seizieme)semaine (grain)intersect",+                                     -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("premi\232re quinzaine de <named-month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Avril", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> suivants",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.6094379124341003), ("month", -1.6094379124341003),+                                    ("integer (numeric)mois (grain)", -1.6094379124341003),+                                    ("integer (numeric)heure (grain)", -1.6094379124341003)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..16)jour (grain)", -1.2039728043259361),+                                    ("day", -1.2039728043259361)],+                               n = 2}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.2260379093405742,+                               unseen = -6.9726062513017535,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> <named-month><dim time> <part-of-day>",+                                     -6.278521424165844),+                                    ("intersect<dim time> du matin", -6.278521424165844),+                                    ("<hour-of-day> <integer> (as relative minutes)intersect",+                                     -5.8730563160576805),+                                    ("<day-of-month> <named-month>d\233but de journ\233e",+                                     -6.278521424165844),+                                    ("hourday", -4.027229625559349),+                                    ("<day-of-month> <named-month>year", -5.585374243605899),+                                    ("dayhour", -1.915422799377482),+                                    ("<datetime> - <datetime> (interval)Juillet",+                                     -5.025758455670476),+                                    ("daymonth", -2.8607947405524787),+                                    ("monthyear", -4.7744440273895705),+                                    ("<day-of-month> <named-month>d\233but de matin\233e",+                                     -6.278521424165844),+                                    ("dernier <cycle> de <time> (latent)year", -5.362230692291689),+                                    ("aujourd'huimilieu d'apr\232s-midi", -6.278521424165844),+                                    ("<day-of-month> <named-month>\224|vers <time-of-day>",+                                     -4.7744440273895705),+                                    ("dd mmyear", -5.025758455670476),+                                    ("Vendredi\224|vers <time-of-day>", -5.8730563160576805),+                                    ("Mercredidu|dans le <part-of-day>", -6.278521424165844),+                                    ("aujourd'huifin d'apr\232s-midi", -6.278521424165844),+                                    ("day of month (premier)Novembre", -5.585374243605899),+                                    ("le <day-of-month> (non ordinal)<dim time> du matin",+                                     -6.278521424165844),+                                    ("aujourd'huimilieu de matin\233e", -6.278521424165844),+                                    ("hh(:|h)mm (time-of-day)<day-of-week> <day-of-month>",+                                     -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)Fevrier", -4.199079882486009),+                                    ("Mars<dim time> <part-of-day>", -6.278521424165844),+                                    ("Lundiday of month (premier)", -5.8730563160576805),+                                    ("<time-of-day> heuresdu|dans le <part-of-day>",+                                     -5.585374243605899),+                                    ("<hour-of-day> et quart<dim time> <part-of-day>",+                                     -5.8730563160576805),+                                    ("le <time>du|dans le <part-of-day>", -5.585374243605899),+                                    ("aujourd'huifin de matin\233e", -6.278521424165844),+                                    ("Marsyear", -5.8730563160576805),+                                    ("aujourd'huifin de soir\233e", -6.278521424165844),+                                    ("\224|vers <time-of-day>ce <part-of-day>", -5.585374243605899),+                                    ("<day-of-month> <named-month>d\233but d'apr\232s-midi",+                                     -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)<dim time> du soir",+                                     -5.585374243605899),+                                    ("intersectSeptembre", -5.8730563160576805),+                                    ("aujourd'huid\233but de soir\233e", -6.278521424165844),+                                    ("<day-of-week> <day-of-month>Fevrier", -5.8730563160576805),+                                    ("<hour-of-day> et demice <part-of-day>", -5.8730563160576805),+                                    ("apr\232s <time-of-day>Jeudi", -5.8730563160576805),+                                    ("le <time>fin de matin\233e", -6.278521424165844),+                                    ("Jeudide <time-of-day> - <time-of-day> (interval)",+                                     -5.8730563160576805),+                                    ("day of month (premier)Mars", -5.362230692291689),+                                    ("intersectmilieu de journ\233e", -6.278521424165844),+                                    ("intersectfin de journ\233e", -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",+                                     -6.278521424165844),+                                    ("Octobreyear", -5.362230692291689),+                                    ("Fevrierd\233but de matin\233e", -6.278521424165844),+                                    ("de <datetime> - <datetime> (interval)Juillet",+                                     -5.8730563160576805),+                                    ("<hour-of-day> <integer> (as relative minutes)<day-of-week> <day-of-month>",+                                     -6.278521424165844),+                                    ("monthhour", -4.081296846829625),+                                    ("Marsintersect", -6.278521424165844),+                                    ("Lundile <cycle> prochain|suivant|d'apr\232s",+                                     -6.278521424165844),+                                    ("le <time>fin d'apr\232s-midi", -6.278521424165844),+                                    ("hourmonth", -4.7744440273895705),+                                    ("<time-of-day> heuresle <time>", -4.7744440273895705),+                                    ("entre <datetime> et <datetime> (interval)Jeudi",+                                     -5.8730563160576805),+                                    ("dayday", -3.9271461670023666),+                                    ("Septembreyear", -5.8730563160576805),+                                    ("aujourd'hui<hour-of-day> <integer> (as relative minutes)",+                                     -5.8730563160576805),+                                    ("apr\232s <time-of-day>Novembre", -5.585374243605899),+                                    ("hourhour", -3.752792779857589),+                                    ("Fevrierd\233but d'apr\232s-midi", -6.278521424165844),+                                    ("<day-of-week> <day-of-month>\224|vers <time-of-day>",+                                     -5.179909135497735),+                                    ("<day-of-week> <day-of-month>Septembre", -6.278521424165844),+                                    ("le <time>intersect", -5.8730563160576805),+                                    ("\224|vers <time-of-day><dim time> <part-of-day>",+                                     -6.278521424165844),+                                    ("aujourd'huiau d\233jeuner", -6.278521424165844),+                                    ("Vendrediday of month (premier)", -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)Avril", -6.278521424165844),+                                    ("<time-of-day> heuresintersect", -5.362230692291689),+                                    ("<hour-of-day> et quartce <part-of-day>", -5.8730563160576805),+                                    ("Jeudi\224|vers <time-of-day>", -6.278521424165844),+                                    ("dayyear", -3.880626151367474),+                                    ("le <day-of-month> (non ordinal)Juin", -6.278521424165844),+                                    ("Lundice|dans le <cycle>", -6.278521424165844),+                                    ("apr\232s-demain\224|vers <time-of-day>", -5.8730563160576805),+                                    ("intersectfin d'apr\232s-midi", -6.278521424165844),+                                    ("le <ordinal> <cycle> de <time>year", -6.278521424165844),+                                    ("intersectmilieu d'apr\232s-midi", -6.278521424165844),+                                    ("<hour-of-day> <integer> (as relative minutes)Jeudi",+                                     -6.278521424165844),+                                    ("le <time>milieu de journ\233e", -6.278521424165844),+                                    ("aujourd'huid\233but de journ\233e", -6.278521424165844),+                                    ("demain\224|vers <time-of-day>", -5.8730563160576805),+                                    ("le <day-of-month> (non ordinal)Mars", -4.892227063045954),+                                    ("le <day-of-month> (non ordinal)intersect",+                                     -3.7936147743778443),+                                    ("hourminute", -6.278521424165844),+                                    ("dd-dd <month>(interval)year", -6.278521424165844),+                                    ("intersect<day-of-month> <named-month>", -5.8730563160576805),+                                    ("<hour-of-day> <integer> (as relative minutes)Samedi",+                                     -6.278521424165844),+                                    ("minutemonth", -5.8730563160576805),+                                    ("\224|vers <time-of-day>demain", -6.278521424165844),+                                    ("minutehour", -4.669083511731744),+                                    ("Lundidu|dans le <part-of-day>", -6.278521424165844),+                                    ("aujourd'huimilieu de journ\233e", -6.278521424165844),+                                    ("Mars\224|vers <time-of-day>", -5.585374243605899),+                                    ("intersectd\233but de soir\233e", -6.278521424165844),+                                    ("Mardile <cycle> prochain|suivant|d'apr\232s",+                                     -5.585374243605899),+                                    ("aujourd'huifin de journ\233e", -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)Octobre", -6.278521424165844),+                                    ("intersectdu|dans le <part-of-day>", -4.48676195493779),+                                    ("le <day-of-month> \224 <datetime>du|dans le <part-of-day>",+                                     -5.8730563160576805),+                                    ("hh(:|h)mm (time-of-day)Jeudi", -6.278521424165844),+                                    ("le <day-of-month> (non ordinal)apr\232s <time-of-day>",+                                     -6.278521424165844),+                                    ("le <time>Juillet", -6.278521424165844),+                                    ("Lundi<day-of-month> <named-month>", -6.278521424165844),+                                    ("Mercredile <cycle> prochain|suivant|d'apr\232s",+                                     -5.585374243605899),+                                    ("Lundifin d'apr\232s-midi", -5.8730563160576805),+                                    ("Lundile <time>", -5.8730563160576805),+                                    ("le <day-of-month> (non ordinal)<dim time> <part-of-day>",+                                     -4.1384552606695735),+                                    ("Mardi<named-month|named-day> suivant|d'apr\232s",+                                     -5.8730563160576805),+                                    ("apr\232s <time-of-day>le <time>", -5.362230692291689),+                                    ("Mars<dim time> du matin", -6.278521424165844),+                                    ("le <time>Novembre", -5.585374243605899),+                                    ("intersectd\233but d'apr\232s-midi", -6.278521424165844),+                                    ("<datetime> - <datetime> (interval)Jeudi", -5.362230692291689),+                                    ("Mercredi<named-month|named-day> suivant|d'apr\232s",+                                     -5.8730563160576805),+                                    ("<time-of-day> - <time-of-day> (interval)Jeudi",+                                     -5.025758455670476),+                                    ("Samedi<day-of-month> <named-month>", -6.278521424165844),+                                    ("<hour-of-day> et quartdemain", -5.8730563160576805),+                                    ("<time-of-day> heuresce <time>", -6.278521424165844),+                                    ("le <time>d\233but d'apr\232s-midi", -6.278521424165844),+                                    ("day of month (premier)Juillet", -5.585374243605899),+                                    ("<day-of-month> <named-month>du|dans le <part-of-day>",+                                     -5.8730563160576805),+                                    ("Fevriermilieu d'apr\232s-midi", -6.278521424165844),+                                    ("Mercredi\224|vers <time-of-day>", -6.278521424165844),+                                    ("intersectNovembre", -5.025758455670476),+                                    ("le <time><dim time> du matin", -6.278521424165844),+                                    ("Fevrierfin d'apr\232s-midi", -6.278521424165844),+                                    ("apr\232s <time-of-day>intersect", -5.8730563160576805),+                                    ("le <day-of-month> (non ordinal)\224|vers <time-of-day>",+                                     -4.7744440273895705),+                                    ("<day-of-month> <named-month>d\233but de soir\233e",+                                     -6.278521424165844),+                                    ("hierdu|dans le <part-of-day>", -6.278521424165844),+                                    ("le <time>d\233but de soir\233e", -6.278521424165844),+                                    ("Mercredice|dans le <cycle>", -6.278521424165844),+                                    ("Fevrierfin de soir\233e", -6.278521424165844),+                                    ("intersect<dim time> <part-of-day>", -6.278521424165844),+                                    ("Mardice|dans le <cycle>", -6.278521424165844),+                                    ("dayminute", -4.669083511731744),+                                    ("intersectd\233but de journ\233e", -6.278521424165844),+                                    ("<ordinal> <cycle> de <time>year", -5.8730563160576805),+                                    ("Fevriermilieu de matin\233e", -6.278521424165844),+                                    ("le <time>\224|vers <time-of-day>", -5.179909135497735),+                                    ("<day-of-month> <named-month><dim time> du matin",+                                     -6.278521424165844),+                                    ("intersectyear", -5.585374243605899),+                                    ("Fevrierfin de matin\233e", -6.278521424165844),+                                    ("minuteday", -3.334082444999404),+                                    ("le <time>d\233but de matin\233e", -6.278521424165844),+                                    ("Mardile <time>", -4.892227063045954),+                                    ("aujourd'hui\224|vers <time-of-day>", -5.362230692291689),+                                    ("<day-of-month> <named-month>milieu d'apr\232s-midi",+                                     -6.278521424165844),+                                    ("day of month (premier)intersect", -6.278521424165844),+                                    ("<day-of-month> <named-month>fin d'apr\232s-midi",+                                     -6.278521424165844),+                                    ("day of month (premier)Janvier", -6.278521424165844),+                                    ("de <datetime> - <datetime> (interval)Jeudi",+                                     -5.8730563160576805),+                                    ("le <time>milieu de matin\233e", -6.278521424165844),+                                    ("aujourd'huid\233but de matin\233e", -5.179909135497735),+                                    ("Fevrierd\233but de soir\233e", -6.278521424165844),+                                    ("Jeudiapr\232s <time-of-day>", -5.362230692291689),+                                    ("Mercredile <time>", -4.892227063045954),+                                    ("<dim time> <part-of-day>apr\232s <time-of-day>",+                                     -6.278521424165844),+                                    ("le <time>fin de soir\233e", -6.278521424165844),+                                    ("de <time-of-day> - <time-of-day> (interval)Jeudi",+                                     -5.362230692291689),+                                    ("<day-of-month> <named-month>milieu de matin\233e",+                                     -6.278521424165844),+                                    ("<day-of-month> <named-month>fin de soir\233e",+                                     -6.278521424165844),+                                    ("<day-of-month> <named-month>fin de matin\233e",+                                     -6.278521424165844),+                                    ("<time-of-day> heuresce <part-of-day>", -5.8730563160576805),+                                    ("Mercredi<day-of-month> <named-month>", -6.278521424165844),+                                    ("aujourd'huid\233but d'apr\232s-midi", -6.278521424165844),+                                    ("le <time>milieu d'apr\232s-midi", -6.278521424165844),+                                    ("\224|vers <time-of-day>du|dans le <part-of-day>",+                                     -5.179909135497735),+                                    ("entre <time-of-day> et <time-of-day> (interval)Jeudi",+                                     -5.8730563160576805),+                                    ("intersectintersect", -6.278521424165844),+                                    ("dayweek", -4.081296846829625),+                                    ("entre <datetime> et <datetime> (interval)Juillet",+                                     -6.278521424165844),+                                    ("intersectMars", -6.278521424165844),+                                    ("weekyear", -4.892227063045954),+                                    ("le <time>Mars", -5.8730563160576805),+                                    ("apr\232s le <day-of-month>Mars", -6.278521424165844),+                                    ("hh(:|h)mm (time-of-day)intersect", -5.8730563160576805),+                                    ("<day-of-month> <named-month>fin de journ\233e",+                                     -6.278521424165844),+                                    ("<day-of-month> <named-month>milieu de journ\233e",+                                     -6.278521424165844),+                                    ("le <time>fin de journ\233e", -6.278521424165844),+                                    ("dd/-mm\224|vers <time-of-day>", -5.8730563160576805),+                                    ("intersectfin de matin\233e", -6.278521424165844),+                                    ("Fevrierd\233but de journ\233e", -6.278521424165844),+                                    ("Vendrediintersect", -6.278521424165844),+                                    ("<day-of-month> <named-month>intersect", -6.278521424165844),+                                    ("intersectfin de soir\233e", -6.278521424165844),+                                    ("intersectmilieu de matin\233e", -6.278521424165844),+                                    ("intersect\224|vers <time-of-day>", -5.585374243605899),+                                    ("le <time>year", -4.7744440273895705),+                                    ("Vendrediapr\232s <time-of-day>", -6.278521424165844),+                                    ("hh(:|h)mm (time-of-day)Samedi", -6.278521424165844),+                                    ("le <time><dim time> <part-of-day>", -6.278521424165844),+                                    ("Fevrierfin de journ\233e", -6.278521424165844),+                                    ("Fevriermilieu de journ\233e", -6.278521424165844),+                                    ("le <time>d\233but de journ\233e", -6.278521424165844),+                                    ("intersectd\233but de matin\233e", -6.278521424165844)],+                               n = 414},+                   koData =+                     ClassData{prior = -1.5979435330083651,+                               unseen = -6.1070228877422545,+                               likelihoods =+                                 HashMap.fromList+                                   [("year<time-of-day> - <time-of-day> (interval)",+                                     -4.718498871295094),+                                    ("demain<time-of-day> heures", -5.4116460518550396),+                                    ("hourday", -3.2144214745188204),+                                    ("<day-of-month> <named-month>year", -5.4116460518550396),+                                    ("demainavant <time-of-day>", -5.4116460518550396),+                                    ("dayhour", -2.7374974024285113),+                                    ("<time-of-day> - <time-of-day> (interval)Juillet",+                                     -4.718498871295094),+                                    ("Jeudi<time-of-day> - <time-of-day> (interval)",+                                     -5.006180943746876),+                                    ("daymonth", -3.8022081394209395),+                                    ("monthday", -5.4116460518550396),+                                    ("monthyear", -4.718498871295094),+                                    ("yearhour", -4.718498871295094),+                                    ("le <cycle> de <time>Octobre", -5.006180943746876),+                                    ("houryear", -5.006180943746876),+                                    ("<time-of-day> heuresdu|dans le <part-of-day>",+                                     -4.718498871295094),+                                    ("le <time>du|dans le <part-of-day>", -5.006180943746876),+                                    ("Marsyear", -5.4116460518550396),+                                    ("Dimanche<day-of-month> <named-month>", -4.718498871295094),+                                    ("<time-of-day> heuresle <day-of-month> (non ordinal)",+                                     -4.4953553199808844),+                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",+                                     -5.4116460518550396),+                                    ("aujourd'huidu|dans le <part-of-day>", -5.006180943746876),+                                    ("de <datetime> - <datetime> (interval)Juillet",+                                     -5.4116460518550396),+                                    ("monthhour", -4.02535169073515),+                                    ("hourmonth", -4.1588830833596715),+                                    ("Vendredi<time-of-day> - <time-of-day> (interval)",+                                     -4.1588830833596715),+                                    ("dayday", -3.619886582626985),+                                    ("Septembreyear", -5.4116460518550396),+                                    ("Lundiapr\232s <time-of-day>", -5.4116460518550396),+                                    ("hourhour", -3.8022081394209395),+                                    ("\224|vers <time-of-day>Jeudi", -4.718498871295094),+                                    ("dayyear", -4.1588830833596715),+                                    ("le lendemain du <time>Fevrier", -5.4116460518550396),+                                    ("demain\224|vers <time-of-day>", -5.006180943746876),+                                    ("Mars\224|vers <time-of-day>", -4.31303376318693),+                                    ("Lundi<datetime> - <datetime> (interval)", -5.006180943746876),+                                    ("intersect by 'de' or ','year", -5.006180943746876),+                                    ("hh(:|h)mm (time-of-day)Jeudi", -5.4116460518550396),+                                    ("weekmonth", -5.006180943746876),+                                    ("le <day-of-month> (non ordinal)Juillet", -5.4116460518550396),+                                    ("le <day-of-month> (non ordinal)year", -5.006180943746876),+                                    ("Juillet<day-of-month> <named-month>", -5.4116460518550396),+                                    ("<time-of-day> - <time-of-day> (interval)Septembre",+                                     -5.4116460518550396),+                                    ("Samedi<time-of-day> - <time-of-day> (interval)",+                                     -5.006180943746876),+                                    ("<time-of-day> heuresdd/-mm", -5.4116460518550396),+                                    ("<time-of-day> - <time-of-day> (interval)du|dans le <part-of-day>",+                                     -5.006180943746876),+                                    ("intersectyear", -5.4116460518550396),+                                    ("minuteday", -5.4116460518550396),+                                    ("Mardile <time>", -5.4116460518550396),+                                    ("Fevrierdu|dans le <part-of-day>", -5.006180943746876),+                                    ("aujourd'hui\224|vers <time-of-day>", -5.006180943746876),+                                    ("<datetime>-dd <month>(interval)year", -5.006180943746876),+                                    ("Jeudiapr\232s <time-of-day>", -5.006180943746876),+                                    ("Mercredile <time>", -5.4116460518550396),+                                    ("le <day-of-month> (non ordinal)avant <time-of-day>",+                                     -5.4116460518550396),+                                    ("<dim time> <part-of-day>apr\232s <time-of-day>",+                                     -5.4116460518550396),+                                    ("Mercredi<day-of-month> <named-month>", -4.4953553199808844),+                                    ("demainapr\232s <time-of-day>", -5.4116460518550396),+                                    ("<day-of-week> <day-of-month>Juillet", -4.02535169073515),+                                    ("<time-of-day> - <time-of-day> (interval)intersect",+                                     -5.4116460518550396),+                                    ("apr\232s <time-of-day>\224|vers <time-of-day>",+                                     -5.006180943746876),+                                    ("Fevrieryear", -5.4116460518550396),+                                    ("Jeudi<time-of-day> heures", -5.006180943746876),+                                    ("apr\232s <time-of-day>le <day-of-month> (non ordinal)",+                                     -5.006180943746876),+                                    ("avant <time-of-day>Jeudi", -5.4116460518550396),+                                    ("de <datetime> - <datetime> (interval)<day-of-month> <named-month>",+                                     -5.4116460518550396),+                                    ("<dim time> <part-of-day><time-of-day> heures",+                                     -5.4116460518550396),+                                    ("<time-of-day> heuresJeudi", -4.31303376318693)],+                               n = 105}}),+       ("Janvier",+        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}}),+       ("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}}),+       ("ce <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Lundi", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("le <cycle> de <time>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthmonth", -1.9459101490553135),+                                    ("mois (grain)Mars", -1.9459101490553135),+                                    ("weekday", -1.540445040947149),+                                    ("semaine (grain)<day-of-month> <named-month>",+                                     -1.540445040947149)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("semaine (grain)year (latent)", -1.6739764335716716),+                                    ("weekhour", -1.6739764335716716),+                                    ("semaine (grain)time-of-day (latent)", -1.6739764335716716),+                                    ("weekyear", -1.6739764335716716)],+                               n = 4}}),+       ("<hour-of-day> et trois quarts",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("<time-of-day> heures", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("le <day-of-month> \224 <datetime>",+        Classifier{okData =+                     ClassData{prior = -0.325422400434628, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)<time-of-day> heures", -1.9459101490553135),+                                    ("integer (numeric)<dim time> du soir", -2.8622008809294686),+                                    ("integer (numeric)intersect", -2.456735772821304),+                                    ("integer (numeric)<dim time> du matin", -2.8622008809294686),+                                    ("hour", -0.916290731874155),+                                    ("integer (numeric)time-of-day (latent)", -2.169053700369523),+                                    ("integer (numeric)<dim time> <part-of-day>",+                                     -2.456735772821304)],+                               n = 13},+                   koData =+                     ClassData{prior = -1.2809338454620642, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)year (latent)", -1.3350010667323402),+                                    ("year", -1.3350010667323402), ("hour", -2.2512917986064953),+                                    ("integer (numeric)time-of-day (latent)", -2.2512917986064953)],+                               n = 5}}),+       ("yyyy-mm-dd",+        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}}),+       ("Juin",+        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}}),+       ("le <cycle> dernier",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("ann\233e (grain)", -1.9459101490553135),+                                    ("semaine (grain)", -1.540445040947149),+                                    ("mois (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135), ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 19}}),+       ("soir de no\235l",+        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}}),+       ("fin de journ\233e",+        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}}),+       ("du <datetime>-<day-of-week> dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("day of month (premier)MercrediJuillet", -1.9459101490553135),+                                    ("intersectMercrediJuillet", -1.9459101490553135),+                                    ("<day-of-week> <day-of-month>DimancheJuillet",+                                     -1.9459101490553135),+                                    ("daydaymonth", -1.252762968495368)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)DimancheJuillet", -1.791759469228055),+                                    ("hourdaymonth", -1.791759469228055),+                                    ("yeardaymonth", -1.791759469228055),+                                    ("year (latent)DimancheJuillet", -1.791759469228055)],+                               n = 2}}),+       ("milieu de semaine",+        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}}),+       ("d\233but d'ann\233e",+        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}}),+       ("noel",+        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}}),+       ("fin de matin\233e",+        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}}),+       ("le <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.35667494393873245,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -1.9802627296179754e-2)],+                               n = 49},+                   koData =+                     ClassData{prior = -1.2039728043259361,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.24512245803298496),+                                    ("numbers 22..29 32..39 .. 52..59", -1.5260563034950494)],+                               n = 21}}),+       ("du dd-<day-of-week> dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.6931471805599453),+                                    ("DimancheJuillet", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("en semaine",+        Classifier{okData =+                     ClassData{prior = -1.2656663733312759,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -0.3313571359544425,+                               unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28}}),+       ("numbers 22..29 32..39 .. 52..59",+        Classifier{okData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (20..60)number (0..16)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.2876820724517809),+                                    ("integer (numeric)number (0..16)", -1.791759469228055)],+                               n = 9}}),+       ("Mercredi",+        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}}),+       ("Mardi",+        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}}),+       ("<day-of-week> prochain",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mercredi", -1.6094379124341003),+                                    ("Mardi", -1.6094379124341003), ("day", -0.916290731874155),+                                    ("Lundi", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by 'de' or ','",+        Classifier{okData =+                     ClassData{prior = -0.26469255422708216,+                               unseen = -4.499809670330265,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -3.39002408106403),+                                    ("Jeudi<time-of-day> - <time-of-day> (interval)",+                                     -3.39002408106403),+                                    ("daymonth", -3.7954891891721947),+                                    ("Dimanchele <time>", -3.7954891891721947),+                                    ("fin du moisMars", -3.7954891891721947),+                                    ("Lundile <cycle> prochain|suivant|d'apr\232s",+                                     -3.7954891891721947),+                                    ("hourmonth", -3.7954891891721947),+                                    ("dayday", -1.8495790401168812),+                                    ("Mardile <cycle> prochain|suivant|d'apr\232s",+                                     -3.1023420086122493),+                                    ("Mercredile <cycle> prochain|suivant|d'apr\232s",+                                     -3.1023420086122493),+                                    ("Lundile <time>", -3.39002408106403),+                                    ("Mardi<named-month|named-day> suivant|d'apr\232s",+                                     -3.39002408106403),+                                    ("Mercredi<named-month|named-day> suivant|d'apr\232s",+                                     -3.39002408106403),+                                    ("Mardile <time>", -2.409194828052304),+                                    ("Mercredile <time>", -2.409194828052304),+                                    ("dayweek", -1.6554230256759237),+                                    ("week-endSeptembre", -3.7954891891721947),+                                    ("Dimanchele <cycle> dernier", -3.7954891891721947)],+                               n = 33},+                   koData =+                     ClassData{prior = -1.4586150226995167, unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("en semaineSeptembre", -2.662587827025453),+                                    ("hourday", -3.068052935133617),+                                    ("dayhour", -3.068052935133617),+                                    ("daymonth", -2.151762203259462),+                                    ("du|dans le <part-of-day>noel", -3.068052935133617),+                                    ("hourmonth", -2.662587827025453),+                                    ("dayday", -2.662587827025453),+                                    ("en semaineintersect", -2.662587827025453),+                                    ("Mardile <time>", -3.068052935133617),+                                    ("Mercredile <time>", -3.068052935133617),+                                    ("Jeudi<time-of-day> heures", -3.068052935133617),+                                    ("week-endSeptembre", -2.662587827025453)],+                               n = 10}}),+       ("milieu d'apr\232s-midi",+        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}}),+       ("ce <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("soir", -1.6094379124341003),+                                    ("apr\232s-midi", -1.0986122886681098),+                                    ("hour", -0.7621400520468967)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh(:|h)mm (time-of-day)",+        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}}),+       ("number (20..60)",+        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}}),+       ("hier",+        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}}),+       ("plus tard",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2876820724517809),+                                    ("numbers 22..29 32..39 .. 52..59", -2.0794415416798357),+                                    ("number (0..16)", -2.0794415416798357)],+                               n = 13}}),+       ("dd-dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juillet", -1.0116009116784799),+                                    ("Septembre", -1.7047480922384253),+                                    ("month", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("plus tard <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("du|dans le <part-of-day>", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime>-<day-of-week> dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("day of month (premier)MercrediJuillet", -1.9095425048844386),+                                    ("<day-of-week> <day-of-month>MercrediJuillet",+                                     -2.6026896854443837),+                                    ("intersectMercrediJuillet", -2.1972245773362196),+                                    ("<day-of-week> <day-of-month>DimancheJuillet",+                                     -2.1972245773362196),+                                    ("daydaymonth", -1.0986122886681098)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)DimancheJuillet", -1.9095425048844386),+                                    ("year (latent)MercrediJuillet", -2.6026896854443837),+                                    ("hourdaymonth", -1.6863989535702288),+                                    ("time-of-day (latent)MercrediJuillet", -2.6026896854443837),+                                    ("yeardaymonth", -1.6863989535702288),+                                    ("year (latent)DimancheJuillet", -1.9095425048844386)],+                               n = 8}}),+       ("<dim time> du soir",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224|vers <time-of-day>", -1.1786549963416462),+                                    ("hour", -0.7731898882334817),+                                    ("<time-of-day> heures", -1.466337068793427)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.8472978603872037),+                                    ("<time-of-day> heures", -0.8472978603872037)],+                               n = 2}}),+       ("aujourd'hui",+        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}}),+       ("midi",+        Classifier{okData =+                     ClassData{prior = -1.157452788691043, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -0.37729423114146804,+                               unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24}}),+       ("toussaint",+        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}}),+       ("d\233but de soir\233e",+        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}}),+       ("<day-of-week> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Vendrediinteger (numeric)", -2.6855773452501515),+                                    ("Jeudiinteger (numeric)", -2.6855773452501515),+                                    ("Lundiinteger (numeric)", -2.6855773452501515),+                                    ("day", -0.8397506547518206),+                                    ("Mercrediinteger (numeric)", -1.8382794848629478),+                                    ("Samediinteger (numeric)", -2.174751721484161),+                                    ("Vendredinumber (0..16)", -2.6855773452501515)],+                               n = 18},+                   koData =+                     ClassData{prior = -1.5260563034950494,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("Dimancheinteger (numeric)", -1.5040773967762742),+                                    ("Lundiinteger (numeric)", -1.791759469228055),+                                    ("day", -1.0986122886681098)],+                               n = 5}}),+       ("d'ici <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.252762968495368), ("day", -1.252762968495368),+                                    ("<integer> <unit-of-duration>", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("\224|vers <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.19319122903085847, unseen = -4.90527477843843,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -4.204692619390966),+                                    ("<hour-of-day> et|pass\233 de <number>", -3.7992275112828016),+                                    ("hh(:|h)mm (time-of-day)", -4.204692619390966),+                                    ("midi", -3.7992275112828016),+                                    ("<hour-of-day> et|pass\233 de <number> minutes",+                                     -3.7992275112828016),+                                    ("minuit", -4.204692619390966),+                                    ("<hour-of-day> et quart", -3.7992275112828016),+                                    ("hour", -0.9858167945227653),+                                    ("<hour-of-day> et demi", -4.204692619390966),+                                    ("minute", -2.332890442489375),+                                    ("<time-of-day> heures", -1.0691984034618165),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -3.288401887516811)],+                               n = 61},+                   koData =+                     ClassData{prior = -1.739115735742633, unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)", -2.538973871058276),+                                    ("hour", -1.3350010667323402), ("minute", -2.0281482472922856),+                                    ("<time-of-day> heures", -1.3350010667323402),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -2.538973871058276)],+                               n = 13}}),+       ("d\233but <named-month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Avril", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("d\233but de matin\233e",+        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}}),+       ("apr\232s-midi",+        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}}),+       ("le <ordinal> <cycle> de <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)jour (grain)Octobre", -1.7047480922384253),+                                    ("ordinals (premier..seizieme)semaine (grain)Octobre",+                                     -1.7047480922384253),+                                    ("daymonth", -1.7047480922384253),+                                    ("weekmonth", -1.2992829841302609),+                                    ("ordinals (premier..seizieme)semaine (grain)intersect",+                                     -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (premier..seizieme)",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("deuxi\232me quinzaine de <named-month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Avril", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -5.723585101952381,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mercredisoir", -5.0271645960474665),+                                    ("<day-of-month> <named-month>d\233but de journ\233e",+                                     -5.0271645960474665),+                                    ("dayhour", -1.500804071431305),+                                    ("<day-of-month> <named-month>d\233but de matin\233e",+                                     -5.0271645960474665),+                                    ("aujourd'huimilieu d'apr\232s-midi", -5.0271645960474665),+                                    ("Mercredidu|dans le <part-of-day>", -5.0271645960474665),+                                    ("aujourd'huifin d'apr\232s-midi", -5.0271645960474665),+                                    ("aujourd'huimilieu de matin\233e", -5.0271645960474665),+                                    ("<time-of-day> heuresdu|dans le <part-of-day>",+                                     -4.334017415487521),+                                    ("le <time>du|dans le <part-of-day>", -4.334017415487521),+                                    ("aujourd'huifin de matin\233e", -5.0271645960474665),+                                    ("aujourd'huifin de soir\233e", -5.0271645960474665),+                                    ("\224|vers <time-of-day>ce <part-of-day>", -4.334017415487521),+                                    ("<day-of-month> <named-month>d\233but d'apr\232s-midi",+                                     -5.0271645960474665),+                                    ("demainsoir", -5.0271645960474665),+                                    ("aujourd'huid\233but de soir\233e", -5.0271645960474665),+                                    ("Lundimatin", -5.0271645960474665),+                                    ("<hour-of-day> et demice <part-of-day>", -4.621699487939302),+                                    ("le <time>fin de matin\233e", -5.0271645960474665),+                                    ("intersectmilieu de journ\233e", -5.0271645960474665),+                                    ("intersectfin de journ\233e", -5.0271645960474665),+                                    ("Fevrierd\233but de matin\233e", -5.0271645960474665),+                                    ("monthhour", -3.235405126819411),+                                    ("le <time>fin d'apr\232s-midi", -5.0271645960474665),+                                    ("hourhour", -2.542257946259466),+                                    ("Fevrierd\233but d'apr\232s-midi", -5.0271645960474665),+                                    ("aujourd'huiau d\233jeuner", -5.0271645960474665),+                                    ("<hour-of-day> et quartce <part-of-day>", -4.621699487939302),+                                    ("intersectfin d'apr\232s-midi", -5.0271645960474665),+                                    ("intersectmilieu d'apr\232s-midi", -5.0271645960474665),+                                    ("le <time>milieu de journ\233e", -5.0271645960474665),+                                    ("aujourd'huid\233but de journ\233e", -5.0271645960474665),+                                    ("demainapr\232s-midi", -5.0271645960474665),+                                    ("minutehour", -3.417726683613366),+                                    ("Lundidu|dans le <part-of-day>", -5.0271645960474665),+                                    ("aujourd'huimilieu de journ\233e", -5.0271645960474665),+                                    ("intersectd\233but de soir\233e", -5.0271645960474665),+                                    ("aujourd'huifin de journ\233e", -5.0271645960474665),+                                    ("intersectdu|dans le <part-of-day>", -3.235405126819411),+                                    ("le <day-of-month> \224 <datetime>du|dans le <part-of-day>",+                                     -4.621699487939302),+                                    ("Lundifin d'apr\232s-midi", -4.621699487939302),+                                    ("intersectd\233but d'apr\232s-midi", -5.0271645960474665),+                                    ("le <time>d\233but d'apr\232s-midi", -5.0271645960474665),+                                    ("<day-of-month> <named-month>du|dans le <part-of-day>",+                                     -4.621699487939302),+                                    ("Fevriermilieu d'apr\232s-midi", -5.0271645960474665),+                                    ("Fevrierfin d'apr\232s-midi", -5.0271645960474665),+                                    ("<day-of-month> <named-month>d\233but de soir\233e",+                                     -5.0271645960474665),+                                    ("hierdu|dans le <part-of-day>", -5.0271645960474665),+                                    ("le <time>d\233but de soir\233e", -5.0271645960474665),+                                    ("Fevrierfin de soir\233e", -5.0271645960474665),+                                    ("intersectd\233but de journ\233e", -5.0271645960474665),+                                    ("Fevriermilieu de matin\233e", -5.0271645960474665),+                                    ("Fevrierfin de matin\233e", -5.0271645960474665),+                                    ("le <time>d\233but de matin\233e", -5.0271645960474665),+                                    ("<day-of-month> <named-month>milieu d'apr\232s-midi",+                                     -5.0271645960474665),+                                    ("<day-of-month> <named-month>fin d'apr\232s-midi",+                                     -5.0271645960474665),+                                    ("le <time>milieu de matin\233e", -5.0271645960474665),+                                    ("aujourd'huid\233but de matin\233e", -3.9285523073793565),+                                    ("Fevrierd\233but de soir\233e", -5.0271645960474665),+                                    ("le <time>fin de soir\233e", -5.0271645960474665),+                                    ("<day-of-month> <named-month>milieu de matin\233e",+                                     -5.0271645960474665),+                                    ("<day-of-month> <named-month>fin de soir\233e",+                                     -5.0271645960474665),+                                    ("<day-of-month> <named-month>fin de matin\233e",+                                     -5.0271645960474665),+                                    ("<time-of-day> heuresce <part-of-day>", -4.621699487939302),+                                    ("aujourd'huid\233but d'apr\232s-midi", -5.0271645960474665),+                                    ("le <time>milieu d'apr\232s-midi", -5.0271645960474665),+                                    ("\224|vers <time-of-day>du|dans le <part-of-day>",+                                     -3.9285523073793565),+                                    ("Jeudimatin", -5.0271645960474665),+                                    ("<day-of-month> <named-month>fin de journ\233e",+                                     -5.0271645960474665),+                                    ("<day-of-month> <named-month>milieu de journ\233e",+                                     -5.0271645960474665),+                                    ("le <time>fin de journ\233e", -5.0271645960474665),+                                    ("Lundiapr\232s-midi", -5.0271645960474665),+                                    ("intersectfin de matin\233e", -5.0271645960474665),+                                    ("Fevrierd\233but de journ\233e", -5.0271645960474665),+                                    ("intersectfin de soir\233e", -5.0271645960474665),+                                    ("intersectmilieu de matin\233e", -5.0271645960474665),+                                    ("intersectapr\232s-midi", -4.334017415487521),+                                    ("Fevrierfin de journ\233e", -5.0271645960474665),+                                    ("Fevriermilieu de journ\233e", -5.0271645960474665),+                                    ("le <time>d\233but de journ\233e", -5.0271645960474665),+                                    ("intersectd\233but de matin\233e", -5.0271645960474665),+                                    ("hiersoir", -5.0271645960474665)],+                               n = 110},+                   koData =+                     ClassData{prior = -2.3978952727983707, unseen = -4.68213122712422,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -3.5742165457937967),+                                    ("<time-of-day> heuresdu|dans le <part-of-day>",+                                     -3.2865344733420154),+                                    ("le <time>du|dans le <part-of-day>", -3.5742165457937967),+                                    ("aujourd'huidu|dans le <part-of-day>", -3.5742165457937967),+                                    ("monthhour", -3.5742165457937967),+                                    ("hourhour", -2.5933872927820705),+                                    ("<time-of-day> - <time-of-day> (interval)du|dans le <part-of-day>",+                                     -3.5742165457937967),+                                    ("Fevrierdu|dans le <part-of-day>", -3.5742165457937967)],+                               n = 11}}),+       ("jour de l'an",+        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}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.38348620138938916,+                               unseen = -4.553876891600541,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.13657553500575073),+                                    ("number (0..16)", -2.0583881324820035)],+                               n = 92},+                   koData =+                     ClassData{prior = -1.144074662744867, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1431008436406733),+                                    ("number (0..16)", -2.0149030205422647)],+                               n = 43}}),+       ("apr\232s-demain",+        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}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.46262352194811296,+                               unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 17},+                   koData =+                     ClassData{prior = -0.9932517730102834,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 10}}),+       ("<hour-of-day> et|pass\233 de <number> minutes",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224|vers <time-of-day>number (20..60)", -2.0794415416798357),+                                    ("<time-of-day> heuresinteger (numeric)", -2.0794415416798357),+                                    ("\224|vers <time-of-day>number (0..16)", -2.0794415416798357),+                                    ("hour", -0.9808292530117262),+                                    ("<time-of-day> heuresnumber (20..60)", -2.0794415416798357),+                                    ("<time-of-day> heuresnumber (0..16)", -2.0794415416798357)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.580216829592325),+                                    ("number (0..16)semaine (grain)", -3.0910424533583156),+                                    ("number (0..16)ann\233e (grain)", -3.0910424533583156),+                                    ("number (0..16)seconde (grain)", -3.4965075614664802),+                                    ("number (0..16)jour (grain)", -3.4965075614664802),+                                    ("second", -3.4965075614664802),+                                    ("integer (numeric)ann\233e (grain)", -3.4965075614664802),+                                    ("number (0..16)minute (grain)", -3.0910424533583156),+                                    ("integer (numeric)jour (grain)", -3.0910424533583156),+                                    ("day", -2.803360380906535), ("year", -2.803360380906535),+                                    ("number (0..16)mois (grain)", -3.0910424533583156),+                                    ("hour", -2.580216829592325),+                                    ("number (0..16)heure (grain)", -3.0910424533583156),+                                    ("month", -3.0910424533583156),+                                    ("integer (numeric)minute (grain)", -2.803360380906535),+                                    ("minute", -2.3978952727983707),+                                    ("integer (numeric)semaine (grain)", -3.0910424533583156),+                                    ("numbers 22..29 32..39 .. 52..59heure (grain)",+                                     -3.4965075614664802),+                                    ("integer (numeric)heure (grain)", -3.4965075614664802)],+                               n = 22},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.784189633918261),+                                    ("number (20..60)minute (grain)", -3.784189633918261),+                                    ("number (0..16)jour (grain)", -3.0910424533583156),+                                    ("integer (numeric)ann\233e (grain)", -3.784189633918261),+                                    ("number (0..16)minute (grain)", -3.784189633918261),+                                    ("day", -3.0910424533583156), ("year", -3.784189633918261),+                                    ("hour", -1.2584609896100056),+                                    ("number (0..16)heure (grain)", -1.9123874570166697),+                                    ("month", -3.784189633918261),+                                    ("integer (numeric)minute (grain)", -3.784189633918261),+                                    ("integer (numeric)mois (grain)", -3.784189633918261),+                                    ("minute", -3.0910424533583156),+                                    ("integer (numeric)semaine (grain)", -3.784189633918261),+                                    ("integer (numeric)heure (grain)", -1.9123874570166697)],+                               n = 33}}),+       ("avant-hier",+        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}}),+       ("d\233but de journ\233e",+        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}}),+       ("entre <time-of-day> et <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.1670540846631662,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -2.6741486494265287),+                                    ("miditime-of-day (latent)", -2.6741486494265287),+                                    ("minutehour", -0.9694005571881036),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -2.268683541318364),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -1.9810014688665833),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -1.9810014688665833),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -2.268683541318364)],+                               n = 11},+                   koData =+                     ClassData{prior = -1.8718021769015913,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("minutehour", -1.2992829841302609),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -1.7047480922384253),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -1.7047480922384253)],+                               n = 2}}),+       ("d\233but du mois",+        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}}),+       ("Jeudi",+        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}}),+       ("matin",+        Classifier{okData =+                     ClassData{prior = -0.7472144018302211,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("en <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mars", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("maintenant",+        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-week> 1er-<day-of-week> dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("daydaymonth", -0.6931471805599453),+                                    ("LundiMercrediJuillet", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Decembre",+        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}}),+       ("Septembre",+        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}}),+       ("Octobre",+        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}}),+       ("au d\233jeuner",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("Novembre",+        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}}),+       ("Lundi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("le lendemain du <time>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.3862943611198906),+                                    ("<day-of-month> <named-month>", -1.3862943611198906)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -1.6094379124341003),+                                    ("time-of-day (latent)", -1.6094379124341003),+                                    ("year", -1.6094379124341003), ("hour", -1.6094379124341003)],+                               n = 2}}),+       ("le <cycle> prochain|suivant|d'apr\232s",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.0608719606852628),+                                    ("ann\233e (grain)", -3.258096538021482),+                                    ("semaine (grain)", -1.0608719606852628),+                                    ("mois (grain)", -2.8526314299133175),+                                    ("day", -2.8526314299133175), ("year", -3.258096538021482),+                                    ("jour (grain)", -2.8526314299133175),+                                    ("month", -2.8526314299133175)],+                               n = 22},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("apr\232s <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.9236708391717777, unseen = -4.219507705176107,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.7197859696029658),+                                    ("hh(:|h)mm (time-of-day)", -2.8183982582710754),+                                    ("midi", -3.5115454388310208), ("day", -2.8183982582710754),+                                    ("time-of-day (latent)", -2.8183982582710754),+                                    ("hour", -1.4321038971511848), ("minute", -1.9021075263969205),+                                    ("<time-of-day> heures", -2.8183982582710754),+                                    ("le <time>", -3.1060803307228566),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -2.5952547069568657)],+                               n = 27},+                   koData =+                     ClassData{prior = -0.5059356384717989, unseen = -4.564348191467836,+                               likelihoods =+                                 HashMap.fromList+                                   [("demain", -3.1675825304806504),+                                    ("intersect", -2.9444389791664407),+                                    ("le <day-of-month> (non ordinal)", -3.8607297110405954),+                                    ("midi", -1.3350010667323402), ("day", -2.9444389791664407),+                                    ("time-of-day (latent)", -2.9444389791664407),+                                    ("au d\233jeuner", -3.8607297110405954),+                                    ("hour", -0.916290731874155),+                                    ("<time-of-day> heures", -2.9444389791664407)],+                               n = 41}}),+       ("dd/-mm",+        Classifier{okData =+                     ClassData{prior = -0.7375989431307791,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -0.6505875661411494, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("minuit",+        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}}),+       ("entre dd et dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juillet", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mars",+        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}}),+       ("une <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -2.174751721484161, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.4849066497880004),+                                    ("ann\233e (grain)", -2.4849066497880004),+                                    ("seconde (grain)", -2.4849066497880004),+                                    ("semaine (grain)", -2.4849066497880004),+                                    ("second", -2.4849066497880004),+                                    ("minute (grain)", -2.4849066497880004),+                                    ("year", -2.4849066497880004),+                                    ("heure (grain)", -2.4849066497880004),+                                    ("hour", -2.4849066497880004), ("minute", -2.4849066497880004)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.12062798778861475,+                               unseen = -4.532599493153256,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2636920390275583),+                                    ("semaine (grain)", -1.2636920390275583),+                                    ("mois (grain)", -2.91235066461494), ("day", -2.12389330425067),+                                    ("jour (grain)", -2.12389330425067),+                                    ("month", -2.91235066461494)],+                               n = 39}}),+       ("<hour-of-day> et quart",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("midi", -1.9459101490553135),+                                    ("\224|vers <time-of-day>", -1.540445040947149),+                                    ("hour", -0.8472978603872037),+                                    ("<time-of-day> heures", -1.540445040947149)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (0..16)",+        Classifier{okData =+                     ClassData{prior = -0.2682639865946794, unseen = -3.713572066704308,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 39},+                   koData =+                     ClassData{prior = -1.4469189829363254, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("heure (grain)",+        Classifier{okData =+                     ClassData{prior = -1.540445040947149, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -0.2411620568168881,+                               unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22}}),+       ("<named-month|named-day> dernier|pass\233",+        Classifier{okData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.791759469228055), ("Dimanche", -1.791759469228055)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -2.639057329615259),+                                    ("en semaine", -2.2335922215070942),+                                    ("day", -1.7227665977411035),+                                    ("\224|vers <time-of-day>", -2.639057329615259),+                                    ("time-of-day (latent)", -2.639057329615259),+                                    ("year", -2.639057329615259), ("hour", -1.7227665977411035),+                                    ("<time-of-day> heures", -2.2335922215070942),+                                    ("le <time>", -2.2335922215070942)],+                               n = 9}}),+       ("milieu de journ\233e",+        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}}),+       ("dd/-mm/-yyyy",+        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}}),+       ("fin de semaine",+        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 mm yyyy",+        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}}),+       ("fin du mois",+        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 of month (premier)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("jour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -1.4271163556401458,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("dd mm",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("Avril",+        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}}),+       ("dernier <cycle> de <time> (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.4816045409242156),+                                    ("semaine (grain)intersect", -1.9924301646902063),+                                    ("jour (grain)Octobre", -1.9924301646902063),+                                    ("weekmonth", -1.4816045409242156),+                                    ("semaine (grain)Septembre", -1.9924301646902063),+                                    ("jour (grain)intersect", -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("milieu de matin\233e",+        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}}),+       ("avant le d\233jeuner",+        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}}),+       ("1er mai",+        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}}),+       ("fin de soir\233e",+        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}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.9760099665757773, unseen = -4.442651256490317,+                               likelihoods =+                                 HashMap.fromList+                                   [("demain<time-of-day> heures", -3.7376696182833684),+                                    ("day of month (premier)<day-of-week> <day-of-month>",+                                     -3.044522437723423),+                                    ("dayhour", -3.332204510175204),+                                    ("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",+                                     -3.332204510175204),+                                    ("le <day-of-month> (non ordinal)<time-of-day> heures",+                                     -3.7376696182833684),+                                    ("minuteminute", -2.032921526044943),+                                    ("<day-of-month> <named-month><day-of-month> <named-month>",+                                     -3.332204510175204),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -3.044522437723423),+                                    ("dayday", -1.8658674413817768),+                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",+                                     -3.7376696182833684),+                                    ("<day-of-month> <named-month>day of month (premier)",+                                     -3.332204510175204),+                                    ("minutehour", -3.332204510175204),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -3.7376696182833684),+                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",+                                     -3.044522437723423),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.7376696182833684),+                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",+                                     -3.332204510175204),+                                    ("<day-of-month> <named-month>intersect", -3.332204510175204),+                                    ("intersect<day-of-week> <day-of-month>", -3.332204510175204)],+                               n = 26},+                   koData =+                     ClassData{prior = -0.47290638890369696, unseen = -4.77912349311153,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> <integer> (as relative minutes)intersect",+                                     -3.672072335797555),+                                    ("monthday", -2.8247744754103516),+                                    ("<day-of-week> <day-of-month>Dimanche", -3.672072335797555),+                                    ("Juinintersect", -3.672072335797555),+                                    ("minuteminute", -3.672072335797555),+                                    ("dayday", -1.4384801142904609),+                                    ("<day-of-week> <day-of-month><day-of-week> <day-of-month>",+                                     -3.672072335797555),+                                    ("day of month (premier)<day-of-month> <named-month>",+                                     -4.07753744390572),+                                    ("minutehour", -2.573460047129445),+                                    ("Juillet<day-of-month> <named-month>", -3.672072335797555),+                                    ("<day-of-week> <day-of-month>Mercredi", -4.07753744390572),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -3.3843902633457743),+                                    ("day of month (premier)intersect", -2.8247744754103516),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.3843902633457743),+                                    ("intersectintersect", -3.1612467120315646),+                                    ("Juinday of month (premier)", -3.672072335797555),+                                    ("hh(:|h)mm (time-of-day)intersect", -3.672072335797555),+                                    ("day of month (premier)Mercredi", -3.3843902633457743),+                                    ("intersectMercredi", -3.672072335797555),+                                    ("<day-of-week> <day-of-month>intersect", -2.8247744754103516)],+                               n = 43}}),+       ("<day-of-month> <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.24256163717131135,+                               unseen = -4.709530201312334,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Juin", -3.3141860046725258),+                                    ("integer (numeric)Juillet", -3.0910424533583156),+                                    ("integer (numeric)Octobre", -3.0910424533583156),+                                    ("integer (numeric)Avril", -3.6018680771243066),+                                    ("integer (numeric)Fevrier", -1.5649861498632667),+                                    ("month", -0.7492366472109889),+                                    ("integer (numeric)Septembre", -4.007333185232471),+                                    ("integer (numeric)Mars", -1.927891643552635)],+                               n = 51},+                   koData =+                     ClassData{prior = -1.5353299402803784,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Juillet", -1.0185695809945732),+                                    ("month", -0.8754687373538999),+                                    ("integer (numeric)Septembre", -2.890371757896165),+                                    ("integer (numeric)Mars", -2.890371757896165)],+                               n = 14}}),+       ("Vendredi",+        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}}),+       ("<cycle> prochain|suivant|d'apr\232s",+        Classifier{okData =+                     ClassData{prior = -8.338160893905101e-2,+                               unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.0986122886681098),+                                    ("ann\233e (grain)", -3.295836866004329),+                                    ("semaine (grain)", -1.0986122886681098),+                                    ("mois (grain)", -2.890371757896165),+                                    ("day", -2.6026896854443837), ("year", -3.295836866004329),+                                    ("jour (grain)", -2.6026896854443837),+                                    ("month", -2.890371757896165)],+                               n = 23},+                   koData =+                     ClassData{prior = -2.5257286443082556,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("mois (grain)", -1.791759469228055),+                                    ("day", -1.791759469228055),+                                    ("jour (grain)", -1.791759469228055),+                                    ("month", -1.791759469228055)],+                               n = 2}}),+       ("fin <named-month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mars", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.2181574393178924, unseen = -4.060443010546419,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)<hour-of-day> <integer> (as relative minutes)",+                                     -2.6567569067146595),+                                    ("minuteminute", -1.3350010667323402),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -3.349904087274605),+                                    ("<time-of-day> heures<time-of-day> heures",+                                     -3.349904087274605),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -2.4336133554004498),+                                    ("hourhour", -2.6567569067146595),+                                    ("minutehour", -2.4336133554004498),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -2.6567569067146595),+                                    ("<hour-of-day> <integer> (as relative minutes)hh(:|h)mm (time-of-day)",+                                     -2.4336133554004498),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.349904087274605),+                                    ("<hour-of-day> <integer> (as relative minutes)<hour-of-day> <integer> (as relative minutes)",+                                     -2.6567569067146595),+                                    ("<time-of-day> heurestime-of-day (latent)",+                                     -3.349904087274605)],+                               n = 21},+                   koData =+                     ClassData{prior = -0.35065687161316944,+                               unseen = -4.7535901911063645,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)time-of-day (latent)",+                                     -1.749199854809259),+                                    ("hourhour", -1.310944923878104),+                                    ("minutehour", -1.7004096906398272),+                                    ("hh(:|h)mm (time-of-day)time-of-day (latent)",+                                     -2.953172659135195),+                                    ("<hour-of-day> <integer> (as relative minutes)<time-of-day> heures",+                                     -3.1354942159291497),+                                    ("hh(:|h)mm (time-of-day)<time-of-day> heures",+                                     -3.1354942159291497),+                                    ("<hour-of-day> <integer> (as relative minutes)time-of-day (latent)",+                                     -2.665490586683414),+                                    ("time-of-day (latent)<time-of-day> heures",+                                     -2.26002547857525)],+                               n = 50}}),+       ("<named-day> en huit",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mercredi", -1.6739764335716716),+                                    ("Mardi", -1.6739764335716716), ("day", -0.8266785731844679),+                                    ("Lundi", -1.6739764335716716)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> et demi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("midi", -1.6094379124341003),+                                    ("\224|vers <time-of-day>", -1.6094379124341003),+                                    ("hour", -0.916290731874155),+                                    ("<time-of-day> heures", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dernier week-end de <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Septembre", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("du dd au dd(interval)",+        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}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("avant <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.4469189829363254,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.791759469228055),+                                    ("hour", -1.2809338454620642),+                                    ("<time-of-day> heures", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.2682639865946794,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.890371757896165),+                                    ("hh(:|h)mm (time-of-day)", -2.890371757896165),+                                    ("hier", -2.890371757896165), ("day", -2.890371757896165),+                                    ("time-of-day (latent)", -1.9740810260220096),+                                    ("au d\233jeuner", -2.890371757896165),+                                    ("hour", -1.1856236656577395), ("minute", -2.4849066497880004),+                                    ("<time-of-day> heures", -1.9740810260220096),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -2.890371757896165)],+                               n = 13}}),+       ("fin d'apr\232s-midi",+        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}}),+       ("<part-of-day> du <dim time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("matin<day-of-month> <named-month>", -1.0986122886681098),+                                    ("hourday", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("matinyear (latent)", -1.0986122886681098),+                                    ("houryear", -1.0986122886681098)],+                               n = 1}}),+       ("<time-of-day> heures",+        Classifier{okData =+                     ClassData{prior = -0.14805309995913976,+                               unseen = -5.262690188904886,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.7576857016975165),+                                    ("apr\232s <time-of-day>", -3.871201010907891),+                                    ("hour", -0.7036184804272406),+                                    ("avant <time-of-day>", -4.1588830833596715)],+                               n = 94},+                   koData =+                     ClassData{prior = -1.9832976811269336,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.4469189829363254),+                                    ("apr\232s <time-of-day>", -1.916922612182061),+                                    ("hour", -0.7537718023763802),+                                    ("avant <time-of-day>", -1.916922612182061)],+                               n = 15}}),+       ("week-end",+        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}}),+       ("le <time>",+        Classifier{okData =+                     ClassData{prior = -0.22190054307461274,+                               unseen = -5.855071922202427,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5941059417529924),+                                    ("<named-month|named-day> suivant|d'apr\232s",+                                     -3.654977902438255),+                                    ("<ordinal> <cycle> de <time>", -4.465908118654584),+                                    ("premi\232re quinzaine de <named-month>(interval)",+                                     -5.159055299214529),+                                    ("intersect", -2.2146163200480884),+                                    ("soir de no\235l", -5.159055299214529),+                                    ("en semaine", -3.454307206976104),+                                    ("toussaint", -4.7535901911063645),+                                    ("day", -1.3089076975044704),+                                    ("deuxi\232me quinzaine de <named-month>(interval)",+                                     -5.159055299214529),+                                    ("<dim time> <part-of-day>", -3.144152278672264),+                                    ("dd/-mm", -3.906292330719161),+                                    ("dd/-mm/-yyyy", -4.465908118654584),+                                    ("dd mm yyyy", -3.906292330719161),+                                    ("day of month (premier)", -3.906292330719161),+                                    ("dd mm", -3.906292330719161), ("hour", -2.1386304130701665),+                                    ("month", -4.465908118654584),+                                    ("dernier <cycle> de <time> (latent)", -4.242764567340374),+                                    ("<day-of-month> <named-month>", -2.5941059417529924),+                                    ("<cycle> prochain|suivant|d'apr\232s", -2.8076800420510515),+                                    ("dernier week-end de <time>", -5.159055299214529),+                                    ("<ordinal> week-end de <time>", -4.7535901911063645),+                                    ("<cycle> dernier", -4.060443010546419)],+                               n = 161},+                   koData =+                     ClassData{prior = -1.6144254539451395, unseen = -4.672828834461907,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month|named-day> suivant|d'apr\232s",+                                     -3.970291913552122),+                                    ("intersect", -3.5648268054439574),+                                    ("en semaine", -1.890850371872286), ("day", -1.367602228107738),+                                    ("<dim time> <part-of-day>", -3.5648268054439574),+                                    ("dd/-mm", -3.2771447329921766),+                                    ("<named-month|named-day> dernier|pass\233",+                                     -3.5648268054439574),+                                    ("day of month (premier)", -3.970291913552122),+                                    ("dd mm", -3.2771447329921766), ("hour", -1.955388893009857),+                                    ("<day-of-month> <named-month>", -3.970291913552122),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.2655438213136967)],+                               n = 40}}),+       ("apr\232s le <day-of-month>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1}}),+       ("n <cycle> passes|precedents",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("integer (numeric)ann\233e (grain)", -1.6094379124341003),+                                    ("year", -1.6094379124341003),+                                    ("integer (numeric)semaine (grain)", -1.6094379124341003)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.3862943611198906),+                                    ("number (0..16)heure (grain)", -1.3862943611198906)],+                               n = 1}}),+       ("il y a <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8718021769015913), ("year", -1.8718021769015913),+                                    ("<integer> <unit-of-duration>", -0.9555114450274363),+                                    ("hour", -1.8718021769015913), ("month", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> week-end de <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (premier..seizieme)Septembre", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<dim time> du matin",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224|vers <time-of-day>", -1.466337068793427),+                                    ("hour", -0.7731898882334817),+                                    ("<time-of-day> heures", -1.1786549963416462)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.916290731874155),+                                    ("<time-of-day> heures", -0.916290731874155)],+                               n = 1}}),+       ("d\233but d'apr\232s-midi",+        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}}),+       ("<hour-of-day> <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = -8.961215868968717e-2,+                               unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuitnumber (0..16)", -3.20545280453606),+                                    ("midinumber (20..60)", -3.6109179126442243),+                                    ("\224|vers <time-of-day>number (20..60)", -3.6109179126442243),+                                    ("<time-of-day> heuresinteger (numeric)", -1.16857087727502),+                                    ("\224|vers <time-of-day>number (0..16)", -3.20545280453606),+                                    ("midinumber (0..16)", -3.6109179126442243),+                                    ("hour", -0.8075575317376895),+                                    ("<time-of-day> heuresnumber (20..60)", -3.6109179126442243),+                                    ("\224|vers <time-of-day>integer (numeric)",+                                     -3.6109179126442243),+                                    ("<time-of-day> heuresnumber (0..16)", -3.6109179126442243)],+                               n = 32},+                   koData =+                     ClassData{prior = -2.456735772821304, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.3862943611198906),+                                    ("\224|vers <time-of-day>integer (numeric)",+                                     -1.6739764335716716),+                                    ("<time-of-day> heuresnumber (0..16)", -2.0794415416798357)],+                               n = 3}}),+       ("<cycle> dernier",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9924301646902063),+                                    ("ann\233e (grain)", -2.3978952727983707),+                                    ("semaine (grain)", -1.9924301646902063),+                                    ("mois (grain)", -2.3978952727983707),+                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),+                                    ("jour (grain)", -1.9924301646902063),+                                    ("month", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("heure (grain)", -1.791759469228055),+                                    ("hour", -1.791759469228055)],+                               n = 1}}),+       ("ce|dans le <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2992829841302609),+                                    ("ann\233e (grain)", -2.3978952727983707),+                                    ("semaine (grain)", -1.2992829841302609),+                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),+                                    ("jour (grain)", -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Dimanche",+        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}}),+       ("Fevrier",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ce <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("soir", -1.466337068793427), ("day", -1.8718021769015913),+                                    ("Lundi", -1.8718021769015913), ("hour", -1.1786549963416462),+                                    ("week-end", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/GA.hs
@@ -1,155 +0,0 @@--- 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.GA (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("integer (numeric)",-        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}}),-       ("ar\250 am\225rach",-        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/mm",-        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}}),-       ("inniu",-        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/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}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("<time> seo chugainn",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.8266785731844679),-                                    ("d\233 named-day", -2.0794415416798357),-                                    ("named-day", -1.3862943611198906),-                                    ("an named-day", -1.6739764335716716)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("d\233 named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("anois",-        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}}),-       ("named-day",-        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}}),-       ("an named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("am\225rach",-        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}}),-       ("inn\233",-        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}}),-       ("<time> seo",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.7985076962177716),-                                    ("d\233 named-day", -2.3025850929940455),-                                    ("named-day", -1.3862943611198906),-                                    ("an named-day", -1.6094379124341003)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ar\250 inn\233",-        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}})]
+ Duckling/Ranking/Classifiers/GA_XX.hs view
@@ -0,0 +1,156 @@+-- 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.GA_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("Thursday",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("integer (numeric)",+        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}}),+       ("ar\250 am\225rach",+        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/mm",+        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}}),+       ("inniu",+        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}}),+       ("Monday",+        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}}),+       ("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}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1}}),+       ("<time> seo chugainn",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -1.3862943611198906), ("day", -0.8266785731844679),+                                    ("d\233 named-day", -2.0794415416798357),+                                    ("an named-day", -1.6739764335716716)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("d\233 named-day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("anois",+        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}}),+       ("an named-day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("am\225rach",+        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}}),+       ("inn\233",+        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}}),+       ("<time> seo",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -1.3862943611198906), ("day", -0.7985076962177716),+                                    ("d\233 named-day", -2.3025850929940455),+                                    ("an named-day", -1.6094379124341003)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ar\250 inn\233",+        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}})]
− Duckling/Ranking/Classifiers/HE.hs
@@ -1,992 +0,0 @@--- 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.HE (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -1.110882381259924, unseen = -3.367295829986474,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 27},-                   koData =-                     ClassData{prior = -0.3993860620317821, unseen = -4.04305126783455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 55}}),-       ("\1489 <date>",-        Classifier{okData =-                     ClassData{prior = -0.12783337150988489,-                               unseen = -4.1588830833596715,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.044522437723423),-                                    ("<time> <part-of-day>", -3.4499875458315876),-                                    ("mm/dd", -3.4499875458315876),-                                    ("intersect", -3.044522437723423),-                                    ("named-month", -2.5336968139574325),-                                    ("day", -2.1972245773362196),-                                    ("this <cycle>", -3.4499875458315876),-                                    ("time-of-day (latent)", -3.044522437723423),-                                    ("<time-of-day> am|pm", -3.4499875458315876),-                                    ("named-day", -3.044522437723423),-                                    ("current <day-of-week>", -3.4499875458315876),-                                    ("last <time>", -3.4499875458315876),-                                    ("hour", -1.7452394535931621), ("month", -2.5336968139574325),-                                    ("last <cycle>", -3.4499875458315876),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -3.4499875458315876),-                                    ("week-end", -3.044522437723423),-                                    ("this <time>", -3.044522437723423)],-                               n = 22},-                   koData =-                     ClassData{prior = -2.120263536200091, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.5257286443082556), ("day", -2.120263536200091),-                                    ("<day-of-month> (ordinal)", -2.5257286443082556),-                                    ("month", -2.5257286443082556),-                                    ("this <time>", -2.5257286443082556)],-                               n = 3}}),-       ("lunch",-        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 (20..90)",-        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> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.4213856809311607),-                                    ("\1489 <date>morning", -2.6741486494265287),-                                    ("yesterdayevening|night", -2.6741486494265287),-                                    ("hourhour", -1.9810014688665833),-                                    ("time-of-day (latent)morning", -2.6741486494265287),-                                    ("named-daymorning", -2.6741486494265287),-                                    ("todayevening|night", -2.6741486494265287),-                                    ("tomorrowlunch", -2.268683541318364),-                                    ("at <time-of-day>morning", -2.6741486494265287),-                                    ("tomorrowevening|night", -2.6741486494265287)],-                               n = 9},-                   koData =-                     ClassData{prior = -2.3025850929940455, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.8718021769015913),-                                    ("<day-of-month> (ordinal)morning", -1.8718021769015913)],-                               n = 1}}),-       ("today",-        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",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.0986122886681098),-                                    ("<time-of-day> am|pm", -1.5040773967762742),-                                    ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("<day-of-month> (non ordinal) of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.8649974374866046),-                                    ("month", -0.7472144018302211),-                                    ("integer 3named-month", -2.2512917986064953)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the ides of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal 4",-        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}}),-       ("\1489 <named-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("month (grain)",-        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}}),-       ("hour (grain)",-        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}}),-       ("ordinal 9",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("integer 21..99 (with and)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (20..90)integer 4", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -4.852030263919617,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -2.646962509122372),-                                    ("daymonth", -3.2347491740244907),-                                    ("monthyear", -3.7455747977904816),-                                    ("the <day-of-month> (ordinal)in <named-month>",-                                     -3.7455747977904816),-                                    ("intersect<time-of-day> am|pm", -4.151039905898646),-                                    ("<time> <part-of-day>\1489 <named-day>", -3.457892725338701),-                                    ("intersect by \",\"<time-of-day> am|pm", -3.2347491740244907),-                                    ("last <day-of-week> of <time>year", -4.151039905898646),-                                    ("dayday", -2.7647455447787554),-                                    ("the <day-of-month> (ordinal)\1489 <date>",-                                     -3.7455747977904816),-                                    ("dayyear", -2.359280436670591),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -3.7455747977904816),-                                    ("\1489 <date>\1489 <named-day>", -4.151039905898646),-                                    ("named-monthyear", -3.7455747977904816),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.151039905898646),-                                    ("absorption of , after named day<day-of-month> (ordinal) of <named-month>",-                                     -4.151039905898646),-                                    ("<day-of-month> (ordinal) of <named-month>year",-                                     -3.457892725338701),-                                    ("named-daynext <cycle>", -4.151039905898646),-                                    ("dayminute", -2.7647455447787554),-                                    ("named-day<day-of-month> (ordinal) of <named-month>",-                                     -4.151039905898646),-                                    ("named-day\1489 <date>", -4.151039905898646),-                                    ("absorption of , after named dayintersect",-                                     -4.151039905898646),-                                    ("named-day<day-of-month> (non ordinal) of <named-month>",-                                     -4.151039905898646),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -3.7455747977904816),-                                    ("year<time-of-day> am|pm", -4.151039905898646),-                                    ("\1489 <date>\1489 <date>", -4.151039905898646),-                                    ("<day-of-month> (non ordinal) of <named-month>year",-                                     -3.457892725338701),-                                    ("absorption of , after named day<day-of-month> (non ordinal) of <named-month>",-                                     -4.151039905898646),-                                    ("dayweek", -3.7455747977904816),-                                    ("<time> <part-of-day>\1489 <date>", -3.457892725338701),-                                    ("named-daythe <day-of-month> (ordinal)", -4.151039905898646),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -3.7455747977904816),-                                    ("yearminute", -4.151039905898646)],-                               n = 42},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -4.454347296253507,-                               likelihoods =-                                 HashMap.fromList-                                   [("in <named-month>year", -3.7495040759303713),-                                    ("dayhour", -3.3440389678222067),-                                    ("year<hour-of-day> <integer>", -3.3440389678222067),-                                    ("daymonth", -3.056356895370426),-                                    ("monthyear", -2.6508917872622613),-                                    ("intersecthh:mm", -3.7495040759303713),-                                    ("dayday", -3.7495040759303713),-                                    ("intersect by \",\"hh:mm", -2.833213344056216),-                                    ("named-monthyear", -3.056356895370426),-                                    ("absorption of , after named daynamed-month",-                                     -3.7495040759303713),-                                    ("named-dayin <named-month>", -3.7495040759303713),-                                    ("dayminute", -2.3632097148104805),-                                    ("named-day\1489 <date>", -3.7495040759303713),-                                    ("absorption of , after named dayintersect",-                                     -3.7495040759303713),-                                    ("yearhh:mm", -3.7495040759303713),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -3.7495040759303713),-                                    ("\1489 <date>year", -3.7495040759303713),-                                    ("named-daythe <day-of-month> (ordinal)", -3.7495040759303713),-                                    ("tomorrownoon", -3.3440389678222067),-                                    ("yearminute", -3.056356895370426)],-                               n = 21}}),-       ("year (grain)",-        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.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("month (grain)", -1.9459101490553135),-                                    ("year (grain)", -1.9459101490553135),-                                    ("week (grain)", -1.540445040947149),-                                    ("year", -1.9459101490553135), ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               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}}),-       ("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}}),-       ("evening|night",-        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}}),-       ("ordinal 3",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("yesterday",-        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: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}}),-       ("<day-of-month> (ordinal) of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal 3named-month", -1.9459101490553135),-                                    ("ordinal (digits)named-month", -0.9650808960435872),-                                    ("month", -0.7419373447293773)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> and <integer>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer 4", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1}}),-       ("quarter to|till|before <integer> (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}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer 10", -1.7047480922384253),-                                    ("time-of-day (latent)integer (numeric)", -1.0116009116784799),-                                    ("hour", -0.7884573603642702)],-                               n = 4}}),-       ("ordinal 19",-        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}}),-       ("named-month",-        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}}),-       ("week (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}}),-       ("now",-        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 11..19",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer 9integer 10", 0.0)],-                               n = 1}}),-       ("integer 7",-        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>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal 3\1489 <date>", -1.7346010553881064),-                                    ("ordinal (digits)in <named-month>", -2.1400661634962708),-                                    ("month", -0.8873031950009028),-                                    ("ordinal 3in <named-month>", -1.7346010553881064),-                                    ("ordinal (digits)\1489 <date>", -2.1400661634962708)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 6}}),-       ("tomorrow",-        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 2",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        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 <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal 3", -1.252762968495368),-                                    ("ordinal 19", -1.252762968495368),-                                    ("ordinal (digits)", -1.252762968495368)],-                               n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("ordinal 9", -0.916290731874155)],-                               n = 1}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("week (grain)", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("ordinal 7",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -1.2809338454620642,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.4700036292457356),-                                    ("integer 9", -1.3862943611198906)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.325422400434628, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2876820724517809),-                                    ("integer (20..90)", -2.0794415416798357),-                                    ("integer 9", -2.0794415416798357)],-                               n = 13}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("integer 9",-        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}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.8109302162163288),-                                    ("named-dayintersect", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer 21..99 (with and)hour (grain)", -2.3025850929940455),-                                    ("day", -1.8971199848858813),-                                    ("integer 7day (grain)", -1.8971199848858813),-                                    ("hour", -1.8971199848858813),-                                    ("integer (numeric)minute (grain)", -1.8971199848858813),-                                    ("minute", -1.8971199848858813),-                                    ("integer (numeric)hour (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -1.6094379124341003),-                                    ("integer 4hour (grain)", -1.6094379124341003)],-                               n = 1}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.3629054936893685,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("\1489 <date>", -2.9444389791664407),-                                    ("at <time-of-day>", -2.9444389791664407),-                                    ("time-of-day (latent)", -2.2512917986064953),-                                    ("hh:mm", -1.1526795099383855), ("hour", -1.845826690498331),-                                    ("minute", -1.1526795099383855)],-                               n = 16},-                   koData =-                     ClassData{prior = -1.1895840668738362, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 7}}),-       ("integer 10",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.3794896217049037,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect by \",\"year", -3.044522437723423),-                                    ("dayday", -2.128231705849268),-                                    ("named-dayintersect by \",\"", -2.639057329615259),-                                    ("dayyear", -2.128231705849268),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -3.044522437723423),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -3.044522437723423),-                                    ("intersect by \",\"intersect", -3.044522437723423),-                                    ("named-dayintersect", -3.044522437723423),-                                    ("dayminute", -1.9459101490553135),-                                    ("named-day<day-of-month> (ordinal) of <named-month>",-                                     -3.044522437723423),-                                    ("intersectyear", -3.044522437723423),-                                    ("named-day<day-of-month> (non ordinal) of <named-month>",-                                     -3.044522437723423),-                                    ("intersectintersect", -3.044522437723423),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -2.639057329615259)],-                               n = 13},-                   koData =-                     ClassData{prior = -1.1526795099383855, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.639057329615259),-                                    ("daymonth", -2.639057329615259),-                                    ("named-dayintersect by \",\"", -2.639057329615259),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -2.639057329615259),-                                    ("intersect by \",\"intersect", -2.639057329615259),-                                    ("named-dayintersect", -2.639057329615259),-                                    ("dayminute", -1.540445040947149),-                                    ("intersectintersect", -2.639057329615259)],-                               n = 6}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -7.410797215372185e-2,-                               unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -2.639057329615259, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = -3.7740327982847086e-2,-                               unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("ordinal 1",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("current <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("\1489 <date>", -1.9459101490553135),-                                    ("\1489 <named-day>", -1.9459101490553135),-                                    ("day", -0.8472978603872037),-                                    ("named-day", -1.252762968495368)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer 4",-        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}}),-       ("quarter of an hour",-        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}}),-       ("<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayordinal (digits)", -0.916290731874155),-                                    ("day", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("absorption of , after named dayordinal (digits)",-                                     -0.916290731874155),-                                    ("day", -0.916290731874155)],-                               n = 1}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal 6",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("integer 3",-        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}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("\1489 <date>", -1.791759469228055),-                                    ("day", -1.791759469228055), ("named-day", -1.791759469228055),-                                    ("hour", -1.3862943611198906),-                                    ("week-end", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.9808292530117262),-                                    ("named-day", -1.6739764335716716),-                                    ("<day-of-month> (ordinal)", -1.3862943611198906)],-                               n = 5}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal 4", -1.7047480922384253),-                                    ("ordinal 3", -1.7047480922384253),-                                    ("ordinal 2", -1.0116009116784799),-                                    ("ordinal 1", -1.2992829841302609)],-                               n = 7}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.0986122886681098),-                                    ("month", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.916290731874155), ("named-day", -0.916290731874155)],-                               n = 3}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.0986122886681098),-                                    ("month (grain)", -1.791759469228055),-                                    ("week (grain)", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal 20..90",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("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}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -2.3025850929940455),-                                    ("half an hour", -2.3025850929940455),-                                    ("<integer> <unit-of-duration>", -1.2039728043259361),-                                    ("quarter of an hour", -2.3025850929940455),-                                    ("hour", -1.8971199848858813), ("minute", -1.3862943611198906)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("year<hour-of-day> <integer>", -0.6931471805599453),-                                    ("yearminute", -0.6931471805599453)],-                               n = 2}}),-       ("in <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal 5",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("in <named-month>integer (numeric)", -2.1972245773362196),-                                    ("\1489 <date>integer (numeric)", -2.1972245773362196),-                                    ("named-monthinteger (numeric)", -1.0986122886681098),-                                    ("month", -0.8109302162163288)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)in <named-month>", -1.8718021769015913),-                                    ("integer 3\1489 <date>", -1.8718021769015913),-                                    ("integer (numeric)\1489 <date>", -1.8718021769015913),-                                    ("month", -0.9555114450274363),-                                    ("integer 3in <named-month>", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal 3\1489 <date>", -1.252762968495368),-                                    ("month", -0.8472978603872037),-                                    ("ordinal 3in <named-month>", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        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}}),-       ("week-end",-        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 evening",-        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 (grain)",-        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.45198512374305727,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("\1489 <date>", -1.9459101490553135),-                                    ("\1489 <named-day>", -2.3513752571634776),-                                    ("day", -1.252762968495368), ("named-day", -1.6582280766035324),-                                    ("hour", -1.9459101490553135),-                                    ("week-end", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.0116009116784799, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("\1489 <date>", -2.0149030205422647),-                                    ("day", -1.0986122886681098),-                                    ("<day-of-month> (ordinal)", -1.3217558399823195)],-                               n = 4}})]
+ Duckling/Ranking/Classifiers/HE_XX.hs view
@@ -0,0 +1,1051 @@+-- 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.HE_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("\1502\1512\1509",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -1.110882381259924, unseen = -3.367295829986474,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 27},+                   koData =+                     ClassData{prior = -0.3993860620317821, unseen = -4.04305126783455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 55}}),+       ("\1489 <date>",+        Classifier{okData =+                     ClassData{prior = -0.12783337150988489,+                               unseen = -4.189654742026425,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1502\1512\1509", -3.0757749812275272),+                                    ("week", -3.0757749812275272),+                                    ("<time> <part-of-day>", -3.481240089335692),+                                    ("mm/dd", -3.481240089335692),+                                    ("intersect", -3.0757749812275272), ("day", -2.228477120840324),+                                    ("this <cycle>", -3.481240089335692),+                                    ("time-of-day (latent)", -3.0757749812275272),+                                    ("<time-of-day> am|pm", -3.481240089335692),+                                    ("named-day", -3.0757749812275272),+                                    ("current <day-of-week>", -3.481240089335692),+                                    ("last <time>", -3.481240089335692),+                                    ("\1488\1493\1511\1496\1493\1489\1512", -3.481240089335692),+                                    ("hour", -1.7764919970972666), ("month", -2.5649493574615367),+                                    ("\1508\1489\1512\1493\1488\1512", -3.481240089335692),+                                    ("last <cycle>", -3.481240089335692),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -3.481240089335692),+                                    ("week-end", -3.0757749812275272),+                                    ("this <time>", -3.0757749812275272)],+                               n = 22},+                   koData =+                     ClassData{prior = -2.120263536200091, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.6026896854443837),+                                    ("day", -2.1972245773362196),+                                    ("<day-of-month> (ordinal)", -2.6026896854443837),+                                    ("month", -2.6026896854443837),+                                    ("this <time>", -2.6026896854443837)],+                               n = 3}}),+       ("lunch",+        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 (20..90)",+        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> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.4213856809311607),+                                    ("\1489 <date>morning", -2.6741486494265287),+                                    ("yesterdayevening|night", -2.6741486494265287),+                                    ("hourhour", -1.9810014688665833),+                                    ("time-of-day (latent)morning", -2.6741486494265287),+                                    ("named-daymorning", -2.6741486494265287),+                                    ("todayevening|night", -2.6741486494265287),+                                    ("tomorrowlunch", -2.268683541318364),+                                    ("at <time-of-day>morning", -2.6741486494265287),+                                    ("tomorrowevening|night", -2.6741486494265287)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.8718021769015913),+                                    ("<day-of-month> (ordinal)morning", -1.8718021769015913)],+                               n = 1}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.0986122886681098),+                                    ("<time-of-day> am|pm", -1.5040773967762742),+                                    ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("<day-of-month> (non ordinal) of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)\1502\1512\1509", -1.9459101490553135),+                                    ("integer (numeric)\1508\1489\1512\1493\1488\1512",+                                     -1.4350845252893227),+                                    ("integer (numeric)\1488\1508\1512\1497\1500",+                                     -2.3513752571634776),+                                    ("integer 3\1502\1512\1509", -2.3513752571634776),+                                    ("month", -0.8472978603872037)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the ides of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1502\1512\1509", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal 4",+        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}}),+       ("\1489 <named-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        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}}),+       ("hour (grain)",+        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}}),+       ("ordinal 9",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("integer 21..99 (with and)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (20..90)integer 4", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -4.867534450455582,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.662587827025453),+                                    ("daymonth", -3.250374491927572),+                                    ("monthyear", -3.7612001156935624),+                                    ("the <day-of-month> (ordinal)in <named-month>",+                                     -3.7612001156935624),+                                    ("\1488\1493\1511\1496\1493\1489\1512year",+                                     -4.1666652238017265),+                                    ("intersect<time-of-day> am|pm", -4.1666652238017265),+                                    ("<time> <part-of-day>\1489 <named-day>", -3.4735180432417816),+                                    ("intersect by \",\"<time-of-day> am|pm", -3.250374491927572),+                                    ("last <day-of-week> of <time>year", -4.1666652238017265),+                                    ("dayday", -2.780370862681836),+                                    ("the <day-of-month> (ordinal)\1489 <date>",+                                     -3.7612001156935624),+                                    ("dayyear", -2.374905754573672),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -3.7612001156935624),+                                    ("\1489 <date>\1489 <named-day>", -4.1666652238017265),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.1666652238017265),+                                    ("absorption of , after named day<day-of-month> (ordinal) of <named-month>",+                                     -4.1666652238017265),+                                    ("<day-of-month> (ordinal) of <named-month>year",+                                     -3.4735180432417816),+                                    ("named-daynext <cycle>", -4.1666652238017265),+                                    ("dayminute", -2.780370862681836),+                                    ("named-day<day-of-month> (ordinal) of <named-month>",+                                     -4.1666652238017265),+                                    ("named-day\1489 <date>", -4.1666652238017265),+                                    ("absorption of , after named dayintersect",+                                     -4.1666652238017265),+                                    ("named-day<day-of-month> (non ordinal) of <named-month>",+                                     -4.1666652238017265),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -3.7612001156935624),+                                    ("year<time-of-day> am|pm", -4.1666652238017265),+                                    ("\1489 <date>\1489 <date>", -4.1666652238017265),+                                    ("<day-of-month> (non ordinal) of <named-month>year",+                                     -3.4735180432417816),+                                    ("absorption of , after named day<day-of-month> (non ordinal) of <named-month>",+                                     -4.1666652238017265),+                                    ("dayweek", -3.7612001156935624),+                                    ("\1502\1512\1509year", -4.1666652238017265),+                                    ("<time> <part-of-day>\1489 <date>", -3.4735180432417816),+                                    ("named-daythe <day-of-month> (ordinal)", -4.1666652238017265),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -3.7612001156935624),+                                    ("yearminute", -4.1666652238017265)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -4.477336814478207,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>year", -3.7727609380946383),+                                    ("dayhour", -3.367295829986474),+                                    ("year<hour-of-day> <integer>", -3.367295829986474),+                                    ("daymonth", -3.079613757534693),+                                    ("monthyear", -2.6741486494265287),+                                    ("intersecthh:mm", -3.7727609380946383),+                                    ("dayday", -3.7727609380946383),+                                    ("intersect by \",\"hh:mm", -2.856470206220483),+                                    ("\1488\1508\1512\1497\1500year", -3.7727609380946383),+                                    ("named-dayin <named-month>", -3.7727609380946383),+                                    ("dayminute", -2.386466576974748),+                                    ("named-day\1489 <date>", -3.7727609380946383),+                                    ("absorption of , after named dayintersect",+                                     -3.7727609380946383),+                                    ("yearhh:mm", -3.7727609380946383),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -3.7727609380946383),+                                    ("\1502\1512\1509year", -3.367295829986474),+                                    ("\1489 <date>year", -3.7727609380946383),+                                    ("named-daythe <day-of-month> (ordinal)", -3.7727609380946383),+                                    ("absorption of , after named day\1497\1493\1500\1497",+                                     -3.7727609380946383),+                                    ("tomorrownoon", -3.367295829986474),+                                    ("yearminute", -3.079613757534693)],+                               n = 21}}),+       ("year (grain)",+        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.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("month (grain)", -1.9459101490553135),+                                    ("year (grain)", -1.9459101490553135),+                                    ("week (grain)", -1.540445040947149),+                                    ("year", -1.9459101490553135), ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               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}}),+       ("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}}),+       ("evening|night",+        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}}),+       ("ordinal 3",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("yesterday",+        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: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}}),+       ("<day-of-month> (ordinal) of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal 3\1502\1512\1509", -2.4849066497880004),+                                    ("ordinal (digits)\1502\1512\1509", -2.0794415416798357),+                                    ("ordinal (digits)\1488\1508\1512\1497\1500",+                                     -2.4849066497880004),+                                    ("ordinal 3\1488\1493\1511\1496\1493\1489\1512",+                                     -2.4849066497880004),+                                    ("month", -0.8754687373538999),+                                    ("ordinal (digits)\1508\1489\1512\1493\1488\1512",+                                     -1.5686159179138452)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> and <integer>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)integer 4", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("quarter to|till|before <integer> (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}}),+       ("<hour-of-day> <integer>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)integer 10", -1.7047480922384253),+                                    ("time-of-day (latent)integer (numeric)", -1.0116009116784799),+                                    ("hour", -0.7884573603642702)],+                               n = 4}}),+       ("ordinal 19",+        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}}),+       ("\1488\1493\1490\1493\1505\1496",+        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}}),+       ("\1488\1508\1512\1497\1500",+        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}}),+       ("week (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}}),+       ("now",+        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 11..19",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer 9integer 10", 0.0)],+                               n = 1}}),+       ("integer 7",+        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>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal 3\1489 <date>", -1.7346010553881064),+                                    ("ordinal (digits)in <named-month>", -2.1400661634962708),+                                    ("month", -0.8873031950009028),+                                    ("ordinal 3in <named-month>", -1.7346010553881064),+                                    ("ordinal (digits)\1489 <date>", -2.1400661634962708)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("\1497\1493\1500\1497",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 6}}),+       ("tomorrow",+        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 2",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half an hour",+        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 <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal 3", -1.252762968495368),+                                    ("ordinal 19", -1.252762968495368),+                                    ("ordinal (digits)", -1.252762968495368)],+                               n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("ordinal 9", -0.916290731874155)],+                               n = 1}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("week (grain)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("ordinal 7",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -1.2809338454620642,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.4700036292457356),+                                    ("integer 9", -1.3862943611198906)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.325422400434628, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2876820724517809),+                                    ("integer (20..90)", -2.0794415416798357),+                                    ("integer 9", -2.0794415416798357)],+                               n = 13}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("integer 9",+        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}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("named-dayintersect", -1.5040773967762742),+                                    ("named-day\1502\1512\1509", -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer 21..99 (with and)hour (grain)", -2.3025850929940455),+                                    ("day", -1.8971199848858813),+                                    ("integer 7day (grain)", -1.8971199848858813),+                                    ("hour", -1.8971199848858813),+                                    ("integer (numeric)minute (grain)", -1.8971199848858813),+                                    ("minute", -1.8971199848858813),+                                    ("integer (numeric)hour (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.6094379124341003),+                                    ("integer 4hour (grain)", -1.6094379124341003)],+                               n = 1}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.3629054936893685,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1489 <date>", -2.9444389791664407),+                                    ("at <time-of-day>", -2.9444389791664407),+                                    ("time-of-day (latent)", -2.2512917986064953),+                                    ("hh:mm", -1.1526795099383855), ("hour", -1.845826690498331),+                                    ("minute", -1.1526795099383855)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.1895840668738362, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 7}}),+       ("integer 10",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.3794896217049037,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect by \",\"year", -3.044522437723423),+                                    ("dayday", -2.128231705849268),+                                    ("named-dayintersect by \",\"", -2.639057329615259),+                                    ("dayyear", -2.128231705849268),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -3.044522437723423),+                                    ("named-day<named-month> <day-of-month> (non ordinal)",+                                     -3.044522437723423),+                                    ("intersect by \",\"intersect", -3.044522437723423),+                                    ("named-dayintersect", -3.044522437723423),+                                    ("dayminute", -1.9459101490553135),+                                    ("named-day<day-of-month> (ordinal) of <named-month>",+                                     -3.044522437723423),+                                    ("intersectyear", -3.044522437723423),+                                    ("named-day<day-of-month> (non ordinal) of <named-month>",+                                     -3.044522437723423),+                                    ("intersectintersect", -3.044522437723423),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -2.639057329615259)],+                               n = 13},+                   koData =+                     ClassData{prior = -1.1526795099383855, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.639057329615259),+                                    ("named-dayintersect by \",\"", -2.639057329615259),+                                    ("named-day\1497\1493\1500\1497", -2.639057329615259),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -2.639057329615259),+                                    ("intersect by \",\"intersect", -2.639057329615259),+                                    ("named-dayintersect", -2.639057329615259),+                                    ("dayminute", -1.540445040947149),+                                    ("intersectintersect", -2.639057329615259)],+                               n = 6}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -7.410797215372185e-2,+                               unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -2.639057329615259, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("named-day",+        Classifier{okData =+                     ClassData{prior = -3.7740327982847086e-2,+                               unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},+                   koData =+                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("ordinal 1",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("current <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1489 <date>", -1.9459101490553135),+                                    ("\1489 <named-day>", -1.9459101490553135),+                                    ("day", -0.8472978603872037),+                                    ("named-day", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer 4",+        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}}),+       ("quarter of an hour",+        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}}),+       ("<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("named-dayordinal (digits)", -0.916290731874155),+                                    ("day", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("absorption of , after named dayordinal (digits)",+                                     -0.916290731874155),+                                    ("day", -0.916290731874155)],+                               n = 1}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal 6",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("integer 3",+        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}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1489 <date>", -1.791759469228055),+                                    ("day", -1.791759469228055), ("named-day", -1.791759469228055),+                                    ("hour", -1.3862943611198906),+                                    ("week-end", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.9808292530117262),+                                    ("named-day", -1.6739764335716716),+                                    ("<day-of-month> (ordinal)", -1.3862943611198906)],+                               n = 5}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal 4", -1.7047480922384253),+                                    ("ordinal 3", -1.7047480922384253),+                                    ("ordinal 2", -1.0116009116784799),+                                    ("ordinal 1", -1.2992829841302609)],+                               n = 7}}),+       ("\1488\1493\1511\1496\1493\1489\1512",+        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}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("\1508\1489\1512\1493\1488\1512",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1502\1512\1509", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.916290731874155), ("named-day", -0.916290731874155)],+                               n = 3}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.0986122886681098),+                                    ("month (grain)", -1.791759469228055),+                                    ("week (grain)", -1.0986122886681098),+                                    ("month", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal 20..90",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -2.3025850929940455),+                                    ("half an hour", -2.3025850929940455),+                                    ("<integer> <unit-of-duration>", -1.2039728043259361),+                                    ("quarter of an hour", -2.3025850929940455),+                                    ("hour", -1.8971199848858813), ("minute", -1.3862943611198906)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("year<hour-of-day> <integer>", -0.6931471805599453),+                                    ("yearminute", -0.6931471805599453)],+                               n = 2}}),+       ("in <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1502\1512\1509", -1.3862943611198906),+                                    ("\1488\1493\1511\1496\1493\1489\1512", -1.791759469228055),+                                    ("month", -0.8754687373538999),+                                    ("\1508\1489\1512\1493\1488\1512", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal 5",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("in <named-month>integer (numeric)", -2.3978952727983707),+                                    ("\1502\1512\1509integer (numeric)", -2.3978952727983707),+                                    ("\1489 <date>integer (numeric)", -2.3978952727983707),+                                    ("\1508\1489\1512\1493\1488\1512integer (numeric)",+                                     -2.3978952727983707),+                                    ("\1488\1493\1490\1493\1505\1496integer (numeric)",+                                     -2.3978952727983707),+                                    ("\1488\1508\1512\1497\1500integer (numeric)",+                                     -2.3978952727983707),+                                    ("\1497\1493\1500\1497integer (numeric)", -2.3978952727983707),+                                    ("month", -1.0116009116784799)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)in <named-month>", -1.8718021769015913),+                                    ("integer 3\1489 <date>", -1.8718021769015913),+                                    ("integer (numeric)\1489 <date>", -1.8718021769015913),+                                    ("month", -0.9555114450274363),+                                    ("integer 3in <named-month>", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("<day-of-month>(ordinal) <named-month> year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal 3\1489 <date>", -1.252762968495368),+                                    ("month", -0.8472978603872037),+                                    ("ordinal 3in <named-month>", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 evening",+        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 (grain)",+        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.45198512374305727,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1489 <date>", -1.9459101490553135),+                                    ("\1489 <named-day>", -2.3513752571634776),+                                    ("day", -1.252762968495368), ("named-day", -1.6582280766035324),+                                    ("hour", -1.9459101490553135),+                                    ("week-end", -2.3513752571634776)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("\1489 <date>", -2.0149030205422647),+                                    ("day", -1.0986122886681098),+                                    ("<day-of-month> (ordinal)", -1.3217558399823195)],+                               n = 4}})]
− Duckling/Ranking/Classifiers/HR.hs
@@ -1,1849 +0,0 @@--- 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.HR (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -1.7047480922384253),-                                    ("intersect", -1.7047480922384253),-                                    ("hh:mm", -1.7047480922384253), ("hour", -1.7047480922384253),-                                    ("minute", -1.2992829841302609)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.9697794168251413, unseen = -4.532599493153256,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 91},-                   koData =-                     ClassData{prior = -0.4766926173965321, unseen = -5.017279836814924,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 149}}),-       ("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}}),-       ("lunch",-        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 (20..90)",-        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}}),-       ("few",-        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}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346, unseen = -5.19295685089021,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clockmorning", -4.4942386252808095),-                                    ("until <time-of-day>afternoon", -4.4942386252808095),-                                    ("dayhour", -2.7894905330423847),-                                    ("time-of-day (latent)late night", -3.801091444720864),-                                    ("time-of-day (latent)evening|night", -4.088773517172645),-                                    ("<time-of-day> o'clockevening|night", -4.4942386252808095),-                                    ("<time-of-day> o'clocktonight", -4.4942386252808095),-                                    ("<hour-of-day> halfafternoon", -4.4942386252808095),-                                    ("time-of-day (latent)tonight", -4.088773517172645),-                                    ("yesterdayevening|night", -4.4942386252808095),-                                    ("hourhour", -1.4497161875573867),-                                    ("at <time-of-day>afternoon", -3.3956263366127),-                                    ("minutehour", -2.5483284762254965),-                                    ("<time-of-day> o'clockafternoon", -4.4942386252808095),-                                    ("intersectafternoon", -4.4942386252808095),-                                    ("time-of-day (latent)morning", -4.4942386252808095),-                                    ("named-daymorning", -4.4942386252808095),-                                    ("todayevening|night", -4.4942386252808095),-                                    ("named-dayearly morning", -3.801091444720864),-                                    ("at <time-of-day>late night", -3.801091444720864),-                                    ("hh:mmearly morning", -4.4942386252808095),-                                    ("<day-of-month>(ordinal) <named-month>morning",-                                     -4.4942386252808095),-                                    ("half <integer> (HR style hour-of-day)afternoon",-                                     -4.088773517172645),-                                    ("numeral after|past (hour-of-day)afternoon",-                                     -4.4942386252808095),-                                    ("quarter after|past (hour-of-day)afternoon",-                                     -4.4942386252808095),-                                    ("<time-of-day> o'clocklate night", -4.088773517172645),-                                    ("tomorrowlunch", -4.4942386252808095),-                                    ("todaytonight", -4.4942386252808095),-                                    ("time-of-day (latent)afternoon", -3.2414756567854415),-                                    ("intersectmorning", -3.2414756567854415),-                                    ("about <time-of-day>afternoon", -3.801091444720864),-                                    ("hh:mmafternoon", -3.2414756567854415),-                                    ("between <datetime> and <datetime> (interval)morning",-                                     -4.4942386252808095),-                                    ("between <time-of-day> and <time-of-day> (interval)morning",-                                     -4.4942386252808095),-                                    ("at <time-of-day>morning", -4.4942386252808095),-                                    ("tomorrowevening|night", -4.4942386252808095)],-                               n = 64},-                   koData =-                     ClassData{prior = -1.2992829841302609, unseen = -4.605170185988091,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clockmorning", -3.9019726695746444),-                                    ("dayhour", -3.4965075614664802),-                                    ("yearhour", -3.4965075614664802),-                                    ("named-daylate night", -3.9019726695746444),-                                    ("monthhour", -3.4965075614664802),-                                    ("by <time>afternoon", -3.9019726695746444),-                                    ("after <time-of-day>morning", -3.9019726695746444),-                                    ("hourhour", -2.1972245773362196),-                                    ("until <time-of-day>morning", -3.9019726695746444),-                                    ("since <time-of-day>morning", -3.9019726695746444),-                                    ("minutehour", -2.649209701079277),-                                    ("time-of-day (latent)morning", -3.9019726695746444),-                                    ("year (latent)afternoon", -3.4965075614664802),-                                    ("by <time>morning", -3.9019726695746444),-                                    ("numeral to|till|before <integer> (hour-of-day)morning",-                                     -3.9019726695746444),-                                    ("named-monthmorning", -3.9019726695746444),-                                    ("secondhour", -3.4965075614664802),-                                    ("time-of-day (latent)afternoon", -2.515678308454754),-                                    ("intersectmorning", -3.4965075614664802),-                                    ("<duration> after <time>afternoon", -3.9019726695746444),-                                    ("named-monthlate night", -3.9019726695746444),-                                    ("<day-of-month>(ordinal) <named-month>late night",-                                     -3.9019726695746444)],-                               n = 24}}),-       ("today",-        Classifier{okData =-                     ClassData{prior = -1.1526795099383855,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -0.3794896217049037, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.1670540846631662, unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clock", -2.2823823856765264),-                                    ("time-of-day (latent)", -1.1192315758708455),-                                    ("hh:mm", -2.505525936990736), ("hour", -0.8960880245566356),-                                    ("minute", -2.505525936990736)],-                               n = 22},-                   koData =-                     ClassData{prior = -1.8718021769015913, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.9555114450274363),-                                    ("hour", -0.9555114450274363)],-                               n = 4}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.7282385003712154),-                                    ("named-day", -0.8823891801984737),-                                    ("u <named-day>", -2.268683541318364)],-                               n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.15822400521489416,-                               unseen = -3.6109179126442243,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 35},-                   koData =-                     ClassData{prior = -1.9218125974762528,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6061358035703156,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.1972245773362196),-                                    ("hh:mmhh:mm", -1.0986122886681098),-                                    ("hourhour", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 5}}),-       ("between <datetime> and <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.1526795099383855),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.2512917986064953),-                                    ("hh:mmhh:mm", -1.1526795099383855),-                                    ("hourhour", -2.2512917986064953)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.3437347467010947),-                                    ("minuteminute", -1.749199854809259),-                                    ("minutehour", -1.3437347467010947),-                                    ("hh:mmintersect", -1.749199854809259)],-                               n = 8}}),-       ("month (grain)",-        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}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = -0.7308875085427924,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.8870696490323797),-                                    ("time-of-day (latent)", -1.2992829841302609),-                                    ("until <time-of-day>", -2.803360380906535),-                                    ("hour", -0.8574502318512216)],-                               n = 13},-                   koData =-                     ClassData{prior = -0.6567795363890705, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> quarter", -2.8622008809294686),-                                    ("time-of-day (latent)", -0.9903987040278769),-                                    ("hour", -0.916290731874155), ("minute", -2.8622008809294686),-                                    ("after <time-of-day>", -2.8622008809294686)],-                               n = 14}}),-       ("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}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8690378470236094, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -0.5436154465889815, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.2992829841302609),-                                    ("ordinals (first..19th)quarter (grain)", -1.2992829841302609),-                                    ("quarter", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("ordinals (first..19th)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037)],-                               n = 2}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.5133540701193493, unseen = -6.049733455231958,-                               likelihoods =-                                 HashMap.fromList-                                   [("u <named-day><day-of-month>(ordinal) <named-month>",-                                     -5.354224998486333),-                                    ("hourday", -4.948759890378168),-                                    ("dd.mm<time-of-day> o'clock", -5.354224998486333),-                                    ("dayhour", -2.680076349059804),-                                    ("daymonth", -3.5624655292582776),-                                    ("u <named-day><named-month> <day-of-month> (ordinal)",-                                     -5.354224998486333),-                                    ("monthyear", -3.6494769062479073),-                                    ("christmasyear", -5.354224998486333),-                                    ("u <named-day><time-of-day> o'clock", -5.354224998486333),-                                    ("<time> <part-of-day>u <named-day>", -3.9679306373664422),-                                    ("intersectat <time-of-day>", -5.354224998486333),-                                    ("day before yesterdayat <time-of-day>", -4.661077817926388),-                                    ("between <time-of-day> and <time-of-day> (interval)u <named-day>",-                                     -4.661077817926388),-                                    ("between <datetime> and <datetime> (interval)u <named-day>",-                                     -4.661077817926388),-                                    ("last <cycle>u <named-day>", -5.354224998486333),-                                    ("<time-of-day> o'clocktonight", -5.354224998486333),-                                    ("from <datetime> - <datetime> (interval)u <named-day>",-                                     -5.354224998486333),-                                    ("today<time> <part-of-day>", -4.948759890378168),-                                    ("todayat <time-of-day>", -5.354224998486333),-                                    ("from <time-of-day> - <time-of-day> (interval)u <named-day>",-                                     -5.354224998486333),-                                    ("next <cycle>u <named-day>", -5.354224998486333),-                                    ("named-dayhh:mm", -5.354224998486333),-                                    ("dayday", -3.1029331998798373),-                                    ("hourhour", -5.354224998486333),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.948759890378168),-                                    ("intersectnamed-month", -4.437934266612178),-                                    ("dayyear", -3.8501476017100584),-                                    ("named-dayu <named-month>", -4.948759890378168),-                                    ("<time-of-day> o'clocktomorrow", -5.354224998486333),-                                    ("<time-of-day> - <time-of-day> (interval)u <named-day>",-                                     -4.437934266612178),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -4.948759890378168),-                                    ("<datetime> - <datetime> (interval)u <named-day>",-                                     -4.437934266612178),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -3.9679306373664422),-                                    ("day after tomorrow<time> <part-of-day>", -5.354224998486333),-                                    ("minutemonth", -4.437934266612178),-                                    ("day after tomorrowat <time-of-day>", -4.948759890378168),-                                    ("absorption of , after named day<named-month> <day-of-month> (ordinal)",-                                     -4.437934266612178),-                                    ("named-day<time> timezone", -5.354224998486333),-                                    ("named-monthyear", -3.8501476017100584),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.948759890378168),-                                    ("this <cycle>u <named-day>", -4.948759890378168),-                                    ("last <day-of-week> <time>year", -4.948759890378168),-                                    ("dd.mmat <time-of-day>", -4.948759890378168),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -4.437934266612178),-                                    ("intersect<named-month> <day-of-month> (ordinal)",-                                     -4.948759890378168),-                                    ("named-daynext <cycle>", -5.354224998486333),-                                    ("named-dayintersect", -5.354224998486333),-                                    ("day before yesterday<time-of-day> o'clock",-                                     -5.354224998486333),-                                    ("<time> <part-of-day><named-day> <day-of-month> (ordinal)",-                                     -4.437934266612178),-                                    ("dayminute", -3.274783456806497),-                                    ("u <named-day>at <time-of-day>", -4.948759890378168),-                                    ("<time> <part-of-day>intersect", -3.4824228215847413),-                                    ("u <named-day><time> <part-of-day>", -4.948759890378168),-                                    ("intersectyear", -5.354224998486333),-                                    ("<ordinal> <cycle> of <time>year", -5.354224998486333),-                                    ("minuteday", -2.0583881324820035),-                                    ("absorption of , after named dayintersect",-                                     -5.354224998486333),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.661077817926388),-                                    ("<time> <part-of-day>intersect by \",\"", -4.437934266612178),-                                    ("named-day<time> <part-of-day>", -4.437934266612178),-                                    ("named-dayat <time-of-day>", -4.948759890378168),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -4.661077817926388),-                                    ("intersect by \",\"at <time-of-day>", -4.437934266612178),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -4.255612709818223),-                                    ("yearat <time-of-day>", -5.354224998486333),-                                    ("<time> <part-of-day>absorption of , after named day",-                                     -4.661077817926388),-                                    ("todaytonight", -5.354224998486333),-                                    ("weekday", -4.437934266612178),-                                    ("named-day<time-of-day> o'clock", -5.354224998486333),-                                    ("dayweek", -5.354224998486333),-                                    ("weekyear", -4.948759890378168),-                                    ("<named-day> <day-of-month> (ordinal)named-month",-                                     -3.8501476017100584),-                                    ("u <named-day><named-month> <day-of-month> (non ordinal)",-                                     -5.354224998486333),-                                    ("u <named-month>year", -4.948759890378168),-                                    ("last <cycle> of <time>year", -4.948759890378168),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -5.354224998486333),-                                    ("yearminute", -5.354224998486333)],-                               n = 158},-                   koData =-                     ClassData{prior = -0.9125100090342491, unseen = -5.768320995793772,-                               likelihoods =-                                 HashMap.fromList-                                   [("since <time-of-day>by <time>", -4.378896741664954),-                                    ("year<time-of-day> - <time-of-day> (interval)",-                                     -5.072043922224899),-                                    ("hourday", -4.155753190350744),-                                    ("dayhour", -3.200241745323308),-                                    ("named-monthnamed-day", -3.9734316335567894),-                                    ("daymonth", -2.9319777587286286),-                                    ("monthday", -3.6857495611050086),-                                    ("monthyear", -3.462606009790799),-                                    ("yearhour", -4.666578814116735),-                                    ("named-month<hour-of-day> <integer> (as relative minutes)",-                                     -5.072043922224899),-                                    ("hh:mmu <named-day>", -3.9734316335567894),-                                    ("last <time>today", -4.378896741664954),-                                    ("intersectat <time-of-day>", -5.072043922224899),-                                    ("named-daysince <time-of-day>", -4.155753190350744),-                                    ("until <time-of-day>u <named-day>", -5.072043922224899),-                                    ("since <time-of-day>u <named-day>", -4.666578814116735),-                                    ("<time> <part-of-day>named-day", -5.072043922224899),-                                    ("dayday", -3.9734316335567894),-                                    ("<time> <part-of-day>at <time-of-day>", -5.072043922224899),-                                    ("named-monthnamed-month", -4.378896741664954),-                                    ("monthmonth", -4.155753190350744),-                                    ("hourhour", -5.072043922224899),-                                    ("intersectnamed-month", -4.666578814116735),-                                    ("dayyear", -4.378896741664954),-                                    ("named-dayu <named-month>", -4.155753190350744),-                                    ("<time-of-day> - <time-of-day> (interval)u <named-day>",-                                     -5.072043922224899),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -4.666578814116735),-                                    ("monthminute", -4.666578814116735),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -5.072043922224899),-                                    ("minutemonth", -4.666578814116735),-                                    ("absorption of , after named day<named-month> <day-of-month> (ordinal)",-                                     -5.072043922224899),-                                    ("intersect<time-of-day> - <time-of-day> (interval)",-                                     -5.072043922224899),-                                    ("named-monthyear", -4.378896741664954),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.378896741664954),-                                    ("absorption of , after named daynamed-month",-                                     -3.9734316335567894),-                                    ("intersect by \",\"<time-of-day> - <time-of-day> (interval)",-                                     -4.155753190350744),-                                    ("named-dayafter <time-of-day>", -4.155753190350744),-                                    ("named-dayintersect", -4.378896741664954),-                                    ("dayminute", -3.0571409016826343),-                                    ("<time> <part-of-day>intersect", -4.666578814116735),-                                    ("intersectyear", -4.155753190350744),-                                    ("after <time-of-day>by <time>", -4.378896741664954),-                                    ("minuteday", -3.0571409016826343),-                                    ("absorption of , after named dayintersect",-                                     -5.072043922224899),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.666578814116735),-                                    ("named-monthnumeral to|till|before <integer> (hour-of-day)",-                                     -5.072043922224899),-                                    ("<time> <part-of-day>intersect by \",\"", -5.072043922224899),-                                    ("named-day<time> <part-of-day>", -4.666578814116735),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -4.666578814116735),-                                    ("intersect by \",\"at <time-of-day>", -4.155753190350744),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -5.072043922224899),-                                    ("yearat <time-of-day>", -5.072043922224899),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -4.666578814116735),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -4.666578814116735),-                                    ("u <named-day>named-month", -5.072043922224899),-                                    ("<named-day> <day-of-month> (ordinal)named-month",-                                     -5.072043922224899),-                                    ("after <time-of-day>u <named-day>", -4.666578814116735),-                                    ("named-monthintersect", -5.072043922224899),-                                    ("hh:mmby <time>", -4.378896741664954),-                                    ("u <named-month>year", -3.9734316335567894),-                                    ("minutesecond", -3.462606009790799),-                                    ("yearminute", -4.666578814116735)],-                               n = 106}}),-       ("early morning",-        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> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7047480922384253),-                                    ("ordinals (first..19th)week (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (first..19th)day (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (first..19th)week (grain)intersect",-                                     -1.7047480922384253),-                                    ("weekmonth", -1.2992829841302609)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("year (grain)",-        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}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.252762968495368),-                                    ("hh:mmhh:mm", -1.252762968495368)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.5040773967762742),-                                    ("minuteminute", -1.5040773967762742),-                                    ("minutehour", -1.5040773967762742),-                                    ("hh:mmintersect", -1.5040773967762742)],-                               n = 2}}),-       ("day before 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}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.7047480922384253),-                                    ("month (grain)", -1.9924301646902063),-                                    ("year (grain)", -2.3978952727983707),-                                    ("week (grain)", -1.7047480922384253),-                                    ("quarter", -2.3978952727983707), ("year", -2.3978952727983707),-                                    ("month", -1.9924301646902063),-                                    ("quarter (grain)", -2.3978952727983707)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               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 = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("hh:mmhh:mm", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),-                                    ("minutehour", -1.0986122886681098)],-                               n = 1}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],-                               n = 1}}),-       ("yyyy-mm-dd",-        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}}),-       ("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}}),-       ("prije <duration>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003), ("day", -1.8971199848858813),-                                    ("year", -2.3025850929940455),-                                    ("<integer> <unit-of-duration>", -0.916290731874155),-                                    ("month", -2.3025850929940455)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -1.3862943611198906),-                                    ("hour", -1.3862943611198906)],-                               n = 1}}),-       ("evening|night",-        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}}),-       ("dd/mm/yyyy",-        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}}),-       ("yesterday",-        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}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarteryear", -0.8472978603872037),-                                    ("ordinals (first..19th)quarter (grain)year",-                                     -1.252762968495368),-                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after lunch",-        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}}),-       ("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}}),-       ("numeral to|till|before <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = -1.791759469228055, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (0..19)noon", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.1823215567939546, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7731898882334817),-                                    ("integer (numeric)time-of-day (latent)", -0.7731898882334817)],-                               n = 5}}),-       ("quarter to|till|before <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a pair",-        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> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7884573603642702),-                                    ("ordinals (first..19th)named-dayintersect",-                                     -1.0116009116784799),-                                    ("ordinals (first..19th)named-daynamed-month",-                                     -1.7047480922384253)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.8109302162163288),-                                    ("ordinals (first..19th)named-daynamed-month",-                                     -0.8109302162163288)],-                               n = 3}}),-       ("<hour-of-day> quarter",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = -0.25593337413720063,-                               unseen = -3.912023005428146,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 48},-                   koData =-                     ClassData{prior = -1.488077055429833, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),-       ("week (grain)",-        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}}),-       ("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}}),-       ("last <day-of-week> <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.6739764335716716),-                                    ("daymonth", -0.8266785731844679),-                                    ("named-dayu <named-month>", -1.6739764335716716),-                                    ("named-dayintersect", -1.6739764335716716)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        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}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("evening|night", -1.8718021769015913),-                                    ("afternoon", -1.466337068793427),-                                    ("hour", -0.9555114450274363),-                                    ("morning", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -1.252762968495368),-                                    ("late night", -1.252762968495368)],-                               n = 1}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -4.652001563489282e-2,-                               unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.916290731874155),-                                    ("month", -0.7156200364120039),-                                    ("ordinals (first..19th)named-month", -2.1972245773362196)],-                               n = 21},-                   koData =-                     ClassData{prior = -3.0910424533583156, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.916290731874155),-                                    ("month", -0.916290731874155)],-                               n = 1}}),-       ("numbers i",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList [("integer (20..90)integer (0..19)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 11}}),-       ("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.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.3862943611198906),-                                    ("day", -1.3862943611198906),-                                    ("named-day", -1.3862943611198906),-                                    ("month", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = -2.5649493574615367,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -1.5040773967762742),-                                    ("midnight|EOD|end of day", -1.5040773967762742)],-                               n = 1},-                   koData =-                     ClassData{prior = -8.004270767353637e-2,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -2.740840023925201),-                                    ("time-of-day (latent)", -1.488077055429833),-                                    ("hh:mm", -2.0476928433652555), ("noon", -2.3353749158170367),-                                    ("hour", -1.2367626271489267), ("minute", -1.824549292051046)],-                               n = 12}}),-       ("half an hour",-        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}}),-       ("afternoon",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> from now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("year", -1.252762968495368),-                                    ("<integer> <unit-of-duration>", -0.8472978603872037),-                                    ("minute", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8718021769015913),-                                    ("month (grain)", -2.5649493574615367),-                                    ("year (grain)", -2.5649493574615367),-                                    ("week (grain)", -1.8718021769015913),-                                    ("day", -2.5649493574615367), ("quarter", -2.159484249353372),-                                    ("year", -2.5649493574615367), ("month", -2.5649493574615367),-                                    ("quarter (grain)", -2.159484249353372),-                                    ("day (grain)", -2.5649493574615367)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("<hour-of-day> half",-        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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.7047480922384253),-                                    ("time-of-day (latent)", -1.0116009116784799),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.8109302162163288),-                                    ("hour", -0.8109302162163288)],-                               n = 3}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.9444616088408514, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2231435513142097),-                                    ("integer (0..19)", -2.0794415416798357)],-                               n = 35},-                   koData =-                     ClassData{prior = -0.49247648509779407,-                               unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.4307829160924542),-                                    ("integer (20..90)", -2.995732273553991),-                                    ("few", -3.4011973816621555),-                                    ("integer (0..19)", -1.455287232606842),-                                    ("a pair", -3.4011973816621555)],-                               n = 55}}),-       ("for <duration>",-        Classifier{okData =-                     ClassData{prior = -0.11441035117774422,-                               unseen = -4.3694478524670215,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.9704144655697013),-                                    ("three-quarters of an hour", -2.7472709142554916),-                                    ("number.number hours", -3.6635616461296463),-                                    ("second", -3.6635616461296463), ("day", -2.5649493574615367),-                                    ("half an hour", -2.5649493574615367),-                                    ("year", -3.6635616461296463),-                                    ("<integer> <unit-of-duration>", -1.221214610760442),-                                    ("hour", -2.4107986776342782), ("month", -3.6635616461296463),-                                    ("minute", -1.5234954826333758),-                                    ("about <duration>", -3.6635616461296463)],-                               n = 33},-                   koData =-                     ClassData{prior = -2.2246235515243336, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -1.3862943611198906),-                                    ("hour", -1.3862943611198906)],-                               n = 4}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.2006706954621511, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 18},-                   koData =-                     ClassData{prior = -1.7047480922384253, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -4.5217885770490405,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5649493574615367),-                                    ("integer (0..19)year (grain)", -3.1245651453969594),-                                    ("integer (numeric)day (grain)", -2.431417964837014),-                                    ("integer (0..19)hour (grain)", -3.817712325956905),-                                    ("second", -3.817712325956905),-                                    ("a pairhour (grain)", -3.817712325956905),-                                    ("integer (numeric)year (grain)", -3.817712325956905),-                                    ("day", -2.3136349291806306), ("year", -2.9014215940827497),-                                    ("integer (numeric)week (grain)", -3.817712325956905),-                                    ("integer (0..19)month (grain)", -3.41224721784874),-                                    ("integer (0..19)second (grain)", -3.817712325956905),-                                    ("hour", -2.5649493574615367), ("month", -3.41224721784874),-                                    ("integer (numeric)minute (grain)", -2.7191000372887952),-                                    ("integer (0..19)minute (grain)", -3.817712325956905),-                                    ("fewhour (grain)", -3.817712325956905),-                                    ("minute", -2.5649493574615367),-                                    ("integer (numeric)hour (grain)", -3.1245651453969594),-                                    ("integer (0..19)day (grain)", -3.817712325956905),-                                    ("integer (0..19)week (grain)", -2.7191000372887952)],-                               n = 33},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -4.912654885736052,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.959364629383116),-                                    ("integer (0..19)year (grain)", -3.8066624897703196),-                                    ("integer (numeric)day (grain)", -3.518980417318539),-                                    ("fewday (grain)", -4.212127597878484),-                                    ("integer (0..19)hour (grain)", -2.959364629383116),-                                    ("second", -3.295836866004329),-                                    ("numbers ihour (grain)", -3.8066624897703196),-                                    ("integer (numeric)second (grain)", -3.8066624897703196),-                                    ("integer (numeric)year (grain)", -3.8066624897703196),-                                    ("day", -2.959364629383116), ("year", -3.295836866004329),-                                    ("integer (numeric)week (grain)", -3.295836866004329),-                                    ("integer (0..19)month (grain)", -3.8066624897703196),-                                    ("integer (0..19)second (grain)", -3.8066624897703196),-                                    ("hour", -1.5730702682632256), ("month", -3.295836866004329),-                                    ("integer (numeric)minute (grain)", -3.8066624897703196),-                                    ("integer (0..19)minute (grain)", -3.8066624897703196),-                                    ("integer (numeric)month (grain)", -3.8066624897703196),-                                    ("minute", -3.295836866004329),-                                    ("integer (numeric)hour (grain)", -1.9095425048844386),-                                    ("integer (0..19)day (grain)", -3.8066624897703196),-                                    ("integer (0..19)week (grain)", -3.8066624897703196)],-                               n = 55}}),-       ("ordinals (first..19th)",-        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}}),-       ("<duration> after <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>christmas", -1.7047480922384253),-                                    ("yearday", -1.7047480922384253),-                                    ("minutesecond", -1.7047480922384253),-                                    ("<integer> <unit-of-duration>now", -1.7047480922384253)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter of an hourtime-of-day (latent)", -1.7047480922384253),-                                    ("minutehour", -1.2992829841302609),-                                    ("quarter of an hour<time> <part-of-day>",-                                     -1.7047480922384253)],-                               n = 2}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -4.820281565605037,-                               likelihoods =-                                 HashMap.fromList-                                   [("u <named-day><day-of-month>(ordinal) <named-month>",-                                     -4.119037174812472),-                                    ("<named-month> <day-of-month> (ordinal)intersect",-                                     -4.119037174812472),-                                    ("u <named-day><named-month> <day-of-month> (ordinal)",-                                     -4.119037174812472),-                                    ("intersecthh:mm", -4.119037174812472),-                                    ("intersect by \",\"year", -3.713572066704308),-                                    ("dayday", -2.0395956331326364),-                                    ("intersect by \",\"hh:mm", -3.202746442938317),-                                    ("intersect by \",\"intersect by \",\"", -4.119037174812472),-                                    ("named-dayintersect by \",\"", -3.0204248861443626),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.119037174812472),-                                    ("named-day<named-month> <day-of-month> (ordinal)",-                                     -3.4258899942525267),-                                    ("dayyear", -2.7327428136925813),-                                    ("<named-month> <day-of-month> (ordinal)intersect by \",\"",-                                     -4.119037174812472),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -4.119037174812472),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -4.119037174812472),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -3.713572066704308),-                                    ("intersect<named-month> <day-of-month> (ordinal)",-                                     -4.119037174812472),-                                    ("intersect by \",\"intersect", -4.119037174812472),-                                    ("named-dayintersect", -4.119037174812472),-                                    ("intersectintersect by \",\"", -4.119037174812472),-                                    ("dayminute", -2.0395956331326364),-                                    ("intersectyear", -3.713572066704308),-                                    ("minuteday", -3.202746442938317),-                                    ("yearhh:mm", -4.119037174812472),-                                    ("intersectintersect", -4.119037174812472),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -2.866274206317104),-                                    ("u <named-day><named-month> <day-of-month> (non ordinal)",-                                     -4.119037174812472),-                                    ("<named-month> <day-of-month> (ordinal)year",-                                     -3.713572066704308),-                                    ("yearminute", -4.119037174812472)],-                               n = 42},-                   koData =-                     ClassData{prior = -1.2039728043259361, unseen = -4.330733340286331,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.70805020110221),-                                    ("hourday", -3.624340932976365),-                                    ("<named-month> <day-of-month> (ordinal)intersect",-                                     -3.624340932976365),-                                    ("dayhour", -2.5257286443082556),-                                    ("daymonth", -2.5257286443082556),-                                    ("monthyear", -3.624340932976365),-                                    ("dayday", -2.5257286443082556),-                                    ("named-dayintersect by \",\"", -3.624340932976365),-                                    ("named-day<named-month> <day-of-month> (ordinal)",-                                     -3.624340932976365),-                                    ("intersectnamed-month", -3.624340932976365),-                                    ("minutemonth", -3.624340932976365),-                                    ("at <time-of-day><day-of-month>(ordinal) <named-month>",-                                     -3.624340932976365),-                                    ("named-monthyear", -3.624340932976365),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -2.9311937524164198),-                                    ("intersect by \",\"intersect", -3.624340932976365),-                                    ("named-dayintersect", -3.624340932976365),-                                    ("intersectintersect", -3.624340932976365),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -3.624340932976365),-                                    ("u <named-day>named-month", -3.624340932976365)],-                               n = 18}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -2.7398974188114388e-2,-                               unseen = -3.6375861597263857,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},-                   koData =-                     ClassData{prior = -3.6109179126442243,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = -1.4815085785140587e-2,-                               unseen = -4.23410650459726,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 67},-                   koData =-                     ClassData{prior = -4.219507705176107, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter of an hour",-        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}}),-       ("second (grain)",-        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}}),-       ("u <named-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("absorption of , after named day", -2.3978952727983707),-                                    ("day", -0.723918839226699),-                                    ("named-day", -0.8574502318512216)],-                               n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("absorption of , after named dayordinal (digits)",-                                     -1.0116009116784799),-                                    ("named-dayordinal (digits)", -2.3978952727983707),-                                    ("day", -0.7884573603642702),-                                    ("u <named-day>ordinal (digits)", -2.3978952727983707)],-                               n = 9},-                   koData =-                     ClassData{prior = -2.3025850929940455,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("absorption of , after named dayordinal (digits)",-                                     -1.0986122886681098),-                                    ("day", -1.0986122886681098)],-                               n = 1}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.7047480922384253, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("evening|night", -2.0149030205422647),-                                    ("day", -1.6094379124341003),-                                    ("named-day", -1.6094379124341003),-                                    ("hour", -1.6094379124341003),-                                    ("week-end", -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.2006706954621511, unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clock", -3.068052935133617),-                                    ("time-of-day (latent)", -0.8708283577973976),-                                    ("hour", -0.8167611365271219)],-                               n = 18}}),-       ("since <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -2.772588722239781, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mm", -1.7047480922384253),-                                    ("minute", -1.7047480922384253)],-                               n = 1},-                   koData =-                     ClassData{prior = -6.453852113757118e-2,-                               unseen = -3.6888794541139363,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -2.9704144655697013),-                                    ("intersect", -1.8718021769015913),-                                    ("second", -2.0541237336955462),-                                    ("numeral to|till|before <integer> (hour-of-day)",-                                     -2.9704144655697013),-                                    ("now", -2.9704144655697013), ("hh:mm", -2.277267285009756),-                                    ("<datetime> - <datetime> (interval)", -2.5649493574615367),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.5649493574615367),-                                    ("minute", -1.1786549963416462)],-                               n = 15}}),-       ("noon",-        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}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clock", -1.8718021769015913),-                                    ("time-of-day (latent)", -1.466337068793427),-                                    ("hour", -1.1786549963416462)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.3513752571634776),-                                    ("hh:mm", -1.6582280766035324), ("noon", -1.9459101490553135),-                                    ("hour", -1.4350845252893227),-                                    ("midnight|EOD|end of day", -2.3513752571634776),-                                    ("minute", -1.6582280766035324)],-                               n = 7}}),-       ("<integer> and an half hours",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (0..19)", 0.0)],-                               n = 1}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("late night",-        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}}),-       ("midnight|EOD|end of 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 <time>",-        Classifier{okData =-                     ClassData{prior = -0.25131442828090605,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -2.3025850929940455),-                                    ("day", -1.0498221244986778),-                                    ("named-day", -1.0498221244986778),-                                    ("month", -2.3025850929940455)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.5040773967762742,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clock", -1.2039728043259361),-                                    ("hour", -1.2039728043259361)],-                               n = 2}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("month (grain)", -2.3025850929940455),-                                    ("year (grain)", -1.8971199848858813),-                                    ("week (grain)", -1.3862943611198906),-                                    ("year", -1.8971199848858813), ("month", -2.3025850929940455)],-                               n = 7},-                   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.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6026896854443837),-                                    ("integer (0..19)year (grain)", -3.295836866004329),-                                    ("integer (numeric)day (grain)", -3.295836866004329),-                                    ("fewday (grain)", -3.295836866004329),-                                    ("integer (0..19)hour (grain)", -3.295836866004329),-                                    ("second", -2.890371757896165),-                                    ("integer (numeric)second (grain)", -3.295836866004329),-                                    ("integer (numeric)year (grain)", -3.295836866004329),-                                    ("day", -2.6026896854443837), ("year", -2.890371757896165),-                                    ("integer (numeric)week (grain)", -2.890371757896165),-                                    ("integer (0..19)month (grain)", -3.295836866004329),-                                    ("integer (0..19)second (grain)", -3.295836866004329),-                                    ("hour", -2.890371757896165), ("month", -2.890371757896165),-                                    ("integer (numeric)minute (grain)", -3.295836866004329),-                                    ("integer (0..19)minute (grain)", -3.295836866004329),-                                    ("integer (numeric)month (grain)", -3.295836866004329),-                                    ("minute", -2.890371757896165),-                                    ("integer (numeric)hour (grain)", -3.295836866004329),-                                    ("integer (0..19)day (grain)", -3.295836866004329),-                                    ("integer (0..19)week (grain)", -3.295836866004329)],-                               n = 16},-                   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 = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("today", -2.0794415416798357),-                                    ("next <cycle>", -2.0794415416798357),-                                    ("day", -1.3862943611198906),-                                    ("this <cycle>", -1.6739764335716716),-                                    ("month", -1.6739764335716716),-                                    ("this <time>", -2.0794415416798357)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.343805421853684,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.9444389791664407),-                                    ("three-quarters of an hour", -2.7212954278522306),-                                    ("number.number hours", -3.6375861597263857),-                                    ("second", -3.6375861597263857), ("day", -2.538973871058276),-                                    ("half an hour", -2.538973871058276),-                                    ("year", -3.6375861597263857),-                                    ("<integer> <unit-of-duration>", -1.2396908869280152),-                                    ("hour", -2.384823191231018), ("month", -3.6375861597263857),-                                    ("minute", -1.55814461804655),-                                    ("about <duration>", -3.6375861597263857)],-                               n = 32},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("since <time-of-day>hh:mm", -2.6741486494265287),-                                    ("minuteminute", -1.4213856809311607),-                                    ("hh:mmhh:mm", -1.7578579175523736),-                                    ("dayday", -2.268683541318364),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -2.268683541318364),-                                    ("after <time-of-day>hh:mm", -2.6741486494265287)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -2.268683541318364),-                                    ("minuteminute", -1.7578579175523736),-                                    ("after <time-of-day>intersect", -2.6741486494265287),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -2.268683541318364),-                                    ("hh:mmintersect", -2.268683541318364),-                                    ("since <time-of-day>intersect", -2.6741486494265287),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -2.268683541318364),-                                    ("yearminute", -2.268683541318364)],-                               n = 8}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("since <time-of-day>hh:mm", -2.4423470353692043),-                                    ("minuteminute", -1.1895840668738362),-                                    ("hh:mmhh:mm", -1.5260563034950494),-                                    ("after <time-of-day>hh:mm", -2.4423470353692043)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.4700036292457356,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("since <time-of-day>time-of-day (latent)", -2.740840023925201),-                                    ("hh:mmtime-of-day (latent)", -1.824549292051046),-                                    ("hourhour", -2.740840023925201),-                                    ("minutehour", -1.1314021114911006),-                                    ("numeral to|till|before <integer> (hour-of-day)time-of-day (latent)",-                                     -2.0476928433652555),-                                    ("at <time-of-day>time-of-day (latent)", -2.740840023925201),-                                    ("after <time-of-day>time-of-day (latent)",-                                     -2.740840023925201)],-                               n = 10}}),-       ("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}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.70805020110221),-                                    ("integer (0..19)year (grain)", -3.4011973816621555),-                                    ("integer (numeric)day (grain)", -2.995732273553991),-                                    ("integer (0..19)hour (grain)", -3.4011973816621555),-                                    ("second", -2.995732273553991),-                                    ("numbers ihour (grain)", -2.995732273553991),-                                    ("integer (numeric)second (grain)", -3.4011973816621555),-                                    ("integer (numeric)year (grain)", -3.4011973816621555),-                                    ("day", -2.70805020110221), ("year", -2.995732273553991),-                                    ("integer (numeric)week (grain)", -2.995732273553991),-                                    ("integer (0..19)month (grain)", -3.4011973816621555),-                                    ("integer (0..19)second (grain)", -3.4011973816621555),-                                    ("hour", -2.3025850929940455), ("month", -2.995732273553991),-                                    ("integer (numeric)minute (grain)", -3.4011973816621555),-                                    ("integer (0..19)minute (grain)", -3.4011973816621555),-                                    ("integer (numeric)month (grain)", -3.4011973816621555),-                                    ("minute", -2.995732273553991),-                                    ("integer (numeric)hour (grain)", -2.995732273553991),-                                    ("integer (0..19)day (grain)", -3.4011973816621555),-                                    ("integer (0..19)week (grain)", -3.4011973816621555)],-                               n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.1354942159291497,-                               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..19th)named-dayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..19th)named-daychristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.6061358035703156, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 5}}),-       ("numeral after|past (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("integer (20..90)time-of-day (latent)", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -3.7740327982847086e-2,-                               unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter (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}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.540445040947149),-                                    ("week (grain)named-month", -1.9459101490553135),-                                    ("day (grain)intersect", -1.9459101490553135),-                                    ("weekmonth", -1.540445040947149),-                                    ("day (grain)named-month", -1.9459101490553135),-                                    ("week (grain)intersect", -1.9459101490553135)],-                               n = 4},-                   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 = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -1.0986122886681098),-                                    ("month", -0.8109302162163288),-                                    ("ordinals (first..19th)named-month", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        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}}),-       ("half <integer> (HR style 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}}),-       ("week-end",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -2.890371757896165, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mm", -1.9459101490553135),-                                    ("minute", -1.9459101490553135)],-                               n = 1},-                   koData =-                     ClassData{prior = -5.715841383994864e-2,-                               unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -3.1354942159291497),-                                    ("<time-of-day> o'clock", -3.1354942159291497),-                                    ("intersect", -2.03688192726104),-                                    ("second", -2.2192034840549946),-                                    ("numeral to|till|before <integer> (hour-of-day)",-                                     -3.1354942159291497),-                                    ("now", -3.1354942159291497),-                                    ("time-of-day (latent)", -3.1354942159291497),-                                    ("hh:mm", -2.4423470353692043), ("hour", -2.7300291078209855),-                                    ("<datetime> - <datetime> (interval)", -2.7300291078209855),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.7300291078209855),-                                    ("minute", -1.3437347467010947)],-                               n = 17}}),-       ("day (grain)",-        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}}),-       ("dd.mm",-        Classifier{okData =-                     ClassData{prior = -1.8718021769015913,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.1670540846631662,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11}}),-       ("day after tomorrow",-        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}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -1.6094379124341003),-                                    ("quarter of an hour", -1.0986122886681098),-                                    ("minute", -0.7621400520468967)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter of an hour", -0.7884573603642702),-                                    ("minute", -0.7884573603642702)],-                               n = 4}}),-       ("u <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.7884573603642702,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.6061358035703156, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 6}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 4}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -0.1670540846631662,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("today", -2.772588722239781), ("season", -2.0794415416798357),-                                    ("evening|night", -2.772588722239781),-                                    ("day", -1.5198257537444133), ("afternoon", -2.772588722239781),-                                    ("named-day", -2.367123614131617),-                                    ("hour", -1.6739764335716716), ("morning", -2.772588722239781),-                                    ("week-end", -2.367123614131617)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.8718021769015913, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.9459101490553135),-                                    ("named-day", -1.9459101490553135),-                                    ("hour", -1.9459101490553135),-                                    ("late night", -1.9459101490553135)],-                               n = 2}}),-       ("<named-month> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("month", -0.6931471805599453),-                                    ("named-monthordinal (digits)", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/HR_XX.hs view
@@ -0,0 +1,1971 @@+-- 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.HR_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -1.7047480922384253),+                                    ("intersect", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253), ("hour", -1.7047480922384253),+                                    ("minute", -1.2992829841302609)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        Classifier{okData =+                     ClassData{prior = -7.410797215372185e-2,+                               unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -2.639057329615259, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.9697794168251413, unseen = -4.532599493153256,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 91},+                   koData =+                     ClassData{prior = -0.4766926173965321, unseen = -5.017279836814924,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 149}}),+       ("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}}),+       ("lunch",+        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 (20..90)",+        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}}),+       ("few",+        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}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809, unseen = -5.214935757608986,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clockmorning", -4.516338972281476),+                                    ("until <time-of-day>afternoon", -4.516338972281476),+                                    ("dayhour", -2.8115908800430502),+                                    ("time-of-day (latent)late night", -3.82319179172153),+                                    ("time-of-day (latent)evening|night", -4.110873864173311),+                                    ("<time-of-day> o'clockevening|night", -4.516338972281476),+                                    ("Mondayearly morning", -3.82319179172153),+                                    ("<time-of-day> o'clocktonight", -4.516338972281476),+                                    ("<hour-of-day> halfafternoon", -4.516338972281476),+                                    ("time-of-day (latent)tonight", -4.110873864173311),+                                    ("yesterdayevening|night", -4.516338972281476),+                                    ("hourhour", -1.4482860371478585),+                                    ("at <time-of-day>afternoon", -3.417726683613366),+                                    ("minutehour", -2.501435951739211),+                                    ("<time-of-day> o'clockafternoon", -4.516338972281476),+                                    ("intersectafternoon", -4.516338972281476),+                                    ("time-of-day (latent)morning", -4.516338972281476),+                                    ("todayevening|night", -4.516338972281476),+                                    ("at <time-of-day>late night", -3.82319179172153),+                                    ("hh:mmearly morning", -4.516338972281476),+                                    ("<day-of-month>(ordinal) <named-month>morning",+                                     -4.516338972281476),+                                    ("half <integer> (HR style hour-of-day)afternoon",+                                     -4.110873864173311),+                                    ("numeral after|past (hour-of-day)afternoon",+                                     -4.516338972281476),+                                    ("quarter after|past (hour-of-day)afternoon",+                                     -4.516338972281476),+                                    ("<time-of-day> o'clocklate night", -4.110873864173311),+                                    ("tomorrowlunch", -4.516338972281476),+                                    ("todaytonight", -4.516338972281476),+                                    ("time-of-day (latent)afternoon", -3.130044611161585),+                                    ("intersectmorning", -3.2635760037861075),+                                    ("about <time-of-day>afternoon", -3.82319179172153),+                                    ("<duration> after <time>afternoon", -4.516338972281476),+                                    ("Mondaymorning", -4.516338972281476),+                                    ("hh:mmafternoon", -3.2635760037861075),+                                    ("between <datetime> and <datetime> (interval)morning",+                                     -4.516338972281476),+                                    ("between <time-of-day> and <time-of-day> (interval)morning",+                                     -4.516338972281476),+                                    ("at <time-of-day>morning", -4.516338972281476),+                                    ("tomorrowevening|night", -4.516338972281476)],+                               n = 66},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -4.564348191467836,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clockmorning", -3.8607297110405954),+                                    ("Februarylate night", -3.8607297110405954),+                                    ("dayhour", -3.455264602932431),+                                    ("yearhour", -3.455264602932431),+                                    ("monthhour", -3.455264602932431),+                                    ("by <time>afternoon", -3.8607297110405954),+                                    ("after <time-of-day>morning", -3.8607297110405954),+                                    ("hourhour", -2.2512917986064953),+                                    ("until <time-of-day>morning", -3.8607297110405954),+                                    ("since <time-of-day>morning", -3.8607297110405954),+                                    ("minutehour", -2.762117422372486),+                                    ("time-of-day (latent)morning", -3.8607297110405954),+                                    ("year (latent)afternoon", -3.455264602932431),+                                    ("Februarymorning", -3.8607297110405954),+                                    ("by <time>morning", -3.8607297110405954),+                                    ("numeral to|till|before <integer> (hour-of-day)morning",+                                     -3.8607297110405954),+                                    ("secondhour", -3.455264602932431),+                                    ("Mondaylate night", -3.8607297110405954),+                                    ("time-of-day (latent)afternoon", -2.6079667425452278),+                                    ("intersectmorning", -3.455264602932431),+                                    ("<day-of-month>(ordinal) <named-month>late night",+                                     -3.8607297110405954)],+                               n = 22}}),+       ("today",+        Classifier{okData =+                     ClassData{prior = -1.1526795099383855,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -0.3794896217049037, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.1670540846631662, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clock", -2.2823823856765264),+                                    ("time-of-day (latent)", -1.1192315758708455),+                                    ("hh:mm", -2.505525936990736), ("hour", -0.8960880245566356),+                                    ("minute", -2.505525936990736)],+                               n = 22},+                   koData =+                     ClassData{prior = -1.8718021769015913, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.9555114450274363),+                                    ("hour", -0.9555114450274363)],+                               n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.803360380906535),+                                    ("Saturday", -2.803360380906535),+                                    ("Monday", -1.8870696490323797),+                                    ("Friday", -2.1102132003465894), ("day", -0.8574502318512216),+                                    ("Sunday", -2.3978952727983707),+                                    ("u <named-day>", -2.3978952727983707)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        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}}),+       ("tonight",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.15822400521489416,+                               unseen = -3.6109179126442243,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 35},+                   koData =+                     ClassData{prior = -1.9218125974762528,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6061358035703156,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.1972245773362196),+                                    ("hh:mmhh:mm", -1.0986122886681098),+                                    ("hourhour", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 5}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.1526795099383855),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.2512917986064953),+                                    ("hh:mmhh:mm", -1.1526795099383855),+                                    ("hourhour", -2.2512917986064953)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.3437347467010947),+                                    ("minuteminute", -1.749199854809259),+                                    ("minutehour", -1.3437347467010947),+                                    ("hh:mmintersect", -1.749199854809259)],+                               n = 8}}),+       ("October",+        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}}),+       ("month (grain)",+        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}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.7308875085427924,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.8870696490323797),+                                    ("time-of-day (latent)", -1.2992829841302609),+                                    ("until <time-of-day>", -2.803360380906535),+                                    ("hour", -0.8574502318512216)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.6567795363890705, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> quarter", -2.8622008809294686),+                                    ("time-of-day (latent)", -0.9903987040278769),+                                    ("hour", -0.916290731874155), ("minute", -2.8622008809294686),+                                    ("after <time-of-day>", -2.8622008809294686)],+                               n = 14}}),+       ("January",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("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}}),+       ("July",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8690378470236094, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -0.5436154465889815, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.2992829841302609),+                                    ("ordinals (first..19th)quarter (grain)", -1.2992829841302609),+                                    ("quarter", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("ordinals (first..19th)quarter (grain)", -1.252762968495368),+                                    ("quarter", -0.8472978603872037)],+                               n = 2}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.5019253742957266,+                               unseen = -6.0844994130751715,+                               likelihoods =+                                 HashMap.fromList+                                   [("u <named-day><day-of-month>(ordinal) <named-month>",+                                     -5.389071729816501),+                                    ("hourday", -4.983606621708336),+                                    ("dd.mm<time-of-day> o'clock", -5.389071729816501),+                                    ("dayhour", -2.714923080389972),+                                    ("daymonth", -3.597312260588446),+                                    ("u <named-day><named-month> <day-of-month> (ordinal)",+                                     -5.389071729816501),+                                    ("monthyear", -3.6843236375780757),+                                    ("Wednesdayintersect", -5.389071729816501),+                                    ("christmasyear", -5.389071729816501),+                                    ("Wednesdaynext <cycle>", -5.389071729816501),+                                    ("u <named-day><time-of-day> o'clock", -5.389071729816501),+                                    ("<time> <part-of-day>u <named-day>", -4.00277736869661),+                                    ("intersectat <time-of-day>", -5.389071729816501),+                                    ("Saturday<time> <part-of-day>", -4.983606621708336),+                                    ("day before yesterdayat <time-of-day>", -4.695924549256556),+                                    ("Marchyear", -5.389071729816501),+                                    ("<named-day> <day-of-month> (ordinal)September",+                                     -4.983606621708336),+                                    ("Saturdayat <time-of-day>", -4.983606621708336),+                                    ("between <time-of-day> and <time-of-day> (interval)u <named-day>",+                                     -4.695924549256556),+                                    ("between <datetime> and <datetime> (interval)u <named-day>",+                                     -4.695924549256556),+                                    ("last <cycle>u <named-day>", -5.389071729816501),+                                    ("<time-of-day> o'clocktonight", -5.389071729816501),+                                    ("from <datetime> - <datetime> (interval)u <named-day>",+                                     -5.389071729816501),+                                    ("today<time> <part-of-day>", -4.983606621708336),+                                    ("todayat <time-of-day>", -5.389071729816501),+                                    ("Thursday<time> timezone", -5.389071729816501),+                                    ("from <time-of-day> - <time-of-day> (interval)u <named-day>",+                                     -5.389071729816501),+                                    ("next <cycle>u <named-day>", -5.389071729816501),+                                    ("dayday", -3.1377799312100056),+                                    ("hourhour", -5.389071729816501),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.983606621708336),+                                    ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -4.695924549256556),+                                    ("dayyear", -3.884994333040227),+                                    ("Thursdaybetween <datetime> and <datetime> (interval)",+                                     -4.695924549256556),+                                    ("<time-of-day> o'clocktomorrow", -5.389071729816501),+                                    ("Thursday<time> <part-of-day>", -4.983606621708336),+                                    ("<time-of-day> - <time-of-day> (interval)u <named-day>",+                                     -4.472780997942346),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -4.983606621708336),+                                    ("<datetime> - <datetime> (interval)u <named-day>",+                                     -4.472780997942346),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",+                                     -4.00277736869661),+                                    ("day after tomorrow<time> <part-of-day>", -5.389071729816501),+                                    ("Thursdayhh:mm", -5.389071729816501),+                                    ("minutemonth", -4.472780997942346),+                                    ("day after tomorrowat <time-of-day>", -4.983606621708336),+                                    ("absorption of , after named day<named-month> <day-of-month> (ordinal)",+                                     -4.472780997942346),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.983606621708336),+                                    ("<named-day> <day-of-month> (ordinal)February",+                                     -4.136308761321133),+                                    ("this <cycle>u <named-day>", -4.983606621708336),+                                    ("last <day-of-week> <time>year", -4.983606621708336),+                                    ("dd.mmat <time-of-day>", -4.983606621708336),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -4.472780997942346),+                                    ("intersect<named-month> <day-of-month> (ordinal)",+                                     -4.983606621708336),+                                    ("Saturday<time-of-day> o'clock", -5.389071729816501),+                                    ("day before yesterday<time-of-day> o'clock",+                                     -5.389071729816501),+                                    ("<time> <part-of-day><named-day> <day-of-month> (ordinal)",+                                     -4.472780997942346),+                                    ("dayminute", -3.3096301881366648),+                                    ("u <named-day>at <time-of-day>", -4.983606621708336),+                                    ("<time> <part-of-day>intersect", -3.5172695529149096),+                                    ("u <named-day><time> <part-of-day>", -4.983606621708336),+                                    ("Tuesdayu <named-month>", -5.389071729816501),+                                    ("intersectyear", -5.389071729816501),+                                    ("intersectSeptember", -4.472780997942346),+                                    ("<ordinal> <cycle> of <time>year", -5.389071729816501),+                                    ("minuteday", -2.093234863812172),+                                    ("absorption of , after named dayintersect",+                                     -5.389071729816501),+                                    ("<time> <part-of-day>intersect by \",\"", -4.472780997942346),+                                    ("Octoberyear", -4.290459441148391),+                                    ("intersect by \",\"at <time-of-day>", -4.472780997942346),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -4.290459441148391),+                                    ("yearat <time-of-day>", -5.389071729816501),+                                    ("Septemberyear", -4.983606621708336),+                                    ("<time> <part-of-day>absorption of , after named day",+                                     -4.695924549256556),+                                    ("todaytonight", -5.389071729816501),+                                    ("weekday", -4.472780997942346),+                                    ("dayweek", -5.389071729816501),+                                    ("weekyear", -4.983606621708336),+                                    ("Wednesdayu <named-month>", -5.389071729816501),+                                    ("u <named-day><named-month> <day-of-month> (non ordinal)",+                                     -5.389071729816501),+                                    ("u <named-month>year", -4.983606621708336),+                                    ("last <cycle> of <time>year", -4.983606621708336),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -5.389071729816501),+                                    ("yearminute", -5.389071729816501)],+                               n = 158},+                   koData =+                     ClassData{prior = -0.9297914190930576, unseen = -5.796057750765372,+                               likelihoods =+                                 HashMap.fromList+                                   [("since <time-of-day>by <time>", -4.406719247264253),+                                    ("year<time-of-day> - <time-of-day> (interval)",+                                     -5.099866427824199),+                                    ("hourday", -4.183575695950044),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.099866427824199),+                                    ("dayhour", -3.228064250922607),+                                    ("July<day-of-month> (non ordinal) <named-month>",+                                     -5.099866427824199),+                                    ("daymonth", -2.9598002643279275),+                                    ("monthday", -3.713572066704308),+                                    ("monthyear", -3.4904285153900982),+                                    ("yearhour", -4.694401319716034),+                                    ("Wednesdayintersect", -5.099866427824199),+                                    ("hh:mmu <named-day>", -4.001254139156089),+                                    ("last <time>today", -4.406719247264253),+                                    ("intersectat <time-of-day>", -5.099866427824199),+                                    ("Marchyear", -4.694401319716034),+                                    ("u <named-day>September", -5.099866427824199),+                                    ("<named-day> <day-of-month> (ordinal)September",+                                     -5.099866427824199),+                                    ("Thursdayafter <time-of-day>", -4.183575695950044),+                                    ("until <time-of-day>u <named-day>", -5.099866427824199),+                                    ("since <time-of-day>u <named-day>", -4.694401319716034),+                                    ("Sundayu <named-month>", -5.099866427824199),+                                    ("absorption of , after named dayJuly", -4.694401319716034),+                                    ("JanuaryWednesday", -5.099866427824199),+                                    ("Marchintersect", -5.099866427824199),+                                    ("dayday", -4.001254139156089),+                                    ("<time> <part-of-day>at <time-of-day>", -5.099866427824199),+                                    ("monthmonth", -4.183575695950044),+                                    ("hourhour", -5.099866427824199),+                                    ("<time> <part-of-day>Thursday", -5.099866427824199),+                                    ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -4.694401319716034),+                                    ("dayyear", -4.406719247264253),+                                    ("Thursdaybetween <datetime> and <datetime> (interval)",+                                     -4.694401319716034),+                                    ("Thursday<time> <part-of-day>", -4.694401319716034),+                                    ("<time-of-day> - <time-of-day> (interval)u <named-day>",+                                     -5.099866427824199),+                                    ("FebruaryWednesday", -5.099866427824199),+                                    ("monthminute", -5.099866427824199),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",+                                     -5.099866427824199),+                                    ("minutemonth", -4.694401319716034),+                                    ("MarchTuesday", -4.694401319716034),+                                    ("absorption of , after named day<named-month> <day-of-month> (ordinal)",+                                     -5.099866427824199),+                                    ("intersect<time-of-day> - <time-of-day> (interval)",+                                     -5.099866427824199),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.406719247264253),+                                    ("intersect by \",\"<time-of-day> - <time-of-day> (interval)",+                                     -4.183575695950044),+                                    ("Aprilyear", -5.099866427824199),+                                    ("Julynumeral to|till|before <integer> (hour-of-day)",+                                     -5.099866427824199),+                                    ("Thursdaysince <time-of-day>", -4.183575695950044),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.099866427824199),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -5.099866427824199),+                                    ("dayminute", -3.0849634072819336),+                                    ("<time> <part-of-day>intersect", -4.694401319716034),+                                    ("Tuesdayu <named-month>", -5.099866427824199),+                                    ("intersectyear", -4.183575695950044),+                                    ("after <time-of-day>by <time>", -4.406719247264253),+                                    ("intersectSeptember", -4.694401319716034),+                                    ("minuteday", -3.0849634072819336),+                                    ("absorption of , after named dayintersect",+                                     -5.099866427824199),+                                    ("<time> <part-of-day>intersect by \",\"", -5.099866427824199),+                                    ("intersect by \",\"at <time-of-day>", -4.183575695950044),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -5.099866427824199),+                                    ("yearat <time-of-day>", -5.099866427824199),+                                    ("absorption of , after named daySeptember",+                                     -4.694401319716034),+                                    ("MarchMarch", -4.406719247264253),+                                    ("after <time-of-day>u <named-day>", -4.694401319716034),+                                    ("Wednesdayu <named-month>", -5.099866427824199),+                                    ("absorption of , after named dayFebruary", -5.099866427824199),+                                    ("hh:mmby <time>", -4.406719247264253),+                                    ("u <named-month>year", -4.001254139156089),+                                    ("minutesecond", -3.4904285153900982),+                                    ("Tuesdayintersect", -5.099866427824199),+                                    ("JanuaryTuesday", -5.099866427824199),+                                    ("Sundayintersect", -5.099866427824199),+                                    ("Mondayu <named-month>", -5.099866427824199)],+                               n = 103}}),+       ("early morning",+        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> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.7047480922384253),+                                    ("ordinals (first..19th)week (grain)intersect",+                                     -1.7047480922384253),+                                    ("weekmonth", -1.2992829841302609),+                                    ("ordinals (first..19th)day (grain)October",+                                     -1.7047480922384253),+                                    ("ordinals (first..19th)week (grain)October",+                                     -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("year (grain)",+        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}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.252762968495368),+                                    ("hh:mmhh:mm", -1.252762968495368)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.5040773967762742),+                                    ("minuteminute", -1.5040773967762742),+                                    ("minutehour", -1.5040773967762742),+                                    ("hh:mmintersect", -1.5040773967762742)],+                               n = 2}}),+       ("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}}),+       ("day before 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}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.7047480922384253),+                                    ("month (grain)", -1.9924301646902063),+                                    ("year (grain)", -2.3978952727983707),+                                    ("week (grain)", -1.7047480922384253),+                                    ("quarter", -2.3978952727983707), ("year", -2.3978952727983707),+                                    ("month", -1.9924301646902063),+                                    ("quarter (grain)", -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               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 = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.0986122886681098),+                                    ("minutehour", -1.0986122886681098)],+                               n = 1}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 1}}),+       ("yyyy-mm-dd",+        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}}),+       ("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}}),+       ("prije <duration>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003), ("day", -1.8971199848858813),+                                    ("year", -2.3025850929940455),+                                    ("<integer> <unit-of-duration>", -0.916290731874155),+                                    ("month", -2.3025850929940455)],+                               n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.3862943611198906),+                                    ("hour", -1.3862943611198906)],+                               n = 1}}),+       ("evening|night",+        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}}),+       ("Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dd/mm/yyyy",+        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}}),+       ("yesterday",+        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}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarteryear", -0.8472978603872037),+                                    ("ordinals (first..19th)quarter (grain)year",+                                     -1.252762968495368),+                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after lunch",+        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}}),+       ("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}}),+       ("numeral to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.791759469228055, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (0..19)noon", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.1823215567939546, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7731898882334817),+                                    ("integer (numeric)time-of-day (latent)", -0.7731898882334817)],+                               n = 5}}),+       ("quarter to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a pair",+        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> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0296194171811581),+                                    ("ordinals (first..19th)TuesdayOctober", -1.9459101490553135),+                                    ("ordinals (first..19th)Wednesdayintersect",+                                     -1.540445040947149),+                                    ("ordinals (first..19th)Tuesdayintersect",+                                     -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0986122886681098),+                                    ("ordinals (first..19th)WednesdayOctober", -1.3862943611198906),+                                    ("ordinals (first..19th)TuesdaySeptember", -1.791759469228055)],+                               n = 3}}),+       ("<hour-of-day> quarter",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("April",+        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 (grain)",+        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}}),+       ("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}}),+       ("last <day-of-week> <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9444616088408514),+                                    ("Sundayu <named-month>", -2.1972245773362196),+                                    ("SundayMarch", -2.1972245773362196),+                                    ("MondayMarch", -2.1972245773362196),+                                    ("Sundayintersect", -1.791759469228055),+                                    ("Mondayu <named-month>", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("evening|night", -1.8718021769015913),+                                    ("afternoon", -1.466337068793427),+                                    ("hour", -0.9555114450274363),+                                    ("morning", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.252762968495368),+                                    ("late night", -1.252762968495368)],+                               n = 1}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -4.652001563489282e-2,+                               unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)September", -3.1986731175506815),+                                    ("ordinal (digits)August", -2.793208009442517),+                                    ("ordinals (first..19th)March", -2.2823823856765264),+                                    ("ordinal (digits)February", -1.493925025312256),+                                    ("ordinal (digits)April", -3.1986731175506815),+                                    ("month", -0.8007778447523107),+                                    ("ordinal (digits)March", -2.505525936990736)],+                               n = 21},+                   koData =+                     ClassData{prior = -3.0910424533583156,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)April", -1.5040773967762742),+                                    ("month", -1.5040773967762742)],+                               n = 1}}),+       ("numbers i",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (20..90)integer (0..19)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 11}}),+       ("Friday",+        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}}),+       ("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.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Friday", -1.3862943611198906), ("day", -1.3862943611198906),+                                    ("March", -1.3862943611198906), ("month", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = -2.5649493574615367,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.5040773967762742),+                                    ("midnight|EOD|end of day", -1.5040773967762742)],+                               n = 1},+                   koData =+                     ClassData{prior = -8.004270767353637e-2,+                               unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.740840023925201),+                                    ("time-of-day (latent)", -1.488077055429833),+                                    ("hh:mm", -2.0476928433652555), ("noon", -2.3353749158170367),+                                    ("hour", -1.2367626271489267), ("minute", -1.824549292051046)],+                               n = 12}}),+       ("half an hour",+        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}}),+       ("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}}),+       ("afternoon",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("year", -1.252762968495368),+                                    ("<integer> <unit-of-duration>", -0.8472978603872037),+                                    ("minute", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8718021769015913),+                                    ("month (grain)", -2.5649493574615367),+                                    ("year (grain)", -2.5649493574615367),+                                    ("week (grain)", -1.8718021769015913),+                                    ("day", -2.5649493574615367), ("quarter", -2.159484249353372),+                                    ("year", -2.5649493574615367), ("month", -2.5649493574615367),+                                    ("quarter (grain)", -2.159484249353372),+                                    ("day (grain)", -2.5649493574615367)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("<hour-of-day> half",+        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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("time-of-day (latent)", -1.0116009116784799),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8109302162163288),+                                    ("hour", -0.8109302162163288)],+                               n = 3}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.898999234764094, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2231435513142097),+                                    ("integer (0..19)", -2.0794415416798357)],+                               n = 35},+                   koData =+                     ClassData{prior = -0.5225216635291818, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.4700036292457356),+                                    ("integer (20..90)", -2.9267394020670396),+                                    ("few", -3.332204510175204),+                                    ("integer (0..19)", -1.3862943611198906),+                                    ("a pair", -3.332204510175204)],+                               n = 51}}),+       ("for <duration>",+        Classifier{okData =+                     ClassData{prior = -0.11441035117774422,+                               unseen = -4.3694478524670215,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9704144655697013),+                                    ("three-quarters of an hour", -2.7472709142554916),+                                    ("number.number hours", -3.6635616461296463),+                                    ("second", -3.6635616461296463), ("day", -2.5649493574615367),+                                    ("half an hour", -2.5649493574615367),+                                    ("year", -3.6635616461296463),+                                    ("<integer> <unit-of-duration>", -1.221214610760442),+                                    ("hour", -2.4107986776342782), ("month", -3.6635616461296463),+                                    ("minute", -1.5234954826333758),+                                    ("about <duration>", -3.6635616461296463)],+                               n = 33},+                   koData =+                     ClassData{prior = -2.2246235515243336, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.3862943611198906),+                                    ("hour", -1.3862943611198906)],+                               n = 4}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.2006706954621511, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 18},+                   koData =+                     ClassData{prior = -1.7047480922384253, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -4.5217885770490405,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5649493574615367),+                                    ("integer (0..19)year (grain)", -3.1245651453969594),+                                    ("integer (numeric)day (grain)", -2.431417964837014),+                                    ("integer (0..19)hour (grain)", -3.817712325956905),+                                    ("second", -3.817712325956905),+                                    ("a pairhour (grain)", -3.817712325956905),+                                    ("integer (numeric)year (grain)", -3.817712325956905),+                                    ("day", -2.3136349291806306), ("year", -2.9014215940827497),+                                    ("integer (numeric)week (grain)", -3.817712325956905),+                                    ("integer (0..19)month (grain)", -3.41224721784874),+                                    ("integer (0..19)second (grain)", -3.817712325956905),+                                    ("hour", -2.5649493574615367), ("month", -3.41224721784874),+                                    ("integer (numeric)minute (grain)", -2.7191000372887952),+                                    ("integer (0..19)minute (grain)", -3.817712325956905),+                                    ("fewhour (grain)", -3.817712325956905),+                                    ("minute", -2.5649493574615367),+                                    ("integer (numeric)hour (grain)", -3.1245651453969594),+                                    ("integer (0..19)day (grain)", -3.817712325956905),+                                    ("integer (0..19)week (grain)", -2.7191000372887952)],+                               n = 33},+                   koData =+                     ClassData{prior = -0.4700036292457356, unseen = -4.912654885736052,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.959364629383116),+                                    ("integer (0..19)year (grain)", -3.8066624897703196),+                                    ("integer (numeric)day (grain)", -3.518980417318539),+                                    ("fewday (grain)", -4.212127597878484),+                                    ("integer (0..19)hour (grain)", -2.959364629383116),+                                    ("second", -3.295836866004329),+                                    ("numbers ihour (grain)", -3.8066624897703196),+                                    ("integer (numeric)second (grain)", -3.8066624897703196),+                                    ("integer (numeric)year (grain)", -3.8066624897703196),+                                    ("day", -2.959364629383116), ("year", -3.295836866004329),+                                    ("integer (numeric)week (grain)", -3.295836866004329),+                                    ("integer (0..19)month (grain)", -3.8066624897703196),+                                    ("integer (0..19)second (grain)", -3.8066624897703196),+                                    ("hour", -1.5730702682632256), ("month", -3.295836866004329),+                                    ("integer (numeric)minute (grain)", -3.8066624897703196),+                                    ("integer (0..19)minute (grain)", -3.8066624897703196),+                                    ("integer (numeric)month (grain)", -3.8066624897703196),+                                    ("minute", -3.295836866004329),+                                    ("integer (numeric)hour (grain)", -1.9095425048844386),+                                    ("integer (0..19)day (grain)", -3.8066624897703196),+                                    ("integer (0..19)week (grain)", -3.8066624897703196)],+                               n = 55}}),+       ("ordinals (first..19th)",+        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}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter of an hourtime-of-day (latent)", -2.0149030205422647),+                                    ("minutehour", -1.6094379124341003),+                                    ("<integer> <unit-of-duration>christmas", -2.0149030205422647),+                                    ("quarter of an hour<time> <part-of-day>", -2.0149030205422647),+                                    ("yearday", -2.0149030205422647),+                                    ("minutesecond", -2.0149030205422647),+                                    ("<integer> <unit-of-duration>now", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.35667494393873245,+                               unseen = -4.890349128221754,+                               likelihoods =+                                 HashMap.fromList+                                   [("u <named-day><day-of-month>(ordinal) <named-month>",+                                     -4.189654742026425),+                                    ("<named-month> <day-of-month> (ordinal)intersect",+                                     -4.189654742026425),+                                    ("u <named-day><named-month> <day-of-month> (ordinal)",+                                     -4.189654742026425),+                                    ("intersecthh:mm", -4.189654742026425),+                                    ("intersect by \",\"year", -3.784189633918261),+                                    ("dayday", -2.1102132003465894),+                                    ("intersect by \",\"hh:mm", -3.2733640101522705),+                                    ("intersect by \",\"intersect by \",\"", -4.189654742026425),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.189654742026425),+                                    ("dayyear", -2.803360380906535),+                                    ("Wednesday<day-of-month>(ordinal) <named-month>",+                                     -4.189654742026425),+                                    ("<named-month> <day-of-month> (ordinal)intersect by \",\"",+                                     -4.189654742026425),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -4.189654742026425),+                                    ("Monday<day-of-month>(ordinal) <named-month>",+                                     -3.4965075614664802),+                                    ("intersect<day-of-month>(ordinal) <named-month>",+                                     -3.784189633918261),+                                    ("intersect<named-month> <day-of-month> (ordinal)",+                                     -4.189654742026425),+                                    ("Fridayintersect", -4.189654742026425),+                                    ("intersect by \",\"intersect", -4.189654742026425),+                                    ("intersectintersect by \",\"", -4.189654742026425),+                                    ("dayminute", -2.1102132003465894),+                                    ("intersectyear", -3.784189633918261),+                                    ("minuteday", -3.2733640101522705),+                                    ("Sunday<day-of-month>(ordinal) <named-month>",+                                     -3.784189633918261),+                                    ("yearhh:mm", -4.189654742026425),+                                    ("Friday<named-month> <day-of-month> (ordinal)",+                                     -3.784189633918261),+                                    ("intersectintersect", -4.189654742026425),+                                    ("Fridayintersect by \",\"", -3.0910424533583156),+                                    ("u <named-day><named-month> <day-of-month> (non ordinal)",+                                     -4.189654742026425),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -4.189654742026425),+                                    ("<named-month> <day-of-month> (ordinal)year",+                                     -3.784189633918261),+                                    ("yearminute", -4.189654742026425),+                                    ("Monday<named-month> <day-of-month> (ordinal)",+                                     -4.189654742026425)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -4.442651256490317,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.7376696182833684),+                                    ("<named-month> <day-of-month> (ordinal)intersect",+                                     -3.7376696182833684),+                                    ("dayhour", -2.639057329615259),+                                    ("daymonth", -2.639057329615259),+                                    ("monthyear", -3.7376696182833684),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.332204510175204),+                                    ("u <named-day>September", -3.7376696182833684),+                                    ("dayday", -2.639057329615259),+                                    ("Saturday<named-month> <day-of-month> (non ordinal)",+                                     -3.7376696182833684),+                                    ("FridayJuly", -3.332204510175204),+                                    ("minutemonth", -3.7376696182833684),+                                    ("at <time-of-day><day-of-month>(ordinal) <named-month>",+                                     -3.7376696182833684),+                                    ("Aprilyear", -3.7376696182833684),+                                    ("MondayFebruary", -3.7376696182833684),+                                    ("Saturday<named-month> <day-of-month> (ordinal)",+                                     -3.7376696182833684),+                                    ("Fridayintersect", -3.7376696182833684),+                                    ("intersect by \",\"intersect", -3.7376696182833684),+                                    ("SaturdaySeptember", -3.7376696182833684),+                                    ("intersectSeptember", -3.7376696182833684),+                                    ("intersectintersect", -3.7376696182833684),+                                    ("Friday<day-of-month>(ordinal) <named-month>",+                                     -3.7376696182833684),+                                    ("Fridayintersect by \",\"", -3.7376696182833684)],+                               n = 18}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -2.7398974188114388e-2,+                               unseen = -3.6375861597263857,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},+                   koData =+                     ClassData{prior = -3.6109179126442243,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter of an hour",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("second (grain)",+        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}}),+       ("u <named-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.845826690498331),+                                    ("absorption of , after named day", -2.538973871058276),+                                    ("Wednesday", -2.538973871058276),+                                    ("Saturday", -2.2512917986064953),+                                    ("Monday", -2.9444389791664407),+                                    ("Friday", -2.9444389791664407), ("day", -0.8649974374866046),+                                    ("Sunday", -2.9444389791664407)],+                               n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("absorption of , after named dayordinal (digits)",+                                     -1.0116009116784799),+                                    ("day", -0.7884573603642702),+                                    ("Tuesdayordinal (digits)", -2.3978952727983707),+                                    ("u <named-day>ordinal (digits)", -2.3978952727983707)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("absorption of , after named dayordinal (digits)",+                                     -1.0986122886681098),+                                    ("day", -1.0986122886681098)],+                               n = 1}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -1.7047480922384253, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("evening|night", -2.0794415416798357),+                                    ("day", -1.6739764335716716), ("Sunday", -2.0794415416798357),+                                    ("hour", -1.6739764335716716), ("Tuesday", -2.0794415416798357),+                                    ("week-end", -2.0794415416798357)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.2006706954621511,+                               unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clock", -3.0910424533583156),+                                    ("time-of-day (latent)", -0.8938178760220964),+                                    ("hour", -0.8397506547518206)],+                               n = 18}}),+       ("March",+        Classifier{okData =+                     ClassData{prior = -0.4795730802618862, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -0.9650808960435872,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("since <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -2.772588722239781, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm", -1.7047480922384253),+                                    ("minute", -1.7047480922384253)],+                               n = 1},+                   koData =+                     ClassData{prior = -6.453852113757118e-2,+                               unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -2.9704144655697013),+                                    ("intersect", -1.8718021769015913),+                                    ("second", -2.0541237336955462),+                                    ("numeral to|till|before <integer> (hour-of-day)",+                                     -2.9704144655697013),+                                    ("now", -2.9704144655697013), ("hh:mm", -2.277267285009756),+                                    ("<datetime> - <datetime> (interval)", -2.5649493574615367),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.5649493574615367),+                                    ("minute", -1.1786549963416462)],+                               n = 15}}),+       ("noon",+        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}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.2039728043259361, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clock", -1.8718021769015913),+                                    ("time-of-day (latent)", -1.466337068793427),+                                    ("hour", -1.1786549963416462)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.35667494393873245,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -2.3513752571634776),+                                    ("hh:mm", -1.6582280766035324), ("noon", -1.9459101490553135),+                                    ("hour", -1.4350845252893227),+                                    ("midnight|EOD|end of day", -2.3513752571634776),+                                    ("minute", -1.6582280766035324)],+                               n = 7}}),+       ("<integer> and an half hours",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (0..19)", 0.0)],+                               n = 1}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("late night",+        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}}),+       ("midnight|EOD|end of 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 <time>",+        Classifier{okData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.4423470353692043),+                                    ("Monday", -2.4423470353692043),+                                    ("Friday", -2.4423470353692043), ("day", -1.1895840668738362),+                                    ("March", -2.4423470353692043), ("month", -2.4423470353692043),+                                    ("Tuesday", -1.749199854809259)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.5040773967762742, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clock", -1.466337068793427),+                                    ("hour", -1.466337068793427)],+                               n = 2}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -2.3025850929940455),+                                    ("year (grain)", -1.8971199848858813),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -1.8971199848858813), ("month", -2.3025850929940455)],+                               n = 7},+                   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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6026896854443837),+                                    ("integer (0..19)year (grain)", -3.295836866004329),+                                    ("integer (numeric)day (grain)", -3.295836866004329),+                                    ("fewday (grain)", -3.295836866004329),+                                    ("integer (0..19)hour (grain)", -3.295836866004329),+                                    ("second", -2.890371757896165),+                                    ("integer (numeric)second (grain)", -3.295836866004329),+                                    ("integer (numeric)year (grain)", -3.295836866004329),+                                    ("day", -2.6026896854443837), ("year", -2.890371757896165),+                                    ("integer (numeric)week (grain)", -2.890371757896165),+                                    ("integer (0..19)month (grain)", -3.295836866004329),+                                    ("integer (0..19)second (grain)", -3.295836866004329),+                                    ("hour", -2.890371757896165), ("month", -2.890371757896165),+                                    ("integer (numeric)minute (grain)", -3.295836866004329),+                                    ("integer (0..19)minute (grain)", -3.295836866004329),+                                    ("integer (numeric)month (grain)", -3.295836866004329),+                                    ("minute", -2.890371757896165),+                                    ("integer (numeric)hour (grain)", -3.295836866004329),+                                    ("integer (0..19)day (grain)", -3.295836866004329),+                                    ("integer (0..19)week (grain)", -3.295836866004329)],+                               n = 16},+                   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 = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("today", -2.0794415416798357),+                                    ("next <cycle>", -2.0794415416798357),+                                    ("day", -1.3862943611198906),+                                    ("this <cycle>", -1.6739764335716716),+                                    ("month", -1.6739764335716716),+                                    ("this <time>", -2.0794415416798357)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.343805421853684,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9444389791664407),+                                    ("three-quarters of an hour", -2.7212954278522306),+                                    ("number.number hours", -3.6375861597263857),+                                    ("second", -3.6375861597263857), ("day", -2.538973871058276),+                                    ("half an hour", -2.538973871058276),+                                    ("year", -3.6375861597263857),+                                    ("<integer> <unit-of-duration>", -1.2396908869280152),+                                    ("hour", -2.384823191231018), ("month", -3.6375861597263857),+                                    ("minute", -1.55814461804655),+                                    ("about <duration>", -3.6375861597263857)],+                               n = 32},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("since <time-of-day>hh:mm", -2.639057329615259),+                                    ("minuteminute", -1.3862943611198906),+                                    ("hh:mmhh:mm", -1.7227665977411035),+                                    ("dayday", -2.2335922215070942),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.2335922215070942),+                                    ("after <time-of-day>hh:mm", -2.639057329615259)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.4849066497880004),+                                    ("daymonth", -2.0794415416798357),+                                    ("minuteminute", -1.5686159179138452),+                                    ("after <time-of-day>intersect", -2.4849066497880004),+                                    ("hh:mmintersect", -2.0794415416798357),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.4849066497880004),+                                    ("since <time-of-day>intersect", -2.4849066497880004)],+                               n = 6}}),+       ("Tuesday",+        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}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("since <time-of-day>hh:mm", -2.4423470353692043),+                                    ("minuteminute", -1.1895840668738362),+                                    ("hh:mmhh:mm", -1.5260563034950494),+                                    ("after <time-of-day>hh:mm", -2.4423470353692043)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("since <time-of-day>time-of-day (latent)", -2.740840023925201),+                                    ("hh:mmtime-of-day (latent)", -1.824549292051046),+                                    ("hourhour", -2.740840023925201),+                                    ("minutehour", -1.1314021114911006),+                                    ("numeral to|till|before <integer> (hour-of-day)time-of-day (latent)",+                                     -2.0476928433652555),+                                    ("at <time-of-day>time-of-day (latent)", -2.740840023925201),+                                    ("after <time-of-day>time-of-day (latent)",+                                     -2.740840023925201)],+                               n = 10}}),+       ("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}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.70805020110221),+                                    ("integer (0..19)year (grain)", -3.4011973816621555),+                                    ("integer (numeric)day (grain)", -2.995732273553991),+                                    ("integer (0..19)hour (grain)", -3.4011973816621555),+                                    ("second", -2.995732273553991),+                                    ("numbers ihour (grain)", -2.995732273553991),+                                    ("integer (numeric)second (grain)", -3.4011973816621555),+                                    ("integer (numeric)year (grain)", -3.4011973816621555),+                                    ("day", -2.70805020110221), ("year", -2.995732273553991),+                                    ("integer (numeric)week (grain)", -2.995732273553991),+                                    ("integer (0..19)month (grain)", -3.4011973816621555),+                                    ("integer (0..19)second (grain)", -3.4011973816621555),+                                    ("hour", -2.3025850929940455), ("month", -2.995732273553991),+                                    ("integer (numeric)minute (grain)", -3.4011973816621555),+                                    ("integer (0..19)minute (grain)", -3.4011973816621555),+                                    ("integer (numeric)month (grain)", -3.4011973816621555),+                                    ("minute", -2.995732273553991),+                                    ("integer (numeric)hour (grain)", -2.995732273553991),+                                    ("integer (0..19)day (grain)", -3.4011973816621555),+                                    ("integer (0..19)week (grain)", -3.4011973816621555)],+                               n = 19},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.1354942159291497,+                               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..19th)Tuesdayintersect", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)Tuesdaychristmas", -0.916290731874155),+                                    ("dayday", -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.6061358035703156,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -1.791759469228055),+                                    ("month", -0.9444616088408514),+                                    ("Februaryinteger (numeric)", -2.1972245773362196),+                                    ("Septemberinteger (numeric)", -2.1972245773362196),+                                    ("Julyinteger (numeric)", -1.791759469228055)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Aprilinteger (numeric)", -2.0794415416798357),+                                    ("month", -0.9808292530117262),+                                    ("Julyinteger (numeric)", -1.1631508098056809)],+                               n = 5}}),+       ("numeral after|past (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("integer (20..90)time-of-day (latent)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)April", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)August", -1.3862943611198906),+                                    ("month", -0.9808292530117262),+                                    ("integer (numeric)July", -1.3862943611198906)],+                               n = 2}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.03688192726104), ("Monday", -2.03688192726104),+                                    ("Friday", -2.4423470353692043), ("day", -0.832909122935104),+                                    ("Tuesday", -1.5260563034950494)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -3.7740327982847086e-2,+                               unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},+                   koData =+                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter (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}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9459101490553135),+                                    ("daymonth", -1.540445040947149),+                                    ("day (grain)intersect", -1.9459101490553135),+                                    ("weekmonth", -1.540445040947149),+                                    ("week (grain)intersect", -1.9459101490553135),+                                    ("week (grain)September", -1.9459101490553135)],+                               n = 4},+                   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 = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)March", -1.6094379124341003),+                                    ("ordinal (digits)April", -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("ordinal (digits)March", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("half <integer> (HR style 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}}),+       ("week-end",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -2.890371757896165, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm", -1.9459101490553135),+                                    ("minute", -1.9459101490553135)],+                               n = 1},+                   koData =+                     ClassData{prior = -5.715841383994864e-2,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -3.1354942159291497),+                                    ("<time-of-day> o'clock", -3.1354942159291497),+                                    ("intersect", -2.03688192726104),+                                    ("second", -2.2192034840549946),+                                    ("numeral to|till|before <integer> (hour-of-day)",+                                     -3.1354942159291497),+                                    ("now", -3.1354942159291497),+                                    ("time-of-day (latent)", -3.1354942159291497),+                                    ("hh:mm", -2.4423470353692043), ("hour", -2.7300291078209855),+                                    ("<datetime> - <datetime> (interval)", -2.7300291078209855),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.7300291078209855),+                                    ("minute", -1.3437347467010947)],+                               n = 17}}),+       ("day (grain)",+        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}}),+       ("dd.mm",+        Classifier{okData =+                     ClassData{prior = -1.8718021769015913,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.1670540846631662,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11}}),+       ("day after tomorrow",+        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}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("July", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -1.6094379124341003),+                                    ("quarter of an hour", -1.0986122886681098),+                                    ("minute", -0.7621400520468967)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter of an hour", -0.7884573603642702),+                                    ("minute", -0.7884573603642702)],+                               n = 4}}),+       ("u <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.540445040947149), ("March", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6061358035703156, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("September", -1.6739764335716716),+                                    ("October", -1.1631508098056809),+                                    ("month", -0.8266785731844679)],+                               n = 6}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.1670540846631662,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("today", -2.833213344056216),+                                    ("Wednesday", -2.833213344056216),+                                    ("season", -2.1400661634962708),+                                    ("evening|night", -2.833213344056216),+                                    ("Monday", -2.833213344056216), ("day", -1.580450375560848),+                                    ("afternoon", -2.833213344056216),+                                    ("hour", -1.7346010553881064), ("morning", -2.833213344056216),+                                    ("week-end", -2.4277482359480516)],+                               n = 11},+                   koData =+                     ClassData{prior = -1.8718021769015913, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -2.0794415416798357), ("hour", -2.0794415416798357),+                                    ("late night", -2.0794415416798357),+                                    ("Tuesday", -2.0794415416798357)],+                               n = 2}}),+       ("<named-month> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyordinal (digits)", -1.3862943611198906),+                                    ("Septemberordinal (digits)", -1.791759469228055),+                                    ("Februaryordinal (digits)", -1.791759469228055),+                                    ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("August",+        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}})]
+ Duckling/Ranking/Classifiers/HU_XX.hs view
@@ -0,0 +1,318 @@+-- 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.HU_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("Thursday",+        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 (numeric)",+        Classifier{okData =+                     ClassData{prior = -1.2205021062771466, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -0.3496737484797488,+                               unseen = -3.8066624897703196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 43}}),+       ("pm <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -0.9985288301111273),+                                    ("todaypart of days", -1.3350010667323402),+                                    ("tomorrowpart of days", -2.2512917986064953),+                                    ("yesterdaypart of days", -2.2512917986064953)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.0986122886681098),+                                    ("next <day-of-week>part of days", -2.0149030205422647),+                                    ("yyyy.mm.ddpart of days", -2.0149030205422647),+                                    ("Wednesdaypart of days", -1.6094379124341003)],+                               n = 4}}),+       ("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}}),+       ("month (grain)",+        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}}),+       ("January",+        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}}),+       ("Wednesday",+        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}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.0498221244986778),+                                    ("yyyy.mm.ddhh:mm", -2.995732273553991),+                                    ("Wednesdaypm <time-of-day>", -2.3025850929940455),+                                    ("todaypart of days", -2.0794415416798357),+                                    ("yyyy.mm.ddpm <time-of-day>", -2.995732273553991),+                                    ("dayminute", -2.995732273553991),+                                    ("tomorrowpart of days", -2.995732273553991),+                                    ("next <day-of-week>pm <time-of-day>", -2.3025850929940455),+                                    ("yesterdaypart of days", -2.995732273553991)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.1786549963416462),+                                    ("next <day-of-week>part of days", -2.5649493574615367),+                                    ("Wednesdaypm <time-of-day>", -1.8718021769015913),+                                    ("yyyy.mm.ddpart of days", -2.5649493574615367),+                                    ("Wednesdaypart of days", -2.159484249353372)],+                               n = 7}}),+       ("year (grain)",+        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 before yesterday",+        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}}),+       ("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}}),+       ("yesterday",+        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:ss",+        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}}),+       ("am <time-of-day>",+        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}}),+       ("end of month",+        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}}),+       ("tomorrow",+        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 = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("month (grain)", -1.3862943611198906),+                                    ("year (grain)", -1.3862943611198906),+                                    ("year", -1.3862943611198906), ("month", -1.3862943611198906)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.7047480922384253),+                                    ("Wednesday", -1.0116009116784799),+                                    ("day", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        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}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("March",+        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}}),+       ("yyyy.mm.dd",+        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}}),+       ("number (0..10)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("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}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("Marchinteger (numeric)", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("seasons",+        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}}),+       ("mm.dd",+        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}}),+       ("right now",+        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}}),+       ("end of 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}}),+       ("day after tomorrow",+        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}}),+       ("part of days",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}})]
− Duckling/Ranking/Classifiers/ID.hs
@@ -1,22 +0,0 @@--- 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.ID (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/ID_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.ID_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/IT.hs
@@ -1,2085 +0,0 @@--- 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.IT (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time-of-day> - <time-of-day> <day-of-month> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourhourday", -1.6094379124341003),-                                    ("minuteminuteday", -1.6094379124341003),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)named-day",-                                     -1.6094379124341003),-                                    ("<integer> (latent time-of-day)<integer> (latent time-of-day)named-day",-                                     -1.6094379124341003)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)<integer> (latent time-of-day)named-month",-                                     -1.3862943611198906),-                                    ("hourhourmonth", -1.3862943611198906)],-                               n = 1}}),-       ("midnight",-        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}}),-       ("the <cycle> next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("semaine (grain)", -1.3862943611198906),-                                    ("mois (grain)", -1.3862943611198906),-                                    ("month", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.0986122886681098),-                                    ("hh(:|h)mm (time-of-day)", -1.791759469228055),-                                    ("hour", -1.3862943611198906), ("minute", -1.3862943611198906)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.5510646669461725, unseen = -5.030437921392435,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 151},-                   koData =-                     ClassData{prior = -0.8588143024487628, unseen = -4.727387818712341,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 111}}),-       ("the day before yesterday",-        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}}),-       ("lunch",-        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[/-]mm",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("today",-        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}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.6325225587435105,-                               unseen = -4.7535901911063645,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight", -4.051784947803305),-                                    ("<time> timezone", -4.051784947803305),-                                    ("<integer 0 12> del <part of day>", -2.665490586683414),-                                    ("<integer> (latent time-of-day)", -1.5668782980153044),-                                    ("hh(:|h)mm (time-of-day)", -2.1058747987479913),-                                    ("<hour-of-day> and <relative minutes>", -4.051784947803305),-                                    ("noon", -3.6463198396951406),-                                    ("hh <relative-minutes> del pomeriggio(time-of-day)",-                                     -3.6463198396951406),-                                    ("<hour-of-day> minus quart", -4.051784947803305),-                                    ("hour", -1.2185716037470886), ("minute", -1.8004931491968097)],-                               n = 51},-                   koData =-                     ClassData{prior = -0.7576857016975165,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("una", -3.9415818076696905),-                                    ("<integer> (latent time-of-day)", -1.0512100497735257),-                                    ("hh(:|h)mm (time-of-day)", -2.842969519001581),-                                    ("<hour-of-day> and <relative minutes>", -3.536116699561526),-                                    ("<hour-of-day> minus <integer> (as relative minutes)",-                                     -3.9415818076696905),-                                    ("noon", -3.9415818076696905), ("hour", -0.99714282850325),-                                    ("minute", -2.4375044108934163)],-                               n = 45}}),-       ("ann\233e (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}}),-       ("dopo le <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight", -2.0149030205422647),-                                    ("<integer> (latent time-of-day)", -1.0986122886681098),-                                    ("hour", -0.916290731874155)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.2876820724517809, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight", -2.8622008809294686),-                                    ("<integer> (latent time-of-day)", -1.0704414117014134),-                                    ("hh(:|h)mm (time-of-day)", -2.169053700369523),-                                    ("hour", -0.9903987040278769), ("minute", -2.169053700369523)],-                               n = 15}}),-       ("seconde (grain)",-        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}}),-       ("stanotte",-        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}}),-       ("dal <integer> al <integer> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..19)number (0..19)", -0.6931471805599453),-                                    ("integer (numeric)integer (numeric)", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer 0 12> del <part of day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2876820724517809),-                                    ("number (0..19)", -1.3862943611198906)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("una",-        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}}),-       ("semaine (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("il <day-of-month>",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 10},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("mois (grain)",-        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}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 3}}),-       ("in|entro <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.252762968495368),-                                    ("<integer> <unit-of-duration>", -0.8472978603872037),-                                    ("minute", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2039728043259361),-                                    ("semaine (grain)", -1.2039728043259361),-                                    ("mois (grain)", -1.6094379124341003),-                                    ("month", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("epifania",-        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}}),-       ("last <time> ",-        Classifier{okData =-                     ClassData{prior = -2.8622008809294686,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.7047480922384253),-                                    ("named-day", -1.7047480922384253),-                                    ("hour", -1.7047480922384253),-                                    ("week-end", -1.7047480922384253)],-                               n = 2},-                   koData =-                     ClassData{prior = -5.8840500022933465e-2,-                               unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.9582549309731873),-                                    ("intersect by \"di\", \"della\", \"del\"",-                                     -3.1918471524802814),-                                    ("day", -2.344549292093078), ("named-day", -3.1918471524802814),-                                    ("hour", -0.9582549309731873),-                                    ("two time tokens separated by `di`", -3.1918471524802814)],-                               n = 33}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7047480922384253),-                                    ("weekmonth", -1.2992829841302609),-                                    ("ordinals (primo..10)jour (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (primo..10)semaine (grain)named-month",-                                     -1.7047480922384253),-                                    ("ordinals (primo..10)semaine (grain)two time tokens in a row",-                                     -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("<time> last",-        Classifier{okData =-                     ClassData{prior = -1.791759469228055, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.252762968495368), ("named-day", -1.252762968495368)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.1823215567939546, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.6094379124341003),-                                    ("<integer> (latent time-of-day)", -1.3217558399823195),-                                    ("hour", -0.916290731874155)],-                               n = 5}}),-       ("the <ordinal> <cycle> <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarteryear", -0.6931471805599453),-                                    ("ordinals (primo..10)trimestre (grain)year (1000-2100 not latent)",-                                     -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("verso <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("evening", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("weekday", -0.9808292530117262),-                                    ("semaine (grain)<day-of-month> <named-month>",-                                     -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("semaine (grain)<integer> (latent time-of-day)",-                                     -0.9808292530117262),-                                    ("weekhour", -0.9808292530117262)],-                               n = 2}}),-       ("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}}),-       ("in the <part-of-day> of <dim time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -0.9808292530117262),-                                    ("morningnamed-day", -1.3862943611198906),-                                    ("eveningtomorrow", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -0.9808292530117262),-                                    ("nighttomorrow", -0.9808292530117262)],-                               n = 2}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarteryear", -0.6931471805599453),-                                    ("ordinals (primo..10)trimestre (grain)year (1000-2100 not latent)",-                                     -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("festa della repubblica",-        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/after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.4849066497880004),-                                    ("un quarto d'ora", -2.4849066497880004),-                                    ("<integer> <unit-of-duration>", -1.5686159179138452),-                                    ("une <unit-of-duration>", -2.4849066497880004),-                                    ("hour", -2.0794415416798357),-                                    ("mezz'ora", -2.4849066497880004),-                                    ("minute", -1.3862943611198906),-                                    ("tre quarti d'ora", -2.4849066497880004)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("i|le n <cycle> passati|passate",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.219507705176107,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",-                                     -3.5115454388310208),-                                    ("number (0..19)heure (grain)", -3.5115454388310208),-                                    ("number (0..19)jour (grain)", -2.8183982582710754),-                                    ("second", -3.1060803307228566),-                                    ("integer (numeric)ann\233e (grain)", -3.1060803307228566),-                                    ("integer (numeric)seconde (grain)", -3.5115454388310208),-                                    ("integer (numeric)jour (grain)", -3.1060803307228566),-                                    ("day", -2.412933150162911), ("year", -2.5952547069568657),-                                    ("number (0..19)seconde (grain)", -3.5115454388310208),-                                    ("number (0..19)ann\233e (grain)", -3.1060803307228566),-                                    ("hour", -2.2587824703356527),-                                    ("number (0..19)mois (grain)", -3.1060803307228566),-                                    ("month", -2.412933150162911),-                                    ("integer (numeric)minute (grain)", -3.5115454388310208),-                                    ("integer (numeric)mois (grain)", -2.8183982582710754),-                                    ("minute", -3.1060803307228566),-                                    ("number (0..19)minute (grain)", -3.5115454388310208),-                                    ("integer (numeric)heure (grain)", -2.5952547069568657)],-                               n = 24},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("un quarto d'ora",-        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}}),-       ("santo stefano",-        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}}),-       ("entro il <integer>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("stasera",-        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> (latent time-of-day)",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3184537311185346),-                                    ("number (0..19)", -1.3862943611198906)],-                               n = 41},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -4.454347296253507,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3317773923170052),-                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-                                     -3.3440389678222067),-                                    ("number (0..19)", -1.3981288187668934)],-                               n = 82}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7731898882334817),-                                    ("ordinals (primo..10)named-daynamed-month",-                                     -1.466337068793427),-                                    ("ordinals (primo..10)named-daytwo time tokens in a row",-                                     -1.1786549963416462)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.8109302162163288),-                                    ("ordinals (primo..10)named-daynamed-month",-                                     -0.8109302162163288)],-                               n = 3}}),-       ("a quart to <integer> (as hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> notte",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("new year's eve", -1.8718021769015913),-                                    ("tomorrow", -0.9555114450274363),-                                    ("day", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = -1.680711831638129e-2,-                               unseen = -4.110873864173311,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 59},-                   koData =-                     ClassData{prior = -4.0943445622221, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("intersect by \"di\", \"della\", \"del\"",-        Classifier{okData =-                     ClassData{prior = -0.41616039722491244,-                               unseen = -4.442651256490317,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)named-day", -3.332204510175204),-                                    ("named-daynamed-month", -3.332204510175204),-                                    ("hourday", -2.4849066497880004),-                                    ("day of month (1st)named-month", -3.7376696182833684),-                                    ("daymonth", -2.3513752571634776),-                                    ("named-daytwo time tokens in a row", -3.7376696182833684),-                                    ("at <time-of-day>named-day", -3.332204510175204),-                                    ("hh(:|h)mm (time-of-day)<day-of-month> <named-month>",-                                     -3.7376696182833684),-                                    ("two time tokens in a rowtwo time tokens in a row",-                                     -3.7376696182833684),-                                    ("dalle <time-of-day> alle <time-of-day> (interval)named-day",-                                     -3.044522437723423),-                                    ("<integer 0 12> del <part of day>tomorrow",-                                     -3.7376696182833684),-                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",-                                     -2.8213788864092133),-                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",-                                     -3.332204510175204),-                                    ("at <time-of-day>two time tokens in a row",-                                     -3.332204510175204),-                                    ("minuteday", -1.6582280766035324),-                                    ("at <time-of-day><named-day> <day-of-month>",-                                     -3.7376696182833684),-                                    ("dayweek", -3.044522437723423),-                                    ("two time tokens in a rownamed-month", -3.332204510175204),-                                    ("<dim time> al <part-of-day>tomorrow", -3.7376696182833684),-                                    ("named-daythis <cycle>", -3.044522437723423),-                                    ("tra il <datetime> e il <datetime> (interval)named-day",-                                     -3.332204510175204)],-                               n = 31},-                   koData =-                     ClassData{prior = -1.0775588794702773, unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)named-day", -2.890371757896165),-                                    ("named-daynamed-month", -2.379546134130174),-                                    ("hourday", -2.1972245773362196),-                                    ("daymonth", -1.9095425048844386),-                                    ("named-daytwo time tokens in a row", -2.6026896854443837),-                                    ("at <time-of-day>named-day", -2.1972245773362196),-                                    ("stanottetomorrow", -2.890371757896165),-                                    ("minuteday", -2.379546134130174)],-                               n = 16}}),-       ("<hour-of-day> and a quart",-        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> (latent time-of-day)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2}}),-       ("commemorazione dei defunti",-        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}}),-       ("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}}),-       ("hh(:|h)mm (time-of-day)",-        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}}),-       ("EOY|End of 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}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.4595323293784402, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -2.639057329615259),-                                    ("hour", -0.7672551527136672), ("evening", -1.1349799328389845),-                                    ("morning", -1.9459101490553135)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.9985288301111273,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8109302162163288), ("evening", -1.791759469228055),-                                    ("morning", -1.0986122886681098)],-                               n = 7}}),-       ("circa per le <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer 0 12> del <part of day>", -1.5040773967762742),-                                    ("<integer> (latent time-of-day)", -1.0986122886681098),-                                    ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("christmas eve",-        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}}),-       ("festa del lavoro",-        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}}),-       ("il week-end del <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<day-of-month> <named-month>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2231435513142097),-                                    ("number (0..19)", -1.6094379124341003)],-                               n = 13}}),-       ("entro le <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("il <day-of-month>", -2.639057329615259),-                                    ("<integer> (latent time-of-day)", -2.2335922215070942),-                                    ("named-month", -2.639057329615259),-                                    ("hh(:|h)mm (time-of-day)", -2.639057329615259),-                                    ("EOY|End of year", -2.639057329615259),-                                    ("day", -2.639057329615259), ("year", -2.639057329615259),-                                    ("EOM|End of month", -2.639057329615259),-                                    ("noon", -2.639057329615259), ("hour", -1.9459101490553135),-                                    ("month", -2.2335922215070942), ("minute", -2.639057329615259)],-                               n = 8},-                   koData =-                     ClassData{prior = -2.1972245773362196, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -1.9459101490553135),-                                    ("hour", -1.9459101490553135)],-                               n = 1}}),-       ("new year's eve",-        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}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               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}}),-       ("domattina",-        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.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (primo..10)",-        Classifier{okData =-                     ClassData{prior = -1.0185695809945732, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -0.4480247225269604,-                               unseen = -3.2188758248682006,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 23}}),-       ("the <ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.6931471805599453),-                                    ("ordinals (primo..10)jour (grain)named-month",-                                     -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("gli <n> ultimi <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.8109302162163288),-                                    ("number (0..19)semaine (grain)", -1.5040773967762742),-                                    ("integer (numeric)semaine (grain)", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        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}}),-       ("tra il <integer> e il <integer> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2809338454620642),-                                    ("ann\233e (grain)", -2.1972245773362196),-                                    ("semaine (grain)", -1.2809338454620642),-                                    ("quarter", -2.1972245773362196), ("year", -2.1972245773362196),-                                    ("trimestre (grain)", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("semaine (grain)", -1.3862943611198906)],-                               n = 1}}),-       ("minute (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}}),-       ("il <cycle> dopo <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.5040773967762742),-                                    ("dayday", -1.5040773967762742),-                                    ("mois (grain)two time tokens in a row", -1.5040773967762742),-                                    ("jour (grain)tomorrow", -1.5040773967762742)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.252762968495368),-                                    ("mois (grain)christmas", -1.252762968495368)],-                               n = 1}}),-       ("night",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("tra il <datetime> e il <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8109302162163288, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.466337068793427),-                                    ("at <time-of-day>at <time-of-day>", -0.9555114450274363),-                                    ("hourhour", -1.466337068793427)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.587786664902119, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)<integer> (latent time-of-day)",-                                     -1.3217558399823195),-                                    ("at <time-of-day>at <time-of-day>", -1.6094379124341003),-                                    ("hourhour", -1.3217558399823195),-                                    ("minutehour", -1.6094379124341003)],-                               n = 5}}),-       ("gli ultimi <n> <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.343805421853684,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.2321210516182215),-                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",-                                     -3.6375861597263857),-                                    ("number (0..19)heure (grain)", -2.9444389791664407),-                                    ("number (0..19)jour (grain)", -3.2321210516182215),-                                    ("second", -3.2321210516182215),-                                    ("integer (numeric)ann\233e (grain)", -2.9444389791664407),-                                    ("integer (numeric)seconde (grain)", -3.6375861597263857),-                                    ("integer (numeric)jour (grain)", -3.2321210516182215),-                                    ("day", -2.7212954278522306), ("year", -2.538973871058276),-                                    ("number (0..19)seconde (grain)", -3.6375861597263857),-                                    ("number (0..19)ann\233e (grain)", -3.2321210516182215),-                                    ("number (0..19)semaine (grain)", -3.6375861597263857),-                                    ("hour", -2.2512917986064953),-                                    ("number (0..19)mois (grain)", -2.9444389791664407),-                                    ("month", -2.538973871058276),-                                    ("integer (numeric)minute (grain)", -3.6375861597263857),-                                    ("integer (numeric)mois (grain)", -3.2321210516182215),-                                    ("minute", -3.2321210516182215),-                                    ("number (0..19)minute (grain)", -3.6375861597263857),-                                    ("integer (numeric)semaine (grain)", -3.6375861597263857),-                                    ("integer (numeric)heure (grain)", -2.9444389791664407)],-                               n = 27},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.1354942159291497,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("le idi di <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 2}}),-       ("<dim time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5389965007326869, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.1786549963416462),-                                    ("<day-of-month> <named-month>morning", -2.5649493574615367),-                                    ("tomorrowevening", -2.5649493574615367),-                                    ("named-daymorning", -2.159484249353372),-                                    ("tomorrowmorning", -2.5649493574615367),-                                    ("tomorrowlunch", -2.5649493574615367),-                                    ("yesterdayevening", -2.5649493574615367)],-                               n = 7},-                   koData =-                     ClassData{prior = -0.8754687373538999,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.9924301646902063),-                                    ("tomorrownight", -2.3978952727983707),-                                    ("monthhour", -1.7047480922384253),-                                    ("named-monththis <part-of-day>", -1.9924301646902063),-                                    ("tomorrowstanotte", -2.3978952727983707),-                                    ("named-monthmorning", -2.3978952727983707)],-                               n = 5}}),-       ("<hour-of-day> and <relative minutes>",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>number (20..90)", -1.8718021769015913),-                                    ("<integer> (latent time-of-day)integer (numeric)",-                                     -1.466337068793427),-                                    ("<integer> (latent time-of-day)number (20..90)",-                                     -1.8718021769015913),-                                    ("hour", -0.9555114450274363)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>number (20..90)", -1.845826690498331),-                                    ("<integer> (latent time-of-day)integer (numeric)",-                                     -2.2512917986064953),-                                    ("<integer> (latent time-of-day)number (20..90)",-                                     -1.845826690498331),-                                    ("hour", -0.8649974374866046),-                                    ("<integer> (latent time-of-day)number (0..19)",-                                     -1.845826690498331)],-                               n = 7}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.8109302162163288),-                                    ("named-daytwo time tokens in a row", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-day> <day-of-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayinteger (numeric)", -0.6931471805599453),-                                    ("day", -0.6931471805599453)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -2.9444389791664407,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.70805020110221),-                                    ("number (0..19)semaine (grain)", -2.70805020110221),-                                    ("hour", -2.70805020110221),-                                    ("integer (numeric)minute (grain)", -2.3025850929940455),-                                    ("minute", -2.3025850929940455),-                                    ("integer (numeric)heure (grain)", -2.70805020110221)],-                               n = 4},-                   koData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -5.117993812416755,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.3202283191284883),-                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",-                                     -4.013375499688434),-                                    ("number (0..19)heure (grain)", -3.3202283191284883),-                                    ("number (0..19)jour (grain)", -3.16607763930123),-                                    ("second", -3.0325462466767075),-                                    ("integer (numeric)ann\233e (grain)", -3.16607763930123),-                                    ("integer (numeric)seconde (grain)", -3.7256934272366524),-                                    ("integer (numeric)jour (grain)", -3.16607763930123),-                                    ("day", -2.5470384308950065), ("year", -2.627081138568543),-                                    ("number (0..19)seconde (grain)", -3.5025498759224427),-                                    ("number (0..19)ann\233e (grain)", -3.3202283191284883),-                                    ("number (0..19)semaine (grain)", -4.013375499688434),-                                    ("hour", -2.278774444300327),-                                    ("number (0..19)mois (grain)", -3.0325462466767075),-                                    ("month", -2.403937587254333),-                                    ("integer (numeric)minute (grain)", -3.5025498759224427),-                                    ("integer (numeric)mois (grain)", -3.0325462466767075),-                                    ("minute", -3.0325462466767075),-                                    ("number (0..19)minute (grain)", -3.7256934272366524),-                                    ("integer (numeric)semaine (grain)", -3.7256934272366524),-                                    ("integer (numeric)heure (grain)", -2.8094026953624978)],-                               n = 72}}),-       ("immacolata concezione",-        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}}),-       ("<dim time> al <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.3746934494414107,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.413693335308005),-                                    ("<integer> (latent time-of-day)afternoon", -2.917770732084279),-                                    ("hh(:|h)mm (time-of-day)afternoon", -2.917770732084279),-                                    ("<day-of-month> <named-month>morning", -2.512305623976115),-                                    ("il <day-of-month> <named-month>morning", -2.917770732084279),-                                    ("hourhour", -2.917770732084279),-                                    ("two time tokens in a rowmorning", -2.917770732084279),-                                    ("minutehour", -2.512305623976115),-                                    ("tomorrowevening", -2.917770732084279),-                                    ("named-daymorning", -2.512305623976115),-                                    ("il <time>morning", -2.917770732084279),-                                    ("hh(:|h)mm (time-of-day)morning", -2.917770732084279)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.1631508098056809, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.5257286443082556),-                                    ("<integer> (latent time-of-day)afternoon", -2.120263536200091),-                                    ("tomorrownight", -2.5257286443082556),-                                    ("monthhour", -2.120263536200091),-                                    ("hourhour", -2.120263536200091),-                                    ("named-monthmorning", -2.120263536200091)],-                               n = 5}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.290459441148391,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 71},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dal <datetime> al <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.6931471805599453),-                                    ("tomorrownamed-day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dalle <time-of-day> alle <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight<integer> (latent time-of-day)", -2.3978952727983707),-                                    ("minuteminute", -1.7047480922384253),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -1.7047480922384253),-                                    ("<integer> (latent time-of-day)<integer> (latent time-of-day)",-                                     -1.9924301646902063),-                                    ("hourhour", -1.4816045409242156),-                                    ("<integer> (latent time-of-day)una", -2.3978952727983707)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.2039728043259361, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("minutehour", -1.252762968495368),-                                    ("hh(:|h)mm (time-of-day)<integer> (latent time-of-day)",-                                     -1.252762968495368)],-                               n = 3}}),-       ("ferragosto",-        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 (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-        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 (1st)",-        Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("number (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.14058195062118944,-                               unseen = -4.007333185232471,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 53},-                   koData =-                     ClassData{prior = -2.031432322493475, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("year (1000-2100 not latent)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -2.890371757896165,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 16},-                   koData =-                     ClassData{prior = -1.6094379124341003, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("il <time>",-        Classifier{okData =-                     ClassData{prior = -0.1823215567939546, unseen = -4.060443010546419,-                               likelihoods =-                                 HashMap.fromList-                                   [("dd[/-]mm", -3.349904087274605),-                                    ("<ordinal> quarter", -3.349904087274605),-                                    ("<cycle> next", -3.349904087274605),-                                    ("<ordinal> <cycle> of <time>", -3.349904087274605),-                                    ("<ordinal> quarter <year>", -3.349904087274605),-                                    ("day", -1.3350010667323402), ("quarter", -2.9444389791664407),-                                    ("<dim time> al <part-of-day>", -3.349904087274605),-                                    ("named-day", -3.349904087274605),-                                    ("day of month (1st)", -3.349904087274605),-                                    ("two time tokens in a row", -2.6567569067146595),-                                    ("hour", -2.9444389791664407), ("month", -3.349904087274605),-                                    ("next <time>", -2.9444389791664407),-                                    ("<day-of-month> <named-month>", -2.097141118779237),-                                    ("minute", -3.349904087274605),-                                    ("week-end", -3.349904087274605)],-                               n = 20},-                   koData =-                     ClassData{prior = -1.791759469228055, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> quarter", -2.5257286443082556),-                                    ("day", -2.5257286443082556), ("quarter", -2.5257286443082556),-                                    ("two time tokens in a row", -2.5257286443082556),-                                    ("hour", -2.120263536200091),-                                    ("<day-of-month> <named-month>", -2.5257286443082556),-                                    ("week-end", -2.5257286443082556)],-                               n = 4}}),-       ("entro <time>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.4423470353692043),-                                    ("il <day-of-month>", -2.4423470353692043),-                                    ("named-month", -2.4423470353692043),-                                    ("EOY|End of year", -2.4423470353692043),-                                    ("day", -2.4423470353692043), ("year", -2.4423470353692043),-                                    ("EOM|End of month", -2.4423470353692043),-                                    ("noon", -2.4423470353692043), ("hour", -2.4423470353692043),-                                    ("month", -2.03688192726104), ("minute", -2.4423470353692043)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.8718021769015913),-                                    ("hour", -1.8718021769015913)],-                               n = 1}}),-       ("trimestre (grain)",-        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}}),-       ("ognissanti",-        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}}),-       ("<hour-of-day> minus <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("noonnumber (0..19)", -1.0986122886681098),-                                    ("at <time-of-day>number (0..19)", -1.5040773967762742),-                                    ("hour", -0.8109302162163288)],-                               n = 3}}),-       ("une <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("heure (grain)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <cycle> ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.7047480922384253),-                                    ("ann\233e (grain)", -2.3978952727983707),-                                    ("semaine (grain)", -1.7047480922384253),-                                    ("mois (grain)", -2.3978952727983707),-                                    ("quarter", -1.9924301646902063), ("year", -2.3978952727983707),-                                    ("trimestre (grain)", -1.9924301646902063),-                                    ("month", -2.3978952727983707)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("EOM|End of month",-        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 quart del pomeriggio(time-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("two time tokens in a row",-        Classifier{okData =-                     ClassData{prior = -0.3708595789306889, unseen = -5.955837369464831,-                               likelihoods =-                                 HashMap.fromList-                                   [("il <time>named-month", -5.260096153727839),-                                    ("hh(:|h)mm (time-of-day)named-day", -5.260096153727839),-                                    ("intersect by \"di\", \"della\", \"del\"year (1000-2100 not latent)",-                                     -4.854631045619675),-                                    ("named-monthyear (1000-2100 not latent)", -3.5553480614894135),-                                    ("day of month (1st)named-month", -4.566948973167894),-                                    ("dayhour", -3.245193133185574),-                                    ("daymonth", -2.4875074314880576),-                                    ("day of month (1st)intersect by \"di\", \"della\", \"del\"",-                                     -4.566948973167894),-                                    ("monthyear", -3.5553480614894135),-                                    ("day of month (1st)two time tokens in a row",-                                     -4.161483865059729),-                                    ("named-dayentro <time>", -5.260096153727839),-                                    ("named-daytwo time tokens in a row", -4.854631045619675),-                                    ("<ordinal> <cycle> of <time>year (1000-2100 not latent)",-                                     -5.260096153727839),-                                    ("christmasyear (1000-2100 not latent)", -4.854631045619675),-                                    ("<named-day> <day-of-month>two time tokens in a row",-                                     -4.854631045619675),-                                    ("tra il <integer> e il <integer> (interval)named-month",-                                     -4.854631045619675),-                                    ("tomorrowdopo <time>", -5.260096153727839),-                                    ("at <time-of-day>named-day", -5.260096153727839),-                                    ("intersect by \"di\", \"della\", \"del\"<day-of-month> <named-month>",-                                     -4.566948973167894),-                                    ("entro il <integer>named-month", -5.260096153727839),-                                    ("day of month (1st)named-day", -4.161483865059729),-                                    ("dayday", -2.695146796266302),-                                    ("named-daydalle <time-of-day> alle <time-of-day> (interval)",-                                     -4.854631045619675),-                                    ("il <time>year (1000-2100 not latent)", -5.260096153727839),-                                    ("intersect by \"di\", \"della\", \"del\"named-month",-                                     -4.566948973167894),-                                    ("dayyear", -3.120029990231568),-                                    ("tomorrowdalle <time-of-day> alle <time-of-day> (interval)",-                                     -5.260096153727839),-                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",-                                     -4.854631045619675),-                                    ("dd[/-]mmat <time-of-day>", -5.260096153727839),-                                    ("tomorrowdopo le <time-of-day>", -4.854631045619675),-                                    ("monthminute", -4.566948973167894),-                                    ("minutemonth", -3.7560187569515646),-                                    ("named-day<time> timezone", -5.260096153727839),-                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",-                                     -5.260096153727839),-                                    ("il <day-of-month> <named-month>at <time-of-day>",-                                     -5.260096153727839),-                                    ("named-dayin <named-month>", -4.566948973167894),-                                    ("named-day<day-of-month> <named-month>", -3.6506582412937383),-                                    ("<day-of-month> <named-month>at <time-of-day>",-                                     -4.566948973167894),-                                    ("il <day-of-month> <named-month>year (1000-2100 not latent)",-                                     -5.260096153727839),-                                    ("two time tokens separated by `di`year (1000-2100 not latent)",-                                     -4.854631045619675),-                                    ("last <cycle> of <time>year (1000-2100 not latent)",-                                     -4.566948973167894),-                                    ("day of month (1st)two time tokens separated by `di`",-                                     -4.566948973167894),-                                    ("dal <integer> al <integer> (interval)named-month",-                                     -4.854631045619675),-                                    ("il <day-of-month>named-month", -4.007333185232471),-                                    ("the day after tomorrowat <time-of-day>", -4.854631045619675),-                                    ("two time tokens in a rowyear (1000-2100 not latent)",-                                     -4.566948973167894),-                                    ("il <day-of-month>two time tokens in a row",-                                     -4.854631045619675),-                                    ("at <time-of-day>two time tokens in a row",-                                     -4.854631045619675),-                                    ("dayminute", -2.8622008809294686),-                                    ("two time tokens in a rowat <time-of-day>",-                                     -4.161483865059729),-                                    ("minuteday", -3.0628715763916197),-                                    ("two time tokens separated by `di`<day-of-month> <named-month>",-                                     -4.566948973167894),-                                    ("il <time>at <time-of-day>", -5.260096153727839),-                                    ("named-dayat <time-of-day>", -4.854631045619675),-                                    ("last <day-of-week> of <time>year (1000-2100 not latent)",-                                     -5.260096153727839),-                                    ("immacolata concezioneat <time-of-day>", -5.260096153727839),-                                    ("at <time-of-day><named-day> <day-of-month>",-                                     -5.260096153727839),-                                    ("two time tokens separated by `di`named-month",-                                     -4.566948973167894),-                                    ("weekyear", -4.854631045619675),-                                    ("named-dayentro le <time-of-day>", -5.260096153727839),-                                    ("two time tokens in a rownamed-month", -4.854631045619675),-                                    ("tomorrowat <time-of-day>", -5.260096153727839),-                                    ("two time tokens in a row<day-of-month> <named-month>",-                                     -4.854631045619675),-                                    ("named-daytra il <datetime> e il <datetime> (interval)",-                                     -4.854631045619675),-                                    ("two time tokens in a rowin <named-month>",-                                     -4.566948973167894),-                                    ("<named-day> <day-of-month>named-month", -3.6506582412937383),-                                    ("the day after tomorrowentro le <time-of-day>",-                                     -5.260096153727839),-                                    ("<day-of-month> <named-month>year (1000-2100 not latent)",-                                     -4.854631045619675),-                                    ("named-monthat <time-of-day>", -4.566948973167894),-                                    ("commemorazione dei defuntiat <time-of-day>",-                                     -5.260096153727839),-                                    ("<datetime> - <datetime> (interval)named-day",-                                     -5.260096153727839)],-                               n = 147},-                   koData =-                     ClassData{prior = -1.1716374236829996,-                               unseen = -5.4116460518550396,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>prossimi <unit-of-duration>",-                                     -4.308559482792009),-                                    ("hh(:|h)mm (time-of-day)named-day", -4.7140245909001735),-                                    ("intersect by \"di\", \"della\", \"del\"year (1000-2100 not latent)",-                                     -4.020877410340228),-                                    ("named-monthyear (1000-2100 not latent)", -4.7140245909001735),-                                    ("dayhour", -2.188295946591918),-                                    ("daymonth", -4.7140245909001735),-                                    ("monthday", -4.308559482792009),-                                    ("monthyear", -4.7140245909001735),-                                    ("named-daytwo time tokens in a row", -4.020877410340228),-                                    ("tra il <datetime> e il <datetime> (interval)named-month",-                                     -4.308559482792009),-                                    ("<named-day> <day-of-month>two time tokens in a row",-                                     -4.020877410340228),-                                    ("named-month<day-of-month> <named-month>", -4.308559482792009),-                                    ("monthhour", -3.615412302232064),-                                    ("hourmonth", -4.308559482792009),-                                    ("dayday", -4.7140245909001735),-                                    ("named-daydalle <time-of-day> alle <time-of-day> (interval)",-                                     -4.7140245909001735),-                                    ("named-monththis <part-of-day>", -4.308559482792009),-                                    ("dayyear", -3.2099471941238993),-                                    ("tomorrowdalle <time-of-day> alle <time-of-day> (interval)",-                                     -4.7140245909001735),-                                    ("tomorrowstanotte", -4.7140245909001735),-                                    ("year (1000-2100 not latent)<hour-of-day> <integer> (as relative minutes)",-                                     -4.308559482792009),-                                    ("the <cycle> of <time>named-month", -4.308559482792009),-                                    ("dd[/-]mmat <time-of-day>", -4.7140245909001735),-                                    ("tomorrowdopo le <time-of-day>", -4.308559482792009),-                                    ("monthminute", -4.7140245909001735),-                                    ("minutemonth", -4.308559482792009),-                                    ("named-daydopo <time>", -4.7140245909001735),-                                    ("il <day-of-month> <named-month>at <time-of-day>",-                                     -4.7140245909001735),-                                    ("dopo <time>at <time-of-day>", -4.7140245909001735),-                                    ("<day-of-month> <named-month>at <time-of-day>",-                                     -3.7977338590260183),-                                    ("weekmonth", -4.308559482792009),-                                    ("two time tokens separated by `di`year (1000-2100 not latent)",-                                     -4.020877410340228),-                                    ("hourweek", -4.308559482792009),-                                    ("il <day-of-month>named-month", -4.7140245909001735),-                                    ("the day after tomorrowat <time-of-day>", -4.7140245909001735),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -4.7140245909001735),-                                    ("il <day-of-month>two time tokens in a row",-                                     -4.7140245909001735),-                                    ("dayminute", -2.9222651216721185),-                                    ("two time tokens in a rowat <time-of-day>",-                                     -3.3277302297802827),-                                    ("minuteday", -4.308559482792009),-                                    ("il <time>at <time-of-day>", -4.7140245909001735),-                                    ("named-daydopo le <time-of-day>", -4.020877410340228),-                                    ("named-dayat <time-of-day>", -4.308559482792009),-                                    ("<hour-of-day> <integer> (as relative minutes)named-day",-                                     -4.7140245909001735),-                                    ("tomorrowat <time-of-day>", -4.7140245909001735),-                                    ("named-daytra il <datetime> e il <datetime> (interval)",-                                     -4.7140245909001735),-                                    ("dopo <time>year (1000-2100 not latent)", -4.308559482792009),-                                    ("<hour-of-day> and <relative minutes>named-month",-                                     -4.7140245909001735),-                                    ("named-monthat <time-of-day>", -3.7977338590260183),-                                    ("yearminute", -4.308559482792009)],-                               n = 66}}),-       ("heure (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the day after tomorrow",-        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}}),-       ("noon",-        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}}),-       ("jour (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}}),-       ("hh <relative-minutes> del pomeriggio(time-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>number (20..90)", -1.2992829841302609),-                                    ("<integer> (latent time-of-day)number (20..90)",-                                     -1.2992829841302609),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> minus quart",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.5040773967762742),-                                    ("noon", -1.0986122886681098), ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("evening",-        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}}),-       ("dd[/-]mm[/-]yyyy",-        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}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -2.0794415416798357), ("day", -0.8266785731844679),-                                    ("named-day", -1.1631508098056809),-                                    ("il <time>", -2.0794415416798357)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098)],-                               n = 1}}),-       ("christmas",-        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}}),-       ("new year's day",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.498699971920336),-                                    ("number (0..19)heure (grain)", -3.597312260588446),-                                    ("number (0..19)jour (grain)", -3.597312260588446),-                                    ("second", -2.9041650800285006),-                                    ("integer (numeric)ann\233e (grain)", -3.597312260588446),-                                    ("integer (numeric)seconde (grain)", -3.597312260588446),-                                    ("integer (numeric)jour (grain)", -3.1918471524802814),-                                    ("day", -2.9041650800285006), ("year", -2.9041650800285006),-                                    ("number (0..19)seconde (grain)", -3.1918471524802814),-                                    ("number (0..19)ann\233e (grain)", -3.1918471524802814),-                                    ("number (0..19)semaine (grain)", -3.1918471524802814),-                                    ("hour", -2.9041650800285006),-                                    ("number (0..19)mois (grain)", -2.9041650800285006),-                                    ("month", -2.344549292093078),-                                    ("integer (numeric)minute (grain)", -3.1918471524802814),-                                    ("integer (numeric)mois (grain)", -2.9041650800285006),-                                    ("minute", -2.9041650800285006),-                                    ("number (0..19)minute (grain)", -3.597312260588446),-                                    ("integer (numeric)semaine (grain)", -2.9041650800285006),-                                    ("integer (numeric)heure (grain)", -3.1918471524802814)],-                               n = 26},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("entro il <duration>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.9808292530117262),-                                    ("semaine (grain)", -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("mois (grain)", -0.9808292530117262),-                                    ("month", -0.9808292530117262)],-                               n = 2}}),-       ("prossimi <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9924301646902063),-                                    ("ann\233e (grain)", -2.3978952727983707),-                                    ("semaine (grain)", -1.9924301646902063),-                                    ("mois (grain)", -1.9924301646902063),-                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),-                                    ("jour (grain)", -1.9924301646902063),-                                    ("month", -1.9924301646902063)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("dopo <time>",-        Classifier{okData =-                     ClassData{prior = -0.9555114450274363, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.845826690498331),-                                    ("day", -1.55814461804655), ("named-day", -2.2512917986064953),-                                    ("day of month (1st)", -2.2512917986064953),-                                    ("the day after tomorrow", -2.2512917986064953),-                                    ("hour", -1.845826690498331)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.48550781578170077,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("tomorrow", -1.8325814637483102), ("day", -1.1394342831883648),-                                    ("two time tokens in a row", -1.8325814637483102),-                                    ("hour", -2.5257286443082556),-                                    ("christmas", -2.120263536200091)],-                               n = 8}}),-       ("festa della liberazione",-        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}}),-       ("dal <integer",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -0.40546510810816444)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.6931471805599453),-                                    ("number (0..19)", -0.6931471805599453)],-                               n = 4}}),-       ("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}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.55814461804655),-                                    ("<day-of-month> <named-month><day-of-month> <named-month>",-                                     -1.845826690498331),-                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",-                                     -1.55814461804655),-                                    ("dayday", -1.845826690498331)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.845826690498331),-                                    ("named-month<day-of-month> <named-month>", -1.845826690498331),-                                    ("minuteminute", -2.2512917986064953),-                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",-                                     -2.2512917986064953),-                                    ("year (1000-2100 not latent)<hour-of-day> <integer> (as relative minutes)",-                                     -1.845826690498331),-                                    ("yearminute", -1.845826690498331)],-                               n = 5}}),-       ("<day-of-month> <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.1880522315029396, unseen = -4.127134385045092,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.7096764825111559),-                                    ("month", -0.7096764825111559)],-                               n = 29},-                   koData =-                     ClassData{prior = -1.7635885922613588, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..19)named-month", -2.0149030205422647),-                                    ("integer (numeric)named-month", -0.916290731874155),-                                    ("month", -0.7621400520468967)],-                               n = 6}}),-       ("in <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("mezz'ora",-        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> entro le <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -0.8472978603872037),-                                    ("named-daynoon", -1.252762968495368),-                                    ("the day after tomorrow<integer> (latent time-of-day)",-                                     -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               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 (primo..10)named-daytwo time tokens in a row",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (primo..10)named-daychristmas", -0.916290731874155)],-                               n = 1}}),-       ("<part-of-day> of <dim time>",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -1.0986122886681098),-                                    ("morningnamed-day", -2.0149030205422647),-                                    ("morning<day-of-month> <named-month>", -1.6094379124341003),-                                    ("eveningtomorrow", -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.5108256237659907, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -0.9985288301111273),-                                    ("stanottetomorrow", -1.845826690498331),-                                    ("nighttomorrow", -1.845826690498331),-                                    ("afternoontomorrow", -1.845826690498331)],-                               n = 6}}),-       ("<dim time> del mattino",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.7047480922384253),-                                    ("<integer> (latent time-of-day)", -1.7047480922384253),-                                    ("hh(:|h)mm (time-of-day)", -1.7047480922384253),-                                    ("hour", -1.2992829841302609), ("minute", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.2809338454620642),-                                    ("jour (grain)two time tokens in a row", -1.791759469228055),-                                    ("weekmonth", -1.791759469228055),-                                    ("semaine (grain)named-month", -2.1972245773362196),-                                    ("semaine (grain)two time tokens in a row",-                                     -2.1972245773362196),-                                    ("jour (grain)named-month", -1.791759469228055)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("two time tokens separated by `di`",-        Classifier{okData =-                     ClassData{prior = -0.4274440148269396, unseen = -4.406719247264253,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)named-day", -3.295836866004329),-                                    ("named-daynamed-month", -3.295836866004329),-                                    ("hourday", -2.4485390056171257),-                                    ("day of month (1st)named-month", -3.7013019741124937),-                                    ("daymonth", -2.315007612992603),-                                    ("named-daytwo time tokens in a row", -3.7013019741124937),-                                    ("at <time-of-day>named-day", -3.295836866004329),-                                    ("two time tokens in a rowtwo time tokens in a row",-                                     -3.7013019741124937),-                                    ("dalle <time-of-day> alle <time-of-day> (interval)named-day",-                                     -3.0081547935525483),-                                    ("<integer 0 12> del <part of day>tomorrow",-                                     -3.7013019741124937),-                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",-                                     -2.7850112422383386),-                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",-                                     -3.295836866004329),-                                    ("at <time-of-day>two time tokens in a row",-                                     -3.295836866004329),-                                    ("minuteday", -1.6863989535702288),-                                    ("at <time-of-day><named-day> <day-of-month>",-                                     -3.7013019741124937),-                                    ("dayweek", -3.0081547935525483),-                                    ("two time tokens in a rownamed-month", -3.295836866004329),-                                    ("<dim time> al <part-of-day>tomorrow", -3.7013019741124937),-                                    ("named-daythis <cycle>", -3.0081547935525483),-                                    ("tra il <datetime> e il <datetime> (interval)named-day",-                                     -3.295836866004329)],-                               n = 30},-                   koData =-                     ClassData{prior = -1.0560526742493137,-                               unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)named-day", -2.871679624884012),-                                    ("named-daynamed-month", -2.3608540011180215),-                                    ("hourday", -2.178532444324067),-                                    ("daymonth", -1.890850371872286),-                                    ("named-daytwo time tokens in a row", -2.583997552432231),-                                    ("at <time-of-day>named-day", -2.178532444324067),-                                    ("stanottetomorrow", -2.871679624884012),-                                    ("minuteday", -2.3608540011180215)],-                               n = 16}}),-       ("il <day-of-month> <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1}}),-       ("morning",-        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}}),-       ("week-end",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("fino al <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh(:|h)mm (time-of-day)", -1.791759469228055),-                                    ("EOY|End of year", -1.791759469228055),-                                    ("year", -1.791759469228055),-                                    ("EOM|End of month", -1.791759469228055),-                                    ("month", -1.791759469228055), ("minute", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("right now",-        Classifier{okData =-                     ClassData{prior = -0.8754687373538999,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -0.5389965007326869,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("tre quarti d'ora",-        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 <cycle> last",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("ann\233e (grain)", -2.1972245773362196),-                                    ("semaine (grain)", -1.791759469228055),-                                    ("mois (grain)", -1.5040773967762742),-                                    ("year", -2.1972245773362196), ("month", -1.5040773967762742)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("festa del pap\224",-        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}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)integer (numeric)",-                                     -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)integer (numeric)",-                                     -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 4}}),-       ("dd-dd <month> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8971199848858813),-                                    ("semaine (grain)", -1.8971199848858813),-                                    ("mois (grain)", -1.8971199848858813),-                                    ("heure (grain)", -1.8971199848858813),-                                    ("hour", -1.8971199848858813), ("month", -1.8971199848858813)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9459101490553135),-                                    ("semaine (grain)", -1.9459101490553135),-                                    ("day", -1.540445040947149),-                                    ("jour (grain)", -1.540445040947149)],-                               n = 3}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -1.8562979903656263), ("day", -1.8562979903656263),-                                    ("hour", -1.1631508098056809), ("evening", -2.772588722239781),-                                    ("morning", -2.0794415416798357),-                                    ("week-end", -1.6739764335716716)],-                               n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/IT_XX.hs view
@@ -0,0 +1,2226 @@+-- 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.IT_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time-of-day> - <time-of-day> <day-of-month> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)<integer> (latent time-of-day)Giovedi",+                                     -1.6094379124341003),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)Giovedi",+                                     -1.6094379124341003),+                                    ("hourhourday", -1.6094379124341003),+                                    ("minuteminuteday", -1.6094379124341003)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)<integer> (latent time-of-day)Luglio",+                                     -1.3862943611198906),+                                    ("hourhourmonth", -1.3862943611198906)],+                               n = 1}}),+       ("midnight",+        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}}),+       ("the <cycle> next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("semaine (grain)", -1.3862943611198906),+                                    ("mois (grain)", -1.3862943611198906),+                                    ("month", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.0986122886681098),+                                    ("hh(:|h)mm (time-of-day)", -1.791759469228055),+                                    ("hour", -1.3862943611198906), ("minute", -1.3862943611198906)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5347411751625487,+                               unseen = -5.0689042022202315,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 157},+                   koData =+                     ClassData{prior = -0.8814567791985226, unseen = -4.727387818712341,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 111}}),+       ("the day before yesterday",+        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}}),+       ("lunch",+        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[/-]mm",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("today",+        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}}),+       ("Venerdi",+        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}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.6234672599219555, unseen = -4.770684624465665,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight", -4.069026754237811),+                                    ("<time> timezone", -4.069026754237811),+                                    ("<integer 0 12> del <part of day>", -2.68273239311792),+                                    ("<integer> (latent time-of-day)", -1.5432981099295555),+                                    ("hh(:|h)mm (time-of-day)", -2.1231166051824975),+                                    ("<hour-of-day> and <relative minutes>", -4.069026754237811),+                                    ("noon", -3.6635616461296463),+                                    ("hh <relative-minutes> del pomeriggio(time-of-day)",+                                     -3.6635616461296463),+                                    ("<hour-of-day> minus quart", -4.069026754237811),+                                    ("hour", -1.2068258733083426), ("minute", -1.8177349556313156)],+                               n = 52},+                   koData =+                     ClassData{prior = -0.768048488733063, unseen = -4.6443908991413725,+                               likelihoods =+                                 HashMap.fromList+                                   [("una", -3.9415818076696905),+                                    ("<integer> (latent time-of-day)", -1.0512100497735257),+                                    ("hh(:|h)mm (time-of-day)", -2.842969519001581),+                                    ("<hour-of-day> and <relative minutes>", -3.536116699561526),+                                    ("<hour-of-day> minus <integer> (as relative minutes)",+                                     -3.9415818076696905),+                                    ("noon", -3.9415818076696905), ("hour", -0.99714282850325),+                                    ("minute", -2.4375044108934163)],+                               n = 45}}),+       ("ann\233e (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}}),+       ("dopo le <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight", -2.0149030205422647),+                                    ("<integer> (latent time-of-day)", -1.0986122886681098),+                                    ("hour", -0.916290731874155)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.2876820724517809, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight", -2.8622008809294686),+                                    ("<integer> (latent time-of-day)", -1.0704414117014134),+                                    ("hh(:|h)mm (time-of-day)", -2.169053700369523),+                                    ("hour", -0.9903987040278769), ("minute", -2.169053700369523)],+                               n = 15}}),+       ("Giovedi",+        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}}),+       ("seconde (grain)",+        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}}),+       ("stanotte",+        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}}),+       ("Martedi",+        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}}),+       ("dal <integer> al <integer> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..19)number (0..19)", -0.6931471805599453),+                                    ("integer (numeric)integer (numeric)", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer 0 12> del <part of day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2876820724517809),+                                    ("number (0..19)", -1.3862943611198906)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("una",+        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}}),+       ("semaine (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("il <day-of-month>",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 10},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("mois (grain)",+        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}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 3}}),+       ("in|entro <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.252762968495368),+                                    ("<integer> <unit-of-duration>", -0.8472978603872037),+                                    ("minute", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2039728043259361),+                                    ("semaine (grain)", -1.2039728043259361),+                                    ("mois (grain)", -1.6094379124341003),+                                    ("month", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("epifania",+        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}}),+       ("last <time> ",+        Classifier{okData =+                     ClassData{prior = -2.8622008809294686,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.791759469228055), ("hour", -1.791759469228055),+                                    ("week-end", -1.791759469228055),+                                    ("Domenica", -1.791759469228055)],+                               n = 2},+                   koData =+                     ClassData{prior = -5.8840500022933465e-2,+                               unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9718605830289658),+                                    ("intersect by \"di\", \"della\", \"del\"", -3.20545280453606),+                                    ("day", -2.3581549441488563), ("Lunedi", -3.6109179126442243),+                                    ("hour", -0.9718605830289658),+                                    ("two time tokens separated by `di`", -3.20545280453606),+                                    ("Domenica", -3.6109179126442243)],+                               n = 33}}),+       ("Ottobre",+        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}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)jour (grain)Ottobre",+                                     -1.7047480922384253),+                                    ("daymonth", -1.7047480922384253),+                                    ("weekmonth", -1.2992829841302609),+                                    ("ordinals (primo..10)semaine (grain)two time tokens in a row",+                                     -1.7047480922384253),+                                    ("ordinals (primo..10)semaine (grain)Ottobre",+                                     -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("<time> last",+        Classifier{okData =+                     ClassData{prior = -1.791759469228055, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martedi", -1.252762968495368), ("day", -1.252762968495368)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.1823215567939546, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.6094379124341003),+                                    ("<integer> (latent time-of-day)", -1.3217558399823195),+                                    ("hour", -0.916290731874155)],+                               n = 5}}),+       ("the <ordinal> <cycle> <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarteryear", -0.6931471805599453),+                                    ("ordinals (primo..10)trimestre (grain)year (1000-2100 not latent)",+                                     -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("verso <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("evening", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("weekday", -0.9808292530117262),+                                    ("semaine (grain)<day-of-month> <named-month>",+                                     -0.9808292530117262)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("semaine (grain)<integer> (latent time-of-day)",+                                     -0.9808292530117262),+                                    ("weekhour", -0.9808292530117262)],+                               n = 2}}),+       ("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}}),+       ("in the <part-of-day> of <dim time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -0.9808292530117262),+                                    ("eveningtomorrow", -1.3862943611198906),+                                    ("morningLunedi", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -0.9808292530117262),+                                    ("nighttomorrow", -0.9808292530117262)],+                               n = 2}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarteryear", -0.6931471805599453),+                                    ("ordinals (primo..10)trimestre (grain)year (1000-2100 not latent)",+                                     -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("festa della repubblica",+        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/after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.4849066497880004),+                                    ("un quarto d'ora", -2.4849066497880004),+                                    ("<integer> <unit-of-duration>", -1.5686159179138452),+                                    ("une <unit-of-duration>", -2.4849066497880004),+                                    ("hour", -2.0794415416798357),+                                    ("mezz'ora", -2.4849066497880004),+                                    ("minute", -1.3862943611198906),+                                    ("tre quarti d'ora", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("i|le n <cycle> passati|passate",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.219507705176107,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",+                                     -3.5115454388310208),+                                    ("number (0..19)heure (grain)", -3.5115454388310208),+                                    ("number (0..19)jour (grain)", -2.8183982582710754),+                                    ("second", -3.1060803307228566),+                                    ("integer (numeric)ann\233e (grain)", -3.1060803307228566),+                                    ("integer (numeric)seconde (grain)", -3.5115454388310208),+                                    ("integer (numeric)jour (grain)", -3.1060803307228566),+                                    ("day", -2.412933150162911), ("year", -2.5952547069568657),+                                    ("number (0..19)seconde (grain)", -3.5115454388310208),+                                    ("number (0..19)ann\233e (grain)", -3.1060803307228566),+                                    ("hour", -2.2587824703356527),+                                    ("number (0..19)mois (grain)", -3.1060803307228566),+                                    ("month", -2.412933150162911),+                                    ("integer (numeric)minute (grain)", -3.5115454388310208),+                                    ("integer (numeric)mois (grain)", -2.8183982582710754),+                                    ("minute", -3.1060803307228566),+                                    ("number (0..19)minute (grain)", -3.5115454388310208),+                                    ("integer (numeric)heure (grain)", -2.5952547069568657)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("un quarto d'ora",+        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}}),+       ("Aprile",+        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}}),+       ("santo stefano",+        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}}),+       ("entro il <integer>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("stasera",+        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> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.0822184788924334,+                               unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3184537311185346),+                                    ("number (0..19)", -1.3862943611198906)],+                               n = 41},+                   koData =+                     ClassData{prior = -0.41376391092285947,+                               unseen = -4.430816798843313,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.34130316389087856),+                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+                                     -3.3202283191284883),+                                    ("number (0..19)", -1.374318170073175)],+                               n = 80}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9808292530117262),+                                    ("ordinals (primo..10)Mercoleditwo time tokens in a row",+                                     -1.6739764335716716),+                                    ("ordinals (primo..10)Marteditwo time tokens in a row",+                                     -2.0794415416798357),+                                    ("ordinals (primo..10)MartediOttobre", -1.6739764335716716)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0986122886681098),+                                    ("ordinals (primo..10)MartediSettembre", -1.791759469228055),+                                    ("ordinals (primo..10)MercolediOttobre", -1.3862943611198906)],+                               n = 3}}),+       ("Settembre",+        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}}),+       ("a quart to <integer> (as hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> notte",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("new year's eve", -1.8718021769015913),+                                    ("tomorrow", -0.9555114450274363),+                                    ("day", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Febbraio",+        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}}),+       ("intersect by \"di\", \"della\", \"del\"",+        Classifier{okData =+                     ClassData{prior = -0.41616039722491244,+                               unseen = -4.574710978503383,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)Sabato", -3.871201010907891),+                                    ("hourday", -2.6184380424125226),+                                    ("daymonth", -2.4849066497880004),+                                    ("MartediOttobre", -3.871201010907891),+                                    ("Mercoleditwo time tokens in a row", -3.871201010907891),+                                    ("hh(:|h)mm (time-of-day)<day-of-month> <named-month>",+                                     -3.871201010907891),+                                    ("two time tokens in a rowtwo time tokens in a row",+                                     -3.871201010907891),+                                    ("two time tokens in a rowOttobre", -3.4657359027997265),+                                    ("<integer 0 12> del <part of day>tomorrow",+                                     -3.871201010907891),+                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",+                                     -2.9549102790337356),+                                    ("Lunedithis <cycle>", -3.871201010907891),+                                    ("Martedithis <cycle>", -3.871201010907891),+                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",+                                     -3.4657359027997265),+                                    ("day of month (1st)Marzo", -3.871201010907891),+                                    ("MercolediOttobre", -3.871201010907891),+                                    ("at <time-of-day>two time tokens in a row",+                                     -3.4657359027997265),+                                    ("minuteday", -1.791759469228055),+                                    ("dalle <time-of-day> alle <time-of-day> (interval)Giovedi",+                                     -3.1780538303479458),+                                    ("at <time-of-day>Sabato", -3.871201010907891),+                                    ("at <time-of-day><named-day> <day-of-month>",+                                     -3.871201010907891),+                                    ("dayweek", -3.1780538303479458),+                                    ("at <time-of-day>Venerdi", -3.871201010907891),+                                    ("tra il <datetime> e il <datetime> (interval)Giovedi",+                                     -3.4657359027997265),+                                    ("<dim time> al <part-of-day>tomorrow", -3.871201010907891),+                                    ("Mercoledithis <cycle>", -3.871201010907891),+                                    ("hh(:|h)mm (time-of-day)Venerdi", -3.871201010907891)],+                               n = 31},+                   koData =+                     ClassData{prior = -1.0775588794702773, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.3978952727983707),+                                    ("daymonth", -2.1102132003465894),+                                    ("Mercoleditwo time tokens in a row", -3.4965075614664802),+                                    ("stanottetomorrow", -3.0910424533583156),+                                    ("MartediSettembre", -3.4965075614664802),+                                    ("LunediMarzo", -3.4965075614664802),+                                    ("MercolediOttobre", -3.4965075614664802),+                                    ("Marteditwo time tokens in a row", -3.4965075614664802),+                                    ("minuteday", -2.580216829592325),+                                    ("DomenicaMarzo", -3.4965075614664802),+                                    ("at <time-of-day>Giovedi", -2.3978952727983707),+                                    ("Domenicatwo time tokens in a row", -3.4965075614664802),+                                    ("hh(:|h)mm (time-of-day)Giovedi", -3.0910424533583156)],+                               n = 16}}),+       ("<hour-of-day> and a quart",+        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> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2}}),+       ("commemorazione dei defunti",+        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}}),+       ("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}}),+       ("hh(:|h)mm (time-of-day)",+        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}}),+       ("EOY|End of 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}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.4595323293784402, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -2.639057329615259),+                                    ("hour", -0.7672551527136672), ("evening", -1.1349799328389845),+                                    ("morning", -1.9459101490553135)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.9985288301111273,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.8109302162163288), ("evening", -1.791759469228055),+                                    ("morning", -1.0986122886681098)],+                               n = 7}}),+       ("circa per le <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer 0 12> del <part of day>", -1.5040773967762742),+                                    ("<integer> (latent time-of-day)", -1.0986122886681098),+                                    ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("christmas eve",+        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}}),+       ("festa del lavoro",+        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}}),+       ("Agosto",+        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}}),+       ("il week-end del <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<day-of-month> <named-month>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2231435513142097),+                                    ("number (0..19)", -1.6094379124341003)],+                               n = 13}}),+       ("entro le <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("il <day-of-month>", -2.639057329615259),+                                    ("<integer> (latent time-of-day)", -2.2335922215070942),+                                    ("hh(:|h)mm (time-of-day)", -2.639057329615259),+                                    ("EOY|End of year", -2.639057329615259),+                                    ("day", -2.639057329615259), ("year", -2.639057329615259),+                                    ("EOM|End of month", -2.639057329615259),+                                    ("noon", -2.639057329615259), ("hour", -1.9459101490553135),+                                    ("month", -2.2335922215070942), ("Marzo", -2.639057329615259),+                                    ("minute", -2.639057329615259)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -1.9459101490553135),+                                    ("hour", -1.9459101490553135)],+                               n = 1}}),+       ("new year's eve",+        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}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = -5.406722127027582e-2,+                               unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               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}}),+       ("domattina",+        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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (primo..10)",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.2188758248682006,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 23}}),+       ("the <ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)jour (grain)Ottobre",+                                     -0.6931471805599453),+                                    ("daymonth", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("gli <n> ultimi <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8109302162163288),+                                    ("number (0..19)semaine (grain)", -1.5040773967762742),+                                    ("integer (numeric)semaine (grain)", -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("tra il <integer> e il <integer> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Luglio",+        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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2809338454620642),+                                    ("ann\233e (grain)", -2.1972245773362196),+                                    ("semaine (grain)", -1.2809338454620642),+                                    ("quarter", -2.1972245773362196), ("year", -2.1972245773362196),+                                    ("trimestre (grain)", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("semaine (grain)", -1.3862943611198906)],+                               n = 1}}),+       ("minute (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}}),+       ("il <cycle> dopo <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.5040773967762742),+                                    ("dayday", -1.5040773967762742),+                                    ("mois (grain)two time tokens in a row", -1.5040773967762742),+                                    ("jour (grain)tomorrow", -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.252762968495368),+                                    ("mois (grain)christmas", -1.252762968495368)],+                               n = 1}}),+       ("night",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("tra il <datetime> e il <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8109302162163288, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.466337068793427),+                                    ("at <time-of-day>at <time-of-day>", -0.9555114450274363),+                                    ("hourhour", -1.466337068793427)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.587786664902119, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)<integer> (latent time-of-day)",+                                     -1.3217558399823195),+                                    ("at <time-of-day>at <time-of-day>", -1.6094379124341003),+                                    ("hourhour", -1.3217558399823195),+                                    ("minutehour", -1.6094379124341003)],+                               n = 5}}),+       ("gli ultimi <n> <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.343805421853684,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.2321210516182215),+                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",+                                     -3.6375861597263857),+                                    ("number (0..19)heure (grain)", -2.9444389791664407),+                                    ("number (0..19)jour (grain)", -3.2321210516182215),+                                    ("second", -3.2321210516182215),+                                    ("integer (numeric)ann\233e (grain)", -2.9444389791664407),+                                    ("integer (numeric)seconde (grain)", -3.6375861597263857),+                                    ("integer (numeric)jour (grain)", -3.2321210516182215),+                                    ("day", -2.7212954278522306), ("year", -2.538973871058276),+                                    ("number (0..19)seconde (grain)", -3.6375861597263857),+                                    ("number (0..19)ann\233e (grain)", -3.2321210516182215),+                                    ("number (0..19)semaine (grain)", -3.6375861597263857),+                                    ("hour", -2.2512917986064953),+                                    ("number (0..19)mois (grain)", -2.9444389791664407),+                                    ("month", -2.538973871058276),+                                    ("integer (numeric)minute (grain)", -3.6375861597263857),+                                    ("integer (numeric)mois (grain)", -3.2321210516182215),+                                    ("minute", -3.2321210516182215),+                                    ("number (0..19)minute (grain)", -3.6375861597263857),+                                    ("integer (numeric)semaine (grain)", -3.6375861597263857),+                                    ("integer (numeric)heure (grain)", -2.9444389791664407)],+                               n = 27},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.1354942159291497,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("le idi di <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -0.6931471805599453), ("Marzo", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (primo..10)trimestre (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 2}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5389965007326869, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.1786549963416462),+                                    ("<day-of-month> <named-month>morning", -2.5649493574615367),+                                    ("tomorrowevening", -2.5649493574615367),+                                    ("Lunedimorning", -2.159484249353372),+                                    ("tomorrowmorning", -2.5649493574615367),+                                    ("tomorrowlunch", -2.5649493574615367),+                                    ("yesterdayevening", -2.5649493574615367)],+                               n = 7},+                   koData =+                     ClassData{prior = -0.8754687373538999,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.9924301646902063),+                                    ("tomorrownight", -2.3978952727983707),+                                    ("monthhour", -1.7047480922384253),+                                    ("Febbraiothis <part-of-day>", -1.9924301646902063),+                                    ("tomorrowstanotte", -2.3978952727983707),+                                    ("Febbraiomorning", -2.3978952727983707)],+                               n = 5}}),+       ("<hour-of-day> and <relative minutes>",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>number (20..90)", -1.8718021769015913),+                                    ("<integer> (latent time-of-day)integer (numeric)",+                                     -1.466337068793427),+                                    ("<integer> (latent time-of-day)number (20..90)",+                                     -1.8718021769015913),+                                    ("hour", -0.9555114450274363)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>number (20..90)", -1.845826690498331),+                                    ("<integer> (latent time-of-day)integer (numeric)",+                                     -2.2512917986064953),+                                    ("<integer> (latent time-of-day)number (20..90)",+                                     -1.845826690498331),+                                    ("hour", -0.8649974374866046),+                                    ("<integer> (latent time-of-day)number (0..19)",+                                     -1.845826690498331)],+                               n = 7}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("LunediMarzo", -1.6094379124341003),+                                    ("DomenicaMarzo", -1.6094379124341003),+                                    ("Domenicatwo time tokens in a row", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-day> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Domenicainteger (numeric)", -2.772588722239781),+                                    ("Lunediinteger (numeric)", -2.367123614131617),+                                    ("Mercolediinteger (numeric)", -2.772588722239781),+                                    ("Sabatointeger (numeric)", -2.772588722239781),+                                    ("day", -0.9007865453381898),+                                    ("Venerdiinteger (numeric)", -1.8562979903656263),+                                    ("Giovediinteger (numeric)", -2.772588722239781),+                                    ("Martediinteger (numeric)", -2.367123614131617)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -2.9444389791664407,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.70805020110221),+                                    ("number (0..19)semaine (grain)", -2.70805020110221),+                                    ("hour", -2.70805020110221),+                                    ("integer (numeric)minute (grain)", -2.3025850929940455),+                                    ("minute", -2.3025850929940455),+                                    ("integer (numeric)heure (grain)", -2.70805020110221)],+                               n = 4},+                   koData =+                     ClassData{prior = -5.406722127027582e-2,+                               unseen = -5.117993812416755,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.3202283191284883),+                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)heure (grain)",+                                     -4.013375499688434),+                                    ("number (0..19)heure (grain)", -3.3202283191284883),+                                    ("number (0..19)jour (grain)", -3.16607763930123),+                                    ("second", -3.0325462466767075),+                                    ("integer (numeric)ann\233e (grain)", -3.16607763930123),+                                    ("integer (numeric)seconde (grain)", -3.7256934272366524),+                                    ("integer (numeric)jour (grain)", -3.16607763930123),+                                    ("day", -2.5470384308950065), ("year", -2.627081138568543),+                                    ("number (0..19)seconde (grain)", -3.5025498759224427),+                                    ("number (0..19)ann\233e (grain)", -3.3202283191284883),+                                    ("number (0..19)semaine (grain)", -4.013375499688434),+                                    ("hour", -2.278774444300327),+                                    ("number (0..19)mois (grain)", -3.0325462466767075),+                                    ("month", -2.403937587254333),+                                    ("integer (numeric)minute (grain)", -3.5025498759224427),+                                    ("integer (numeric)mois (grain)", -3.0325462466767075),+                                    ("minute", -3.0325462466767075),+                                    ("number (0..19)minute (grain)", -3.7256934272366524),+                                    ("integer (numeric)semaine (grain)", -3.7256934272366524),+                                    ("integer (numeric)heure (grain)", -2.8094026953624978)],+                               n = 72}}),+       ("immacolata concezione",+        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}}),+       ("Lunedi",+        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}}),+       ("<dim time> al <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.3746934494414107,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.413693335308005),+                                    ("<integer> (latent time-of-day)afternoon", -2.917770732084279),+                                    ("hh(:|h)mm (time-of-day)afternoon", -2.917770732084279),+                                    ("<day-of-month> <named-month>morning", -2.512305623976115),+                                    ("il <day-of-month> <named-month>morning", -2.917770732084279),+                                    ("hourhour", -2.917770732084279),+                                    ("two time tokens in a rowmorning", -2.917770732084279),+                                    ("minutehour", -2.512305623976115),+                                    ("tomorrowevening", -2.917770732084279),+                                    ("Lunedimorning", -2.512305623976115),+                                    ("il <time>morning", -2.917770732084279),+                                    ("hh(:|h)mm (time-of-day)morning", -2.917770732084279)],+                               n = 11},+                   koData =+                     ClassData{prior = -1.1631508098056809, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.5257286443082556),+                                    ("<integer> (latent time-of-day)afternoon", -2.120263536200091),+                                    ("tomorrownight", -2.5257286443082556),+                                    ("monthhour", -2.120263536200091),+                                    ("hourhour", -2.120263536200091),+                                    ("Febbraiomorning", -2.120263536200091)],+                               n = 5}}),+       ("Mercoledi",+        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}}),+       ("dal <datetime> al <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("tomorrowGiovedi", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dalle <time-of-day> alle <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.35667494393873245,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight<integer> (latent time-of-day)", -2.3978952727983707),+                                    ("minuteminute", -1.7047480922384253),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -1.7047480922384253),+                                    ("<integer> (latent time-of-day)<integer> (latent time-of-day)",+                                     -1.9924301646902063),+                                    ("hourhour", -1.4816045409242156),+                                    ("<integer> (latent time-of-day)una", -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.2039728043259361, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("minutehour", -1.252762968495368),+                                    ("hh(:|h)mm (time-of-day)<integer> (latent time-of-day)",+                                     -1.252762968495368)],+                               n = 3}}),+       ("ferragosto",+        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 (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+        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 (1st)",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -2.3978952727983707,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Sabato",+        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}}),+       ("Maggio",+        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 (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.14058195062118944,+                               unseen = -4.007333185232471,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 53},+                   koData =+                     ClassData{prior = -2.031432322493475, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("year (1000-2100 not latent)",+        Classifier{okData =+                     ClassData{prior = -0.1670540846631662,+                               unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 22},+                   koData =+                     ClassData{prior = -1.8718021769015913, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("il <time>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546, unseen = -4.060443010546419,+                               likelihoods =+                                 HashMap.fromList+                                   [("dd[/-]mm", -3.349904087274605),+                                    ("Martedi", -3.349904087274605),+                                    ("<ordinal> quarter", -3.349904087274605),+                                    ("<cycle> next", -3.349904087274605),+                                    ("<ordinal> <cycle> of <time>", -3.349904087274605),+                                    ("<ordinal> quarter <year>", -3.349904087274605),+                                    ("day", -1.3350010667323402), ("quarter", -2.9444389791664407),+                                    ("<dim time> al <part-of-day>", -3.349904087274605),+                                    ("day of month (1st)", -3.349904087274605),+                                    ("two time tokens in a row", -2.6567569067146595),+                                    ("hour", -2.9444389791664407), ("month", -3.349904087274605),+                                    ("next <time>", -2.9444389791664407),+                                    ("<day-of-month> <named-month>", -2.097141118779237),+                                    ("minute", -3.349904087274605),+                                    ("week-end", -3.349904087274605)],+                               n = 20},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> quarter", -2.5257286443082556),+                                    ("day", -2.5257286443082556), ("quarter", -2.5257286443082556),+                                    ("two time tokens in a row", -2.5257286443082556),+                                    ("hour", -2.120263536200091),+                                    ("<day-of-month> <named-month>", -2.5257286443082556),+                                    ("week-end", -2.5257286443082556)],+                               n = 4}}),+       ("entro <time>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.4423470353692043),+                                    ("il <day-of-month>", -2.4423470353692043),+                                    ("EOY|End of year", -2.4423470353692043),+                                    ("day", -2.4423470353692043), ("year", -2.4423470353692043),+                                    ("EOM|End of month", -2.4423470353692043),+                                    ("noon", -2.4423470353692043), ("hour", -2.4423470353692043),+                                    ("month", -2.03688192726104), ("Marzo", -2.4423470353692043),+                                    ("minute", -2.4423470353692043)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.8718021769015913),+                                    ("hour", -1.8718021769015913)],+                               n = 1}}),+       ("trimestre (grain)",+        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}}),+       ("Gennaio",+        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}}),+       ("ognissanti",+        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}}),+       ("<hour-of-day> minus <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("noonnumber (0..19)", -1.0986122886681098),+                                    ("at <time-of-day>number (0..19)", -1.5040773967762742),+                                    ("hour", -0.8109302162163288)],+                               n = 3}}),+       ("une <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("heure (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <cycle> ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.7047480922384253),+                                    ("ann\233e (grain)", -2.3978952727983707),+                                    ("semaine (grain)", -1.7047480922384253),+                                    ("mois (grain)", -2.3978952727983707),+                                    ("quarter", -1.9924301646902063), ("year", -2.3978952727983707),+                                    ("trimestre (grain)", -1.9924301646902063),+                                    ("month", -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("EOM|End of month",+        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 quart del pomeriggio(time-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("two time tokens in a row",+        Classifier{okData =+                     ClassData{prior = -0.3402001067352274, unseen = -6.021023349349527,+                               likelihoods =+                                 HashMap.fromList+                                   [("Lunedi<day-of-month> <named-month>", -4.919980925828125),+                                    ("<datetime> - <datetime> (interval)Giovedi",+                                     -5.32544603393629),+                                    ("intersect by \"di\", \"della\", \"del\"year (1000-2100 not latent)",+                                     -4.919980925828125),+                                    ("dayhour", -3.3105430133940246),+                                    ("Febbraioyear (1000-2100 not latent)", -5.32544603393629),+                                    ("Settembreat <time-of-day>", -4.632298853376344),+                                    ("daymonth", -2.552857311696508),+                                    ("<named-day> <day-of-month>Settembre", -4.22683374526818),+                                    ("day of month (1st)intersect by \"di\", \"della\", \"del\"",+                                     -4.632298853376344),+                                    ("Ottobreyear (1000-2100 not latent)", -4.072683065440922),+                                    ("monthyear", -3.1853798704400185),+                                    ("day of month (1st)two time tokens in a row",+                                     -4.22683374526818),+                                    ("<ordinal> <cycle> of <time>year (1000-2100 not latent)",+                                     -5.32544603393629),+                                    ("christmasyear (1000-2100 not latent)", -4.919980925828125),+                                    ("<named-day> <day-of-month>two time tokens in a row",+                                     -4.919980925828125),+                                    ("tomorrowdopo <time>", -5.32544603393629),+                                    ("Giovedidalle <time-of-day> alle <time-of-day> (interval)",+                                     -4.919980925828125),+                                    ("intersect by \"di\", \"della\", \"del\"<day-of-month> <named-month>",+                                     -4.632298853376344),+                                    ("two time tokens separated by `di`Settembre",+                                     -4.632298853376344),+                                    ("day of month (1st)Maggio", -5.32544603393629),+                                    ("tra il <integer> e il <integer> (interval)Luglio",+                                     -4.919980925828125),+                                    ("day of month (1st)Mercoledi", -5.32544603393629),+                                    ("dayday", -2.7604966764747525),+                                    ("il <time>year (1000-2100 not latent)", -5.32544603393629),+                                    ("Giovediat <time-of-day>", -5.32544603393629),+                                    ("entro il <integer>Aprile", -5.32544603393629),+                                    ("dayyear", -3.1853798704400185),+                                    ("tomorrowdalle <time-of-day> alle <time-of-day> (interval)",+                                     -5.32544603393629),+                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",+                                     -4.919980925828125),+                                    ("dd[/-]mmat <time-of-day>", -5.32544603393629),+                                    ("dal <integer> al <integer> (interval)Luglio",+                                     -4.919980925828125),+                                    ("tomorrowdopo le <time-of-day>", -4.919980925828125),+                                    ("monthminute", -4.632298853376344),+                                    ("minutemonth", -3.821368637160015),+                                    ("il <time>Marzo", -5.32544603393629),+                                    ("<named-day> <day-of-month>Febbraio", -4.409155302062135),+                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",+                                     -5.32544603393629),+                                    ("Settembreyear (1000-2100 not latent)", -4.919980925828125),+                                    ("Mercoledi<day-of-month> <named-month>", -5.32544603393629),+                                    ("il <day-of-month> <named-month>at <time-of-day>",+                                     -5.32544603393629),+                                    ("day of month (1st)Marzo", -4.919980925828125),+                                    ("Sabato<day-of-month> <named-month>", -5.32544603393629),+                                    ("il <day-of-month>Settembre", -5.32544603393629),+                                    ("Venerdi<day-of-month> <named-month>", -4.409155302062135),+                                    ("<day-of-month> <named-month>at <time-of-day>",+                                     -4.632298853376344),+                                    ("il <day-of-month> <named-month>year (1000-2100 not latent)",+                                     -5.32544603393629),+                                    ("two time tokens separated by `di`year (1000-2100 not latent)",+                                     -4.919980925828125),+                                    ("last <cycle> of <time>year (1000-2100 not latent)",+                                     -4.632298853376344),+                                    ("day of month (1st)two time tokens separated by `di`",+                                     -4.632298853376344),+                                    ("il <day-of-month>Febbraio", -4.409155302062135),+                                    ("Gennaioyear (1000-2100 not latent)", -4.632298853376344),+                                    ("the day after tomorrowat <time-of-day>", -4.919980925828125),+                                    ("two time tokens in a rowyear (1000-2100 not latent)",+                                     -4.632298853376344),+                                    ("il <day-of-month>two time tokens in a row",+                                     -4.919980925828125),+                                    ("Giovedientro <time>", -5.32544603393629),+                                    ("at <time-of-day>two time tokens in a row",+                                     -4.919980925828125),+                                    ("dayminute", -2.927550761137919),+                                    ("Venerditwo time tokens in a row", -4.919980925828125),+                                    ("two time tokens in a rowat <time-of-day>", -4.22683374526818),+                                    ("minuteday", -3.1282214566000697),+                                    ("two time tokens separated by `di`<day-of-month> <named-month>",+                                     -4.632298853376344),+                                    ("il <time>at <time-of-day>", -5.32544603393629),+                                    ("Sabatoat <time-of-day>", -5.32544603393629),+                                    ("intersect by \"di\", \"della\", \"del\"Settembre",+                                     -4.632298853376344),+                                    ("Domenica<day-of-month> <named-month>", -5.32544603393629),+                                    ("last <day-of-week> of <time>year (1000-2100 not latent)",+                                     -5.32544603393629),+                                    ("immacolata concezioneat <time-of-day>", -5.32544603393629),+                                    ("at <time-of-day><named-day> <day-of-month>",+                                     -5.32544603393629),+                                    ("day of month (1st)Martedi", -4.409155302062135),+                                    ("at <time-of-day>Venerdi", -5.32544603393629),+                                    ("weekyear", -4.919980925828125),+                                    ("Giovedi<time> timezone", -5.32544603393629),+                                    ("Gioveditra il <datetime> e il <datetime> (interval)",+                                     -4.919980925828125),+                                    ("two time tokens in a rowSettembre", -4.919980925828125),+                                    ("tomorrowat <time-of-day>", -5.32544603393629),+                                    ("two time tokens in a row<day-of-month> <named-month>",+                                     -4.919980925828125),+                                    ("Giovedientro le <time-of-day>", -5.32544603393629),+                                    ("two time tokens in a rowin <named-month>",+                                     -4.632298853376344),+                                    ("Dicembreyear (1000-2100 not latent)", -4.632298853376344),+                                    ("Marzoyear (1000-2100 not latent)", -5.32544603393629),+                                    ("Martediin <named-month>", -4.632298853376344),+                                    ("the day after tomorrowentro le <time-of-day>",+                                     -5.32544603393629),+                                    ("<day-of-month> <named-month>year (1000-2100 not latent)",+                                     -4.919980925828125),+                                    ("commemorazione dei defuntiat <time-of-day>",+                                     -5.32544603393629),+                                    ("il <day-of-month>Marzo", -5.32544603393629),+                                    ("hh(:|h)mm (time-of-day)Venerdi", -5.32544603393629)],+                               n = 153},+                   koData =+                     ClassData{prior = -1.2435036430825712, unseen = -5.438079308923196,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>prossimi <unit-of-duration>",+                                     -4.33510971488613),+                                    ("intersect by \"di\", \"della\", \"del\"year (1000-2100 not latent)",+                                     -4.047427642434349),+                                    ("dayhour", -2.214846178686039),+                                    ("Settembreat <time-of-day>", -3.8242840911201395),+                                    ("daymonth", -4.740574822994295),+                                    ("monthday", -4.33510971488613),+                                    ("monthyear", -4.740574822994295),+                                    ("Luglio<day-of-month> <named-month>", -4.740574822994295),+                                    ("<named-day> <day-of-month>two time tokens in a row",+                                     -4.047427642434349),+                                    ("Giovedidalle <time-of-day> alle <time-of-day> (interval)",+                                     -4.740574822994295),+                                    ("monthhour", -3.6419625343261846),+                                    ("hourmonth", -4.33510971488613),+                                    ("dayday", -4.740574822994295),+                                    ("Febbraiothis <part-of-day>", -4.33510971488613),+                                    ("Giovediat <time-of-day>", -4.33510971488613),+                                    ("tra il <datetime> e il <datetime> (interval)Luglio",+                                     -4.33510971488613),+                                    ("dayyear", -3.2364974262180204),+                                    ("tomorrowdalle <time-of-day> alle <time-of-day> (interval)",+                                     -4.740574822994295),+                                    ("<hour-of-day> and <relative minutes>Luglio",+                                     -4.740574822994295),+                                    ("tomorrowstanotte", -4.740574822994295),+                                    ("dd[/-]mmat <time-of-day>", -4.740574822994295),+                                    ("il <day-of-month>Luglio", -4.740574822994295),+                                    ("tomorrowdopo le <time-of-day>", -4.33510971488613),+                                    ("monthminute", -4.740574822994295),+                                    ("minutemonth", -4.740574822994295),+                                    ("il <day-of-month> <named-month>at <time-of-day>",+                                     -4.740574822994295),+                                    ("dopo <time>at <time-of-day>", -4.740574822994295),+                                    ("<day-of-month> <named-month>at <time-of-day>",+                                     -3.8242840911201395),+                                    ("weekmonth", -4.33510971488613),+                                    ("two time tokens separated by `di`year (1000-2100 not latent)",+                                     -4.047427642434349),+                                    ("hourweek", -4.33510971488613),+                                    ("the day after tomorrowat <time-of-day>", -4.740574822994295),+                                    ("il <day-of-month>two time tokens in a row",+                                     -4.740574822994295),+                                    ("Agosto<day-of-month> <named-month>", -4.740574822994295),+                                    ("dayminute", -2.9488153537662396),+                                    ("Venerditwo time tokens in a row", -4.047427642434349),+                                    ("two time tokens in a rowat <time-of-day>",+                                     -3.3542804618744038),+                                    ("minuteday", -4.740574822994295),+                                    ("il <time>at <time-of-day>", -4.740574822994295),+                                    ("Giovedidopo le <time-of-day>", -4.047427642434349),+                                    ("the <cycle> of <time>Ottobre", -4.33510971488613),+                                    ("Gioveditra il <datetime> e il <datetime> (interval)",+                                     -4.740574822994295),+                                    ("tomorrowat <time-of-day>", -4.740574822994295),+                                    ("Martedidopo <time>", -4.740574822994295),+                                    ("dopo <time>year (1000-2100 not latent)", -4.33510971488613),+                                    ("hh(:|h)mm (time-of-day)Giovedi", -4.740574822994295),+                                    ("Marzoyear (1000-2100 not latent)", -4.740574822994295)],+                               n = 62}}),+       ("heure (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the day after tomorrow",+        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}}),+       ("noon",+        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}}),+       ("jour (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}}),+       ("hh <relative-minutes> del pomeriggio(time-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>number (20..90)", -1.2992829841302609),+                                    ("<integer> (latent time-of-day)number (20..90)",+                                     -1.2992829841302609),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> minus quart",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.5040773967762742),+                                    ("noon", -1.0986122886681098), ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("evening",+        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}}),+       ("dd[/-]mm[/-]yyyy",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martedi", -1.791759469228055),+                                    ("season", -2.1972245773362196), ("day", -0.9444616088408514),+                                    ("Lunedi", -2.1972245773362196),+                                    ("Mercoledi", -2.1972245773362196),+                                    ("il <time>", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martedi", -1.3862943611198906), ("day", -1.3862943611198906)],+                               n = 1}}),+       ("christmas",+        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}}),+       ("new year's day",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.304065093204169,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.498699971920336),+                                    ("number (0..19)heure (grain)", -3.597312260588446),+                                    ("number (0..19)jour (grain)", -3.597312260588446),+                                    ("second", -2.9041650800285006),+                                    ("integer (numeric)ann\233e (grain)", -3.597312260588446),+                                    ("integer (numeric)seconde (grain)", -3.597312260588446),+                                    ("integer (numeric)jour (grain)", -3.1918471524802814),+                                    ("day", -2.9041650800285006), ("year", -2.9041650800285006),+                                    ("number (0..19)seconde (grain)", -3.1918471524802814),+                                    ("number (0..19)ann\233e (grain)", -3.1918471524802814),+                                    ("number (0..19)semaine (grain)", -3.1918471524802814),+                                    ("hour", -2.9041650800285006),+                                    ("number (0..19)mois (grain)", -2.9041650800285006),+                                    ("month", -2.344549292093078),+                                    ("integer (numeric)minute (grain)", -3.1918471524802814),+                                    ("integer (numeric)mois (grain)", -2.9041650800285006),+                                    ("minute", -2.9041650800285006),+                                    ("number (0..19)minute (grain)", -3.597312260588446),+                                    ("integer (numeric)semaine (grain)", -2.9041650800285006),+                                    ("integer (numeric)heure (grain)", -3.1918471524802814)],+                               n = 26},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("entro il <duration>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.9808292530117262),+                                    ("semaine (grain)", -0.9808292530117262)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("mois (grain)", -0.9808292530117262),+                                    ("month", -0.9808292530117262)],+                               n = 2}}),+       ("prossimi <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9924301646902063),+                                    ("ann\233e (grain)", -2.3978952727983707),+                                    ("semaine (grain)", -1.9924301646902063),+                                    ("mois (grain)", -1.9924301646902063),+                                    ("day", -1.9924301646902063), ("year", -2.3978952727983707),+                                    ("jour (grain)", -1.9924301646902063),+                                    ("month", -1.9924301646902063)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dopo <time>",+        Classifier{okData =+                     ClassData{prior = -0.9555114450274363, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.845826690498331),+                                    ("Giovedi", -2.2512917986064953), ("day", -1.55814461804655),+                                    ("day of month (1st)", -2.2512917986064953),+                                    ("the day after tomorrow", -2.2512917986064953),+                                    ("hour", -1.845826690498331)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.48550781578170077,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("tomorrow", -1.8325814637483102), ("day", -1.1394342831883648),+                                    ("two time tokens in a row", -1.8325814637483102),+                                    ("hour", -2.5257286443082556),+                                    ("christmas", -2.120263536200091)],+                               n = 8}}),+       ("festa della liberazione",+        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}}),+       ("dal <integer",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -0.40546510810816444)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.6931471805599453),+                                    ("number (0..19)", -0.6931471805599453)],+                               n = 4}}),+       ("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}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.5040773967762742),+                                    ("<day-of-month> <named-month><day-of-month> <named-month>",+                                     -1.791759469228055),+                                    ("hh(:|h)mm (time-of-day)hh(:|h)mm (time-of-day)",+                                     -1.5040773967762742),+                                    ("dayday", -1.791759469228055)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.540445040947149),+                                    ("Luglio<day-of-month> <named-month>", -1.9459101490553135),+                                    ("minuteminute", -1.9459101490553135),+                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",+                                     -1.9459101490553135),+                                    ("Agosto<day-of-month> <named-month>", -1.9459101490553135)],+                               n = 3}}),+       ("<day-of-month> <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.1880522315029396, unseen = -4.219507705176107,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Settembre", -2.12525107771113),+                                    ("integer (numeric)Aprile", -3.5115454388310208),+                                    ("integer (numeric)Agosto", -3.1060803307228566),+                                    ("integer (numeric)Ottobre", -3.1060803307228566),+                                    ("integer (numeric)Marzo", -3.1060803307228566),+                                    ("integer (numeric)Febbraio", -1.5656352897757075),+                                    ("integer (numeric)Luglio", -3.1060803307228566),+                                    ("month", -0.8034952377288106)],+                               n = 29},+                   koData =+                     ClassData{prior = -1.7635885922613588,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Aprile", -2.3513752571634776),+                                    ("integer (numeric)Luglio", -1.4350845252893227),+                                    ("month", -1.0986122886681098),+                                    ("number (0..19)Luglio", -2.3513752571634776)],+                               n = 6}}),+       ("Marzo",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("in <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Ottobre", -1.0116009116784799),+                                    ("month", -0.7884573603642702), ("Marzo", -1.7047480922384253)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mezz'ora",+        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}}),+       ("Dicembre",+        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}}),+       ("<time> entro le <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -0.8472978603872037),+                                    ("Giovedinoon", -1.252762968495368),+                                    ("the day after tomorrow<integer> (latent time-of-day)",+                                     -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               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 (primo..10)Marteditwo time tokens in a row",+                                     -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (primo..10)Martedichristmas", -0.916290731874155)],+                               n = 1}}),+       ("<part-of-day> of <dim time>",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -1.0986122886681098),+                                    ("morning<day-of-month> <named-month>", -1.6094379124341003),+                                    ("eveningtomorrow", -2.0149030205422647),+                                    ("morningLunedi", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -0.9985288301111273),+                                    ("stanottetomorrow", -1.845826690498331),+                                    ("nighttomorrow", -1.845826690498331),+                                    ("afternoontomorrow", -1.845826690498331)],+                               n = 6}}),+       ("<dim time> del mattino",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.7047480922384253),+                                    ("<integer> (latent time-of-day)", -1.7047480922384253),+                                    ("hh(:|h)mm (time-of-day)", -1.7047480922384253),+                                    ("hour", -1.2992829841302609), ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.2809338454620642),+                                    ("jour (grain)two time tokens in a row", -1.791759469228055),+                                    ("semaine (grain)Settembre", -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("semaine (grain)two time tokens in a row",+                                     -2.1972245773362196),+                                    ("jour (grain)Ottobre", -1.791759469228055)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("two time tokens separated by `di`",+        Classifier{okData =+                     ClassData{prior = -0.4274440148269396, unseen = -4.543294782270004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)Sabato", -3.8394523125933104),+                                    ("hourday", -2.5866893440979424),+                                    ("daymonth", -2.45315795147342),+                                    ("MartediOttobre", -3.8394523125933104),+                                    ("Mercoleditwo time tokens in a row", -3.8394523125933104),+                                    ("two time tokens in a rowtwo time tokens in a row",+                                     -3.8394523125933104),+                                    ("two time tokens in a rowOttobre", -3.4339872044851463),+                                    ("<integer 0 12> del <part of day>tomorrow",+                                     -3.8394523125933104),+                                    ("hh(:|h)mm (time-of-day)two time tokens in a row",+                                     -2.9231615807191553),+                                    ("Lunedithis <cycle>", -3.8394523125933104),+                                    ("Martedithis <cycle>", -3.8394523125933104),+                                    ("hh(:|h)mm (time-of-day)<named-day> <day-of-month>",+                                     -3.4339872044851463),+                                    ("day of month (1st)Marzo", -3.8394523125933104),+                                    ("MercolediOttobre", -3.8394523125933104),+                                    ("at <time-of-day>two time tokens in a row",+                                     -3.4339872044851463),+                                    ("minuteday", -1.824549292051046),+                                    ("dalle <time-of-day> alle <time-of-day> (interval)Giovedi",+                                     -3.146305132033365),+                                    ("at <time-of-day>Sabato", -3.8394523125933104),+                                    ("at <time-of-day><named-day> <day-of-month>",+                                     -3.8394523125933104),+                                    ("dayweek", -3.146305132033365),+                                    ("at <time-of-day>Venerdi", -3.8394523125933104),+                                    ("tra il <datetime> e il <datetime> (interval)Giovedi",+                                     -3.4339872044851463),+                                    ("<dim time> al <part-of-day>tomorrow", -3.8394523125933104),+                                    ("Mercoledithis <cycle>", -3.8394523125933104),+                                    ("hh(:|h)mm (time-of-day)Venerdi", -3.8394523125933104)],+                               n = 30},+                   koData =+                     ClassData{prior = -1.0560526742493137, unseen = -4.189654742026425,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.382627800667582),+                                    ("daymonth", -2.094945728215801),+                                    ("Mercoleditwo time tokens in a row", -3.481240089335692),+                                    ("stanottetomorrow", -3.0757749812275272),+                                    ("MartediSettembre", -3.481240089335692),+                                    ("LunediMarzo", -3.481240089335692),+                                    ("MercolediOttobre", -3.481240089335692),+                                    ("Marteditwo time tokens in a row", -3.481240089335692),+                                    ("minuteday", -2.5649493574615367),+                                    ("DomenicaMarzo", -3.481240089335692),+                                    ("at <time-of-day>Giovedi", -2.382627800667582),+                                    ("Domenicatwo time tokens in a row", -3.481240089335692),+                                    ("hh(:|h)mm (time-of-day)Giovedi", -3.0757749812275272)],+                               n = 16}}),+       ("il <day-of-month> <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Settembre", -2.1400661634962708),+                                    ("integer (numeric)Marzo", -2.1400661634962708),+                                    ("integer (numeric)Febbraio", -1.2237754316221157),+                                    ("month", -0.8873031950009028)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Luglio", -1.252762968495368),+                                    ("month", -1.252762968495368)],+                               n = 1}}),+       ("morning",+        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}}),+       ("week-end",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("fino al <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh(:|h)mm (time-of-day)", -1.791759469228055),+                                    ("EOY|End of year", -1.791759469228055),+                                    ("year", -1.791759469228055),+                                    ("EOM|End of month", -1.791759469228055),+                                    ("month", -1.791759469228055), ("minute", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("right now",+        Classifier{okData =+                     ClassData{prior = -0.8754687373538999,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -0.5389965007326869,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("Domenica",+        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}}),+       ("tre quarti d'ora",+        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 <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("ann\233e (grain)", -2.1972245773362196),+                                    ("semaine (grain)", -1.791759469228055),+                                    ("mois (grain)", -1.5040773967762742),+                                    ("year", -2.1972245773362196), ("month", -1.5040773967762742)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("festa del pap\224",+        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}}),+       ("<hour-of-day> <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("at <time-of-day>integer (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dd-dd <month> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Luglio", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8971199848858813),+                                    ("semaine (grain)", -1.8971199848858813),+                                    ("mois (grain)", -1.8971199848858813),+                                    ("heure (grain)", -1.8971199848858813),+                                    ("hour", -1.8971199848858813), ("month", -1.8971199848858813)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9459101490553135),+                                    ("semaine (grain)", -1.9459101490553135),+                                    ("day", -1.540445040947149),+                                    ("jour (grain)", -1.540445040947149)],+                               n = 3}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("season", -1.8562979903656263), ("day", -1.8562979903656263),+                                    ("hour", -1.1631508098056809), ("evening", -2.772588722239781),+                                    ("morning", -2.0794415416798357),+                                    ("week-end", -1.6739764335716716)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/JA.hs
@@ -1,22 +0,0 @@--- 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.JA (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/JA_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.JA_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/KA_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.KA_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/KO.hs
@@ -1,1458 +0,0 @@--- 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.KO (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> am|pm", -1.3862943611198906),-                                    ("hh:mm", -1.3862943611198906), ("hour", -1.3862943611198906),-                                    ("minute", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.4267425065554492, unseen = -4.836281906951478,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 124},-                   koData =-                     ClassData{prior = -1.0573693301340605, unseen = -4.219507705176107,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 66}}),-       ("lunch",-        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 2 numbers",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList-                                   [("compose by multiplicationinteger (21..99) - TYPE 2",-                                     -0.40546510810816444)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.3862943611198906,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer - TYPE 1: powers of teninteger (21..99) - TYPE 2",-                                     -0.40546510810816444)],-                               n = 1}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.1826954058786512),-                                    ("day-of-weekmorning", -3.4339872044851463),-                                    ("yesterdayevening|night", -3.4339872044851463),-                                    ("mm/ddafternoon", -3.4339872044851463),-                                    ("todayafternoon", -3.4339872044851463),-                                    ("dayevening|night", -3.4339872044851463),-                                    ("todayevening|night", -2.740840023925201),-                                    ("daymorning", -3.4339872044851463),-                                    ("intersectevening|night", -3.4339872044851463),-                                    ("next <cycle>evening|night", -3.028522096376982),-                                    ("tomorrowlunch", -3.4339872044851463),-                                    ("intersectmorning", -3.4339872044851463),-                                    ("the day before yesterday - \50634\44536\51228morning",-                                     -3.4339872044851463),-                                    ("tomorrowevening|night", -3.028522096376982),-                                    ("next <cycle>lunch", -3.4339872044851463)],-                               n = 18},-                   koData =-                     ClassData{prior = -0.5596157879354228, unseen = -4.31748811353631,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)lunch", -3.6109179126442243),-                                    ("dayhour", -1.8191584434161694),-                                    ("yearhour", -1.906169820405799),-                                    ("time-of-day (latent)evening|night", -3.6109179126442243),-                                    ("year (latent)evening|night", -2.512305623976115),-                                    ("hourhour", -2.917770732084279),-                                    ("time-of-day (latent)lunch", -3.6109179126442243),-                                    ("intersectafternoon", -2.10684051586795),-                                    ("year (latent)afternoon", -3.20545280453606),-                                    ("day-of-weekafternoon", -3.6109179126442243),-                                    ("next <cycle>evening|night", -3.6109179126442243),-                                    ("time-of-day (latent)afternoon", -3.6109179126442243),-                                    ("year (latent)morning", -3.20545280453606),-                                    ("tomorrowevening|night", -3.6109179126442243)],-                               n = 24}}),-       ("<time> nth <time> - 3\50900 \52395\51704 \54868\50836\51068",-        Classifier{okData =-                     ClassData{prior = -0.6190392084062235, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -0.7537718023763802),-                                    ("intersectordinals (\52395\48264\51704)day-of-week",-                                     -0.8873031950009028),-                                    ("monthordinals (\52395\48264\51704)day-of-week",-                                     -2.1400661634962708)],-                               n = 7},-                   koData =-                     ClassData{prior = -0.7731898882334817, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -0.7621400520468967),-                                    ("monthordinals (\52395\48264\51704)day-of-week",-                                     -0.7621400520468967)],-                               n = 6}}),-       ("the day before yesterday - \50634\44536\51228",-        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}}),-       ("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 = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half - \48152",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("month (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}}),-       ("<time> \47560\51648\47561 <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersectday-of-week", -1.5040773967762742),-                                    ("monthday", -0.8109302162163288),-                                    ("monthday-of-week", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer - TYPE 1",-        Classifier{okData =-                     ClassData{prior = -1.8523840910444898, unseen = -3.258096538021482,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},-                   koData =-                     ClassData{prior = -0.17062551703076334,-                               unseen = -4.875197323201151,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 129}}),-       ("fraction",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.6359887667199967),-                                    ("fractioninteger (numeric)", -1.4469189829363254),-                                    ("integer (numeric)fraction", -1.4469189829363254)],-                               n = 14}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -1.241713132308783, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -0.3409265869705932,-                               unseen = -3.5263605246161616,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 32}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.45983651189029134,-                               unseen = -5.958424693029782,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect<hour-of-day> <integer> (as relative minutes)",-                                     -5.262690188904886),-                                    ("intersectday-of-week", -4.164077900236776),-                                    ("year<time> \47560\51648\47561 <cycle>", -4.857225080796721),-                                    ("next <cycle>day-of-week", -4.3463994570307305),-                                    ("dayhour", -2.0240117367405053),-                                    ("monthday", -2.4294768448486694),-                                    ("yearhour", -3.5579420966664603),-                                    ("<time> <part-of-day>time-of-day", -4.3463994570307305),-                                    ("intersectam|pm <time-of-day>", -3.065465611568666),-                                    ("next <cycle><time-of-day> am|pm", -5.262690188904886),-                                    ("next <cycle>am|pm <time-of-day>", -4.857225080796721),-                                    ("yearintersect", -2.96010509591084),-                                    ("day-of-week<datetime> - <datetime> (interval)",-                                     -4.3463994570307305),-                                    ("day-of-week<time-of-day> - <time-of-day> (interval)",-                                     -4.3463994570307305),-                                    ("monthday with korean number - \51068\51068..\44396\51068",-                                     -5.262690188904886),-                                    ("dayday-of-week", -4.3463994570307305),-                                    ("this <cycle>day-of-week", -4.857225080796721),-                                    ("day-of-week<time> timezone", -5.262690188904886),-                                    ("monthhour", -3.5579420966664603),-                                    ("mm/ddam|pm <time-of-day>", -4.56954300834494),-                                    ("todayam|pm <time-of-day>", -4.56954300834494),-                                    ("the day before yesterday - \50634\44536\51228am|pm <time-of-day>",-                                     -4.3463994570307305),-                                    ("dayday", -3.653252276470785),-                                    ("hourhour", -3.7586127921286114),-                                    ("year<time> <ordinal> <cycle>", -5.262690188904886),-                                    ("month<datetime> - <datetime> (interval)", -4.857225080796721),-                                    ("dayam|pm <time-of-day>", -5.262690188904886),-                                    ("day-of-weekam|pm <time-of-day>", -4.56954300834494),-                                    ("time-of-dayafter <time-of-day>", -5.262690188904886),-                                    ("monthminute", -4.857225080796721),-                                    ("hourminute", -4.56954300834494),-                                    ("intersectday", -4.164077900236776),-                                    ("am|pm <time-of-day>after <time-of-day>", -5.262690188904886),-                                    ("last <cycle>day-of-week", -4.56954300834494),-                                    ("month<time> <part-of-day>", -4.857225080796721),-                                    ("yearmonth", -3.122624025408615),-                                    ("dayminute", -3.653252276470785),-                                    ("today<date>\50640", -5.262690188904886),-                                    ("mm/dd<date>\50640", -5.262690188904886),-                                    ("<hour-of-day> <integer> (as relative minutes)seconds",-                                     -5.262690188904886),-                                    ("<time> <part-of-day><date>\50640", -4.857225080796721),-                                    ("monthintersect", -3.653252276470785),-                                    ("year<time> \47560\51648\47561 <day-of-week>",-                                     -5.262690188904886),-                                    ("intersectintersect", -3.4709307196768306),-                                    ("weekday", -3.653252276470785),-                                    ("intersectday with korean number - \51068\51068..\44396\51068",-                                     -4.857225080796721),-                                    ("yearday", -3.4709307196768306),-                                    ("day-of-weekhh:mm", -4.857225080796721),-                                    ("yearweek", -4.857225080796721),-                                    ("minutesecond", -5.262690188904886),-                                    ("<time> <part-of-day><hour-of-day> <integer> (as relative minutes)",-                                     -4.857225080796721),-                                    ("tomorrow<time-of-day> am|pm", -5.262690188904886),-                                    ("tomorrowam|pm <time-of-day>", -4.857225080796721),-                                    ("dayintersect", -4.857225080796721),-                                    ("day-of-weektime-of-day", -5.262690188904886)],-                               n = 173},-                   koData =-                     ClassData{prior = -0.9980075895468108, unseen = -5.616771097666572,-                               likelihoods =-                                 HashMap.fromList-                                   [("year<time> \47560\51648\47561 <cycle>", -4.919980925828125),-                                    ("day-of-weekintersect", -4.919980925828125),-                                    ("dayhour", -2.2809235962128662),-                                    ("daymonth", -4.5145158177199605),-                                    ("monthday", -3.1282214566000697),-                                    ("yearhour", -3.2152328335897),-                                    ("<time> <part-of-day>time-of-day", -3.821368637160015),-                                    ("houryear", -4.22683374526818),-                                    ("day-of-weekafter <time-of-day>", -4.919980925828125),-                                    ("after <time-of-day>by <time> - \44620\51648",-                                     -4.919980925828125),-                                    ("intersectam|pm <time-of-day>", -4.5145158177199605),-                                    ("intersect<time> <part-of-day>", -4.00369019395397),-                                    ("yearintersect", -3.0481787489265337),-                                    ("day-of-week<time-of-day> - <time-of-day> (interval)",-                                     -4.00369019395397),-                                    ("intersectmonth", -4.919980925828125),-                                    ("time-of-day<duration> ago", -4.919980925828125),-                                    ("this <cycle>day-of-week", -4.5145158177199605),-                                    ("intersecttime-of-day", -4.5145158177199605),-                                    ("monthhour", -3.0481787489265337),-                                    ("intersectlast <time>", -4.919980925828125),-                                    ("dayday", -4.00369019395397),-                                    ("hourhour", -2.9740707767728116),-                                    ("month<datetime> - <datetime> (interval)", -4.00369019395397),-                                    ("dayam|pm <time-of-day>", -4.5145158177199605),-                                    ("day-of-weekam|pm <time-of-day>", -4.919980925828125),-                                    ("hourminute", -4.22683374526818),-                                    ("<time-of-day> - <time-of-day> (interval)last <time>",-                                     -4.00369019395397),-                                    ("intersectday", -4.5145158177199605),-                                    ("<datetime> - <datetime> (interval)day", -4.00369019395397),-                                    ("month<time> <part-of-day>", -4.5145158177199605),-                                    ("yearmonth", -4.5145158177199605),-                                    ("dayminute", -4.22683374526818),-                                    ("<hour-of-day> <integer> (as relative minutes)seconds",-                                     -4.22683374526818),-                                    ("<time> <part-of-day><date>\50640", -4.919980925828125),-                                    ("last <time>time-of-day", -4.919980925828125),-                                    ("monthintersect", -3.3105430133940246),-                                    ("hoursecond", -4.919980925828125),-                                    ("year<time> <part-of-day>", -4.5145158177199605),-                                    ("intersectintersect", -3.667217957332757),-                                    ("weekday", -4.5145158177199605),-                                    ("intersectday with korean number - \51068\51068..\44396\51068",-                                     -4.5145158177199605),-                                    ("day<time> <part-of-day>", -4.919980925828125),-                                    ("yearday", -3.821368637160015),-                                    ("day-of-weekhh:mm", -4.919980925828125),-                                    ("<time-of-day> - <time-of-day> (interval)time-of-day",-                                     -4.5145158177199605),-                                    ("intersectafter <time-of-day>", -3.415903529051851),-                                    ("minutesecond", -4.22683374526818),-                                    ("<time> <part-of-day><hour-of-day> <integer> (as relative minutes)",-                                     -4.5145158177199605),-                                    ("dayintersect", -4.919980925828125),-                                    ("mm/ddafter <time-of-day>", -4.919980925828125),-                                    ("todayafter <time-of-day>", -4.919980925828125)],-                               n = 101}}),-       ("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}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = -1.0608719606852628,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -0.42488319396526597,-                               unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.12516314295400605,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("month (grain)", -3.044522437723423),-                                    ("year (grain)", -3.044522437723423),-                                    ("week (grain)", -1.791759469228055),-                                    ("day", -1.791759469228055), ("quarter", -3.044522437723423),-                                    ("year", -3.044522437723423), ("month", -3.044522437723423),-                                    ("quarter (grain)", -3.044522437723423),-                                    ("day (grain)", -1.791759469228055)],-                               n = 15},-                   koData =-                     ClassData{prior = -2.1400661634962708, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -2.0794415416798357),-                                    ("minute (grain)", -2.0794415416798357),-                                    ("minute", -2.0794415416798357),-                                    ("day (grain)", -2.0794415416798357)],-                               n = 2}}),-       ("this <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("day-of-week", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               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 = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.9315582040049435),-                                    ("integer - TYPE 1", -0.8574502318512216),-                                    ("integer (21..99) - TYPE 2", -2.803360380906535),-                                    ("integer (1..4) - for ordinals", -2.1102132003465894)],-                               n = 29}}),-       ("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}}),-       ("evening|night",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Memorial 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}}),-       ("yesterday",-        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 (20..90) - TYPE 2 and ordinals",-        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}}),-       ("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}}),-       ("by <time> - \44620\51648",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("am|pm <time-of-day>", -1.252762968495368),-                                    ("time-of-day", -1.252762968495368),-                                    ("hour", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month>\50640",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("month", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (21..99) - TYPE 2",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (20..90) - TYPE 2 and ordinalsinteger (1..4) - for ordinals",-                                     -1.6094379124341003),-                                    ("integer - TYPE 1: powers of teninteger - TYPE 1",-                                     -1.2039728043259361),-                                    ("compose by multiplicationinteger - TYPE 1",-                                     -1.2039728043259361)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.8109302162163288,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -1.5040773967762742),-                                    ("integer - TYPE 1: powers of teninteger - TYPE 1",-                                     -1.0986122886681098),-                                    ("integer (numeric)integer - TYPE 1", -1.5040773967762742)],-                               n = 4}}),-       ("Independence Movement 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}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -0.17589066646366416,-                               unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -1.824549292051046, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("<year> <1..4>quarter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearinteger (numeric)quarter (grain)", -0.6931471805599453),-                                    ("yearquarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("christmas 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}}),-       ("Liberation 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}}),-       ("numbers prefix with -, \47560\51060\45320\49828, or \47560\51060\45208\49828",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 7}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tomorrow",-        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}}),-       ("National Foundation 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}}),-       ("ordinals (\52395\48264\51704)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (1..4) - for ordinals", -0.35667494393873245),-                                    ("integer (1..10) - TYPE 2", -1.2039728043259361)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day",-        Classifier{okData =-                     ClassData{prior = -0.2657031657330056, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -8.338160893905101e-2),-                                    ("integer - TYPE 1", -2.5257286443082556)],-                               n = 23},-                   koData =-                     ClassData{prior = -1.455287232606842, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.25131442828090605),-                                    ("integer - TYPE 1", -1.5040773967762742)],-                               n = 7}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour (grain)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 7}}),-       ("afternoon",-        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}}),-       ("integer (1..4) - for ordinals",-        Classifier{okData =-                     ClassData{prior = -3.7740327982847086e-2,-                               unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<time> <ordinal> <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthordinals (\52395\48264\51704)week (grain)",-                                     -1.252762968495368),-                                    ("monthweek", -0.8472978603872037),-                                    ("intersectordinals (\52395\48264\51704)week (grain)",-                                     -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.3862943611198906),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("week (grain)", -1.3862943611198906),-                                    ("minute (grain)", -2.0794415416798357),-                                    ("minute", -2.0794415416798357)],-                               n = 4}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = -0.6359887667199967,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -0.7537718023763802,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.252762968495368),-                                    ("time-of-day", -1.252762968495368),-                                    ("hour", -0.8472978603872037)],-                               n = 2}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -1.3596261140377293, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.6567795363890705),-                                    ("integer - TYPE 1", -2.6026896854443837),-                                    ("integer (1..4) - for ordinals", -1.6863989535702288),-                                    ("integer (1..10) - TYPE 2", -2.6026896854443837)],-                               n = 19},-                   koData =-                     ClassData{prior = -0.2967319079716989,-                               unseen = -4.1588830833596715,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.052092273033217),-                                    ("integer - TYPE 1", -0.924258901523332),-                                    ("integer (20..90) - TYPE 2 and ordinals", -3.4499875458315876),-                                    ("integer (21..99) - TYPE 2", -3.4499875458315876),-                                    ("integer (1..4) - for ordinals", -2.3513752571634776),-                                    ("integer - TYPE 1: powers of ten", -3.044522437723423),-                                    ("compose by multiplication", -3.4499875458315876)],-                               n = 55}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -1.006804739414987, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3677247801253174),-                                    ("intersect 2 numbers", -2.5649493574615367),-                                    ("integer (21..99) - TYPE 2", -2.5649493574615367)],-                               n = 19},-                   koData =-                     ClassData{prior = -0.4547361571149472, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.5533852381847867),-                                    ("intersect 2 numbers", -2.3025850929940455),-                                    ("integer - TYPE 1", -2.0794415416798357),-                                    ("fraction", -2.995732273553991),-                                    ("integer - TYPE 1: powers of ten", -2.5902671654458267),-                                    ("compose by multiplication", -2.995732273553991)],-                               n = 33}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -1.5955488002734333,-                               unseen = -4.5217885770490405,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.7191000372887952),-                                    ("integer - TYPE 1year (grain)", -3.41224721784874),-                                    ("integer (numeric)day (grain)", -2.5649493574615367),-                                    ("second", -3.817712325956905),-                                    ("integer - TYPE 1minute (grain)", -2.9014215940827497),-                                    ("integer (1..4) - for ordinalshour (grain)",-                                     -3.41224721784874),-                                    ("integer (numeric)second (grain)", -3.817712325956905),-                                    ("integer (numeric)year (grain)", -3.41224721784874),-                                    ("day", -2.5649493574615367), ("year", -2.9014215940827497),-                                    ("integer (numeric)week (grain)", -2.7191000372887952),-                                    ("hour", -2.3136349291806306),-                                    ("integer (numeric)minute (grain)", -3.817712325956905),-                                    ("few \47751hour (grain)", -2.9014215940827497),-                                    ("minute", -2.7191000372887952),-                                    ("integer (numeric)hour (grain)", -3.41224721784874)],-                               n = 29},-                   koData =-                     ClassData{prior = -0.22664618186541183,-                               unseen = -5.568344503761097,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.955082494888593),-                                    ("integer - TYPE 1quarter (grain)", -4.871373226762748),-                                    ("integer - TYPE 1day (grain)", -4.178226046202803),-                                    ("integer - TYPE 1year (grain)", -4.465908118654584),-                                    ("integer (numeric)day (grain)", -2.4290261913935436),-                                    ("intersect 2 numbersyear (grain)", -4.465908118654584),-                                    ("integer (numeric)quarter (grain)", -4.871373226762748),-                                    ("compose by multiplicationminute (grain)", -4.871373226762748),-                                    ("second", -3.7727609380946383),-                                    ("integer - TYPE 1minute (grain)", -3.7727609380946383),-                                    ("integer (1..4) - for ordinalsmonth (grain)",-                                     -4.465908118654584),-                                    ("integer (1..4) - for ordinalshour (grain)",-                                     -2.7313070632664775),-                                    ("integer (numeric)second (grain)", -4.871373226762748),-                                    ("integer (numeric)year (grain)", -2.6741486494265287),-                                    ("integer (21..99) - TYPE 2hour (grain)", -4.871373226762748),-                                    ("integer - TYPE 1week (grain)", -4.465908118654584),-                                    ("day", -2.3064238693012116), ("quarter", -4.465908118654584),-                                    ("year", -2.4290261913935436),-                                    ("integer (21..99) - TYPE 2minute (grain)", -4.178226046202803),-                                    ("integer (numeric)week (grain)", -4.465908118654584),-                                    ("integer (1..10) - TYPE 2hour (grain)", -4.871373226762748),-                                    ("hour", -1.900958761193047), ("month", -3.955082494888593),-                                    ("integer - TYPE 1second (grain)", -4.465908118654584),-                                    ("integer (numeric)minute (grain)", -3.955082494888593),-                                    ("integer (numeric)month (grain)", -4.465908118654584),-                                    ("integer (21..99) - TYPE 2year (grain)", -4.871373226762748),-                                    ("minute", -2.856470206220483),-                                    ("integer - TYPE 1: powers of tenminute (grain)",-                                     -4.871373226762748),-                                    ("integer (numeric)hour (grain)", -2.5199979695992702),-                                    ("integer (21..99) - TYPE 2second (grain)",-                                     -4.465908118654584)],-                               n = 114}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.3746934494414107, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.6486586255873816),-                                    ("hh:mm", -1.1786549963416462), ("hour", -1.6486586255873816),-                                    ("minute", -1.1786549963416462)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.1631508098056809, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.8472978603872037),-                                    ("hour", -0.8472978603872037)],-                               n = 5}}),-       ("a day - \54616\47336",-        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}}),-       ("am|pm <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.23262229526875347,-                               unseen = -4.543294782270004,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.824549292051046),-                                    ("<date>\50640", -3.146305132033365),-                                    ("time-of-day", -1.536867219599265),-                                    ("hour", -0.8437200390393196),-                                    ("<time-of-day>\51060\51204", -3.4339872044851463),-                                    ("<hour-of-day> half (as relative minutes)",-                                     -3.8394523125933104),-                                    ("minute", -3.146305132033365),-                                    ("after <time-of-day>", -3.8394523125933104),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.4339872044851463)],-                               n = 42},-                   koData =-                     ClassData{prior = -1.5723966407537513,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2367626271489267),-                                    ("time-of-day", -2.0476928433652555),-                                    ("hour", -0.9490805546971459)],-                               n = 11}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -4.445176257083381e-2,-                               unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   koData =-                     ClassData{prior = -3.1354942159291497,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("integer - TYPE 1: powers of ten",-        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 with korean number - \51068\51068..\44396\51068",-        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}}),-       ("second (grain)",-        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}}),-       ("Hangul 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}}),-       ("<integer> (hour-of-day) relative minutes \51204",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("time-of-dayinteger (21..99) - TYPE 2", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer - TYPE 1", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8971199848858813), ("day", -1.6094379124341003),-                                    ("year", -1.8971199848858813),-                                    ("<integer> <unit-of-duration>", -0.916290731874155)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.0116009116784799, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -1.0296194171811581),-                                    ("hour", -1.540445040947149), ("minute", -1.540445040947149)],-                               n = 4}}),-       ("Constitution 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}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -2.833213344056216, unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -2.03688192726104), ("hour", -2.03688192726104),-                                    ("week-end", -2.03688192726104),-                                    ("day-of-week", -2.03688192726104)],-                               n = 4},-                   koData =-                     ClassData{prior = -6.0624621816434854e-2,-                               unseen = -4.969813299576001,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -3.8642323415917974),-                                    ("year (latent)", -1.967112356705916),-                                    ("second", -3.8642323415917974),-                                    ("time-of-day (latent)", -1.9183221925364844),-                                    ("year", -1.967112356705916),-                                    ("<duration> ago", -3.8642323415917974),-                                    ("time-of-day", -2.477937980471907),-                                    ("hour", -1.1786549963416462), ("seconds", -3.8642323415917974),-                                    ("<datetime> - <datetime> (interval)", -3.8642323415917974),-                                    ("<time-of-day>\51060\51204", -3.8642323415917974),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -3.353406717825807)],-                               n = 64}}),-       ("<date>\50640",-        Classifier{okData =-                     ClassData{prior = -7.410797215372185e-2,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.824549292051046), ("day", -2.3353749158170367),-                                    ("am|pm <time-of-day>", -2.0476928433652555),-                                    ("<duration> ago", -2.740840023925201),-                                    ("time-of-day", -2.0476928433652555),-                                    ("hour", -1.0360919316867756), ("month", -2.740840023925201)],-                               n = 13},-                   koData =-                     ClassData{prior = -2.639057329615259, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.5040773967762742),-                                    ("hour", -1.5040773967762742)],-                               n = 1}}),-       ("integer (1..10) - TYPE 2",-        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}}),-       ("time-of-day",-        Classifier{okData =-                     ClassData{prior = -0.5328045304847658,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.5753641449035618),-                                    ("integer (1..4) - for ordinals", -1.1631508098056809),-                                    ("integer (1..10) - TYPE 2", -2.772588722239781)],-                               n = 27},-                   koData =-                     ClassData{prior = -0.8842024173226546,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3862943611198906),-                                    ("integer (21..99) - TYPE 2", -2.4849066497880004),-                                    ("integer (1..4) - for ordinals", -0.8754687373538999),-                                    ("few \47751", -1.5686159179138452)],-                               n = 19}}),-       ("noon",-        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 hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList [("integer (1..4) - for ordinals", 0.0)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.5040773967762742),-                                    ("<integer> <unit-of-duration>", -0.8109302162163288),-                                    ("hour", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("month",-        Classifier{okData =-                     ClassData{prior = -5.5569851154810765e-2,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -5.5569851154810765e-2),-                                    ("integer - TYPE 1", -2.917770732084279)],-                               n = 35},-                   koData =-                     ClassData{prior = -2.917770732084279, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer - TYPE 1", -0.2876820724517809)],-                               n = 2}}),-       ("midnight|EOD|end of 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}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.3862943611198906), ("month", -1.3862943611198906),-                                    ("day-of-week", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day", -1.252762968495368),-                                    ("hour", -1.252762968495368)],-                               n = 1}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.2992829841302609),-                                    ("month (grain)", -2.3978952727983707),-                                    ("year (grain)", -2.3978952727983707),-                                    ("week (grain)", -1.2992829841302609),-                                    ("year", -2.3978952727983707), ("month", -2.3978952727983707)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.0116009116784799, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("week (grain)", -1.6739764335716716),-                                    ("day", -1.6739764335716716),-                                    ("day (grain)", -1.6739764335716716)],-                               n = 4}}),-       ("christmas",-        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}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.367123614131617),-                                    ("integer - TYPE 1year (grain)", -2.772588722239781),-                                    ("integer - TYPE 1minute (grain)", -2.772588722239781),-                                    ("integer (1..4) - for ordinalsmonth (grain)",-                                     -2.772588722239781),-                                    ("integer (numeric)year (grain)", -2.772588722239781),-                                    ("integer - TYPE 1week (grain)", -2.772588722239781),-                                    ("year", -2.367123614131617),-                                    ("integer (numeric)week (grain)", -2.772588722239781),-                                    ("hour", -2.772588722239781), ("month", -2.367123614131617),-                                    ("integer (numeric)minute (grain)", -2.772588722239781),-                                    ("integer (numeric)month (grain)", -2.772588722239781),-                                    ("minute", -2.367123614131617),-                                    ("integer (numeric)hour (grain)", -2.772588722239781)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("seconds",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.916290731874155),-                                    ("integer (21..99) - TYPE 2", -0.916290731874155)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.252762968495368),-                                    ("integer - TYPE 1", -0.8472978603872037),-                                    ("integer (21..99) - TYPE 2", -1.252762968495368)],-                               n = 4}}),-       ("<time> \47560\51648\47561 <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.540445040947149),-                                    ("monthday (grain)", -1.9459101490553135),-                                    ("monthweek", -1.540445040947149),-                                    ("intersectweek (grain)", -1.9459101490553135),-                                    ("intersectday (grain)", -1.9459101490553135),-                                    ("monthweek (grain)", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.2039728043259361),-                                    ("monthday (grain)", -1.6094379124341003),-                                    ("intersectday (grain)", -1.6094379124341003)],-                               n = 2}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = -0.17589066646366416,-                               unseen = -4.1588830833596715,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.044522437723423), ("second", -3.4499875458315876),-                                    ("day", -2.5336968139574325), ("year", -3.044522437723423),-                                    ("<integer> <unit-of-duration>", -1.1986957472250923),-                                    ("a day - \54616\47336", -3.044522437723423),-                                    ("<integer> and an half hours", -2.3513752571634776),-                                    ("hour", -2.1972245773362196), ("minute", -1.6582280766035324),-                                    ("about <duration>", -3.4499875458315876)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.824549292051046, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -1.252762968495368),-                                    ("minute", -1.252762968495368)],-                               n = 5}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.46262352194811296,-                               unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -2.7300291078209855),-                                    ("intersectam|pm <time-of-day>", -2.7300291078209855),-                                    ("minuteminute", -1.749199854809259),-                                    ("hh:mmhh:mm", -2.03688192726104),-                                    ("dayday", -1.8827312474337816),-                                    ("hourhour", -2.2192034840549946),-                                    ("intersectday", -2.7300291078209855),-                                    ("am|pm <time-of-day>am|pm <time-of-day>", -2.7300291078209855),-                                    ("intersectintersect", -2.7300291078209855)],-                               n = 17},-                   koData =-                     ClassData{prior = -0.9932517730102834,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.8562979903656263),-                                    ("time-of-dayam|pm <time-of-day>", -2.367123614131617),-                                    ("intersectmonth", -2.367123614131617),-                                    ("dayday", -2.367123614131617),-                                    ("hourhour", -1.8562979903656263),-                                    ("last <time>am|pm <time-of-day>", -2.367123614131617),-                                    ("dayintersect", -2.367123614131617)],-                               n = 10}}),-       ("<time-of-day>\51060\51204",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("am|pm <time-of-day>", -1.540445040947149),-                                    ("time-of-day", -1.540445040947149),-                                    ("hour", -1.0296194171811581)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.791759469228055),-                                    ("hour", -1.791759469228055), ("minute", -1.3862943611198906),-                                    ("<hour-of-day> <integer> (as relative minutes)",-                                     -1.3862943611198906)],-                               n = 3}}),-       ("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}}),-       ("<1..4> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer - TYPE 1quarter (grain)", -0.916290731874155),-                                    ("quarter", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)quarter (grain)", -0.916290731874155),-                                    ("quarter", -0.916290731874155)],-                               n = 1}}),-       ("Children'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-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.9444616088408514, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.4271163556401458),-                                    ("hh:mmhh:mm", -1.4271163556401458),-                                    ("hourhour", -2.120263536200091),-                                    ("am|pm <time-of-day>am|pm <time-of-day>", -2.120263536200091)],-                               n = 7},-                   koData =-                     ClassData{prior = -0.49247648509779407,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-dayam|pm <time-of-day>", -2.3978952727983707),-                                    ("time-of-daytime-of-day (latent)", -2.803360380906535),-                                    ("hh:mmtime-of-day (latent)", -1.7047480922384253),-                                    ("am|pm <time-of-day>time-of-day (latent)", -2.803360380906535),-                                    ("am|pm <time-of-day><time-of-day>\51060\51204",-                                     -2.803360380906535),-                                    ("hourhour", -1.550597412411167),-                                    ("time-of-day<time-of-day>\51060\51204", -2.803360380906535),-                                    ("minutehour", -1.7047480922384253)],-                               n = 11}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5902671654458267), ("second", -2.5902671654458267),-                                    ("integer - TYPE 1minute (grain)", -2.995732273553991),-                                    ("integer (1..4) - for ordinalsmonth (grain)",-                                     -2.995732273553991),-                                    ("integer (1..4) - for ordinalshour (grain)",-                                     -2.995732273553991),-                                    ("integer (numeric)second (grain)", -2.995732273553991),-                                    ("integer (21..99) - TYPE 2hour (grain)", -2.995732273553991),-                                    ("integer - TYPE 1week (grain)", -2.995732273553991),-                                    ("integer (numeric)week (grain)", -2.995732273553991),-                                    ("hour", -2.0794415416798357), ("month", -2.5902671654458267),-                                    ("integer - TYPE 1second (grain)", -2.995732273553991),-                                    ("integer (numeric)minute (grain)", -2.995732273553991),-                                    ("integer (numeric)month (grain)", -2.995732273553991),-                                    ("minute", -2.5902671654458267),-                                    ("integer (numeric)hour (grain)", -2.5902671654458267)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> half (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        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}}),-       ("morning",-        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 = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.5040773967762742, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("lunch", -1.8718021769015913),-                                    ("time-of-day (latent)", -1.8718021769015913),-                                    ("am|pm <time-of-day>", -1.8718021769015913),-                                    ("time-of-day", -1.8718021769015913),-                                    ("hour", -0.9555114450274363)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.25131442828090605,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.7884573603642702),-                                    ("hour", -0.7884573603642702)],-                               n = 14}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = -1.1727202608218315, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -0.37037378829689427,-                               unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 29}}),-       ("the day after tomorrow - \45236\51068\47784\47112",-        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}}),-       ("compose by multiplication",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer - TYPE 1integer - TYPE 1: powers of ten", 0.0)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> and an half hours", -1.0986122886681098),-                                    ("minute", -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 1}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-daycompose by multiplication", -1.8718021769015913),-                                    ("time-of-dayinteger (numeric)", -1.8718021769015913),-                                    ("hour", -1.1786549963416462),-                                    ("time-of-dayinteger (21..99) - TYPE 2", -1.8718021769015913)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (21..99) - TYPE 2",-                                     -2.2512917986064953),-                                    ("time-of-day (latent)integer - TYPE 1", -1.55814461804655),-                                    ("time-of-day (latent)integer - TYPE 1: powers of ten",-                                     -2.2512917986064953),-                                    ("hour", -0.9985288301111273),-                                    ("time-of-dayinteger (21..99) - TYPE 2", -2.2512917986064953)],-                               n = 6}}),-       ("few \47751",-        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}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -1.466337068793427), ("day", -1.466337068793427),-                                    ("hour", -1.466337068793427), ("morning", -1.8718021769015913),-                                    ("week-end", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day-of-week",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.713572066704308,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 39},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/KO_XX.hs view
@@ -0,0 +1,1444 @@+-- 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.KO_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -1.3862943611198906),+                                    ("hh:mm", -1.3862943611198906), ("hour", -1.3862943611198906),+                                    ("minute", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.4267425065554492, unseen = -4.836281906951478,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 124},+                   koData =+                     ClassData{prior = -1.0573693301340605, unseen = -4.219507705176107,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 66}}),+       ("lunch",+        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 2 numbers",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList+                                   [("compose by multiplicationinteger (21..99) - TYPE 2",+                                     -0.40546510810816444)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.3862943611198906,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer - TYPE 1: powers of teninteger (21..99) - TYPE 2",+                                     -0.40546510810816444)],+                               n = 1}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037, unseen = -4.143134726391533,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.1826954058786512),+                                    ("day-of-weekmorning", -3.4339872044851463),+                                    ("yesterdayevening|night", -3.4339872044851463),+                                    ("mm/ddafternoon", -3.4339872044851463),+                                    ("todayafternoon", -3.4339872044851463),+                                    ("dayevening|night", -3.4339872044851463),+                                    ("todayevening|night", -2.740840023925201),+                                    ("daymorning", -3.4339872044851463),+                                    ("intersectevening|night", -3.4339872044851463),+                                    ("next <cycle>evening|night", -3.028522096376982),+                                    ("tomorrowlunch", -3.4339872044851463),+                                    ("intersectmorning", -3.4339872044851463),+                                    ("the day before yesterday - \50634\44536\51228morning",+                                     -3.4339872044851463),+                                    ("tomorrowevening|night", -3.028522096376982),+                                    ("next <cycle>lunch", -3.4339872044851463)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.5596157879354228, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)lunch", -3.6109179126442243),+                                    ("dayhour", -1.8191584434161694),+                                    ("yearhour", -1.906169820405799),+                                    ("time-of-day (latent)evening|night", -3.6109179126442243),+                                    ("year (latent)evening|night", -2.512305623976115),+                                    ("hourhour", -2.917770732084279),+                                    ("time-of-day (latent)lunch", -3.6109179126442243),+                                    ("intersectafternoon", -2.10684051586795),+                                    ("year (latent)afternoon", -3.20545280453606),+                                    ("day-of-weekafternoon", -3.6109179126442243),+                                    ("next <cycle>evening|night", -3.6109179126442243),+                                    ("time-of-day (latent)afternoon", -3.6109179126442243),+                                    ("year (latent)morning", -3.20545280453606),+                                    ("tomorrowevening|night", -3.6109179126442243)],+                               n = 24}}),+       ("<time> nth <time> - 3\50900 \52395\51704 \54868\50836\51068",+        Classifier{okData =+                     ClassData{prior = -0.6190392084062235, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -0.7537718023763802),+                                    ("intersectordinals (\52395\48264\51704)day-of-week",+                                     -0.8873031950009028),+                                    ("monthordinals (\52395\48264\51704)day-of-week",+                                     -2.1400661634962708)],+                               n = 7},+                   koData =+                     ClassData{prior = -0.7731898882334817, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -0.7621400520468967),+                                    ("monthordinals (\52395\48264\51704)day-of-week",+                                     -0.7621400520468967)],+                               n = 6}}),+       ("the day before yesterday - \50634\44536\51228",+        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}}),+       ("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 = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half - \48152",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("month (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}}),+       ("<time> \47560\51648\47561 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersectday-of-week", -1.5040773967762742),+                                    ("monthday", -0.8109302162163288),+                                    ("monthday-of-week", -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer - TYPE 1",+        Classifier{okData =+                     ClassData{prior = -1.8523840910444898, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.17062551703076334,+                               unseen = -4.875197323201151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 129}}),+       ("fraction",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.6359887667199967),+                                    ("fractioninteger (numeric)", -1.4469189829363254),+                                    ("integer (numeric)fraction", -1.4469189829363254)],+                               n = 14}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -1.241713132308783, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -0.3409265869705932,+                               unseen = -3.5263605246161616,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 32}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4488272263819219, unseen = -5.958424693029782,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect<hour-of-day> <integer> (as relative minutes)",+                                     -5.262690188904886),+                                    ("intersectday-of-week", -4.164077900236776),+                                    ("year<time> \47560\51648\47561 <cycle>", -4.857225080796721),+                                    ("next <cycle>day-of-week", -4.3463994570307305),+                                    ("dayhour", -2.0240117367405053),+                                    ("monthday", -2.4294768448486694),+                                    ("yearhour", -3.5579420966664603),+                                    ("<time> <part-of-day>time-of-day", -4.3463994570307305),+                                    ("intersectam|pm <time-of-day>", -3.065465611568666),+                                    ("next <cycle><time-of-day> am|pm", -5.262690188904886),+                                    ("next <cycle>am|pm <time-of-day>", -4.857225080796721),+                                    ("yearintersect", -2.96010509591084),+                                    ("day-of-week<datetime> - <datetime> (interval)",+                                     -4.3463994570307305),+                                    ("day-of-week<time-of-day> - <time-of-day> (interval)",+                                     -4.3463994570307305),+                                    ("monthday with korean number - \51068\51068..\44396\51068",+                                     -5.262690188904886),+                                    ("dayday-of-week", -4.3463994570307305),+                                    ("this <cycle>day-of-week", -4.857225080796721),+                                    ("day-of-week<time> timezone", -5.262690188904886),+                                    ("monthhour", -3.5579420966664603),+                                    ("mm/ddam|pm <time-of-day>", -4.56954300834494),+                                    ("todayam|pm <time-of-day>", -4.56954300834494),+                                    ("the day before yesterday - \50634\44536\51228am|pm <time-of-day>",+                                     -4.3463994570307305),+                                    ("dayday", -3.653252276470785),+                                    ("hourhour", -3.7586127921286114),+                                    ("year<time> <ordinal> <cycle>", -5.262690188904886),+                                    ("month<datetime> - <datetime> (interval)", -4.857225080796721),+                                    ("dayam|pm <time-of-day>", -5.262690188904886),+                                    ("day-of-weekam|pm <time-of-day>", -4.56954300834494),+                                    ("time-of-dayafter <time-of-day>", -5.262690188904886),+                                    ("monthminute", -4.857225080796721),+                                    ("hourminute", -4.56954300834494),+                                    ("intersectday", -4.164077900236776),+                                    ("am|pm <time-of-day>after <time-of-day>", -5.262690188904886),+                                    ("last <cycle>day-of-week", -4.56954300834494),+                                    ("month<time> <part-of-day>", -4.857225080796721),+                                    ("yearmonth", -3.122624025408615),+                                    ("dayminute", -3.653252276470785),+                                    ("today<date>\50640", -5.262690188904886),+                                    ("mm/dd<date>\50640", -5.262690188904886),+                                    ("<hour-of-day> <integer> (as relative minutes)seconds",+                                     -5.262690188904886),+                                    ("<time> <part-of-day><date>\50640", -4.857225080796721),+                                    ("monthintersect", -3.653252276470785),+                                    ("year<time> \47560\51648\47561 <day-of-week>",+                                     -5.262690188904886),+                                    ("intersectintersect", -3.4709307196768306),+                                    ("weekday", -3.653252276470785),+                                    ("intersectday with korean number - \51068\51068..\44396\51068",+                                     -4.857225080796721),+                                    ("yearday", -3.4709307196768306),+                                    ("day-of-weekhh:mm", -4.857225080796721),+                                    ("yearweek", -4.857225080796721),+                                    ("minutesecond", -5.262690188904886),+                                    ("<time> <part-of-day><hour-of-day> <integer> (as relative minutes)",+                                     -4.857225080796721),+                                    ("tomorrow<time-of-day> am|pm", -5.262690188904886),+                                    ("tomorrowam|pm <time-of-day>", -4.857225080796721),+                                    ("dayintersect", -4.857225080796721),+                                    ("day-of-weektime-of-day", -5.262690188904886)],+                               n = 173},+                   koData =+                     ClassData{prior = -1.017151342209129, unseen = -5.594711379601839,+                               likelihoods =+                                 HashMap.fromList+                                   [("year<time> \47560\51648\47561 <cycle>", -4.897839799950911),+                                    ("day-of-weekintersect", -4.897839799950911),+                                    ("dayhour", -2.2587824703356527),+                                    ("daymonth", -4.492374691842747),+                                    ("monthday", -3.1060803307228566),+                                    ("yearhour", -3.1930917077124863),+                                    ("<time> <part-of-day>time-of-day", -3.7992275112828016),+                                    ("houryear", -4.204692619390966),+                                    ("day-of-weekafter <time-of-day>", -4.897839799950911),+                                    ("after <time-of-day>by <time> - \44620\51648",+                                     -4.897839799950911),+                                    ("intersectam|pm <time-of-day>", -4.492374691842747),+                                    ("intersect<time> <part-of-day>", -3.9815490680767565),+                                    ("yearintersect", -3.02603762304932),+                                    ("day-of-week<time-of-day> - <time-of-day> (interval)",+                                     -3.9815490680767565),+                                    ("intersectmonth", -4.897839799950911),+                                    ("time-of-day<duration> ago", -4.897839799950911),+                                    ("this <cycle>day-of-week", -4.492374691842747),+                                    ("intersecttime-of-day", -4.492374691842747),+                                    ("monthhour", -3.02603762304932),+                                    ("intersectlast <time>", -4.897839799950911),+                                    ("dayday", -3.9815490680767565),+                                    ("hourhour", -2.951929650895598),+                                    ("month<datetime> - <datetime> (interval)",+                                     -3.9815490680767565),+                                    ("dayam|pm <time-of-day>", -4.492374691842747),+                                    ("day-of-weekam|pm <time-of-day>", -4.897839799950911),+                                    ("hourminute", -4.204692619390966),+                                    ("<time-of-day> - <time-of-day> (interval)last <time>",+                                     -3.9815490680767565),+                                    ("intersectday", -4.492374691842747),+                                    ("<datetime> - <datetime> (interval)day", -3.9815490680767565),+                                    ("month<time> <part-of-day>", -4.492374691842747),+                                    ("yearmonth", -4.492374691842747),+                                    ("dayminute", -4.204692619390966),+                                    ("<time> <part-of-day><date>\50640", -4.897839799950911),+                                    ("last <time>time-of-day", -4.897839799950911),+                                    ("monthintersect", -3.288401887516811),+                                    ("hoursecond", -4.897839799950911),+                                    ("year<time> <part-of-day>", -4.492374691842747),+                                    ("intersectintersect", -3.6450768314555435),+                                    ("weekday", -4.492374691842747),+                                    ("intersectday with korean number - \51068\51068..\44396\51068",+                                     -4.492374691842747),+                                    ("day<time> <part-of-day>", -4.897839799950911),+                                    ("yearday", -3.7992275112828016),+                                    ("day-of-weekhh:mm", -4.897839799950911),+                                    ("<time-of-day> - <time-of-day> (interval)time-of-day",+                                     -4.492374691842747),+                                    ("intersectafter <time-of-day>", -3.3937624031746374),+                                    ("<time> <part-of-day><hour-of-day> <integer> (as relative minutes)",+                                     -4.492374691842747),+                                    ("dayintersect", -4.897839799950911),+                                    ("mm/ddafter <time-of-day>", -4.897839799950911),+                                    ("todayafter <time-of-day>", -4.897839799950911)],+                               n = 98}}),+       ("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}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = -1.0608719606852628,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -0.42488319396526597,+                               unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.12516314295400605,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("month (grain)", -3.044522437723423),+                                    ("year (grain)", -3.044522437723423),+                                    ("week (grain)", -1.791759469228055),+                                    ("day", -1.791759469228055), ("quarter", -3.044522437723423),+                                    ("year", -3.044522437723423), ("month", -3.044522437723423),+                                    ("quarter (grain)", -3.044522437723423),+                                    ("day (grain)", -1.791759469228055)],+                               n = 15},+                   koData =+                     ClassData{prior = -2.1400661634962708, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -2.0794415416798357),+                                    ("minute (grain)", -2.0794415416798357),+                                    ("minute", -2.0794415416798357),+                                    ("day (grain)", -2.0794415416798357)],+                               n = 2}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("day-of-week", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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 = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.9315582040049435),+                                    ("integer - TYPE 1", -0.8574502318512216),+                                    ("integer (21..99) - TYPE 2", -2.803360380906535),+                                    ("integer (1..4) - for ordinals", -2.1102132003465894)],+                               n = 29}}),+       ("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}}),+       ("evening|night",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Memorial 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}}),+       ("yesterday",+        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 (20..90) - TYPE 2 and ordinals",+        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}}),+       ("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}}),+       ("by <time> - \44620\51648",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("am|pm <time-of-day>", -1.252762968495368),+                                    ("time-of-day", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month>\50640",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("month", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (21..99) - TYPE 2",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (20..90) - TYPE 2 and ordinalsinteger (1..4) - for ordinals",+                                     -1.6094379124341003),+                                    ("integer - TYPE 1: powers of teninteger - TYPE 1",+                                     -1.2039728043259361),+                                    ("compose by multiplicationinteger - TYPE 1",+                                     -1.2039728043259361)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.8109302162163288,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -1.5040773967762742),+                                    ("integer - TYPE 1: powers of teninteger - TYPE 1",+                                     -1.0986122886681098),+                                    ("integer (numeric)integer - TYPE 1", -1.5040773967762742)],+                               n = 4}}),+       ("Independence Movement 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}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.17589066646366416,+                               unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},+                   koData =+                     ClassData{prior = -1.824549292051046, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("<year> <1..4>quarter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearinteger (numeric)quarter (grain)", -0.6931471805599453),+                                    ("yearquarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("christmas 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}}),+       ("Liberation 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}}),+       ("numbers prefix with -, \47560\51060\45320\49828, or \47560\51060\45208\49828",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 7}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tomorrow",+        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}}),+       ("National Foundation 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}}),+       ("ordinals (\52395\48264\51704)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (1..4) - for ordinals", -0.35667494393873245),+                                    ("integer (1..10) - TYPE 2", -1.2039728043259361)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day",+        Classifier{okData =+                     ClassData{prior = -0.2657031657330056, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -8.338160893905101e-2),+                                    ("integer - TYPE 1", -2.5257286443082556)],+                               n = 23},+                   koData =+                     ClassData{prior = -1.455287232606842, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.25131442828090605),+                                    ("integer - TYPE 1", -1.5040773967762742)],+                               n = 7}}),+       ("half an hour",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 7}}),+       ("afternoon",+        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}}),+       ("integer (1..4) - for ordinals",+        Classifier{okData =+                     ClassData{prior = -3.7740327982847086e-2,+                               unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},+                   koData =+                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<time> <ordinal> <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthordinals (\52395\48264\51704)week (grain)",+                                     -1.252762968495368),+                                    ("monthweek", -0.8472978603872037),+                                    ("intersectordinals (\52395\48264\51704)week (grain)",+                                     -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.3862943611198906),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("week (grain)", -1.3862943611198906),+                                    ("minute (grain)", -2.0794415416798357),+                                    ("minute", -2.0794415416798357)],+                               n = 4}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = -0.6359887667199967,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -0.7537718023763802,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.252762968495368),+                                    ("time-of-day", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -1.289667525430819, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.579818495252942),+                                    ("integer - TYPE 1", -2.5257286443082556),+                                    ("integer (1..4) - for ordinals", -1.6094379124341003),+                                    ("integer (1..10) - TYPE 2", -2.5257286443082556)],+                               n = 19},+                   koData =+                     ClassData{prior = -0.32208349916911333, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.9343092373768334),+                                    ("integer - TYPE 1", -0.8898574748059995),+                                    ("integer (20..90) - TYPE 2 and ordinals", -3.332204510175204),+                                    ("integer (21..99) - TYPE 2", -3.332204510175204),+                                    ("integer (1..4) - for ordinals", -2.2335922215070942)],+                               n = 50}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -1.006804739414987, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3677247801253174),+                                    ("intersect 2 numbers", -2.5649493574615367),+                                    ("integer (21..99) - TYPE 2", -2.5649493574615367)],+                               n = 19},+                   koData =+                     ClassData{prior = -0.4547361571149472, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5533852381847867),+                                    ("intersect 2 numbers", -2.3025850929940455),+                                    ("integer - TYPE 1", -2.0794415416798357),+                                    ("fraction", -2.995732273553991),+                                    ("integer - TYPE 1: powers of ten", -2.5902671654458267),+                                    ("compose by multiplication", -2.995732273553991)],+                               n = 33}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -1.5955488002734333,+                               unseen = -4.5217885770490405,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.7191000372887952),+                                    ("integer - TYPE 1year (grain)", -3.41224721784874),+                                    ("integer (numeric)day (grain)", -2.5649493574615367),+                                    ("second", -3.817712325956905),+                                    ("integer - TYPE 1minute (grain)", -2.9014215940827497),+                                    ("integer (1..4) - for ordinalshour (grain)",+                                     -3.41224721784874),+                                    ("integer (numeric)second (grain)", -3.817712325956905),+                                    ("integer (numeric)year (grain)", -3.41224721784874),+                                    ("day", -2.5649493574615367), ("year", -2.9014215940827497),+                                    ("integer (numeric)week (grain)", -2.7191000372887952),+                                    ("hour", -2.3136349291806306),+                                    ("integer (numeric)minute (grain)", -3.817712325956905),+                                    ("few \47751hour (grain)", -2.9014215940827497),+                                    ("minute", -2.7191000372887952),+                                    ("integer (numeric)hour (grain)", -3.41224721784874)],+                               n = 29},+                   koData =+                     ClassData{prior = -0.22664618186541183,+                               unseen = -5.568344503761097,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.955082494888593),+                                    ("integer - TYPE 1quarter (grain)", -4.871373226762748),+                                    ("integer - TYPE 1day (grain)", -4.178226046202803),+                                    ("integer - TYPE 1year (grain)", -4.465908118654584),+                                    ("integer (numeric)day (grain)", -2.4290261913935436),+                                    ("intersect 2 numbersyear (grain)", -4.465908118654584),+                                    ("integer (numeric)quarter (grain)", -4.871373226762748),+                                    ("compose by multiplicationminute (grain)", -4.871373226762748),+                                    ("second", -3.7727609380946383),+                                    ("integer - TYPE 1minute (grain)", -3.7727609380946383),+                                    ("integer (1..4) - for ordinalsmonth (grain)",+                                     -4.465908118654584),+                                    ("integer (1..4) - for ordinalshour (grain)",+                                     -2.7313070632664775),+                                    ("integer (numeric)second (grain)", -4.871373226762748),+                                    ("integer (numeric)year (grain)", -2.6741486494265287),+                                    ("integer (21..99) - TYPE 2hour (grain)", -4.871373226762748),+                                    ("integer - TYPE 1week (grain)", -4.465908118654584),+                                    ("day", -2.3064238693012116), ("quarter", -4.465908118654584),+                                    ("year", -2.4290261913935436),+                                    ("integer (21..99) - TYPE 2minute (grain)", -4.178226046202803),+                                    ("integer (numeric)week (grain)", -4.465908118654584),+                                    ("integer (1..10) - TYPE 2hour (grain)", -4.871373226762748),+                                    ("hour", -1.900958761193047), ("month", -3.955082494888593),+                                    ("integer - TYPE 1second (grain)", -4.465908118654584),+                                    ("integer (numeric)minute (grain)", -3.955082494888593),+                                    ("integer (numeric)month (grain)", -4.465908118654584),+                                    ("integer (21..99) - TYPE 2year (grain)", -4.871373226762748),+                                    ("minute", -2.856470206220483),+                                    ("integer - TYPE 1: powers of tenminute (grain)",+                                     -4.871373226762748),+                                    ("integer (numeric)hour (grain)", -2.5199979695992702),+                                    ("integer (21..99) - TYPE 2second (grain)",+                                     -4.465908118654584)],+                               n = 114}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.3746934494414107, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.6486586255873816),+                                    ("hh:mm", -1.1786549963416462), ("hour", -1.6486586255873816),+                                    ("minute", -1.1786549963416462)],+                               n = 11},+                   koData =+                     ClassData{prior = -1.1631508098056809, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8472978603872037),+                                    ("hour", -0.8472978603872037)],+                               n = 5}}),+       ("a day - \54616\47336",+        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}}),+       ("am|pm <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.23262229526875347,+                               unseen = -4.543294782270004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.824549292051046),+                                    ("<date>\50640", -3.146305132033365),+                                    ("time-of-day", -1.536867219599265),+                                    ("hour", -0.8437200390393196),+                                    ("<time-of-day>\51060\51204", -3.4339872044851463),+                                    ("<hour-of-day> half (as relative minutes)",+                                     -3.8394523125933104),+                                    ("minute", -3.146305132033365),+                                    ("after <time-of-day>", -3.8394523125933104),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -3.4339872044851463)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.5723966407537513,+                               unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2367626271489267),+                                    ("time-of-day", -2.0476928433652555),+                                    ("hour", -0.9490805546971459)],+                               n = 11}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -4.445176257083381e-2,+                               unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},+                   koData =+                     ClassData{prior = -3.1354942159291497,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("integer - TYPE 1: powers of ten",+        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 with korean number - \51068\51068..\44396\51068",+        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}}),+       ("second (grain)",+        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}}),+       ("Hangul 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}}),+       ("<integer> (hour-of-day) relative minutes \51204",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("time-of-dayinteger (21..99) - TYPE 2", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8971199848858813), ("day", -1.6094379124341003),+                                    ("year", -1.8971199848858813),+                                    ("<integer> <unit-of-duration>", -0.916290731874155)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.0296194171811581),+                                    ("hour", -1.540445040947149), ("minute", -1.540445040947149)],+                               n = 4}}),+       ("Constitution 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}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -2.833213344056216, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -2.03688192726104), ("hour", -2.03688192726104),+                                    ("week-end", -2.03688192726104),+                                    ("day-of-week", -2.03688192726104)],+                               n = 4},+                   koData =+                     ClassData{prior = -6.0624621816434854e-2,+                               unseen = -4.969813299576001,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -3.8642323415917974),+                                    ("year (latent)", -1.967112356705916),+                                    ("second", -3.8642323415917974),+                                    ("time-of-day (latent)", -1.9183221925364844),+                                    ("year", -1.967112356705916),+                                    ("<duration> ago", -3.8642323415917974),+                                    ("time-of-day", -2.477937980471907),+                                    ("hour", -1.1786549963416462), ("seconds", -3.8642323415917974),+                                    ("<datetime> - <datetime> (interval)", -3.8642323415917974),+                                    ("<time-of-day>\51060\51204", -3.8642323415917974),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -3.353406717825807)],+                               n = 64}}),+       ("<date>\50640",+        Classifier{okData =+                     ClassData{prior = -7.410797215372185e-2,+                               unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.824549292051046), ("day", -2.3353749158170367),+                                    ("am|pm <time-of-day>", -2.0476928433652555),+                                    ("<duration> ago", -2.740840023925201),+                                    ("time-of-day", -2.0476928433652555),+                                    ("hour", -1.0360919316867756), ("month", -2.740840023925201)],+                               n = 13},+                   koData =+                     ClassData{prior = -2.639057329615259, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.5040773967762742),+                                    ("hour", -1.5040773967762742)],+                               n = 1}}),+       ("integer (1..10) - TYPE 2",+        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}}),+       ("time-of-day",+        Classifier{okData =+                     ClassData{prior = -0.5328045304847658,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5753641449035618),+                                    ("integer (1..4) - for ordinals", -1.1631508098056809),+                                    ("integer (1..10) - TYPE 2", -2.772588722239781)],+                               n = 27},+                   koData =+                     ClassData{prior = -0.8842024173226546,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.3862943611198906),+                                    ("integer (21..99) - TYPE 2", -2.4849066497880004),+                                    ("integer (1..4) - for ordinals", -0.8754687373538999),+                                    ("few \47751", -1.5686159179138452)],+                               n = 19}}),+       ("noon",+        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 hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList [("integer (1..4) - for ordinals", 0.0)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.5040773967762742),+                                    ("<integer> <unit-of-duration>", -0.8109302162163288),+                                    ("hour", -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("month",+        Classifier{okData =+                     ClassData{prior = -5.5569851154810765e-2,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -5.5569851154810765e-2),+                                    ("integer - TYPE 1", -2.917770732084279)],+                               n = 35},+                   koData =+                     ClassData{prior = -2.917770732084279, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer - TYPE 1", -0.2876820724517809)],+                               n = 2}}),+       ("midnight|EOD|end of 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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.3862943611198906), ("month", -1.3862943611198906),+                                    ("day-of-week", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day", -1.252762968495368),+                                    ("hour", -1.252762968495368)],+                               n = 1}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2992829841302609),+                                    ("month (grain)", -2.3978952727983707),+                                    ("year (grain)", -2.3978952727983707),+                                    ("week (grain)", -1.2992829841302609),+                                    ("year", -2.3978952727983707), ("month", -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("week (grain)", -1.6739764335716716),+                                    ("day", -1.6739764335716716),+                                    ("day (grain)", -1.6739764335716716)],+                               n = 4}}),+       ("christmas",+        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}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.367123614131617),+                                    ("integer - TYPE 1year (grain)", -2.772588722239781),+                                    ("integer - TYPE 1minute (grain)", -2.772588722239781),+                                    ("integer (1..4) - for ordinalsmonth (grain)",+                                     -2.772588722239781),+                                    ("integer (numeric)year (grain)", -2.772588722239781),+                                    ("integer - TYPE 1week (grain)", -2.772588722239781),+                                    ("year", -2.367123614131617),+                                    ("integer (numeric)week (grain)", -2.772588722239781),+                                    ("hour", -2.772588722239781), ("month", -2.367123614131617),+                                    ("integer (numeric)minute (grain)", -2.772588722239781),+                                    ("integer (numeric)month (grain)", -2.772588722239781),+                                    ("minute", -2.367123614131617),+                                    ("integer (numeric)hour (grain)", -2.772588722239781)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("seconds",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.916290731874155),+                                    ("integer (21..99) - TYPE 2", -0.916290731874155)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.252762968495368),+                                    ("integer - TYPE 1", -0.8472978603872037),+                                    ("integer (21..99) - TYPE 2", -1.252762968495368)],+                               n = 4}}),+       ("<time> \47560\51648\47561 <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.540445040947149),+                                    ("monthday (grain)", -1.9459101490553135),+                                    ("monthweek", -1.540445040947149),+                                    ("intersectweek (grain)", -1.9459101490553135),+                                    ("intersectday (grain)", -1.9459101490553135),+                                    ("monthweek (grain)", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.2039728043259361),+                                    ("monthday (grain)", -1.6094379124341003),+                                    ("intersectday (grain)", -1.6094379124341003)],+                               n = 2}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = -0.17589066646366416,+                               unseen = -4.1588830833596715,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.044522437723423), ("second", -3.4499875458315876),+                                    ("day", -2.5336968139574325), ("year", -3.044522437723423),+                                    ("<integer> <unit-of-duration>", -1.1986957472250923),+                                    ("a day - \54616\47336", -3.044522437723423),+                                    ("<integer> and an half hours", -2.3513752571634776),+                                    ("hour", -2.1972245773362196), ("minute", -1.6582280766035324),+                                    ("about <duration>", -3.4499875458315876)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.824549292051046, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -1.252762968495368),+                                    ("minute", -1.252762968495368)],+                               n = 5}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.46262352194811296,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -2.7300291078209855),+                                    ("intersectam|pm <time-of-day>", -2.7300291078209855),+                                    ("minuteminute", -1.749199854809259),+                                    ("hh:mmhh:mm", -2.03688192726104),+                                    ("dayday", -1.8827312474337816),+                                    ("hourhour", -2.2192034840549946),+                                    ("intersectday", -2.7300291078209855),+                                    ("am|pm <time-of-day>am|pm <time-of-day>", -2.7300291078209855),+                                    ("intersectintersect", -2.7300291078209855)],+                               n = 17},+                   koData =+                     ClassData{prior = -0.9932517730102834,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.8562979903656263),+                                    ("time-of-dayam|pm <time-of-day>", -2.367123614131617),+                                    ("intersectmonth", -2.367123614131617),+                                    ("dayday", -2.367123614131617),+                                    ("hourhour", -1.8562979903656263),+                                    ("last <time>am|pm <time-of-day>", -2.367123614131617),+                                    ("dayintersect", -2.367123614131617)],+                               n = 10}}),+       ("<time-of-day>\51060\51204",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("am|pm <time-of-day>", -1.540445040947149),+                                    ("time-of-day", -1.540445040947149),+                                    ("hour", -1.0296194171811581)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.6094379124341003),+                                    ("hour", -1.6094379124341003), ("minute", -1.6094379124341003),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -1.6094379124341003)],+                               n = 2}}),+       ("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}}),+       ("<1..4> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer - TYPE 1quarter (grain)", -0.916290731874155),+                                    ("quarter", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)quarter (grain)", -0.916290731874155),+                                    ("quarter", -0.916290731874155)],+                               n = 1}}),+       ("Children'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-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.9444616088408514, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4271163556401458),+                                    ("hh:mmhh:mm", -1.4271163556401458),+                                    ("hourhour", -2.120263536200091),+                                    ("am|pm <time-of-day>am|pm <time-of-day>", -2.120263536200091)],+                               n = 7},+                   koData =+                     ClassData{prior = -0.49247648509779407,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-dayam|pm <time-of-day>", -2.3978952727983707),+                                    ("time-of-daytime-of-day (latent)", -2.803360380906535),+                                    ("hh:mmtime-of-day (latent)", -1.7047480922384253),+                                    ("am|pm <time-of-day>time-of-day (latent)", -2.803360380906535),+                                    ("am|pm <time-of-day><time-of-day>\51060\51204",+                                     -2.803360380906535),+                                    ("hourhour", -1.550597412411167),+                                    ("time-of-day<time-of-day>\51060\51204", -2.803360380906535),+                                    ("minutehour", -1.7047480922384253)],+                               n = 11}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5902671654458267), ("second", -2.5902671654458267),+                                    ("integer - TYPE 1minute (grain)", -2.995732273553991),+                                    ("integer (1..4) - for ordinalsmonth (grain)",+                                     -2.995732273553991),+                                    ("integer (1..4) - for ordinalshour (grain)",+                                     -2.995732273553991),+                                    ("integer (numeric)second (grain)", -2.995732273553991),+                                    ("integer (21..99) - TYPE 2hour (grain)", -2.995732273553991),+                                    ("integer - TYPE 1week (grain)", -2.995732273553991),+                                    ("integer (numeric)week (grain)", -2.995732273553991),+                                    ("hour", -2.0794415416798357), ("month", -2.5902671654458267),+                                    ("integer - TYPE 1second (grain)", -2.995732273553991),+                                    ("integer (numeric)minute (grain)", -2.995732273553991),+                                    ("integer (numeric)month (grain)", -2.995732273553991),+                                    ("minute", -2.5902671654458267),+                                    ("integer (numeric)hour (grain)", -2.5902671654458267)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> half (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter (grain)",+        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}}),+       ("morning",+        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 = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.5040773967762742, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("lunch", -1.8718021769015913),+                                    ("time-of-day (latent)", -1.8718021769015913),+                                    ("am|pm <time-of-day>", -1.8718021769015913),+                                    ("time-of-day", -1.8718021769015913),+                                    ("hour", -0.9555114450274363)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.7884573603642702),+                                    ("hour", -0.7884573603642702)],+                               n = 14}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = -1.1727202608218315, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -0.37037378829689427,+                               unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 29}}),+       ("the day after tomorrow - \45236\51068\47784\47112",+        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}}),+       ("compose by multiplication",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer - TYPE 1integer - TYPE 1: powers of ten", 0.0)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> and an half hours", -1.0986122886681098),+                                    ("minute", -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.0986122886681098),+                                    ("hour", -1.0986122886681098)],+                               n = 1}}),+       ("<hour-of-day> <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-daycompose by multiplication", -1.6094379124341003),+                                    ("time-of-dayinteger (numeric)", -1.6094379124341003),+                                    ("hour", -0.916290731874155),+                                    ("time-of-dayinteger (21..99) - TYPE 2", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.0986122886681098),+                                    ("time-of-dayinteger (21..99) - TYPE 2", -1.0986122886681098)],+                               n = 1}}),+       ("few \47751",+        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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("season", -1.466337068793427), ("day", -1.466337068793427),+                                    ("hour", -1.466337068793427), ("morning", -1.8718021769015913),+                                    ("week-end", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day-of-week",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.713572066704308,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 39},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/MY.hs
@@ -1,22 +0,0 @@--- 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.MY (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/MY_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.MY_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/NB.hs
@@ -1,1603 +0,0 @@--- 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.NB (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.4350845252893227),-                                    ("<time-of-day> o'clock", -2.3513752571634776),-                                    ("hh:mm", -1.6582280766035324), ("hour", -1.6582280766035324),-                                    ("minute", -1.252762968495368)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.7546493803177391, unseen = -4.912654885736052,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 134},-                   koData =-                     ClassData{prior = -0.6352093434537263, unseen = -5.030437921392435,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 151}}),-       ("the day before yesterday",-        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}}),-       ("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}}),-       ("lunch",-        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> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.0986122886681098),-                                    ("tomorrowevening", -2.0149030205422647),-                                    ("named-daymorning", -2.0149030205422647),-                                    ("tomorrowlunch", -2.0149030205422647),-                                    ("yesterdayevening", -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -1.1786549963416462),-                                    ("year (latent)in|during the <part-of-day>",-                                     -1.1786549963416462)],-                               n = 3}}),-       ("dd/mm",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("today",-        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}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2657031657330056, unseen = -4.605170185988091,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.4965075614664802),-                                    ("time-of-day (latent)", -1.2278240201481159),-                                    ("relative minutes after|past <integer> (hour-of-day)",-                                     -3.4965075614664802),-                                    ("hh:mm", -2.030170492673053),-                                    ("<time-of-day> sharp", -3.4965075614664802),-                                    ("hour", -1.1611326456494435), ("minute", -1.7619065060783738)],-                               n = 46},-                   koData =-                     ClassData{prior = -1.455287232606842, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.8472978603872037),-                                    ("hour", -0.8472978603872037)],-                               n = 14}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        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}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.3313571359544425, unseen = -4.189654742026425,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -3.481240089335692),-                                    ("the <day-of-month> (non ordinal)", -3.0757749812275272),-                                    ("<day-of-month>(ordinal) <named-month>", -2.228477120840324),-                                    ("day", -0.807091439909163),-                                    ("the <day-of-month> (ordinal)", -3.481240089335692),-                                    ("named-day", -1.8718021769015913),-                                    ("<day-of-month> (ordinal)", -1.8718021769015913)],-                               n = 28},-                   koData =-                     ClassData{prior = -1.2656663733312759,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.3353749158170367),-                                    ("time-of-day (latent)", -1.1314021114911006),-                                    ("hour", -0.9490805546971459)],-                               n = 11}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -3.6375861597263857,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.9808292530117262),-                                    ("hh:mmhh:mm", -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 2}}),-       ("between <datetime> and <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("hh:mmhh:mm", -1.0986122886681098)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.2992829841302609),-                                    ("minuteminute", -1.7047480922384253),-                                    ("minutehour", -1.2992829841302609),-                                    ("hh:mmintersect", -1.7047480922384253)],-                               n = 3}}),-       ("month (grain)",-        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}}),-       ("<integer> more <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -1.252762968495368),-                                    ("integer (0..19)minute (grain)", -1.252762968495368),-                                    ("minute", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        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}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.10536051565782628,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -2.3025850929940455,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037),-                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037),-                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],-                               n = 2}}),-       ("Last year",-        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.4392032477400145, unseen = -5.860786223465865,-                               likelihoods =-                                 HashMap.fromList-                                   [("<datetime> - <datetime> (interval)on <date>",-                                     -4.0661736852554045),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.0661736852554045),-                                    ("hourday", -5.1647859739235145),-                                    ("dayhour", -2.9134941753170187),-                                    ("daymonth", -2.9134941753170187),-                                    ("monthyear", -3.0853444322436783),-                                    ("intersecthh:mm", -5.1647859739235145),-                                    ("the <day-of-month> (ordinal)named-month", -3.912023005428146),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -4.75932086581535),-                                    ("last <day-of-week> of <time>year", -4.75932086581535),-                                    ("todayat <time-of-day>", -4.75932086581535),-                                    ("dayday", -3.0247198104272432),-                                    ("dd/mmat <time-of-day>", -4.248495242049359),-                                    ("intersect by \",\"hh:mm", -4.248495242049359),-                                    ("intersectnamed-month", -4.75932086581535),-                                    ("dayyear", -3.2929837970219227),-                                    ("named-daythis <time>", -4.0661736852554045),-                                    ("tomorrow<time-of-day> sharp", -4.75932086581535),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -4.75932086581535),-                                    ("named-day<time> timezone", -4.471638793363569),-                                    ("named-monthyear", -3.0853444322436783),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.0661736852554045),-                                    ("on <date>named-month", -3.912023005428146),-                                    ("tomorrowuntil <time-of-day>", -4.75932086581535),-                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -4.471638793363569),-                                    ("after <time-of-day>at <time-of-day>", -4.75932086581535),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -4.75932086581535),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -5.1647859739235145),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -5.1647859739235145),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.75932086581535),-                                    ("named-daynext <cycle>", -5.1647859739235145),-                                    ("named-dayintersect", -4.75932086581535),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.75932086581535),-                                    ("tomorrowafter <time-of-day>", -4.75932086581535),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.248495242049359),-                                    ("dayminute", -2.8134107167600364),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -4.471638793363569),-                                    ("<ordinal> <cycle> of <time>year", -4.75932086581535),-                                    ("minuteday", -2.5620962884791303),-                                    ("absorption of , after named dayintersect",-                                     -5.1647859739235145),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -5.1647859739235145),-                                    ("named-dayon <date>", -4.75932086581535),-                                    ("named-dayat <time-of-day>", -4.75932086581535),-                                    ("yearhh:mm", -5.1647859739235145),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -5.1647859739235145),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -4.75932086581535),-                                    ("dd/mmyear", -4.75932086581535),-                                    ("at <time-of-day>on <date>", -5.1647859739235145),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -5.1647859739235145),-                                    ("between <datetime> and <datetime> (interval)on <date>",-                                     -5.1647859739235145),-                                    ("dayweek", -4.0661736852554045),-                                    ("weekyear", -4.248495242049359),-                                    ("hh:mmtomorrow", -4.471638793363569),-                                    ("tomorrowat <time-of-day>", -3.912023005428146),-                                    ("named-daythis <cycle>", -4.471638793363569),-                                    ("named-daythe <day-of-month> (ordinal)", -5.1647859739235145),-                                    ("at <time-of-day>tomorrow", -4.75932086581535),-                                    ("last <cycle> of <time>year", -4.248495242049359),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -4.75932086581535),-                                    ("yearminute", -5.1647859739235145)],-                               n = 136},-                   koData =-                     ClassData{prior = -1.034370019939756, unseen = -5.43372200355424,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -4.736198448394496),-                                    ("dayhour", -3.2321210516182215),-                                    ("daymonth", -2.133508762950112),-                                    ("monthday", -3.8199077165203406),-                                    ("monthyear", -3.8199077165203406),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -3.4834354798991276),-                                    ("named-dayhh:mm", -4.736198448394496),-                                    ("dd/mmat <time-of-day>", -3.8199077165203406),-                                    ("hourhour", -3.4834354798991276),-                                    ("dayyear", -3.4834354798991276),-                                    ("named-daythis <time>", -2.596132284898225),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -4.330733340286331),-                                    ("minutemonth", -4.330733340286331),-                                    ("named-monthyear", -3.8199077165203406),-                                    ("in|during the <part-of-day>until <time-of-day>",-                                     -4.330733340286331),-                                    ("absorption of , after named daynamed-month",-                                     -3.6375861597263857),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.736198448394496),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -4.330733340286331),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.736198448394496),-                                    ("until <time-of-day>on <date>", -4.736198448394496),-                                    ("dayminute", -3.349904087274605),-                                    ("minuteday", -3.2321210516182215),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.736198448394496),-                                    ("named-dayon <date>", -4.736198448394496),-                                    ("named-dayat <time-of-day>", -3.8199077165203406),-                                    ("hh:mmon <date>", -3.349904087274605),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -4.736198448394496),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -3.8199077165203406),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -3.8199077165203406),-                                    ("this <part-of-day>until <time-of-day>", -4.330733340286331),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -4.330733340286331),-                                    ("tomorrownoon", -4.736198448394496),-                                    ("this <time>until <time-of-day>", -4.330733340286331),-                                    ("minuteyear", -4.330733340286331),-                                    ("yearminute", -4.330733340286331)],-                               n = 75}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)intersect",-                                     -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)named-month",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.2237754316221157),-                                    ("ordinals (first..31st)day (grain)named-month",-                                     -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("year (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}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8754687373538999, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.2237754316221157),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.1400661634962708),-                                    ("hh:mmhh:mm", -1.2237754316221157),-                                    ("hourhour", -2.1400661634962708)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.5389965007326869,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.4350845252893227),-                                    ("minuteminute", -1.6582280766035324),-                                    ("minutehour", -1.4350845252893227),-                                    ("hh:mmintersect", -1.6582280766035324)],-                               n = 7}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("month (grain)", -2.3025850929940455),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.6094379124341003),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("month", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               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.6061358035703156,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.1972245773362196),-                                    ("hh:mmhh:mm", -1.0986122886681098),-                                    ("hourhour", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 5}}),-       ("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 = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3}}),-       ("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.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)quarter (grain)year",-                                     -1.252762968495368),-                                    ("quarteryear", -0.8472978603872037),-                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after lunch",-        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}}),-       ("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}}),-       ("the <cycle> after <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (grain)christmas eve", -0.6931471805599453),-                                    ("yearday", -0.6931471805599453)],-                               n = 2}}),-       ("quarter to|till|before <integer> (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}}),-       ("a pair",-        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> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7472144018302211),-                                    ("ordinals (first..31st)named-dayintersect",-                                     -0.9985288301111273),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -1.845826690498331)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7621400520468967),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -0.7621400520468967)],-                               n = 6}}),-       ("the <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..31st)",-        Classifier{okData =-                     ClassData{prior = -5.129329438755058e-2,-                               unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -2.995732273553991, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.189654742026425,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 64},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (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}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8472978603872037), ("evening", -1.252762968495368),-                                    ("morning", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7308875085427924),-                                    ("morning", -0.7308875085427924)],-                               n = 12}}),-       ("christmas 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}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.749199854809259),-                                    ("ordinal (digits)named-month", -1.0560526742493137),-                                    ("month", -0.7375989431307791)],-                               n = 10},-                   koData =-                     ClassData{prior = -2.3978952727983707, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -0.916290731874155),-                                    ("month", -0.916290731874155)],-                               n = 1}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 23}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("evening", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7672551527136672),-                                    ("morning", -0.7672551527136672)],-                               n = 12}}),-       ("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.0, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (grain)christmas eve", -0.6931471805599453),-                                    ("yearday", -0.6931471805599453)],-                               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}}),-       ("<time> after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)", -1.0116009116784799),-                                    ("ordinal (digits)", -0.45198512374305727)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        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> from now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("second", -1.4469189829363254), ("year", -2.1400661634962708),-                                    ("<integer> <unit-of-duration>", -1.2237754316221157),-                                    ("a <unit-of-duration>", -1.7346010553881064),-                                    ("minute", -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5686159179138452),-                                    ("year (grain)", -2.0794415416798357),-                                    ("week (grain)", -1.5686159179138452),-                                    ("day", -2.4849066497880004), ("quarter", -2.4849066497880004),-                                    ("year", -2.0794415416798357),-                                    ("quarter (grain)", -2.4849066497880004),-                                    ("day (grain)", -2.4849066497880004)],-                               n = 8},-                   koData =-                     ClassData{prior = -2.1972245773362196,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.6094379124341003),-                                    ("day (grain)", -1.6094379124341003)],-                               n = 1}}),-       ("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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.3862943611198906),-                                    ("hour", -1.3862943611198906),-                                    ("<hour-of-day> half (as relative minutes)",-                                     -1.3862943611198906),-                                    ("minute", -1.3862943611198906)],-                               n = 4}}),-       ("christmas days",-        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}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.99714282850325, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)", -2.5317807984289897e-2)],-                               n = 38},-                   koData =-                     ClassData{prior = -0.46034171833399856,-                               unseen = -4.219507705176107,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.27286698666664033),-                                    ("integer (0..19)", -1.4321038971511848)],-                               n = 65}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.1431008436406733, unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 26},-                   koData =-                     ClassData{prior = -2.0149030205422647, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.7621400520468967),-                                    ("named-dayintersect", -1.6094379124341003)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.579818495252942, unseen = -4.672828834461907,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.466214516775848),-                                    ("integer (0..19)year (grain)", -3.5648268054439574),-                                    ("integer (numeric)day (grain)", -2.871679624884012),-                                    ("integer (0..19)hour (grain)", -3.970291913552122),-                                    ("second", -3.2771447329921766),-                                    ("integer (numeric)second (grain)", -3.970291913552122),-                                    ("a pairhour (grain)", -3.970291913552122),-                                    ("integer (numeric)year (grain)", -3.5648268054439574),-                                    ("day", -2.2655438213136967), ("year", -3.054001181677967),-                                    ("integer (numeric)week (grain)", -3.2771447329921766),-                                    ("integer (0..19)month (grain)", -3.970291913552122),-                                    ("integer (0..19)second (grain)", -3.5648268054439574),-                                    ("hour", -2.871679624884012), ("month", -3.5648268054439574),-                                    ("integer (numeric)minute (grain)", -2.717528945056754),-                                    ("integer (0..19)minute (grain)", -3.054001181677967),-                                    ("integer (numeric)month (grain)", -3.970291913552122),-                                    ("minute", -2.2655438213136967),-                                    ("integer (numeric)hour (grain)", -3.2771447329921766),-                                    ("integer (0..19)day (grain)", -2.871679624884012),-                                    ("integer (0..19)week (grain)", -2.871679624884012)],-                               n = 42},-                   koData =-                     ClassData{prior = -0.8209805520698302, unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6855773452501515),-                                    ("integer (0..19)year (grain)", -3.378724525810097),-                                    ("integer (numeric)day (grain)", -3.0910424533583156),-                                    ("integer (0..19)hour (grain)", -3.784189633918261),-                                    ("second", -2.867898902044106),-                                    ("integer (numeric)second (grain)", -3.378724525810097),-                                    ("integer (numeric)year (grain)", -3.0910424533583156),-                                    ("day", -2.6855773452501515), ("year", -2.6855773452501515),-                                    ("integer (numeric)week (grain)", -3.378724525810097),-                                    ("integer (0..19)month (grain)", -3.0910424533583156),-                                    ("integer (0..19)second (grain)", -3.378724525810097),-                                    ("hour", -2.6855773452501515), ("month", -2.6855773452501515),-                                    ("integer (numeric)minute (grain)", -3.378724525810097),-                                    ("integer (0..19)minute (grain)", -3.378724525810097),-                                    ("integer (numeric)month (grain)", -3.378724525810097),-                                    ("minute", -2.867898902044106),-                                    ("integer (numeric)hour (grain)", -2.867898902044106),-                                    ("integer (0..19)day (grain)", -3.378724525810097),-                                    ("integer (0..19)week (grain)", -3.0910424533583156)],-                               n = 33}}),-       ("<duration> after <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>christmas eve", -1.0986122886681098),-                                    ("yearday", -0.8109302162163288),-                                    ("<integer> <unit-of-duration>christmas eve",-                                     -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("relative minutes after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("integer (numeric)time-of-day (latent)", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.367123614131617),-                                    ("year (grain)", -2.367123614131617),-                                    ("second", -1.8562979903656263),-                                    ("week (grain)", -2.367123614131617),-                                    ("day", -2.772588722239781),-                                    ("minute (grain)", -2.367123614131617),-                                    ("year", -2.367123614131617),-                                    ("second (grain)", -1.8562979903656263),-                                    ("minute", -2.367123614131617),-                                    ("day (grain)", -2.772588722239781)],-                               n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.1590646946296874, unseen = -4.442651256490317,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>named-day", -3.7376696182833684),-                                    ("intersect by \",\"year", -3.7376696182833684),-                                    ("hh:mmintersect by \",\"", -3.7376696182833684),-                                    ("dayday", -2.032921526044943),-                                    ("hh:mmnamed-day", -3.7376696182833684),-                                    ("named-dayintersect by \",\"", -3.332204510175204),-                                    ("dayyear", -2.8213788864092133),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -3.7376696182833684),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -3.332204510175204),-                                    ("<named-month> <day-of-month> (non ordinal)named-day",-                                     -3.7376696182833684),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -3.044522437723423),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -2.639057329615259),-                                    ("hh:mmintersect", -3.7376696182833684),-                                    ("intersect by \",\"intersect", -3.7376696182833684),-                                    ("named-dayintersect", -3.7376696182833684),-                                    ("at <time-of-day>intersect", -3.7376696182833684),-                                    ("dayminute", -2.639057329615259),-                                    ("intersectyear", -3.7376696182833684),-                                    ("minuteday", -2.032921526044943),-                                    ("hh:mmabsorption of , after named day", -3.7376696182833684),-                                    ("at <time-of-day>intersect by \",\"", -3.7376696182833684),-                                    ("at <time-of-day>absorption of , after named day",-                                     -3.7376696182833684),-                                    ("intersectintersect", -3.7376696182833684),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.332204510175204)],-                               n = 29},-                   koData =-                     ClassData{prior = -1.916922612182061, unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.791759469228055),-                                    ("daymonth", -1.791759469228055)],-                               n = 5}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -2.197890671877523e-2,-                               unseen = -3.8501476017100584,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 45},-                   koData =-                     ClassData{prior = -3.828641396489095, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter after|past <integer> (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}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.290459441148391,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 71},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (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}}),-       ("<time-of-day> sharp",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.2992829841302609),-                                    ("time-of-day (latent)", -1.2992829841302609),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.4816045409242156),-                                    ("daymonth", -1.1451323043030026),-                                    ("named-daylast <cycle>", -2.3978952727983707),-                                    ("named-daynext <cycle>", -2.3978952727983707),-                                    ("named-dayintersect", -1.9924301646902063),-                                    ("dayweek", -1.9924301646902063)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.329135947279942),-                                    ("daymonth", -0.8183103235139514),-                                    ("named-dayintersect", -1.580450375560848)],-                               n = 14}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.580450375560848), ("day", -1.916922612182061),-                                    ("year", -2.4277482359480516),-                                    ("<integer> <unit-of-duration>", -0.8873031950009028),-                                    ("a <unit-of-duration>", -2.833213344056216),-                                    ("month", -2.4277482359480516)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.6739764335716716,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.2809338454620642),-                                    ("named-day", -1.2809338454620642),-                                    ("hour", -1.791759469228055), ("week-end", -1.791759469228055)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.2076393647782445, unseen = -4.07753744390572,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.8632184332102),-                                    ("time-of-day (latent)", -1.1160040313799788),-                                    ("named-day", -2.451005098112319),-                                    ("intersect by \"of\", \"from\", \"'s\"", -2.451005098112319),-                                    ("hour", -1.1160040313799788)],-                               n = 26}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)", -1.0116009116784799),-                                    ("ordinal (digits)", -0.45198512374305727)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the day after tomorrow",-        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}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -0.8873031950009028),-                                    ("hour", -0.8873031950009028)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.5040773967762742),-                                    ("hh:mm", -1.5040773967762742),-                                    ("minute", -1.0986122886681098)],-                               n = 2}}),-       ("<integer> and an half hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.6931471805599453),-                                    ("integer (0..19)", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("evening",-        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}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.7047480922384253),-                                    ("month (grain)", -1.9924301646902063),-                                    ("year (grain)", -1.9924301646902063),-                                    ("week (grain)", -1.7047480922384253),-                                    ("year", -1.9924301646902063), ("month", -1.9924301646902063)],-                               n = 7},-                   koData =-                     ClassData{prior = -1.0116009116784799, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("week (grain)", -1.6739764335716716),-                                    ("day", -1.6739764335716716),-                                    ("day (grain)", -1.6739764335716716)],-                               n = 4}}),-       ("christmas",-        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 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}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.793208009442517),-                                    ("integer (0..19)year (grain)", -3.1986731175506815),-                                    ("integer (numeric)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)hour (grain)", -3.1986731175506815),-                                    ("second", -2.793208009442517),-                                    ("integer (numeric)second (grain)", -3.1986731175506815),-                                    ("integer (numeric)year (grain)", -3.1986731175506815),-                                    ("day", -2.793208009442517), ("year", -2.793208009442517),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("integer (0..19)month (grain)", -3.1986731175506815),-                                    ("integer (0..19)second (grain)", -3.1986731175506815),-                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),-                                    ("integer (numeric)minute (grain)", -3.1986731175506815),-                                    ("integer (0..19)minute (grain)", -3.1986731175506815),-                                    ("integer (numeric)month (grain)", -3.1986731175506815),-                                    ("minute", -2.793208009442517),-                                    ("integer (numeric)hour (grain)", -3.1986731175506815),-                                    ("integer (0..19)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)week (grain)", -3.1986731175506815)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.418840607796598,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.0204248861443626),-                                    ("<integer> more <unit-of-duration>", -3.3081069585961433),-                                    ("number.number hours", -3.713572066704308),-                                    ("second", -2.797281334830153), ("day", -2.6149597780361984),-                                    ("half an hour", -3.713572066704308),-                                    ("<integer> <unit-of-duration>", -1.3156767939059373),-                                    ("a <unit-of-duration>", -2.46080909820894),-                                    ("<integer> and an half hours", -3.3081069585961433),-                                    ("hour", -2.6149597780361984), ("minute", -1.4622802680978126),-                                    ("about <duration>", -3.3081069585961433)],-                               n = 35},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8362480242006186,-                               unseen = -3.6888794541139363,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.466337068793427),-                                    ("hh:mmhh:mm", -1.466337068793427),-                                    ("dayday", -1.8718021769015913),-                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",-                                     -1.8718021769015913)],-                               n = 13},-                   koData =-                     ClassData{prior = -0.5679840376059393, unseen = -3.871201010907891,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -2.0583881324820035),-                                    ("minuteminute", -1.9042374526547454),-                                    ("hh:mmhh:mm", -3.1570004211501135),-                                    ("dayyear", -2.751535313041949),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -2.751535313041949),-                                    ("hh:mmintersect", -2.0583881324820035),-                                    ("dd/mmyear", -2.751535313041949),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -2.0583881324820035),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -2.751535313041949),-                                    ("minuteyear", -2.751535313041949),-                                    ("yearminute", -2.751535313041949)],-                               n = 17}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8109302162163288, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7985076962177716),-                                    ("hh:mmhh:mm", -0.7985076962177716)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.587786664902119, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.8754687373538999),-                                    ("minuteminute", -2.4849066497880004),-                                    ("hh:mmhh:mm", -2.4849066497880004),-                                    ("minutehour", -0.8754687373538999)],-                               n = 10}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.639057329615259),-                                    ("integer (0..19)year (grain)", -3.332204510175204),-                                    ("integer (numeric)day (grain)", -2.9267394020670396),-                                    ("second", -2.9267394020670396),-                                    ("integer (numeric)second (grain)", -3.332204510175204),-                                    ("integer (numeric)year (grain)", -2.9267394020670396),-                                    ("day", -2.639057329615259), ("year", -2.639057329615259),-                                    ("integer (numeric)week (grain)", -3.332204510175204),-                                    ("integer (0..19)month (grain)", -2.9267394020670396),-                                    ("integer (0..19)second (grain)", -3.332204510175204),-                                    ("hour", -2.9267394020670396), ("month", -2.639057329615259),-                                    ("integer (numeric)minute (grain)", -3.332204510175204),-                                    ("integer (0..19)minute (grain)", -3.332204510175204),-                                    ("integer (numeric)month (grain)", -3.332204510175204),-                                    ("minute", -2.9267394020670396),-                                    ("integer (numeric)hour (grain)", -2.9267394020670396),-                                    ("integer (0..19)day (grain)", -3.332204510175204),-                                    ("integer (0..19)week (grain)", -2.9267394020670396)],-                               n = 18},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 5}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 18},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3}}),-       ("<hour-of-day> half (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("about <time-of-day>", -1.7346010553881064),-                                    ("time-of-day (latent)", -1.041453874828161),-                                    ("hour", -0.7537718023763802)],-                               n = 7}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter (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}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.4816045409242156),-                                    ("week (grain)named-month", -1.9924301646902063),-                                    ("day (grain)intersect", -1.9924301646902063),-                                    ("weekmonth", -1.4816045409242156),-                                    ("day (grain)named-month", -1.9924301646902063),-                                    ("week (grain)intersect", -1.9924301646902063)],-                               n = 8},-                   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 = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.0986122886681098),-                                    ("ordinal (digits)named-month", -1.5040773967762742),-                                    ("month", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("week-end",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.7537718023763802, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.6863989535702288),-                                    ("intersect", -2.1972245773362196),-                                    ("tomorrow", -2.1972245773362196), ("day", -2.1972245773362196),-                                    ("hour", -1.349926716949016)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.6359887667199967,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("this <part-of-day>", -2.268683541318364),-                                    ("christmas eve", -2.268683541318364),-                                    ("in|during the <part-of-day>", -2.268683541318364),-                                    ("day", -2.268683541318364), ("hh:mm", -2.6741486494265287),-                                    ("hour", -1.4213856809311607), ("minute", -2.6741486494265287),-                                    ("this <time>", -2.268683541318364)],-                               n = 9}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = -4.8790164169432056e-2,-                               unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},-                   koData =-                     ClassData{prior = -3.044522437723423, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 9}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -1.2443240998495033,-                               unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.1354942159291497),-                                    ("intersect", -2.7300291078209855),-                                    ("season", -2.2192034840549946),-                                    ("next <cycle>", -3.1354942159291497),-                                    ("named-month", -2.7300291078209855),-                                    ("day", -1.8827312474337816),-                                    ("christmas days", -2.7300291078209855),-                                    ("hour", -1.8827312474337816), ("evening", -3.1354942159291497),-                                    ("month", -2.2192034840549946),-                                    ("morning", -3.1354942159291497),-                                    ("week-end", -2.2192034840549946)],-                               n = 17},-                   koData =-                     ClassData{prior = -0.3398678256223512, unseen = -4.574710978503383,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.9993988340062996),-                                    ("named-month", -1.6199092123013958),-                                    ("hour", -1.9993988340062996), ("month", -1.1303609869826898),-                                    ("morning", -1.9993988340062996)],-                               n = 42}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/NB_XX.hs view
@@ -0,0 +1,1700 @@+-- 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.NB_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("L\248rdag",+        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}}),+       ("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.4350845252893227),+                                    ("<time-of-day> o'clock", -2.3513752571634776),+                                    ("hh:mm", -1.6582280766035324), ("hour", -1.6582280766035324),+                                    ("minute", -1.252762968495368)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7546493803177391, unseen = -4.912654885736052,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 134},+                   koData =+                     ClassData{prior = -0.6352093434537263, unseen = -5.030437921392435,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 151}}),+       ("the day before yesterday",+        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}}),+       ("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}}),+       ("lunch",+        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}}),+       ("S\248ndag",+        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}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.0986122886681098),+                                    ("tomorrowevening", -2.0149030205422647),+                                    ("tomorrowlunch", -2.0149030205422647),+                                    ("yesterdayevening", -2.0149030205422647),+                                    ("Mandagmorning", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -1.1786549963416462),+                                    ("year (latent)in|during the <part-of-day>",+                                     -1.1786549963416462)],+                               n = 3}}),+       ("dd/mm",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("today",+        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}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2657031657330056, unseen = -4.605170185988091,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.4965075614664802),+                                    ("time-of-day (latent)", -1.2278240201481159),+                                    ("relative minutes after|past <integer> (hour-of-day)",+                                     -3.4965075614664802),+                                    ("hh:mm", -2.030170492673053),+                                    ("<time-of-day> sharp", -3.4965075614664802),+                                    ("hour", -1.1611326456494435), ("minute", -1.7619065060783738)],+                               n = 46},+                   koData =+                     ClassData{prior = -1.455287232606842, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8472978603872037),+                                    ("hour", -0.8472978603872037)],+                               n = 14}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("L\248rdag", -2.3978952727983707),+                                    ("S\248ndag", -2.3978952727983707),+                                    ("Mandag", -1.7047480922384253), ("day", -0.8938178760220964),+                                    ("Onsdag", -2.3978952727983707),+                                    ("Fredag", -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        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}}),+       ("tonight",+        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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.3313571359544425, unseen = -4.219507705176107,+                               likelihoods =+                                 HashMap.fromList+                                   [("L\248rdag", -3.5115454388310208),+                                    ("on <date>", -3.5115454388310208),+                                    ("Mandag", -3.5115454388310208), ("Torsdag", -2.12525107771113),+                                    ("the <day-of-month> (non ordinal)", -3.1060803307228566),+                                    ("<day-of-month>(ordinal) <named-month>", -2.2587824703356527),+                                    ("day", -0.8373967894044921),+                                    ("the <day-of-month> (ordinal)", -3.5115454388310208),+                                    ("<day-of-month> (ordinal)", -1.9021075263969205)],+                               n = 28},+                   koData =+                     ClassData{prior = -1.2656663733312759,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.3978952727983707),+                                    ("time-of-day (latent)", -1.1939224684724346),+                                    ("hour", -1.0116009116784799)],+                               n = 11}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.13005312824819779,+                               unseen = -3.6375861597263857,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 36},+                   koData =+                     ClassData{prior = -2.1041341542702074,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.9808292530117262),+                                    ("hh:mmhh:mm", -0.9808292530117262)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 2}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.2992829841302609),+                                    ("minuteminute", -1.7047480922384253),+                                    ("minutehour", -1.2992829841302609),+                                    ("hh:mmintersect", -1.7047480922384253)],+                               n = 3}}),+       ("month (grain)",+        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}}),+       ("<integer> more <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -1.252762968495368),+                                    ("integer (0..19)minute (grain)", -1.252762968495368),+                                    ("minute", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        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}}),+       ("Juli",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("quarter", -0.8472978603872037),+                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("quarter", -0.8472978603872037),+                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],+                               n = 2}}),+       ("Last year",+        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.4103550934023561, unseen = -5.877735781779639,+                               likelihoods =+                                 HashMap.fromList+                                   [("Onsdagthis <cycle>", -5.181783550292085),+                                    ("Torsdag<time> timezone", -4.48863636973214),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.083171261623976),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.083171261623976),+                                    ("hourday", -5.181783550292085), ("dayhour", -2.93049175168559),+                                    ("daymonth", -2.93049175168559),+                                    ("monthyear", -3.1023420086122493),+                                    ("Torsdagbetween <time-of-day> and <time-of-day> (interval)",+                                     -5.181783550292085),+                                    ("Mandagon <date>", -4.77631844218392),+                                    ("intersecthh:mm", -5.181783550292085),+                                    ("Torsdagbetween <datetime> and <datetime> (interval)",+                                     -5.181783550292085),+                                    ("Torsdagat <time-of-day>", -4.77631844218392),+                                    ("on <date>Februar", -4.77631844218392),+                                    ("Marsyear", -4.77631844218392),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -4.77631844218392),+                                    ("Oktoberyear", -3.572345637857985),+                                    ("Torsdagfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.77631844218392),+                                    ("Torsdagfrom <datetime> - <datetime> (interval)",+                                     -4.77631844218392),+                                    ("Mandagintersect", -4.77631844218392),+                                    ("last <day-of-week> of <time>year", -4.77631844218392),+                                    ("intersectFebruar", -4.77631844218392),+                                    ("todayat <time-of-day>", -4.77631844218392),+                                    ("dayday", -3.0417173867958143),+                                    ("dd/mmat <time-of-day>", -4.26549281841793),+                                    ("intersect by \",\"hh:mm", -4.26549281841793),+                                    ("dayyear", -3.3099813733904937),+                                    ("tomorrow<time-of-day> sharp", -4.77631844218392),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -4.77631844218392),+                                    ("Onsdag<named-month> <day-of-month> (non ordinal)",+                                     -5.181783550292085),+                                    ("Onsdagthis <time>", -4.48863636973214),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.083171261623976),+                                    ("tomorrowuntil <time-of-day>", -4.77631844218392),+                                    ("S\248ndag<day-of-month> (non ordinal) <named-month>",+                                     -5.181783550292085),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -4.48863636973214),+                                    ("the <day-of-month> (ordinal)Februar", -4.77631844218392),+                                    ("after <time-of-day>at <time-of-day>", -4.77631844218392),+                                    ("the <day-of-month> (ordinal)Mars", -4.26549281841793),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -4.77631844218392),+                                    ("Mandagthe <day-of-month> (ordinal)", -5.181783550292085),+                                    ("Mandagthis <cycle>", -5.181783550292085),+                                    ("Tirsdagthis <time>", -4.77631844218392),+                                    ("tomorrowafter <time-of-day>", -4.77631844218392),+                                    ("Tirsdagthis <cycle>", -5.181783550292085),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.26549281841793),+                                    ("dayminute", -2.8304082931286074),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -4.48863636973214),+                                    ("on <date>Mars", -4.26549281841793),+                                    ("<ordinal> <cycle> of <time>year", -4.77631844218392),+                                    ("minuteday", -2.5790938648477013),+                                    ("absorption of , after named dayintersect",+                                     -5.181783550292085),+                                    ("yearhh:mm", -5.181783550292085),+                                    ("Onsdagnext <cycle>", -5.181783550292085),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -4.77631844218392),+                                    ("dd/mmyear", -4.77631844218392),+                                    ("Septemberyear", -4.26549281841793),+                                    ("at <time-of-day>on <date>", -5.181783550292085),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -5.181783550292085),+                                    ("between <datetime> and <datetime> (interval)on <date>",+                                     -5.181783550292085),+                                    ("dayweek", -4.083171261623976),+                                    ("weekyear", -4.26549281841793),+                                    ("hh:mmtomorrow", -4.48863636973214),+                                    ("tomorrowat <time-of-day>", -3.929020581796717),+                                    ("at <time-of-day>tomorrow", -4.77631844218392),+                                    ("last <cycle> of <time>year", -4.26549281841793),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -4.77631844218392),+                                    ("yearminute", -5.181783550292085)],+                               n = 136},+                   koData =+                     ClassData{prior = -1.0889034745411488, unseen = -5.407171771460119,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -3.20545280453606), ("daymonth", -2.10684051586795),+                                    ("monthday", -3.7932394694381792),+                                    ("monthyear", -3.7932394694381792),+                                    ("Torsdagbetween <time-of-day> and <time-of-day> (interval)",+                                     -4.709530201312334),+                                    ("Mandagon <date>", -4.709530201312334),+                                    ("Torsdagbetween <datetime> and <datetime> (interval)",+                                     -4.709530201312334),+                                    ("Torsdagat <time-of-day>", -3.7932394694381792),+                                    ("absorption of , after named dayFebruar", -4.0163830207523885),+                                    ("Marsyear", -4.0163830207523885),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -3.4567672328169663),+                                    ("Torsdagfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.709530201312334),+                                    ("Torsdagfrom <datetime> - <datetime> (interval)",+                                     -4.709530201312334),+                                    ("OnsdagFebruar", -4.709530201312334),+                                    ("absorption of , after named dayJuli", -4.304065093204169),+                                    ("dd/mmat <time-of-day>", -3.7932394694381792),+                                    ("hourhour", -3.4567672328169663),+                                    ("dayyear", -3.4567672328169663),+                                    ("Onsdagthis <time>", -3.4567672328169663),+                                    ("in|during the <part-of-day>until <time-of-day>",+                                     -4.304065093204169),+                                    ("Aprilyear", -4.709530201312334),+                                    ("Tirsdagthis <time>", -3.7932394694381792),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.7932394694381792),+                                    ("until <time-of-day>on <date>", -4.709530201312334),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -3.7932394694381792),+                                    ("Torsdaghh:mm", -4.709530201312334),+                                    ("dayminute", -3.3232358401924436),+                                    ("minuteday", -3.20545280453606),+                                    ("hh:mmon <date>", -3.3232358401924436),+                                    ("this <part-of-day>until <time-of-day>", -4.304065093204169),+                                    ("S\248ndagthis <time>", -3.7932394694381792),+                                    ("tomorrownoon", -4.709530201312334),+                                    ("this <time>until <time-of-day>", -4.304065093204169),+                                    ("Mandagthis <time>", -4.304065093204169)],+                               n = 69}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.7346010553881064),+                                    ("ordinals (first..31st)day (grain)Oktober",+                                     -1.7346010553881064),+                                    ("ordinals (first..31st)week (grain)intersect",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.2237754316221157),+                                    ("ordinals (first..31st)week (grain)Oktober",+                                     -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("year (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}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8754687373538999, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.2237754316221157),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.1400661634962708),+                                    ("hh:mmhh:mm", -1.2237754316221157),+                                    ("hourhour", -2.1400661634962708)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.5389965007326869,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.4350845252893227),+                                    ("minuteminute", -1.6582280766035324),+                                    ("minutehour", -1.4350845252893227),+                                    ("hh:mmintersect", -1.6582280766035324)],+                               n = 7}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("month (grain)", -2.3025850929940455),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.6094379124341003),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("month", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               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.6061358035703156,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.1972245773362196),+                                    ("hh:mmhh:mm", -1.0986122886681098),+                                    ("hourhour", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 5}}),+       ("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 = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3}}),+       ("Mandag",+        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.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.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)quarter (grain)year",+                                     -1.252762968495368),+                                    ("quarteryear", -0.8472978603872037),+                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after lunch",+        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}}),+       ("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}}),+       ("Torsdag",+        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}}),+       ("the <cycle> after <time>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (grain)christmas eve", -0.6931471805599453),+                                    ("yearday", -0.6931471805599453)],+                               n = 2}}),+       ("quarter to|till|before <integer> (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}}),+       ("a pair",+        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> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8938178760220964),+                                    ("ordinals (first..31st)TirsdagOktober", -1.9924301646902063),+                                    ("ordinals (first..31st)Onsdagintersect", -1.4816045409242156),+                                    ("ordinals (first..31st)Tirsdagintersect",+                                     -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9444616088408514),+                                    ("ordinals (first..31st)OnsdagOktober", -1.2809338454620642),+                                    ("ordinals (first..31st)TirsdagSeptember", -1.791759469228055)],+                               n = 6}}),+       ("the <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..31st)",+        Classifier{okData =+                     ClassData{prior = -5.129329438755058e-2,+                               unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -2.995732273553991, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("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}}),+       ("week (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}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.8472978603872037), ("evening", -1.252762968495368),+                                    ("morning", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7308875085427924),+                                    ("morning", -0.7308875085427924)],+                               n = 12}}),+       ("christmas 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}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)Mars", -1.8325814637483102),+                                    ("month", -0.8209805520698302),+                                    ("ordinal (digits)Mars", -1.6094379124341003),+                                    ("ordinal (digits)Februar", -1.8325814637483102)],+                               n = 10},+                   koData =+                     ClassData{prior = -2.3978952727983707,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)April", -1.252762968495368),+                                    ("month", -1.252762968495368)],+                               n = 1}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 23}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.3862943611198906),+                                    ("hour", -0.9808292530117262),+                                    ("evening", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7672551527136672),+                                    ("morning", -0.7672551527136672)],+                               n = 12}}),+       ("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.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after <time>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (grain)christmas eve", -0.6931471805599453),+                                    ("yearday", -0.6931471805599453)],+                               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}}),+       ("<time> after next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.1786549963416462), ("Mars", -1.8718021769015913),+                                    ("month", -1.8718021769015913), ("Onsdag", -1.8718021769015913),+                                    ("Fredag", -1.466337068793427)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half an hour",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)", -1.0116009116784799),+                                    ("ordinal (digits)", -0.45198512374305727)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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> from now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("second", -1.4469189829363254), ("year", -2.1400661634962708),+                                    ("<integer> <unit-of-duration>", -1.2237754316221157),+                                    ("a <unit-of-duration>", -1.7346010553881064),+                                    ("minute", -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.5686159179138452),+                                    ("year (grain)", -2.0794415416798357),+                                    ("week (grain)", -1.5686159179138452),+                                    ("day", -2.4849066497880004), ("quarter", -2.4849066497880004),+                                    ("year", -2.0794415416798357),+                                    ("quarter (grain)", -2.4849066497880004),+                                    ("day (grain)", -2.4849066497880004)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.6094379124341003),+                                    ("day (grain)", -1.6094379124341003)],+                               n = 1}}),+       ("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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.3862943611198906),+                                    ("hour", -1.3862943611198906),+                                    ("<hour-of-day> half (as relative minutes)",+                                     -1.3862943611198906),+                                    ("minute", -1.3862943611198906)],+                               n = 4}}),+       ("christmas days",+        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}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.9057086225436182, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)", -2.5317807984289897e-2)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.5179430915348547, unseen = -4.07753744390572,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.27625337662815824),+                                    ("integer (0..19)", -1.4213856809311607)],+                               n = 56}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.1431008436406733, unseen = -3.332204510175204,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 26},+                   koData =+                     ClassData{prior = -2.0149030205422647, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8266785731844679),+                                    ("S\248ndagMars", -1.6739764335716716),+                                    ("S\248ndagintersect", -1.6739764335716716),+                                    ("MandagMars", -1.6739764335716716)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.579818495252942, unseen = -4.672828834461907,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.466214516775848),+                                    ("integer (0..19)year (grain)", -3.5648268054439574),+                                    ("integer (numeric)day (grain)", -2.871679624884012),+                                    ("integer (0..19)hour (grain)", -3.970291913552122),+                                    ("second", -3.2771447329921766),+                                    ("integer (numeric)second (grain)", -3.970291913552122),+                                    ("a pairhour (grain)", -3.970291913552122),+                                    ("integer (numeric)year (grain)", -3.5648268054439574),+                                    ("day", -2.2655438213136967), ("year", -3.054001181677967),+                                    ("integer (numeric)week (grain)", -3.2771447329921766),+                                    ("integer (0..19)month (grain)", -3.970291913552122),+                                    ("integer (0..19)second (grain)", -3.5648268054439574),+                                    ("hour", -2.871679624884012), ("month", -3.5648268054439574),+                                    ("integer (numeric)minute (grain)", -2.717528945056754),+                                    ("integer (0..19)minute (grain)", -3.054001181677967),+                                    ("integer (numeric)month (grain)", -3.970291913552122),+                                    ("minute", -2.2655438213136967),+                                    ("integer (numeric)hour (grain)", -3.2771447329921766),+                                    ("integer (0..19)day (grain)", -2.871679624884012),+                                    ("integer (0..19)week (grain)", -2.871679624884012)],+                               n = 42},+                   koData =+                     ClassData{prior = -0.8209805520698302, unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6855773452501515),+                                    ("integer (0..19)year (grain)", -3.378724525810097),+                                    ("integer (numeric)day (grain)", -3.0910424533583156),+                                    ("integer (0..19)hour (grain)", -3.784189633918261),+                                    ("second", -2.867898902044106),+                                    ("integer (numeric)second (grain)", -3.378724525810097),+                                    ("integer (numeric)year (grain)", -3.0910424533583156),+                                    ("day", -2.6855773452501515), ("year", -2.6855773452501515),+                                    ("integer (numeric)week (grain)", -3.378724525810097),+                                    ("integer (0..19)month (grain)", -3.0910424533583156),+                                    ("integer (0..19)second (grain)", -3.378724525810097),+                                    ("hour", -2.6855773452501515), ("month", -2.6855773452501515),+                                    ("integer (numeric)minute (grain)", -3.378724525810097),+                                    ("integer (0..19)minute (grain)", -3.378724525810097),+                                    ("integer (numeric)month (grain)", -3.378724525810097),+                                    ("minute", -2.867898902044106),+                                    ("integer (numeric)hour (grain)", -2.867898902044106),+                                    ("integer (0..19)day (grain)", -3.378724525810097),+                                    ("integer (0..19)week (grain)", -3.0910424533583156)],+                               n = 33}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>christmas eve", -1.0986122886681098),+                                    ("yearday", -0.8109302162163288),+                                    ("<integer> <unit-of-duration>christmas eve",+                                     -1.5040773967762742)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("integer (numeric)time-of-day (latent)", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Oktober",+        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}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.367123614131617),+                                    ("year (grain)", -2.367123614131617),+                                    ("second", -1.8562979903656263),+                                    ("week (grain)", -2.367123614131617),+                                    ("day", -2.772588722239781),+                                    ("minute (grain)", -2.367123614131617),+                                    ("year", -2.367123614131617),+                                    ("second (grain)", -1.8562979903656263),+                                    ("minute", -2.367123614131617),+                                    ("day (grain)", -2.772588722239781)],+                               n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.1590646946296874, unseen = -4.51085950651685,+                               likelihoods =+                                 HashMap.fromList+                                   [("L\248rdag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("intersect by \",\"year", -3.8066624897703196),+                                    ("hh:mmintersect by \",\"", -3.8066624897703196),+                                    ("dayday", -2.1019143975318944),+                                    ("dayyear", -2.890371757896165),+                                    ("at <time-of-day>L\248rdag", -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -3.8066624897703196),+                                    ("hh:mmL\248rdag", -3.8066624897703196),+                                    ("Onsdag<named-month> <day-of-month> (non ordinal)",+                                     -3.8066624897703196),+                                    ("Fredagintersect by \",\"", -3.4011973816621555),+                                    ("S\248ndag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -3.4011973816621555),+                                    ("hh:mmintersect", -3.8066624897703196),+                                    ("intersect by \",\"intersect", -3.8066624897703196),+                                    ("at <time-of-day>intersect", -3.8066624897703196),+                                    ("dayminute", -2.70805020110221),+                                    ("intersectyear", -3.8066624897703196),+                                    ("minuteday", -2.1019143975318944),+                                    ("<named-month> <day-of-month> (non ordinal)Fredag",+                                     -3.8066624897703196),+                                    ("Fredag<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("hh:mmabsorption of , after named day", -3.8066624897703196),+                                    ("at <time-of-day>intersect by \",\"", -3.8066624897703196),+                                    ("at <time-of-day>absorption of , after named day",+                                     -3.8066624897703196),+                                    ("intersectintersect", -3.8066624897703196),+                                    ("Fredagintersect", -3.8066624897703196),+                                    ("Mandag<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("Mandag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -3.4011973816621555)],+                               n = 29},+                   koData =+                     ClassData{prior = -1.916922612182061, unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.9459101490553135),+                                    ("OnsdagFebruar", -3.044522437723423),+                                    ("MandagFebruar", -2.639057329615259),+                                    ("FredagJuli", -2.639057329615259)],+                               n = 5}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -2.197890671877523e-2,+                               unseen = -3.8501476017100584,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 45},+                   koData =+                     ClassData{prior = -3.828641396489095, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter after|past <integer> (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}}),+       ("second (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}}),+       ("<time-of-day> sharp",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.2992829841302609),+                                    ("time-of-day (latent)", -1.2992829841302609),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mars",+        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}}),+       ("Februar",+        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}}),+       ("intersect by \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.3862943611198906),+                                    ("OnsdagOktober", -2.2335922215070942),+                                    ("TirsdagOktober", -2.2335922215070942),+                                    ("S\248ndaglast <cycle>", -2.639057329615259),+                                    ("Onsdagintersect", -2.2335922215070942),+                                    ("Onsdagnext <cycle>", -2.639057329615259),+                                    ("dayweek", -2.2335922215070942)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9808292530117262),+                                    ("OnsdagOktober", -2.5902671654458267),+                                    ("Tirsdagintersect", -2.5902671654458267),+                                    ("TirsdagSeptember", -2.5902671654458267),+                                    ("S\248ndagMars", -2.5902671654458267),+                                    ("S\248ndagintersect", -2.5902671654458267),+                                    ("Onsdagintersect", -2.5902671654458267),+                                    ("MandagMars", -2.5902671654458267)],+                               n = 14}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.580450375560848), ("day", -1.916922612182061),+                                    ("year", -2.4277482359480516),+                                    ("<integer> <unit-of-duration>", -0.8873031950009028),+                                    ("a <unit-of-duration>", -2.833213344056216),+                                    ("month", -2.4277482359480516)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -1.6739764335716716, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("S\248ndag", -1.8971199848858813),+                                    ("day", -1.3862943611198906), ("hour", -1.8971199848858813),+                                    ("Tirsdag", -1.8971199848858813),+                                    ("week-end", -1.8971199848858813)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("S\248ndag", -2.995732273553991),+                                    ("Mandag", -2.995732273553991), ("day", -1.8971199848858813),+                                    ("time-of-day (latent)", -1.1499055830556604),+                                    ("intersect by \"of\", \"from\", \"'s\"", -2.4849066497880004),+                                    ("hour", -1.1499055830556604)],+                               n = 26}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)", -1.0116009116784799),+                                    ("ordinal (digits)", -0.45198512374305727)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the day after tomorrow",+        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}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -0.8873031950009028),+                                    ("hour", -0.8873031950009028)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.5040773967762742),+                                    ("hh:mm", -1.5040773967762742),+                                    ("minute", -1.0986122886681098)],+                               n = 2}}),+       ("<integer> and an half hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.6931471805599453),+                                    ("integer (0..19)", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("evening",+        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}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mandag", -2.0149030205422647), ("day", -1.3217558399823195),+                                    ("Mars", -2.0149030205422647), ("month", -2.0149030205422647),+                                    ("Onsdag", -2.0149030205422647),+                                    ("Tirsdag", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.3217558399823195), ("Mars", -2.0149030205422647),+                                    ("month", -2.0149030205422647), ("Onsdag", -2.0149030205422647),+                                    ("Fredag", -1.6094379124341003)],+                               n = 4}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.7047480922384253),+                                    ("month (grain)", -1.9924301646902063),+                                    ("year (grain)", -1.9924301646902063),+                                    ("week (grain)", -1.7047480922384253),+                                    ("year", -1.9924301646902063), ("month", -1.9924301646902063)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("week (grain)", -1.6739764335716716),+                                    ("day", -1.6739764335716716),+                                    ("day (grain)", -1.6739764335716716)],+                               n = 4}}),+       ("Onsdag",+        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}}),+       ("christmas",+        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 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}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.793208009442517),+                                    ("integer (0..19)year (grain)", -3.1986731175506815),+                                    ("integer (numeric)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)hour (grain)", -3.1986731175506815),+                                    ("second", -2.793208009442517),+                                    ("integer (numeric)second (grain)", -3.1986731175506815),+                                    ("integer (numeric)year (grain)", -3.1986731175506815),+                                    ("day", -2.793208009442517), ("year", -2.793208009442517),+                                    ("integer (numeric)week (grain)", -3.1986731175506815),+                                    ("integer (0..19)month (grain)", -3.1986731175506815),+                                    ("integer (0..19)second (grain)", -3.1986731175506815),+                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),+                                    ("integer (numeric)minute (grain)", -3.1986731175506815),+                                    ("integer (0..19)minute (grain)", -3.1986731175506815),+                                    ("integer (numeric)month (grain)", -3.1986731175506815),+                                    ("minute", -2.793208009442517),+                                    ("integer (numeric)hour (grain)", -3.1986731175506815),+                                    ("integer (0..19)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)week (grain)", -3.1986731175506815)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Fredag",+        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}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.418840607796598,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.0204248861443626),+                                    ("<integer> more <unit-of-duration>", -3.3081069585961433),+                                    ("number.number hours", -3.713572066704308),+                                    ("second", -2.797281334830153), ("day", -2.6149597780361984),+                                    ("half an hour", -3.713572066704308),+                                    ("<integer> <unit-of-duration>", -1.3156767939059373),+                                    ("a <unit-of-duration>", -2.46080909820894),+                                    ("<integer> and an half hours", -3.3081069585961433),+                                    ("hour", -2.6149597780361984), ("minute", -1.4622802680978126),+                                    ("about <duration>", -3.3081069585961433)],+                               n = 35},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.3862943611198906),+                                    ("hh:mmhh:mm", -1.3862943611198906),+                                    ("dayday", -1.791759469228055),+                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",+                                     -1.791759469228055)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli<day-of-month> (non ordinal) <named-month>",+                                     -2.890371757896165),+                                    ("monthday", -1.791759469228055),+                                    ("minuteminute", -1.6376087894007967),+                                    ("hh:mmhh:mm", -2.890371757896165),+                                    ("dayyear", -2.4849066497880004),+                                    ("hh:mmintersect", -1.791759469228055),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -1.9740810260220096),+                                    ("dd/mmyear", -2.4849066497880004)],+                               n = 13}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7985076962177716),+                                    ("hh:mmhh:mm", -0.7985076962177716)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.587786664902119, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.8754687373538999),+                                    ("minuteminute", -2.4849066497880004),+                                    ("hh:mmhh:mm", -2.4849066497880004),+                                    ("minutehour", -0.8754687373538999)],+                               n = 10}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.639057329615259),+                                    ("integer (0..19)year (grain)", -3.332204510175204),+                                    ("integer (numeric)day (grain)", -2.9267394020670396),+                                    ("second", -2.9267394020670396),+                                    ("integer (numeric)second (grain)", -3.332204510175204),+                                    ("integer (numeric)year (grain)", -2.9267394020670396),+                                    ("day", -2.639057329615259), ("year", -2.639057329615259),+                                    ("integer (numeric)week (grain)", -3.332204510175204),+                                    ("integer (0..19)month (grain)", -2.9267394020670396),+                                    ("integer (0..19)second (grain)", -3.332204510175204),+                                    ("hour", -2.9267394020670396), ("month", -2.639057329615259),+                                    ("integer (numeric)minute (grain)", -3.332204510175204),+                                    ("integer (0..19)minute (grain)", -3.332204510175204),+                                    ("integer (numeric)month (grain)", -3.332204510175204),+                                    ("minute", -2.9267394020670396),+                                    ("integer (numeric)hour (grain)", -2.9267394020670396),+                                    ("integer (0..19)day (grain)", -3.332204510175204),+                                    ("integer (0..19)week (grain)", -2.9267394020670396)],+                               n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Februarinteger (numeric)", -1.3437347467010947),+                                    ("Aprilinteger (numeric)", -2.4423470353692043),+                                    ("month", -0.832909122935104),+                                    ("Juliinteger (numeric)", -1.749199854809259)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -1.0986122886681098),+                                    ("Aprilinteger (numeric)", -2.0149030205422647),+                                    ("month", -0.916290731874155)],+                               n = 5}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)September", -3.068052935133617),+                                    ("integer (numeric)April", -3.068052935133617),+                                    ("integer (numeric)August", -1.4586150226995167),+                                    ("month", -0.8167611365271219),+                                    ("integer (numeric)Juli", -2.662587827025453),+                                    ("integer (numeric)Februar", -2.374905754573672),+                                    ("integer (numeric)Mars", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -1.1786549963416462),+                                    ("integer (numeric)Juli", -1.1786549963416462)],+                               n = 3}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Mandag", -1.7047480922384253), ("day", -1.0116009116784799),+                                    ("Onsdag", -1.7047480922384253),+                                    ("Tirsdag", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.0116009116784799), ("Onsdag", -1.7047480922384253),+                                    ("Fredag", -1.2992829841302609)],+                               n = 3}}),+       ("<hour-of-day> half (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("about <time-of-day>", -1.7346010553881064),+                                    ("time-of-day (latent)", -1.041453874828161),+                                    ("hour", -0.7537718023763802)],+                               n = 7}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter (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}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.4816045409242156),+                                    ("day (grain)Oktober", -1.9924301646902063),+                                    ("week (grain)intersect", -1.9924301646902063),+                                    ("week (grain)September", -1.9924301646902063)],+                               n = 8},+                   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 = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..31st)April", -1.6094379124341003),+                                    ("ordinals (first..31st)Mars", -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("ordinal (digits)Mars", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tirsdag",+        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}}),+       ("morning",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("week-end",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.7537718023763802, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.6863989535702288),+                                    ("intersect", -2.1972245773362196),+                                    ("tomorrow", -2.1972245773362196), ("day", -2.1972245773362196),+                                    ("hour", -1.349926716949016)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.6359887667199967,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("this <part-of-day>", -2.268683541318364),+                                    ("christmas eve", -2.268683541318364),+                                    ("in|during the <part-of-day>", -2.268683541318364),+                                    ("day", -2.268683541318364), ("hh:mm", -2.6741486494265287),+                                    ("hour", -1.4213856809311607), ("minute", -2.6741486494265287),+                                    ("this <time>", -2.268683541318364)],+                               n = 9}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = -4.8790164169432056e-2,+                               unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -3.044522437723423, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -1.2443240998495033, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.1780538303479458),+                                    ("intersect", -2.772588722239781),+                                    ("season", -2.2617630984737906),+                                    ("next <cycle>", -3.1780538303479458),+                                    ("day", -1.9252908618525775),+                                    ("christmas days", -2.772588722239781),+                                    ("Oktober", -2.772588722239781), ("hour", -1.9252908618525775),+                                    ("evening", -3.1780538303479458),+                                    ("month", -2.2617630984737906),+                                    ("morning", -3.1780538303479458),+                                    ("week-end", -2.2617630984737906)],+                               n = 17},+                   koData =+                     ClassData{prior = -0.3398678256223512, unseen = -4.59511985013459,+                               likelihoods =+                                 HashMap.fromList+                                   [("September", -2.9755295662364714),+                                    ("intersect", -2.020018121209035),+                                    ("Oktober", -2.187072205872201), ("Mars", -2.9755295662364714),+                                    ("hour", -2.020018121209035), ("month", -1.1509802741854256),+                                    ("morning", -2.020018121209035)],+                               n = 42}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("August",+        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}})]
− Duckling/Ranking/Classifiers/NL.hs
@@ -1,22 +0,0 @@--- 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.NL (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/NL_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.NL_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/PL.hs
@@ -1,2284 +0,0 @@--- 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.PL (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("five",-        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 (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.5997731097824868, unseen = -4.875197323201151,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 129},-                   koData =-                     ClassData{prior = -0.7961464200320919, unseen = -4.68213122712422,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 106}}),-       ("exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -1.3862943611198906),-                                    ("<integer> (latent time-of-day)", -1.791759469228055),-                                    ("hour", -0.8754687373538999),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.6931471805599453),-                                    ("day (grain)yesterday", -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.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> <cycle> <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -2.120263536200091),-                                    ("quarteryear", -2.5257286443082556),-                                    ("third ordinalday (grain)on <date>", -2.5257286443082556),-                                    ("first ordinalweek (grain)named-month", -2.5257286443082556),-                                    ("weekmonth", -1.4271163556401458),-                                    ("ordinal (digits)quarter (grain)year", -2.5257286443082556),-                                    ("first ordinalweek (grain)intersect", -2.120263536200091),-                                    ("third ordinalday (grain)named-month", -2.5257286443082556),-                                    ("first ordinalweek (grain)on <date>", -2.120263536200091)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.7810085363512795, unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)after <time-of-day>", -3.5553480614894135),-                                    ("dayhour", -2.995732273553991),-                                    ("<ordinal> (as hour)evening|night", -2.5437471498109336),-                                    ("<ordinal> (as hour)on <date>", -4.248495242049359),-                                    ("yesterdayevening|night", -4.248495242049359),-                                    ("hourhour", -1.180442306915742),-                                    ("after <time-of-day>after <time-of-day>", -3.8430301339411947),-                                    ("until <time-of-day>morning", -3.8430301339411947),-                                    ("until <time-of-day>after <time-of-day>", -4.248495242049359),-                                    ("minutehour", -4.248495242049359),-                                    ("named-daymorning", -4.248495242049359),-                                    ("todayevening|night", -4.248495242049359),-                                    ("at <time-of-day>evening|night", -4.248495242049359),-                                    ("named-dayevening|night", -4.248495242049359),-                                    ("intersecton <date>", -4.248495242049359),-                                    ("<integer> (latent time-of-day)this <part-of-day>",-                                     -4.248495242049359),-                                    ("hh:mmon <date>", -4.248495242049359),-                                    ("<integer> (latent time-of-day)morning", -3.5553480614894135),-                                    ("at <time-of-day>on <date>", -4.248495242049359),-                                    ("intersectmorning", -3.1498829533812494),-                                    ("<integer> (latent time-of-day)evening|night",-                                     -2.995732273553991),-                                    ("from <datetime> - <datetime> (interval)morning",-                                     -4.248495242049359),-                                    ("from <time-of-day> - <time-of-day> (interval)morning",-                                     -4.248495242049359),-                                    ("on <date>morning", -4.248495242049359),-                                    ("at <time-of-day>morning", -3.8430301339411947),-                                    ("tomorrowevening|night", -3.8430301339411947)],-                               n = 49},-                   koData =-                     ClassData{prior = -0.6123858239154869,-                               unseen = -5.0689042022202315,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.971552579668651),-                                    ("yearhour", -1.9271008170978172),-                                    ("year (latent)on <date>", -4.3694478524670215),-                                    ("<day-of-month> (ordinal)on <date>", -4.3694478524670215),-                                    ("<time-of-day> - <time-of-day> (interval)morning",-                                     -4.3694478524670215),-                                    ("<day-of-month> (ordinal)evening|night", -2.6646997602285962),-                                    ("by the end of <time>morning", -4.3694478524670215),-                                    ("year (latent)evening|night", -3.1166848839716534),-                                    ("hourhour", -2.760009940032921),-                                    ("after <time-of-day>after <time-of-day>", -3.963982744358857),-                                    ("<day-of-month> (ordinal)morning", -3.963982744358857),-                                    ("<day-of-month> (ordinal)after <time-of-day>",-                                     -3.270835563798912),-                                    ("until <time-of-day>morning", -3.4531571205928664),-                                    ("until <time-of-day>after <time-of-day>", -4.3694478524670215),-                                    ("about <time-of-day>after <time-of-day>", -4.3694478524670215),-                                    ("by <time>morning", -4.3694478524670215),-                                    ("<integer> (latent time-of-day)after <time-of-day>",-                                     -3.963982744358857),-                                    ("<integer> (latent time-of-day)morning", -3.676300671907076),-                                    ("secondhour", -3.1166848839716534),-                                    ("intersectmorning", -3.4531571205928664),-                                    ("year (latent)morning", -2.6646997602285962),-                                    ("year (latent)after <time-of-day>", -3.963982744358857),-                                    ("at <time-of-day>after <time-of-day>", -4.3694478524670215)],-                               n = 58}}),-       ("today",-        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}}),-       ("mm/dd",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.14571181118139365,-                               unseen = -4.718498871295094,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -1.5740359853831845),-                                    ("<integer> (latent time-of-day)", -2.3116349285139637),-                                    ("about <time-of-day>", -4.0163830207523885),-                                    ("hh:mm", -3.6109179126442243),-                                    ("<time-of-day> rano", -2.917770732084279),-                                    ("hour", -0.8383291904044432),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -2.2246235515243336),-                                    ("minute", -3.100092288878234)],-                               n = 51},-                   koData =-                     ClassData{prior = -1.9980959022258835, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -1.8325814637483102),-                                    ("<integer> (latent time-of-day)", -1.8325814637483102),-                                    ("relative minutes after|past <integer> (hour-of-day)",-                                     -2.5257286443082556),-                                    ("hour", -1.1394342831883648),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -2.5257286443082556),-                                    ("minute", -2.5257286443082556)],-                               n = 8}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.891820298110627,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 23},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("11th ordinal",-        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}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -7.79615414697118e-2, unseen = -4.51085950651685,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.890371757896165),-                                    ("<time> <part-of-day>", -3.8066624897703196),-                                    ("intersect", -2.0149030205422647),-                                    ("next <cycle>", -3.1135153092103742),-                                    ("named-month", -2.1972245773362196),-                                    ("half to|till|before <integer> (hour-of-day)",-                                     -3.8066624897703196),-                                    ("day", -2.70805020110221), ("afternoon", -3.1135153092103742),-                                    ("this <cycle>", -2.890371757896165),-                                    ("year", -3.1135153092103742),-                                    ("named-day", -2.890371757896165),-                                    ("hour", -2.3025850929940455), ("month", -1.666596326274049),-                                    ("minute", -3.8066624897703196),-                                    ("this <time>", -3.8066624897703196)],-                               n = 37},-                   koData =-                     ClassData{prior = -2.5902671654458267,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -1.7047480922384253), ("hour", -1.7047480922384253)],-                               n = 3}}),-       ("8th ordinal",-        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}}),-       ("month (grain)",-        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}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -0.8649974374866046),-                                    ("<integer> (latent time-of-day)", -2.2512917986064953),-                                    ("hour", -0.7472144018302211)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -1.5040773967762742),-                                    ("<integer> (latent time-of-day)", -1.0986122886681098),-                                    ("hour", -0.8109302162163288)],-                               n = 3}}),-       ("on a named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> <time>",-        Classifier{okData =-                     ClassData{prior = -0.4989911661189879, unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("second ordinalnamed-dayintersect", -2.833213344056216),-                                    ("first ordinalnamed-dayon <date>", -2.833213344056216),-                                    ("daymonth", -1.4469189829363254),-                                    ("dayyear", -1.9859154836690123),-                                    ("third ordinalnamed-dayintersect", -2.833213344056216),-                                    ("third ordinalintersectyear", -2.833213344056216),-                                    ("third ordinalnamed-dayon <date>", -3.2386784521643803),-                                    ("first ordinalnamed-daynamed-month", -3.2386784521643803),-                                    ("first ordinalintersectyear", -2.833213344056216),-                                    ("first ordinalnamed-dayintersect", -2.833213344056216),-                                    ("second ordinalnamed-dayon <date>", -3.2386784521643803),-                                    ("second ordinalintersectyear", -2.833213344056216)],-                               n = 17},-                   koData =-                     ClassData{prior = -0.9343092373768334,-                               unseen = -3.6888794541139363,-                               likelihoods =-                                 HashMap.fromList-                                   [("third ordinalnamed-daynamed-month", -2.9704144655697013),-                                    ("first ordinalnamed-dayon <date>", -2.9704144655697013),-                                    ("daymonth", -1.717651497074333),-                                    ("14th ordinalnamed-month<integer> (latent time-of-day)",-                                     -2.5649493574615367),-                                    ("monthhour", -1.8718021769015913),-                                    ("second ordinalnamed-daynamed-month", -2.9704144655697013),-                                    ("third ordinalnamed-dayon <date>", -2.9704144655697013),-                                    ("first ordinalnamed-daynamed-month", -2.9704144655697013),-                                    ("ordinal (digits)named-month<integer> (latent time-of-day)",-                                     -2.277267285009756),-                                    ("second ordinalnamed-dayon <date>", -2.9704144655697013)],-                               n = 11}}),-       ("<ordinal> (as hour)",-        Classifier{okData =-                     ClassData{prior = -0.5773153650348236, unseen = -4.454347296253507,-                               likelihoods =-                                 HashMap.fromList-                                   [("11th ordinal", -3.056356895370426),-                                    ("8th ordinal", -3.3440389678222067),-                                    ("21st ordinal no space", -3.7495040759303713),-                                    ("20th ordinal", -3.7495040759303713),-                                    ("third ordinal", -1.8035939268750578),-                                    ("16th ordinal", -3.3440389678222067),-                                    ("18th ordinal", -3.3440389678222067),-                                    ("fifth ordinal", -3.7495040759303713),-                                    ("seventh ordinal", -3.3440389678222067),-                                    ("19th ordinal", -3.3440389678222067),-                                    ("21-29th ordinal", -3.3440389678222067),-                                    ("sixth ordinal", -3.3440389678222067),-                                    ("15th ordinal", -3.3440389678222067),-                                    ("second ordinal", -2.245426679154097),-                                    ("ordinal (digits)", -2.3632097148104805),-                                    ("10th ordinal", -2.496741107435003),-                                    ("9th ordinal", -2.3632097148104805),-                                    ("23rd ordinal no space", -3.7495040759303713)],-                               n = 64},-                   koData =-                     ClassData{prior = -0.8241754429663495, unseen = -4.276666119016055,-                               likelihoods =-                                 HashMap.fromList-                                   [("8th ordinal", -3.164067588373206),-                                    ("20th ordinal", -3.164067588373206),-                                    ("third ordinal", -2.316769727986002),-                                    ("14th ordinal", -3.164067588373206),-                                    ("13th ordinal", -3.56953269648137),-                                    ("15th ordinal", -2.8763855159214247),-                                    ("second ordinal", -2.8763855159214247),-                                    ("ordinal (digits)", -1.1716374236829996),-                                    ("first ordinal", -1.864784604242945)],-                               n = 50}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("21st ordinal no space",-        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}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -0.916290731874155),-                                    ("third ordinalquarter (grain)", -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.916290731874155),-                                    ("quarter", -0.916290731874155)],-                               n = 1}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.7319205664859061,-                               unseen = -6.3473892096560105,-                               likelihoods =-                                 HashMap.fromList-                                   [("<datetime> - <datetime> (interval)on <date>",-                                     -5.247024072160486),-                                    ("mm/dd<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -5.652489180268651),-                                    ("<hour-of-day> - <hour-of-day> (interval)on <date>",-                                     -5.247024072160486),-                                    ("named-daynamed-month", -4.736198448394496),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.247024072160486),-                                    ("hourday", -3.8607297110405954),-                                    ("dayhour", -2.790288299339182),-                                    ("daymonth", -3.8607297110405954),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyabsorption of , after named day",-                                     -4.736198448394496),-                                    ("monthyear", -3.1675825304806504),-                                    ("from <hour-of-day> - <hour-of-day> (interval)on a named-day",-                                     -5.652489180268651),-                                    ("from <time-of-day> - <time-of-day> (interval)on a named-day",-                                     -5.652489180268651),-                                    ("absorption of , after named dayintersect by \",\" 2",-                                     -5.247024072160486),-                                    ("intersecthh:mm", -5.247024072160486),-                                    ("from <datetime> - <datetime> (interval)on a named-day",-                                     -5.652489180268651),-                                    ("at <time-of-day>intersect by \",\" 2", -5.247024072160486),-                                    ("named-daylast <cycle>", -5.247024072160486),-                                    ("named-day<time-of-day> rano", -5.652489180268651),-                                    ("on a named-dayat <time-of-day>", -5.247024072160486),-                                    ("at <time-of-day>named-day", -5.247024072160486),-                                    ("at <time-of-day>on a named-day", -5.652489180268651),-                                    ("<time> <part-of-day>on a named-day", -5.247024072160486),-                                    ("on a named-day<time> <part-of-day>", -5.652489180268651),-                                    ("last <day-of-week> of <time>year", -5.652489180268651),-                                    ("today<time> <part-of-day>", -5.652489180268651),-                                    ("todayat <time-of-day>", -5.652489180268651),-                                    ("on <date>at <time-of-day>", -5.247024072160486),-                                    ("dayday", -2.978340530842122),-                                    ("on <date><time> <part-of-day>", -5.652489180268651),-                                    ("intersect by \",\"hh:mm", -4.399726211773283),-                                    ("mm/ddat <time-of-day>", -4.959341999708705),-                                    ("last <cycle> <time>year", -4.736198448394496),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.959341999708705),-                                    ("intersect<day-of-month> (non ordinal) <named-month>",-                                     -4.959341999708705),-                                    ("dayyear", -3.6375861597263857),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -5.247024072160486),-                                    ("day-after-tomorrow (single-word)at <time-of-day>",-                                     -5.652489180268651),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -4.148411783492376),-                                    ("tomorrow<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -5.652489180268651),-                                    ("named-monthyear", -3.51242301677238),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.26619481914876),-                                    ("tomorrowuntil <time-of-day>", -5.247024072160486),-                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -4.148411783492376),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\"",-                                     -4.736198448394496),-                                    ("named-dayin <duration>", -5.652489180268651),-                                    ("last <day-of-week> <time>year", -5.247024072160486),-                                    ("<time-of-day> ranoon <date>", -5.247024072160486),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.959341999708705),-                                    ("named-daynext <cycle>", -4.736198448394496),-                                    ("named-dayintersect", -5.247024072160486),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.959341999708705),-                                    ("on <date><time-of-day> rano", -5.652489180268651),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocytomorrow",-                                     -5.652489180268651),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.652489180268651),-                                    ("at <time-of-day>intersect", -5.247024072160486),-                                    ("dayminute", -3.301113923105173),-                                    ("intersect by \",\" 2hh:mm", -4.399726211773283),-                                    ("<time-of-day> ranoon a named-day", -5.247024072160486),-                                    ("from <hour-of-day> - <hour-of-day> (interval)on <date>",-                                     -5.652489180268651),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.652489180268651),-                                    ("intersectyear", -5.247024072160486),-                                    ("on a named-day<time-of-day> rano", -5.652489180268651),-                                    ("<ordinal> <cycle> of <time>year", -5.652489180268651),-                                    ("minuteday", -2.338303175596125),-                                    ("absorption of , after named dayintersect",-                                     -5.247024072160486),-                                    ("named-dayon <date>", -4.04305126783455),-                                    ("named-day<time> <part-of-day>", -4.959341999708705),-                                    ("named-dayat <time-of-day>", -5.247024072160486),-                                    ("yearhh:mm", -5.652489180268651),-                                    ("at <time-of-day>intersect by \",\"", -5.247024072160486),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -5.247024072160486),-                                    ("tomorrowexactly <time-of-day>", -4.959341999708705),-                                    ("at <time-of-day>absorption of , after named day",-                                     -5.247024072160486),-                                    ("at <time-of-day>on <date>", -5.652489180268651),-                                    ("on <date>year", -4.26619481914876),-                                    ("dayweek", -3.7065790312133373),-                                    ("<time> <part-of-day>on <date>", -5.247024072160486),-                                    ("weekyear", -4.399726211773283),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -4.959341999708705),-                                    ("<ordinal> <cycle> <time>year", -5.247024072160486),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\" 2",-                                     -4.736198448394496),-                                    ("tomorrowat <time-of-day>", -5.652489180268651),-                                    ("named-daythis <cycle>", -5.247024072160486),-                                    ("tomorrow<time> <part-of-day>", -5.652489180268651),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect",-                                     -4.736198448394496),-                                    ("<named-month> <day-of-month> (ordinal)year",-                                     -5.652489180268651),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocynamed-day",-                                     -4.736198448394496),-                                    ("tomorrow<time-of-day> rano", -5.652489180268651),-                                    ("<datetime> - <datetime> (interval)on a named-day",-                                     -5.247024072160486),-                                    ("last <cycle> of <time>year", -5.247024072160486),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -5.652489180268651),-                                    ("<time-of-day> - <time-of-day> (interval)on a named-day",-                                     -5.247024072160486),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -5.247024072160486),-                                    ("<hour-of-day> - <hour-of-day> (interval)on a named-day",-                                     -5.247024072160486),-                                    ("yearminute", -5.652489180268651)],-                               n = 215},-                   koData =-                     ClassData{prior = -0.655821222947259, unseen = -6.405228458030842,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)<named-month> <day-of-month> (non ordinal)",-                                     -4.61181472870676),-                                    ("<time-of-day> ranoby <time>", -5.304961909266705),-                                    ("intersect by \",\"named-month", -4.206349620598596),-                                    ("named-daynamed-month", -5.304961909266705),-                                    ("hourday", -2.7926562852905903),-                                    ("dayhour", -3.107737331930486),-                                    ("daymonth", -3.312531744576499),-                                    ("monthday", -5.304961909266705),-                                    ("monthyear", -4.794136285500715),-                                    ("named-month<hour-of-day> <integer> (as relative minutes)",-                                     -5.71042701737487),-                                    ("at <time-of-day>intersect by \",\" 2", -5.71042701737487),-                                    ("houryear", -3.570360853878599),-                                    ("<time> <part-of-day>until <time-of-day>", -5.304961909266705),-                                    ("<ordinal> (as hour)intersect", -3.145477659913333),-                                    ("monthhour", -4.61181472870676),-                                    ("<time> <part-of-day><time> <part-of-day>",-                                     -5.017279836814924),-                                    ("hourmonth", -2.0860860843985045),-                                    ("mm/ddat <time-of-day>", -5.71042701737487),-                                    ("hourhour", -4.794136285500715),-                                    ("<time> <part-of-day>by <time>", -5.304961909266705),-                                    ("intersectnamed-month", -3.4591352187683744),-                                    ("dayyear", -4.457664048879502),-                                    ("<time-of-day> ranoby the end of <time>", -5.304961909266705),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -5.304961909266705),-                                    ("intersect by \",\" 2named-month", -4.206349620598596),-                                    ("monthminute", -5.304961909266705),-                                    ("minutemonth", -5.017279836814924),-                                    ("named-monthyear", -4.794136285500715),-                                    ("absorption of , after named daynamed-month",-                                     -4.324132656254979),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\"",-                                     -5.304961909266705),-                                    ("after <time-of-day>at <time-of-day>", -5.71042701737487),-                                    ("hh:mmby the end of <time>", -5.71042701737487),-                                    ("<ordinal> (as hour)named-month", -3.036278367948341),-                                    ("daysecond", -5.304961909266705),-                                    ("<time> <part-of-day>by the end of <time>",-                                     -5.304961909266705),-                                    ("named-month<ordinal> (as hour)", -4.794136285500715),-                                    ("<time> <part-of-day><time-of-day> rano", -5.71042701737487),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -5.71042701737487),-                                    ("named-dayintersect", -4.100989104940769),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.71042701737487),-                                    ("<time-of-day> rano<time> <part-of-day>", -5.304961909266705),-                                    ("at <time-of-day>intersect", -5.71042701737487),-                                    ("dayminute", -5.304961909266705),-                                    ("<named-month> <day-of-month> (non ordinal)by <time>",-                                     -5.71042701737487),-                                    ("intersecton <date>", -4.324132656254979),-                                    ("intersectyear", -3.312531744576499),-                                    ("minuteday", -3.7645168683195562),-                                    ("absorption of , after named dayintersect",-                                     -4.206349620598596),-                                    ("<ordinal> (as hour)year", -5.71042701737487),-                                    ("named-dayon <date>", -4.794136285500715),-                                    ("hh:mmon <date>", -5.304961909266705),-                                    ("absorption of , after named day<ordinal> (as hour)",-                                     -4.206349620598596),-                                    ("at <time-of-day>intersect by \",\"", -5.71042701737487),-                                    ("<named-month> <day-of-month> (non ordinal)by the end of <time>",-                                     -5.71042701737487),-                                    ("tomorrowexactly <time-of-day>", -5.71042701737487),-                                    ("hoursecond", -3.8386248404732783),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -5.304961909266705),-                                    ("named-day<ordinal> (as hour)", -5.017279836814924),-                                    ("<ordinal> (as hour)named-day", -4.206349620598596),-                                    ("named-monthrelative minutes to|till|before <integer> (hour-of-day)",-                                     -5.71042701737487),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -5.304961909266705),-                                    ("intersectintersect", -4.457664048879502),-                                    ("hh:mmon a named-day", -5.304961909266705),-                                    ("named-monthintersect", -5.71042701737487),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\" 2",-                                     -5.304961909266705),-                                    ("hh:mmby <time>", -5.71042701737487),-                                    ("tomorrowat <time-of-day>", -5.71042701737487),-                                    ("minutesecond", -5.304961909266705),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect",-                                     -5.304961909266705),-                                    ("yearminute", -5.304961909266705)],-                               n = 232}}),-       ("half after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("twenty",-        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}}),-       ("20th ordinal",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("a few",-        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}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7047480922384253),-                                    ("first ordinalweek (grain)named-month", -1.7047480922384253),-                                    ("weekmonth", -1.2992829841302609),-                                    ("first ordinalweek (grain)intersect", -1.7047480922384253),-                                    ("third ordinalday (grain)named-month", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("year (grain)",-        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 <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6739764335716716),-                                    ("<time-of-day> rano<time-of-day> rano", -2.0794415416798357),-                                    ("hh:mmhh:mm", -1.6739764335716716),-                                    ("hourhour", -1.6739764335716716),-                                    ("<time-of-day> rano<integer> (latent time-of-day)",-                                     -2.0794415416798357)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6739764335716716),-                                    ("minutehour", -1.6739764335716716),-                                    ("hh:mmintersect", -1.6739764335716716),-                                    ("hh:mm<integer> (latent time-of-day)", -1.6739764335716716)],-                               n = 4}}),-       ("from <hour-of-day> - <hour-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.6931471805599453),-                                    ("hh:mmhh:mm", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = -6.453852113757118e-2,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("month (grain)", -3.044522437723423),-                                    ("year (grain)", -2.639057329615259),-                                    ("second", -3.044522437723423),-                                    ("week (grain)", -1.540445040947149),-                                    ("quarter", -2.3513752571634776), ("year", -2.639057329615259),-                                    ("second (grain)", -3.044522437723423),-                                    ("month", -3.044522437723423),-                                    ("quarter (grain)", -2.3513752571634776)],-                               n = 15},-                   koData =-                     ClassData{prior = -2.772588722239781, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("minute (grain)", -1.9459101490553135),-                                    ("minute", -1.9459101490553135)],-                               n = 1}}),-       ("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.40546510810816444,-                               unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6094379124341003),-                                    ("<time-of-day> rano<time-of-day> rano", -2.0149030205422647),-                                    ("hh:mmhh:mm", -1.6094379124341003),-                                    ("hourhour", -1.6094379124341003),-                                    ("<time-of-day> rano<integer> (latent time-of-day)",-                                     -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("minutehour", -1.2992829841302609),-                                    ("hh:mm<integer> (latent time-of-day)", -1.2992829841302609)],-                               n = 2}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],-                               n = 1}}),-       ("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 = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -8.004270767353637e-2),-                                    ("one", -2.5649493574615367)],-                               n = 24}}),-       ("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}}),-       ("evening|night",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("third ordinal",-        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}}),-       ("yesterday",-        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}}),-       ("<ordinal> quarter <year>",-        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}}),-       ("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}}),-       ("intersect by \",\" 2",-        Classifier{okData =-                     ClassData{prior = -0.46430560813109784, unseen = -4.74493212836325,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect by \",\"year", -4.04305126783455),-                                    ("intersect by \",\" 2intersect", -4.04305126783455),-                                    ("dayday", -1.4781019103730135),-                                    ("named-dayintersect by \",\"", -3.6375861597263857),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.349904087274605),-                                    ("intersect<day-of-month> (non ordinal) <named-month>",-                                     -3.349904087274605),-                                    ("dayyear", -2.9444389791664407),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -4.04305126783455),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -2.538973871058276),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -2.6567569067146595),-                                    ("intersect by \",\"intersect", -4.04305126783455),-                                    ("named-dayintersect", -3.6375861597263857),-                                    ("intersect by \",\" 2year", -4.04305126783455),-                                    ("named-dayintersect by \",\" 2", -3.6375861597263857),-                                    ("dayminute", -2.538973871058276),-                                    ("intersectyear", -4.04305126783455),-                                    ("minuteday", -2.790288299339182),-                                    ("intersectintersect", -4.04305126783455),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -2.538973871058276),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.6375861597263857)],-                               n = 44},-                   koData =-                     ClassData{prior = -0.9903987040278769,-                               unseen = -4.3694478524670215,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.277267285009756),-                                    ("dayhour", -1.5234954826333758),-                                    ("daymonth", -2.277267285009756),-                                    ("intersectnamed-month", -2.9704144655697013),-                                    ("minutemonth", -2.9704144655697013),-                                    ("named-dayintersect", -2.159484249353372),-                                    ("named-day<ordinal> (as hour)", -2.159484249353372)],-                               n = 26}}),-       ("16th ordinal",-        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}}),-       ("quarter to|till|before <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -1.791759469228055),-                                    ("<integer> (latent time-of-day)", -1.791759469228055),-                                    ("noon", -1.3862943611198906), ("hour", -0.8754687373538999)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> (latent time-of-day)",-        Classifier{okData =-                     ClassData{prior = -0.505548566665147, unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -7.598590697792199e-2),-                                    ("fifteen", -3.0204248861443626)],-                               n = 38},-                   koData =-                     ClassData{prior = -0.924258901523332, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.15415067982725836),-                                    ("one", -2.639057329615259), ("fifteen", -2.639057329615259)],-                               n = 25}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("second ordinalnamed-dayintersect", -2.0149030205422647),-                                    ("daymonth", -1.0986122886681098),-                                    ("third ordinalnamed-dayintersect", -2.0149030205422647),-                                    ("first ordinalnamed-daynamed-month", -2.0149030205422647),-                                    ("first ordinalnamed-dayintersect", -2.0149030205422647)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("third ordinalnamed-daynamed-month", -1.8718021769015913),-                                    ("daymonth", -1.1786549963416462),-                                    ("second ordinalnamed-daynamed-month", -1.8718021769015913),-                                    ("first ordinalnamed-daynamed-month", -1.8718021769015913)],-                               n = 3}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.51085950651685,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 89},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("18th ordinal",-        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}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.784189633918261,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fifth ordinal",-        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.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <day-of-week> <time>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.791759469228055),-                                    ("daymonth", -0.9444616088408514),-                                    ("named-dayintersect", -1.791759469228055),-                                    ("named-dayon <date>", -1.791759469228055)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayin <duration>", -1.3862943611198906),-                                    ("dayminute", -1.3862943611198906)],-                               n = 1}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("<unit-of-duration> as a duration",-        Classifier{okData =-                     ClassData{prior = -2.3608540011180215,-                               unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6314168191528755),-                                    ("hour (grain)", -2.7300291078209855),-                                    ("second", -2.4423470353692043),-                                    ("week (grain)", -1.6314168191528755),-                                    ("day", -3.1354942159291497),-                                    ("minute (grain)", -3.1354942159291497),-                                    ("second (grain)", -2.4423470353692043),-                                    ("hour", -2.7300291078209855), ("minute", -3.1354942159291497),-                                    ("day (grain)", -3.1354942159291497)],-                               n = 15},-                   koData =-                     ClassData{prior = -9.909090264423089e-2,-                               unseen = -5.720311776607412,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.161679639916808),-                                    ("month (grain)", -3.2321210516182215),-                                    ("hour (grain)", -2.7212954278522306),-                                    ("year (grain)", -2.8838143573500057),-                                    ("second", -2.8838143573500057),-                                    ("week (grain)", -2.161679639916808),-                                    ("day", -2.498151876538021), ("quarter", -3.5198031240700023),-                                    ("minute (grain)", -2.8838143573500057),-                                    ("year", -2.8838143573500057),-                                    ("second (grain)", -2.8838143573500057),-                                    ("hour", -2.7212954278522306), ("month", -3.2321210516182215),-                                    ("quarter (grain)", -3.5198031240700023),-                                    ("minute", -2.8838143573500057),-                                    ("day (grain)", -2.498151876538021)],-                               n = 144}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -1.5040773967762742),-                                    ("evening|night", -1.0986122886681098),-                                    ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("christmas 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}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.19671029424605427,-                               unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("third ordinalnamed-month", -3.295836866004329),-                                    ("8th ordinalnamed-month", -2.890371757896165),-                                    ("first ordinalnamed-month", -2.890371757896165),-                                    ("15th ordinalnamed-month", -2.890371757896165),-                                    ("ordinal (digits)named-month", -1.2163953243244932),-                                    ("month", -0.8109302162163288),-                                    ("13th ordinalnamed-month", -3.295836866004329)],-                               n = 23},-                   koData =-                     ClassData{prior = -1.7227665977411035,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("14th ordinalnamed-month", -1.791759469228055),-                                    ("ordinal (digits)named-month", -1.5040773967762742),-                                    ("month", -1.0986122886681098)],-                               n = 5}}),-       ("<duration> hence",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3121863889661687),-                                    ("<unit-of-duration> as a duration", -1.8718021769015913),-                                    ("day", -2.159484249353372), ("year", -2.5649493574615367),-                                    ("<integer> <unit-of-duration>", -1.1786549963416462),-                                    ("month", -2.5649493574615367)],-                               n = 10},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.0794415416798357),-                                    ("<unit-of-duration> as a duration", -0.9808292530117262),-                                    ("day", -1.6739764335716716), ("year", -2.0794415416798357),-                                    ("month", -2.0794415416798357)],-                               n = 5}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 11}}),-       ("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.2876820724517809,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<cycle> after <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -0.6931471805599453),-                                    ("dayday", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("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}}),-       ("half to|till|before <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.3862943611198906),-                                    ("day", -1.3862943611198906),-                                    ("named-day", -1.3862943611198906),-                                    ("month", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("two",-        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}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -2.456735772821304),-                                    ("year (latent)", -2.8622008809294686),-                                    ("<integer> (latent time-of-day)", -1.9459101490553135),-                                    ("day", -2.456735772821304), ("year", -2.8622008809294686),-                                    ("hh:mm", -2.8622008809294686),-                                    ("<day-of-month> (ordinal)", -2.456735772821304),-                                    ("noon", -2.8622008809294686),-                                    ("<time-of-day> rano", -2.8622008809294686),-                                    ("hour", -1.3581234841531944), ("minute", -2.8622008809294686)],-                               n = 12}}),-       ("seventh ordinal",-        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}}),-       ("half an hour",-        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}}),-       ("one",-        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}}),-       ("afternoon",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("<duration> from now",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("second", -1.9459101490553135),-                                    ("<unit-of-duration> as a duration", -1.540445040947149),-                                    ("day", -1.9459101490553135), ("year", -1.9459101490553135),-                                    ("<integer> <unit-of-duration>", -1.540445040947149),-                                    ("minute", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("<unit-of-duration> as a duration", -1.2039728043259361),-                                    ("year", -1.6094379124341003), ("minute", -1.6094379124341003)],-                               n = 2}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5869650565820417),-                                    ("year (grain)", -1.9924301646902063),-                                    ("week (grain)", -1.5869650565820417),-                                    ("day", -2.6855773452501515), ("quarter", -2.3978952727983707),-                                    ("year", -1.9924301646902063),-                                    ("quarter (grain)", -2.3978952727983707),-                                    ("day (grain)", -2.6855773452501515)],-                               n = 18},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("last <cycle> <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.540445040947149),-                                    ("week (grain)named-month", -2.639057329615259),-                                    ("day (grain)intersect", -2.2335922215070942),-                                    ("day (grain)on <date>", -2.2335922215070942),-                                    ("weekmonth", -1.540445040947149),-                                    ("day (grain)named-month", -2.639057329615259),-                                    ("week (grain)intersect", -2.2335922215070942),-                                    ("week (grain)on <date>", -2.2335922215070942)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.4423470353692043),-                                    ("<ordinal> (as hour)", -1.5260563034950494),-                                    ("<integer> (latent time-of-day)", -2.03688192726104),-                                    ("hour", -0.9382696385929302),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -2.4423470353692043)],-                               n = 8},-                   koData =-                     ClassData{prior = -2.1972245773362196,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("relative minutes after|past <integer> (hour-of-day)",-                                     -1.5040773967762742),-                                    ("minute", -1.5040773967762742)],-                               n = 1}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.14842000511827333,-                               unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 25},-                   koData =-                     ClassData{prior = -1.9810014688665833, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.252762968495368),-                                    ("daymonth", -0.8472978603872037),-                                    ("named-dayintersect", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.7404000654104909, unseen = -4.59511985013459,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.2823823856765264),-                                    ("threemonth (grain)", -3.4863551900024623),-                                    ("fifteenminute (grain)", -3.891820298110627),-                                    ("a fewhour (grain)", -3.891820298110627),-                                    ("integer (numeric)day (grain)", -2.793208009442517),-                                    ("twoweek (grain)", -3.891820298110627),-                                    ("fiveday (grain)", -3.891820298110627),-                                    ("oneweek (grain)", -3.1986731175506815),-                                    ("oneminute (grain)", -3.891820298110627),-                                    ("integer (numeric)year (grain)", -3.891820298110627),-                                    ("day", -2.505525936990736), ("year", -3.1986731175506815),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("oneday (grain)", -3.891820298110627),-                                    ("hour", -3.1986731175506815), ("month", -3.4863551900024623),-                                    ("threeweek (grain)", -3.4863551900024623),-                                    ("integer (numeric)minute (grain)", -2.793208009442517),-                                    ("minute", -2.505525936990736),-                                    ("integer (numeric)hour (grain)", -3.4863551900024623),-                                    ("twoyear (grain)", -3.4863551900024623)],-                               n = 31},-                   koData =-                     ClassData{prior = -0.6480267452794757, unseen = -4.653960350157523,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.8526314299133175),-                                    ("threemonth (grain)", -3.951243718581427),-                                    ("threehour (grain)", -3.951243718581427),-                                    ("integer (numeric)day (grain)", -3.258096538021482),-                                    ("twoweek (grain)", -3.951243718581427),-                                    ("twominute (grain)", -3.951243718581427),-                                    ("second", -2.6984807500860595),-                                    ("threeday (grain)", -3.951243718581427),-                                    ("threeyear (grain)", -3.951243718581427),-                                    ("integer (numeric)second (grain)", -3.0349529867072724),-                                    ("twomonth (grain)", -3.951243718581427),-                                    ("onehour (grain)", -3.951243718581427),-                                    ("integer (numeric)year (grain)", -3.545778610473263),-                                    ("threesecond (grain)", -3.951243718581427),-                                    ("day", -2.6984807500860595), ("year", -3.0349529867072724),-                                    ("threeminute (grain)", -3.951243718581427),-                                    ("integer (numeric)week (grain)", -3.258096538021482),-                                    ("twoday (grain)", -3.951243718581427),-                                    ("hour", -2.6984807500860595), ("month", -3.258096538021482),-                                    ("threeweek (grain)", -3.951243718581427),-                                    ("integer (numeric)minute (grain)", -3.545778610473263),-                                    ("a fewday (grain)", -3.951243718581427),-                                    ("integer (numeric)month (grain)", -3.951243718581427),-                                    ("minute", -3.0349529867072724),-                                    ("twosecond (grain)", -3.951243718581427),-                                    ("integer (numeric)hour (grain)", -3.258096538021482),-                                    ("fifteenhour (grain)", -3.951243718581427),-                                    ("twoyear (grain)", -3.951243718581427)],-                               n = 34}}),-       ("19th ordinal",-        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 = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> after <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.6931471805599453),-                                    ("<unit-of-duration> as a durationtomorrow",-                                     -0.6931471805599453)],-                               n = 1}}),-       ("relative minutes after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)<integer> (latent time-of-day)",-                                     -1.7047480922384253),-                                    ("fifteen<ordinal> (as hour)", -1.7047480922384253),-                                    ("hour", -1.0116009116784799),-                                    ("integer (numeric)<ordinal> (as hour)", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)noon", -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 2}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.46430560813109784, unseen = -4.74493212836325,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect by \",\"year", -4.04305126783455),-                                    ("intersect by \",\" 2intersect", -4.04305126783455),-                                    ("dayday", -1.4781019103730135),-                                    ("named-dayintersect by \",\"", -3.6375861597263857),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.349904087274605),-                                    ("intersect<day-of-month> (non ordinal) <named-month>",-                                     -3.349904087274605),-                                    ("dayyear", -2.9444389791664407),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -4.04305126783455),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -2.538973871058276),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -2.6567569067146595),-                                    ("intersect by \",\"intersect", -4.04305126783455),-                                    ("named-dayintersect", -3.6375861597263857),-                                    ("intersect by \",\" 2year", -4.04305126783455),-                                    ("named-dayintersect by \",\" 2", -3.6375861597263857),-                                    ("dayminute", -2.538973871058276),-                                    ("intersectyear", -4.04305126783455),-                                    ("minuteday", -2.790288299339182),-                                    ("intersectintersect", -4.04305126783455),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -2.538973871058276),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.6375861597263857)],-                               n = 44},-                   koData =-                     ClassData{prior = -0.9903987040278769,-                               unseen = -4.3694478524670215,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -2.277267285009756),-                                    ("dayhour", -1.5234954826333758),-                                    ("daymonth", -2.277267285009756),-                                    ("intersectnamed-month", -2.9704144655697013),-                                    ("minutemonth", -2.9704144655697013),-                                    ("named-dayintersect", -2.159484249353372),-                                    ("named-day<ordinal> (as hour)", -2.159484249353372)],-                               n = 26}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -4.652001563489282e-2,-                               unseen = -3.1354942159291497,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 21},-                   koData =-                     ClassData{prior = -3.0910424533583156,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("14th ordinal",-        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}}),-       ("21-29th ordinal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("second ordinal", -0.6931471805599453),-                                    ("first ordinal", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.584967478670572,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 96},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> before <time>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.6931471805599453),-                                    ("<unit-of-duration> as a durationyesterday",-                                     -0.6931471805599453)],-                               n = 1}}),-       ("second (grain)",-        Classifier{okData =-                     ClassData{prior = -0.9985288301111273,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.4595323293784402, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),-       ("13th ordinal",-        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.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daylast <cycle>", -0.6931471805599453),-                                    ("dayweek", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3121863889661687),-                                    ("<unit-of-duration> as a duration", -1.8718021769015913),-                                    ("day", -2.159484249353372), ("year", -2.5649493574615367),-                                    ("<integer> <unit-of-duration>", -1.1786549963416462),-                                    ("month", -2.5649493574615367)],-                               n = 10},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.0794415416798357),-                                    ("<unit-of-duration> as a duration", -0.9808292530117262),-                                    ("day", -1.6739764335716716), ("year", -2.0794415416798357),-                                    ("month", -2.0794415416798357)],-                               n = 5}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.1631508098056809),-                                    ("named-day", -1.1631508098056809)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> o'clock", -2.5902671654458267),-                                    ("intersect", -2.3025850929940455),-                                    ("year (latent)", -2.0794415416798357),-                                    ("<integer> (latent time-of-day)", -2.0794415416798357),-                                    ("day", -1.742969305058623), ("year", -2.0794415416798357),-                                    ("named-day", -2.3025850929940455),-                                    ("hour", -1.742969305058623)],-                               n = 16}}),-       ("sixth ordinal",-        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 = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("11th ordinal", -2.2335922215070942),-                                    ("8th ordinal", -2.639057329615259),-                                    ("third ordinal", -2.2335922215070942),-                                    ("16th ordinal", -2.639057329615259),-                                    ("second ordinal", -1.7227665977411035),-                                    ("ordinal (digits)", -2.2335922215070942),-                                    ("10th ordinal", -1.7227665977411035),-                                    ("9th ordinal", -1.7227665977411035)],-                               n = 20}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -1.791759469228055, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.1823215567939546,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -2.2246235515243336),-                                    ("<ordinal> (as hour)", -2.512305623976115),-                                    ("<integer> (latent time-of-day)", -2.512305623976115),-                                    ("<time-of-day> rano", -2.512305623976115),-                                    ("hour", -1.213022639845854),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -2.917770732084279)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -4.060443010546419,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -2.2512917986064953),-                                    ("<ordinal> (as hour)", -2.9444389791664407),-                                    ("year (latent)", -2.6567569067146595),-                                    ("yesterday", -3.349904087274605),-                                    ("<integer> (latent time-of-day)", -3.349904087274605),-                                    ("day", -2.9444389791664407), ("year", -2.6567569067146595),-                                    ("hh:mm", -3.349904087274605),-                                    ("<day-of-month> (ordinal)", -3.349904087274605),-                                    ("noon", -2.9444389791664407),-                                    ("<time-of-day> rano", -3.349904087274605),-                                    ("hour", -1.3350010667323402),-                                    ("<datetime> - <datetime> (interval)", -3.349904087274605),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -3.349904087274605),-                                    ("<hour-of-day> - <hour-of-day> (interval)",-                                     -3.349904087274605),-                                    ("minute", -3.349904087274605)],-                               n = 20}}),-       ("<integer> and an half hours",-        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}}),-       ("<time-of-day> rano",-        Classifier{okData =-                     ClassData{prior = -0.10008345855698253,-                               unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.0149030205422647),-                                    ("<ordinal> (as hour)", -2.70805020110221),-                                    ("<integer> (latent time-of-day)", -1.5040773967762742),-                                    ("hh:mm", -3.1135153092103742),-                                    ("until <time-of-day>", -2.70805020110221),-                                    ("hour", -0.8622235106038793), ("minute", -3.1135153092103742)],-                               n = 19},-                   koData =-                     ClassData{prior = -2.3513752571634776,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -1.7047480922384253),-                                    ("until <time-of-day>", -1.7047480922384253),-                                    ("hour", -1.2992829841302609)],-                               n = 2}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               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.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -2.4849066497880004),-                                    ("day", -0.8754687373538999),-                                    ("named-day", -0.8754687373538999),-                                    ("month", -2.4849066497880004)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("month (grain)", -1.6739764335716716),-                                    ("year (grain)", -2.367123614131617),-                                    ("week (grain)", -1.6739764335716716),-                                    ("year", -2.367123614131617), ("month", -1.6739764335716716)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("week (grain)", -1.6739764335716716),-                                    ("day", -1.6739764335716716),-                                    ("day (grain)", -1.6739764335716716)],-                               n = 4}}),-       ("christmas",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.793208009442517),-                                    ("threemonth (grain)", -3.1986731175506815),-                                    ("threehour (grain)", -3.1986731175506815),-                                    ("integer (numeric)day (grain)", -3.1986731175506815),-                                    ("second", -2.793208009442517),-                                    ("threeday (grain)", -3.1986731175506815),-                                    ("threeyear (grain)", -3.1986731175506815),-                                    ("integer (numeric)second (grain)", -3.1986731175506815),-                                    ("integer (numeric)year (grain)", -3.1986731175506815),-                                    ("threesecond (grain)", -3.1986731175506815),-                                    ("day", -2.505525936990736), ("year", -2.793208009442517),-                                    ("threeminute (grain)", -3.1986731175506815),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("hour", -2.793208009442517), ("month", -3.1986731175506815),-                                    ("threeweek (grain)", -3.1986731175506815),-                                    ("integer (numeric)minute (grain)", -3.1986731175506815),-                                    ("a fewday (grain)", -3.1986731175506815),-                                    ("minute", -2.793208009442517),-                                    ("integer (numeric)hour (grain)", -3.1986731175506815)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("15th ordinal",-        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}}),-       ("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 = -2.4849066497880004,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)", -2.456735772821304),-                                    ("year (latent)", -2.8622008809294686),-                                    ("<integer> (latent time-of-day)", -1.9459101490553135),-                                    ("day", -2.456735772821304), ("year", -2.8622008809294686),-                                    ("hh:mm", -2.8622008809294686),-                                    ("<day-of-month> (ordinal)", -2.456735772821304),-                                    ("noon", -2.8622008809294686),-                                    ("<time-of-day> rano", -2.8622008809294686),-                                    ("hour", -1.3581234841531944), ("minute", -2.8622008809294686)],-                               n = 12}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -4.0943445622221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.691243082785829),-                                    ("number.number hours", -3.3843902633457743),-                                    ("second", -2.9789251552376097),-                                    ("<unit-of-duration> as a duration", -1.9980959022258835),-                                    ("day", -2.9789251552376097),-                                    ("half an hour", -3.3843902633457743),-                                    ("<integer> <unit-of-duration>", -1.5125880864441827),-                                    ("<integer> and an half hours", -3.3843902633457743),-                                    ("hour", -2.2857779746776643), ("minute", -1.5125880864441827),-                                    ("about <duration>", -2.9789251552376097)],-                               n = 24},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.749199854809259), ("second", -2.03688192726104),-                                    ("<unit-of-duration> as a duration", -1.5260563034950494),-                                    ("<integer> <unit-of-duration>", -2.03688192726104),-                                    ("minute", -2.4423470353692043)],-                               n = 6}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.466337068793427, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.7227665977411035),-                                    ("hh:mmhh:mm", -1.7227665977411035),-                                    ("dayday", -2.2335922215070942),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -2.2335922215070942)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.262364264467491, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -2.9267394020670396),-                                    ("about <time-of-day>noon", -3.332204510175204),-                                    ("minuteminute", -2.2335922215070942),-                                    ("<time-of-day> rano<time-of-day> rano", -3.332204510175204),-                                    ("until <time-of-day>noon", -3.332204510175204),-                                    ("hh:mmhh:mm", -3.332204510175204),-                                    ("hourhour", -1.540445040947149),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -2.9267394020670396),-                                    ("after <time-of-day>noon", -2.9267394020670396),-                                    ("hh:mmintersect", -2.4159137783010487),-                                    ("at <time-of-day>noon", -3.332204510175204),-                                    ("<ordinal> (as hour)noon", -2.2335922215070942),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -2.9267394020670396),-                                    ("yearminute", -2.9267394020670396)],-                               n = 20}}),-       ("second ordinal",-        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}}),-       ("<time-of-day> popo\322udniu/wieczorem/w nocy",-        Classifier{okData =-                     ClassData{prior = -1.5037877364540559e-2,-                               unseen = -4.962844630259907,-                               likelihoods =-                                 HashMap.fromList-                                   [("exactly <time-of-day>", -4.2626798770413155),-                                    ("at <time-of-day>", -2.4709204078132605),-                                    ("<ordinal> (as hour)", -1.5218398531161146),-                                    ("<integer> (latent time-of-day)", -2.01138807843482),-                                    ("about <time-of-day>", -4.2626798770413155),-                                    ("hh:mm", -3.857214768933151),-                                    ("until <time-of-day>", -4.2626798770413155),-                                    ("hour", -0.812692331209728), ("minute", -3.3463891451671604),-                                    ("after <time-of-day>", -3.857214768933151)],-                               n = 66},-                   koData =-                     ClassData{prior = -4.204692619390966, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.791759469228055),-                                    ("hour", -1.791759469228055)],-                               n = 1}}),-       ("fifteen",-        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-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.749199854809259, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.4350845252893227),-                                    ("hh:mmhh:mm", -1.4350845252893227)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.19105523676270922,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("about <time-of-day>noon", -3.2386784521643803),-                                    ("relative minutes to|till|before <integer> (hour-of-day)<integer> (latent time-of-day)",-                                     -3.2386784521643803),-                                    ("minuteminute", -3.2386784521643803),-                                    ("<time-of-day> rano<time-of-day> rano", -3.2386784521643803),-                                    ("until <time-of-day>noon", -3.2386784521643803),-                                    ("hh:mmhh:mm", -3.2386784521643803),-                                    ("hourhour", -1.3668762752627892),-                                    ("minutehour", -1.9859154836690123),-                                    ("after <time-of-day>noon", -2.833213344056216),-                                    ("at <time-of-day>noon", -3.2386784521643803),-                                    ("<ordinal> (as hour)noon", -2.1400661634962708),-                                    ("<time-of-day> rano<integer> (latent time-of-day)",-                                     -3.2386784521643803),-                                    ("hh:mm<integer> (latent time-of-day)", -2.1400661634962708)],-                               n = 19}}),-       ("<hour-of-day> - <hour-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.3350010667323402),-                                    ("hh:mmhh:mm", -1.3350010667323402)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("about <time-of-day>noon", -3.068052935133617),-                                    ("minuteminute", -3.068052935133617),-                                    ("<time-of-day> rano<time-of-day> rano", -3.068052935133617),-                                    ("until <time-of-day>noon", -3.068052935133617),-                                    ("hh:mmhh:mm", -3.068052935133617),-                                    ("hourhour", -0.9886113934537812),-                                    ("after <time-of-day>noon", -2.662587827025453),-                                    ("at <time-of-day>noon", -3.068052935133617),-                                    ("<ordinal> (as hour)noon", -1.9694406464655074),-                                    ("<integer> (latent time-of-day)noon", -2.662587827025453),-                                    ("<integer> (latent time-of-day)<ordinal> (as hour)",-                                     -2.662587827025453)],-                               n = 16}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.583997552432231),-                                    ("integer (numeric)day (grain)", -2.871679624884012),-                                    ("twoweek (grain)", -3.2771447329921766),-                                    ("twominute (grain)", -3.2771447329921766),-                                    ("second", -2.871679624884012),-                                    ("integer (numeric)second (grain)", -3.2771447329921766),-                                    ("twomonth (grain)", -3.2771447329921766),-                                    ("onehour (grain)", -3.2771447329921766),-                                    ("integer (numeric)year (grain)", -3.2771447329921766),-                                    ("day", -2.583997552432231), ("year", -2.871679624884012),-                                    ("integer (numeric)week (grain)", -2.871679624884012),-                                    ("twoday (grain)", -3.2771447329921766),-                                    ("hour", -2.871679624884012), ("month", -2.871679624884012),-                                    ("integer (numeric)minute (grain)", -3.2771447329921766),-                                    ("integer (numeric)month (grain)", -3.2771447329921766),-                                    ("minute", -2.871679624884012),-                                    ("twosecond (grain)", -3.2771447329921766),-                                    ("integer (numeric)hour (grain)", -3.2771447329921766),-                                    ("twoyear (grain)", -3.2771447329921766)],-                               n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 20},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 8}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.1431008436406733, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 13},-                   koData =-                     ClassData{prior = -2.0149030205422647,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("three",-        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}}),-       ("ordinal (digits)",-        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}}),-       ("quarter (grain)",-        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}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.540445040947149),-                                    ("week (grain)named-month", -1.9459101490553135),-                                    ("day (grain)intersect", -1.9459101490553135),-                                    ("weekmonth", -1.540445040947149),-                                    ("day (grain)named-month", -1.9459101490553135),-                                    ("week (grain)intersect", -1.9459101490553135)],-                               n = 4},-                   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 = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("14th ordinalnamed-month", -1.791759469228055),-                                    ("third ordinalnamed-month", -2.1972245773362196),-                                    ("ordinal (digits)named-month", -1.2809338454620642),-                                    ("month", -0.8109302162163288)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        Classifier{okData =-                     ClassData{prior = -0.7731898882334817,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -0.6190392084062235,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("relative minutes to|till|before <integer> (hour-of-day)",-        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> (latent time-of-day)",-                                     -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2}}),-       ("week-end",-        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}}),-       ("10th ordinal",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.4403615823901665,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -2.3353749158170367),-                                    ("<ordinal> (as hour)", -2.3353749158170367),-                                    ("afternoon", -2.0476928433652555),-                                    ("hour", -1.1314021114911006),-                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",-                                     -2.3353749158170367)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.2702903297399117, unseen = -4.276666119016055,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> <part-of-day>", -3.164067588373206),-                                    ("<ordinal> (as hour)", -2.8763855159214247),-                                    ("intersect", -3.56953269648137),-                                    ("tomorrow", -2.653241964607215), ("day", -2.316769727986002),-                                    ("afternoon", -2.653241964607215),-                                    ("<day-of-month> (ordinal)", -3.164067588373206),-                                    ("noon", -2.1832383353614793), ("hour", -1.08462604669337),-                                    ("<datetime> - <datetime> (interval)", -3.164067588373206),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -3.164067588373206),-                                    ("<hour-of-day> - <hour-of-day> (interval)",-                                     -3.164067588373206)],-                               n = 29}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = -0.12783337150988489,-                               unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   koData =-                     ClassData{prior = -2.120263536200091, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("9th ordinal",-        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}}),-       ("first ordinal",-        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}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day-after-tomorrow (single-word)",-        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}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("<ordinal> (as hour)twenty", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("<ordinal> (as hour)fifteen", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)integer (numeric)",-                                     -0.8754687373538999),-                                    ("hour", -0.8754687373538999)],-                               n = 4}}),-       ("23rd ordinal no space",-        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 <time>",-        Classifier{okData =-                     ClassData{prior = -0.6286086594223742,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -3.044522437723423),-                                    ("season", -2.128231705849268),-                                    ("evening|night", -3.044522437723423),-                                    ("day", -1.252762968495368), ("named-day", -1.6582280766035324),-                                    ("hour", -1.9459101490553135),-                                    ("week-end", -2.3513752571634776)],-                               n = 16},-                   koData =-                     ClassData{prior = -0.7621400520468967,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.9444389791664407),-                                    ("evening|night", -2.9444389791664407),-                                    ("named-month", -1.2396908869280152),-                                    ("day", -2.538973871058276), ("hour", -2.538973871058276),-                                    ("month", -1.2396908869280152),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -2.538973871058276)],-                               n = 14}}),-       ("<named-month> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthfirst ordinal", -1.791759469228055),-                                    ("named-month15th ordinal", -1.791759469228055),-                                    ("month", -0.8754687373538999),-                                    ("named-monthordinal (digits)", -1.3862943611198906)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/PL_XX.hs view
@@ -0,0 +1,2302 @@+-- 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.PL_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("five",+        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.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5997731097824868, unseen = -4.875197323201151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 129},+                   koData =+                     ClassData{prior = -0.7961464200320919, unseen = -4.68213122712422,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 106}}),+       ("exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.3862943611198906),+                                    ("<integer> (latent time-of-day)", -1.791759469228055),+                                    ("hour", -0.8754687373538999),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("day (grain)yesterday", -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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> <cycle> <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("third ordinalday (grain)October", -2.5257286443082556),+                                    ("daymonth", -2.120263536200091),+                                    ("quarteryear", -2.5257286443082556),+                                    ("third ordinalday (grain)on <date>", -2.5257286443082556),+                                    ("weekmonth", -1.4271163556401458),+                                    ("ordinal (digits)quarter (grain)year", -2.5257286443082556),+                                    ("first ordinalweek (grain)intersect", -2.120263536200091),+                                    ("first ordinalweek (grain)October", -2.5257286443082556),+                                    ("first ordinalweek (grain)on <date>", -2.120263536200091)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.8038127484474648, unseen = -4.919980925828125,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)after <time-of-day>", -3.8140425970679424),+                                    ("dayhour", -2.966744736680739),+                                    ("Wednesdayevening|night", -4.219507705176107),+                                    ("<ordinal> (as hour)evening|night", -2.5147596129376812),+                                    ("<ordinal> (as hour)on <date>", -4.219507705176107),+                                    ("yesterdayevening|night", -4.219507705176107),+                                    ("hourhour", -1.1990828190317442),+                                    ("after <time-of-day>after <time-of-day>", -3.8140425970679424),+                                    ("until <time-of-day>morning", -3.8140425970679424),+                                    ("until <time-of-day>after <time-of-day>", -4.219507705176107),+                                    ("minutehour", -4.219507705176107),+                                    ("todayevening|night", -4.219507705176107),+                                    ("at <time-of-day>evening|night", -4.219507705176107),+                                    ("intersecton <date>", -4.219507705176107),+                                    ("<integer> (latent time-of-day)this <part-of-day>",+                                     -4.219507705176107),+                                    ("hh:mmon <date>", -4.219507705176107),+                                    ("<integer> (latent time-of-day)morning", -4.219507705176107),+                                    ("at <time-of-day>on <date>", -4.219507705176107),+                                    ("intersectmorning", -2.966744736680739),+                                    ("<integer> (latent time-of-day)evening|night",+                                     -2.966744736680739),+                                    ("from <datetime> - <datetime> (interval)morning",+                                     -4.219507705176107),+                                    ("from <time-of-day> - <time-of-day> (interval)morning",+                                     -4.219507705176107),+                                    ("Mondaymorning", -4.219507705176107),+                                    ("on <date>morning", -4.219507705176107),+                                    ("at <time-of-day>morning", -3.8140425970679424),+                                    ("tomorrowevening|night", -3.8140425970679424)],+                               n = 47},+                   koData =+                     ClassData{prior = -0.593517339611104, unseen = -5.0689042022202315,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)after <time-of-day>", -4.3694478524670215),+                                    ("dayhour", -2.018072595303544),+                                    ("yearhour", -2.0668627594729756),+                                    ("year (latent)on <date>", -4.3694478524670215),+                                    ("<day-of-month> (ordinal)on <date>", -4.3694478524670215),+                                    ("<time-of-day> - <time-of-day> (interval)morning",+                                     -4.3694478524670215),+                                    ("<day-of-month> (ordinal)evening|night", -2.6646997602285962),+                                    ("by the end of <time>morning", -4.3694478524670215),+                                    ("year (latent)evening|night", -3.1166848839716534),+                                    ("hourhour", -2.423537703411708),+                                    ("after <time-of-day>after <time-of-day>", -3.963982744358857),+                                    ("<day-of-month> (ordinal)morning", -3.963982744358857),+                                    ("<day-of-month> (ordinal)after <time-of-day>",+                                     -3.270835563798912),+                                    ("until <time-of-day>morning", -4.3694478524670215),+                                    ("about <time-of-day>after <time-of-day>", -4.3694478524670215),+                                    ("by <time>morning", -4.3694478524670215),+                                    ("<integer> (latent time-of-day)after <time-of-day>",+                                     -3.963982744358857),+                                    ("<integer> (latent time-of-day)morning", -3.270835563798912),+                                    ("secondhour", -3.1166848839716534),+                                    ("intersectmorning", -3.270835563798912),+                                    ("year (latent)morning", -2.6646997602285962),+                                    ("year (latent)after <time-of-day>", -3.963982744358857),+                                    ("at <time-of-day>after <time-of-day>", -4.3694478524670215)],+                               n = 58}}),+       ("today",+        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}}),+       ("mm/dd",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.13580154115906176,+                               unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.4832866271072003),+                                    ("<integer> (latent time-of-day)", -2.381228220313159),+                                    ("about <time-of-day>", -4.085976312551584),+                                    ("hh:mm", -3.6805112044434196),+                                    ("<time-of-day> rano", -2.987364023883474),+                                    ("hour", -0.827879774530102),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -2.2942168433235293),+                                    ("minute", -3.169685580677429)],+                               n = 55},+                   koData =+                     ClassData{prior = -2.063693184711697, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.8325814637483102),+                                    ("<integer> (latent time-of-day)", -1.8325814637483102),+                                    ("relative minutes after|past <integer> (hour-of-day)",+                                     -2.5257286443082556),+                                    ("hour", -1.1394342831883648),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -2.5257286443082556),+                                    ("minute", -2.5257286443082556)],+                               n = 8}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.159484249353372),+                                    ("Saturday", -3.258096538021482),+                                    ("Monday", -1.754019141245208), ("Friday", -2.5649493574615367),+                                    ("day", -0.7731898882334817), ("Sunday", -2.005333569526114)],+                               n = 23},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               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}}),+       ("11th ordinal",+        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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -7.79615414697118e-2,+                               unseen = -4.543294782270004,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9231615807191553),+                                    ("Thursday", -3.4339872044851463),+                                    ("<time> <part-of-day>", -3.8394523125933104),+                                    ("September", -3.4339872044851463),+                                    ("October", -2.5866893440979424),+                                    ("intersect", -2.0476928433652555),+                                    ("Saturday", -3.4339872044851463),+                                    ("next <cycle>", -3.146305132033365),+                                    ("half to|till|before <integer> (hour-of-day)",+                                     -3.8394523125933104),+                                    ("day", -2.740840023925201), ("afternoon", -3.146305132033365),+                                    ("this <cycle>", -2.9231615807191553),+                                    ("year", -3.146305132033365), ("March", -3.8394523125933104),+                                    ("hour", -2.3353749158170367), ("month", -1.6993861490970399),+                                    ("minute", -3.8394523125933104),+                                    ("this <time>", -3.8394523125933104)],+                               n = 37},+                   koData =+                     ClassData{prior = -2.5902671654458267, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -1.8325814637483102), ("hour", -1.8325814637483102)],+                               n = 3}}),+       ("8th ordinal",+        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}}),+       ("October",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        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}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.3184537311185346, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -0.8649974374866046),+                                    ("<integer> (latent time-of-day)", -2.2512917986064953),+                                    ("hour", -0.7472144018302211)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.5040773967762742),+                                    ("<integer> (latent time-of-day)", -1.0986122886681098),+                                    ("hour", -0.8109302162163288)],+                               n = 3}}),+       ("on a named-day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.2992829841302609),+                                    ("Saturday", -1.2992829841302609),+                                    ("day", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> <time>",+        Classifier{okData =+                     ClassData{prior = -0.4989911661189879,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("third ordinalTuesdayon <date>", -3.2771447329921766),+                                    ("daymonth", -1.4853852637641216),+                                    ("dayyear", -2.0243817644968085),+                                    ("second ordinalWednesdayon <date>", -3.2771447329921766),+                                    ("first ordinalWednesdayintersect", -2.871679624884012),+                                    ("first ordinalWednesdayon <date>", -3.2771447329921766),+                                    ("second ordinalWednesdayintersect", -2.871679624884012),+                                    ("third ordinalintersectyear", -2.871679624884012),+                                    ("first ordinalTuesdayon <date>", -3.2771447329921766),+                                    ("first ordinalTuesdayOctober", -3.2771447329921766),+                                    ("first ordinalintersectyear", -2.871679624884012),+                                    ("third ordinalTuesdayintersect", -2.871679624884012),+                                    ("second ordinalintersectyear", -2.871679624884012)],+                               n = 17},+                   koData =+                     ClassData{prior = -0.9343092373768334,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("third ordinalTuesdaySeptember", -3.0204248861443626),+                                    ("third ordinalTuesdayon <date>", -3.0204248861443626),+                                    ("daymonth", -1.7676619176489945),+                                    ("14th ordinalApril<integer> (latent time-of-day)",+                                     -2.6149597780361984),+                                    ("monthhour", -1.9218125974762528),+                                    ("second ordinalWednesdayon <date>", -3.0204248861443626),+                                    ("first ordinalWednesdayon <date>", -3.0204248861443626),+                                    ("ordinal (digits)April<integer> (latent time-of-day)",+                                     -2.327277705584417),+                                    ("second ordinalWednesdayOctober", -3.0204248861443626),+                                    ("first ordinalWednesdayOctober", -3.0204248861443626)],+                               n = 11}}),+       ("Wednesday",+        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}}),+       ("<ordinal> (as hour)",+        Classifier{okData =+                     ClassData{prior = -2.985296314968116e-2,+                               unseen = -4.454347296253507,+                               likelihoods =+                                 HashMap.fromList+                                   [("11th ordinal", -3.056356895370426),+                                    ("8th ordinal", -3.3440389678222067),+                                    ("21st ordinal no space", -3.7495040759303713),+                                    ("20th ordinal", -3.7495040759303713),+                                    ("third ordinal", -1.8035939268750578),+                                    ("16th ordinal", -3.3440389678222067),+                                    ("18th ordinal", -3.3440389678222067),+                                    ("fifth ordinal", -3.7495040759303713),+                                    ("seventh ordinal", -3.3440389678222067),+                                    ("19th ordinal", -3.3440389678222067),+                                    ("21-29th ordinal", -3.3440389678222067),+                                    ("sixth ordinal", -3.3440389678222067),+                                    ("15th ordinal", -3.3440389678222067),+                                    ("second ordinal", -2.1400661634962708),+                                    ("ordinal (digits)", -2.3632097148104805),+                                    ("10th ordinal", -2.496741107435003),+                                    ("9th ordinal", -2.3632097148104805),+                                    ("first ordinal", -3.7495040759303713),+                                    ("23rd ordinal no space", -3.7495040759303713)],+                               n = 66},+                   koData =+                     ClassData{prior = -3.5263605246161616,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("20th ordinal", -2.3513752571634776),+                                    ("first ordinal", -2.3513752571634776)],+                               n = 2}}),+       ("July",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),+       ("21st ordinal no space",+        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}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -0.916290731874155),+                                    ("third ordinalquarter (grain)", -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.916290731874155),+                                    ("quarter", -0.916290731874155)],+                               n = 1}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.3189150921417123, unseen = -6.280395838960195,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tuesdayon <date>", -4.669083511731744),+                                    ("Sundaylast <cycle>", -5.179909135497735),+                                    ("Fridaynext <cycle>", -5.585374243605899),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -5.179909135497735),+                                    ("mm/dd<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -5.585374243605899),+                                    ("<hour-of-day> - <hour-of-day> (interval)on <date>",+                                     -5.179909135497735),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.179909135497735),+                                    ("hourday", -3.7936147743778443),+                                    ("dayhour", -2.7231733626764307),+                                    ("daymonth", -3.7936147743778443),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyabsorption of , after named day",+                                     -4.669083511731744),+                                    ("TuesdaySeptember", -5.585374243605899),+                                    ("monthyear", -3.100467593817899),+                                    ("Wednesdayintersect", -5.179909135497735),+                                    ("from <hour-of-day> - <hour-of-day> (interval)on a named-day",+                                     -5.585374243605899),+                                    ("from <time-of-day> - <time-of-day> (interval)on a named-day",+                                     -5.585374243605899),+                                    ("intersecthh:mm", -5.585374243605899),+                                    ("from <datetime> - <datetime> (interval)on a named-day",+                                     -5.585374243605899),+                                    ("Wednesdaynext <cycle>", -5.179909135497735),+                                    ("Tuesdaythis <cycle>", -5.585374243605899),+                                    ("Saturday<time> <part-of-day>", -5.585374243605899),+                                    ("Marchyear", -5.179909135497735),+                                    ("Saturdayat <time-of-day>", -5.179909135497735),+                                    ("on a named-dayat <time-of-day>", -5.179909135497735),+                                    ("at <time-of-day>on a named-day", -5.585374243605899),+                                    ("<time> <part-of-day>on a named-day", -5.179909135497735),+                                    ("Wednesdayon <date>", -4.48676195493779),+                                    ("on a named-day<time> <part-of-day>", -5.585374243605899),+                                    ("last <day-of-week> of <time>year", -5.585374243605899),+                                    ("today<time> <part-of-day>", -5.585374243605899),+                                    ("todayat <time-of-day>", -5.585374243605899),+                                    ("on <date>at <time-of-day>", -5.179909135497735),+                                    ("dayday", -2.9463169139906404),+                                    ("on <date><time> <part-of-day>", -5.585374243605899),+                                    ("intersect by \",\"hh:mm", -4.669083511731744),+                                    ("mm/ddat <time-of-day>", -4.892227063045954),+                                    ("WednesdayOctober", -5.179909135497735),+                                    ("last <cycle> <time>year", -4.669083511731744),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.892227063045954),+                                    ("intersect<day-of-month> (non ordinal) <named-month>",+                                     -4.892227063045954),+                                    ("dayyear", -3.5704712230636346),+                                    ("Wednesday<day-of-month>(ordinal) <named-month>",+                                     -5.585374243605899),+                                    ("Thursday<time> <part-of-day>", -5.179909135497735),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -5.179909135497735),+                                    ("day-after-tomorrow (single-word)at <time-of-day>",+                                     -5.585374243605899),+                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",+                                     -4.081296846829625),+                                    ("Tuesdaynext <cycle>", -5.585374243605899),+                                    ("tomorrow<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -5.585374243605899),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.199079882486009),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.892227063045954),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.892227063045954),+                                    ("tomorrowuntil <time-of-day>", -5.179909135497735),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -4.081296846829625),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\"",+                                     -4.669083511731744),+                                    ("TuesdayOctober", -5.585374243605899),+                                    ("last <day-of-week> <time>year", -5.179909135497735),+                                    ("Monday<day-of-month>(ordinal) <named-month>",+                                     -5.179909135497735),+                                    ("Mondaythis <cycle>", -5.585374243605899),+                                    ("<time-of-day> ranoon <date>", -5.179909135497735),+                                    ("on <date><time-of-day> rano", -5.585374243605899),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocytomorrow",+                                     -5.585374243605899),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.585374243605899),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyFriday",+                                     -4.669083511731744),+                                    ("at <time-of-day>intersect", -5.179909135497735),+                                    ("dayminute", -3.975936331171799),+                                    ("<time-of-day> ranoon a named-day", -5.179909135497735),+                                    ("from <hour-of-day> - <hour-of-day> (interval)on <date>",+                                     -5.585374243605899),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.585374243605899),+                                    ("intersectyear", -5.179909135497735),+                                    ("on a named-day<time-of-day> rano", -5.585374243605899),+                                    ("<ordinal> <cycle> of <time>year", -5.585374243605899),+                                    ("minuteday", -2.386701126055218),+                                    ("absorption of , after named dayintersect",+                                     -5.585374243605899),+                                    ("Saturday<time-of-day> rano", -5.585374243605899),+                                    ("Octoberyear", -3.880626151367474),+                                    ("yearhh:mm", -5.585374243605899),+                                    ("at <time-of-day>intersect by \",\"", -5.179909135497735),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -5.179909135497735),+                                    ("tomorrowexactly <time-of-day>", -4.892227063045954),+                                    ("at <time-of-day>absorption of , after named day",+                                     -5.179909135497735),+                                    ("Septemberyear", -4.669083511731744),+                                    ("at <time-of-day>on <date>", -5.585374243605899),+                                    ("on <date>year", -4.199079882486009),+                                    ("dayweek", -3.639464094550586),+                                    ("Tuesdayin <duration>", -5.585374243605899),+                                    ("<time> <part-of-day>on <date>", -5.179909135497735),+                                    ("weekyear", -4.332611275110531),+                                    ("<ordinal> <cycle> <time>year", -5.179909135497735),+                                    ("tomorrowat <time-of-day>", -5.585374243605899),+                                    ("tomorrow<time> <part-of-day>", -5.585374243605899),+                                    ("at <time-of-day>Friday", -5.179909135497735),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect",+                                     -4.669083511731744),+                                    ("<named-month> <day-of-month> (ordinal)year",+                                     -5.585374243605899),+                                    ("tomorrow<time-of-day> rano", -5.585374243605899),+                                    ("<datetime> - <datetime> (interval)on a named-day",+                                     -5.179909135497735),+                                    ("last <cycle> of <time>year", -5.179909135497735),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -5.585374243605899),+                                    ("<time-of-day> - <time-of-day> (interval)on a named-day",+                                     -5.179909135497735),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -5.179909135497735),+                                    ("<hour-of-day> - <hour-of-day> (interval)on a named-day",+                                     -5.179909135497735),+                                    ("yearminute", -5.585374243605899)],+                               n = 197},+                   koData =+                     ClassData{prior = -1.298053727675531, unseen = -5.662960480135946,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tuesdayon <date>", -4.966335035199676),+                                    ("<time-of-day> ranoby <time>", -4.560869927091511),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -4.966335035199676),+                                    ("Julyrelative minutes to|till|before <integer> (hour-of-day)",+                                     -4.966335035199676),+                                    ("dayhour", -3.867722746531566),+                                    ("July<day-of-month> (non ordinal) <named-month>",+                                     -4.966335035199676),+                                    ("daymonth", -2.5684397624013053),+                                    ("monthday", -4.560869927091511),+                                    ("monthyear", -4.050044303325521),+                                    ("Wednesdayintersect", -4.560869927091511),+                                    ("<time> <part-of-day>until <time-of-day>", -4.560869927091511),+                                    ("Marchyear", -4.273187854639731),+                                    ("Wednesdayon <date>", -4.966335035199676),+                                    ("absorption of , after named dayJuly", -4.966335035199676),+                                    ("<time> <part-of-day><time> <part-of-day>",+                                     -4.273187854639731),+                                    ("mm/ddat <time-of-day>", -4.966335035199676),+                                    ("hourhour", -4.050044303325521),+                                    ("<time> <part-of-day>by <time>", -4.560869927091511),+                                    ("dayyear", -3.713572066704308),+                                    ("<time-of-day> ranoby the end of <time>", -4.560869927091511),+                                    ("<named-month> <day-of-month> (non ordinal)until <time-of-day>",+                                     -4.966335035199676),+                                    ("monthminute", -4.966335035199676),+                                    ("minutemonth", -4.273187854639731),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.966335035199676),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.966335035199676),+                                    ("Aprilyear", -4.966335035199676),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect by \",\"",+                                     -4.560869927091511),+                                    ("after <time-of-day>at <time-of-day>", -4.966335035199676),+                                    ("SundayMarch", -4.966335035199676),+                                    ("hh:mmby the end of <time>", -4.966335035199676),+                                    ("daysecond", -4.560869927091511),+                                    ("<time> <part-of-day>by the end of <time>",+                                     -4.560869927091511),+                                    ("<time> <part-of-day><time-of-day> rano", -4.966335035199676),+                                    ("<time-of-day> rano<time> <part-of-day>", -4.560869927091511),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -4.966335035199676),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -4.966335035199676),+                                    ("at <time-of-day>intersect", -4.966335035199676),+                                    ("dayminute", -4.560869927091511),+                                    ("<named-month> <day-of-month> (non ordinal)by <time>",+                                     -4.966335035199676),+                                    ("intersectyear", -3.713572066704308),+                                    ("intersectSeptember", -4.273187854639731),+                                    ("minuteday", -3.2615869429612507),+                                    ("hh:mmon <date>", -4.560869927091511),+                                    ("at <time-of-day>intersect by \",\"", -4.966335035199676),+                                    ("MondayMarch", -4.966335035199676),+                                    ("<named-month> <day-of-month> (non ordinal)by the end of <time>",+                                     -4.966335035199676),+                                    ("tomorrowexactly <time-of-day>", -4.966335035199676),+                                    ("hoursecond", -3.094532858298084),+                                    ("absorption of , after named daySeptember",+                                     -4.966335035199676),+                                    ("hh:mmon a named-day", -4.560869927091511),+                                    ("Sundayon <date>", -4.560869927091511),+                                    ("absorption of , after named dayFebruary", -3.867722746531566),+                                    ("hh:mmby <time>", -4.966335035199676),+                                    ("tomorrowat <time-of-day>", -4.966335035199676),+                                    ("minutesecond", -4.560869927091511),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocyintersect",+                                     -4.560869927091511),+                                    ("Tuesdayintersect", -4.560869927091511),+                                    ("Sundayintersect", -4.560869927091511)],+                               n = 74}}),+       ("half after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("twenty",+        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}}),+       ("20th ordinal",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("a few",+        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}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("third ordinalday (grain)October", -1.7047480922384253),+                                    ("daymonth", -1.7047480922384253),+                                    ("weekmonth", -1.2992829841302609),+                                    ("first ordinalweek (grain)intersect", -1.7047480922384253),+                                    ("first ordinalweek (grain)October", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("year (grain)",+        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 <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6739764335716716),+                                    ("<time-of-day> rano<time-of-day> rano", -2.0794415416798357),+                                    ("hh:mmhh:mm", -1.6739764335716716),+                                    ("hourhour", -1.6739764335716716),+                                    ("<time-of-day> rano<integer> (latent time-of-day)",+                                     -2.0794415416798357)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6739764335716716),+                                    ("minutehour", -1.6739764335716716),+                                    ("hh:mmintersect", -1.6739764335716716),+                                    ("hh:mm<integer> (latent time-of-day)", -1.6739764335716716)],+                               n = 4}}),+       ("Saturday",+        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}}),+       ("from <hour-of-day> - <hour-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.6931471805599453),+                                    ("hh:mmhh:mm", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.491654876777717),+                                    ("month (grain)", -2.995732273553991),+                                    ("year (grain)", -2.5902671654458267),+                                    ("second", -2.995732273553991),+                                    ("week (grain)", -1.491654876777717),+                                    ("quarter", -2.3025850929940455), ("year", -2.5902671654458267),+                                    ("second (grain)", -2.995732273553991),+                                    ("month", -2.995732273553991),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               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.40546510810816444,+                               unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("<time-of-day> rano<time-of-day> rano", -2.0149030205422647),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("hourhour", -1.6094379124341003),+                                    ("<time-of-day> rano<integer> (latent time-of-day)",+                                     -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("minutehour", -1.2992829841302609),+                                    ("hh:mm<integer> (latent time-of-day)", -1.2992829841302609)],+                               n = 2}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (numeric)integer (numeric)", 0.0)],+                               n = 1}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -8.004270767353637e-2),+                                    ("one", -2.5649493574615367)],+                               n = 24}}),+       ("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}}),+       ("evening|night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("third ordinal",+        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}}),+       ("Monday",+        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}}),+       ("yesterday",+        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}}),+       ("<ordinal> quarter <year>",+        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}}),+       ("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}}),+       ("16th ordinal",+        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}}),+       ("quarter to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.791759469228055),+                                    ("<integer> (latent time-of-day)", -1.791759469228055),+                                    ("noon", -1.3862943611198906), ("hour", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.598590697792199e-2),+                                    ("fifteen", -3.0204248861443626)],+                               n = 38},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1466034741918754),+                                    ("one", -2.3978952727983707)],+                               n = 19}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.1631508098056809),+                                    ("first ordinalWednesdayintersect", -2.0794415416798357),+                                    ("second ordinalWednesdayintersect", -2.0794415416798357),+                                    ("first ordinalTuesdayOctober", -2.0794415416798357),+                                    ("third ordinalTuesdayintersect", -2.0794415416798357)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("third ordinalTuesdaySeptember", -1.9459101490553135),+                                    ("daymonth", -1.252762968495368),+                                    ("second ordinalWednesdayOctober", -1.9459101490553135),+                                    ("first ordinalWednesdayOctober", -1.9459101490553135)],+                               n = 3}}),+       ("April",+        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}}),+       ("18th ordinal",+        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}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fifth ordinal",+        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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week> <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8873031950009028),+                                    ("SundayMarch", -2.1400661634962708),+                                    ("MondayMarch", -2.1400661634962708),+                                    ("Sundayon <date>", -1.7346010553881064),+                                    ("Sundayintersect", -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("<unit-of-duration> as a duration",+        Classifier{okData =+                     ClassData{prior = -2.1226137135450447,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.7147984280919266),+                                    ("hour (grain)", -2.8134107167600364),+                                    ("second", -2.5257286443082556),+                                    ("week (grain)", -1.7147984280919266),+                                    ("day", -2.5257286443082556),+                                    ("minute (grain)", -3.2188758248682006),+                                    ("second (grain)", -2.5257286443082556),+                                    ("hour", -2.8134107167600364), ("minute", -3.2188758248682006),+                                    ("day (grain)", -2.5257286443082556)],+                               n = 17},+                   koData =+                     ClassData{prior = -0.12751332029895956, unseen = -5.58724865840025,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.0281482472922856),+                                    ("month (grain)", -3.0985896589936988),+                                    ("hour (grain)", -2.5877640352277083),+                                    ("year (grain)", -2.750282964725483),+                                    ("second", -3.9740583963475986),+                                    ("week (grain)", -2.0281482472922856),+                                    ("day", -2.4480020928525494), ("quarter", -3.3862717314454795),+                                    ("minute (grain)", -3.0985896589936988),+                                    ("year", -2.750282964725483),+                                    ("second (grain)", -3.9740583963475986),+                                    ("hour", -2.5877640352277083), ("month", -3.0985896589936988),+                                    ("quarter (grain)", -3.3862717314454795),+                                    ("minute", -3.0985896589936988),+                                    ("day (grain)", -2.4480020928525494)],+                               n = 125}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -1.5040773967762742),+                                    ("evening|night", -1.0986122886681098),+                                    ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("christmas 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}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.19671029424605427, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("15th ordinalFebruary", -2.9267394020670396),+                                    ("8th ordinalAugust", -2.9267394020670396),+                                    ("13th ordinalFebruary", -3.332204510175204),+                                    ("first ordinalMarch", -2.9267394020670396),+                                    ("ordinal (digits)February", -1.540445040947149),+                                    ("third ordinalMarch", -3.332204510175204),+                                    ("month", -0.8472978603872037),+                                    ("ordinal (digits)March", -2.4159137783010487)],+                               n = 23},+                   koData =+                     ClassData{prior = -1.7227665977411035, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("14th ordinalApril", -1.8971199848858813),+                                    ("ordinal (digits)April", -1.6094379124341003),+                                    ("month", -1.2039728043259361)],+                               n = 5}}),+       ("<duration> hence",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3121863889661687),+                                    ("<unit-of-duration> as a duration", -1.8718021769015913),+                                    ("day", -2.159484249353372), ("year", -2.5649493574615367),+                                    ("<integer> <unit-of-duration>", -1.1786549963416462),+                                    ("month", -2.5649493574615367)],+                               n = 10},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.0794415416798357),+                                    ("<unit-of-duration> as a duration", -0.9808292530117262),+                                    ("day", -1.6739764335716716), ("year", -2.0794415416798357),+                                    ("month", -2.0794415416798357)],+                               n = 5}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 11}}),+       ("Friday",+        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}}),+       ("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.2876820724517809,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<cycle> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -0.6931471805599453),+                                    ("dayday", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("half to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> after next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Friday", -1.3862943611198906), ("day", -1.3862943611198906),+                                    ("March", -1.3862943611198906), ("month", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("two",+        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}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -2.456735772821304),+                                    ("year (latent)", -2.8622008809294686),+                                    ("<integer> (latent time-of-day)", -1.9459101490553135),+                                    ("day", -2.456735772821304), ("year", -2.8622008809294686),+                                    ("hh:mm", -2.8622008809294686),+                                    ("<day-of-month> (ordinal)", -2.456735772821304),+                                    ("noon", -2.8622008809294686),+                                    ("<time-of-day> rano", -2.8622008809294686),+                                    ("hour", -1.3581234841531944), ("minute", -2.8622008809294686)],+                               n = 12}}),+       ("seventh ordinal",+        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}}),+       ("half an hour",+        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}}),+       ("one",+        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}}),+       ("Sunday",+        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}}),+       ("afternoon",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("second", -1.9459101490553135),+                                    ("<unit-of-duration> as a duration", -1.540445040947149),+                                    ("day", -1.9459101490553135), ("year", -1.9459101490553135),+                                    ("<integer> <unit-of-duration>", -1.540445040947149),+                                    ("minute", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<unit-of-duration> as a duration", -1.2039728043259361),+                                    ("year", -1.6094379124341003), ("minute", -1.6094379124341003)],+                               n = 2}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.5869650565820417),+                                    ("year (grain)", -1.9924301646902063),+                                    ("week (grain)", -1.5869650565820417),+                                    ("day", -2.6855773452501515), ("quarter", -2.3978952727983707),+                                    ("year", -1.9924301646902063),+                                    ("quarter (grain)", -2.3978952727983707),+                                    ("day (grain)", -2.6855773452501515)],+                               n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("last <cycle> <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -2.639057329615259),+                                    ("daymonth", -1.540445040947149),+                                    ("day (grain)intersect", -2.2335922215070942),+                                    ("day (grain)on <date>", -2.2335922215070942),+                                    ("weekmonth", -1.540445040947149),+                                    ("week (grain)intersect", -2.2335922215070942),+                                    ("week (grain)on <date>", -2.2335922215070942),+                                    ("week (grain)September", -2.639057329615259)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.4423470353692043),+                                    ("<ordinal> (as hour)", -1.5260563034950494),+                                    ("<integer> (latent time-of-day)", -2.03688192726104),+                                    ("hour", -0.9382696385929302),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -2.4423470353692043)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("relative minutes after|past <integer> (hour-of-day)",+                                     -1.5040773967762742),+                                    ("minute", -1.5040773967762742)],+                               n = 1}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.14842000511827333,+                               unseen = -3.295836866004329,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 25},+                   koData =+                     ClassData{prior = -1.9810014688665833, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8472978603872037),+                                    ("SundayMarch", -1.252762968495368),+                                    ("Sundayintersect", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.7091475219063865, unseen = -4.59511985013459,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2823823856765264),+                                    ("threemonth (grain)", -3.4863551900024623),+                                    ("fifteenminute (grain)", -3.891820298110627),+                                    ("a fewhour (grain)", -3.891820298110627),+                                    ("integer (numeric)day (grain)", -2.793208009442517),+                                    ("twoweek (grain)", -3.891820298110627),+                                    ("fiveday (grain)", -3.891820298110627),+                                    ("oneweek (grain)", -3.1986731175506815),+                                    ("oneminute (grain)", -3.891820298110627),+                                    ("integer (numeric)year (grain)", -3.891820298110627),+                                    ("day", -2.505525936990736), ("year", -3.1986731175506815),+                                    ("integer (numeric)week (grain)", -3.1986731175506815),+                                    ("oneday (grain)", -3.891820298110627),+                                    ("hour", -3.1986731175506815), ("month", -3.4863551900024623),+                                    ("threeweek (grain)", -3.4863551900024623),+                                    ("integer (numeric)minute (grain)", -2.793208009442517),+                                    ("minute", -2.505525936990736),+                                    ("integer (numeric)hour (grain)", -3.4863551900024623),+                                    ("twoyear (grain)", -3.4863551900024623)],+                               n = 31},+                   koData =+                     ClassData{prior = -0.6773988235918061, unseen = -4.61512051684126,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.8134107167600364),+                                    ("threemonth (grain)", -3.912023005428146),+                                    ("threehour (grain)", -3.912023005428146),+                                    ("integer (numeric)day (grain)", -3.2188758248682006),+                                    ("twoweek (grain)", -3.912023005428146),+                                    ("twominute (grain)", -3.912023005428146),+                                    ("second", -2.995732273553991),+                                    ("threeday (grain)", -3.912023005428146),+                                    ("threeyear (grain)", -3.912023005428146),+                                    ("integer (numeric)second (grain)", -3.506557897319982),+                                    ("twomonth (grain)", -3.912023005428146),+                                    ("onehour (grain)", -3.912023005428146),+                                    ("integer (numeric)year (grain)", -3.506557897319982),+                                    ("threesecond (grain)", -3.912023005428146),+                                    ("day", -2.659260036932778), ("year", -2.995732273553991),+                                    ("threeminute (grain)", -3.912023005428146),+                                    ("integer (numeric)week (grain)", -3.2188758248682006),+                                    ("twoday (grain)", -3.912023005428146),+                                    ("hour", -2.659260036932778), ("month", -3.2188758248682006),+                                    ("threeweek (grain)", -3.912023005428146),+                                    ("integer (numeric)minute (grain)", -3.506557897319982),+                                    ("a fewday (grain)", -3.912023005428146),+                                    ("integer (numeric)month (grain)", -3.912023005428146),+                                    ("minute", -2.995732273553991),+                                    ("twosecond (grain)", -3.912023005428146),+                                    ("integer (numeric)hour (grain)", -3.2188758248682006),+                                    ("fifteenhour (grain)", -3.912023005428146),+                                    ("twoyear (grain)", -3.912023005428146)],+                               n = 32}}),+       ("19th ordinal",+        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 = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<unit-of-duration> as a durationtomorrow",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)<integer> (latent time-of-day)",+                                     -1.7047480922384253),+                                    ("fifteen<ordinal> (as hour)", -1.7047480922384253),+                                    ("hour", -1.0116009116784799),+                                    ("integer (numeric)<ordinal> (as hour)", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)noon", -1.0986122886681098),+                                    ("hour", -1.0986122886681098)],+                               n = 2}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.2282586519809802, unseen = -4.727387818712341,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -4.02535169073515),+                                    ("Wednesday<day-of-month> (non ordinal) <named-month>",+                                     -3.332204510175204),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.619886582626985),+                                    ("Friday<day-of-month> (non ordinal) <named-month>",+                                     -4.02535169073515),+                                    ("intersect by \",\"year", -4.02535169073515),+                                    ("dayday", -1.4996230464268938),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.332204510175204),+                                    ("intersect<day-of-month> (non ordinal) <named-month>",+                                     -3.332204510175204),+                                    ("dayyear", -3.109060958860994),+                                    ("Wednesday<day-of-month>(ordinal) <named-month>",+                                     -4.02535169073515),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -4.02535169073515),+                                    ("Monday<day-of-month>(ordinal) <named-month>",+                                     -3.619886582626985),+                                    ("Saturday<day-of-month>(ordinal) <named-month>",+                                     -4.02535169073515),+                                    ("Fridayintersect", -4.02535169073515),+                                    ("intersect by \",\"intersect", -4.02535169073515),+                                    ("Sunday<named-month> <day-of-month> (non ordinal)",+                                     -4.02535169073515),+                                    ("Sunday<day-of-month> (non ordinal) <named-month>",+                                     -4.02535169073515),+                                    ("dayminute", -2.9267394020670396),+                                    ("intersectyear", -4.02535169073515),+                                    ("minuteday", -2.772588722239781),+                                    ("Sunday<day-of-month>(ordinal) <named-month>",+                                     -3.109060958860994),+                                    ("intersectintersect", -4.02535169073515),+                                    ("Fridayintersect by \",\"", -3.619886582626985),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.332204510175204),+                                    ("Monday<day-of-month> (non ordinal) <named-month>",+                                     -3.332204510175204),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -3.619886582626985)],+                               n = 39},+                   koData =+                     ClassData{prior = -1.589235205116581, unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.9095425048844386),+                                    ("SundayFebruary", -3.295836866004329),+                                    ("FridayJuly", -3.295836866004329),+                                    ("FridaySeptember", -3.295836866004329),+                                    ("WednesdayFebruary", -3.295836866004329),+                                    ("minutemonth", -2.6026896854443837),+                                    ("MondayFebruary", -2.6026896854443837),+                                    ("intersectSeptember", -2.6026896854443837)],+                               n = 10}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -4.652001563489282e-2,+                               unseen = -3.1354942159291497,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 21},+                   koData =+                     ClassData{prior = -3.0910424533583156,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("14th ordinal",+        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}}),+       ("21-29th ordinal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("second ordinal", -0.6931471805599453),+                                    ("first ordinal", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<unit-of-duration> as a durationyesterday",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second (grain)",+        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}}),+       ("13th ordinal",+        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.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sundaylast <cycle>", -0.6931471805599453),+                                    ("dayweek", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3121863889661687),+                                    ("<unit-of-duration> as a duration", -1.8718021769015913),+                                    ("day", -2.159484249353372), ("year", -2.5649493574615367),+                                    ("<integer> <unit-of-duration>", -1.1786549963416462),+                                    ("month", -2.5649493574615367)],+                               n = 10},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.0794415416798357),+                                    ("<unit-of-duration> as a duration", -0.9808292530117262),+                                    ("day", -1.6739764335716716), ("year", -2.0794415416798357),+                                    ("month", -2.0794415416798357)],+                               n = 5}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.2809338454620642), ("Sunday", -1.791759469228055),+                                    ("Tuesday", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> o'clock", -2.639057329615259),+                                    ("intersect", -2.3513752571634776),+                                    ("year (latent)", -2.128231705849268),+                                    ("Monday", -3.044522437723423),+                                    ("<integer> (latent time-of-day)", -2.128231705849268),+                                    ("day", -1.791759469228055), ("Sunday", -2.639057329615259),+                                    ("year", -2.128231705849268), ("hour", -1.791759469228055)],+                               n = 16}}),+       ("March",+        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}}),+       ("sixth ordinal",+        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 = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("11th ordinal", -2.2335922215070942),+                                    ("8th ordinal", -2.639057329615259),+                                    ("third ordinal", -2.2335922215070942),+                                    ("16th ordinal", -2.639057329615259),+                                    ("second ordinal", -1.7227665977411035),+                                    ("ordinal (digits)", -2.2335922215070942),+                                    ("10th ordinal", -1.7227665977411035),+                                    ("9th ordinal", -1.7227665977411035)],+                               n = 20}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -1.791759469228055, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.8873031950009028,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -1.9924301646902063),+                                    ("<integer> (latent time-of-day)", -1.9924301646902063),+                                    ("<time-of-day> rano", -1.9924301646902063),+                                    ("hour", -1.0116009116784799),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -0.5306282510621704, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -2.2335922215070942),+                                    ("<integer> (latent time-of-day)", -1.7227665977411035),+                                    ("hh:mm", -2.639057329615259), ("noon", -2.2335922215070942),+                                    ("<time-of-day> rano", -2.639057329615259),+                                    ("hour", -1.0296194171811581), ("minute", -2.639057329615259)],+                               n = 10}}),+       ("<integer> and an half hours",+        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}}),+       ("<time-of-day> rano",+        Classifier{okData =+                     ClassData{prior = -0.10008345855698253,+                               unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.0149030205422647),+                                    ("<ordinal> (as hour)", -2.70805020110221),+                                    ("<integer> (latent time-of-day)", -1.5040773967762742),+                                    ("hh:mm", -3.1135153092103742),+                                    ("until <time-of-day>", -2.70805020110221),+                                    ("hour", -0.8622235106038793), ("minute", -3.1135153092103742)],+                               n = 19},+                   koData =+                     ClassData{prior = -2.3513752571634776,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -1.7047480922384253),+                                    ("until <time-of-day>", -1.7047480922384253),+                                    ("hour", -1.2992829841302609)],+                               n = 2}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.5649493574615367),+                                    ("Monday", -2.159484249353372), ("day", -0.9555114450274363),+                                    ("March", -2.5649493574615367), ("month", -2.5649493574615367),+                                    ("Tuesday", -1.3121863889661687)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("month (grain)", -1.6739764335716716),+                                    ("year (grain)", -2.367123614131617),+                                    ("week (grain)", -1.6739764335716716),+                                    ("year", -2.367123614131617), ("month", -1.6739764335716716)],+                               n = 12},+                   koData =+                     ClassData{prior = -1.3862943611198906, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("week (grain)", -1.6739764335716716),+                                    ("day", -1.6739764335716716),+                                    ("day (grain)", -1.6739764335716716)],+                               n = 4}}),+       ("christmas",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.793208009442517),+                                    ("threemonth (grain)", -3.1986731175506815),+                                    ("threehour (grain)", -3.1986731175506815),+                                    ("integer (numeric)day (grain)", -3.1986731175506815),+                                    ("second", -2.793208009442517),+                                    ("threeday (grain)", -3.1986731175506815),+                                    ("threeyear (grain)", -3.1986731175506815),+                                    ("integer (numeric)second (grain)", -3.1986731175506815),+                                    ("integer (numeric)year (grain)", -3.1986731175506815),+                                    ("threesecond (grain)", -3.1986731175506815),+                                    ("day", -2.505525936990736), ("year", -2.793208009442517),+                                    ("threeminute (grain)", -3.1986731175506815),+                                    ("integer (numeric)week (grain)", -3.1986731175506815),+                                    ("hour", -2.793208009442517), ("month", -3.1986731175506815),+                                    ("threeweek (grain)", -3.1986731175506815),+                                    ("integer (numeric)minute (grain)", -3.1986731175506815),+                                    ("a fewday (grain)", -3.1986731175506815),+                                    ("minute", -2.793208009442517),+                                    ("integer (numeric)hour (grain)", -3.1986731175506815)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("15th ordinal",+        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}}),+       ("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 = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("<ordinal> (as hour)", -2.456735772821304),+                                    ("year (latent)", -2.8622008809294686),+                                    ("<integer> (latent time-of-day)", -1.9459101490553135),+                                    ("day", -2.456735772821304), ("year", -2.8622008809294686),+                                    ("hh:mm", -2.8622008809294686),+                                    ("<day-of-month> (ordinal)", -2.456735772821304),+                                    ("noon", -2.8622008809294686),+                                    ("<time-of-day> rano", -2.8622008809294686),+                                    ("hour", -1.3581234841531944), ("minute", -2.8622008809294686)],+                               n = 12}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.691243082785829),+                                    ("number.number hours", -3.3843902633457743),+                                    ("second", -2.9789251552376097),+                                    ("<unit-of-duration> as a duration", -1.9980959022258835),+                                    ("day", -2.9789251552376097),+                                    ("half an hour", -3.3843902633457743),+                                    ("<integer> <unit-of-duration>", -1.5125880864441827),+                                    ("<integer> and an half hours", -3.3843902633457743),+                                    ("hour", -2.2857779746776643), ("minute", -1.5125880864441827),+                                    ("about <duration>", -2.9789251552376097)],+                               n = 24},+                   koData =+                     ClassData{prior = -2.1972245773362196, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.4469189829363254),+                                    ("<unit-of-duration> as a duration", -2.1400661634962708),+                                    ("<integer> <unit-of-duration>", -1.7346010553881064)],+                               n = 3}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.041453874828161, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("dayday", -2.120263536200091),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.120263536200091)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.4353180712578455, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.8622008809294686),+                                    ("daymonth", -2.456735772821304),+                                    ("about <time-of-day>noon", -2.8622008809294686),+                                    ("minuteminute", -1.7635885922613588),+                                    ("<time-of-day> rano<time-of-day> rano", -2.8622008809294686),+                                    ("until <time-of-day>noon", -2.8622008809294686),+                                    ("hh:mmhh:mm", -2.8622008809294686),+                                    ("hourhour", -1.9459101490553135),+                                    ("hh:mmintersect", -1.9459101490553135),+                                    ("at <time-of-day>noon", -2.8622008809294686),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.8622008809294686)],+                               n = 11}}),+       ("Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second ordinal",+        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}}),+       ("<time-of-day> popo\322udniu/wieczorem/w nocy",+        Classifier{okData =+                     ClassData{prior = -1.5037877364540559e-2,+                               unseen = -4.962844630259907,+                               likelihoods =+                                 HashMap.fromList+                                   [("exactly <time-of-day>", -4.2626798770413155),+                                    ("at <time-of-day>", -2.4709204078132605),+                                    ("<ordinal> (as hour)", -1.5218398531161146),+                                    ("<integer> (latent time-of-day)", -2.01138807843482),+                                    ("about <time-of-day>", -4.2626798770413155),+                                    ("hh:mm", -3.857214768933151),+                                    ("until <time-of-day>", -4.2626798770413155),+                                    ("hour", -0.812692331209728), ("minute", -3.3463891451671604),+                                    ("after <time-of-day>", -3.857214768933151)],+                               n = 66},+                   koData =+                     ClassData{prior = -4.204692619390966, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.791759469228055),+                                    ("hour", -1.791759469228055)],+                               n = 1}}),+       ("fifteen",+        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-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.4469189829363254, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.3862943611198906),+                                    ("hh:mmhh:mm", -1.3862943611198906)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.2682639865946794,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("about <time-of-day>noon", -2.9444389791664407),+                                    ("relative minutes to|till|before <integer> (hour-of-day)<integer> (latent time-of-day)",+                                     -2.9444389791664407),+                                    ("minuteminute", -2.9444389791664407),+                                    ("<time-of-day> rano<time-of-day> rano", -2.9444389791664407),+                                    ("until <time-of-day>noon", -2.9444389791664407),+                                    ("hh:mmhh:mm", -2.9444389791664407),+                                    ("hourhour", -1.6916760106710724),+                                    ("minutehour", -1.6916760106710724),+                                    ("at <time-of-day>noon", -2.9444389791664407),+                                    ("<time-of-day> rano<integer> (latent time-of-day)",+                                     -2.9444389791664407),+                                    ("until <time-of-day><integer> (latent time-of-day)",+                                     -2.9444389791664407),+                                    ("hh:mm<integer> (latent time-of-day)", -1.845826690498331)],+                               n = 13}}),+       ("<hour-of-day> - <hour-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.5040773967762742,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.2809338454620642),+                                    ("hh:mmhh:mm", -1.2809338454620642)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("about <time-of-day>noon", -2.9444389791664407),+                                    ("minuteminute", -2.9444389791664407),+                                    ("<time-of-day> rano<time-of-day> rano", -2.9444389791664407),+                                    ("until <time-of-day>noon", -2.9444389791664407),+                                    ("hh:mmhh:mm", -2.9444389791664407),+                                    ("hourhour", -0.9985288301111273),+                                    ("after <time-of-day>noon", -2.538973871058276),+                                    ("at <time-of-day>noon", -2.9444389791664407),+                                    ("<ordinal> (as hour)noon", -1.845826690498331),+                                    ("<integer> (latent time-of-day)noon", -2.538973871058276)],+                               n = 14}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.583997552432231),+                                    ("integer (numeric)day (grain)", -2.871679624884012),+                                    ("twoweek (grain)", -3.2771447329921766),+                                    ("twominute (grain)", -3.2771447329921766),+                                    ("second", -2.871679624884012),+                                    ("integer (numeric)second (grain)", -3.2771447329921766),+                                    ("twomonth (grain)", -3.2771447329921766),+                                    ("onehour (grain)", -3.2771447329921766),+                                    ("integer (numeric)year (grain)", -3.2771447329921766),+                                    ("day", -2.583997552432231), ("year", -2.871679624884012),+                                    ("integer (numeric)week (grain)", -2.871679624884012),+                                    ("twoday (grain)", -3.2771447329921766),+                                    ("hour", -2.871679624884012), ("month", -2.871679624884012),+                                    ("integer (numeric)minute (grain)", -3.2771447329921766),+                                    ("integer (numeric)month (grain)", -3.2771447329921766),+                                    ("minute", -2.871679624884012),+                                    ("twosecond (grain)", -3.2771447329921766),+                                    ("integer (numeric)hour (grain)", -3.2771447329921766),+                                    ("twoyear (grain)", -3.2771447329921766)],+                               n = 16},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129, unseen = -3.871201010907891,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -1.9042374526547454),+                                    ("Marchinteger (numeric)", -2.463853240590168),+                                    ("Aprilinteger (numeric)", -3.1570004211501135),+                                    ("month", -0.8056251639866356),+                                    ("Februaryinteger (numeric)", -1.9042374526547454),+                                    ("Septemberinteger (numeric)", -3.1570004211501135),+                                    ("Julyinteger (numeric)", -2.463853240590168)],+                               n = 20},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Marchinteger (numeric)", -2.4423470353692043),+                                    ("Aprilinteger (numeric)", -1.3437347467010947),+                                    ("month", -0.9382696385929302),+                                    ("Julyinteger (numeric)", -2.03688192726104)],+                               n = 8}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.1431008436406733,+                               unseen = -3.5263605246161616,+                               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},+                   koData =+                     ClassData{prior = -2.0149030205422647,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)August", -1.7047480922384253),+                                    ("month", -1.2992829841302609),+                                    ("integer (numeric)July", -1.7047480922384253)],+                               n = 2}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -2.3978952727983707),+                                    ("Monday", -1.9924301646902063), ("day", -0.7884573603642702),+                                    ("Tuesday", -1.1451323043030026)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("three",+        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}}),+       ("ordinal (digits)",+        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}}),+       ("quarter (grain)",+        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}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9459101490553135),+                                    ("daymonth", -1.540445040947149),+                                    ("day (grain)intersect", -1.9459101490553135),+                                    ("weekmonth", -1.540445040947149),+                                    ("week (grain)intersect", -1.9459101490553135),+                                    ("week (grain)September", -1.9459101490553135)],+                               n = 4},+                   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 = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("14th ordinalApril", -1.845826690498331),+                                    ("third ordinalMarch", -2.2512917986064953),+                                    ("ordinal (digits)April", -1.55814461804655),+                                    ("month", -0.8649974374866046),+                                    ("ordinal (digits)March", -2.2512917986064953)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        Classifier{okData =+                     ClassData{prior = -0.7731898882334817,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -0.6190392084062235,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("relative minutes to|till|before <integer> (hour-of-day)",+        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> (latent time-of-day)",+                                     -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2}}),+       ("week-end",+        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}}),+       ("10th ordinal",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -1.2367626271489267,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -2.268683541318364),+                                    ("<ordinal> (as hour)", -2.268683541318364),+                                    ("afternoon", -1.9810014688665833),+                                    ("hour", -1.0647107369924282),+                                    ("<time-of-day> popo\322udniu/wieczorem/w nocy",+                                     -2.268683541318364)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.3429447511268303, unseen = -4.02535169073515,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -2.908720896564361),+                                    ("intersect", -3.3141860046725258),+                                    ("tomorrow", -2.3978952727983707), ("day", -2.0614230361771577),+                                    ("afternoon", -2.3978952727983707),+                                    ("<day-of-month> (ordinal)", -2.908720896564361),+                                    ("noon", -1.927891643552635), ("hour", -1.1741198411762548),+                                    ("<hour-of-day> - <hour-of-day> (interval)",+                                     -2.908720896564361)],+                               n = 22}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = -0.12783337150988489,+                               unseen = -3.1780538303479458,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},+                   koData =+                     ClassData{prior = -2.120263536200091, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("9th ordinal",+        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}}),+       ("first ordinal",+        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}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("July", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day-after-tomorrow (single-word)",+        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}}),+       ("<hour-of-day> <integer> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>fifteen", -1.252762968495368),+                                    ("at <time-of-day>twenty", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("23rd ordinal no space",+        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 <time>",+        Classifier{okData =+                     ClassData{prior = -0.6286086594223742, unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -3.1986731175506815),+                                    ("on <date>", -3.1986731175506815),+                                    ("Wednesday", -3.1986731175506815),+                                    ("season", -2.2823823856765264),+                                    ("Saturday", -3.1986731175506815),+                                    ("evening|night", -3.1986731175506815),+                                    ("Monday", -3.1986731175506815),+                                    ("Friday", -3.1986731175506815), ("day", -1.4069136483226263),+                                    ("Sunday", -3.1986731175506815), ("hour", -2.1000608288825715),+                                    ("Tuesday", -3.1986731175506815),+                                    ("week-end", -2.505525936990736)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.7621400520468967, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -3.1135153092103742),+                                    ("evening|night", -3.1135153092103742),+                                    ("April", -2.70805020110221), ("day", -2.70805020110221),+                                    ("February", -1.6094379124341003), ("hour", -2.70805020110221),+                                    ("month", -1.4087672169719492),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -2.70805020110221)],+                               n = 14}}),+       ("<named-month> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("February15th ordinal", -1.791759469228055),+                                    ("Marchfirst ordinal", -1.791759469228055),+                                    ("month", -0.8754687373538999),+                                    ("Marchordinal (digits)", -1.3862943611198906)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("August",+        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}})]
− Duckling/Ranking/Classifiers/PT.hs
@@ -1,1279 +0,0 @@--- 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.PT (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<cycle> (que vem)",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("semana (grain)", -1.540445040947149),-                                    ("mes (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135),-                                    ("ano (grain)", -1.9459101490553135),-                                    ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("semana (grain)", -1.791759469228055),-                                    ("mes (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055),-                                    ("ano (grain)", -1.791759469228055),-                                    ("month", -1.791759469228055)],-                               n = 3}}),-       ("midnight",-        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}}),-       ("<dim time> da tarde",-        Classifier{okData =-                     ClassData{prior = -0.24686007793152578, unseen = -4.0943445622221,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> and half", -2.468099531471619),-                                    ("time-of-day (latent)", -2.9789251552376097),-                                    ("<hour-of-day> and <relative minutes>", -2.1316272948504063),-                                    ("hour", -2.468099531471619),-                                    ("<hour-of-day> and quinze", -2.468099531471619),-                                    ("minute", -0.9864949905474035),-                                    ("\224s <time-of-day>", -1.7749523509116738)],-                               n = 25},-                   koData =-                     ClassData{prior = -1.5198257537444133,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -1.3437347467010947),-                                    ("time-of-day (latent)", -2.03688192726104),-                                    ("year", -1.3437347467010947), ("hour", -2.03688192726104)],-                               n = 7}}),-       ("de <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.252762968495368),-                                    ("hour", -0.8472978603872037),-                                    ("\224s <time-of-day>", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.6427163269330534, unseen = -4.143134726391533,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 61},-                   koData =-                     ClassData{prior = -0.7462570058738938, unseen = -4.04305126783455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 55}}),-       ("the day before yesterday",-        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(:|.|h)mm (time-of-day)",-        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}}),-       ("<named-month|named-day> past",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("proximo <cycle> ",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("semana (grain)", -1.540445040947149),-                                    ("mes (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135),-                                    ("ano (grain)", -1.9459101490553135),-                                    ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("semana (grain)", -1.791759469228055),-                                    ("mes (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055),-                                    ("ano (grain)", -1.791759469228055),-                                    ("month", -1.791759469228055)],-                               n = 3}}),-       ("dd[/-]mm",-        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}}),-       ("intersect by `da` or `de`",-        Classifier{okData =-                     ClassData{prior = -0.6443570163905132, unseen = -4.31748811353631,-                               likelihoods =-                                 HashMap.fromList-                                   [("day of month (1st)named-month", -3.20545280453606),-                                    ("daymonth", -3.20545280453606),-                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"2",-                                     -3.6109179126442243),-                                    ("<day-of-month> de <named-month>intersect",-                                     -3.6109179126442243),-                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"",-                                     -3.6109179126442243),-                                    ("dayday", -2.917770732084279),-                                    ("dayyear", -1.6650077635889111),-                                    ("named-dayproximo <cycle> ", -3.6109179126442243),-                                    ("dd-dd <month>(interval)year", -3.6109179126442243),-                                    ("named-day<cycle> (que vem)", -3.6109179126442243),-                                    ("two time tokens separated by \",\"2year", -3.20545280453606),-                                    ("intersectyear", -3.6109179126442243),-                                    ("<day-of-month> de <named-month>year", -2.2246235515243336),-                                    ("two time tokens separated by \",\"year", -3.20545280453606),-                                    ("dayweek", -2.917770732084279),-                                    ("named-day<cycle> passado", -3.6109179126442243)],-                               n = 21},-                   koData =-                     ClassData{prior = -0.7444404749474959,-                               unseen = -4.2626798770413155,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> <integer> (as relative minutes)intersect",-                                     -3.5553480614894135),-                                    ("monthday", -2.8622008809294686),-                                    ("monthyear", -2.05127066471314),-                                    ("hourmonth", -3.1498829533812494),-                                    ("monthmonth", -3.5553480614894135),-                                    ("dayyear", -3.5553480614894135),-                                    ("minutemonth", -2.8622008809294686),-                                    ("named-monthyear", -2.05127066471314),-                                    ("de <datetime> - <datetime> (interval)named-month",-                                     -3.5553480614894135),-                                    ("\224s <time-of-day>named-month", -3.1498829533812494),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -3.5553480614894135),-                                    ("<day-of-month> de <named-month>year", -3.5553480614894135),-                                    ("intersect by `da` or `de`year", -3.5553480614894135),-                                    ("named-monthtwo time tokens separated by \",\"2",-                                     -3.5553480614894135),-                                    ("named-monthintersect", -3.5553480614894135),-                                    ("<hour-of-day> <integer> (as relative minutes)intersect by `da` or `de`",-                                     -3.5553480614894135),-                                    ("minuteyear", -3.5553480614894135),-                                    ("named-monthtwo time tokens separated by \",\"",-                                     -3.5553480614894135)],-                               n = 19}}),-       ("<hour-of-day> and half",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.4816045409242156),-                                    ("noon", -2.3978952727983707), ("hour", -0.7884573603642702),-                                    ("\224s <time-of-day>", -1.4816045409242156)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("semana (grain)",-        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}}),-       ("two time tokens separated by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.1670540846631662,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersectnamed-day", -2.772588722239781),-                                    ("intersect by `da` or `de`named-day", -2.772588722239781),-                                    ("dayday", -1.1631508098056809),-                                    ("de <year>named-day", -2.772588722239781),-                                    ("named-dayintersect", -2.367123614131617),-                                    ("named-dayintersect by `da` or `de`", -2.367123614131617),-                                    ("yearnamed-day", -2.772588722239781),-                                    ("named-day<day-of-month> de <named-month>",-                                     -2.0794415416798357),-                                    ("yearday", -2.367123614131617)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.8718021769015913, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.540445040947149),-                                    ("intersectnamed-day", -1.9459101490553135),-                                    ("intersect by `da` or `de`named-day", -1.9459101490553135)],-                               n = 2}}),-       ("ordinals (primeiro..10)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),-       ("<day-of-month> de <named-month>",-        Classifier{okData =-                     ClassData{prior = -7.410797215372185e-2,-                               unseen = -4.02535169073515,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..15)named-month", -1.927891643552635),-                                    ("integer (numeric)named-month", -1.0116009116784799),-                                    ("month", -0.7114963192281418)],-                               n = 26},-                   koData =-                     ClassData{prior = -2.639057329615259, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.8472978603872037),-                                    ("month", -0.8472978603872037)],-                               n = 2}}),-       ("<time-of-day> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.33270575382573614,-                               unseen = -4.584967478670572,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> and quinzeafternoon", -2.9652730660692823),-                                    ("<day-of-month> de <named-month>morning", -3.8815637979434374),-                                    ("dayhour", -3.4760986898352733),-                                    ("\224s <time-of-day>morning", -3.188416617383492),-                                    ("hourhour", -1.8021222562636017),-                                    ("<hour-of-day> and halfafternoon", -2.9652730660692823),-                                    ("minutehour", -1.483668525145067),-                                    ("time-of-day (latent)morning", -3.188416617383492),-                                    ("time-of-day (latent)evening", -3.4760986898352733),-                                    ("\224s <time-of-day>afternoon", -2.2721258855093374),-                                    ("dia <day-of-month> de <named-month>morning",-                                     -3.8815637979434374),-                                    ("time-of-day (latent)afternoon", -3.4760986898352733),-                                    ("<hour-of-day> and <relative minutes>afternoon",-                                     -2.62880082944807),-                                    ("intersectmorning", -3.8815637979434374),-                                    ("\224s <time-of-day>evening", -3.4760986898352733)],-                               n = 38},-                   koData =-                     ClassData{prior = -1.262241712449912, unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -1.4469189829363254),-                                    ("monthhour", -3.2386784521643803),-                                    ("hourhour", -2.5455312716044354),-                                    ("time-of-day (latent)morning", -3.2386784521643803),-                                    ("year (latent)afternoon", -2.1400661634962708),-                                    ("named-monthmorning", -3.2386784521643803),-                                    ("year (latent)evening", -2.833213344056216),-                                    ("time-of-day (latent)afternoon", -2.833213344056216),-                                    ("year (latent)morning", -2.322387720290225)],-                               n = 15}}),-       ("de <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.791759469228055),-                                    ("monthyear", -1.791759469228055),-                                    ("monthhour", -1.791759469228055),-                                    ("named-monthyear (latent)", -1.791759469228055),-                                    ("named-monthtime-of-day (latent)", -1.791759469228055),-                                    ("named-month<day-of-month> de <named-month>",-                                     -1.791759469228055)],-                               n = 3}}),-       ("<time-of-day> horas",-        Classifier{okData =-                     ClassData{prior = -0.7731898882334817,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.5040773967762742),-                                    ("hour", -0.9444616088408514),-                                    ("depois das <time-of-day>", -1.791759469228055),-                                    ("\224s <time-of-day>", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.6190392084062235, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2039728043259361),-                                    ("<hour-of-day> and <relative minutes>", -2.3025850929940455),-                                    ("hour", -1.0498221244986778), ("minute", -2.3025850929940455),-                                    ("\224s <time-of-day>", -2.3025850929940455)],-                               n = 7}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -5.062595033026967,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> de <named-month>in the <part-of-day>",-                                     -3.9576335166801986),-                                    ("dayhour", -2.4171884757330493),-                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"2",-                                     -4.363098624788362),-                                    ("nowquinze para as <hour-of-day> (as relative minutes)",-                                     -4.363098624788362),-                                    ("intersectnamed-day", -4.363098624788362),-                                    ("now\224s <time-of-day>", -3.9576335166801986),-                                    ("<day-of-month> de <named-month>intersect",-                                     -4.363098624788362),-                                    ("now<hour-of-day> and 3/4", -4.363098624788362),-                                    ("intersect by `da` or `de`named-day", -4.363098624788362),-                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"",-                                     -4.363098624788362),-                                    ("dayday", -2.8590212280120886),-                                    ("hourhour", -4.363098624788362),-                                    ("named-day\224s <time-of-day>", -4.363098624788362),-                                    ("dayyear", -2.348195604246098),-                                    ("minutehour", -3.1103356562929947),-                                    ("<hour-of-day> and quinzein the <part-of-day>",-                                     -3.9576335166801986),-                                    ("de <year>named-day", -4.363098624788362),-                                    ("now<hour-of-day> and <relative minutes>", -4.363098624788362),-                                    ("named-dayin the <part-of-day>", -4.363098624788362),-                                    ("tomorrow<time-of-day> horas", -3.9576335166801986),-                                    ("now<integer> para as <hour-of-day> (as relative minutes)",-                                     -4.363098624788362),-                                    ("\224s <time-of-day>in the <part-of-day>",-                                     -3.6699514442284173),-                                    ("named-dayintersect", -4.363098624788362),-                                    ("named-dayamanh\227 pela <part-of-day>", -4.363098624788362),-                                    ("dayminute", -3.1103356562929947),-                                    ("named-dayintersect by `da` or `de`", -4.363098624788362),-                                    ("yearnamed-day", -4.363098624788362),-                                    ("dd-dd <month>(interval)de <year>", -4.363098624788362),-                                    ("named-day<day-of-month> de <named-month>",-                                     -4.363098624788362),-                                    ("named-day<time-of-day> <part-of-day>", -4.363098624788362),-                                    ("dia <day-of-month> de <named-month>in the <part-of-day>",-                                     -3.9576335166801986),-                                    ("yearday", -3.9576335166801986),-                                    ("named-day<dim time> da manha", -4.363098624788362),-                                    ("two time tokens separated by \",\"de <year>",-                                     -3.9576335166801986),-                                    ("dd[/-]mmyear", -4.363098624788362),-                                    ("<day-of-month> de <named-month>de <year>",-                                     -2.976804263668472),-                                    ("tomorrowdepois das <time-of-day>", -3.9576335166801986),-                                    ("<hour-of-day> and <relative minutes>in the <part-of-day>",-                                     -3.9576335166801986),-                                    ("two time tokens separated by \",\"2de <year>",-                                     -3.9576335166801986),-                                    ("intersectde <year>", -4.363098624788362)],-                               n = 50},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -4.68213122712422,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.979681653901961),-                                    ("dayhour", -3.5742165457937967),-                                    ("monthday", -2.8810693652338513),-                                    ("named-month\224s <time-of-day>", -3.979681653901961),-                                    ("monthyear", -2.4756042571256867),-                                    ("intersectnamed-day", -3.979681653901961),-                                    ("now\224s <time-of-day>", -3.5742165457937967),-                                    ("<time-of-day> am|pm<day-of-month> de <named-month>",-                                     -3.979681653901961),-                                    ("intersect by `da` or `de`named-day", -3.979681653901961),-                                    ("monthhour", -3.2865344733420154),-                                    ("dayyear", -3.979681653901961),-                                    ("now<hour-of-day> and <relative minutes>", -3.979681653901961),-                                    ("daysecond", -3.979681653901961),-                                    ("named-dayright now", -3.979681653901961),-                                    ("dayminute", -3.5742165457937967),-                                    ("named-monthde <year>", -2.4756042571256867),-                                    ("named-monthin the <part-of-day>", -3.5742165457937967),-                                    ("named-monthtwo time tokens separated by \",\"2",-                                     -3.979681653901961),-                                    ("intersect by `da` or `de`de <year>", -3.979681653901961),-                                    ("named-monthintersect", -3.979681653901961),-                                    ("<day-of-month> de <named-month>\224s <time-of-day>",-                                     -3.979681653901961),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -3.979681653901961),-                                    ("<day-of-month> de <named-month>de <year>",-                                     -3.979681653901961),-                                    ("minuteyear", -3.5742165457937967),-                                    ("named-monthtwo time tokens separated by \",\"",-                                     -3.979681653901961)],-                               n = 25}}),-       ("season",-        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}}),-       ("minutos (grain)",-        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}}),-       ("two time tokens separated by \",\"2",-        Classifier{okData =-                     ClassData{prior = -0.1670540846631662,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersectnamed-day", -2.772588722239781),-                                    ("intersect by `da` or `de`named-day", -2.772588722239781),-                                    ("dayday", -1.1631508098056809),-                                    ("de <year>named-day", -2.772588722239781),-                                    ("named-dayintersect", -2.367123614131617),-                                    ("named-dayintersect by `da` or `de`", -2.367123614131617),-                                    ("yearnamed-day", -2.772588722239781),-                                    ("named-day<day-of-month> de <named-month>",-                                     -2.0794415416798357),-                                    ("yearday", -2.367123614131617)],-                               n = 11},-                   koData =-                     ClassData{prior = -1.8718021769015913, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.540445040947149),-                                    ("intersectnamed-day", -1.9459101490553135),-                                    ("intersect by `da` or `de`named-day", -1.9459101490553135)],-                               n = 2}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3217558399823195),-                                    ("number (0..15)", -0.5108256237659907),-                                    ("number (20..90)", -2.0149030205422647)],-                               n = 12}}),-       ("n[ao] <date>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dia <day-of-month> (non ordinal)", -1.252762968495368),-                                    ("day", -0.8472978603872037),-                                    ("named-day", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("amanh\227 pela <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("<hour-of-day> and quinzeafternoon", -3.0252910757955354),-                                    ("<day-of-month> de <named-month>morning", -3.9415818076696905),-                                    ("dayhour", -3.0252910757955354),-                                    ("\224s <time-of-day>morning", -3.248434627109745),-                                    ("hourhour", -1.8621402659898547),-                                    ("<hour-of-day> and halfafternoon", -3.0252910757955354),-                                    ("minutehour", -1.54368653487132),-                                    ("tomorrowevening", -3.9415818076696905),-                                    ("time-of-day (latent)morning", -3.248434627109745),-                                    ("time-of-day (latent)evening", -3.536116699561526),-                                    ("\224s <time-of-day>afternoon", -2.33214389523559),-                                    ("dia <day-of-month> de <named-month>morning",-                                     -3.9415818076696905),-                                    ("yesterdayevening", -3.9415818076696905),-                                    ("time-of-day (latent)afternoon", -3.536116699561526),-                                    ("<hour-of-day> and <relative minutes>afternoon",-                                     -2.6888188391743224),-                                    ("intersectmorning", -3.9415818076696905),-                                    ("\224s <time-of-day>evening", -3.536116699561526)],-                               n = 40},-                   koData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -1.4853852637641216),-                                    ("monthhour", -3.2771447329921766),-                                    ("hourhour", -2.583997552432231),-                                    ("time-of-day (latent)morning", -3.2771447329921766),-                                    ("year (latent)afternoon", -2.178532444324067),-                                    ("named-monthmorning", -3.2771447329921766),-                                    ("year (latent)evening", -2.871679624884012),-                                    ("time-of-day (latent)afternoon", -2.871679624884012),-                                    ("year (latent)morning", -2.3608540011180215)],-                               n = 15}}),-       ("dentro de <duration>",-        Classifier{okData =-                     ClassData{prior = -2.772588722239781, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration>", -1.6094379124341003),-                                    ("hour", -1.6094379124341003)],-                               n = 1},-                   koData =-                     ClassData{prior = -6.453852113757118e-2,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),-                                    ("day", -2.538973871058276), ("year", -2.538973871058276),-                                    ("<integer> <unit-of-duration>", -0.8649974374866046),-                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),-                                    ("minute", -1.845826690498331)],-                               n = 15}}),-       ("dia <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        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}}),-       ("dia <day-of-month> de <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("evening", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (0..15)",-        Classifier{okData =-                     ClassData{prior = -1.9048194970694474e-2,-                               unseen = -3.9889840465642745,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 52},-                   koData =-                     ClassData{prior = -3.970291913552122, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("antes das <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight", -1.2992829841302609),-                                    ("noon", -1.2992829841302609), ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("dd-dd <month>(interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> passado",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.540445040947149),-                                    ("semana (grain)", -1.540445040947149),-                                    ("mes (grain)", -1.9459101490553135),-                                    ("year", -1.9459101490553135),-                                    ("ano (grain)", -1.9459101490553135),-                                    ("month", -1.9459101490553135)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("mes (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> para as <hour-of-day> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)noon", -1.7047480922384253),-                                    ("hour", -0.7884573603642702),-                                    ("number (0..15)noon", -1.0116009116784799)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (20..90)",-        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}}),-       ("<dim time> da manha",-        Classifier{okData =-                     ClassData{prior = -0.2006706954621511, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> de <named-month>", -2.6026896854443837),-                                    ("intersect", -2.6026896854443837),-                                    ("dia <day-of-month> de <named-month>", -2.6026896854443837),-                                    ("day", -2.1972245773362196),-                                    ("time-of-day (latent)", -1.9095425048844386),-                                    ("hour", -1.2163953243244932),-                                    ("\224s <time-of-day>", -1.9095425048844386)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.7047480922384253, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.8718021769015913),-                                    ("time-of-day (latent)", -1.8718021769015913),-                                    ("hour", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 2}}),-       ("em <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),-                                    ("day", -2.538973871058276), ("year", -2.538973871058276),-                                    ("<integer> <unit-of-duration>", -0.8649974374866046),-                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),-                                    ("minute", -1.845826690498331)],-                               n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("passados n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)dia (grain)", -1.791759469228055),-                                    ("integer (numeric)mes (grain)", -1.791759469228055),-                                    ("integer (numeric)ano (grain)", -1.791759469228055),-                                    ("day", -1.791759469228055), ("year", -1.791759469228055),-                                    ("month", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        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}}),-       ("<hour-of-day> and 3/4",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2992829841302609),-                                    ("hour", -0.7884573603642702),-                                    ("\224s <time-of-day>", -1.2992829841302609)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.43286408229627876,-                               unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.0986122886681098),-                                    ("number (0..15)", -0.46262352194811296)],-                               n = 24},-                   koData =-                     ClassData{prior = -1.0459685551826876, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.8266785731844679),-                                    ("number (0..15)", -0.8266785731844679),-                                    ("number (20..90)", -2.0794415416798357)],-                               n = 13}}),-       ("<hour-of-day> and <relative minutes>",-        Classifier{okData =-                     ClassData{prior = -0.2719337154836418, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224s <time-of-day>number (0..15)", -2.3025850929940455),-                                    ("time-of-day (latent)number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-                                     -2.5902671654458267),-                                    ("\224s <time-of-day>number (20..90)", -2.5902671654458267),-                                    ("\224s <time-of-day>number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-                                     -2.5902671654458267),-                                    ("time-of-day (latent)number (0..15)", -2.0794415416798357),-                                    ("hour", -0.8556661100577202),-                                    ("time-of-day (latent)number (20..90)", -2.5902671654458267),-                                    ("noonnumber (0..15)", -2.995732273553991)],-                               n = 16},-                   koData =-                     ClassData{prior = -1.4350845252893227,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("\224s <time-of-day>number (20..90)", -1.791759469228055),-                                    ("time-of-day (latent)number (0..15)", -2.1972245773362196),-                                    ("hour", -1.0986122886681098),-                                    ("time-of-day (latent)number (20..90)", -1.791759469228055)],-                               n = 5}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 6}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.6443570163905132, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.772588722239781),-                                    ("number (0..15)ano (grain)", -3.0602707946915624),-                                    ("integer (numeric)hora (grain)", -3.4657359027997265),-                                    ("integer (numeric)dia (grain)", -3.4657359027997265),-                                    ("number (0..15)segundo (grain)", -3.4657359027997265),-                                    ("second", -3.4657359027997265),-                                    ("integer (numeric)ano (grain)", -3.4657359027997265),-                                    ("integer (numeric)minutos (grain)", -2.772588722239781),-                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)hora (grain)",-                                     -3.4657359027997265),-                                    ("day", -3.0602707946915624), ("year", -2.772588722239781),-                                    ("number (0..15)mes (grain)", -3.0602707946915624),-                                    ("number (0..15)hora (grain)", -2.772588722239781),-                                    ("hour", -2.367123614131617), ("month", -3.0602707946915624),-                                    ("number (0..15)dia (grain)", -3.4657359027997265),-                                    ("number (0..15)minutos (grain)", -3.0602707946915624),-                                    ("minute", -2.367123614131617),-                                    ("number (0..15)semana (grain)", -2.772588722239781)],-                               n = 21},-                   koData =-                     ClassData{prior = -0.7444404749474959, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.995732273553991),-                                    ("number (0..15)ano (grain)", -3.4011973816621555),-                                    ("integer (numeric)hora (grain)", -2.70805020110221),-                                    ("integer (numeric)dia (grain)", -2.995732273553991),-                                    ("integer (numeric)mes (grain)", -3.4011973816621555),-                                    ("second", -2.995732273553991),-                                    ("integer (numeric)semana (grain)", -3.4011973816621555),-                                    ("integer (numeric)ano (grain)", -2.995732273553991),-                                    ("integer (numeric)minutos (grain)", -2.995732273553991),-                                    ("day", -2.995732273553991),-                                    ("integer (numeric)segundo (grain)", -2.995732273553991),-                                    ("year", -2.70805020110221),-                                    ("number (0..15)mes (grain)", -2.995732273553991),-                                    ("number (0..15)hora (grain)", -2.995732273553991),-                                    ("hour", -2.3025850929940455), ("month", -2.70805020110221),-                                    ("minute", -2.995732273553991),-                                    ("number (0..15)semana (grain)", -3.4011973816621555)],-                               n = 19}}),-       ("proximas n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("number (0..15)ano (grain)", -2.4849066497880004),-                                    ("integer (numeric)hora (grain)", -2.4849066497880004),-                                    ("integer (numeric)dia (grain)", -2.4849066497880004),-                                    ("second", -2.4849066497880004),-                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),-                                    ("day", -2.4849066497880004),-                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),-                                    ("year", -2.4849066497880004),-                                    ("number (0..15)mes (grain)", -2.4849066497880004),-                                    ("hour", -2.4849066497880004), ("month", -2.4849066497880004),-                                    ("minute", -2.4849066497880004)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.252762968495368),-                                    ("hour", -0.8472978603872037),-                                    ("\224s <time-of-day>", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 1}}),-       ("n proximas <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("integer (numeric)mes (grain)", -1.791759469228055),-                                    ("integer (numeric)semana (grain)", -1.791759469228055),-                                    ("integer (numeric)ano (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055), ("month", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("vespera de ano novo",-        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}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.189654742026425,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 64},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("number (20..90)number (0..15)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day of month (1st)",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("ano (grain)",-        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}}),-       ("este <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("semana (grain)", -1.6094379124341003),-                                    ("year", -1.6094379124341003),-                                    ("ano (grain)", -1.6094379124341003)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.0986122886681098),-                                    ("dia (grain)", -1.0986122886681098)],-                               n = 3}}),-       ("<named-month|named-day> next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<part-of-day> dessa semana",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the day after tomorrow",-        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}}),-       ("ano novo",-        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}}),-       ("dd[/-.]mm[/-.]yyyy",-        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}}),-       ("noon",-        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}}),-       ("n <cycle> (proximo|que vem)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("integer (numeric)semana (grain)", -1.791759469228055),-                                    ("integer (numeric)ano (grain)", -1.791759469228055),-                                    ("year", -1.791759469228055),-                                    ("number (0..15)mes (grain)", -1.791759469228055),-                                    ("month", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("evening",-        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}}),-       ("<hour-of-day> and quinze",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.3862943611198906),-                                    ("noon", -2.3025850929940455), ("hour", -0.7985076962177716),-                                    ("\224s <time-of-day>", -1.6094379124341003)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("depois das <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> horas", -1.6739764335716716),-                                    ("time-of-day (latent)", -1.6739764335716716),-                                    ("noon", -1.6739764335716716), ("hour", -0.8266785731844679)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.9459101490553135),-                                    ("dayday", -1.9459101490553135),-                                    ("hh(:|.|h)mm (time-of-day)hh(:|.|h)mm (time-of-day)",-                                     -1.9459101490553135),-                                    ("<day-of-month> de <named-month><day-of-month> de <named-month>",-                                     -1.9459101490553135)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -2.0794415416798357),-                                    ("dayyear", -2.0794415416798357),-                                    ("named-month<day-of-month> de <named-month>",-                                     -2.0794415416798357),-                                    ("dd[/-]mmyear", -2.0794415416798357),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -2.0794415416798357),-                                    ("minuteyear", -2.0794415416798357)],-                               n = 3}}),-       ("segundo (grain)",-        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}}),-       ("dia (grain)",-        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}}),-       ("in the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("afternoon", -1.8718021769015913),-                                    ("hour", -0.7731898882334817),-                                    ("morning", -0.9555114450274363)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("natal",-        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}}),-       ("morning",-        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}}),-       ("week-end",-        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}}),-       ("hora (grain)",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("right now",-        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}}),-       ("quinze para as <hour-of-day> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("\224s <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.16507975035944858,-                               unseen = -4.499809670330265,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.7954891891721947),-                                    ("<hour-of-day> and half", -2.8791984572980396),-                                    ("<time-of-day> horas", -3.7954891891721947),-                                    ("<hour-of-day> and 3/4", -3.39002408106403),-                                    ("time-of-day (latent)", -1.4441139320087168),-                                    ("<hour-of-day> and <relative minutes>", -2.409194828052304),-                                    ("<time-of-day> am|pm", -3.7954891891721947),-                                    ("hour", -1.3105825393841943),-                                    ("<hour-of-day> and quinze", -3.1023420086122493),-                                    ("minute", -1.6554230256759237)],-                               n = 39},-                   koData =-                     ClassData{prior = -1.8827312474337816, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("midnight", -2.5257286443082556),-                                    ("<time-of-day> horas", -2.5257286443082556),-                                    ("time-of-day (latent)", -1.8325814637483102),-                                    ("<hour-of-day> and <relative minutes>", -2.120263536200091),-                                    ("hour", -1.4271163556401458), ("minute", -2.120263536200091)],-                               n = 7}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2}}),-       ("fazem <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003), ("year", -2.0149030205422647),-                                    ("<integer> <unit-of-duration>", -0.916290731874155),-                                    ("hour", -2.0149030205422647), ("month", -2.0149030205422647)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("n <cycle> atras",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055), ("second", -1.791759469228055),-                                    ("integer (numeric)minutos (grain)", -1.791759469228055),-                                    ("integer (numeric)segundo (grain)", -1.791759469228055),-                                    ("minute", -1.791759469228055),-                                    ("number (0..15)semana (grain)", -1.791759469228055)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -2.1102132003465894),-                                    ("dia <day-of-month> (non ordinal)", -2.1102132003465894),-                                    ("day", -1.1939224684724346),-                                    ("named-day", -2.1102132003465894),-                                    ("hour", -1.8870696490323797), ("evening", -2.3978952727983707),-                                    ("week-end", -2.3978952727983707)],-                               n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/PT_XX.hs view
@@ -0,0 +1,1338 @@+-- 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.PT_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<cycle> (que vem)",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("semana (grain)", -1.540445040947149),+                                    ("mes (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135),+                                    ("ano (grain)", -1.9459101490553135),+                                    ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("semana (grain)", -1.791759469228055),+                                    ("mes (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055),+                                    ("ano (grain)", -1.791759469228055),+                                    ("month", -1.791759469228055)],+                               n = 3}}),+       ("midnight",+        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}}),+       ("<dim time> da tarde",+        Classifier{okData =+                     ClassData{prior = -0.24686007793152578, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> and half", -2.468099531471619),+                                    ("time-of-day (latent)", -2.9789251552376097),+                                    ("<hour-of-day> and <relative minutes>", -2.1316272948504063),+                                    ("hour", -2.468099531471619),+                                    ("<hour-of-day> and quinze", -2.468099531471619),+                                    ("minute", -0.9864949905474035),+                                    ("\224s <time-of-day>", -1.7749523509116738)],+                               n = 25},+                   koData =+                     ClassData{prior = -1.5198257537444133,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -1.3437347467010947),+                                    ("time-of-day (latent)", -2.03688192726104),+                                    ("year", -1.3437347467010947), ("hour", -2.03688192726104)],+                               n = 7}}),+       ("de <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.8472978603872037),+                                    ("\224s <time-of-day>", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.6513000706244448, unseen = -4.143134726391533,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 61},+                   koData =+                     ClassData{prior = -0.7368222440626069, unseen = -4.060443010546419,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 56}}),+       ("the day before yesterday",+        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(:|.|h)mm (time-of-day)",+        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}}),+       ("<named-month|named-day> past",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("proximo <cycle> ",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("semana (grain)", -1.540445040947149),+                                    ("mes (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135),+                                    ("ano (grain)", -1.9459101490553135),+                                    ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("semana (grain)", -1.791759469228055),+                                    ("mes (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055),+                                    ("ano (grain)", -1.791759469228055),+                                    ("month", -1.791759469228055)],+                               n = 3}}),+       ("dd[/-]mm",+        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}}),+       ("intersect by `da` or `de`",+        Classifier{okData =+                     ClassData{prior = -1.8325814637483102, unseen = -4.574710978503383,+                               likelihoods =+                                 HashMap.fromList+                                   [("day of month (1st)named-month", -3.1780538303479458),+                                    ("daymonth", -2.772588722239781),+                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"2",+                                     -3.871201010907891),+                                    ("<day-of-month> de <named-month>intersect",+                                     -3.871201010907891),+                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"",+                                     -3.871201010907891),+                                    ("dayday", -3.1780538303479458),+                                    ("dia <day-of-month> (non ordinal)named-month",+                                     -3.4657359027997265),+                                    ("dayyear", -1.9252908618525775),+                                    ("named-dayproximo <cycle> ", -3.871201010907891),+                                    ("dd-dd <month>(interval)year", -3.871201010907891),+                                    ("named-day<cycle> (que vem)", -3.871201010907891),+                                    ("two time tokens separated by \",\"2year",+                                     -3.4657359027997265),+                                    ("intersectyear", -3.871201010907891),+                                    ("<day-of-month> de <named-month>year", -2.4849066497880004),+                                    ("two time tokens separated by \",\"year", -3.4657359027997265),+                                    ("dayweek", -3.1780538303479458),+                                    ("named-day<cycle> passado", -3.871201010907891)],+                               n = 24},+                   koData =+                     ClassData{prior = -0.1743533871447778, unseen = -5.707110264748875,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)<datetime> - <datetime> (interval)",+                                     -4.605170185988091),+                                    ("hourday", -2.870569130599985),+                                    ("monthday", -4.31748811353631),+                                    ("monthyear", -3.506557897319982),+                                    ("yearhour", -3.624340932976365),+                                    ("houryear", -3.0647251450409425),+                                    ("time-of-day (latent)two time tokens separated by \",\"2",+                                     -4.605170185988091),+                                    ("time-of-day (latent)intersect", -3.0647251450409425),+                                    ("year (latent)<time-of-day> <part-of-day>",+                                     -5.0106352940962555),+                                    ("year (latent)intersect", -4.31748811353631),+                                    ("intersect by `da` or `de`two time tokens separated by \",\"",+                                     -5.0106352940962555),+                                    ("year (latent)amanh\227 pela <part-of-day>",+                                     -5.0106352940962555),+                                    ("hourmonth", -1.8325814637483102),+                                    ("time-of-day (latent)intersect by `da` or `de`",+                                     -3.2188758248682006),+                                    ("monthmonth", -5.0106352940962555),+                                    ("dayyear", -5.0106352940962555),+                                    ("year (latent)named-month", -2.3025850929940455),+                                    ("named-monthyear", -3.506557897319982),+                                    ("year (latent)<dim time> da manha", -5.0106352940962555),+                                    ("de <datetime> - <datetime> (interval)named-month",+                                     -5.0106352940962555),+                                    ("\224s <time-of-day>named-month", -4.605170185988091),+                                    ("yearmonth", -2.3025850929940455),+                                    ("two time tokens separated by \",\"2year", -4.605170185988091),+                                    ("intersect by `da` or `de`intersect", -5.0106352940962555),+                                    ("intersectyear", -5.0106352940962555),+                                    ("intersect by `da` or `de`two time tokens separated by \",\"2",+                                     -5.0106352940962555),+                                    ("<day-of-month> de <named-month>year", -5.0106352940962555),+                                    ("two time tokens separated by \",\"year", -4.605170185988091),+                                    ("time-of-day (latent)two time tokens separated by \",\"",+                                     -4.605170185988091),+                                    ("intersect by `da` or `de`year", -3.506557897319982),+                                    ("named-monthtwo time tokens separated by \",\"2",+                                     -5.0106352940962555),+                                    ("year (latent)<datetime> - <datetime> (interval)",+                                     -4.605170185988091),+                                    ("yearday", -5.0106352940962555),+                                    ("named-monthintersect", -5.0106352940962555),+                                    ("named-monthtwo time tokens separated by \",\"",+                                     -5.0106352940962555),+                                    ("time-of-day (latent)named-month", -2.336486644669727)],+                               n = 126}}),+       ("<hour-of-day> and half",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.4816045409242156),+                                    ("noon", -2.3978952727983707), ("hour", -0.7884573603642702),+                                    ("\224s <time-of-day>", -1.4816045409242156)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("semana (grain)",+        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}}),+       ("two time tokens separated by \",\"",+        Classifier{okData =+                     ClassData{prior = -1.0360919316867756, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersectnamed-day", -2.8622008809294686),+                                    ("intersect by `da` or `de`named-day", -2.8622008809294686),+                                    ("dayday", -1.252762968495368),+                                    ("de <year>named-day", -2.8622008809294686),+                                    ("named-dayintersect", -2.456735772821304),+                                    ("named-dayintersect by `da` or `de`", -2.456735772821304),+                                    ("yearnamed-day", -2.8622008809294686),+                                    ("named-day<day-of-month> de <named-month>",+                                     -2.169053700369523),+                                    ("yearday", -2.456735772821304)],+                               n = 11},+                   koData =+                     ClassData{prior = -0.4382549309311553,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.3608540011180215),+                                    ("dayhour", -1.4853852637641216),+                                    ("daymonth", -2.583997552432231),+                                    ("monthday", -2.871679624884012),+                                    ("intersectnamed-day", -2.871679624884012),+                                    ("intersect by `da` or `de`named-day", -2.3608540011180215),+                                    ("named-dayintersect", -2.871679624884012),+                                    ("named-dayintersect by `da` or `de`", -1.405342556090585)],+                               n = 20}}),+       ("ordinals (primeiro..10)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("<day-of-month> de <named-month>",+        Classifier{okData =+                     ClassData{prior = -7.410797215372185e-2,+                               unseen = -4.02535169073515,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..15)named-month", -1.927891643552635),+                                    ("integer (numeric)named-month", -1.0116009116784799),+                                    ("month", -0.7114963192281418)],+                               n = 26},+                   koData =+                     ClassData{prior = -2.639057329615259, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)named-month", -0.8472978603872037),+                                    ("month", -0.8472978603872037)],+                               n = 2}}),+       ("<time-of-day> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.3437715391028245, unseen = -4.61512051684126,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> and quinzeafternoon", -2.995732273553991),+                                    ("<day-of-month> de <named-month>morning", -3.912023005428146),+                                    ("dayhour", -3.2188758248682006),+                                    ("\224s <time-of-day>morning", -3.2188758248682006),+                                    ("hourhour", -1.8325814637483102),+                                    ("<hour-of-day> and halfafternoon", -2.995732273553991),+                                    ("minutehour", -1.5141277326297755),+                                    ("time-of-day (latent)morning", -3.2188758248682006),+                                    ("time-of-day (latent)evening", -3.506557897319982),+                                    ("\224s <time-of-day>afternoon", -2.3025850929940455),+                                    ("dia <day-of-month> de <named-month>morning",+                                     -3.912023005428146),+                                    ("time-of-day (latent)afternoon", -3.506557897319982),+                                    ("<hour-of-day> and <relative minutes>afternoon",+                                     -2.659260036932778),+                                    ("intersectmorning", -3.912023005428146),+                                    ("\224s <time-of-day>evening", -3.506557897319982),+                                    ("intersect by `da` or `de`morning", -3.912023005428146)],+                               n = 39},+                   koData =+                     ClassData{prior = -1.2347444629926898, unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -1.5040773967762742),+                                    ("monthhour", -2.890371757896165),+                                    ("hourhour", -2.6026896854443837),+                                    ("time-of-day (latent)morning", -3.295836866004329),+                                    ("year (latent)afternoon", -2.1972245773362196),+                                    ("named-monthmorning", -3.295836866004329),+                                    ("year (latent)evening", -2.890371757896165),+                                    ("time-of-day (latent)afternoon", -2.890371757896165),+                                    ("year (latent)morning", -2.379546134130174),+                                    ("intersect by `da` or `de`morning", -3.295836866004329)],+                               n = 16}}),+       ("de <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -2.1972245773362196),+                                    ("monthyear", -2.1972245773362196),+                                    ("monthhour", -1.791759469228055),+                                    ("monthmonth", -2.1972245773362196),+                                    ("named-monthyear (latent)", -2.1972245773362196),+                                    ("named-monthtime-of-day (latent)", -2.1972245773362196),+                                    ("named-month<day-of-month> de <named-month>",+                                     -2.1972245773362196),+                                    ("named-monthintersect by `da` or `de`", -1.791759469228055)],+                               n = 5}}),+       ("<time-of-day> horas",+        Classifier{okData =+                     ClassData{prior = -0.7731898882334817,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.5040773967762742),+                                    ("hour", -0.9444616088408514),+                                    ("depois das <time-of-day>", -1.791759469228055),+                                    ("\224s <time-of-day>", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.6190392084062235, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2039728043259361),+                                    ("<hour-of-day> and <relative minutes>", -2.3025850929940455),+                                    ("hour", -1.0498221244986778), ("minute", -2.3025850929940455),+                                    ("\224s <time-of-day>", -2.3025850929940455)],+                               n = 7}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.702716631576096, unseen = -5.1298987149230735,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> de <named-month>in the <part-of-day>",+                                     -4.02535169073515),+                                    ("dayhour", -2.3513752571634776),+                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"2",+                                     -4.430816798843313),+                                    ("nowquinze para as <hour-of-day> (as relative minutes)",+                                     -4.430816798843313),+                                    ("intersectnamed-day", -4.430816798843313),+                                    ("now\224s <time-of-day>", -4.02535169073515),+                                    ("<day-of-month> de <named-month>intersect",+                                     -4.430816798843313),+                                    ("now<hour-of-day> and 3/4", -4.430816798843313),+                                    ("intersect by `da` or `de`named-day", -4.430816798843313),+                                    ("<day-of-month> de <named-month>two time tokens separated by \",\"",+                                     -4.430816798843313),+                                    ("dayday", -2.9267394020670396),+                                    ("hourhour", -4.430816798843313),+                                    ("named-day\224s <time-of-day>", -4.430816798843313),+                                    ("dayyear", -2.4159137783010487),+                                    ("minutehour", -3.1780538303479458),+                                    ("<hour-of-day> and quinzein the <part-of-day>",+                                     -4.02535169073515),+                                    ("de <year>named-day", -4.430816798843313),+                                    ("intersect by `da` or `de`in the <part-of-day>",+                                     -4.02535169073515),+                                    ("now<hour-of-day> and <relative minutes>", -4.430816798843313),+                                    ("named-dayin the <part-of-day>", -4.430816798843313),+                                    ("tomorrow<time-of-day> horas", -4.02535169073515),+                                    ("now<integer> para as <hour-of-day> (as relative minutes)",+                                     -4.430816798843313),+                                    ("\224s <time-of-day>in the <part-of-day>",+                                     -3.7376696182833684),+                                    ("named-dayintersect", -4.430816798843313),+                                    ("named-dayamanh\227 pela <part-of-day>", -4.430816798843313),+                                    ("dayminute", -3.1780538303479458),+                                    ("named-dayintersect by `da` or `de`", -4.430816798843313),+                                    ("yearnamed-day", -4.430816798843313),+                                    ("dd-dd <month>(interval)de <year>", -4.430816798843313),+                                    ("named-day<day-of-month> de <named-month>",+                                     -4.430816798843313),+                                    ("named-day<time-of-day> <part-of-day>", -4.430816798843313),+                                    ("dia <day-of-month> de <named-month>in the <part-of-day>",+                                     -4.02535169073515),+                                    ("yearday", -4.02535169073515),+                                    ("named-day<dim time> da manha", -4.430816798843313),+                                    ("two time tokens separated by \",\"de <year>",+                                     -4.02535169073515),+                                    ("dd[/-]mmyear", -4.430816798843313),+                                    ("<day-of-month> de <named-month>de <year>",+                                     -3.044522437723423),+                                    ("tomorrowdepois das <time-of-day>", -4.02535169073515),+                                    ("<hour-of-day> and <relative minutes>in the <part-of-day>",+                                     -4.02535169073515),+                                    ("two time tokens separated by \",\"2de <year>",+                                     -4.02535169073515),+                                    ("intersectde <year>", -4.430816798843313)],+                               n = 52},+                   koData =+                     ClassData{prior = -0.6836684366054016, unseen = -5.14166355650266,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.9385738597140425),+                                    ("dayhour", -3.056356895370426),+                                    ("daymonth", -4.442651256490317),+                                    ("monthday", -3.3440389678222067),+                                    ("named-month\224s <time-of-day>", -4.442651256490317),+                                    ("monthyear", -2.9385738597140425),+                                    ("intersectnamed-day", -4.037186148382152),+                                    ("now\224s <time-of-day>", -4.037186148382152),+                                    ("houryear", -2.496741107435003),+                                    ("<time-of-day> am|pm<day-of-month> de <named-month>",+                                     -4.442651256490317),+                                    ("intersect by `da` or `de`named-day", -3.5263605246161616),+                                    ("monthhour", -3.1898882879949486),+                                    ("intersect by `da` or `de`two time tokens separated by \",\"",+                                     -4.442651256490317),+                                    ("hourmonth", -4.442651256490317),+                                    ("<time-of-day> am|pmintersect by `da` or `de`",+                                     -4.442651256490317),+                                    ("dayyear", -4.442651256490317),+                                    ("intersect by `da` or `de`\224s <time-of-day>",+                                     -4.442651256490317),+                                    ("intersect by `da` or `de`in the <part-of-day>",+                                     -4.037186148382152),+                                    ("now<hour-of-day> and <relative minutes>", -4.442651256490317),+                                    ("daysecond", -4.442651256490317),+                                    ("named-dayright now", -4.442651256490317),+                                    ("named-dayintersect", -4.442651256490317),+                                    ("dayminute", -4.037186148382152),+                                    ("named-monthde <year>", -2.9385738597140425),+                                    ("intersect by `da` or `de`intersect", -4.442651256490317),+                                    ("intersect by `da` or `de`two time tokens separated by \",\"2",+                                     -4.442651256490317),+                                    ("named-dayintersect by `da` or `de`", -3.3440389678222067),+                                    ("named-monthin the <part-of-day>", -4.037186148382152),+                                    ("named-monthtwo time tokens separated by \",\"2",+                                     -4.442651256490317),+                                    ("two time tokens separated by \",\"de <year>",+                                     -4.037186148382152),+                                    ("intersect by `da` or `de`de <year>", -2.9385738597140425),+                                    ("named-monthintersect", -4.442651256490317),+                                    ("<day-of-month> de <named-month>\224s <time-of-day>",+                                     -4.442651256490317),+                                    ("<day-of-month> de <named-month>de <year>",+                                     -4.442651256490317),+                                    ("two time tokens separated by \",\"2de <year>",+                                     -4.037186148382152),+                                    ("intersectde <year>", -4.442651256490317),+                                    ("named-monthtwo time tokens separated by \",\"",+                                     -4.442651256490317)],+                               n = 53}}),+       ("season",+        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}}),+       ("minutos (grain)",+        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}}),+       ("two time tokens separated by \",\"2",+        Classifier{okData =+                     ClassData{prior = -1.0360919316867756, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersectnamed-day", -2.8622008809294686),+                                    ("intersect by `da` or `de`named-day", -2.8622008809294686),+                                    ("dayday", -1.252762968495368),+                                    ("de <year>named-day", -2.8622008809294686),+                                    ("named-dayintersect", -2.456735772821304),+                                    ("named-dayintersect by `da` or `de`", -2.456735772821304),+                                    ("yearnamed-day", -2.8622008809294686),+                                    ("named-day<day-of-month> de <named-month>",+                                     -2.169053700369523),+                                    ("yearday", -2.456735772821304)],+                               n = 11},+                   koData =+                     ClassData{prior = -0.4382549309311553,+                               unseen = -3.9889840465642745,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.3608540011180215),+                                    ("dayhour", -1.4853852637641216),+                                    ("daymonth", -2.583997552432231),+                                    ("monthday", -2.871679624884012),+                                    ("intersectnamed-day", -2.871679624884012),+                                    ("intersect by `da` or `de`named-day", -2.3608540011180215),+                                    ("named-dayintersect", -2.871679624884012),+                                    ("named-dayintersect by `da` or `de`", -1.405342556090585)],+                               n = 20}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.8066624897703196,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.6061358035703156),+                                    ("number (0..15)", -1.0116009116784799),+                                    ("numbers prefix with -, negative or minus",+                                     -3.0910424533583156),+                                    ("number (20..90)", -3.0910424533583156)],+                               n = 40}}),+       ("n[ao] <date>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dia <day-of-month> (non ordinal)", -1.252762968495368),+                                    ("day", -0.8472978603872037),+                                    ("named-day", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("amanh\227 pela <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.3294792011302423, unseen = -4.672828834461907,+                               likelihoods =+                                 HashMap.fromList+                                   [("<hour-of-day> and quinzeafternoon", -3.054001181677967),+                                    ("<day-of-month> de <named-month>morning", -3.970291913552122),+                                    ("dayhour", -2.871679624884012),+                                    ("\224s <time-of-day>morning", -3.2771447329921766),+                                    ("hourhour", -1.890850371872286),+                                    ("<hour-of-day> and halfafternoon", -3.054001181677967),+                                    ("minutehour", -1.5723966407537513),+                                    ("tomorrowevening", -3.970291913552122),+                                    ("time-of-day (latent)morning", -3.2771447329921766),+                                    ("time-of-day (latent)evening", -3.5648268054439574),+                                    ("\224s <time-of-day>afternoon", -2.3608540011180215),+                                    ("dia <day-of-month> de <named-month>morning",+                                     -3.970291913552122),+                                    ("yesterdayevening", -3.970291913552122),+                                    ("time-of-day (latent)afternoon", -3.5648268054439574),+                                    ("<hour-of-day> and <relative minutes>afternoon",+                                     -2.717528945056754),+                                    ("intersectmorning", -3.970291913552122),+                                    ("\224s <time-of-day>evening", -3.5648268054439574),+                                    ("intersect by `da` or `de`morning", -3.970291913552122)],+                               n = 41},+                   koData =+                     ClassData{prior = -1.270462545594769, unseen = -4.04305126783455,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -1.540445040947149),+                                    ("monthhour", -2.9267394020670396),+                                    ("hourhour", -2.639057329615259),+                                    ("time-of-day (latent)morning", -3.332204510175204),+                                    ("year (latent)afternoon", -2.2335922215070942),+                                    ("named-monthmorning", -3.332204510175204),+                                    ("year (latent)evening", -2.9267394020670396),+                                    ("time-of-day (latent)afternoon", -2.9267394020670396),+                                    ("year (latent)morning", -2.4159137783010487),+                                    ("intersect by `da` or `de`morning", -3.332204510175204)],+                               n = 16}}),+       ("dentro de <duration>",+        Classifier{okData =+                     ClassData{prior = -2.772588722239781, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.6094379124341003),+                                    ("hour", -1.6094379124341003)],+                               n = 1},+                   koData =+                     ClassData{prior = -6.453852113757118e-2,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),+                                    ("day", -2.538973871058276), ("year", -2.538973871058276),+                                    ("<integer> <unit-of-duration>", -0.8649974374866046),+                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),+                                    ("minute", -1.845826690498331)],+                               n = 15}}),+       ("dia <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("named-month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("dia <day-of-month> de <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)named-month", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("evening", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (0..15)",+        Classifier{okData =+                     ClassData{prior = -1.9048194970694474e-2,+                               unseen = -3.9889840465642745,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 52},+                   koData =+                     ClassData{prior = -3.970291913552122, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("antes das <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight", -1.2992829841302609),+                                    ("noon", -1.2992829841302609), ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("dd-dd <month>(interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("named-month", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> passado",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.540445040947149),+                                    ("semana (grain)", -1.540445040947149),+                                    ("mes (grain)", -1.9459101490553135),+                                    ("year", -1.9459101490553135),+                                    ("ano (grain)", -1.9459101490553135),+                                    ("month", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("mes (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> para as <hour-of-day> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)noon", -1.7047480922384253),+                                    ("hour", -0.7884573603642702),+                                    ("number (0..15)noon", -1.0116009116784799)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (20..90)",+        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}}),+       ("<dim time> da manha",+        Classifier{okData =+                     ClassData{prior = -0.262364264467491, unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect by `da` or `de`", -2.70805020110221),+                                    ("<day-of-month> de <named-month>", -2.70805020110221),+                                    ("intersect", -2.70805020110221),+                                    ("dia <day-of-month> de <named-month>", -2.70805020110221),+                                    ("day", -2.0149030205422647),+                                    ("time-of-day (latent)", -2.0149030205422647),+                                    ("hour", -1.3217558399823195),+                                    ("\224s <time-of-day>", -2.0149030205422647)],+                               n = 10},+                   koData =+                     ClassData{prior = -1.466337068793427, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect by `da` or `de`", -2.0794415416798357),+                                    ("named-month", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -2.0794415416798357), ("month", -1.6739764335716716)],+                               n = 3}}),+       ("em <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9444389791664407), ("second", -2.9444389791664407),+                                    ("day", -2.538973871058276), ("year", -2.538973871058276),+                                    ("<integer> <unit-of-duration>", -0.8649974374866046),+                                    ("hour", -2.2512917986064953), ("month", -2.9444389791664407),+                                    ("minute", -1.845826690498331)],+                               n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("passados n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)dia (grain)", -1.791759469228055),+                                    ("integer (numeric)mes (grain)", -1.791759469228055),+                                    ("integer (numeric)ano (grain)", -1.791759469228055),+                                    ("day", -1.791759469228055), ("year", -1.791759469228055),+                                    ("month", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<hour-of-day> and 3/4",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2992829841302609),+                                    ("hour", -0.7884573603642702),+                                    ("\224s <time-of-day>", -1.2992829841302609)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.9328200338253656, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0986122886681098),+                                    ("number (0..15)", -0.46262352194811296)],+                               n = 24},+                   koData =+                     ClassData{prior = -0.4999559515290868, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.5108256237659907),+                                    ("number (0..15)", -1.0498221244986778),+                                    ("number (20..90)", -2.995732273553991)],+                               n = 37}}),+       ("<hour-of-day> and <relative minutes>",+        Classifier{okData =+                     ClassData{prior = -0.2719337154836418, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224s <time-of-day>number (0..15)", -2.3025850929940455),+                                    ("time-of-day (latent)number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+                                     -2.5902671654458267),+                                    ("\224s <time-of-day>number (20..90)", -2.5902671654458267),+                                    ("\224s <time-of-day>number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+                                     -2.5902671654458267),+                                    ("time-of-day (latent)number (0..15)", -2.0794415416798357),+                                    ("hour", -0.8556661100577202),+                                    ("time-of-day (latent)number (20..90)", -2.5902671654458267),+                                    ("noonnumber (0..15)", -2.995732273553991)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.4350845252893227,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("\224s <time-of-day>number (20..90)", -1.791759469228055),+                                    ("time-of-day (latent)number (0..15)", -2.1972245773362196),+                                    ("hour", -1.0986122886681098),+                                    ("time-of-day (latent)number (20..90)", -1.791759469228055)],+                               n = 5}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 6}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.6443570163905132, unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.772588722239781),+                                    ("number (0..15)ano (grain)", -3.0602707946915624),+                                    ("integer (numeric)hora (grain)", -3.4657359027997265),+                                    ("integer (numeric)dia (grain)", -3.4657359027997265),+                                    ("number (0..15)segundo (grain)", -3.4657359027997265),+                                    ("second", -3.4657359027997265),+                                    ("integer (numeric)ano (grain)", -3.4657359027997265),+                                    ("integer (numeric)minutos (grain)", -2.772588722239781),+                                    ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)hora (grain)",+                                     -3.4657359027997265),+                                    ("day", -3.0602707946915624), ("year", -2.772588722239781),+                                    ("number (0..15)mes (grain)", -3.0602707946915624),+                                    ("number (0..15)hora (grain)", -2.772588722239781),+                                    ("hour", -2.367123614131617), ("month", -3.0602707946915624),+                                    ("number (0..15)dia (grain)", -3.4657359027997265),+                                    ("number (0..15)minutos (grain)", -3.0602707946915624),+                                    ("minute", -2.367123614131617),+                                    ("number (0..15)semana (grain)", -2.772588722239781)],+                               n = 21},+                   koData =+                     ClassData{prior = -0.7444404749474959, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.995732273553991),+                                    ("number (0..15)ano (grain)", -3.4011973816621555),+                                    ("integer (numeric)hora (grain)", -2.70805020110221),+                                    ("integer (numeric)dia (grain)", -2.995732273553991),+                                    ("integer (numeric)mes (grain)", -3.4011973816621555),+                                    ("second", -2.995732273553991),+                                    ("integer (numeric)semana (grain)", -3.4011973816621555),+                                    ("integer (numeric)ano (grain)", -2.995732273553991),+                                    ("integer (numeric)minutos (grain)", -2.995732273553991),+                                    ("day", -2.995732273553991),+                                    ("integer (numeric)segundo (grain)", -2.995732273553991),+                                    ("year", -2.70805020110221),+                                    ("number (0..15)mes (grain)", -2.995732273553991),+                                    ("number (0..15)hora (grain)", -2.995732273553991),+                                    ("hour", -2.3025850929940455), ("month", -2.70805020110221),+                                    ("minute", -2.995732273553991),+                                    ("number (0..15)semana (grain)", -3.4011973816621555)],+                               n = 19}}),+       ("proximas n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("number (0..15)ano (grain)", -2.4849066497880004),+                                    ("integer (numeric)hora (grain)", -2.4849066497880004),+                                    ("integer (numeric)dia (grain)", -2.4849066497880004),+                                    ("second", -2.4849066497880004),+                                    ("integer (numeric)minutos (grain)", -2.4849066497880004),+                                    ("day", -2.4849066497880004),+                                    ("integer (numeric)segundo (grain)", -2.4849066497880004),+                                    ("year", -2.4849066497880004),+                                    ("number (0..15)mes (grain)", -2.4849066497880004),+                                    ("hour", -2.4849066497880004), ("month", -2.4849066497880004),+                                    ("minute", -2.4849066497880004)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.8472978603872037),+                                    ("\224s <time-of-day>", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),+       ("n proximas <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("integer (numeric)mes (grain)", -1.791759469228055),+                                    ("integer (numeric)semana (grain)", -1.791759469228055),+                                    ("integer (numeric)ano (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055), ("month", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("vespera de ano novo",+        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}}),+       ("named-day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.174387269895637,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 63},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number (21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("number (20..90)number (0..15)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day of month (1st)",+        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}}),+       ("ano (grain)",+        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}}),+       ("este <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("semana (grain)", -1.6094379124341003),+                                    ("year", -1.6094379124341003),+                                    ("ano (grain)", -1.6094379124341003)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.0986122886681098),+                                    ("dia (grain)", -1.0986122886681098)],+                               n = 3}}),+       ("<named-month|named-day> next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<part-of-day> dessa semana",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the day after tomorrow",+        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}}),+       ("ano novo",+        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}}),+       ("dd[/-.]mm[/-.]yyyy",+        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}}),+       ("noon",+        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}}),+       ("n <cycle> (proximo|que vem)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("integer (numeric)semana (grain)", -1.791759469228055),+                                    ("integer (numeric)ano (grain)", -1.791759469228055),+                                    ("year", -1.791759469228055),+                                    ("number (0..15)mes (grain)", -1.791759469228055),+                                    ("month", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("evening",+        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}}),+       ("<hour-of-day> and quinze",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.3862943611198906),+                                    ("noon", -2.3025850929940455), ("hour", -0.7985076962177716),+                                    ("\224s <time-of-day>", -1.6094379124341003)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("depois das <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> horas", -1.6739764335716716),+                                    ("time-of-day (latent)", -1.6739764335716716),+                                    ("noon", -1.6739764335716716), ("hour", -0.8266785731844679)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.791759469228055, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.3978952727983707),+                                    ("dayday", -2.3978952727983707),+                                    ("hh(:|.|h)mm (time-of-day)hh(:|.|h)mm (time-of-day)",+                                     -2.3978952727983707),+                                    ("<day-of-month> de <named-month><day-of-month> de <named-month>",+                                     -2.3978952727983707)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -2.9444389791664407),+                                    ("dayhour", -2.9444389791664407),+                                    ("daymonth", -2.9444389791664407),+                                    ("monthday", -2.538973871058276),+                                    ("<day-of-month> de <named-month>intersect by `da` or `de`",+                                     -2.538973871058276),+                                    ("monthhour", -2.538973871058276),+                                    ("monthmonth", -2.9444389791664407),+                                    ("hourhour", -2.9444389791664407),+                                    ("dayyear", -2.9444389791664407),+                                    ("named-month<day-of-month> de <named-month>",+                                     -2.9444389791664407),+                                    ("intersect by `da` or `de`<day-of-month> de <named-month>",+                                     -2.538973871058276),+                                    ("intersect by `da` or `de`intersect by `da` or `de`",+                                     -2.538973871058276),+                                    ("dd[/-]mmyear", -2.9444389791664407),+                                    ("named-monthintersect by `da` or `de`", -2.538973871058276)],+                               n = 10}}),+       ("segundo (grain)",+        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}}),+       ("dia (grain)",+        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}}),+       ("in the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.8718021769015913),+                                    ("hour", -0.7731898882334817),+                                    ("morning", -0.9555114450274363)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("named-day", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("natal",+        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}}),+       ("morning",+        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}}),+       ("week-end",+        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}}),+       ("hora (grain)",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("right now",+        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}}),+       ("quinze para as <hour-of-day> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -0.6931471805599453), ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("\224s <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.16507975035944858,+                               unseen = -4.499809670330265,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.7954891891721947),+                                    ("<hour-of-day> and half", -2.8791984572980396),+                                    ("<time-of-day> horas", -3.7954891891721947),+                                    ("<hour-of-day> and 3/4", -3.39002408106403),+                                    ("time-of-day (latent)", -1.4441139320087168),+                                    ("<hour-of-day> and <relative minutes>", -2.409194828052304),+                                    ("<time-of-day> am|pm", -3.7954891891721947),+                                    ("hour", -1.3105825393841943),+                                    ("<hour-of-day> and quinze", -3.1023420086122493),+                                    ("minute", -1.6554230256759237)],+                               n = 39},+                   koData =+                     ClassData{prior = -1.8827312474337816, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("midnight", -2.5257286443082556),+                                    ("<time-of-day> horas", -2.5257286443082556),+                                    ("time-of-day (latent)", -1.8325814637483102),+                                    ("<hour-of-day> and <relative minutes>", -2.120263536200091),+                                    ("hour", -1.4271163556401458), ("minute", -2.120263536200091)],+                               n = 7}}),+       ("fazem <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003), ("year", -2.0149030205422647),+                                    ("<integer> <unit-of-duration>", -0.916290731874155),+                                    ("hour", -2.0149030205422647), ("month", -2.0149030205422647)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> atras",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055), ("second", -1.791759469228055),+                                    ("integer (numeric)minutos (grain)", -1.791759469228055),+                                    ("integer (numeric)segundo (grain)", -1.791759469228055),+                                    ("minute", -1.791759469228055),+                                    ("number (0..15)semana (grain)", -1.791759469228055)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("season", -2.1102132003465894),+                                    ("dia <day-of-month> (non ordinal)", -2.1102132003465894),+                                    ("day", -1.1939224684724346),+                                    ("named-day", -2.1102132003465894),+                                    ("hour", -1.8870696490323797), ("evening", -2.3978952727983707),+                                    ("week-end", -2.3978952727983707)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/RO.hs
@@ -1,265 +0,0 @@--- 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.RO (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("integer (numeric)",-        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}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("acum",-        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.13353139262452263,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.9924301646902063),-                                    ("dayday", -1.2992829841302609),-                                    ("<named-day> <day-of-month> (number)named-month",-                                     -1.9924301646902063),-                                    ("absorption of , after named day<day-of-month>(number) <named-month>",-                                     -1.9924301646902063),-                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -1.9924301646902063),-                                    ("named-daythe <day-of-month> (number)", -2.3978952727983707)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month<hour-of-day> <integer> (as relative minutes)",-                                     -1.6094379124341003),-                                    ("monthminute", -1.6094379124341003)],-                               n = 1}}),-       ("<named-day> <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayinteger (numeric)", -1.2992829841302609),-                                    ("day", -0.7884573603642702),-                                    ("absorption of , after named dayinteger (numeric)",-                                     -1.2992829841302609)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-month",-        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}}),-       ("numbers prefix with - or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("craciun",-        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 <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}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1}}),-       ("ieri",-        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 \",\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.7884573603642702),-                                    ("named-day<day-of-month>(number) <named-month>",-                                     -1.2992829841302609),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -1.2992829841302609)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("azi",-        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}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1780538303479458,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 22},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-day> pe <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-dayinteger (numeric)", -0.6931471805599453),-                                    ("day", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (0..10)",-        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> (aceasta|acesta|[a\259]sta)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -1.0116009116784799),-                                    ("integer (0..10)named-month", -1.7047480922384253),-                                    ("month", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("maine",-        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}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1}}),-       ("<day-of-month>(number) <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -1.0116009116784799),-                                    ("integer (0..10)named-month", -1.7047480922384253),-                                    ("month", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/RO_XX.hs view
@@ -0,0 +1,286 @@+-- 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.RO_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("integer (numeric)",+        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}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("luni", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("acum",+        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.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.8971199848858813),+                                    ("martithe <day-of-month> (number)", -2.3025850929940455),+                                    ("dayday", -1.2039728043259361),+                                    ("absorption of , after named day<day-of-month>(number) <named-month>",+                                     -1.8971199848858813),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -1.8971199848858813),+                                    ("<named-day> <day-of-month> (number)februarie",+                                     -1.8971199848858813)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-day> <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.7884573603642702),+                                    ("martiinteger (numeric)", -1.2992829841302609),+                                    ("absorption of , after named dayinteger (numeric)",+                                     -1.2992829841302609)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("duminica",+        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}}),+       ("marti",+        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}}),+       ("iunie",+        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}}),+       ("numbers prefix with - or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1}}),+       ("luni",+        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}}),+       ("februarie",+        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}}),+       ("craciun",+        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}}),+       ("sambata",+        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}}),+       ("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}}),+       ("joi",+        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}}),+       ("vineri",+        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}}),+       ("ieri",+        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 \",\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("luni<day-of-month>(number) <named-month>",+                                     -1.2992829841302609),+                                    ("dayday", -0.7884573603642702),+                                    ("luni<day-of-month> (non ordinal) <named-month>",+                                     -1.2992829841302609)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("azi",+        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}}),+       ("<named-day> pe <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("martiinteger (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        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> (aceasta|acesta|[a\259]sta)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("luni", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("iunieinteger (numeric)", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)martie", -1.791759469228055),+                                    ("integer (numeric)februarie", -1.3862943611198906),+                                    ("integer (0..10)martie", -1.791759469228055),+                                    ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("luni", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("martie",+        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}}),+       ("maine",+        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}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("iunie", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(number) <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)martie", -1.791759469228055),+                                    ("integer (numeric)februarie", -1.3862943611198906),+                                    ("integer (0..10)martie", -1.791759469228055),+                                    ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/RU.hs
@@ -1,22 +0,0 @@--- 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.RU (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/RU_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.RU_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/SV.hs
@@ -1,1596 +0,0 @@--- 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.SV (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.2039728043259361),-                                    ("hh:mm", -1.6094379124341003), ("hour", -1.6094379124341003),-                                    ("minute", -1.2039728043259361)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.7672551527136672, unseen = -4.882801922586371,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 130},-                   koData =-                     ClassData{prior = -0.6241543090729939,-                               unseen = -5.0238805208462765,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 150}}),-       ("the day before yesterday",-        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}}),-       ("lunch",-        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 (20..90)",-        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> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -0.9555114450274363),-                                    ("tomorrowevening", -1.8718021769015913),-                                    ("named-daymorning", -1.8718021769015913),-                                    ("tomorrowlunch", -1.8718021769015913),-                                    ("yesterdayevening", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("couple, a pair",-        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/mm",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("today",-        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}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.2607262624632527, unseen = -4.624972813284271,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.5165082281731497),-                                    ("time-of-day (latent)", -1.2139231351791042),-                                    ("relative minutes after|past <integer> (hour-of-day)",-                                     -3.5165082281731497),-                                    ("hh:mm", -2.0501711593797225),-                                    ("<time-of-day> sharp", -3.5165082281731497),-                                    ("hour", -1.149384614041533), ("minute", -1.7819071727850433)],-                               n = 47},-                   koData =-                     ClassData{prior = -1.4718165345580525, unseen = -3.58351893845611,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.8472978603872037),-                                    ("hour", -0.8472978603872037)],-                               n = 14}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        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}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -4.430816798843313,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -3.3202283191284883),-                                    ("the <day-of-month> (non ordinal)", -3.3202283191284883),-                                    ("<day-of-month>(ordinal) <named-month>", -2.339399066116762),-                                    ("day", -0.8634925463071842),-                                    ("the <day-of-month> (ordinal)", -3.3202283191284883),-                                    ("afternoon", -3.7256934272366524),-                                    ("named-day", -2.1162555148025524),-                                    ("<day-of-month> (ordinal)", -1.9339339580085977),-                                    ("hour", -3.7256934272366524),-                                    ("<day-of-month> (non ordinal) <named-month>",-                                     -3.7256934272366524)],-                               n = 35},-                   koData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.3608540011180215),-                                    ("year (latent)", -1.7730673362159024),-                                    ("time-of-day (latent)", -1.7730673362159024),-                                    ("year", -1.5723966407537513), ("hour", -1.5723966407537513)],-                               n = 20}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.2803019651541584, unseen = -3.58351893845611,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 34},-                   koData =-                     ClassData{prior = -1.4087672169719492,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.9808292530117262),-                                    ("hh:mmhh:mm", -0.9808292530117262)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 2}}),-       ("between <datetime> and <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.252762968495368, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.2992829841302609),-                                    ("hh:mmhh:mm", -1.2992829841302609)],-                               n = 2},-                   koData =-                     ClassData{prior = -0.3364722366212129, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mm<day-of-month> (ordinal)", -1.7346010553881064),-                                    ("hh:mmtime-of-day (latent)", -1.7346010553881064),-                                    ("minuteminute", -2.1400661634962708),-                                    ("minutehour", -1.7346010553881064),-                                    ("hh:mmintersect", -2.1400661634962708),-                                    ("minuteday", -1.7346010553881064)],-                               n = 5}}),-       ("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 = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -1.252762968495368),-                                    ("integer (0..19)minute (grain)", -1.252762968495368),-                                    ("minute", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        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}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -2.1972245773362196,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.0986122886681098),-                                    ("quarter", -0.8109302162163288),-                                    ("ordinals (first..31st)quarter (grain)", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),-                                    ("quarter", -0.8472978603872037),-                                    ("ordinals (first..31st)quarter (grain)", -1.252762968495368)],-                               n = 2}}),-       ("Last year",-        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.4382549309311553, unseen = -6.003887067106539,-                               likelihoods =-                                 HashMap.fromList-                                   [("<datetime> - <datetime> (interval)on <date>",-                                     -4.209655408733095),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.209655408733095),-                                    ("hourday", -5.308267697401205),-                                    ("dayhour", -3.0569758987947098),-                                    ("daymonth", -2.956892440237727),-                                    ("monthyear", -3.29336467685894),-                                    ("intersecthh:mm", -4.9028025892930405),-                                    ("named-daylast <cycle>", -5.308267697401205),-                                    ("the <day-of-month> (ordinal)named-month",-                                     -3.9219733362813143),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -4.9028025892930405),-                                    ("last <day-of-week> of <time>year", -5.308267697401205),-                                    ("todayat <time-of-day>", -4.9028025892930405),-                                    ("dayday", -2.6341190479746763),-                                    ("dd/mmat <time-of-day>", -4.39197696552705),-                                    ("intersect by \",\"hh:mm", -3.804190300624931),-                                    ("named-day<named-month> <day-of-month> (ordinal)",-                                     -5.308267697401205),-                                    ("intersectnamed-month", -4.9028025892930405),-                                    ("dayyear", -3.362357548345891),-                                    ("named-daythis <time>", -4.209655408733095),-                                    ("tomorrow<time-of-day> sharp", -4.9028025892930405),-                                    ("<day-of-month>(ordinal) <named-month>year",-                                     -4.39197696552705),-                                    ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -4.61512051684126),-                                    ("absorption of , after named day<named-month> <day-of-month> (ordinal)",-                                     -4.209655408733095),-                                    ("named-day<time> timezone", -4.61512051684126),-                                    ("named-monthyear", -3.29336467685894),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.209655408733095),-                                    ("on <date>named-month", -3.9219733362813143),-                                    ("tomorrowuntil <time-of-day>", -4.9028025892930405),-                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -4.61512051684126),-                                    ("after <time-of-day>at <time-of-day>", -4.9028025892930405),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -4.9028025892930405),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -5.308267697401205),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -5.308267697401205),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -4.9028025892930405),-                                    ("named-daynext <cycle>", -5.308267697401205),-                                    ("named-dayintersect", -4.9028025892930405),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.9028025892930405),-                                    ("tomorrowafter <time-of-day>", -4.9028025892930405),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.39197696552705),-                                    ("dayminute", -2.6692103677859462),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -4.61512051684126),-                                    ("<ordinal> <cycle> of <time>year", -4.9028025892930405),-                                    ("minuteday", -2.6341190479746763),-                                    ("absorption of , after named dayintersect",-                                     -4.9028025892930405),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -5.308267697401205),-                                    ("named-dayon <date>", -4.61512051684126),-                                    ("named-dayat <time-of-day>", -4.9028025892930405),-                                    ("yearhh:mm", -5.308267697401205),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -5.308267697401205),-                                    ("absorption of , after named dayintersect by \",\"",-                                     -4.39197696552705),-                                    ("dd/mmyear", -4.9028025892930405),-                                    ("at <time-of-day>on <date>", -5.308267697401205),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -5.308267697401205),-                                    ("between <datetime> and <datetime> (interval)on <date>",-                                     -5.308267697401205),-                                    ("dayweek", -4.055504728905837),-                                    ("intersect by \",\"<day-of-month>(ordinal) <named-month>",-                                     -4.9028025892930405),-                                    ("weekyear", -4.39197696552705),-                                    ("hh:mmtomorrow", -4.61512051684126),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -5.308267697401205),-                                    ("tomorrowat <time-of-day>", -4.055504728905837),-                                    ("named-daythis <cycle>", -4.61512051684126),-                                    ("named-daythe <day-of-month> (ordinal)", -5.308267697401205),-                                    ("at <time-of-day>tomorrow", -4.9028025892930405),-                                    ("last <cycle> of <time>year", -4.39197696552705),-                                    ("<day-of-month> (non ordinal) <named-month>year",-                                     -4.9028025892930405),-                                    ("yearminute", -5.308267697401205)],-                               n = 160},-                   koData =-                     ClassData{prior = -1.0360919316867756, unseen = -5.564520407322694,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -4.867534450455582),-                                    ("dayhour", -3.258096538021482),-                                    ("daymonth", -2.0343211063993665),-                                    ("monthday", -3.3634570536793085),-                                    ("monthyear", -3.951243718581427),-                                    ("intersect by \"of\", \"from\", \"'s\"year",-                                     -3.7689221617874726),-                                    ("hourmonth", -4.462069342347418),-                                    ("named-dayhh:mm", -4.867534450455582),-                                    ("dayday", -4.867534450455582),-                                    ("dd/mmat <time-of-day>", -3.951243718581427),-                                    ("intersectnamed-month", -4.462069342347418),-                                    ("dayyear", -3.481240089335692),-                                    ("named-daythis <time>", -2.921624301400269),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -4.462069342347418),-                                    ("minutemonth", -4.462069342347418),-                                    ("named-monthyear", -3.951243718581427),-                                    ("on <date>named-month", -4.462069342347418),-                                    ("absorption of , after named daynamed-month",-                                     -3.7689221617874726),-                                    ("named-dayfrom <datetime> - <datetime> (interval)",-                                     -3.7689221617874726),-                                    ("named-dayintersect", -4.462069342347418),-                                    ("named-month<day-of-month>(ordinal) <named-month>",-                                     -3.951243718581427),-                                    ("<hour-of-day> <integer> (as relative minutes)named-month",-                                     -4.462069342347418),-                                    ("named-dayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.867534450455582),-                                    ("yearmonth", -4.867534450455582),-                                    ("until <time-of-day>on <date>", -4.867534450455582),-                                    ("<named-month> <day-of-month> (ordinal)named-month",-                                     -3.951243718581427),-                                    ("dayminute", -3.258096538021482),-                                    ("minuteday", -3.3634570536793085),-                                    ("named-daybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.867534450455582),-                                    ("named-dayon <date>", -4.462069342347418),-                                    ("named-dayat <time-of-day>", -3.951243718581427),-                                    ("hh:mmon <date>", -3.481240089335692),-                                    ("named-daybetween <datetime> and <datetime> (interval)",-                                     -4.462069342347418),-                                    ("<day-of-month>(ordinal) <named-month> yearnamed-month",-                                     -3.951243718581427),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -3.951243718581427),-                                    ("<named-month> <day-of-month> (non ordinal)named-month",-                                     -3.951243718581427),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -4.462069342347418),-                                    ("minuteyear", -4.462069342347418),-                                    ("yearminute", -4.462069342347418)],-                               n = 88}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)intersect",-                                     -1.7346010553881064),-                                    ("ordinals (first..31st)week (grain)named-month",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.2237754316221157),-                                    ("ordinals (first..31st)day (grain)named-month",-                                     -1.7346010553881064)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("year (grain)",-        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}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.4816045409242156,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.824549292051046),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.740840023925201),-                                    ("hh:mmhh:mm", -1.824549292051046),-                                    ("hourhour", -2.740840023925201)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.2578291093020998, unseen = -4.02535169073515,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.3141860046725258),-                                    ("dayhour", -3.3141860046725258),-                                    ("yearhour", -3.3141860046725258),-                                    ("hh:mm<day-of-month> (ordinal)", -2.3978952727983707),-                                    ("time-of-day (latent)<day-of-month> (ordinal)",-                                     -3.3141860046725258),-                                    ("<day-of-month> (ordinal)time-of-day (latent)",-                                     -3.3141860046725258),-                                    ("hh:mmtime-of-day (latent)", -2.3978952727983707),-                                    ("minuteminute", -2.6210388241125804),-                                    ("yearyear", -3.3141860046725258),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -3.3141860046725258),-                                    ("dayday", -3.3141860046725258),-                                    ("year (latent)year (latent)", -3.3141860046725258),-                                    ("minutehour", -2.3978952727983707),-                                    ("hh:mmintersect", -2.6210388241125804),-                                    ("year (latent)time-of-day (latent)", -3.3141860046725258),-                                    ("minuteday", -2.3978952727983707),-                                    ("year (latent)<day-of-month> (ordinal)", -3.3141860046725258),-                                    ("yearday", -3.3141860046725258)],-                               n = 17}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6094379124341003),-                                    ("month (grain)", -2.3025850929940455),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -1.6094379124341003),-                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),-                                    ("month", -2.3025850929940455),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               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.6061358035703156,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.0986122886681098),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.1972245773362196),-                                    ("hh:mmhh:mm", -1.0986122886681098),-                                    ("hourhour", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),-                                    ("minutehour", -0.9808292530117262)],-                               n = 5}}),-       ("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 = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3746934494414107),-                                    ("integer (0..19)", -1.1631508098056809)],-                               n = 30}}),-       ("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.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)quarter (grain)year",-                                     -1.252762968495368),-                                    ("quarteryear", -0.8472978603872037),-                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after lunch",-        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}}),-       ("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}}),-       ("quarter to|till|before <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.0986122886681098),-                                    ("noon", -1.5040773967762742), ("hour", -0.8109302162163288)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7472144018302211),-                                    ("ordinals (first..31st)named-dayintersect",-                                     -0.9985288301111273),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -1.845826690498331)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.8472978603872037, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.7621400520468967),-                                    ("ordinals (first..31st)named-daynamed-month",-                                     -0.7621400520468967)],-                               n = 6}}),-       ("the <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..31st)",-        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",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.174387269895637,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 63},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (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}}),-       ("now",-        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}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("morning", -0.6931471805599453)],-                               n = 1}}),-       ("<day-of-month>(ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.12921173148000623,-                               unseen = -4.127134385045092,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -2.501435951739211),-                                    ("ordinal (digits)named-month", -0.8527773261518292),-                                    ("month", -0.7096764825111559)],-                               n = 29},-                   koData =-                     ClassData{prior = -2.1102132003465894,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.7047480922384253),-                                    ("ordinal (digits)named-month", -1.0116009116784799),-                                    ("month", -0.7884573603642702)],-                               n = 4}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 23}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("morning", -0.6931471805599453)],-                               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.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)", -1.1786549963416462),-                                    ("ordinal (digits)", -0.3677247801253174)],-                               n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("afternoon",-        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> from now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("second", -1.2039728043259361),-                                    ("<integer> <unit-of-duration>", -1.2039728043259361),-                                    ("a <unit-of-duration>", -1.6094379124341003),-                                    ("minute", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("year (grain)", -1.8971199848858813),-                                    ("week (grain)", -1.3862943611198906),-                                    ("quarter", -2.3025850929940455), ("year", -1.8971199848858813),-                                    ("quarter (grain)", -2.3025850929940455)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -1.006804739414987, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -5.129329438755058e-2),-                                    ("integer (0..19)", -2.995732273553991)],-                               n = 38},-                   koData =-                     ClassData{prior = -0.4547361571149472, unseen = -4.23410650459726,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.24921579162398486),-                                    ("integer (0..19)", -1.5114575040738967)],-                               n = 66}}),-       ("year",-        Classifier{okData =-                     ClassData{prior = -0.14842000511827333,-                               unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 25},-                   koData =-                     ClassData{prior = -1.9810014688665833, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.0986122886681098),-                                    ("daymonth", -0.8109302162163288),-                                    ("named-dayintersect", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.6375773294051346, unseen = -4.59511985013459,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.639057329615259),-                                    ("integer (0..19)year (grain)", -3.891820298110627),-                                    ("integer (numeric)day (grain)", -2.793208009442517),-                                    ("couple, a pairhour (grain)", -3.891820298110627),-                                    ("integer (0..19)hour (grain)", -3.891820298110627),-                                    ("second", -3.1986731175506815),-                                    ("integer (numeric)second (grain)", -3.891820298110627),-                                    ("integer (numeric)year (grain)", -3.891820298110627),-                                    ("day", -2.187072205872201), ("year", -3.4863551900024623),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("integer (0..19)month (grain)", -3.891820298110627),-                                    ("integer (0..19)second (grain)", -3.4863551900024623),-                                    ("hour", -2.793208009442517), ("month", -3.4863551900024623),-                                    ("integer (numeric)minute (grain)", -2.793208009442517),-                                    ("integer (0..19)minute (grain)", -2.9755295662364714),-                                    ("integer (numeric)month (grain)", -3.891820298110627),-                                    ("minute", -2.2823823856765264),-                                    ("integer (numeric)hour (grain)", -3.1986731175506815),-                                    ("integer (0..19)day (grain)", -2.793208009442517),-                                    ("integer (0..19)week (grain)", -3.1986731175506815)],-                               n = 37},-                   koData =-                     ClassData{prior = -0.7519876805828788, unseen = -4.51085950651685,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.70805020110221),-                                    ("integer (0..19)year (grain)", -3.4011973816621555),-                                    ("integer (numeric)day (grain)", -3.1135153092103742),-                                    ("integer (numeric)quarter (grain)", -3.8066624897703196),-                                    ("integer (0..19)hour (grain)", -3.8066624897703196),-                                    ("second", -2.890371757896165),-                                    ("integer (numeric)second (grain)", -3.4011973816621555),-                                    ("integer (numeric)year (grain)", -3.1135153092103742),-                                    ("day", -2.70805020110221), ("quarter", -3.8066624897703196),-                                    ("year", -2.70805020110221),-                                    ("integer (numeric)week (grain)", -3.4011973816621555),-                                    ("integer (0..19)month (grain)", -3.1135153092103742),-                                    ("integer (0..19)second (grain)", -3.4011973816621555),-                                    ("hour", -2.890371757896165), ("month", -2.70805020110221),-                                    ("integer (numeric)minute (grain)", -3.4011973816621555),-                                    ("integer (0..19)minute (grain)", -3.4011973816621555),-                                    ("integer (numeric)month (grain)", -3.4011973816621555),-                                    ("minute", -2.890371757896165),-                                    ("integer (numeric)hour (grain)", -3.1135153092103742),-                                    ("integer (0..19)day (grain)", -3.4011973816621555),-                                    ("integer (0..19)week (grain)", -3.1135153092103742)],-                               n = 33}}),-       ("relative minutes after|past <integer> (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}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.0794415416798357),-                                    ("hour (grain)", -2.4849066497880004),-                                    ("second", -2.0794415416798357),-                                    ("week (grain)", -2.0794415416798357),-                                    ("day", -2.4849066497880004),-                                    ("minute (grain)", -2.4849066497880004),-                                    ("second (grain)", -2.0794415416798357),-                                    ("hour", -2.4849066497880004), ("minute", -2.4849066497880004),-                                    ("day (grain)", -2.4849066497880004)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -8.855339734144506e-2,-                               unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (ordinal)intersect",-                                     -4.248495242049359),-                                    ("at <time-of-day>named-day", -4.248495242049359),-                                    ("intersect by \",\"year", -3.8430301339411947),-                                    ("hh:mmintersect by \",\"", -3.8430301339411947),-                                    ("dayday", -1.8971199848858813),-                                    ("hh:mmnamed-day", -4.248495242049359),-                                    ("named-dayintersect by \",\"", -3.332204510175204),-                                    ("named-day<named-month> <day-of-month> (ordinal)",-                                     -3.1498829533812494),-                                    ("dayyear", -2.744417845273085),-                                    ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -4.248495242049359),-                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -3.8430301339411947),-                                    ("<named-month> <day-of-month> (non ordinal)named-day",-                                     -4.248495242049359),-                                    ("named-day<day-of-month> (non ordinal) <named-month>",-                                     -3.5553480614894135),-                                    ("named-day<named-month> <day-of-month> (non ordinal)",-                                     -3.1498829533812494),-                                    ("hh:mmintersect", -3.8430301339411947),-                                    ("intersect by \",\"intersect", -3.8430301339411947),-                                    ("named-dayintersect", -3.8430301339411947),-                                    ("at <time-of-day>intersect", -3.8430301339411947),-                                    ("dayminute", -2.5437471498109336),-                                    ("intersectyear", -3.8430301339411947),-                                    ("minuteday", -2.108429078553088),-                                    ("hh:mmabsorption of , after named day", -4.248495242049359),-                                    ("at <time-of-day>intersect by \",\"", -3.8430301339411947),-                                    ("at <time-of-day>absorption of , after named day",-                                     -4.248495242049359),-                                    ("intersectintersect", -3.8430301339411947),-                                    ("intersect by \",\"<day-of-month>(ordinal) <named-month>",-                                     -3.8430301339411947),-                                    ("named-day<day-of-month>(ordinal) <named-month>",-                                     -3.5553480614894135),-                                    ("<named-month> <day-of-month> (ordinal)named-day",-                                     -4.248495242049359),-                                    ("<named-month> <day-of-month> (ordinal)year",-                                     -3.8430301339411947),-                                    ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.8430301339411947)],-                               n = 54},-                   koData =-                     ClassData{prior = -2.468099531471619, unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.9459101490553135),-                                    ("daymonth", -1.9459101490553135)],-                               n = 5}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -2.197890671877523e-2,-                               unseen = -3.8501476017100584,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 45},-                   koData =-                     ClassData{prior = -3.828641396489095, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("quarter after|past <integer> (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}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.248495242049359,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 68},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain)",-        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}}),-       ("<time-of-day> sharp",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.2992829841302609),-                                    ("time-of-day (latent)", -1.2992829841302609),-                                    ("hour", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.8649974374866046,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.4816045409242156),-                                    ("daymonth", -1.1451323043030026),-                                    ("named-daylast <cycle>", -2.3978952727983707),-                                    ("named-daynext <cycle>", -2.3978952727983707),-                                    ("named-dayintersect", -1.9924301646902063),-                                    ("dayweek", -1.9924301646902063)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.5465437063680699, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -1.3862943611198906),-                                    ("daymonth", -0.8472978603872037),-                                    ("named-dayintersect", -1.540445040947149)],-                               n = 11}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716), ("day", -1.8562979903656263),-                                    ("year", -2.367123614131617),-                                    ("<integer> <unit-of-duration>", -0.9007865453381898),-                                    ("a <unit-of-duration>", -2.772588722239781),-                                    ("month", -2.367123614131617)],-                               n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -2.8134107167600364, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.6094379124341003),-                                    ("named-day", -1.6094379124341003),-                                    ("hour", -2.0149030205422647),-                                    ("week-end", -2.0149030205422647)],-                               n = 3},-                   koData =-                     ClassData{prior = -6.187540371808753e-2,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -1.7443572303334711),-                                    ("day", -1.9956716586143772),-                                    ("time-of-day (latent)", -1.7443572303334711),-                                    ("year", -1.7443572303334711),-                                    ("named-day", -3.536116699561526),-                                    ("intersect by \"of\", \"from\", \"'s\"", -3.536116699561526),-                                    ("<day-of-month> (ordinal)", -2.33214389523559),-                                    ("hour", -1.7443572303334711)],-                               n = 47}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -1.0360919316867756, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)", -1.1786549963416462),-                                    ("ordinal (digits)", -0.3677247801253174)],-                               n = 11},-                   koData =-                     ClassData{prior = -0.4382549309311553,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList [("ordinal (digits)", -4.652001563489282e-2)],-                               n = 20}}),-       ("the day after tomorrow",-        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}}),-       ("noon",-        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.2876820724517809, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -0.8873031950009028),-                                    ("hour", -0.8873031950009028)],-                               n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.5040773967762742),-                                    ("hh:mm", -1.5040773967762742),-                                    ("minute", -1.0986122886681098)],-                               n = 2}}),-       ("<integer> and an half hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.6931471805599453),-                                    ("integer (0..19)", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("after <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("evening",-        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}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -1.791759469228055),-                                    ("day", -1.0986122886681098),-                                    ("named-day", -1.0986122886681098),-                                    ("month", -1.791759469228055)],-                               n = 4}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.5040773967762742),-                                    ("month (grain)", -2.1972245773362196),-                                    ("year (grain)", -2.1972245773362196),-                                    ("week (grain)", -1.5040773967762742),-                                    ("year", -2.1972245773362196), ("month", -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.8109302162163288, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6739764335716716),-                                    ("week (grain)", -1.6739764335716716),-                                    ("day", -1.6739764335716716),-                                    ("day (grain)", -1.6739764335716716)],-                               n = 4}}),-       ("christmas",-        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 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 = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.793208009442517),-                                    ("integer (0..19)year (grain)", -3.1986731175506815),-                                    ("integer (numeric)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)hour (grain)", -3.1986731175506815),-                                    ("second", -2.793208009442517),-                                    ("integer (numeric)second (grain)", -3.1986731175506815),-                                    ("integer (numeric)year (grain)", -3.1986731175506815),-                                    ("day", -2.793208009442517), ("year", -2.793208009442517),-                                    ("integer (numeric)week (grain)", -3.1986731175506815),-                                    ("integer (0..19)month (grain)", -3.1986731175506815),-                                    ("integer (0..19)second (grain)", -3.1986731175506815),-                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),-                                    ("integer (numeric)minute (grain)", -3.1986731175506815),-                                    ("integer (0..19)minute (grain)", -3.1986731175506815),-                                    ("integer (numeric)month (grain)", -3.1986731175506815),-                                    ("minute", -2.793208009442517),-                                    ("integer (numeric)hour (grain)", -3.1986731175506815),-                                    ("integer (0..19)day (grain)", -3.1986731175506815),-                                    ("integer (0..19)week (grain)", -3.1986731175506815)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.3694478524670215,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.258096538021482),-                                    ("<integer> more <unit-of-duration>", -3.258096538021482),-                                    ("number.number hours", -3.6635616461296463),-                                    ("second", -2.9704144655697013), ("day", -2.5649493574615367),-                                    ("half an hour", -3.6635616461296463),-                                    ("<integer> <unit-of-duration>", -1.3121863889661687),-                                    ("a <unit-of-duration>", -2.5649493574615367),-                                    ("<integer> and an half hours", -3.258096538021482),-                                    ("hour", -2.4107986776342782), ("minute", -1.466337068793427),-                                    ("about <duration>", -3.258096538021482)],-                               n = 33},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.579818495252942, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month>(ordinal) <named-month><day-of-month> (non ordinal) <named-month>",-                                     -2.498699971920336),-                                    ("<day-of-month> (non ordinal) <named-month><day-of-month>(ordinal) <named-month>",-                                     -2.498699971920336),-                                    ("minuteminute", -2.093234863812172),-                                    ("hh:mmhh:mm", -2.093234863812172),-                                    ("dayday", -1.2459370034249682),-                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",-                                     -2.498699971920336),-                                    ("<day-of-month>(ordinal) <named-month><day-of-month>(ordinal) <named-month>",-                                     -2.498699971920336)],-                               n = 28},-                   koData =-                     ClassData{prior = -0.8209805520698302, unseen = -4.127134385045092,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -1.7129785913749407),-                                    ("minuteminute", -2.164963715117998),-                                    ("hh:mmhh:mm", -3.417726683613366),-                                    ("dayyear", -3.012261575505202),-                                    ("year<hour-of-day> <integer> (as relative minutes)",-                                     -3.012261575505202),-                                    ("hh:mmintersect", -2.3191143949452564),-                                    ("named-month<day-of-month>(ordinal) <named-month>",-                                     -2.3191143949452564),-                                    ("dd/mmyear", -3.012261575505202),-                                    ("named-month<day-of-month> (non ordinal) <named-month>",-                                     -2.3191143949452564),-                                    ("<hour-of-day> <integer> (as relative minutes)year",-                                     -3.012261575505202),-                                    ("minuteyear", -3.012261575505202),-                                    ("yearminute", -3.012261575505202)],-                               n = 22}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.8109302162163288, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7985076962177716),-                                    ("hh:mmhh:mm", -0.7985076962177716)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.587786664902119, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.8754687373538999),-                                    ("minuteminute", -2.4849066497880004),-                                    ("hh:mmhh:mm", -2.4849066497880004),-                                    ("minutehour", -0.8754687373538999)],-                               n = 10}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.007333185232471,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.6026896854443837),-                                    ("integer (0..19)year (grain)", -3.295836866004329),-                                    ("integer (numeric)day (grain)", -2.890371757896165),-                                    ("second", -2.890371757896165),-                                    ("integer (numeric)second (grain)", -3.295836866004329),-                                    ("integer (numeric)year (grain)", -2.890371757896165),-                                    ("day", -2.6026896854443837), ("year", -2.6026896854443837),-                                    ("integer (numeric)week (grain)", -3.295836866004329),-                                    ("integer (0..19)month (grain)", -2.890371757896165),-                                    ("integer (0..19)second (grain)", -3.295836866004329),-                                    ("hour", -3.295836866004329), ("month", -2.6026896854443837),-                                    ("integer (numeric)minute (grain)", -3.295836866004329),-                                    ("integer (0..19)minute (grain)", -3.295836866004329),-                                    ("integer (numeric)month (grain)", -3.295836866004329),-                                    ("minute", -2.890371757896165),-                                    ("integer (numeric)hour (grain)", -3.295836866004329),-                                    ("integer (0..19)day (grain)", -3.295836866004329),-                                    ("integer (0..19)week (grain)", -2.890371757896165)],-                               n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-monthinteger (numeric)", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 5}}),-       ("<day-of-month> (non ordinal) <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.1466034741918754, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 19},-                   koData =-                     ClassData{prior = -1.9924301646902063,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = -1.9212175364649418,-                               unseen = -3.7612001156935624,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 41},-                   koData =-                     ClassData{prior = -0.158326051237739, unseen = -5.484796933490655,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 239}}),-       ("quarter (grain)",-        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}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.4816045409242156),-                                    ("week (grain)named-month", -1.9924301646902063),-                                    ("day (grain)intersect", -1.9924301646902063),-                                    ("weekmonth", -1.4816045409242156),-                                    ("day (grain)named-month", -1.9924301646902063),-                                    ("week (grain)intersect", -1.9924301646902063)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = -0.587786664902119, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..31st)named-month", -1.466337068793427),-                                    ("ordinal (digits)named-month", -1.1786549963416462),-                                    ("month", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.8109302162163288,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)named-month", -0.7884573603642702),-                                    ("month", -0.7884573603642702)],-                               n = 4}}),-       ("morning",-        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}}),-       ("week-end",-        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}}),-       ("after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.8109302162163288, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -1.7227665977411035),-                                    ("intersect", -2.2335922215070942),-                                    ("tomorrow", -2.2335922215070942), ("day", -2.2335922215070942),-                                    ("hour", -1.3862943611198906)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.587786664902119, unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("lunch", -2.772588722239781),-                                    ("year (latent)", -2.0794415416798357),-                                    ("day", -2.367123614131617),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("year", -2.0794415416798357), ("hh:mm", -2.772588722239781),-                                    ("<day-of-month> (ordinal)", -2.367123614131617),-                                    ("hour", -1.8562979903656263), ("minute", -2.772588722239781)],-                               n = 10}}),-       ("day (grain)",-        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}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-month", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer> (as relative minutes)",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (numeric)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 10}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.917770732084279), ("intersect", -2.512305623976115),-                                    ("season", -2.001480000210124),-                                    ("next <cycle>", -2.917770732084279),-                                    ("named-month", -2.512305623976115),-                                    ("day", -2.001480000210124), ("hour", -2.2246235515243336),-                                    ("month", -2.001480000210124),-                                    ("week-end", -2.2246235515243336)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.3184537311185346, unseen = -4.356708826689592,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.8588987720656835),-                                    ("named-month", -1.5105920777974677),-                                    ("day", -3.6506582412937383),-                                    ("time-of-day (latent)", -3.245193133185574),-                                    ("<day-of-month> (ordinal)", -3.6506582412937383),-                                    ("noon", -3.6506582412937383), ("hour", -2.7343675094195836),-                                    ("month", -1.0116009116784799),-                                    ("morning", -3.6506582412937383)],-                               n = 32}}),-       ("<named-month> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("month", -0.6931471805599453),-                                    ("named-monthordinal (digits)", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("month", -0.6931471805599453),-                                    ("named-monthordinal (digits)", -0.6931471805599453)],-                               n = 5}}),-       ("within <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.6931471805599453),-                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/SV_XX.hs view
@@ -0,0 +1,1635 @@+-- 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.SV_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.2039728043259361),+                                    ("hh:mm", -1.6094379124341003), ("hour", -1.6094379124341003),+                                    ("minute", -1.2039728043259361)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7600866632350547, unseen = -4.882801922586371,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 130},+                   koData =+                     ClassData{prior = -0.630408839926522, unseen = -5.0106352940962555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 148}}),+       ("the day before yesterday",+        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}}),+       ("lunch",+        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}}),+       ("Tisdag",+        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 (20..90)",+        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> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -0.9555114450274363),+                                    ("tomorrowevening", -1.8718021769015913),+                                    ("tomorrowlunch", -1.8718021769015913),+                                    ("yesterdayevening", -1.8718021769015913),+                                    ("Mandagmorning", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("couple, a pair",+        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/mm",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("today",+        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}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.2607262624632527, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.5165082281731497),+                                    ("time-of-day (latent)", -1.2139231351791042),+                                    ("relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("hh:mm", -2.0501711593797225),+                                    ("<time-of-day> sharp", -3.5165082281731497),+                                    ("hour", -1.149384614041533), ("minute", -1.7819071727850433)],+                               n = 47},+                   koData =+                     ClassData{prior = -1.4718165345580525, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.8472978603872037),+                                    ("hour", -0.8472978603872037)],+                               n = 14}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sondag", -2.3978952727983707),+                                    ("Mandag", -1.7047480922384253),+                                    ("Lordag", -2.3978952727983707), ("day", -0.8938178760220964),+                                    ("Onsdag", -2.3978952727983707),+                                    ("Fredag", -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        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}}),+       ("tonight",+        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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.48285177172358457,+                               unseen = -4.304065093204169,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -3.597312260588446),+                                    ("Mandag", -3.597312260588446), ("Torsdag", -2.211017899468555),+                                    ("Lordag", -3.597312260588446),+                                    ("the <day-of-month> (non ordinal)", -3.1918471524802814),+                                    ("<day-of-month>(ordinal) <named-month>", -2.344549292093078),+                                    ("day", -0.9231636111619171),+                                    ("the <day-of-month> (ordinal)", -3.597312260588446),+                                    ("afternoon", -3.597312260588446),+                                    ("<day-of-month> (ordinal)", -2.093234863812172),+                                    ("hour", -3.597312260588446),+                                    ("<day-of-month> (non ordinal) <named-month>",+                                     -3.597312260588446)],+                               n = 29},+                   koData =+                     ClassData{prior = -0.9597758438138939, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.322387720290225),+                                    ("year (latent)", -1.8523840910444898),+                                    ("time-of-day (latent)", -1.8523840910444898),+                                    ("year", -1.62924053973028), ("hour", -1.62924053973028)],+                               n = 18}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.16251892949777494, unseen = -3.58351893845611,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 34},+                   koData =+                     ClassData{prior = -1.8971199848858813,+                               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.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.9808292530117262),+                                    ("hh:mmhh:mm", -0.9808292530117262)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 2}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.2992829841302609),+                                    ("minuteminute", -1.7047480922384253),+                                    ("minutehour", -1.2992829841302609),+                                    ("hh:mmintersect", -1.7047480922384253)],+                               n = 3}}),+       ("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 = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -1.252762968495368),+                                    ("integer (0..19)minute (grain)", -1.252762968495368),+                                    ("minute", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        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}}),+       ("Juli",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.252762968495368),+                                    ("quarter", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.252762968495368),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.252762968495368),+                                    ("quarter", -0.8472978603872037)],+                               n = 2}}),+       ("Last year",+        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.4131871542020747,+                               unseen = -5.8289456176102075,+                               likelihoods =+                                 HashMap.fromList+                                   [("Onsdagthis <cycle>", -5.1328529268205045),+                                    ("Torsdag<time> timezone", -4.43970574626056),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.034240638152395),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.034240638152395),+                                    ("hourday", -5.1328529268205045),+                                    ("dayhour", -2.8815611282140097),+                                    ("daymonth", -2.992786763324234),+                                    ("monthyear", -3.1179499062782403),+                                    ("Torsdagbetween <time-of-day> and <time-of-day> (interval)",+                                     -5.1328529268205045),+                                    ("Mandagon <date>", -5.1328529268205045),+                                    ("intersecthh:mm", -5.1328529268205045),+                                    ("Torsdagbetween <datetime> and <datetime> (interval)",+                                     -5.1328529268205045),+                                    ("Torsdagat <time-of-day>", -4.727387818712341),+                                    ("Marsyear", -5.1328529268205045),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -4.727387818712341),+                                    ("Oktoberyear", -3.5234150143864045),+                                    ("Torsdagfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.727387818712341),+                                    ("Torsdagfrom <datetime> - <datetime> (interval)",+                                     -4.727387818712341),+                                    ("last <day-of-week> of <time>year", -5.1328529268205045),+                                    ("todayat <time-of-day>", -4.727387818712341),+                                    ("the <day-of-month> (ordinal)Februari", -5.1328529268205045),+                                    ("dayday", -3.2610507499189136),+                                    ("dd/mmat <time-of-day>", -4.21656219494635),+                                    ("intersect by \",\"hh:mm", -4.21656219494635),+                                    ("dayyear", -3.34109345759245),+                                    ("tomorrow<time-of-day> sharp", -4.727387818712341),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -4.727387818712341),+                                    ("Onsdag<named-month> <day-of-month> (non ordinal)",+                                     -5.1328529268205045),+                                    ("Onsdagthis <time>", -4.43970574626056),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.034240638152395),+                                    ("tomorrowuntil <time-of-day>", -4.727387818712341),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -4.43970574626056),+                                    ("after <time-of-day>at <time-of-day>", -4.727387818712341),+                                    ("the <day-of-month> (ordinal)Mars", -4.034240638152395),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -4.727387818712341),+                                    ("Mandagthis <cycle>", -5.1328529268205045),+                                    ("tomorrowafter <time-of-day>", -4.727387818712341),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.21656219494635),+                                    ("dayminute", -2.7814776696570274),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -4.43970574626056),+                                    ("on <date>Mars", -4.034240638152395),+                                    ("<ordinal> <cycle> of <time>year", -4.727387818712341),+                                    ("minuteday", -2.5301632413761213),+                                    ("absorption of , after named dayintersect",+                                     -5.1328529268205045),+                                    ("yearhh:mm", -5.1328529268205045),+                                    ("Tisdagthis <time>", -4.727387818712341),+                                    ("Onsdagnext <cycle>", -5.1328529268205045),+                                    ("absorption of , after named dayintersect by \",\"",+                                     -4.727387818712341),+                                    ("Sondaglast <cycle>", -5.1328529268205045),+                                    ("dd/mmyear", -4.727387818712341),+                                    ("Septemberyear", -4.21656219494635),+                                    ("at <time-of-day>on <date>", -5.1328529268205045),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -5.1328529268205045),+                                    ("between <datetime> and <datetime> (interval)on <date>",+                                     -5.1328529268205045),+                                    ("dayweek", -3.880089958325137),+                                    ("Tisdagthis <cycle>", -5.1328529268205045),+                                    ("on <date>Februari", -5.1328529268205045),+                                    ("weekyear", -4.21656219494635),+                                    ("hh:mmtomorrow", -4.43970574626056),+                                    ("tomorrowat <time-of-day>", -3.880089958325137),+                                    ("at <time-of-day>tomorrow", -4.727387818712341),+                                    ("Sondag<day-of-month> (non ordinal) <named-month>",+                                     -5.1328529268205045),+                                    ("last <cycle> of <time>year", -4.21656219494635),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -4.727387818712341),+                                    ("yearminute", -5.1328529268205045)],+                               n = 129},+                   koData =+                     ClassData{prior = -1.0833448165373212, unseen = -5.365976015021851,+                               likelihoods =+                                 HashMap.fromList+                                   [("OnsdagFebruari", -4.66814498514948),+                                    ("dayhour", -3.164067588373206),+                                    ("daymonth", -2.103195627687943),+                                    ("monthday", -3.751854253275325),+                                    ("monthyear", -3.751854253275325),+                                    ("Torsdagbetween <time-of-day> and <time-of-day> (interval)",+                                     -4.66814498514948),+                                    ("Mandagon <date>", -4.2626798770413155),+                                    ("Torsdagbetween <datetime> and <datetime> (interval)",+                                     -4.66814498514948),+                                    ("Torsdagat <time-of-day>", -3.751854253275325),+                                    ("Marsyear", -3.9749978045895347),+                                    ("intersect by \"of\", \"from\", \"'s\"year",+                                     -3.56953269648137),+                                    ("Torsdagfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.66814498514948),+                                    ("Torsdagfrom <datetime> - <datetime> (interval)",+                                     -4.2626798770413155),+                                    ("Mandagintersect", -4.2626798770413155),+                                    ("absorption of , after named dayJuli", -4.2626798770413155),+                                    ("hourmonth", -4.2626798770413155),+                                    ("dd/mmat <time-of-day>", -3.751854253275325),+                                    ("dayyear", -3.2818506240295893),+                                    ("<named-month> <day-of-month> (non ordinal)Augusti",+                                     -3.751854253275325),+                                    ("Augusti<day-of-month> (non ordinal) <named-month>",+                                     -3.751854253275325),+                                    ("Onsdagthis <time>", -3.4153820166541116),+                                    ("Aprilyear", -4.66814498514948),+                                    ("yearmonth", -4.66814498514948),+                                    ("until <time-of-day>on <date>", -4.66814498514948),+                                    ("Torsdaghh:mm", -4.66814498514948),+                                    ("dayminute", -3.2818506240295893),+                                    ("minuteday", -3.164067588373206),+                                    ("Tisdagthis <time>", -3.751854253275325),+                                    ("hh:mmon <date>", -3.2818506240295893),+                                    ("on <date>Februari", -4.2626798770413155),+                                    ("absorption of , after named dayFebruari",+                                     -3.9749978045895347),+                                    ("intersectFebruari", -4.2626798770413155),+                                    ("Mandagthis <time>", -4.66814498514948),+                                    ("Sondagthis <time>", -4.2626798770413155)],+                               n = 66}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.7346010553881064),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)Oktober",+                                     -1.7346010553881064),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.2237754316221157),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)Oktober",+                                     -1.7346010553881064)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("year (grain)",+        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}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.4350845252893227),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.3513752571634776),+                                    ("hh:mmhh:mm", -1.4350845252893227),+                                    ("hourhour", -2.3513752571634776)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.6741486494265287),+                                    ("hh:mmtime-of-day (latent)", -1.7578579175523736),+                                    ("minuteminute", -1.9810014688665833),+                                    ("yearyear", -2.6741486494265287),+                                    ("year (latent)year (latent)", -2.6741486494265287),+                                    ("minutehour", -1.7578579175523736),+                                    ("hh:mmintersect", -1.9810014688665833),+                                    ("year (latent)time-of-day (latent)", -2.6741486494265287)],+                               n = 9}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6094379124341003),+                                    ("month (grain)", -2.3025850929940455),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -1.6094379124341003),+                                    ("quarter", -2.3025850929940455), ("year", -2.3025850929940455),+                                    ("month", -2.3025850929940455),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               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.6061358035703156,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.0986122886681098),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.1972245773362196),+                                    ("hh:mmhh:mm", -1.0986122886681098),+                                    ("hourhour", -2.1972245773362196)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.9808292530117262),+                                    ("minutehour", -0.9808292530117262)],+                               n = 5}}),+       ("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 = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3894647667617233),+                                    ("integer (0..19)", -1.1314021114911006)],+                               n = 29}}),+       ("Sondag",+        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}}),+       ("Mandag",+        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}}),+       ("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.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)quarter (grain)year",+                                     -1.252762968495368),+                                    ("quarteryear", -0.8472978603872037),+                                    ("ordinal (digits)quarter (grain)year", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after lunch",+        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}}),+       ("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}}),+       ("Torsdag",+        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}}),+       ("quarter to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.0986122886681098),+                                    ("noon", -1.5040773967762742), ("hour", -0.8109302162163288)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lordag",+        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}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)TisdagOktober",+                                     -1.9924301646902063),+                                    ("daymonth", -0.8938178760220964),+                                    ("ordinals (first..twentieth,thirtieth,...)Onsdagintersect",+                                     -1.4816045409242156),+                                    ("ordinals (first..twentieth,thirtieth,...)Tisdagintersect",+                                     -1.9924301646902063)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9444616088408514),+                                    ("ordinals (first..twentieth,thirtieth,...)OnsdagOktober",+                                     -1.2809338454620642),+                                    ("ordinals (first..twentieth,thirtieth,...)TisdagSeptember",+                                     -1.791759469228055)],+                               n = 6}}),+       ("the <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("integer (numeric)", 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}}),+       ("week (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}}),+       ("now",+        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}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("morning", -0.6931471805599453)],+                               n = 1}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -9.53101798043249e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)Mars",+                                     -1.6094379124341003),+                                    ("ordinal (digits)Februari", -2.120263536200091),+                                    ("month", -0.8209805520698302),+                                    ("ordinal (digits)Mars", -1.6094379124341003)],+                               n = 10},+                   koData =+                     ClassData{prior = -2.3978952727983707,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)April",+                                     -1.252762968495368),+                                    ("month", -1.252762968495368)],+                               n = 1}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 23}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("morning", -0.6931471805599453)],+                               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.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tisdag", -0.6931471805599453), ("day", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> after next",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.1786549963416462), ("Mars", -1.8718021769015913),+                                    ("month", -1.8718021769015913), ("Onsdag", -1.8718021769015913),+                                    ("Fredag", -1.466337068793427)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half an hour",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.916290731874155),+                                    ("ordinal (digits)", -0.5108256237659907)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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> from now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("second", -1.2039728043259361),+                                    ("<integer> <unit-of-duration>", -1.2039728043259361),+                                    ("a <unit-of-duration>", -1.6094379124341003),+                                    ("minute", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("year (grain)", -1.8971199848858813),+                                    ("week (grain)", -1.3862943611198906),+                                    ("quarter", -2.3025850929940455), ("year", -1.8971199848858813),+                                    ("quarter (grain)", -2.3025850929940455)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("Februari",+        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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.8950133334268701, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -5.129329438755058e-2),+                                    ("integer (0..19)", -2.995732273553991)],+                               n = 38},+                   koData =+                     ClassData{prior = -0.525266307920785, unseen = -4.060443010546419,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2363887780642304),+                                    ("integer (0..19)", -1.55814461804655)],+                               n = 55}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.14842000511827333,+                               unseen = -3.295836866004329,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 25},+                   koData =+                     ClassData{prior = -1.9810014688665833, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("Sondagintersect", -1.6094379124341003),+                                    ("SondagMars", -1.6094379124341003),+                                    ("MandagMars", -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.6231885919530349, unseen = -4.574710978503383,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6184380424125226),+                                    ("integer (0..19)year (grain)", -3.871201010907891),+                                    ("integer (numeric)day (grain)", -2.772588722239781),+                                    ("couple, a pairhour (grain)", -3.871201010907891),+                                    ("integer (0..19)hour (grain)", -3.871201010907891),+                                    ("second", -3.1780538303479458),+                                    ("integer (numeric)second (grain)", -3.871201010907891),+                                    ("integer (numeric)year (grain)", -3.871201010907891),+                                    ("day", -2.166452918669466), ("year", -3.4657359027997265),+                                    ("integer (numeric)week (grain)", -3.1780538303479458),+                                    ("integer (0..19)month (grain)", -3.871201010907891),+                                    ("integer (0..19)second (grain)", -3.4657359027997265),+                                    ("hour", -2.772588722239781), ("month", -3.4657359027997265),+                                    ("integer (numeric)minute (grain)", -2.772588722239781),+                                    ("integer (0..19)minute (grain)", -2.9549102790337356),+                                    ("integer (numeric)month (grain)", -3.871201010907891),+                                    ("minute", -2.2617630984737906),+                                    ("integer (numeric)hour (grain)", -3.1780538303479458),+                                    ("integer (0..19)day (grain)", -2.772588722239781),+                                    ("integer (0..19)week (grain)", -3.1780538303479458)],+                               n = 37},+                   koData =+                     ClassData{prior = -0.7683706017975328, unseen = -4.465908118654584,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.662587827025453),+                                    ("integer (0..19)year (grain)", -3.355735007585398),+                                    ("integer (numeric)day (grain)", -3.068052935133617),+                                    ("integer (0..19)hour (grain)", -3.7612001156935624),+                                    ("second", -2.8449093838194073),+                                    ("integer (numeric)second (grain)", -3.355735007585398),+                                    ("integer (numeric)year (grain)", -3.068052935133617),+                                    ("day", -2.662587827025453), ("year", -2.662587827025453),+                                    ("integer (numeric)week (grain)", -3.355735007585398),+                                    ("integer (0..19)month (grain)", -3.068052935133617),+                                    ("integer (0..19)second (grain)", -3.355735007585398),+                                    ("hour", -2.8449093838194073), ("month", -2.662587827025453),+                                    ("integer (numeric)minute (grain)", -3.355735007585398),+                                    ("integer (0..19)minute (grain)", -3.355735007585398),+                                    ("integer (numeric)month (grain)", -3.355735007585398),+                                    ("minute", -2.8449093838194073),+                                    ("integer (numeric)hour (grain)", -3.068052935133617),+                                    ("integer (0..19)day (grain)", -3.355735007585398),+                                    ("integer (0..19)week (grain)", -3.068052935133617)],+                               n = 32}}),+       ("relative minutes after|past <integer> (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}}),+       ("Oktober",+        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}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.0794415416798357),+                                    ("hour (grain)", -2.4849066497880004),+                                    ("second", -2.0794415416798357),+                                    ("week (grain)", -2.0794415416798357),+                                    ("day", -2.4849066497880004),+                                    ("minute (grain)", -2.4849066497880004),+                                    ("second (grain)", -2.0794415416798357),+                                    ("hour", -2.4849066497880004), ("minute", -2.4849066497880004),+                                    ("day (grain)", -2.4849066497880004)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.1590646946296874, unseen = -4.51085950651685,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>Lordag", -3.8066624897703196),+                                    ("Lordag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("intersect by \",\"year", -3.8066624897703196),+                                    ("hh:mmintersect by \",\"", -3.8066624897703196),+                                    ("dayday", -2.1019143975318944),+                                    ("dayyear", -2.890371757896165),+                                    ("<named-month> <day-of-month> (non ordinal)intersect",+                                     -3.8066624897703196),+                                    ("Onsdag<named-month> <day-of-month> (non ordinal)",+                                     -3.8066624897703196),+                                    ("Fredagintersect by \",\"", -3.4011973816621555),+                                    ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",+                                     -3.4011973816621555),+                                    ("hh:mmintersect", -3.8066624897703196),+                                    ("intersect by \",\"intersect", -3.8066624897703196),+                                    ("at <time-of-day>intersect", -3.8066624897703196),+                                    ("dayminute", -2.70805020110221),+                                    ("intersectyear", -3.8066624897703196),+                                    ("minuteday", -2.1019143975318944),+                                    ("<named-month> <day-of-month> (non ordinal)Fredag",+                                     -3.8066624897703196),+                                    ("Fredag<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("hh:mmabsorption of , after named day", -3.8066624897703196),+                                    ("at <time-of-day>intersect by \",\"", -3.8066624897703196),+                                    ("at <time-of-day>absorption of , after named day",+                                     -3.8066624897703196),+                                    ("intersectintersect", -3.8066624897703196),+                                    ("Fredagintersect", -3.8066624897703196),+                                    ("Mandag<named-month> <day-of-month> (non ordinal)",+                                     -3.4011973816621555),+                                    ("Mandag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("Sondag<day-of-month> (non ordinal) <named-month>",+                                     -3.8066624897703196),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -3.4011973816621555),+                                    ("hh:mmLordag", -3.8066624897703196)],+                               n = 29},+                   koData =+                     ClassData{prior = -1.916922612182061, unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("OnsdagFebruari", -3.044522437723423),+                                    ("daymonth", -1.9459101490553135),+                                    ("MandagFebruari", -2.639057329615259),+                                    ("FredagJuli", -2.639057329615259)],+                               n = 5}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -2.197890671877523e-2,+                               unseen = -3.8501476017100584,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 45},+                   koData =+                     ClassData{prior = -3.828641396489095, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("quarter after|past <integer> (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}}),+       ("second (grain)",+        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}}),+       ("ordinals (first..twentieth,thirtieth,...)",+        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}}),+       ("<time-of-day> sharp",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.2992829841302609),+                                    ("time-of-day (latent)", -1.2992829841302609),+                                    ("hour", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mars",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.8649974374866046, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.3862943611198906),+                                    ("OnsdagOktober", -2.2335922215070942),+                                    ("TisdagOktober", -2.2335922215070942),+                                    ("Onsdagintersect", -2.2335922215070942),+                                    ("Onsdagnext <cycle>", -2.639057329615259),+                                    ("Sondaglast <cycle>", -2.639057329615259),+                                    ("dayweek", -2.2335922215070942)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.5465437063680699,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.041453874828161),+                                    ("OnsdagOktober", -2.4277482359480516),+                                    ("Sondagintersect", -2.833213344056216),+                                    ("TisdagSeptember", -2.4277482359480516),+                                    ("Tisdagintersect", -2.4277482359480516),+                                    ("Onsdagintersect", -2.4277482359480516),+                                    ("SondagMars", -2.833213344056216),+                                    ("MandagMars", -2.833213344056216)],+                               n = 11}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716), ("day", -1.8562979903656263),+                                    ("year", -2.367123614131617),+                                    ("<integer> <unit-of-duration>", -0.9007865453381898),+                                    ("a <unit-of-duration>", -2.772588722239781),+                                    ("month", -2.367123614131617)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -2.6149597780361984, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tisdag", -2.0794415416798357),+                                    ("Sondag", -2.0794415416798357), ("day", -1.6739764335716716),+                                    ("hour", -2.0794415416798357),+                                    ("week-end", -2.0794415416798357)],+                               n = 3},+                   koData =+                     ClassData{prior = -7.598590697792199e-2,+                               unseen = -4.465908118654584,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -1.563975538357343),+                                    ("Sondag", -3.7612001156935624),+                                    ("Mandag", -3.7612001156935624), ("day", -2.8449093838194073),+                                    ("time-of-day (latent)", -1.563975538357343),+                                    ("year", -1.563975538357343),+                                    ("intersect by \"of\", \"from\", \"'s\"", -3.355735007585398),+                                    ("hour", -1.563975538357343)],+                               n = 38}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.916290731874155),+                                    ("ordinal (digits)", -0.5108256237659907)],+                               n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the day after tomorrow",+        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}}),+       ("noon",+        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.2876820724517809, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -0.8873031950009028),+                                    ("hour", -0.8873031950009028)],+                               n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.5040773967762742),+                                    ("hh:mm", -1.5040773967762742),+                                    ("minute", -1.0986122886681098)],+                               n = 2}}),+       ("Augusti",+        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> and an half hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.6931471805599453),+                                    ("integer (0..19)", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("evening",+        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}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tisdag", -2.0149030205422647),+                                    ("Mandag", -2.0149030205422647), ("day", -1.3217558399823195),+                                    ("Mars", -2.0149030205422647), ("month", -2.0149030205422647),+                                    ("Onsdag", -2.0149030205422647)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.3217558399823195), ("Mars", -2.0149030205422647),+                                    ("month", -2.0149030205422647), ("Onsdag", -2.0149030205422647),+                                    ("Fredag", -1.6094379124341003)],+                               n = 4}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.7047480922384253),+                                    ("month (grain)", -2.3978952727983707),+                                    ("year (grain)", -1.7047480922384253),+                                    ("week (grain)", -1.7047480922384253),+                                    ("year", -1.7047480922384253), ("month", -2.3978952727983707)],+                               n = 7},+                   koData =+                     ClassData{prior = -1.0116009116784799, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6739764335716716),+                                    ("week (grain)", -1.6739764335716716),+                                    ("day", -1.6739764335716716),+                                    ("day (grain)", -1.6739764335716716)],+                               n = 4}}),+       ("Onsdag",+        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}}),+       ("christmas",+        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 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 = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.793208009442517),+                                    ("integer (0..19)year (grain)", -3.1986731175506815),+                                    ("integer (numeric)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)hour (grain)", -3.1986731175506815),+                                    ("second", -2.793208009442517),+                                    ("integer (numeric)second (grain)", -3.1986731175506815),+                                    ("integer (numeric)year (grain)", -3.1986731175506815),+                                    ("day", -2.793208009442517), ("year", -2.793208009442517),+                                    ("integer (numeric)week (grain)", -3.1986731175506815),+                                    ("integer (0..19)month (grain)", -3.1986731175506815),+                                    ("integer (0..19)second (grain)", -3.1986731175506815),+                                    ("hour", -2.793208009442517), ("month", -2.793208009442517),+                                    ("integer (numeric)minute (grain)", -3.1986731175506815),+                                    ("integer (0..19)minute (grain)", -3.1986731175506815),+                                    ("integer (numeric)month (grain)", -3.1986731175506815),+                                    ("minute", -2.793208009442517),+                                    ("integer (numeric)hour (grain)", -3.1986731175506815),+                                    ("integer (0..19)day (grain)", -3.1986731175506815),+                                    ("integer (0..19)week (grain)", -3.1986731175506815)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Fredag",+        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}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.3694478524670215,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.258096538021482),+                                    ("<integer> more <unit-of-duration>", -3.258096538021482),+                                    ("number.number hours", -3.6635616461296463),+                                    ("second", -2.9704144655697013), ("day", -2.5649493574615367),+                                    ("half an hour", -3.6635616461296463),+                                    ("<integer> <unit-of-duration>", -1.3121863889661687),+                                    ("a <unit-of-duration>", -2.5649493574615367),+                                    ("<integer> and an half hours", -3.258096538021482),+                                    ("hour", -2.4107986776342782), ("minute", -1.466337068793427),+                                    ("about <duration>", -3.258096538021482)],+                               n = 33},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.3862943611198906),+                                    ("hh:mmhh:mm", -1.3862943611198906),+                                    ("dayday", -1.791759469228055),+                                    ("<day-of-month> (non ordinal) <named-month><day-of-month> (non ordinal) <named-month>",+                                     -1.791759469228055)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli<day-of-month> (non ordinal) <named-month>",+                                     -2.890371757896165),+                                    ("monthday", -1.791759469228055),+                                    ("minuteminute", -1.6376087894007967),+                                    ("hh:mmhh:mm", -2.890371757896165),+                                    ("dayyear", -2.4849066497880004),+                                    ("Augusti<day-of-month> (non ordinal) <named-month>",+                                     -1.9740810260220096),+                                    ("hh:mmintersect", -1.791759469228055),+                                    ("dd/mmyear", -2.4849066497880004)],+                               n = 13}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7985076962177716),+                                    ("hh:mmhh:mm", -0.7985076962177716)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.587786664902119, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.8754687373538999),+                                    ("minuteminute", -2.4849066497880004),+                                    ("hh:mmhh:mm", -2.4849066497880004),+                                    ("minutehour", -0.8754687373538999)],+                               n = 10}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.6026896854443837),+                                    ("integer (0..19)year (grain)", -3.295836866004329),+                                    ("integer (numeric)day (grain)", -2.890371757896165),+                                    ("second", -2.890371757896165),+                                    ("integer (numeric)second (grain)", -3.295836866004329),+                                    ("integer (numeric)year (grain)", -2.890371757896165),+                                    ("day", -2.6026896854443837), ("year", -2.6026896854443837),+                                    ("integer (numeric)week (grain)", -3.295836866004329),+                                    ("integer (0..19)month (grain)", -2.890371757896165),+                                    ("integer (0..19)second (grain)", -3.295836866004329),+                                    ("hour", -3.295836866004329), ("month", -2.6026896854443837),+                                    ("integer (numeric)minute (grain)", -3.295836866004329),+                                    ("integer (0..19)minute (grain)", -3.295836866004329),+                                    ("integer (numeric)month (grain)", -3.295836866004329),+                                    ("minute", -2.890371757896165),+                                    ("integer (numeric)hour (grain)", -3.295836866004329),+                                    ("integer (0..19)day (grain)", -3.295836866004329),+                                    ("integer (0..19)week (grain)", -2.890371757896165)],+                               n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Aprilinteger (numeric)", -2.4423470353692043),+                                    ("Februariinteger (numeric)", -1.3437347467010947),+                                    ("month", -0.832909122935104),+                                    ("Juliinteger (numeric)", -1.749199854809259)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustiinteger (numeric)", -1.0986122886681098),+                                    ("Aprilinteger (numeric)", -2.0149030205422647),+                                    ("month", -0.916290731874155)],+                               n = 5}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.1466034741918754, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)September", -3.1135153092103742),+                                    ("integer (numeric)Augusti", -1.5040773967762742),+                                    ("integer (numeric)April", -3.1135153092103742),+                                    ("month", -0.8109302162163288),+                                    ("integer (numeric)Februari", -2.1972245773362196),+                                    ("integer (numeric)Juli", -2.70805020110221),+                                    ("integer (numeric)Mars", -2.70805020110221)],+                               n = 19},+                   koData =+                     ClassData{prior = -1.9924301646902063, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("month", -1.1786549963416462),+                                    ("integer (numeric)Juli", -1.1786549963416462)],+                               n = 3}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tisdag", -1.7047480922384253),+                                    ("Mandag", -1.7047480922384253), ("day", -1.0116009116784799),+                                    ("Onsdag", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.0116009116784799), ("Onsdag", -1.7047480922384253),+                                    ("Fredag", -1.2992829841302609)],+                               n = 3}}),+       ("ordinal (digits)",+        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}}),+       ("quarter (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}}),+       ("last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.4816045409242156),+                                    ("day (grain)Oktober", -1.9924301646902063),+                                    ("week (grain)intersect", -1.9924301646902063),+                                    ("week (grain)September", -1.9924301646902063)],+                               n = 8},+                   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 = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)April",+                                     -1.6094379124341003),+                                    ("ordinals (first..twentieth,thirtieth,...)Mars",+                                     -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("ordinal (digits)Mars", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.6863989535702288),+                                    ("intersect", -2.1972245773362196),+                                    ("tomorrow", -2.1972245773362196), ("day", -2.1972245773362196),+                                    ("hour", -1.349926716949016)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("lunch", -2.6026896854443837),+                                    ("year (latent)", -1.9095425048844386),+                                    ("time-of-day (latent)", -1.9095425048844386),+                                    ("year", -1.9095425048844386), ("hh:mm", -2.6026896854443837),+                                    ("hour", -1.6863989535702288), ("minute", -2.6026896854443837)],+                               n = 8}}),+       ("day (grain)",+        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}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("Juli", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("half an hour", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.9704144655697013),+                                    ("intersect", -2.5649493574615367),+                                    ("season", -2.0541237336955462),+                                    ("next <cycle>", -2.9704144655697013),+                                    ("day", -2.0541237336955462), ("Oktober", -2.5649493574615367),+                                    ("hour", -2.277267285009756), ("month", -2.0541237336955462),+                                    ("week-end", -2.277267285009756)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.3184537311185346, unseen = -4.382026634673881,+                               likelihoods =+                                 HashMap.fromList+                                   [("Tisdag", -3.676300671907076),+                                    ("September", -2.760009940032921),+                                    ("intersect", -1.8845412026790211), ("day", -3.676300671907076),+                                    ("time-of-day (latent)", -3.270835563798912),+                                    ("Oktober", -1.971552579668651), ("Mars", -3.270835563798912),+                                    ("noon", -3.676300671907076), ("hour", -2.760009940032921),+                                    ("month", -1.0372433422918175),+                                    ("morning", -3.676300671907076)],+                               n = 32}}),+       ("within <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/TR.hs
@@ -1,22 +0,0 @@--- 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.TR (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/TR_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.TR_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/UK.hs
@@ -1,22 +0,0 @@--- 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.UK (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers = HashMap.fromList []
+ Duckling/Ranking/Classifiers/UK_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.UK_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/VI.hs
@@ -1,906 +0,0 @@--- 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.VI (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> am|pm", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.4986303506721723, unseen = -4.61512051684126,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 99},-                   koData =-                     ClassData{prior = -0.9348671174470905, unseen = -4.189654742026425,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 64}}),-       ("exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day gi\7901", -1.6094379124341003),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",-                                     -1.6094379124341003),-                                    ("time-of-day (latent)", -1.6094379124341003),-                                    ("hour", -0.916290731874155)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ng\224y h\244m qua",-        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}}),-       ("lunch",-        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}}),-       ("ng\224y dd/mm",-        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/mm",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("<part-of-day> <time>",-        Classifier{okData =-                     ClassData{prior = -0.7884573603642702,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -1.128465251817791),-                                    ("noonh\244m nay", -2.833213344056216),-                                    ("lunchng\224y mai", -2.4277482359480516),-                                    ("morningnamed-day", -2.833213344056216),-                                    ("noonng\224y h\244m qua", -2.4277482359480516),-                                    ("noonng\224y mai", -2.4277482359480516),-                                    ("afternoonng\224y dd/mm", -2.833213344056216),-                                    ("afternoonng\224y mai", -2.833213344056216)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.6061358035703156,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -1.072636802264849),-                                    ("afternoon<day-of-month> (numeric with day symbol) <named-month>",-                                     -2.538973871058276),-                                    ("afternoongi\225ng sinh", -1.845826690498331),-                                    ("afternoonng\224y dd/mm/yyyy", -2.9444389791664407),-                                    ("noongi\225ng sinh", -2.9444389791664407),-                                    ("afternoonng\224y dd/mm", -2.9444389791664407),-                                    ("lunchgi\225ng sinh", -2.9444389791664407),-                                    ("afternoonintersect", -2.9444389791664407)],-                               n = 12}}),-       ("tonight",-        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}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -1.452252328911688, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.2666286632539486,-                               unseen = -3.6375861597263857,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 36}}),-       ("<day-of-week> t\7899i",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("month (grain)",-        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}}),-       ("ng\224y h\244m kia",-        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}}),-       ("gi\225ng sinh",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -1.791759469228055, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.1823215567939546,-                               unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.5070449009260846,-                               unseen = -5.0106352940962555,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm",-                                     -3.6176519448255684),-                                    ("hourday", -3.6176519448255684),-                                    ("dayhour", -4.310799125385514),-                                    ("h\244m nay<time-of-day> s\225ng|chi\7873u|t\7889i",-                                     -4.310799125385514),-                                    ("monthyear", -3.3945083935113587),-                                    ("time-of-day gi\7901<part-of-day> <time>", -4.310799125385514),-                                    ("time-of-day gi\7901<time> n\224y", -4.310799125385514),-                                    ("month (numeric with month symbol)year (numeric with year symbol)",-                                     -3.6176519448255684),-                                    ("dayday", -2.6060510331470885),-                                    ("named-monthyear (numeric with year symbol)",-                                     -4.310799125385514),-                                    ("hourhour", -3.3945083935113587),-                                    ("named-day<day-of-month> (numeric with day symbol) <named-month>",-                                     -2.7013612129514133),-                                    ("intersectyear (numeric with year symbol)",-                                     -3.6176519448255684),-                                    ("dayyear", -2.4389969484839225),-                                    ("<ordinal> <cycle> of <time>year (numeric with year symbol)",-                                     -4.310799125385514),-                                    ("minutehour", -3.9053340172773496),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889iintersect",-                                     -3.9053340172773496),-                                    ("time-of-day gi\7901<part-of-day> (h\244m )?nay",-                                     -4.310799125385514),-                                    ("<day-of-month> (numeric with day symbol) <named-month>year (numeric with year symbol)",-                                     -3.2121868367174042),-                                    ("named-daynext <cycle>", -3.6176519448255684),-                                    ("named-dayintersect", -4.310799125385514),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i<day-of-month> (numeric with day symbol) <named-month>",-                                     -3.3945083935113587),-                                    ("time-of-day gi\7901tonight", -4.310799125385514),-                                    ("minuteday", -2.8067217286092396),-                                    ("hh:mm<part-of-day> <time>", -4.310799125385514),-                                    ("<day-of-month> <named-month>year (numeric with year symbol)",-                                     -3.2121868367174042),-                                    ("at hh:mm<part-of-day> <time>", -4.310799125385514),-                                    ("dayweek", -3.0580361568901457),-                                    ("weekyear", -4.310799125385514),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm/yyyy",-                                     -4.310799125385514),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y mai",-                                     -4.310799125385514),-                                    ("named-daythis <cycle>", -3.6176519448255684),-                                    ("seasonthis <cycle>", -4.310799125385514),-                                    ("minuteyear", -3.9053340172773496)],-                               n = 53},-                   koData =-                     ClassData{prior = -0.9219887529887928, unseen = -4.736198448394496,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm",-                                     -4.034240638152395),-                                    ("hourday", -2.2424811689243405),-                                    ("dayhour", -4.034240638152395),-                                    ("monthyear", -2.7814776696570274),-                                    ("noonh\244m nay", -4.034240638152395),-                                    ("houryear", -4.034240638152395),-                                    ("month (numeric with month symbol)year (numeric with year symbol)",-                                     -2.7814776696570274),-                                    ("dayday", -2.5301632413761213),-                                    ("dayyear", -4.034240638152395),-                                    ("h\244m naytime-of-day gi\7901", -4.034240638152395),-                                    ("minutehour", -3.628775530044231),-                                    ("<part-of-day> <time>year (numeric with year symbol)",-                                     -4.034240638152395),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889igi\225ng sinh",-                                     -2.424802725718295),-                                    ("noonng\224y h\244m qua", -3.628775530044231),-                                    ("noongi\225ng sinh", -4.034240638152395),-                                    ("minuteday", -2.9356283494842854),-                                    ("hh:mm<part-of-day> <time>", -4.034240638152395),-                                    ("noonng\224y mai", -3.628775530044231),-                                    ("<day-of-month> <named-month>year (numeric with year symbol)",-                                     -4.034240638152395),-                                    ("named-daygi\225ng sinh", -2.5301632413761213),-                                    ("at hh:mm<part-of-day> <time>", -4.034240638152395)],-                               n = 35}}),-       ("time-of-day gi\7901",-        Classifier{okData =-                     ClassData{prior = -6.453852113757118e-2,-                               unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("exactly <time-of-day>", -3.4657359027997265),-                                    ("about <time-of-day>", -3.0602707946915624),-                                    ("time-of-day (latent)", -0.8266785731844679),-                                    ("hour", -0.7248958788745256)],-                               n = 30},-                   koData =-                     ClassData{prior = -2.772588722239781, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.9808292530117262),-                                    ("hour", -0.9808292530117262)],-                               n = 2}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.3862943611198906),-                                    ("day (grain)ordinalsnamed-month", -2.0794415416798357),-                                    ("day (grain)ordinalsmonth (numeric with month symbol)",-                                     -1.6739764335716716),-                                    ("week (grain)ordinalsintersect", -2.0794415416798357),-                                    ("weekmonth", -1.6739764335716716),-                                    ("week (grain)ordinalsmonth (numeric with month symbol)",-                                     -2.0794415416798357)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("season",-        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}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = -0.5389965007326869, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -0.8754687373538999,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),-       ("quarter <number>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter (grain)integer (numeric)", -1.2992829841302609),-                                    ("quarter (grain)integer (0..19)", -1.2992829841302609),-                                    ("quarter", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter (grain)integer (numeric)", -0.8472978603872037),-                                    ("quarter", -0.8472978603872037)],-                               n = 2}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.9459101490553135),-                                    ("month (grain)", -3.044522437723423),-                                    ("year (grain)", -2.128231705849268),-                                    ("week (grain)", -1.9459101490553135),-                                    ("quarter", -2.3513752571634776), ("year", -2.128231705849268),-                                    ("month", -3.044522437723423),-                                    ("quarter (grain)", -2.3513752571634776)],-                               n = 13},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("month (grain)", -2.639057329615259),-                                    ("hour (grain)", -2.639057329615259),-                                    ("year (grain)", -2.639057329615259),-                                    ("second", -2.3513752571634776), ("day", -2.639057329615259),-                                    ("minute (grain)", -2.639057329615259),-                                    ("year", -2.639057329615259),-                                    ("second (grain)", -2.3513752571634776),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("minute", -2.639057329615259),-                                    ("day (grain)", -2.639057329615259)],-                               n = 13}}),-       ("ng\224y mai",-        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}}),-       ("quarter <number> <year>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarteryear", -1.0986122886681098),-                                    ("quarter (grain)integer (numeric)year (numeric with year symbol)",-                                     -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarterhour", -1.0986122886681098),-                                    ("quarter (grain)integer (numeric)time-of-day (latent)",-                                     -1.0986122886681098)],-                               n = 1}}),-       ("dd/mm/yyyy",-        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}}),-       ("after lunch",-        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}}),-       ("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}}),-       ("<time> tr\432\7899c",-        Classifier{okData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -1.5040773967762742),-                                    ("named-day", -1.5040773967762742)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("gi\225ng sinh", -2.2512917986064953),-                                    ("<hour-of-day> <integer>", -2.2512917986064953),-                                    ("day", -2.2512917986064953),-                                    ("time-of-day (latent)", -1.3350010667323402),-                                    ("hour", -1.3350010667323402), ("minute", -2.2512917986064953)],-                               n = 6}}),-       ("ng\224y 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}}),-       ("<time> n\224y",-        Classifier{okData =-                     ClassData{prior = -0.6061358035703156, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("season", -1.845826690498331),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",-                                     -2.2512917986064953),-                                    ("day", -1.845826690498331), ("noon", -1.845826690498331),-                                    ("hour", -1.3350010667323402),-                                    ("morning", -2.2512917986064953)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.7884573603642702, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.4469189829363254),-                                    ("noon", -1.7346010553881064), ("hour", -1.041453874828161)],-                               n = 5}}),-       ("b\226y gi\7901",-        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}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -1.4469189829363254,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.7884573603642702),-                                    ("time-of-day gi\7901integer (numeric)", -0.7884573603642702)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.2682639865946794,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)integer (0..19)", -0.7282385003712154),-                                    ("hour", -0.7282385003712154)],-                               n = 13}}),-       ("<time> t\7899i",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("month (numeric with month symbol)", -2.2512917986064953),-                                    ("day", -1.3350010667323402),-                                    ("named-day", -1.3350010667323402),-                                    ("month", -2.2512917986064953)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262, unseen = -2.772588722239781,-                               likelihoods =-                                 HashMap.fromList-                                   [("gi\225ng sinh", -2.0149030205422647),-                                    ("time-of-day gi\7901", -2.0149030205422647),-                                    ("<hour-of-day> <integer>", -2.0149030205422647),-                                    ("day", -2.0149030205422647), ("hour", -2.0149030205422647),-                                    ("minute", -2.0149030205422647)],-                               n = 3}}),-       ("<time-of-day> s\225ng|chi\7873u|t\7889i",-        Classifier{okData =-                     ClassData{prior = -5.129329438755058e-2,-                               unseen = -4.465908118654584,-                               likelihoods =-                                 HashMap.fromList-                                   [("exactly <time-of-day>", -3.7612001156935624),-                                    ("time-of-day gi\7901", -1.318853080324358),-                                    ("<hour-of-day> <integer>", -3.355735007585398),-                                    ("about <time-of-day>", -3.355735007585398),-                                    ("at hh:mm", -3.068052935133617),-                                    ("(hour-of-day) half", -3.355735007585398),-                                    ("hh:mm", -2.5084371471981943), ("hour", -1.1962507582320256),-                                    ("minute", -1.8152899666382492)],-                               n = 38},-                   koData =-                     ClassData{prior = -2.995732273553991, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.540445040947149),-                                    ("hour", -1.540445040947149)],-                               n = 2}}),-       ("named-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}}),-       ("month (numeric with month symbol)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.2231435513142097),-                                    ("integer (0..19)", -1.6094379124341003)],-                               n = 28},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (grain)",-        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}}),-       ("year (numeric with year symbol)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter <number> of <year>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarteryear", -1.0986122886681098),-                                    ("quarter (grain)integer (numeric)year (numeric with year symbol)",-                                     -1.0986122886681098)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarterhour", -1.0986122886681098),-                                    ("quarter (grain)integer (numeric)time-of-day (latent)",-                                     -1.0986122886681098)],-                               n = 1}}),-       ("afternoon",-        Classifier{okData =-                     ClassData{prior = -0.916290731874155, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.5108256237659907,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.6376087894007967),-                                    ("year (grain)", -2.1972245773362196),-                                    ("week (grain)", -1.6376087894007967),-                                    ("day", -2.890371757896165), ("quarter", -1.9740810260220096),-                                    ("year", -2.1972245773362196),-                                    ("quarter (grain)", -1.9740810260220096),-                                    ("day (grain)", -2.890371757896165)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        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}}),-       ("about <time-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day gi\7901", -1.6739764335716716),-                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",-                                     -1.6739764335716716),-                                    ("time-of-day (latent)", -1.6739764335716716),-                                    ("hour", -0.8266785731844679)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.6567795363890705,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.10536051565782628),-                                    ("integer (0..19)", -2.3025850929940455)],-                               n = 28},-                   koData =-                     ClassData{prior = -0.7308875085427924, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.4989911661189879),-                                    ("integer (0..19)", -0.9343092373768334)],-                               n = 26}}),-       ("at hh:mm",-        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}}),-       ("(hour-of-day) half",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day gi\7901", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -5.225746673713201,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.42859635585027),-                                    ("integer (0..19)year (grain)", -4.527208644518379),-                                    ("integer (numeric)day (grain)", -3.0231312477421053),-                                    ("integer (0..19)hour (grain)", -3.834061463958434),-                                    ("second", -3.6109179126442243),-                                    ("integer (numeric)second (grain)", -3.6109179126442243),-                                    ("integer (numeric)year (grain)", -2.655406467616788),-                                    ("day", -2.822460552279954), ("year", -2.581298495463066),-                                    ("integer (numeric)week (grain)", -4.121743536410215),-                                    ("integer (0..19)month (grain)", -4.527208644518379),-                                    ("hour", -2.001480000210124), ("month", -2.042301994730379),-                                    ("integer (numeric)minute (grain)", -3.6109179126442243),-                                    ("integer (numeric)month (grain)", -2.084861609149175),-                                    ("minute", -3.6109179126442243),-                                    ("integer (numeric)hour (grain)", -2.129313371720009),-                                    ("integer (0..19)day (grain)", -4.121743536410215),-                                    ("integer (0..19)week (grain)", -3.834061463958434)],-                               n = 83}}),-       ("<time-of-day> am|pm",-        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}}),-       ("h\244m nay",-        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}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain)",-        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}}),-       ("intersect by \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynext <cycle>", -1.5040773967762742),-                                    ("dayweek", -0.8109302162163288),-                                    ("named-daythis <cycle>", -1.0986122886681098)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer> ph\250t",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("time-of-day gi\7901integer (numeric)", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("noon",-        Classifier{okData =-                     ClassData{prior = -0.7621400520468967,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.6286086594223742,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("ordinals",-        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}}),-       ("(hour-of-day) quarter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("time-of-day gi\7901integer (numeric)", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.7731898882334817, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5649493574615367),-                                    ("month (grain)", -2.5649493574615367),-                                    ("year (grain)", -1.6486586255873816),-                                    ("week (grain)", -2.5649493574615367),-                                    ("year", -1.6486586255873816), ("month", -2.5649493574615367)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.6190392084062235, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("month (grain)", -2.2335922215070942),-                                    ("hour (grain)", -2.639057329615259),-                                    ("year (grain)", -2.639057329615259),-                                    ("second", -2.639057329615259), ("day", -2.639057329615259),-                                    ("minute (grain)", -2.639057329615259),-                                    ("year", -2.639057329615259),-                                    ("second (grain)", -2.639057329615259),-                                    ("hour", -2.639057329615259), ("month", -2.2335922215070942),-                                    ("minute", -2.639057329615259),-                                    ("day (grain)", -2.639057329615259)],-                               n = 7}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.1431008436406733,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)day (grain)", -2.639057329615259),-                                    ("second", -2.3513752571634776),-                                    ("integer (numeric)second (grain)", -2.3513752571634776),-                                    ("integer (numeric)year (grain)", -2.639057329615259),-                                    ("day", -2.639057329615259), ("year", -2.639057329615259),-                                    ("integer (0..19)month (grain)", -3.044522437723423),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("integer (numeric)minute (grain)", -2.639057329615259),-                                    ("integer (numeric)month (grain)", -3.044522437723423),-                                    ("minute", -2.639057329615259),-                                    ("integer (numeric)hour (grain)", -2.639057329615259)],-                               n = 13},-                   koData =-                     ClassData{prior = -2.0149030205422647, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.8971199848858813),-                                    ("integer (numeric)week (grain)", -2.3025850929940455),-                                    ("integer (0..19)week (grain)", -2.3025850929940455)],-                               n = 2}}),-       ("<day-of-month> <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.10008345855698253,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)month (numeric with month symbol)",-                                     -0.8232003088081431),-                                    ("integer (numeric)named-month", -2.6149597780361984),-                                    ("month", -0.7178397931503169)],-                               n = 19},-                   koData =-                     ClassData{prior = -2.3513752571634776,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)month (numeric with month symbol)",-                                     -0.8472978603872037),-                                    ("month", -0.8472978603872037)],-                               n = 2}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)day (grain)", -2.3353749158170367),-                                    ("integer (0..19)hour (grain)", -2.740840023925201),-                                    ("second", -2.740840023925201),-                                    ("integer (numeric)second (grain)", -2.740840023925201),-                                    ("integer (numeric)year (grain)", -2.740840023925201),-                                    ("day", -2.3353749158170367), ("year", -2.740840023925201),-                                    ("hour", -2.3353749158170367), ("month", -2.3353749158170367),-                                    ("integer (numeric)minute (grain)", -2.740840023925201),-                                    ("integer (numeric)month (grain)", -2.3353749158170367),-                                    ("minute", -2.740840023925201),-                                    ("integer (numeric)hour (grain)", -2.740840023925201)],-                               n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        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}}),-       ("morning",-        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 (grain)",-        Classifier{okData =-                     ClassData{prior = -0.6190392084062235,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.7731898882334817,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("<part-of-day> (h\244m )?nay",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon", -1.0116009116784799), ("hour", -0.7884573603642702),-                                    ("morning", -1.7047480922384253)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (numeric with day symbol) <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)month (numeric with month symbol)",-                                     -0.8167611365271219),-                                    ("integer (numeric)named-month", -2.662587827025453),-                                    ("month", -0.7166776779701395)],-                               n = 20},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/VI_XX.hs view
@@ -0,0 +1,969 @@+-- 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.VI_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.4986303506721723, unseen = -4.61512051684126,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 99},+                   koData =+                     ClassData{prior = -0.9348671174470905, unseen = -4.189654742026425,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 64}}),+       ("exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day gi\7901", -1.6094379124341003),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",+                                     -1.6094379124341003),+                                    ("time-of-day (latent)", -1.6094379124341003),+                                    ("hour", -0.916290731874155)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ng\224y h\244m qua",+        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}}),+       ("lunch",+        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}}),+       ("ng\224y dd/mm",+        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/mm",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("<part-of-day> <time>",+        Classifier{okData =+                     ClassData{prior = -0.7884573603642702,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -1.128465251817791),+                                    ("noonh\244m nay", -2.833213344056216),+                                    ("lunchng\224y mai", -2.4277482359480516),+                                    ("noonng\224y h\244m qua", -2.4277482359480516),+                                    ("morningSunday", -2.833213344056216),+                                    ("noonng\224y mai", -2.4277482359480516),+                                    ("afternoonng\224y dd/mm", -2.833213344056216),+                                    ("afternoonng\224y mai", -2.833213344056216)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.6061358035703156,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -1.072636802264849),+                                    ("afternoon<day-of-month> (numeric with day symbol) <named-month>",+                                     -2.538973871058276),+                                    ("afternoongi\225ng sinh", -1.845826690498331),+                                    ("afternoonng\224y dd/mm/yyyy", -2.9444389791664407),+                                    ("noongi\225ng sinh", -2.9444389791664407),+                                    ("afternoonng\224y dd/mm", -2.9444389791664407),+                                    ("lunchgi\225ng sinh", -2.9444389791664407),+                                    ("afternoonintersect", -2.9444389791664407)],+                               n = 12}}),+       ("tonight",+        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}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -1.452252328911688, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -0.2666286632539486,+                               unseen = -3.6375861597263857,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 36}}),+       ("<day-of-week> t\7899i",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -1.3862943611198906), ("Friday", -1.791759469228055),+                                    ("day", -0.8754687373538999), ("Tuesday", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("October",+        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 (grain)",+        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}}),+       ("Wednesday",+        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}}),+       ("ng\224y h\244m kia",+        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}}),+       ("gi\225ng sinh",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -1.791759469228055, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.5070449009260846, unseen = -5.049856007249537,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm",+                                     -3.657130755799356),+                                    ("hourday", -3.657130755799356),+                                    ("dayhour", -4.350277936359301),+                                    ("h\244m nay<time-of-day> s\225ng|chi\7873u|t\7889i",+                                     -4.350277936359301),+                                    ("monthyear", -3.4339872044851463),+                                    ("Wednesdaynext <cycle>", -4.350277936359301),+                                    ("Tuesday<day-of-month> (numeric with day symbol) <named-month>",+                                     -4.350277936359301),+                                    ("time-of-day gi\7901<part-of-day> <time>", -4.350277936359301),+                                    ("Sunday<day-of-month> (numeric with day symbol) <named-month>",+                                     -3.9448128282511368),+                                    ("time-of-day gi\7901<time> n\224y", -4.350277936359301),+                                    ("month (numeric with month symbol)year (numeric with year symbol)",+                                     -3.657130755799356),+                                    ("dayday", -2.645529844120876),+                                    ("hourhour", -3.4339872044851463),+                                    ("intersectyear (numeric with year symbol)",+                                     -3.657130755799356),+                                    ("dayyear", -2.4784757594577096),+                                    ("<ordinal> <cycle> of <time>year (numeric with year symbol)",+                                     -4.350277936359301),+                                    ("minutehour", -3.9448128282511368),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889iintersect",+                                     -3.9448128282511368),+                                    ("Thursdaynext <cycle>", -3.9448128282511368),+                                    ("Octoberyear (numeric with year symbol)", -4.350277936359301),+                                    ("time-of-day gi\7901<part-of-day> (h\244m )?nay",+                                     -4.350277936359301),+                                    ("<day-of-month> (numeric with day symbol) <named-month>year (numeric with year symbol)",+                                     -3.2516656476911914),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i<day-of-month> (numeric with day symbol) <named-month>",+                                     -3.4339872044851463),+                                    ("time-of-day gi\7901tonight", -4.350277936359301),+                                    ("minuteday", -2.846200539583027),+                                    ("hh:mm<part-of-day> <time>", -4.350277936359301),+                                    ("<day-of-month> <named-month>year (numeric with year symbol)",+                                     -3.2516656476911914),+                                    ("Fridaythis <cycle>", -3.9448128282511368),+                                    ("Thursdaythis <cycle>", -4.350277936359301),+                                    ("at hh:mm<part-of-day> <time>", -4.350277936359301),+                                    ("dayweek", -3.0975149678639333),+                                    ("weekyear", -4.350277936359301),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm/yyyy",+                                     -4.350277936359301),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y mai",+                                     -4.350277936359301),+                                    ("Tuesdayintersect", -4.350277936359301),+                                    ("Monday<day-of-month> (numeric with day symbol) <named-month>",+                                     -3.0975149678639333),+                                    ("seasonthis <cycle>", -4.350277936359301),+                                    ("minuteyear", -3.9448128282511368)],+                               n = 53},+                   koData =+                     ClassData{prior = -0.9219887529887928, unseen = -4.787491742782046,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> s\225ng|chi\7873u|t\7889ing\224y dd/mm",+                                     -4.085976312551584),+                                    ("hourday", -2.2942168433235293),+                                    ("dayhour", -4.085976312551584),+                                    ("monthyear", -2.833213344056216),+                                    ("noonh\244m nay", -4.085976312551584),+                                    ("houryear", -4.085976312551584),+                                    ("Mondaygi\225ng sinh", -2.987364023883474),+                                    ("month (numeric with month symbol)year (numeric with year symbol)",+                                     -2.833213344056216),+                                    ("dayday", -2.58189891577531), ("dayyear", -4.085976312551584),+                                    ("h\244m naytime-of-day gi\7901", -4.085976312551584),+                                    ("minutehour", -3.6805112044434196),+                                    ("Sundaygi\225ng sinh", -3.6805112044434196),+                                    ("<part-of-day> <time>year (numeric with year symbol)",+                                     -4.085976312551584),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889igi\225ng sinh",+                                     -2.4765384001174837),+                                    ("noonng\224y h\244m qua", -3.6805112044434196),+                                    ("noongi\225ng sinh", -4.085976312551584),+                                    ("minuteday", -2.987364023883474),+                                    ("hh:mm<part-of-day> <time>", -4.085976312551584),+                                    ("noonng\224y mai", -3.6805112044434196),+                                    ("<day-of-month> <named-month>year (numeric with year symbol)",+                                     -4.085976312551584),+                                    ("at hh:mm<part-of-day> <time>", -4.085976312551584),+                                    ("Tuesdaygi\225ng sinh", -4.085976312551584)],+                               n = 35}}),+       ("time-of-day gi\7901",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               unseen = -4.174387269895637,+                               likelihoods =+                                 HashMap.fromList+                                   [("exactly <time-of-day>", -3.4657359027997265),+                                    ("about <time-of-day>", -3.0602707946915624),+                                    ("time-of-day (latent)", -0.8266785731844679),+                                    ("hour", -0.7248958788745256)],+                               n = 30},+                   koData =+                     ClassData{prior = -2.772588722239781, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.9808292530117262),+                                    ("hour", -0.9808292530117262)],+                               n = 2}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.3862943611198906),+                                    ("day (grain)ordinalsmonth (numeric with month symbol)",+                                     -1.6739764335716716),+                                    ("week (grain)ordinalsintersect", -2.0794415416798357),+                                    ("day (grain)ordinalsMarch", -2.0794415416798357),+                                    ("weekmonth", -1.6739764335716716),+                                    ("week (grain)ordinalsmonth (numeric with month symbol)",+                                     -2.0794415416798357)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("season",+        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}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = -0.5389965007326869, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},+                   koData =+                     ClassData{prior = -0.8754687373538999,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("quarter <number>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter (grain)integer (numeric)", -1.2992829841302609),+                                    ("quarter (grain)integer (0..19)", -1.2992829841302609),+                                    ("quarter", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter (grain)integer (numeric)", -0.8472978603872037),+                                    ("quarter", -0.8472978603872037)],+                               n = 2}}),+       ("next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.9459101490553135),+                                    ("month (grain)", -3.044522437723423),+                                    ("year (grain)", -2.128231705849268),+                                    ("week (grain)", -1.9459101490553135),+                                    ("quarter", -2.3513752571634776), ("year", -2.128231705849268),+                                    ("month", -3.044522437723423),+                                    ("quarter (grain)", -2.3513752571634776)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("month (grain)", -2.639057329615259),+                                    ("hour (grain)", -2.639057329615259),+                                    ("year (grain)", -2.639057329615259),+                                    ("second", -2.3513752571634776), ("day", -2.639057329615259),+                                    ("minute (grain)", -2.639057329615259),+                                    ("year", -2.639057329615259),+                                    ("second (grain)", -2.3513752571634776),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("minute", -2.639057329615259),+                                    ("day (grain)", -2.639057329615259)],+                               n = 13}}),+       ("ng\224y mai",+        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}}),+       ("quarter <number> <year>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarteryear", -1.0986122886681098),+                                    ("quarter (grain)integer (numeric)year (numeric with year symbol)",+                                     -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarterhour", -1.0986122886681098),+                                    ("quarter (grain)integer (numeric)time-of-day (latent)",+                                     -1.0986122886681098)],+                               n = 1}}),+       ("Monday",+        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}}),+       ("dd/mm/yyyy",+        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}}),+       ("after lunch",+        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}}),+       ("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}}),+       ("<time> tr\432\7899c",+        Classifier{okData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.5040773967762742), ("Tuesday", -1.5040773967762742)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("gi\225ng sinh", -2.2512917986064953),+                                    ("<hour-of-day> <integer>", -2.2512917986064953),+                                    ("day", -2.2512917986064953),+                                    ("time-of-day (latent)", -1.3350010667323402),+                                    ("hour", -1.3350010667323402), ("minute", -2.2512917986064953)],+                               n = 6}}),+       ("ng\224y 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}}),+       ("<time> n\224y",+        Classifier{okData =+                     ClassData{prior = -0.6061358035703156, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("season", -1.845826690498331),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",+                                     -2.2512917986064953),+                                    ("day", -1.845826690498331), ("noon", -1.845826690498331),+                                    ("hour", -1.3350010667323402),+                                    ("morning", -2.2512917986064953)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.7884573603642702, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.4469189829363254),+                                    ("noon", -1.7346010553881064), ("hour", -1.041453874828161)],+                               n = 5}}),+       ("b\226y gi\7901",+        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}}),+       ("<hour-of-day> <integer>",+        Classifier{okData =+                     ClassData{prior = -1.4469189829363254,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7884573603642702),+                                    ("time-of-day gi\7901integer (numeric)", -0.7884573603642702)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.2682639865946794,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)integer (0..19)", -0.7282385003712154),+                                    ("hour", -0.7282385003712154)],+                               n = 13}}),+       ("<time> t\7899i",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -1.9459101490553135),+                                    ("month (numeric with month symbol)", -2.3513752571634776),+                                    ("Friday", -2.3513752571634776), ("day", -1.4350845252893227),+                                    ("month", -2.3513752571634776),+                                    ("Tuesday", -2.3513752571634776)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("gi\225ng sinh", -2.1400661634962708),+                                    ("time-of-day gi\7901", -2.1400661634962708),+                                    ("<hour-of-day> <integer>", -2.1400661634962708),+                                    ("day", -2.1400661634962708), ("hour", -2.1400661634962708),+                                    ("minute", -2.1400661634962708)],+                               n = 3}}),+       ("<time-of-day> s\225ng|chi\7873u|t\7889i",+        Classifier{okData =+                     ClassData{prior = -5.129329438755058e-2,+                               unseen = -4.465908118654584,+                               likelihoods =+                                 HashMap.fromList+                                   [("exactly <time-of-day>", -3.7612001156935624),+                                    ("time-of-day gi\7901", -1.318853080324358),+                                    ("<hour-of-day> <integer>", -3.355735007585398),+                                    ("about <time-of-day>", -3.355735007585398),+                                    ("at hh:mm", -3.068052935133617),+                                    ("(hour-of-day) half", -3.355735007585398),+                                    ("hh:mm", -2.5084371471981943), ("hour", -1.1962507582320256),+                                    ("minute", -1.8152899666382492)],+                               n = 38},+                   koData =+                     ClassData{prior = -2.995732273553991, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.540445040947149),+                                    ("hour", -1.540445040947149)],+                               n = 2}}),+       ("April",+        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 (numeric with month symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2231435513142097),+                                    ("integer (0..19)", -1.6094379124341003)],+                               n = 28},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week (grain)",+        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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("quarter <number> of <year>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarteryear", -1.0986122886681098),+                                    ("quarter (grain)integer (numeric)year (numeric with year symbol)",+                                     -1.0986122886681098)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarterhour", -1.0986122886681098),+                                    ("quarter (grain)integer (numeric)time-of-day (latent)",+                                     -1.0986122886681098)],+                               n = 1}}),+       ("Sunday",+        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}}),+       ("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.916290731874155, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.6376087894007967),+                                    ("year (grain)", -2.1972245773362196),+                                    ("week (grain)", -1.6376087894007967),+                                    ("day", -2.890371757896165), ("quarter", -1.9740810260220096),+                                    ("year", -2.1972245773362196),+                                    ("quarter (grain)", -1.9740810260220096),+                                    ("day (grain)", -2.890371757896165)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day gi\7901", -1.6739764335716716),+                                    ("<time-of-day> s\225ng|chi\7873u|t\7889i",+                                     -1.6739764335716716),+                                    ("time-of-day (latent)", -1.6739764335716716),+                                    ("hour", -0.8266785731844679)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.6567795363890705,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.10536051565782628),+                                    ("integer (0..19)", -2.3025850929940455)],+                               n = 28},+                   koData =+                     ClassData{prior = -0.7308875085427924, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.4989911661189879),+                                    ("integer (0..19)", -0.9343092373768334)],+                               n = 26}}),+       ("at hh:mm",+        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}}),+       ("(hour-of-day) half",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day gi\7901", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.225746673713201,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.42859635585027),+                                    ("integer (0..19)year (grain)", -4.527208644518379),+                                    ("integer (numeric)day (grain)", -3.0231312477421053),+                                    ("integer (0..19)hour (grain)", -3.834061463958434),+                                    ("second", -3.6109179126442243),+                                    ("integer (numeric)second (grain)", -3.6109179126442243),+                                    ("integer (numeric)year (grain)", -2.655406467616788),+                                    ("day", -2.822460552279954), ("year", -2.581298495463066),+                                    ("integer (numeric)week (grain)", -4.121743536410215),+                                    ("integer (0..19)month (grain)", -4.527208644518379),+                                    ("hour", -2.001480000210124), ("month", -2.042301994730379),+                                    ("integer (numeric)minute (grain)", -3.6109179126442243),+                                    ("integer (numeric)month (grain)", -2.084861609149175),+                                    ("minute", -3.6109179126442243),+                                    ("integer (numeric)hour (grain)", -2.129313371720009),+                                    ("integer (0..19)day (grain)", -4.121743536410215),+                                    ("integer (0..19)week (grain)", -3.834061463958434)],+                               n = 83}}),+       ("<time-of-day> am|pm",+        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}}),+       ("h\244m nay",+        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}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("second (grain)",+        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}}),+       ("intersect by \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesdaynext <cycle>", -1.6094379124341003),+                                    ("Fridaythis <cycle>", -1.6094379124341003),+                                    ("Thursdaythis <cycle>", -1.6094379124341003),+                                    ("dayweek", -0.916290731874155)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<hour-of-day> <integer> ph\250t",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("time-of-day gi\7901integer (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("March",+        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}}),+       ("noon",+        Classifier{okData =+                     ClassData{prior = -0.7621400520468967,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.6286086594223742,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("ordinals",+        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}}),+       ("(hour-of-day) quarter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("time-of-day gi\7901integer (numeric)", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.7731898882334817, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5649493574615367),+                                    ("month (grain)", -2.5649493574615367),+                                    ("year (grain)", -1.6486586255873816),+                                    ("week (grain)", -2.5649493574615367),+                                    ("year", -1.6486586255873816), ("month", -2.5649493574615367)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.6190392084062235, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("month (grain)", -2.2335922215070942),+                                    ("hour (grain)", -2.639057329615259),+                                    ("year (grain)", -2.639057329615259),+                                    ("second", -2.639057329615259), ("day", -2.639057329615259),+                                    ("minute (grain)", -2.639057329615259),+                                    ("year", -2.639057329615259),+                                    ("second (grain)", -2.639057329615259),+                                    ("hour", -2.639057329615259), ("month", -2.2335922215070942),+                                    ("minute", -2.639057329615259),+                                    ("day (grain)", -2.639057329615259)],+                               n = 7}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.1431008436406733,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)day (grain)", -2.639057329615259),+                                    ("second", -2.3513752571634776),+                                    ("integer (numeric)second (grain)", -2.3513752571634776),+                                    ("integer (numeric)year (grain)", -2.639057329615259),+                                    ("day", -2.639057329615259), ("year", -2.639057329615259),+                                    ("integer (0..19)month (grain)", -3.044522437723423),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("integer (numeric)minute (grain)", -2.639057329615259),+                                    ("integer (numeric)month (grain)", -3.044522437723423),+                                    ("minute", -2.639057329615259),+                                    ("integer (numeric)hour (grain)", -2.639057329615259)],+                               n = 13},+                   koData =+                     ClassData{prior = -2.0149030205422647, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.8971199848858813),+                                    ("integer (numeric)week (grain)", -2.3025850929940455),+                                    ("integer (0..19)week (grain)", -2.3025850929940455)],+                               n = 2}}),+       ("<day-of-month> <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.10008345855698253,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)month (numeric with month symbol)",+                                     -0.8232003088081431),+                                    ("month", -0.7178397931503169),+                                    ("integer (numeric)March", -2.6149597780361984)],+                               n = 19},+                   koData =+                     ClassData{prior = -2.3513752571634776,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)month (numeric with month symbol)",+                                     -0.8472978603872037),+                                    ("month", -0.8472978603872037)],+                               n = 2}}),+       ("Tuesday",+        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}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)day (grain)", -2.3353749158170367),+                                    ("integer (0..19)hour (grain)", -2.740840023925201),+                                    ("second", -2.740840023925201),+                                    ("integer (numeric)second (grain)", -2.740840023925201),+                                    ("integer (numeric)year (grain)", -2.740840023925201),+                                    ("day", -2.3353749158170367), ("year", -2.740840023925201),+                                    ("hour", -2.3353749158170367), ("month", -2.3353749158170367),+                                    ("integer (numeric)minute (grain)", -2.740840023925201),+                                    ("integer (numeric)month (grain)", -2.3353749158170367),+                                    ("minute", -2.740840023925201),+                                    ("integer (numeric)hour (grain)", -2.740840023925201)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter (grain)",+        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}}),+       ("morning",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -0.6190392084062235,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.7731898882334817,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("<part-of-day> (h\244m )?nay",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon", -1.0116009116784799), ("hour", -0.7884573603642702),+                                    ("morning", -1.7047480922384253)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (numeric with day symbol) <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)month (numeric with month symbol)",+                                     -0.8167611365271219),+                                    ("month", -0.7166776779701395),+                                    ("integer (numeric)March", -2.662587827025453)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}})]
− Duckling/Ranking/Classifiers/ZH.hs
@@ -1,827 +0,0 @@--- 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.ZH (classifiers) where-import Prelude-import Duckling.Ranking.Types-import qualified Data.HashMap.Strict as HashMap-import Data.String--classifiers :: Classifiers-classifiers-  = HashMap.fromList-      [("<time> timezone",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> am|pm", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},-                   koData =-                     ClassData{prior = -0.9295359586241757,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),-       ("the day before yesterday",-        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}}),-       ("today",-        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",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               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}}),-       ("month (grain)",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},-                   koData =-                     ClassData{prior = -0.4700036292457356,-                               unseen = -3.7376696182833684,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.0296194171811581,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 5}}),-       ("national 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}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.4367176516122688, unseen = -4.61512051684126,-                               likelihoods =-                                 HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.506557897319982),-                                    ("year (numeric with year symbol)<named-month> <day-of-month>",-                                     -1.5606477482646683),-                                    ("dayday", -1.8971199848858813),-                                    ("hourhour", -2.995732273553991),-                                    ("hourminute", -3.506557897319982),-                                    ("absorption of , after named day<named-month> <day-of-month>",-                                     -1.8971199848858813),-                                    ("dayminute", -3.506557897319982),-                                    ("tonight<time-of-day> o'clock", -2.995732273553991),-                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",-                                     -3.506557897319982),-                                    ("yearday", -1.5606477482646683)],-                               n = 42},-                   koData =-                     ClassData{prior = -1.0388930539664873, unseen = -4.143134726391533,-                               likelihoods =-                                 HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.181224235989778),-                                    ("dayhour", -2.517696472610991),-                                    ("daymonth", -2.0476928433652555),-                                    ("<dim time> <part-of-day><time-of-day> o'clock",-                                     -3.028522096376982),-                                    ("year (numeric with year symbol)named-month",-                                     -2.181224235989778),-                                    ("hourhour", -3.028522096376982),-                                    ("hourminute", -3.028522096376982),-                                    ("absorption of , after named daynamed-month",-                                     -2.0476928433652555),-                                    ("yearmonth", -2.181224235989778),-                                    ("dayminute", -3.028522096376982),-                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",-                                     -3.028522096376982)],-                               n = 23}}),-       ("year (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}}),-       ("last tuesday, last july",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.8690378470236094),-                                    ("named-day", -0.8690378470236094)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -4.1588830833596715,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -1.0076405104623831),-                                    ("named-month", -3.4499875458315876),-                                    ("month (numeric with month symbol)", -2.3513752571634776),-                                    ("hour", -1.0076405104623831), ("month", -2.1972245773362196)],-                               n = 28}}),-       ("next <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.7472144018302211,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("month (grain)", -1.791759469228055),-                                    ("year (grain)", -2.4849066497880004),-                                    ("week (grain)", -1.3862943611198906),-                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.8602012652231115),-                                    ("week (grain)", -0.8602012652231115)],-                               n = 10}}),-       ("last 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}}),-       ("this <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.8066624897703196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 21},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               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}}),-       ("mm/dd/yyyy",-        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}}),-       ("evening|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}}),-       ("yesterday",-        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}}),-       ("next 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}}),-       ("hh:mm (time-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}}),-       ("<integer> (latent time-of-day)",-        Classifier{okData =-                     ClassData{prior = -1.3217558399823195,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.2809338454620642),-                                    ("integer (0..10)", -0.325422400434628)],-                               n = 16},-                   koData =-                     ClassData{prior = -0.3101549283038396,-                               unseen = -3.8501476017100584,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -2.2192034840549946),-                                    ("integer (0..10)", -0.11506932978478723)],-                               n = 44}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthday", -0.7472144018302211),-                                    ("month (numeric with month symbol)ordinal (digits)named-day",-                                     -1.3350010667323402),-                                    ("named-monthordinal (digits)named-day", -1.3350010667323402)],-                               n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("named-month",-        Classifier{okData =-                     ClassData{prior = -3.7740327982847086e-2,-                               unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -3.295836866004329, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("month (numeric with month symbol)",-        Classifier{okData =-                     ClassData{prior = -0.13976194237515874,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.0296194171811581),-                                    ("integer (0..10)", -0.4418327522790392)],-                               n = 40},-                   koData =-                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],-                               n = 6}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8434293836092833,-                               unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -0.5625269981428811,-                               unseen = -3.9318256327243257,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),-       ("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}}),-       ("year (numeric with year symbol)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 14},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        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}}),-       ("numbers prefix with -, negative or minus",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 4}}),-       ("tomorrow",-        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 year",-        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.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> from now",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.891820298110627,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),-                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),-                                    ("<integer> <unit-of-duration>", -0.8266785731844679),-                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),-                                    ("minute", -2.772588722239781)],-                               n = 20}}),-       ("this <cycle>",-        Classifier{okData =-                     ClassData{prior = -1.0185695809945732,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.916290731874155),-                                    ("year (grain)", -2.3025850929940455),-                                    ("week (grain)", -0.916290731874155),-                                    ("year", -2.3025850929940455)],-                               n = 13},-                   koData =-                     ClassData{prior = -0.4480247225269604,-                               unseen = -3.9318256327243257,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.7339691750802004),-                                    ("week (grain)", -0.7339691750802004)],-                               n = 23}}),-       ("minute (grain)",-        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}}),-       ("<dim time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.9889840465642745,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -0.7514160886839211),-                                    ("national dayevening|night", -2.871679624884012),-                                    ("<named-month> <day-of-month>morning", -1.405342556090585),-                                    ("named-daymorning", -1.7730673362159024),-                                    ("children's dayafternoon", -2.871679624884012)],-                               n = 24},-                   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,-                               likelihoods =-                                 HashMap.fromList-                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),-                                    ("hourhour", -1.1631508098056809),-                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",-                                     -2.0794415416798357),-                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),-                                    ("hourminute", -1.9252908618525775),-                                    ("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},-                   koData =-                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourhour", -1.2039728043259361),-                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",-                                     -1.8971199848858813),-                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),-                                    ("hourminute", -1.8971199848858813),-                                    ("afternoon<integer> (latent time-of-day)",-                                     -1.742969305058623)],-                               n = 16}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -5.877735781779639,-                               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}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mm (time-of-day)", -1.252762968495368),-                                    ("<integer> (latent time-of-day)", -1.540445040947149),-                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.916290731874155),-                                    ("hour", -0.916290731874155)],-                               n = 3}}),-       ("relative minutes after|past <integer> (hour-of-day)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)integer (11..19)",-                                     -0.7731898882334817),-                                    ("hour", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)integer (0..10)",-                                     -0.7731898882334817),-                                    ("hour", -0.7731898882334817)],-                               n = 5}}),-       ("army'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}}),-       ("intersect by \",\"",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.7576857016975165),-                                    ("named-day<named-month> <day-of-month>", -0.7576857016975165)],-                               n = 14},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("named-daynamed-month", -0.8109302162163288),-                                    ("daymonth", -0.8109302162163288)],-                               n = 7}}),-       ("named-day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.605170185988091,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 98},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain)",-        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}}),-       ("<duration> ago",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.891820298110627,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),-                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),-                                    ("<integer> <unit-of-duration>", -0.8266785731844679),-                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),-                                    ("minute", -2.772588722239781)],-                               n = 20}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.8690378470236094),-                                    ("named-day", -0.8690378470236094)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -4.1588830833596715,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -1.0076405104623831),-                                    ("named-month", -3.4499875458315876),-                                    ("month (numeric with month symbol)", -2.3513752571634776),-                                    ("hour", -1.0076405104623831), ("month", -2.1972245773362196)],-                               n = 28}}),-       ("the day after tomorrow",-        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}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = -1.5260563034950494, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.9808292530117262),-                                    ("named-day", -0.9808292530117262)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.24512245803298496,-                               unseen = -3.7612001156935624,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -1.1727202608218315),-                                    ("month (numeric with month symbol)", -3.044522437723423),-                                    ("day", -1.9459101490553135),-                                    ("named-day", -1.9459101490553135),-                                    ("hour", -1.1727202608218315), ("month", -3.044522437723423)],-                               n = 18}}),-       ("last <cycle>",-        Classifier{okData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.3862943611198906),-                                    ("month (grain)", -1.791759469228055),-                                    ("year (grain)", -2.4849066497880004),-                                    ("week (grain)", -1.3862943611198906),-                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.5596157879354228,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -0.8362480242006186),-                                    ("week (grain)", -0.8362480242006186)],-                               n = 12}}),-       ("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.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.59511985013459,-                               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)],-                               n = 42},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("children'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}}),-       ("<named-month> <day-of-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.820281565605037,-                               likelihoods =-                                 HashMap.fromList-                                   [("month (numeric with month symbol)integer (11..19)",-                                     -2.6149597780361984),-                                    ("named-monthinteger (11..19)", -2.6149597780361984),-                                    ("named-monthinteger (numeric)", -3.713572066704308),-                                    ("month (numeric with month symbol)integer (numeric)",-                                     -2.1041341542702074),-                                    ("month", -0.734646911466698),-                                    ("month (numeric with month symbol)integer (0..10)",-                                     -2.1041341542702074),-                                    ("named-monthinteger (0..10)", -2.2472349979108808)],-                               n = 58},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (0..10)",-        Classifier{okData =-                     ClassData{prior = -0.44306352166517193,-                               unseen = -5.170483995038151,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},-                   koData =-                     ClassData{prior = -1.0274078423763182, unseen = -4.59511985013459,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 97}}),-       ("last n <cycle>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.61512051684126,-                               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},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = -0.17185025692665928,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 16},-                   koData =-                     ClassData{prior = -1.845826690498331, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.6931471805599453),-                                    ("named-day", -0.6931471805599453)],-                               n = 3}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("n <cycle> last",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.007333185232471,-                               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)],-                               n = 20},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("morning",-        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}}),-       ("week-end",-        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 (grain)",-        Classifier{okData =-                     ClassData{prior = -6.453852113757118e-2,-                               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}}),-       ("labor 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}}),-       ("women'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}}),-       ("this <time>",-        Classifier{okData =-                     ClassData{prior = -0.2318016140573243, unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("day", -0.8407831793660099),-                                    ("named-day", -0.8407831793660099),-                                    ("hour", -2.833213344056216), ("week-end", -2.833213344056216)],-                               n = 23},-                   koData =-                     ClassData{prior = -1.575536360758419, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> (latent time-of-day)", -0.8873031950009028),-                                    ("hour", -0.8873031950009028)],-                               n = 6}})]
+ Duckling/Ranking/Classifiers/ZH_CN.hs view
@@ -0,0 +1,879 @@+-- 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.ZH_CN (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},+                   koData =+                     ClassData{prior = -0.9295359586241757,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("the day before yesterday",+        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}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Sunday", -0.6931471805599453)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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}}),+       ("October",+        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}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5}}),+       ("national 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}}),+       ("Wednesday",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("children's day<part-of-day> <dim time>", -3.5165082281731497),+                                    ("year (numeric with year symbol)<named-month> <day-of-month>",+                                     -1.5705980791178364),+                                    ("dayday", -1.9070703157390494),+                                    ("hourhour", -3.005682604407159),+                                    ("hourminute", -3.5165082281731497),+                                    ("absorption of , after named day<named-month> <day-of-month>",+                                     -1.9070703157390494),+                                    ("dayminute", -3.5165082281731497),+                                    ("tonight<time-of-day> o'clock", -3.005682604407159),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("yearday", -1.5705980791178364)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0388930539664873,+                               unseen = -4.1588830833596715,+                               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),+                                    ("<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),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.044522437723423),+                                    ("absorption of , after named dayFebruary",+                                     -2.063693184711697)],+                               n = 23}}),+       ("year (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}}),+       ("Saturday",+        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}}),+       ("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,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8602012652231115),+                                    ("week (grain)", -0.8602012652231115)],+                               n = 10}}),+       ("last 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}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.7323678937132265),+                                    ("Tuesday", -1.5533484457830569)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("mm/dd/yyyy",+        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}}),+       ("evening|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}}),+       ("Monday",+        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}}),+       ("yesterday",+        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}}),+       ("next 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}}),+       ("hh:mm (time-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}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.2809338454620642),+                                    ("integer (0..10)", -0.325422400434628)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -2.2192034840549946),+                                    ("integer (0..10)", -0.11506932978478723)],+                               n = 44}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)Monday", -1.3350010667323402),+                                    ("monthday", -0.7472144018302211),+                                    ("month (numeric with month symbol)ordinal (digits)Monday",+                                     -1.3350010667323402)],+                               n = 8},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0296194171811581),+                                    ("integer (0..10)", -0.4418327522790392)],+                               n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],+                               n = 6}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8434293836092833,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -0.5625269981428811,+                               unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),+       ("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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("Friday",+        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}}),+       ("tomorrow",+        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 year",+        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 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.3437347467010947),+                                    ("day", -0.7375989431307791), ("Tuesday", -1.3437347467010947)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.916290731874155),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -0.916290731874155),+                                    ("year", -2.3025850929940455)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.7339691750802004),+                                    ("week (grain)", -0.7339691750802004)],+                               n = 23}}),+       ("minute (grain)",+        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}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9889840465642745,+                               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},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),+                                    ("hourhour", -1.1631508098056809),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -2.0794415416798357),+                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),+                                    ("hourminute", -1.9252908618525775),+                                    ("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},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -1.2039728043259361),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -1.8971199848858813),+                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),+                                    ("hourminute", -1.8971199848858813),+                                    ("afternoon<integer> (latent time-of-day)",+                                     -1.742969305058623)],+                               n = 16}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.877735781779639,+                               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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm (time-of-day)", -1.252762968495368),+                                    ("<integer> (latent time-of-day)", -1.540445040947149),+                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (11..19)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (0..10)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5}}),+       ("army'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}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sunday<named-month> <day-of-month>", -0.7576857016975165),+                                    ("dayday", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("SundayFebruary", -0.8109302162163288)],+                               n = 7}}),+       ("second (grain)",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("last <time>",+        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}}),+       ("March",+        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}}),+       ("the day after tomorrow",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.784189633918261,+                               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}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8362480242006186),+                                    ("week (grain)", -0.8362480242006186)],+                               n = 12}}),+       ("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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.59511985013459,+                               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)],+                               n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tuesday",+        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}}),+       ("children'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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.8283137373023015,+                               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 (numeric)",+                                     -2.1122313645028266),+                                    ("Februaryinteger (0..10)", -2.740840023925201),+                                    ("month", -0.7427441216993174),+                                    ("month (numeric with month symbol)integer (0..10)",+                                     -2.1122313645028266)],+                               n = 58},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        Classifier{okData =+                     ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},+                   koData =+                     ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.61512051684126,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               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)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("labor 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}}),+       ("women'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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.9980959022258835),+                                    ("Monday", -1.9980959022258835), ("day", -0.8586616190375187),+                                    ("hour", -2.9789251552376097), ("Tuesday", -1.6796421711073488),+                                    ("week-end", -2.9789251552376097)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9985288301111273),+                                    ("hour", -0.9985288301111273)],+                               n = 6}})]
+ Duckling/Ranking/Classifiers/ZH_HK.hs view
@@ -0,0 +1,879 @@+-- 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.ZH_HK (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},+                   koData =+                     ClassData{prior = -0.9295359586241757,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("the day before yesterday",+        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}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Sunday", -0.6931471805599453)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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}}),+       ("October",+        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}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5}}),+       ("national 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}}),+       ("Wednesday",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("children's day<part-of-day> <dim time>", -3.5165082281731497),+                                    ("year (numeric with year symbol)<named-month> <day-of-month>",+                                     -1.5705980791178364),+                                    ("dayday", -1.9070703157390494),+                                    ("hourhour", -3.005682604407159),+                                    ("hourminute", -3.5165082281731497),+                                    ("absorption of , after named day<named-month> <day-of-month>",+                                     -1.9070703157390494),+                                    ("dayminute", -3.5165082281731497),+                                    ("tonight<time-of-day> o'clock", -3.005682604407159),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("yearday", -1.5705980791178364)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0388930539664873,+                               unseen = -4.1588830833596715,+                               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),+                                    ("<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),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.044522437723423),+                                    ("absorption of , after named dayFebruary",+                                     -2.063693184711697)],+                               n = 23}}),+       ("year (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}}),+       ("Saturday",+        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}}),+       ("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,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8602012652231115),+                                    ("week (grain)", -0.8602012652231115)],+                               n = 10}}),+       ("last 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}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.7323678937132265),+                                    ("Tuesday", -1.5533484457830569)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("mm/dd/yyyy",+        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}}),+       ("evening|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}}),+       ("Monday",+        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}}),+       ("yesterday",+        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}}),+       ("next 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}}),+       ("hh:mm (time-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}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.2809338454620642),+                                    ("integer (0..10)", -0.325422400434628)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -2.2192034840549946),+                                    ("integer (0..10)", -0.11506932978478723)],+                               n = 44}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)Monday", -1.3350010667323402),+                                    ("monthday", -0.7472144018302211),+                                    ("month (numeric with month symbol)ordinal (digits)Monday",+                                     -1.3350010667323402)],+                               n = 8},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0296194171811581),+                                    ("integer (0..10)", -0.4418327522790392)],+                               n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],+                               n = 6}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8434293836092833,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -0.5625269981428811,+                               unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),+       ("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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("Friday",+        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}}),+       ("tomorrow",+        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 year",+        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 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.3437347467010947),+                                    ("day", -0.7375989431307791), ("Tuesday", -1.3437347467010947)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.916290731874155),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -0.916290731874155),+                                    ("year", -2.3025850929940455)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.7339691750802004),+                                    ("week (grain)", -0.7339691750802004)],+                               n = 23}}),+       ("minute (grain)",+        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}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9889840465642745,+                               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},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),+                                    ("hourhour", -1.1631508098056809),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -2.0794415416798357),+                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),+                                    ("hourminute", -1.9252908618525775),+                                    ("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},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -1.2039728043259361),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -1.8971199848858813),+                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),+                                    ("hourminute", -1.8971199848858813),+                                    ("afternoon<integer> (latent time-of-day)",+                                     -1.742969305058623)],+                               n = 16}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.877735781779639,+                               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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm (time-of-day)", -1.252762968495368),+                                    ("<integer> (latent time-of-day)", -1.540445040947149),+                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (11..19)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (0..10)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5}}),+       ("army'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}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sunday<named-month> <day-of-month>", -0.7576857016975165),+                                    ("dayday", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("SundayFebruary", -0.8109302162163288)],+                               n = 7}}),+       ("second (grain)",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("last <time>",+        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}}),+       ("March",+        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}}),+       ("the day after tomorrow",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.784189633918261,+                               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}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8362480242006186),+                                    ("week (grain)", -0.8362480242006186)],+                               n = 12}}),+       ("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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.59511985013459,+                               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)],+                               n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tuesday",+        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}}),+       ("children'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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.8283137373023015,+                               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 (numeric)",+                                     -2.1122313645028266),+                                    ("Februaryinteger (0..10)", -2.740840023925201),+                                    ("month", -0.7427441216993174),+                                    ("month (numeric with month symbol)integer (0..10)",+                                     -2.1122313645028266)],+                               n = 58},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        Classifier{okData =+                     ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},+                   koData =+                     ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.61512051684126,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               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)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("labor 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}}),+       ("women'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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.9980959022258835),+                                    ("Monday", -1.9980959022258835), ("day", -0.8586616190375187),+                                    ("hour", -2.9789251552376097), ("Tuesday", -1.6796421711073488),+                                    ("week-end", -2.9789251552376097)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9985288301111273),+                                    ("hour", -0.9985288301111273)],+                               n = 6}})]
+ Duckling/Ranking/Classifiers/ZH_MO.hs view
@@ -0,0 +1,879 @@+-- 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.ZH_MO (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},+                   koData =+                     ClassData{prior = -0.9295359586241757,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("the day before yesterday",+        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}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Sunday", -0.6931471805599453)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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}}),+       ("October",+        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}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5}}),+       ("national 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}}),+       ("Wednesday",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("children's day<part-of-day> <dim time>", -3.5165082281731497),+                                    ("year (numeric with year symbol)<named-month> <day-of-month>",+                                     -1.5705980791178364),+                                    ("dayday", -1.9070703157390494),+                                    ("hourhour", -3.005682604407159),+                                    ("hourminute", -3.5165082281731497),+                                    ("absorption of , after named day<named-month> <day-of-month>",+                                     -1.9070703157390494),+                                    ("dayminute", -3.5165082281731497),+                                    ("tonight<time-of-day> o'clock", -3.005682604407159),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("yearday", -1.5705980791178364)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0388930539664873,+                               unseen = -4.1588830833596715,+                               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),+                                    ("<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),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.044522437723423),+                                    ("absorption of , after named dayFebruary",+                                     -2.063693184711697)],+                               n = 23}}),+       ("year (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}}),+       ("Saturday",+        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}}),+       ("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,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8602012652231115),+                                    ("week (grain)", -0.8602012652231115)],+                               n = 10}}),+       ("last 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}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.7323678937132265),+                                    ("Tuesday", -1.5533484457830569)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("mm/dd/yyyy",+        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}}),+       ("evening|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}}),+       ("Monday",+        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}}),+       ("yesterday",+        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}}),+       ("next 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}}),+       ("hh:mm (time-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}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.2809338454620642),+                                    ("integer (0..10)", -0.325422400434628)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -2.2192034840549946),+                                    ("integer (0..10)", -0.11506932978478723)],+                               n = 44}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)Monday", -1.3350010667323402),+                                    ("monthday", -0.7472144018302211),+                                    ("month (numeric with month symbol)ordinal (digits)Monday",+                                     -1.3350010667323402)],+                               n = 8},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0296194171811581),+                                    ("integer (0..10)", -0.4418327522790392)],+                               n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],+                               n = 6}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8434293836092833,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -0.5625269981428811,+                               unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),+       ("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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("Friday",+        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}}),+       ("tomorrow",+        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 year",+        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 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.3437347467010947),+                                    ("day", -0.7375989431307791), ("Tuesday", -1.3437347467010947)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.916290731874155),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -0.916290731874155),+                                    ("year", -2.3025850929940455)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.7339691750802004),+                                    ("week (grain)", -0.7339691750802004)],+                               n = 23}}),+       ("minute (grain)",+        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}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9889840465642745,+                               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},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),+                                    ("hourhour", -1.1631508098056809),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -2.0794415416798357),+                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),+                                    ("hourminute", -1.9252908618525775),+                                    ("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},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -1.2039728043259361),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -1.8971199848858813),+                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),+                                    ("hourminute", -1.8971199848858813),+                                    ("afternoon<integer> (latent time-of-day)",+                                     -1.742969305058623)],+                               n = 16}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.877735781779639,+                               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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm (time-of-day)", -1.252762968495368),+                                    ("<integer> (latent time-of-day)", -1.540445040947149),+                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (11..19)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (0..10)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5}}),+       ("army'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}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sunday<named-month> <day-of-month>", -0.7576857016975165),+                                    ("dayday", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("SundayFebruary", -0.8109302162163288)],+                               n = 7}}),+       ("second (grain)",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("last <time>",+        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}}),+       ("March",+        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}}),+       ("the day after tomorrow",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.784189633918261,+                               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}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8362480242006186),+                                    ("week (grain)", -0.8362480242006186)],+                               n = 12}}),+       ("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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.59511985013459,+                               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)],+                               n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tuesday",+        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}}),+       ("children'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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.8283137373023015,+                               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 (numeric)",+                                     -2.1122313645028266),+                                    ("Februaryinteger (0..10)", -2.740840023925201),+                                    ("month", -0.7427441216993174),+                                    ("month (numeric with month symbol)integer (0..10)",+                                     -2.1122313645028266)],+                               n = 58},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        Classifier{okData =+                     ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},+                   koData =+                     ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.61512051684126,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               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)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("labor 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}}),+       ("women'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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.9980959022258835),+                                    ("Monday", -1.9980959022258835), ("day", -0.8586616190375187),+                                    ("hour", -2.9789251552376097), ("Tuesday", -1.6796421711073488),+                                    ("week-end", -2.9789251552376097)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9985288301111273),+                                    ("hour", -0.9985288301111273)],+                               n = 6}})]
+ Duckling/Ranking/Classifiers/ZH_TW.hs view
@@ -0,0 +1,879 @@+-- 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.ZH_TW (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},+                   koData =+                     ClassData{prior = -0.9295359586241757,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("the day before yesterday",+        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}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Sunday", -0.6931471805599453)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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}}),+       ("October",+        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}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5}}),+       ("national 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}}),+       ("Wednesday",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("children's day<part-of-day> <dim time>", -3.5165082281731497),+                                    ("year (numeric with year symbol)<named-month> <day-of-month>",+                                     -1.5705980791178364),+                                    ("dayday", -1.9070703157390494),+                                    ("hourhour", -3.005682604407159),+                                    ("hourminute", -3.5165082281731497),+                                    ("absorption of , after named day<named-month> <day-of-month>",+                                     -1.9070703157390494),+                                    ("dayminute", -3.5165082281731497),+                                    ("tonight<time-of-day> o'clock", -3.005682604407159),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("yearday", -1.5705980791178364)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0388930539664873,+                               unseen = -4.1588830833596715,+                               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),+                                    ("<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),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.044522437723423),+                                    ("absorption of , after named dayFebruary",+                                     -2.063693184711697)],+                               n = 23}}),+       ("year (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}}),+       ("Saturday",+        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}}),+       ("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,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8602012652231115),+                                    ("week (grain)", -0.8602012652231115)],+                               n = 10}}),+       ("last 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}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.7323678937132265),+                                    ("Tuesday", -1.5533484457830569)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("mm/dd/yyyy",+        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}}),+       ("evening|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}}),+       ("Monday",+        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}}),+       ("yesterday",+        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}}),+       ("next 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}}),+       ("hh:mm (time-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}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.2809338454620642),+                                    ("integer (0..10)", -0.325422400434628)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -2.2192034840549946),+                                    ("integer (0..10)", -0.11506932978478723)],+                               n = 44}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)Monday", -1.3350010667323402),+                                    ("monthday", -0.7472144018302211),+                                    ("month (numeric with month symbol)ordinal (digits)Monday",+                                     -1.3350010667323402)],+                               n = 8},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0296194171811581),+                                    ("integer (0..10)", -0.4418327522790392)],+                               n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],+                               n = 6}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8434293836092833,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -0.5625269981428811,+                               unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),+       ("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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("Friday",+        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}}),+       ("tomorrow",+        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 year",+        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 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.3437347467010947),+                                    ("day", -0.7375989431307791), ("Tuesday", -1.3437347467010947)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.916290731874155),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -0.916290731874155),+                                    ("year", -2.3025850929940455)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.7339691750802004),+                                    ("week (grain)", -0.7339691750802004)],+                               n = 23}}),+       ("minute (grain)",+        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}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.9889840465642745,+                               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},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),+                                    ("hourhour", -1.1631508098056809),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -2.0794415416798357),+                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),+                                    ("hourminute", -1.9252908618525775),+                                    ("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},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -1.2039728043259361),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -1.8971199848858813),+                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),+                                    ("hourminute", -1.8971199848858813),+                                    ("afternoon<integer> (latent time-of-day)",+                                     -1.742969305058623)],+                               n = 16}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.877735781779639,+                               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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm (time-of-day)", -1.252762968495368),+                                    ("<integer> (latent time-of-day)", -1.540445040947149),+                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (11..19)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (0..10)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5}}),+       ("army'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}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sunday<named-month> <day-of-month>", -0.7576857016975165),+                                    ("dayday", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("SundayFebruary", -0.8109302162163288)],+                               n = 7}}),+       ("second (grain)",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("last <time>",+        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}}),+       ("March",+        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}}),+       ("the day after tomorrow",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.784189633918261,+                               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}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8362480242006186),+                                    ("week (grain)", -0.8362480242006186)],+                               n = 12}}),+       ("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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.59511985013459,+                               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)],+                               n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tuesday",+        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}}),+       ("children'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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.8283137373023015,+                               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 (numeric)",+                                     -2.1122313645028266),+                                    ("Februaryinteger (0..10)", -2.740840023925201),+                                    ("month", -0.7427441216993174),+                                    ("month (numeric with month symbol)integer (0..10)",+                                     -2.1122313645028266)],+                               n = 58},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        Classifier{okData =+                     ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},+                   koData =+                     ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.61512051684126,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               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)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("labor 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}}),+       ("women'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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.9980959022258835),+                                    ("Monday", -1.9980959022258835), ("day", -0.8586616190375187),+                                    ("hour", -2.9789251552376097), ("Tuesday", -1.6796421711073488),+                                    ("week-end", -2.9789251552376097)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9985288301111273),+                                    ("hour", -0.9985288301111273)],+                               n = 6}})]
+ Duckling/Ranking/Classifiers/ZH_XX.hs view
@@ -0,0 +1,864 @@+-- 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.ZH_XX (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> am|pm", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thursday",+        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}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5020919437972361, unseen = -3.871201010907891,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 46},+                   koData =+                     ClassData{prior = -0.9295359586241757,+                               unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30}}),+       ("the day before yesterday",+        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}}),+       ("today",+        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",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2231435513142097, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.6931471805599453), ("Sunday", -0.6931471805599453)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               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}}),+       ("October",+        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}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -0.4700036292457356,+                               unseen = -3.7376696182833684,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 40}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = -0.4418327522790392, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 9},+                   koData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5}}),+       ("Wednesday",+        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}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.4367176516122688, unseen = -4.624972813284271,+                               likelihoods =+                                 HashMap.fromList+                                   [("children's day<part-of-day> <dim time>", -3.5165082281731497),+                                    ("year (numeric with year symbol)<named-month> <day-of-month>",+                                     -1.5705980791178364),+                                    ("dayday", -1.9070703157390494),+                                    ("hourhour", -3.005682604407159),+                                    ("hourminute", -3.5165082281731497),+                                    ("absorption of , after named day<named-month> <day-of-month>",+                                     -1.9070703157390494),+                                    ("dayminute", -3.5165082281731497),+                                    ("tonight<time-of-day> o'clock", -3.005682604407159),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.5165082281731497),+                                    ("yearday", -1.5705980791178364)],+                               n = 42},+                   koData =+                     ClassData{prior = -1.0388930539664873,+                               unseen = -4.1588830833596715,+                               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),+                                    ("<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),+                                    ("<dim time> <part-of-day>relative minutes after|past <integer> (hour-of-day)",+                                     -3.044522437723423),+                                    ("absorption of , after named dayFebruary",+                                     -2.063693184711697)],+                               n = 23}}),+       ("year (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}}),+       ("Saturday",+        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}}),+       ("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,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6418538861723948, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8602012652231115),+                                    ("week (grain)", -0.8602012652231115)],+                               n = 10}}),+       ("last 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}}),+       ("this <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.8718021769015913),+                                    ("Monday", -1.8718021769015913), ("day", -0.7323678937132265),+                                    ("Tuesday", -1.5533484457830569)],+                               n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               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}}),+       ("mm/dd/yyyy",+        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.0, unseen = -3.258096538021482,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 24},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yesterday",+        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}}),+       ("next 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}}),+       ("hh:mm (time-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}}),+       ("<integer> (latent time-of-day)",+        Classifier{okData =+                     ClassData{prior = -1.3217558399823195,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.2809338454620642),+                                    ("integer (0..10)", -0.325422400434628)],+                               n = 16},+                   koData =+                     ClassData{prior = -0.3101549283038396,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -2.2192034840549946),+                                    ("integer (0..10)", -0.11506932978478723)],+                               n = 44}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)Monday", -1.3350010667323402),+                                    ("monthday", -0.7472144018302211),+                                    ("month (numeric with month symbol)ordinal (digits)Monday",+                                     -1.3350010667323402)],+                               n = 8},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.0296194171811581),+                                    ("integer (0..10)", -0.4418327522790392)],+                               n = 40},+                   koData =+                     ClassData{prior = -2.03688192726104, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList [("integer (0..10)", -0.13353139262452263)],+                               n = 6}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -0.8434293836092833,+                               unseen = -3.6635616461296463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},+                   koData =+                     ClassData{prior = -0.5625269981428811,+                               unseen = -3.9318256327243257,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 49}}),+       ("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}}),+       ("year (numeric with year symbol)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.772588722239781,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 14},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        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}}),+       ("numbers prefix with -, negative or minus",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 4}}),+       ("Friday",+        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}}),+       ("tomorrow",+        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 year",+        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 <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.3437347467010947),+                                    ("day", -0.7375989431307791), ("Tuesday", -1.3437347467010947)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("afternoon",+        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}}),+       ("<duration> from now",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("this <cycle>",+        Classifier{okData =+                     ClassData{prior = -1.0185695809945732,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.916290731874155),+                                    ("year (grain)", -2.3025850929940455),+                                    ("week (grain)", -0.916290731874155),+                                    ("year", -2.3025850929940455)],+                               n = 13},+                   koData =+                     ClassData{prior = -0.4480247225269604,+                               unseen = -3.9318256327243257,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.7339691750802004),+                                    ("week (grain)", -0.7339691750802004)],+                               n = 23}}),+       ("minute (grain)",+        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}}),+       ("<dim time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -0.7357067949787413),+                                    ("<named-month> <day-of-month>morning", -1.3062516534463542),+                                    ("children's dayafternoon", -2.772588722239781),+                                    ("Mondaymorning", -1.6739764335716716)],+                               n = 22},+                   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,+                               likelihoods =+                                 HashMap.fromList+                                   [("tonight<integer> (latent time-of-day)", -2.2617630984737906),+                                    ("hourhour", -1.1631508098056809),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -2.0794415416798357),+                                    ("afternoon<time-of-day> o'clock", -2.4849066497880004),+                                    ("hourminute", -1.9252908618525775),+                                    ("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},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -3.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourhour", -1.2039728043259361),+                                    ("afternoonrelative minutes after|past <integer> (hour-of-day)",+                                     -1.8971199848858813),+                                    ("afternoon<time-of-day> o'clock", -1.8971199848858813),+                                    ("hourminute", -1.8971199848858813),+                                    ("afternoon<integer> (latent time-of-day)",+                                     -1.742969305058623)],+                               n = 16}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -5.877735781779639,+                               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}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mm (time-of-day)", -1.252762968495368),+                                    ("<integer> (latent time-of-day)", -1.540445040947149),+                                    ("hour", -1.540445040947149), ("minute", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 3}}),+       ("relative minutes after|past <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (11..19)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)integer (0..10)",+                                     -0.7731898882334817),+                                    ("hour", -0.7731898882334817)],+                               n = 5}}),+       ("army'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}}),+       ("intersect by \",\"",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Sunday<named-month> <day-of-month>", -0.7576857016975165),+                                    ("dayday", -0.7576857016975165)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.8109302162163288),+                                    ("SundayFebruary", -0.8109302162163288)],+                               n = 7}}),+       ("second (grain)",+        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}}),+       ("<duration> ago",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.891820298110627,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.2617630984737906), ("second", -2.772588722239781),+                                    ("day", -2.2617630984737906), ("year", -2.772588722239781),+                                    ("<integer> <unit-of-duration>", -0.8266785731844679),+                                    ("hour", -2.2617630984737906), ("month", -2.772588722239781),+                                    ("minute", -2.772588722239781)],+                               n = 20}}),+       ("last <time>",+        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}}),+       ("March",+        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}}),+       ("the day after tomorrow",+        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}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = -1.5260563034950494, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.041453874828161), ("Tuesday", -1.041453874828161)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.24512245803298496,+                               unseen = -3.784189633918261,+                               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}}),+       ("last <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.3862943611198906),+                                    ("month (grain)", -1.791759469228055),+                                    ("year (grain)", -2.4849066497880004),+                                    ("week (grain)", -1.3862943611198906),+                                    ("year", -2.4849066497880004), ("month", -1.791759469228055)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.5596157879354228,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -0.8362480242006186),+                                    ("week (grain)", -0.8362480242006186)],+                               n = 12}}),+       ("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.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.59511985013459,+                               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)],+                               n = 42},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tuesday",+        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}}),+       ("children'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}}),+       ("<named-month> <day-of-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.8283137373023015,+                               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 (numeric)",+                                     -2.1122313645028266),+                                    ("Februaryinteger (0..10)", -2.740840023925201),+                                    ("month", -0.7427441216993174),+                                    ("month (numeric with month symbol)integer (0..10)",+                                     -2.1122313645028266)],+                               n = 58},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (0..10)",+        Classifier{okData =+                     ClassData{prior = -0.4540728071735412, unseen = -5.170483995038151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 174},+                   koData =+                     ClassData{prior = -1.007957920399979, unseen = -4.624972813284271,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 100}}),+       ("last n <cycle>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.61512051684126,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               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},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("n <cycle> last",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.007333185232471,+                               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)],+                               n = 20},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("week-end",+        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 (grain)",+        Classifier{okData =+                     ClassData{prior = -6.453852113757118e-2,+                               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}}),+       ("labor 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}}),+       ("women'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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445, unseen = -4.0943445622221,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday", -1.9980959022258835),+                                    ("Monday", -1.9980959022258835), ("day", -0.8586616190375187),+                                    ("hour", -2.9789251552376097), ("Tuesday", -1.6796421711073488),+                                    ("week-end", -2.9789251552376097)],+                               n = 26},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> (latent time-of-day)", -0.9985288301111273),+                                    ("hour", -0.9985288301111273)],+                               n = 6}})]
Duckling/Resolve.hs view
@@ -22,7 +22,7 @@ import qualified Data.Time as Time import qualified Data.Time.LocalTime.TimeZone.Series as Series -import Duckling.Lang+import Duckling.Locale  -- | Internal time reference. -- We work as if we were in UTC time and use `ZoneSeriesTime` to house the info.@@ -32,7 +32,7 @@  data Context = Context   { referenceTime :: DucklingTime-  , lang :: Lang+  , locale :: Locale   }   deriving (Eq, Show) 
Duckling/Rules.hs view
@@ -20,9 +20,11 @@  import Duckling.Dimensions import Duckling.Dimensions.Types-import Duckling.Lang+import Duckling.Locale+import Duckling.Types import qualified Duckling.Rules.AR as ARRules import qualified Duckling.Rules.Common as CommonRules+import qualified Duckling.Rules.BG as BGRules import qualified Duckling.Rules.CS as CSRules import qualified Duckling.Rules.DA as DARules import qualified Duckling.Rules.DE as DERules@@ -33,9 +35,11 @@ import qualified Duckling.Rules.GA as GARules import qualified Duckling.Rules.HE as HERules import qualified Duckling.Rules.HR as HRRules+import qualified Duckling.Rules.HU as HURules import qualified Duckling.Rules.ID as IDRules import qualified Duckling.Rules.IT as ITRules import qualified Duckling.Rules.JA as JARules+import qualified Duckling.Rules.KA as KARules import qualified Duckling.Rules.KO as KORules import qualified Duckling.Rules.MY as MYRules import qualified Duckling.Rules.NB as NBRules@@ -49,49 +53,119 @@ import qualified Duckling.Rules.UK as UKRules import qualified Duckling.Rules.VI as VIRules import qualified Duckling.Rules.ZH as ZHRules-import Duckling.Types  -- | Returns the minimal set of rules required for `targets`.-rulesFor :: Lang -> HashSet (Some Dimension) -> [Rule]-rulesFor lang targets-  | HashSet.null targets = allRules lang+rulesFor :: Locale -> HashSet (Some Dimension) -> [Rule]+rulesFor locale targets+  | HashSet.null targets = allRules locale   | otherwise = [ rules | dims <- HashSet.toList $ explicitDimensions targets-                        , rules <- rulesFor' lang dims ]+                        , rules <- rulesFor' locale dims ] --- | Returns all the rules for `lang`.+-- | Returns all the rules for the provided locale. -- We can't really use `allDimensions` as-is, since `TimeGrain` is not present.-allRules :: Lang -> [Rule]-allRules lang = concatMap (rulesFor' lang) . HashSet.toList .-  explicitDimensions . HashSet.fromList $ allDimensions lang+allRules :: Locale -> [Rule]+allRules locale@(Locale lang _) = concatMap (rulesFor' locale) . HashSet.toList+  . explicitDimensions . HashSet.fromList $ allDimensions lang -rulesFor' :: Lang -> Some Dimension -> [Rule]-rulesFor' lang dim = CommonRules.rules dim ++ langRules lang dim+rulesFor' :: Locale -> Some Dimension -> [Rule]+rulesFor' (Locale lang (Just region)) dim =+  CommonRules.rules dim ++ langRules lang dim ++ localeRules lang region dim+rulesFor' (Locale lang Nothing) dim =+  CommonRules.rules dim ++ defaultRules lang dim +-- | Default rules when no locale, for backward compatibility.+defaultRules :: Lang -> Some Dimension -> [Rule]+defaultRules AR = ARRules.defaultRules+defaultRules BG = BGRules.defaultRules+defaultRules CS = CSRules.defaultRules+defaultRules DA = DARules.defaultRules+defaultRules DE = DERules.defaultRules+defaultRules EN = ENRules.defaultRules+defaultRules ES = ESRules.defaultRules+defaultRules ET = ETRules.defaultRules+defaultRules FR = FRRules.defaultRules+defaultRules GA = GARules.defaultRules+defaultRules HE = HERules.defaultRules+defaultRules HR = HRRules.defaultRules+defaultRules HU = HURules.defaultRules+defaultRules ID = IDRules.defaultRules+defaultRules IT = ITRules.defaultRules+defaultRules JA = JARules.defaultRules+defaultRules KA = KARules.defaultRules+defaultRules KO = KORules.defaultRules+defaultRules MY = MYRules.defaultRules+defaultRules NB = NBRules.defaultRules+defaultRules NL = NLRules.defaultRules+defaultRules PL = PLRules.defaultRules+defaultRules PT = PTRules.defaultRules+defaultRules RO = RORules.defaultRules+defaultRules RU = RURules.defaultRules+defaultRules SV = SVRules.defaultRules+defaultRules TR = TRRules.defaultRules+defaultRules UK = UKRules.defaultRules+defaultRules VI = VIRules.defaultRules+defaultRules ZH = ZHRules.defaultRules++localeRules :: Lang -> Region -> Some Dimension -> [Rule]+localeRules AR = ARRules.localeRules+localeRules BG = BGRules.localeRules+localeRules CS = CSRules.localeRules+localeRules DA = DARules.localeRules+localeRules DE = DERules.localeRules+localeRules EN = ENRules.localeRules+localeRules ES = ESRules.localeRules+localeRules ET = ETRules.localeRules+localeRules FR = FRRules.localeRules+localeRules GA = GARules.localeRules+localeRules HE = HERules.localeRules+localeRules HR = HRRules.localeRules+localeRules HU = HURules.localeRules+localeRules ID = IDRules.localeRules+localeRules IT = ITRules.localeRules+localeRules JA = JARules.localeRules+localeRules KA = KARules.localeRules+localeRules KO = KORules.localeRules+localeRules MY = MYRules.localeRules+localeRules NB = NBRules.localeRules+localeRules NL = NLRules.localeRules+localeRules PL = PLRules.localeRules+localeRules PT = PTRules.localeRules+localeRules RO = RORules.localeRules+localeRules RU = RURules.localeRules+localeRules SV = SVRules.localeRules+localeRules TR = TRRules.localeRules+localeRules UK = UKRules.localeRules+localeRules VI = VIRules.localeRules+localeRules ZH = ZHRules.localeRules+ langRules :: Lang -> Some Dimension -> [Rule]-langRules AR = ARRules.rules-langRules CS = CSRules.rules-langRules DA = DARules.rules-langRules DE = DERules.rules-langRules EN = ENRules.rules-langRules ES = ESRules.rules-langRules ET = ETRules.rules-langRules FR = FRRules.rules-langRules GA = GARules.rules-langRules HE = HERules.rules-langRules HR = HRRules.rules-langRules ID = IDRules.rules-langRules IT = ITRules.rules-langRules JA = JARules.rules-langRules KO = KORules.rules-langRules MY = MYRules.rules-langRules NB = NBRules.rules-langRules NL = NLRules.rules-langRules PL = PLRules.rules-langRules PT = PTRules.rules-langRules RO = RORules.rules-langRules RU = RURules.rules-langRules SV = SVRules.rules-langRules TR = TRRules.rules-langRules UK = UKRules.rules-langRules VI = VIRules.rules-langRules ZH = ZHRules.rules+langRules AR = ARRules.langRules+langRules BG = BGRules.langRules+langRules CS = CSRules.langRules+langRules DA = DARules.langRules+langRules DE = DERules.langRules+langRules EN = ENRules.langRules+langRules ES = ESRules.langRules+langRules ET = ETRules.langRules+langRules FR = FRRules.langRules+langRules GA = GARules.langRules+langRules HE = HERules.langRules+langRules HR = HRRules.langRules+langRules HU = HURules.langRules+langRules ID = IDRules.langRules+langRules IT = ITRules.langRules+langRules JA = JARules.langRules+langRules KA = KARules.langRules+langRules KO = KORules.langRules+langRules MY = MYRules.langRules+langRules NB = NBRules.langRules+langRules NL = NLRules.langRules+langRules PL = PLRules.langRules+langRules PT = PTRules.langRules+langRules RO = RORules.langRules+langRules RU = RURules.langRules+langRules SV = SVRules.langRules+langRules TR = TRRules.langRules+langRules UK = UKRules.langRules+langRules VI = VIRules.langRules+langRules ZH = ZHRules.langRules
Duckling/Rules/AR.hs view
@@ -10,26 +10,35 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.AR-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.AR.Rules as Numeral import qualified Duckling.Ordinal.AR.Rules as Ordinal-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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 Url) = []+langRules (This Volume) = []
+ Duckling/Rules/BG.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 #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Rules.BG+  ( defaultRules+  , langRules+  , localeRules+  ) where++import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types+import qualified Duckling.Numeral.BG.Rules as Numeral+import qualified Duckling.AmountOfMoney.BG.Rules as AmountOfMoney++defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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) = []
Duckling/Rules/CS.hs view
@@ -10,26 +10,35 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.CS-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Types import qualified Duckling.Distance.CS.Rules as Distance import qualified Duckling.Numeral.CS.Rules as Numeral -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = []-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = Distance.rules+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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) = []
Duckling/Rules/Common.hs view
@@ -14,22 +14,22 @@   ) where  import Duckling.Dimensions.Types+import Duckling.Types+import qualified Duckling.AmountOfMoney.Rules as AmountOfMoney import qualified Duckling.Distance.Rules as Distance import qualified Duckling.Duration.Rules as Duration import qualified Duckling.Email.Rules as Email-import qualified Duckling.AmountOfMoney.Rules as AmountOfMoney import qualified Duckling.PhoneNumber.Rules as PhoneNumber import qualified Duckling.Temperature.Rules as Temperature-import Duckling.Types import qualified Duckling.Url.Rules as Url import qualified Duckling.Volume.Rules as Volume  rules :: Some Dimension -> [Rule]+rules (This AmountOfMoney) = AmountOfMoney.rules rules (This Distance) = Distance.rules rules (This Duration) = Duration.rules-rules (This Numeral) = [] rules (This Email) = Email.rules-rules (This AmountOfMoney) = AmountOfMoney.rules+rules (This Numeral) = [] rules (This Ordinal) = [] rules (This PhoneNumber) = PhoneNumber.rules rules (This Quantity) = []
Duckling/Rules/DA.hs view
@@ -10,29 +10,38 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.DA-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Duration.DA.Rules as Duration import qualified Duckling.Numeral.DA.Rules as Numeral import qualified Duckling.Ordinal.DA.Rules as Ordinal import qualified Duckling.Time.DA.Rules as Time import qualified Duckling.TimeGrain.DA.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/DE.hs view
@@ -10,29 +10,38 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.DE-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Duration.DE.Rules as Duration import qualified Duckling.Ordinal.DE.Rules as Ordinal import qualified Duckling.Numeral.DE.Rules as Numeral import qualified Duckling.Time.DE.Rules as Time import qualified Duckling.TimeGrain.DE.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/EN.hs view
@@ -10,10 +10,16 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.EN-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where +import Prelude+ import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.EN.Rules as AmountOfMoney import qualified Duckling.Distance.EN.Rules as Distance import qualified Duckling.Duration.EN.Rules as Duration@@ -23,22 +29,38 @@ import qualified Duckling.Quantity.EN.Rules as Quantity import qualified Duckling.Temperature.EN.Rules as Temperature import qualified Duckling.Time.EN.Rules as Time+import qualified Duckling.Time.EN.CA.Rules as TimeCA+import qualified Duckling.Time.EN.GB.Rules as TimeGB+import qualified Duckling.Time.EN.US.Rules as TimeUS import qualified Duckling.TimeGrain.EN.Rules as TimeGrain-import Duckling.Types import qualified Duckling.Volume.EN.Rules as Volume -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = Email.rules-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules dim@(This Time) =+  [ TimeUS.ruleMMDD+  , TimeUS.ruleMMDDYYYY+  , TimeUS.ruleThanksgiving+  ] ++ langRules dim+defaultRules dim = langRules dim++localeRules :: Region -> Some Dimension -> [Rule]+localeRules CA (This Time) = TimeCA.rules+localeRules GB (This Time) = TimeGB.rules+localeRules US (This Time) = TimeUS.rules+localeRules _ _            = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = Email.rules+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/ES.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.ES-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.ES.Rules as AmountOfMoney import qualified Duckling.Distance.ES.Rules as Distance import qualified Duckling.Numeral.ES.Rules as Numeral@@ -22,20 +26,25 @@ import qualified Duckling.Time.ES.Rules as Time import qualified Duckling.TimeGrain.ES.Rules as TimeGrain import qualified Duckling.Volume.ES.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/ET.hs view
@@ -10,26 +10,35 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.ET-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.ET.Rules as Numeral import qualified Duckling.Ordinal.ET.Rules as Ordinal-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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 Url) = []+langRules (This Volume) = []
Duckling/Rules/FR.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.FR-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.FR.Rules as AmountOfMoney import qualified Duckling.Distance.FR.Rules as Distance import qualified Duckling.Duration.FR.Rules as Duration@@ -25,20 +29,25 @@ import qualified Duckling.Time.FR.Rules as Time import qualified Duckling.TimeGrain.FR.Rules as TimeGrain import qualified Duckling.Volume.FR.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = Email.rules-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = Email.rules+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/GA.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.GA-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.GA.Rules as AmountOfMoney import qualified Duckling.Distance.GA.Rules as Distance import qualified Duckling.Duration.GA.Rules as Duration@@ -23,20 +27,25 @@ import qualified Duckling.Time.GA.Rules as Time import qualified Duckling.TimeGrain.GA.Rules as TimeGrain import qualified Duckling.Volume.GA.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/HE.hs view
@@ -10,10 +10,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.HE-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Types import qualified Duckling.Duration.HE.Rules as Duration import qualified Duckling.Numeral.HE.Rules as Numeral@@ -21,18 +24,24 @@ import qualified Duckling.TimeGrain.HE.Rules as TimeGrain import qualified Duckling.Time.HE.Rules as Time -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/HR.hs view
@@ -10,10 +10,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.HR-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Types import qualified Duckling.AmountOfMoney.HR.Rules as AmountOfMoney import qualified Duckling.Distance.HR.Rules as Distance@@ -26,18 +29,25 @@ import qualified Duckling.TimeGrain.HR.Rules as TimeGrain import qualified Duckling.Volume.HR.Rules as Volume -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules++defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
+ Duckling/Rules/HU.hs view
@@ -0,0 +1,47 @@+-- 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.Rules.HU+  ( defaultRules+  , langRules+  , localeRules+  ) where++import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types+import qualified Duckling.Duration.HU.Rules as Duration+import qualified Duckling.Numeral.HU.Rules as Numeral+import qualified Duckling.Ordinal.HU.Rules as Ordinal+import qualified Duckling.Time.HU.Rules as Time+import qualified Duckling.TimeGrain.HU.Rules as TimeGrain++defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/ID.hs view
@@ -10,27 +10,36 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.ID-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where -import qualified Duckling.AmountOfMoney.ID.Rules as AmountOfMoney import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types+import qualified Duckling.AmountOfMoney.ID.Rules as AmountOfMoney import qualified Duckling.Numeral.ID.Rules as Numeral import qualified Duckling.Ordinal.ID.Rules as Ordinal-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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 Url) = []+langRules (This Volume) = []
Duckling/Rules/IT.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.IT-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Duration.IT.Rules as Duration import qualified Duckling.Email.IT.Rules as Email import qualified Duckling.Numeral.IT.Rules as Numeral@@ -22,20 +26,25 @@ import qualified Duckling.Time.IT.Rules as Time import qualified Duckling.TimeGrain.IT.Rules as TimeGrain import qualified Duckling.Volume.IT.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = Email.rules-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = Email.rules+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/JA.hs view
@@ -10,28 +10,37 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.JA-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.JA.Rules as Numeral import qualified Duckling.Ordinal.JA.Rules as Ordinal import qualified Duckling.Temperature.JA.Rules as Temperature import qualified Duckling.TimeGrain.JA.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = []-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = []+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
+ Duckling/Rules/KA.hs view
@@ -0,0 +1,43 @@+-- 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.Rules.KA+  ( defaultRules+  , langRules+  , localeRules+  ) where++import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types+import qualified Duckling.Numeral.KA.Rules as Numeral++defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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) = []
Duckling/Rules/KO.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.KO-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.KO.Rules as AmountOfMoney import qualified Duckling.Distance.KO.Rules as Distance import qualified Duckling.Duration.KO.Rules as Duration@@ -23,21 +27,26 @@ import qualified Duckling.Temperature.KO.Rules as Temperature import qualified Duckling.Time.KO.Rules as Time import qualified Duckling.TimeGrain.KO.Rules as TimeGrain-import Duckling.Types import qualified Duckling.Volume.KO.Rules as Volume -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/MY.hs view
@@ -10,25 +10,34 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.MY-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types-import qualified Duckling.Numeral.MY.Rules as Numeral+import Duckling.Locale import Duckling.Types+import qualified Duckling.Numeral.MY.Rules as Numeral -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = []-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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) = []
Duckling/Rules/NB.hs view
@@ -10,30 +10,39 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.NB-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.NB.Rules as AmountOfMoney import qualified Duckling.Duration.NB.Rules as Duration import qualified Duckling.Numeral.NB.Rules as Numeral import qualified Duckling.Ordinal.NB.Rules as Ordinal import qualified Duckling.Time.NB.Rules as Time import qualified Duckling.TimeGrain.NB.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/NL.hs view
@@ -10,28 +10,39 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.NL-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Distance.NL.Rules as Distance+import qualified Duckling.Duration.NL.Rules as Duration import qualified Duckling.Numeral.NL.Rules as Numeral import qualified Duckling.Ordinal.NL.Rules as Ordinal+import qualified Duckling.TimeGrain.NL.Rules as TimeGrain import qualified Duckling.Volume.NL.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = []+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/PL.hs view
@@ -10,29 +10,38 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.PL-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Duration.PL.Rules as Duration import qualified Duckling.Numeral.PL.Rules as Numeral import qualified Duckling.Ordinal.PL.Rules as Ordinal import qualified Duckling.Time.PL.Rules as Time import qualified Duckling.TimeGrain.PL.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/PT.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.PT-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.PT.Rules as AmountOfMoney import qualified Duckling.Distance.PT.Rules as Distance import qualified Duckling.Numeral.PT.Rules as Numeral@@ -23,21 +27,26 @@ import qualified Duckling.Temperature.PT.Rules as Temperature import qualified Duckling.Time.PT.Rules as Time import qualified Duckling.TimeGrain.PT.Rules as TimeGrain-import Duckling.Types import qualified Duckling.Volume.PT.Rules as Volume -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = PhoneNumber.rules-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = PhoneNumber.rules+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/RO.hs view
@@ -10,10 +10,14 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.RO-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.RO.Rules as AmountOfMoney import qualified Duckling.Distance.RO.Rules as Distance import qualified Duckling.Duration.RO.Rules as Duration@@ -24,20 +28,25 @@ import qualified Duckling.Time.RO.Rules as Time import qualified Duckling.TimeGrain.RO.Rules as TimeGrain import qualified Duckling.Volume.RO.Rules as Volume-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = Quantity.rules-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = Quantity.rules+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/RU.hs view
@@ -10,26 +10,35 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.RU-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.RU.Rules as Numeral import qualified Duckling.Ordinal.RU.Rules as Ordinal-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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 Url) = []+langRules (This Volume) = []
Duckling/Rules/SV.hs view
@@ -10,30 +10,39 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.SV-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.AmountOfMoney.SV.Rules as AmountOfMoney import qualified Duckling.Duration.SV.Rules as Duration import qualified Duckling.Ordinal.SV.Rules as Ordinal import qualified Duckling.Numeral.SV.Rules as Numeral import qualified Duckling.Time.SV.Rules as Time import qualified Duckling.TimeGrain.SV.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = []+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/TR.hs view
@@ -10,10 +10,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.TR-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Types import qualified Duckling.Distance.TR.Rules as Distance import qualified Duckling.Duration.TR.Rules as Duration@@ -23,18 +26,24 @@ import qualified Duckling.TimeGrain.TR.Rules as TimeGrain import qualified Duckling.Volume.TR.Rules as Volume -rules :: Some Dimension -> [Rule]-rules (This Distance) = Distance.rules-rules (This Duration) = Duration.rules-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = []-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = Volume.rules+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = Distance.rules+langRules (This Duration) = Duration.rules+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = []+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = Volume.rules
Duckling/Rules/UK.hs view
@@ -10,26 +10,35 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.UK-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.UK.Rules as Numeral import qualified Duckling.Ordinal.UK.Rules as Ordinal-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = []-rules (This TimeGrain) = []-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+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 Url) = []+langRules (This Volume) = []
Duckling/Rules/VI.hs view
@@ -10,10 +10,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.VI-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Types import qualified Duckling.AmountOfMoney.VI.Rules as AmountOfMoney import qualified Duckling.Numeral.VI.Rules as Numeral@@ -21,18 +24,24 @@ import qualified Duckling.TimeGrain.VI.Rules as TimeGrain import qualified Duckling.Time.VI.Rules as Time -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = AmountOfMoney.rules-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = []-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules _ _ = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = AmountOfMoney.rules+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = []+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Rules/ZH.hs view
@@ -10,29 +10,46 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Rules.ZH-  ( rules+  ( defaultRules+  , langRules+  , localeRules   ) where  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Types import qualified Duckling.Numeral.ZH.Rules as Numeral import qualified Duckling.Ordinal.ZH.Rules as Ordinal import qualified Duckling.Temperature.ZH.Rules as Temperature import qualified Duckling.Time.ZH.Rules as Time+import qualified Duckling.Time.ZH.CN.Rules as TimeCN+import qualified Duckling.Time.ZH.HK.Rules as TimeHK+import qualified Duckling.Time.ZH.MO.Rules as TimeMO+import qualified Duckling.Time.ZH.TW.Rules as TimeTW import qualified Duckling.TimeGrain.ZH.Rules as TimeGrain-import Duckling.Types -rules :: Some Dimension -> [Rule]-rules (This Distance) = []-rules (This Duration) = []-rules (This Numeral) = Numeral.rules-rules (This Email) = []-rules (This AmountOfMoney) = []-rules (This Ordinal) = Ordinal.rules-rules (This PhoneNumber) = []-rules (This Quantity) = []-rules (This RegexMatch) = []-rules (This Temperature) = Temperature.rules-rules (This Time) = Time.rules-rules (This TimeGrain) = TimeGrain.rules-rules (This Url) = []-rules (This Volume) = []+defaultRules :: Some Dimension -> [Rule]+defaultRules = langRules++localeRules :: Region -> Some Dimension -> [Rule]+localeRules CN (This Time) = TimeCN.rules+localeRules HK (This Time) = TimeHK.rules+localeRules MO (This Time) = TimeMO.rules+localeRules TW (This Time) = TimeTW.rules+localeRules _ _            = []++langRules :: Some Dimension -> [Rule]+langRules (This AmountOfMoney) = []+langRules (This Distance) = []+langRules (This Duration) = []+langRules (This Email) = []+langRules (This Numeral) = Numeral.rules+langRules (This Ordinal) = Ordinal.rules+langRules (This PhoneNumber) = []+langRules (This Quantity) = []+langRules (This RegexMatch) = []+langRules (This Temperature) = Temperature.rules+langRules (This Time) = Time.rules+langRules (This TimeGrain) = TimeGrain.rules+langRules (This Url) = []+langRules (This Volume) = []
Duckling/Temperature/ES/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/ES/Rules.hs view
@@ -26,7 +26,7 @@   { name = "<latent temp> temp"   , pattern =     [ dimension Temperature-    , regex "(grados?)|\x00b0"+    , regex "(grados?)|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -39,7 +39,7 @@   { name = "<temp> Celsius"   , pattern =     [ dimension Temperature-    , regex "(cent(i|\x00ed)grados?|c(el[cs]?(ius)?)?\\.?)"+    , regex "(cent(i|í)grados?|c(el[cs]?(ius)?)?\\.?)"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $
Duckling/Temperature/FR/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/FR/Rules.hs view
@@ -26,7 +26,7 @@   { name = "<latent temp> degrees"   , pattern =     [ dimension Temperature-    , regex "(deg(r(\x00e9|e|\x00e8))?s?\\.?)|\x00b0"+    , regex "(deg(r(é|e|è))?s?\\.?)|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -65,7 +65,7 @@   { name = "<latent temp> en dessous de zero"   , pattern =     [ dimension Temperature-    , regex "en dessous de (0|z(\x00e9|e)ro)"+    , regex "en dessous de (0|z(é|e)ro)"     ]   , prod = \tokens -> case tokens of       (Token Temperature td@(TemperatureData {TTemperature.value = v}):_) ->
Duckling/Temperature/GA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/GA/Rules.hs view
@@ -26,7 +26,7 @@   { name = "<latent temp> céim"   , pattern =     [ dimension Temperature-    , regex "g?ch?(\x00e9|e)im(e(anna)?)?|\x00b0"+    , regex "g?ch?(é|e)im(e(anna)?)?|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -39,7 +39,7 @@   { name = "<temp> Celsius"   , pattern =     [ dimension Temperature-    , regex "ceinteagr(\x00e1|a)d|c(el[cs]?(ius)?)?\\.?"+    , regex "ceinteagr(á|a)d|c(el[cs]?(ius)?)?\\.?"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -65,7 +65,7 @@   { name = "<latent temp> faoi bhun náid"   , pattern =     [ dimension Temperature-    , regex "faoi bhun (0|n(a|\x00e1)id)"+    , regex "faoi bhun (0|n(a|á)id)"     ]   , prod = \tokens -> case tokens of       (Token Temperature td@(TemperatureData {TTemperature.value = v}):_) ->
Duckling/Temperature/HR/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/HR/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> stupnjevi"   , pattern =     [ dimension Temperature-    , regex "deg\\.?|stupa?nj((ev)?a)?|\x00b0"+    , regex "deg\\.?|stupa?nj((ev)?a)?|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $
Duckling/Temperature/IT/Corpus.hs view
@@ -13,13 +13,13 @@ import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = IT}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/IT/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> degrees"   , pattern =     [ dimension Temperature-    , regex "(grad[io]?\\.?)|\x00b0"+    , regex "(grad[io]?\\.?)|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $
Duckling/Temperature/JA/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = JA}, allExamples)+corpus = (testContext {locale = makeLocale JA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/JA/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> degrees"   , pattern =     [ dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -38,7 +38,7 @@   { name = "<temp> Celcius"   , pattern =     [ dimension Temperature-    , regex "\x6442\x6c0f(\x00b0|\x5ea6)|(\x00b0)C"+    , regex "摂氏(°|度)|(°)C"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -50,9 +50,9 @@ ruleCelciusTemp = Rule   { name = "Celcius <temp>"   , pattern =-    [ regex "\x6442\x6c0f"+    [ regex "摂氏"     , dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $@@ -65,7 +65,7 @@   { name = "<temp> Fahrenheit"   , pattern =     [ dimension Temperature-    , regex "\x83ef\x6c0f(\x00b0|\x5ea6)|(\x00b0)F"+    , regex "華氏(°|度)|(°)F"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -77,9 +77,9 @@ ruleFahrenheitTemp = Rule   { name = "Fahrenheit <temp>"   , pattern =-    [ regex "\x83ef\x6c0f"+    [ regex "華氏"     , dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $
Duckling/Temperature/KO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/KO/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> degrees"   , pattern =     [ Predicate isLatent-    , regex "\xb3c4|\x00b0"+    , regex "도|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -37,7 +37,7 @@ ruleTemp = Rule   { name = "섭씨 <temp>"   , pattern =-    [ regex "\xc12d\xc528"+    [ regex "섭씨"     , dimension Temperature     ]   , prod = \tokens -> case tokens of@@ -63,7 +63,7 @@ ruleTemp2 = Rule   { name = "화씨 <temp>"   , pattern =-    [ regex "\xd654\xc528"+    [ regex "화씨"     , dimension Temperature     ]   , prod = \tokens -> case tokens of
Duckling/Temperature/PT/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/PT/Rules.hs view
@@ -26,7 +26,7 @@   { name = "<latent temp> temp"   , pattern =     [ dimension Temperature-    , regex "(graus?)|\x00b0"+    , regex "(graus?)|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -39,7 +39,7 @@   { name = "<temp> Celsius"   , pattern =     [ dimension Temperature-    , regex "(cent(i|\x00ed)grados?|c(el[cs]?(ius)?)?\\.?)"+    , regex "(cent(i|í)grados?|c(el[cs]?(ius)?)?\\.?)"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -65,7 +65,7 @@   { name = "<latent temp> temp abaixo de zero"   , pattern =     [ dimension Temperature-    , regex "((graus?)|\x00b0)?( abaixo (de)? zero)"+    , regex "((graus?)|°)?( abaixo (de)? zero)"     ]   , prod = \tokens -> case tokens of       (Token Temperature td@(TemperatureData {TTemperature.value = v}):_) ->
Duckling/Temperature/RO/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/RO/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> grade"   , pattern =     [ dimension Temperature-    , regex "(grade)|\x00b0"+    , regex "(grade)|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $
Duckling/Temperature/TR/Corpus.hs view
@@ -13,13 +13,13 @@  import Prelude import Data.String-import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = TR}, allExamples)+corpus = (testContext {locale = makeLocale TR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/ZH/Corpus.hs view
@@ -14,13 +14,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Temperature.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ZH}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Temperature/ZH/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent temp> degrees"   , pattern =     [ dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -38,7 +38,7 @@   { name = "<temp> Celcius"   , pattern =     [ dimension Temperature-    , regex "(\x6444|\x651d)\x6c0f(\x00b0|\x5ea6)|(\x00b0)C"+    , regex "(摄|攝)氏(°|度)|(°)C"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -50,9 +50,9 @@ ruleCelciusTemp = Rule   { name = "Celcius <temp>"   , pattern =-    [ regex "(\x6444|\x651d)\x6c0f"+    [ regex "(摄|攝)氏"     , dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $@@ -65,7 +65,7 @@   { name = "<temp> Fahrenheit"   , pattern =     [ dimension Temperature-    , regex "(\x534e|\x83ef)\x6c0f(\x00b0|\x5ea6)|(\x00b0)F"+    , regex "(华|華)氏(°|度)|(°)F"     ]   , prod = \tokens -> case tokens of       (Token Temperature td:_) -> Just . Token Temperature $@@ -77,9 +77,9 @@ ruleFahrenheitTemp = Rule   { name = "Fahrenheit <temp>"   , pattern =-    [ regex "(\x534e|\x83ef)\x6c0f"+    [ regex "(华|華)氏"     , dimension Temperature-    , regex "\x5ea6|\x00b0"+    , regex "度|°"     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $
Duckling/Testing/Types.hs view
@@ -21,6 +21,7 @@   , parserCheck   , refTime   , testContext+  , withLocale   , zTime   ) where @@ -69,4 +70,10 @@ -- Tuesday Feb 12, 2013 at 4:30am is the "now" for the tests testContext :: Context testContext = Context-  {lang = EN, referenceTime = refTime (2013, 2, 12, 4, 30, 0) (-2)}+  { locale = makeLocale EN Nothing+  , 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)
Duckling/Time/DA/Corpus.hs view
@@ -9,12 +9,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.DA.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -22,7 +23,7 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = DA}, allExamples)+corpus = (testContext {locale = makeLocale DA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -403,7 +404,7 @@   , examples (datetime (1954, 0, 0, 0, 0, 0) Year)              [ "1954"              ]-  , examples (datetime (2013, 12, 0, 0, 0, 0) Month)+  , examples (datetime (2013, 12, 24, 0, 0, 0) Day)              [ "et år efter juleaften"              , "ét år efter juleaften"              ]
Duckling/Time/DA/Rules.hs view
@@ -13,29 +13,65 @@ module Duckling.Time.DA.Rules   ( rules ) where -import Control.Monad (liftM2)+import Data.Text (Text) import Prelude  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))-import qualified Duckling.Time.Types as TTime-import qualified Duckling.TimeGrain.Types as TG import Duckling.Regex.Types import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal+import qualified Duckling.Time.Types as TTime+import qualified Duckling.TimeGrain.Types as TG -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "mandag|man\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday"   , "mandag|man\\.?"           )+  , ( "Tuesday"  , "tirsdag|tirs?\\.?"        )+  , ( "Wednesday", "onsdag|ons\\.?"           )+  , ( "Thursday" , "torsdag|tors?\\.?"        )+  , ( "Friday"   , "fredag|fre\\.?"           )+  , ( "Saturday" , "lørdag|lør\\.?" )+  , ( "Sunday"   , "søndag|søn\\.?" )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "January"  , "januar|jan\\.?"      )+  , ( "February" , "februar|feb\\.?"     )+  , ( "March"    , "marts|mar\\.?"       )+  , ( "April"    , "april|apr\\.?"       )+  , ( "May"      , "maj"                 )+  , ( "June"     , "juni|jun\\.?"        )+  , ( "July"     , "juli|jul\\.?"        )+  , ( "August"   , "august|aug\\.?"      )+  , ( "September", "september|sept?\\.?" )+  , ( "October"  , "oktober|okt\\.?"     )+  , ( "November" , "november|nov\\.?"    )+  , ( "December" , "december|dec\\.?"    )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleTheDayAfterTomorrow :: Rule ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"@@ -45,15 +81,6 @@   , prod = \_ -> tt $ cycleNth TG.Day 2   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "december|dec\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"@@ -74,7 +101,7 @@ ruleQuarterTotillbeforeIntegerHourofday = Rule   { name = "quarter to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "(et|\x00e9t)? ?kvart(er)? i"+    [ regex "(et|ét)? ?kvart(er)? i"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -107,15 +134,6 @@   , prod = \_ -> tt $ monthDay 6 5   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "tirsdag|tirs?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"@@ -165,7 +183,7 @@ ruleNewYearsDay = Rule   { name = "new year's day"   , pattern =-    [ regex "nyt\x00e5rsdag"+    [ regex "nytårsdag"     ]   , prod = \_ -> tt $ monthDay 1 1   }@@ -183,15 +201,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "l\x00f8rdag|l\x00f8r\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -206,15 +215,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juli|jul\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"@@ -273,7 +273,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "lige nu|nu|(i )?dette \x00f8jeblik"+    [ regex "lige nu|nu|(i )?dette øjeblik"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -330,7 +330,7 @@ ruleQuarterAfterpastIntegerHourofday = Rule   { name = "quarter after|past <integer> (hour-of-day)"   , pattern =-    [ regex "(et|\x00e9t)? ?kvart(er)? over"+    [ regex "(et|ét)? ?kvart(er)? over"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -377,15 +377,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "torsdag|tors?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleTheCycleAfterTime :: Rule ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"@@ -405,7 +396,7 @@   { name = "the <cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "(en|tet|et)? f\x00f8r"+    , regex "(en|tet|et)? før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -418,7 +409,7 @@ ruleSeason4 = Rule   { name = "season"   , pattern =-    [ regex "for\x00e5r"+    [ regex "forår"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (monthDay 3 20) (monthDay 6 21)@@ -441,7 +432,7 @@ ruleTimeAfterNext = Rule   { name = "<time> after next"   , pattern =-    [ regex "n(\x00e6)ste"+    [ regex "n(æ)ste"     , dimension Time     , regex "igen"     ]@@ -487,7 +478,7 @@ ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "(kommende|n(\x00e6)ste)"+    [ regex "(kommende|n(æ)ste)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -500,7 +491,7 @@ ruleTheDayBeforeYesterday = Rule   { name = "the day before yesterday"   , pattern =-    [ regex "i forg\x00e5rs"+    [ regex "i forgårs"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   }@@ -524,7 +515,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "n(\x00e6)ste|kommende"+    [ regex "n(æ)ste|kommende"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -533,15 +524,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "januar|jan\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleTheCycleOfTime :: Rule ruleTheCycleOfTime = Rule   { name = "the <cycle> of <time>"@@ -572,7 +554,7 @@ ruleOnDate = Rule   { name = "on <date>"   , pattern =-    [ regex "den|p\x00e5"+    [ regex "den|på"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -580,15 +562,6 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "marts|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDurationFromNow :: Rule ruleDurationFromNow = Rule   { name = "<duration> from now"@@ -653,15 +626,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "april|apr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"@@ -714,7 +678,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -731,7 +695,7 @@   { name = "<hour-of-day> quarter (as relative minutes)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "(et|\x00e9t)? ?kvart(er)?"+    , regex "(et|ét)? ?kvart(er)?"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:@@ -752,15 +716,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "fredag|fre\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -850,7 +805,7 @@   , pattern =     [ regex "(efter|fra)"     , Predicate isATimeOfDay-    , regex "((men )?f\x00f8r)|\\-|til|indtil"+    , regex "((men )?før)|\\-|til|indtil"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -859,20 +814,12 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "februar|feb\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }  ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"   , pattern =-    [ regex "pr(\x00e6)cis( kl\\.| klokken)?"+    [ regex "pr(æ)cis( kl\\.| klokken)?"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -937,7 +884,7 @@ ruleNewYearsEve = Rule   { name = "new year's eve"   , pattern =-    [ regex "nyt\x00e5rsaften(sdag)?"+    [ regex "nytårsaften(sdag)?"     ]   , prod = \_ -> tt $ monthDay 12 31   }@@ -1000,7 +947,7 @@   { name = "<time-of-day> sharp"   , pattern =     [ Predicate isATimeOfDay-    , regex "(sharp|pr(\x00e6)cis)"+    , regex "(sharp|pr(æ)cis)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -1070,7 +1017,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "(engang )?inden|indtil|f\x00f8r|op til"+    [ regex "(engang )?inden|indtil|før|op til"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1090,15 +1037,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juni|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1117,15 +1055,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "august|aug\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1145,10 +1074,7 @@   , pattern =     [ regex "(week(\\s|-)?end)(en)?"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleAboutDuration :: Rule@@ -1196,7 +1122,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "n(\x00e6)ste|kommende"+    [ regex "n(æ)ste|kommende"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1268,7 +1194,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "n(\x00e6)ste"+    [ regex "n(æ)ste"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -1283,7 +1209,7 @@ ruleADuration = Rule   { name = "a <duration>"   , pattern =-    [ regex "(om )?en|et|\x00e9n|\x00e9t"+    [ regex "(om )?en|et|én|ét"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -1322,7 +1248,7 @@ ruleThisCycle = Rule   { name = "this <cycle>"   , pattern =-    [ regex "denne|dette|i|nuv(\x00e6)rende|indev(\x00e6)rende"+    [ regex "denne|dette|i|nuv(æ)rende|indev(æ)rende"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1386,7 +1312,7 @@ ruleOnANamedday = Rule   { name = "on a named-day"   , pattern =-    [ regex "p\x00e5 en"+    [ regex "på en"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -1411,7 +1337,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "i g\x00e5r|ig\x00e5r"+    [ regex "i går|igår"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -1420,7 +1346,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "efter\x00e5r"+    [ regex "efterår"     ]   , prod = \_ ->       let from = monthDay 9 23@@ -1445,7 +1371,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "((1\\.?)|f\x00f8rste)? ?juledag"+    [ regex "((1\\.?)|første)? ?juledag"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -1505,24 +1431,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "maj"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "s\x00f8ndag|s\x00f8n\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1562,15 +1470,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "oktober|okt\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleHalloweenDay :: Rule ruleHalloweenDay = Rule   { name = "halloween day"@@ -1633,7 +1532,7 @@   { name = "<cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "f\x00f8r"+    , regex "før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1661,7 +1560,7 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|til|indtil"     , Predicate isATimeOfDay     ]@@ -1671,15 +1570,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "november|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1709,15 +1599,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "onsdag|ons\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleTheDayofmonthOrdinal :: Rule ruleTheDayofmonthOrdinal = Rule   { name = "the <day-of-month> (ordinal)"@@ -1736,7 +1617,7 @@   { name = "<duration> before <time>"   , pattern =     [ dimension Duration-    , regex "f\x00f8r"+    , regex "før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1799,15 +1680,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "september|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1846,7 +1718,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1917,25 +1789,6 @@   , ruleMonthDdddInterval   , ruleMorning   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNewYearsDay@@ -2005,3 +1858,5 @@   , ruleHourofdayHalf   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/DE/Corpus.hs view
@@ -13,25 +13,26 @@   , negativeCorpus   ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale 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)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = DE}, allExamples)+corpus = (testContext {locale = makeLocale DE Nothing}, allExamples)  negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {lang = DE}, examples)+negativeCorpus = (testContext {locale = makeLocale DE Nothing}, examples)   where     examples =       [ "ein Hotel"       , "ein Angebot"+      , "nächsten 5"       ]  allExamples :: [Example]@@ -306,7 +307,7 @@              [ "viertel vor 12"              , "11:45"              ]-  , examples (datetime (2013, 2, 12, 11, 45, 0) Second)+  , examples (datetime (2013, 2, 12, 11, 45, 0) Minute)              [ "15 minuten vor 12"              ]   , examples (datetime (2013, 2, 12, 20, 0, 0) Hour)@@ -403,7 +404,7 @@   , examples (datetime (2013, 2, 19, 4, 0, 0) Hour)              [ "in 7 tagen"              ]-  , examples (datetime (2013, 12, 0, 0, 0, 0) Month)+  , examples (datetime (2013, 12, 25, 0, 0, 0) Day)              [ "ein jahr nach weihnachten"              ]   , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
Duckling/Time/DE/Rules.hs view
@@ -13,39 +13,143 @@ module Duckling.Time.DE.Rules   ( rules ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text import Prelude+import Data.Text (Text)+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "montags?|mo\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }+instants :: [(Text, TG.Grain, Int, String)]+instants =+ [ ( "now"             , TG.Second,  0,+       "(genau)? ?jetzt|diesen moment|in diesem moment|gerade eben" )+ , ( "today"           , TG.Day   ,  0,+       "heute|(um diese zeit|zu dieser zeit|um diesen zeitpunkt|zu diesem zeitpunkt)" )+ , ( "tomorrow"        , TG.Day   ,  1, "morgen" )+ , ( "yesterday"       , TG.Day   , -1, "gestern" )+ , ( "after tomorrow"  , TG.Day   ,  2, "(ü)bermorgen" )+ , ( "before yesterday", TG.Day   , -2, "vorgestern" )+ , ( "EOM|End of month", TG.Month ,  1, "(das )?ende des monats?" )+ , ( "EOY|End of year" , TG.Year  ,  1,+       "(das )?(EOY|jahr(es)? ?ende|ende (des )?jahr(es)?)" )+ ] -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "dezember|dez\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }+ruleInstants :: [Rule]+ruleInstants = map go instants+  where+    go (name, grain, n, regexPattern) = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ cycleNth grain n+      } +daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Montag"    , "montags?|mo\\.?"              )+  , ( "Dienstag"  , "die?nstags?|di\\.?"           )+  , ( "Mittwoch"  , "mittwochs?|mi\\.?"            )+  , ( "Donnerstag", "donn?erstag|do\\.?"           )+  , ( "Freitag"   , "freitags?|fr\\.?"             )+  , ( "Samstag"   , "samstags?|sonnabends?|sa\\.?" )+  , ( "Sonntag"   , "sonntags?|so\\.?"             )+  ]++ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "Januar"   , "januar|jan\\.?"             )+  , ( "Februar"  , "februar|feb\\.?"            )+  , ( "Marz"     , "m(ä)rz|m(ä)r\\.?" )+  , ( "April"    , "april|apr\\.?"              )+  , ( "Mai"      , "mai\\.?"                    )+  , ( "Juni"     , "juni|jun\\.?"               )+  , ( "Juli"     , "juli|jul\\.?"               )+  , ( "August"   , "august|aug\\.?"             )+  , ( "September", "september|sept?\\.?"        )+  , ( "Oktober"  , "oktober|okt\\.?"            )+  , ( "November" , "november|nov\\.?"           )+  , ( "Dezember" , "dezember|dez\\.?"           )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }++seasons :: [(Text, String, TimeData, TimeData)]+seasons =+  [ ( "sommer"  , "sommer"                , monthDay  6 21, monthDay  9 23 )+  , ( "herbst"  , "herbst"                , monthDay  9 23, monthDay 12 21 )+  , ( "winter"  , "winter"                , monthDay 12 21, monthDay  3 20 )+  , ( "fruhling", "fr(ü)h(ling|jahr)", monthDay  3 20, monthDay  6 21 )+  ]++ruleSeasons :: [Rule]+ruleSeasons = map go seasons+  where+    go (name, regexPattern, start, end) = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> Token Time <$> interval TTime.Open start end+      }++holidays :: [(Text, TimeData, String)]+holidays =+  [ ( "new year's day"                    , monthDay  1  1, "neujahr(s?tag)?" )+  , ( "valentine's day"                   , monthDay  2 14, "valentin'?stag" )+  , ( "Schweizer Bundesfeiertag"          , monthDay  8  1,+        "schweiz(er)? (bundes)?feiertag|bundes feiertag" )+  , ( "Tag der Deutschen Einheit"         , monthDay 10  3,+        "tag (der)? deutsc?hen? einheit" )+  , ( "Oesterreichischer Nationalfeiertag", monthDay 10 26,+        "((ö)sterreichischer?)? nationalfeiertag|national feiertag" )+  , ( "halloween day"                     , monthDay 10 31, "hall?owe?en?" )+  , ( "Allerheiligen"                     , monthDay 11  1,+        "allerheiligen?|aller heiligen?" )+  , ( "Nikolaus"                          , monthDay 12  6,+        "nikolaus(tag)?|nikolaus tag|nikolo" )+  , ( "christmas eve"                     , monthDay 12 24,+        "heilig(er)? abend" )+  , ( "christmas"                         , monthDay 12 25,+        "weih?nacht(en|stag)?" )+  , ( "new year's eve"                    , monthDay 12 31,+        "silvester" )+  , ( "Mother's Day"                      , nthDOWOfMonth 2 7 5,+        "mutt?ertag|mutt?er (tag)?" )+  , ( "Father's Day"                      , nthDOWOfMonth 3 7 6,+        "vatt?er( ?tag)?" )+  ]++ruleHolidays :: [Rule]+ruleHolidays = map go holidays+  where+    go (name, date, regexPattern) = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt date+      }+ ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"@@ -90,24 +194,6 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "die?nstags?|di\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }--ruleValentinesDay :: Rule-ruleValentinesDay = Rule-  { name = "valentine's day"-  , pattern =-    [ regex "valentin'?stag"-    ]-  , prod = \_ -> tt $ monthDay 2 14-  }- ruleTheOrdinalCycleOfTime :: Rule ruleTheOrdinalCycleOfTime = Rule   { name = "the <ordinal> <cycle> of <time>"@@ -144,15 +230,6 @@       _ -> Nothing   } -ruleNewYearsDay :: Rule-ruleNewYearsDay = Rule-  { name = "new year's day"-  , pattern =-    [ regex "neujahr(s?tag)?"-    ]-  , prod = \_ -> tt $ monthDay 1 1-  }- ruleLastTime :: Rule ruleLastTime = Rule   { name = "last <time>"@@ -166,15 +243,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "samstags?|sa\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -237,15 +305,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juli|jul\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"@@ -286,15 +345,6 @@       _ -> Nothing   } -ruleNow :: Rule-ruleNow = Rule-  { name = "now"-  , pattern =-    [ regex "(genau)? ?jetzt|diesen moment|in diesem moment|gerade eben"-    ]-  , prod = \_ -> tt $ cycleNth TG.Second 0-  }- ruleLastCycleOfTime :: Rule ruleLastCycleOfTime = Rule   { name = "last <cycle> of <time>"@@ -394,24 +444,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "donn?erstags?|do\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }--ruleAfterTomorrow :: Rule-ruleAfterTomorrow = Rule-  { name = "after tomorrow"-  , pattern =-    [ regex "(\x00fc)bermorgen"-    ]-  , prod = \_ -> tt $ cycleNth TG.Day 2-  }- ruleTheCycleAfterTime :: Rule ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"@@ -442,18 +474,6 @@       _ -> Nothing   } -ruleSeason4 :: Rule-ruleSeason4 = Rule-  { name = "season"-  , pattern =-    [ regex "fr(\x00fc)hling|fr(\x00fc)hjahr"-    ]-  , 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)"@@ -472,7 +492,7 @@   { name = "<time> after next"   , pattern =     [ dimension Time-    , regex "nach dem n(\x00e4)chsten"+    , regex "nach dem n(ä)chsten"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -498,25 +518,16 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "mittags?|zw(\x00f6)lf (uhr)?"+    [ regex "mittags?|zw(ö)lf (uhr)?"     ]   , prod = \_ -> tt $ hour False 12   } -ruleToday :: Rule-ruleToday = Rule-  { name = "today"-  , pattern =-    [ regex "heute|(um diese zeit|zu dieser zeit|um diesen zeitpunkt|zu diesem zeitpunkt)"-    ]-  , prod = \_ -> tt $ cycleNth TG.Day 0-  }- ruleThisnextDayofweek :: Rule ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "diese(n|r)|kommenden|n(\x00e4)chsten"+    [ regex "diese(n|r)|kommenden|n(ä)chsten"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -544,7 +555,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "n(\x00e4)chste(r|n|s)?|kommende(r|n|s)?"+    [ regex "n(ä)chste(r|n|s)?|kommende(r|n|s)?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -553,21 +564,12 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "januar|jan\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleTimeofdayApproximately :: Rule ruleTimeofdayApproximately = Rule   { name = "<time-of-day> approximately"   , pattern =     [ Predicate isATimeOfDay-    , regex "(um )?zirka|ungef(\x00e4)hr|etwa"+    , regex "(um )?zirka|ungef(ä)hr|etwa"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -586,15 +588,6 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "m(\x00e4)rz|m(\x00e4)r\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDurationFromNow :: Rule ruleDurationFromNow = Rule   { name = "<duration> from now"@@ -647,15 +640,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "april|apr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"@@ -681,20 +665,11 @@       _ -> Nothing   } -ruleChristmasEve :: Rule-ruleChristmasEve = Rule-  { name = "christmas eve"-  , pattern =-    [ regex "heilig(er)? abend"-    ]-  , prod = \_ -> tt $ monthDay 12 24-  }- ruleInduringThePartofday :: Rule ruleInduringThePartofday = Rule   { name = "in|during the <part-of-day>"   , pattern =-    [ regex "(in|an|am|w(\x00e4)h?rend)( der| dem| des)?"+    [ regex "(in|an|am|w(ä)h?rend)( der| dem| des)?"     , Predicate isAPartOfDay     ]   , prod = \tokens -> case tokens of@@ -707,7 +682,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -745,15 +720,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "freitags?|fr\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -842,7 +808,7 @@ ruleFromTimeofdayTimeofdayInterval = Rule   { name = "from <time-of-day> - <time-of-day> (interval)"   , pattern =-    [ regex "(von|nach|ab|fr(\x00fc)hestens (um)?)"+    [ regex "(von|nach|ab|fr(ü)hestens (um)?)"     , Predicate isATimeOfDay     , regex "((noch|aber|jedoch)? vor)|\\-|bis"     , Predicate isATimeOfDay@@ -853,20 +819,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "februar|feb\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"   , pattern =-    [ regex "genau|exakt|p(\x00fc)nktlich|punkt( um)?"+    [ regex "genau|exakt|p(ü)nktlich|punkt( um)?"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -874,39 +831,6 @@       _ -> Nothing   } -ruleSeason3 :: Rule-ruleSeason3 = Rule-  { name = "season"-  , pattern =-    [ regex "winter"-    ]-  , 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 "sommer"-    ]-  , prod = \_ ->-      let from = monthDay 6 21-          to = monthDay 9 23-      in Token Time <$> interval TTime.Open from to-  }--ruleSchweizerBundesfeiertag :: Rule-ruleSchweizerBundesfeiertag = Rule-  { name = "Schweizer Bundesfeiertag"-  , pattern =-    [ regex "schweiz(er)? (bundes)?feiertag|bundes feiertag"-    ]-  , prod = \_ -> tt $ monthDay 8 1-  }- ruleBetweenDatetimeAndDatetimeInterval :: Rule ruleBetweenDatetimeAndDatetimeInterval = Rule   { name = "between <datetime> and <datetime> (interval)"@@ -922,15 +846,6 @@       _ -> Nothing   } -ruleNewYearsEve :: Rule-ruleNewYearsEve = Rule-  { name = "new year's eve"-  , pattern =-    [ regex "silvester"-    ]-  , prod = \_ -> tt $ monthDay 12 31-  }- ruleDurationAgo :: Rule ruleDurationAgo = Rule   { name = "<duration> ago"@@ -969,15 +884,6 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleBeforeYesterday :: Rule-ruleBeforeYesterday = Rule-  { name = "before yesterday"-  , pattern =-    [ regex "vorgestern"-    ]-  , prod = \_ -> tt . cycleNth TG.Day $ - 2-  }- ruleLastNCycle :: Rule ruleLastNCycle = Rule   { name = "last n <cycle>"@@ -998,22 +904,13 @@   { name = "<time-of-day> sharp"   , pattern =     [ Predicate isATimeOfDay-    , regex "genau|exakt|p(\x00fc)nktlich|punkt( um)?"+    , regex "genau|exakt|p(ü)nktlich|punkt( um)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td       _ -> Nothing   } -ruleAllerheiligen :: Rule-ruleAllerheiligen = Rule-  { name = "Allerheiligen"-  , pattern =-    [ regex "allerheiligen?|aller heiligen?"-    ]-  , prod = \_ -> tt $ monthDay 11 1-  }- ruleWithinDuration :: Rule ruleWithinDuration = Rule   { name = "within <duration>"@@ -1065,7 +962,7 @@ ruleAboutTimeofday = Rule   { name = "about <time-of-day>"   , pattern =-    [ regex "(um )?zirka|ca\\.?|ungef(\x00e4)hr|etwa|gegen"+    [ regex "(um )?zirka|ca\\.?|ungef(ä)hr|etwa|gegen"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1077,7 +974,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "vor|bis( zu[rm]?)?|sp(\x00e4)testens?"+    [ regex "vor|bis( zu[rm]?)?|sp(ä)testens?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1090,22 +987,13 @@   { name = "<time-of-day> until"   , pattern =     [ dimension Time-    , regex "sp(\x00e4)testens"+    , regex "sp(ä)testens"     ]   , prod = \tokens -> case tokens of       (Token Time td:_:_) -> tt $ withDirection TTime.Before td       _ -> Nothing   } -ruleSterreichischerNationalfeiertag :: Rule-ruleSterreichischerNationalfeiertag = Rule-  { name = "Österreichischer Nationalfeiertag"-  , pattern =-    [ regex "((\x00f6)sterreichischer?)? nationalfeiertag|national feiertag"-    ]-  , prod = \_ -> tt $ monthDay 10 26-  }- ruleAtTimeofday :: Rule ruleAtTimeofday = Rule   { name = "at <time-of-day>"@@ -1118,15 +1006,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juni|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1145,15 +1024,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "august|aug\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1173,28 +1043,7 @@   , pattern =     [ regex "wochen ?ende?"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to-  }--ruleTagDerDeutschenEinheit :: Rule-ruleTagDerDeutschenEinheit = Rule-  { name = "Tag der Deutschen Einheit"-  , pattern =-    [ regex "tag (der)? deutsc?hen? einheit"-    ]-  , prod = \_ -> tt $ monthDay 10 3-  }--ruleEomendOfMonth :: Rule-ruleEomendOfMonth = Rule-  { name = "EOM|End of month"-  , pattern =-    [ regex "(das )?ende des monats?"-    ]-  , prod = \_ -> tt $ cycleNth TG.Month 1+  , prod = \_ -> tt weekend   }  ruleNthTimeAfterTime2 :: Rule@@ -1221,8 +1070,8 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "(n(\x00e4)chste|kommende)[ns]?"-    , dimension Time+    [ regex "(n(ä)chste|kommende)[ns]?"+    , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of       (_:Token Time td:_) ->@@ -1293,7 +1142,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "n(\x00e4)chsten?|kommenden?"+    [ regex "n(ä)chsten?|kommenden?"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -1321,7 +1170,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "morgens|(in der )?fr(\x00fc)h|vor ?mittags?|am morgen"+    [ regex "morgens|(in der )?fr(ü)h|vor ?mittags?|am morgen"     ]   , prod = \_ ->       let from = hour False 3@@ -1395,15 +1244,6 @@       _ -> Nothing   } -ruleNikolaus :: Rule-ruleNikolaus = Rule-  { name = "Nikolaus"-  , pattern =-    [ regex "nikolaus(tag)?|nikolaus tag|nikolo"-    ]-  , prod = \_ -> tt $ monthDay 12 6-  }- ruleAfterLunch :: Rule ruleAfterLunch = Rule   { name = "after lunch"@@ -1433,7 +1273,7 @@   { name = "year (latent)"   , pattern =     [ Predicate $-        liftM2 (||) (isIntegerBetween (- 10000) 0) (isIntegerBetween 25 999)+        or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 999]     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -1442,32 +1282,11 @@       _ -> Nothing   } -ruleYesterday :: Rule-ruleYesterday = Rule-  { name = "yesterday"-  , pattern =-    [ regex "gestern"-    ]-  , prod = \_ -> tt . cycleNth TG.Day $ - 1-  }--ruleSeason2 :: Rule-ruleSeason2 = Rule-  { name = "season"-  , pattern =-    [ regex "herbst"-    ]-  , prod = \_ ->-      let from = monthDay 9 23-          to = monthDay 12 21-      in Token Time <$> interval TTime.Open from to-  }- ruleAfterTimeofday :: Rule ruleAfterTimeofday = Rule   { name = "after <time-of-day>"   , pattern =-    [ regex "nach|ab|fr(\x00fc)he?stens"+    [ regex "nach|ab|fr(ü)he?stens"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1480,22 +1299,13 @@   { name = "<time-of-day> after"   , pattern =     [ dimension Time-    , regex "fr(\x00fc)he?stens"+    , regex "fr(ü)he?stens"     ]   , prod = \tokens -> case tokens of       (Token Time td:_:_) -> tt $ withDirection TTime.After td       _ -> Nothing   } -ruleChristmas :: Rule-ruleChristmas = Rule-  { name = "christmas"-  , pattern =-    [ regex "weih?nacht(en|stag)?"-    ]-  , prod = \_ -> tt $ monthDay 12 25-  }- ruleNight :: Rule ruleNight = Rule   { name = "night"@@ -1582,7 +1392,7 @@ ruleAfterNextTime = Rule   { name = "after next <time>"   , pattern =-    [ regex "(\x00fc)ber ?n(\x00e4)chste[ns]?"+    [ regex "(ü)ber ?n(ä)chste[ns]?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1591,24 +1401,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mai"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "sonntags?|so\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1648,24 +1440,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "oktober|okt\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }--ruleHalloweenDay :: Rule-ruleHalloweenDay = Rule-  { name = "halloween day"-  , pattern =-    [ regex "hall?owe?en?"-    ]-  , prod = \_ -> tt $ monthDay 10 31-  }- ruleNamedmonthDayofmonthNonOrdinal :: Rule ruleNamedmonthDayofmonthNonOrdinal = Rule   { name = "<named-month> <day-of-month> (non ordinal)"@@ -1710,7 +1484,7 @@   , pattern =     [ regex "letzte(r|n|s)?"     , Predicate isADayOfWeek-    , regex "um|im"+    , regex "[ui]m"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1719,15 +1493,6 @@       _ -> Nothing   } -ruleFathersDay :: Rule-ruleFathersDay = Rule-  { name = "Father's Day"-  , pattern =-    [ regex "vatt?ertag|vatt?er (tag)?"-    ]-  , prod = \_ -> tt $ nthDOWOfMonth 2 7 6-  }- ruleHhmmMilitaryAmpm :: Rule ruleHhmmMilitaryAmpm = Rule   { name = "hhmm (military) am|pm"@@ -1748,7 +1513,7 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|bis"     , Predicate isATimeOfDay     ]@@ -1764,7 +1529,7 @@   , pattern =     [ Predicate isATimeOfDay     , regex "\\-|/|bis"-    , Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    , Predicate $ and . sequence [isNotLatent, isATimeOfDay]     ]   , prod = \tokens -> case tokens of       (Token Time td1:_:Token Time td2:_) ->@@ -1772,15 +1537,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "november|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1808,15 +1564,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mittwochs?|mi\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleTheDayofmonthOrdinal :: Rule ruleTheDayofmonthOrdinal = Rule   { name = "the <day-of-month> (ordinal)"@@ -1873,33 +1620,6 @@       _ -> Nothing   } -ruleEoyendOfYear :: Rule-ruleEoyendOfYear = Rule-  { name = "EOY|End of year"-  , pattern =-    [ regex "(das )?(EOY|jahr(es)? ?ende|ende (des )?jahr(es)?)"-    ]-  , prod = \_ -> tt $ cycleNth TG.Year 1-  }--ruleTomorrow :: Rule-ruleTomorrow = Rule-  { name = "tomorrow"-  , pattern =-    [ regex "morgen"-    ]-  , prod = \_ -> tt $ cycleNth TG.Day 1-  }--ruleMothersDay :: Rule-ruleMothersDay = Rule-  { name = "Mother's Day"-  , pattern =-    [ regex "mutt?ertag|mutt?er (tag)?"-    ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 5-  }- ruleTimeofdayOclock :: Rule ruleTimeofdayOclock = Rule   { name = "<time-of-day>  o'clock"@@ -1913,15 +1633,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "september|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1945,7 +1656,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1964,18 +1675,13 @@   , ruleAfterLunch   , ruleAfterNextTime   , ruleAfterTimeofday-  ,  ruleAfterTimeofdayPostfix-  , ruleAfterTomorrow+  , ruleAfterTimeofdayPostfix   , ruleAfterWork   , ruleAfternoon-  , ruleAllerheiligen   , ruleAtTimeofday-  , ruleBeforeYesterday   , ruleBetweenDatetimeAndDatetimeInterval   , ruleBetweenTimeofdayAndTimeofdayInterval   , ruleByTheEndOfTime-  , ruleChristmas-  , ruleChristmasEve   , ruleDatetimeDatetimeInterval   , ruleDateDateInterval   , ruleDayofmonthNonOrdinalNamedmonth@@ -1988,15 +1694,11 @@   , ruleDurationBeforeTime   , ruleDurationFromNow   , ruleDurationHence-  , ruleEomendOfMonth-  , ruleEoyendOfYear   , ruleEvening   , ruleExactlyTimeofday-  , ruleFathersDay   , ruleFromDatetimeDatetimeInterval   , ruleFromTimeofdayTimeofdayInterval   , ruleHalfIntegerGermanStyleHourofday-  , ruleHalloweenDay   , ruleHhmm   , ruleHhmmMilitary   , ruleHhmmMilitaryAmpm@@ -2017,37 +1719,13 @@   , ruleMmddyyyy   , ruleMonthDdddInterval   , ruleMorning-  , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal-  , ruleNewYearsDay-  , ruleNewYearsEve   , ruleNextCycle   , ruleNextNCycle   , ruleNextTime   , ruleNight-  , ruleNikolaus   , ruleNoon-  , ruleNow   , ruleNthTimeAfterTime   , ruleNthTimeAfterTime2   , ruleNthTimeOfTime@@ -2061,13 +1739,6 @@   , rulePartofdayOfTime   , ruleRelativeMinutesAfterpastIntegerHourofday   , ruleRelativeMinutesTotillbeforeIntegerHourofday-  , ruleSchweizerBundesfeiertag-  , ruleSeason-  , ruleSeason2-  , ruleSeason3-  , ruleSeason4-  , ruleSterreichischerNationalfeiertag-  , ruleTagDerDeutschenEinheit   , ruleTheCycleAfterTime   , ruleTheCycleBeforeTime   , ruleTheDayofmonthNonOrdinal@@ -2089,18 +1760,14 @@   , ruleTimeofdaySharp   , ruleTimeofdayTimeofdayInterval   , ruleTimeofdayTimeofdayInterval2-  , ruleToday-  , ruleTomorrow   , ruleTonight   , ruleUntilTimeofday   , ruleUntilTimeofdayPostfix-  , ruleValentinesDay   , ruleWeekend   , ruleWithinDuration   , ruleYear   , ruleYearLatent   , ruleYearLatent2-  , ruleYesterday   , ruleYyyymmdd   , ruleQuarterTotillbeforeIntegerHourofday   , ruleHalfTotillbeforeIntegerHourofday@@ -2110,3 +1777,8 @@   , ruleHourofdayHalf   , ruleTimezone   ]+  ++ ruleInstants+  ++ ruleDaysOfWeek+  ++ ruleMonths+  ++ ruleSeasons+  ++ ruleHolidays
+ Duckling/Time/EN/CA/Corpus.hs view
@@ -0,0 +1,60 @@+-- 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.Time.EN.CA.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 2, 15, 0, 0, 0) Day)+             [ "2/15"+             , "on 2/15"+             , "2 / 15"+             , "2-15"+             , "2 - 15"+             ]+  , examples (datetime (1974, 10, 31, 0, 0, 0) Day)+             [ "10/31/1974"+             , "10/31/74"+             , "10-31-74"+             ]+  , examples (datetime (2013, 4, 25, 16, 0, 0) Minute)+             [ "4/25 at 4:00pm"+             ]+  , examples (datetime (2013, 10, 14, 0, 0, 0) Day)+             [ "thanksgiving day"+             , "thanksgiving"+             , "thanksgiving 2013"+             , "this thanksgiving"+             , "next thanksgiving day"+             ]+  , examples (datetime (2014, 10, 13, 0, 0, 0) Day)+             [ "thanksgiving of next year"+             , "thanksgiving 2014"+             ]+  , examples (datetime (2012, 10, 8, 0, 0, 0) Day)+             [ "last thanksgiving"+             , "thanksgiving day 2012"+             ]+  , examples (datetime (2016, 10, 10, 0, 0, 0) Day)+             [ "thanksgiving 2016"+             ]+  , examples (datetime (2017, 10, 9, 0, 0, 0) Day)+             [ "thanksgiving 2017"+             ]+  ]
+ Duckling/Time/EN/CA/Rules.hs view
@@ -0,0 +1,69 @@+-- 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.Time.EN.CA.Rules+  ( rules+  ) where++import Data.Maybe+import Prelude++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (parseInt)+import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Time.Types (TimeData (..))+import Duckling.Types++-- Although one can see both MMDD and DDMM in Canada,+-- there is no direct way to implement this today. Let's fallback to MMDD (US).+ruleMMDD :: Rule+ruleMMDD = Rule+  { name = "mm/dd"+  , pattern = [regex "(0?[1-9]|1[0-2])\\s?[/-]\\s?(3[01]|[12]\\d|0?[1-9])"]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (mm:dd:_)):_) -> do+        m <- parseInt mm+        d <- parseInt dd+        tt $ monthDay m d+      _ -> Nothing+  }++ruleMMDDYYYY :: Rule+ruleMMDDYYYY = Rule+  { name = "mm/dd/yyyy"+  , pattern =+    [regex "(0?[1-9]|1[0-2])[/-](3[01]|[12]\\d|0?[1-9])[-/](\\d{2,4})"]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do+        y <- parseInt yy+        m <- parseInt mm+        d <- parseInt dd+        tt $ yearMonthDay y m d+      _ -> Nothing+  }++ruleThanksgiving :: Rule+ruleThanksgiving = Rule+  { name = "Thanksgiving Day"+  , pattern =+    [ regex "thanks?giving( day)?"+    ]+  , prod = \_ -> tt $ nthDOWOfMonth 2 1 10 -- Second Monday of October+  }++rules :: [Rule]+rules =+  [ ruleMMDD+  , ruleMMDDYYYY+  , ruleThanksgiving+  ]
Duckling/Time/EN/Corpus.hs view
@@ -10,6 +10,7 @@  module Duckling.Time.EN.Corpus   ( corpus+  , defaultCorpus   , negativeCorpus   ) where @@ -24,6 +25,48 @@ corpus :: Corpus corpus = (testContext, allExamples) +defaultCorpus :: Corpus+defaultCorpus = (testContext, allExamples ++ custom)+  where+    custom = concat+      [ examples (datetime (2013, 2, 15, 0, 0, 0) Day)+                 [ "2/15"+                 , "on 2/15"+                 , "2 / 15"+                 , "2-15"+                 , "2 - 15"+                 ]+      , examples (datetime (1974, 10, 31, 0, 0, 0) Day)+                 [ "10/31/1974"+                 , "10/31/74"+                 , "10-31-74"+                 ]+      , examples (datetime (2013, 4, 25, 16, 0, 0) Minute)+                 [ "4/25 at 4:00pm"+                 ]+      , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+                 [ "thanksgiving day"+                 , "thanksgiving"+                 , "thanksgiving 2013"+                 , "this thanksgiving"+                 , "next thanksgiving day"+                 ]+      , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+                 [ "thanksgiving of next year"+                 , "thanksgiving 2014"+                 ]+      , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+                 [ "last thanksgiving"+                 , "thanksgiving day 2012"+                 ]+      , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+                 [ "thanksgiving 2016"+                 ]+      , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+                 [ "thanksgiving 2017"+                 ]+      ]+ negativeCorpus :: NegativeCorpus negativeCorpus = (testContext, examples)   where@@ -43,6 +86,10 @@       , "at dozens"       , "single o'clock"       , "dozens o'clock"+      , "Rat 6"+      , "rat 6"+      , "3 30"+      , "three twenty"       ]  allExamples :: [Example]@@ -60,7 +107,8 @@              [ "2/2013"              ]   , examples (datetime (2013, 2, 11, 0, 0, 0) Day)-             ["yesterday"]+             [ "yesterday"+             ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)              [ "tomorrow"              , "tomorrows"@@ -106,9 +154,11 @@              , "march first"              ]   , examples (datetime (2013, 3, 3, 0, 0, 0) Day)-             ["march 3"]+             [ "march 3"+             ]   , examples (datetime (2013, 3, 15, 0, 0, 0) Day)-             ["the ides of march"]+             [ "the ides of march"+             ]   , examples (datetime (2015, 3, 3, 0, 0, 0) Day)              [ "march 3 2015"              , "march 3rd 2015"@@ -125,25 +175,17 @@              , "february the 15th"              , "february 15"              , "15th february"-             , "2/15"-             , "on 2/15"              , "February 15"-             , "2 / 15"-             , "2-15"-             , "2 - 15"              ]   , examples (datetime (2013, 8, 8, 0, 0, 0) Day)-             ["Aug 8"]+             [ "Aug 8"+             ]   , examples (datetime (2014, 7, 18, 0, 0, 0) Day)              [ "Fri, Jul 18"              , "Jul 18, Fri"              ]   , examples (datetime (2014, 10, 1, 0, 0, 0) Month)-             ["October 2014"]-  , examples (datetime (1974, 10, 31, 0, 0, 0) Day)-             [ "10/31/1974"-             , "10/31/74"-             , "10-31-74"+             [ "October 2014"              ]   , examples (datetime (2015, 4, 14, 0, 0, 0) Day)              [ "14april 2015"@@ -155,15 +197,20 @@              , "around next tuesday"              ]   , examples (datetime (2013, 2, 22, 0, 0, 0) Day)-             ["friday after next"]+             [ "friday after next"+             ]   , examples (datetime (2013, 3, 1, 0, 0, 0) Month)-             ["next March"]+             [ "next March"+             ]   , examples (datetime (2014, 3, 1, 0, 0, 0) Month)-             ["March after next"]+             [ "March after next"+             ]   , examples (datetime (2013, 2, 10, 0, 0, 0) Day)-             ["Sunday, Feb 10"]+             [ "Sunday, Feb 10"+             ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)-             ["Wed, Feb13"]+             [ "Wed, Feb13"+             ]   , examples (datetime (2013, 2, 11, 0, 0, 0) Week)              [ "this week"              , "current week"@@ -180,9 +227,11 @@              , "around next week"              ]   , examples (datetime (2013, 1, 1, 0, 0, 0) Month)-             ["last month"]+             [ "last month"+             ]   , examples (datetime (2013, 3, 1, 0, 0, 0) Month)-             ["next month"]+             [ "next month"+             ]   , examples (datetime (2013, 1, 1, 0, 0, 0) Quarter)              [ "this quarter"              , "this qtr"@@ -222,64 +271,84 @@              , "last week's sunday"              ]   , examples (datetime (2013, 2, 5, 0, 0, 0) Day)-             ["last tuesday"]+             [ "last tuesday"+             ]   , examples (datetime (2013, 2, 19, 0, 0, 0) Day)-             ["next tuesday"]+             [ "next tuesday"+             ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)-             ["next wednesday"]+             [ "next wednesday"+             ]   , examples (datetime (2013, 2, 20, 0, 0, 0) Day)              [ "wednesday of next week"              , "wednesday next week"              , "wednesday after next"              ]   , examples (datetime (2013, 2, 22, 0, 0, 0) Day)-             ["friday after next"]+             [ "friday after next"+             ]   , examples (datetime (2013, 2, 11, 0, 0, 0) Day)-             ["monday of this week"]+             [ "monday of this week"+             ]   , examples (datetime (2013, 2, 12, 0, 0, 0) Day)-             ["tuesday of this week"]+             [ "tuesday of this week"+             ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)-             ["wednesday of this week"]+             [ "wednesday of this week"+             ]   , examples (datetime (2013, 2, 14, 0, 0, 0) Day)-             ["the day after tomorrow"]+             [ "the day after tomorrow"+             ]   , examples (datetime (2013, 2, 14, 17, 0, 0) Hour)              [ "day after tomorrow 5pm"              ]   , examples (datetime (2013, 2, 10, 0, 0, 0) Day)-             ["the day before yesterday"]+             [ "the day before yesterday"+             ]   , examples (datetime (2013, 2, 10, 8, 0, 0) Hour)              [ "day before yesterday 8am"              ]   , examples (datetime (2013, 3, 25, 0, 0, 0) Day)-             ["last Monday of March"]+             [ "last Monday of March"+             ]   , examples (datetime (2014, 3, 30, 0, 0, 0) Day)-             ["last Sunday of March 2014"]+             [ "last Sunday of March 2014"+             ]   , examples (datetime (2013, 10, 3, 0, 0, 0) Day)-             ["third day of october"]+             [ "third day of october"+             ]   , examples (datetime (2014, 10, 6, 0, 0, 0) Week)-             ["first week of october 2014"]+             [ "first week of october 2014"+             ]   , examples (datetime (2013, 10, 7, 0, 0, 0) Week)-             ["the week of october 6th"]+             [ "the week of october 6th"+             ]   , examples (datetime (2013, 10, 7, 0, 0, 0) Week)-             ["the week of october 7th"]+             [ "the week of october 7th"+             ]   , examples (datetime (2015, 10, 31, 0, 0, 0) Day)              [ "last day of october 2015"              , "last day in october 2015"              ]   , examples (datetime (2014, 9, 22, 0, 0, 0) Week)-             ["last week of september 2014"]+             [ "last week of september 2014"+             ]   , examples (datetime (2013, 10, 1, 0, 0, 0) Day)              [ "first tuesday of october"              , "first tuesday in october"              ]   , examples (datetime (2014, 9, 16, 0, 0, 0) Day)-             ["third tuesday of september 2014"]+             [ "third tuesday of september 2014"+             ]   , examples (datetime (2014, 10, 1, 0, 0, 0) Day)-             ["first wednesday of october 2014"]+             [ "first wednesday of october 2014"+             ]   , examples (datetime (2014, 10, 8, 0, 0, 0) Day)-             ["second wednesday of october 2014"]+             [ "second wednesday of october 2014"+             ]   , examples (datetime (2015, 1, 13, 0, 0, 0) Day)-             ["third tuesday after christmas 2014"]+             [ "third tuesday after christmas 2014"+             ]   , examples (datetime (2013, 2, 13, 3, 0, 0) Hour)              [ "at 3am"              , "3 in the AM"@@ -310,6 +379,7 @@              , "3:15pm"              , "3:15PM"              , "3:15p"+             , "at 3 15"              ]   , examples (datetime (2013, 2, 12, 15, 20, 0) Minute)              [ "at 20 past 3pm"@@ -317,6 +387,7 @@              , "3:20 in afternoon"              , "twenty after 3pm"              , "3:20p"+             , "at three twenty"              ]   , examples (datetime (2013, 2, 12, 15, 30, 0) Minute)              [ "at half past three pm"@@ -415,23 +486,31 @@              , "in few hours"              ]   , examples (datetime (2013, 2, 13, 4, 30, 0) Minute)-             ["in 24 hours"]+             [ "in 24 hours"+             ]   , examples (datetime (2013, 2, 13, 4, 0, 0) Hour)              [ "in a day"              , "a day from now"              ]-  , examples (datetime (2016, 2, 1, 0, 0, 0) Month)-             ["3 years from today"]+  , examples (datetime (2013, 2, 13, 4, 30, 0) Second)+             [ "a day from right now"+             ]+  , examples (datetime (2016, 2, 12, 0, 0, 0) Day)+             [ "3 years from today"+             ]   , examples (datetime (2013, 2, 19, 4, 0, 0) Hour)-             ["in 7 days"]+             [ "in 7 days"+             ]   , examples (datetime (2013, 2, 19, 0, 0, 0) Day)              [ "in 1 week"              , "in a week"              ]   , examples (datetime (2013, 2, 12, 5, 0, 0) Second)-             ["in about half an hour"]+             [ "in about half an hour"+             ]   , examples (datetime (2013, 2, 5, 4, 0, 0) Hour)-             ["7 days ago"]+             [ "7 days ago"+             ]   , examples (datetime (2013, 1, 29, 4, 0, 0) Hour)              [ "14 days Ago"              , "a fortnight ago"@@ -442,15 +521,20 @@              , "1 week ago"              ]   , examples (datetime (2013, 1, 22, 0, 0, 0) Day)-             ["three weeks ago"]+             [ "three weeks ago"+             ]   , examples (datetime (2012, 11, 12, 0, 0, 0) Day)-             ["three months ago"]+             [ "three months ago"+             ]   , examples (datetime (2011, 2, 1, 0, 0, 0) Month)-             ["two years ago"]+             [ "two years ago"+             ]   , examples (datetime (1954, 1, 1, 0, 0, 0) Year)-             ["1954"]+             [ "1954"+             ]   , examples (datetime (2013, 2, 19, 4, 0, 0) Hour)-             ["7 days hence"]+             [ "7 days hence"+             ]   , examples (datetime (2013, 2, 26, 4, 0, 0) Hour)              [ "14 days hence"              , "a fortnight hence"@@ -461,21 +545,28 @@              , "1 week hence"              ]   , examples (datetime (2013, 3, 5, 0, 0, 0) Day)-             ["three weeks hence"]+             [ "three weeks hence"+             ]   , examples (datetime (2013, 5, 12, 0, 0, 0) Day)-             ["three months hence"]+             [ "three months hence"+             ]   , examples (datetime (2015, 2, 1, 0, 0, 0) Month)-             ["two years hence"]-  , examples (datetime (2013, 12, 1, 0, 0, 0) Month)+             [ "two years hence"+             ]+  , examples (datetime (2013, 12, 25, 0, 0, 0) Day)              [ "one year After christmas"              , "a year from Christmas"              ]+  , examples (datetimeInterval ((2013, 12, 18, 0, 0, 0), (2013, 12, 29, 0, 0, 0)) Day)+             [ "for 10 days from 18th Dec"+             ]   , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)              [ "this Summer"              , "current summer"              ]   , examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)-             ["this winter"]+             [ "this winter"+             ]   , examples (datetime (2013, 12, 25, 0, 0, 0) Day)              [ "xmas"              , "christmas"@@ -498,15 +589,20 @@              , "next mothers day"              ]   , examples (datetime (2012, 5, 13, 0, 0, 0) Day)-             ["last mothers day"]+             [ "last mothers day"+             ]   , examples (datetime (2014, 5, 11, 0, 0, 0) Day)-             ["mothers day 2014"]+             [ "mothers day 2014"+             ]   , examples (datetime (2013, 6, 16, 0, 0, 0) Day)-             ["Father's Day"]+             [ "Father's Day"+             ]   , examples (datetime (2012, 6, 17, 0, 0, 0) Day)-             ["last fathers day"]+             [ "last fathers day"+             ]   , examples (datetime (1996, 6, 16, 0, 0, 0) Day)-             ["fathers day 1996"]+             [ "fathers day 1996"+             ]   , examples (datetime (2013, 5, 27, 0, 0, 0) Day)              [ "memorial day"              , "Next Memorial Day"@@ -516,43 +612,36 @@              , "memorial day of last year"              ]   , examples (datetimeInterval ((2013, 5, 24, 18, 0, 0), (2013, 5, 28, 0, 0, 0)) Hour)-             ["memorial day week-end"]+             [ "memorial day week-end"+             ]   , examples (datetime (2013, 7, 4, 0, 0, 0) Day)              [ "independence day"              , "4th of July"              , "4 of july"              ]   , examples (datetime (2013, 9, 2, 0, 0, 0) Day)-             ["labor 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"]+             [ "labor day weekend"+             ]   , examples (datetime (2013, 10, 31, 0, 0, 0) Day)              [ "halloween"              , "next halloween"              , "Halloween 2013"              ]-  , examples (datetime (2013, 11, 28, 0, 0, 0) Day)-             [ "thanksgiving day"-             , "thanksgiving"-             , "thanksgiving 2013"-             , "this thanksgiving"-             , "next thanksgiving day"-             ]-  , examples (datetime (2014, 11, 27, 0, 0, 0) Day)-             [ "thanksgiving of next year"-             , "thanksgiving 2014"+  , examples (datetime (2013, 11, 29, 0, 0, 0) Day)+             [ "black friday"+             , "black friday of this year"+             , "black friday 2013"              ]-  {- FIXME (jodent) Doesn't work in Duckling either. t13908315-  , examples (datetime (2012, 11, 22, 0, 0, 0) Day)-             [ "last thanksgiving"-             , "thanksgiving day 2012"+  , examples (datetime (2017, 11, 24, 0, 0, 0) Day)+             [ "black friday 2017"              ]-  , examples (datetime (2016, 11, 24, 0, 0, 0) Day)-             ["thanksgiving 2016"]-}   , examples (datetime (2014, 1, 20, 0, 0, 0) Day)              [ "MLK day"              , "next Martin Luther King day"@@ -572,19 +661,24 @@              , "tonight"              ]   , examples (datetimeInterval ((2013, 2, 8, 18, 0, 0), (2013, 2, 11, 0, 0, 0)) Hour)-             ["this past weekend"]+             [ "this past weekend"+             ]   , examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour)-             ["tomorrow evening"]+             [ "tomorrow evening"+             ]   , examples (datetimeInterval ((2013, 2, 13, 12, 0, 0), (2013, 2, 13, 14, 0, 0)) Hour)              [ "tomorrow lunch"              , "tomorrow at lunch"              ]   , examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)-             ["yesterday evening"]+             [ "yesterday evening"+             ]   , examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour)-             ["this week-end"]+             [ "this week-end"+             ]   , examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 12, 0, 0)) Hour)-             ["monday mOrnIng"]+             [ "monday mOrnIng"+             ]   , examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 9, 0, 0)) Hour)              [ "monday early in the morning"              , "monday early morning"@@ -629,7 +723,8 @@              , "next three days"              ]   , examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day)-             ["next few days"]+             [ "next few days"+             ]   , examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week)              [ "last 2 weeks"              , "last two weeks"@@ -662,6 +757,8 @@              , "July 13 through 15"              , "July 13 - July 15"              , "from July 13-15"+             , "from 13 to 15 July"+             , "from 13th to 15th July"              ]   , examples (datetimeInterval ((2013, 8, 8, 0, 0, 0), (2013, 8, 13, 0, 0, 0)) Day)              [ "Aug 8 - Aug 12"@@ -701,19 +798,26 @@              , "this Thu 9-11am"              ]   , examples (datetimeInterval ((2013, 2, 12, 11, 30, 0), (2013, 2, 12, 13, 31, 0)) Minute)-             ["11:30-1:30"]+             [ "11:30-1:30"+             ]   , examples (datetime (2013, 9, 21, 13, 30, 0) Minute)-             ["1:30 PM on Sat, Sep 21"]+             [ "1:30 PM on Sat, Sep 21"+             ]   , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 26, 0, 0, 0)) Second)-             ["Within 2 weeks"]+             [ "Within 2 weeks"+             ]   , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 12, 14, 0, 0)) Second)-             ["by 2:00pm"]+             [ "by 2:00pm"+             ]   , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 13, 0, 0, 0)) Second)-             ["by EOD"]+             [ "by EOD"+             ]   , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 3, 1, 0, 0, 0)) Second)-             ["by EOM"]+             [ "by EOM"+             ]   , examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 4, 1, 0, 0, 0)) Second)-             ["by the end of next month"]+             [ "by the end of next month"+             ]   , examples (datetime (2013, 2, 12, 13, 0, 0) Minute)              [ "4pm CET"              ]@@ -725,8 +829,6 @@              [ "today at 2pm"              , "at 2pm"              ]-  , examples (datetime (2013, 4, 25, 16, 0, 0) Minute)-             ["4/25 at 4:00pm"]   , examples (datetime (2013, 2, 13, 15, 0, 0) Hour)              [ "3pm tomorrow"              ]@@ -735,13 +837,17 @@              , "through 2:00pm"              ]   , examples (datetimeOpenInterval After (2013, 2, 12, 14, 0, 0) Hour)-             ["after 2 pm"]+             [ "after 2 pm"+             ]   , examples (datetimeOpenInterval After (2013, 2, 17, 4, 0, 0) Hour)-             ["after 5 days"]+             [ "after 5 days"+             ]   , examples (datetimeOpenInterval Before (2013, 2, 12, 11, 0, 0) Hour)-             ["before 11 am"]+             [ "before 11 am"+             ]   , examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour)-             ["in the afternoon"]+             [ "in the afternoon"+             ]   , examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour)              [ "8am until 6"              ]@@ -755,7 +861,8 @@              , "in 15"              ]   , examples (datetimeInterval ((2013, 2, 12, 13, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour)-             ["after lunch"]+             [ "after lunch"+             ]   , examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 21, 0, 0)) Hour)              [ "after school"              ]@@ -764,9 +871,11 @@              , "approximately 1030"              ]   , examples (datetimeInterval ((2013, 2, 12, 4, 0, 0), (2013, 2, 12, 12, 0, 0)) Hour)-             ["this morning"]+             [ "this morning"+             ]   , examples (datetime (2013, 2, 18, 0, 0, 0) Day)-             ["next monday"]+             [ "next monday"+             ]   , examples (datetime (2013, 2, 12, 12, 0, 0) Hour)              [ "at 12pm"              , "at noon"@@ -833,5 +942,21 @@              ]   , examples (datetimeInterval ((2017, 10, 27, 18, 0, 0), (2017, 10, 30, 0, 0, 0)) Hour)              [ "last weekend of October 2017"+             ]+  , examples (datetimeInterval ((2013, 8, 27, 0, 0, 0), (2013, 8, 30, 0, 0, 0)) Day)+             [ "August 27th - 29th"+             , "from August 27th - 29th"+             ]+  , examples (datetimeInterval ((2013, 10, 23, 0, 0, 0), (2013, 10, 27, 0, 0, 0)) Day)+             [ "23rd to 26th Oct"+             ]+  , examples (datetimeInterval ((2013, 9, 1, 0, 0, 0), (2013, 9, 9, 0, 0, 0)) Day)+             [ "1-8 september"+             ]+  , examples (datetimeInterval ((2013, 9, 12, 0, 0, 0), (2013, 9, 17, 0, 0, 0)) Day)+             [ "12 to 16 september"+             ]+  , examples (datetimeInterval ((2013, 8, 19, 0, 0, 0), (2013, 8, 22, 0, 0, 0)) Day)+             [ "19th To 21st aug"              ]   ]
+ Duckling/Time/EN/GB/Corpus.hs view
@@ -0,0 +1,60 @@+-- 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.Time.EN.GB.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 2, 15, 0, 0, 0) Day)+             [ "15/2"+             , "on 15/2"+             , "15 / 2"+             , "15-2"+             , "15 - 2"+             ]+  , examples (datetime (1974, 10, 31, 0, 0, 0) Day)+             [ "31/10/1974"+             , "31/10/74"+             , "31-10-74"+             ]+  , examples (datetime (2013, 4, 25, 16, 0, 0) Minute)+             [ "25/4 at 4:00pm"+             ]+  , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+             [ "thanksgiving day"+             , "thanksgiving"+             , "thanksgiving 2013"+             , "this thanksgiving"+             , "next thanksgiving day"+             ]+  , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+             [ "thanksgiving of next year"+             , "thanksgiving 2014"+             ]+  , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+             [ "last thanksgiving"+             , "thanksgiving day 2012"+             ]+  , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+             [ "thanksgiving 2016"+             ]+  , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+             [ "thanksgiving 2017"+             ]+  ]
+ Duckling/Time/EN/GB/Rules.hs view
@@ -0,0 +1,70 @@+-- 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.Time.EN.GB.Rules+  ( rules+  ) where++import Data.Maybe+import Prelude++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (parseInt)+import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Time.Types (TimeData (..))+import Duckling.Types++ruleDDMM :: Rule+ruleDDMM = Rule+  { name = "dd/mm"+  , pattern =+    [ regex "(3[01]|[12]\\d|0?[1-9])\\s?[/-]\\s?(0?[1-9]|1[0-2])"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (dd:mm:_)):_) -> do+        d <- parseInt dd+        m <- parseInt mm+        tt $ monthDay m d+      _ -> Nothing+  }++ruleDDMMYYYY :: Rule+ruleDDMMYYYY = Rule+  { name = "dd/mm/yyyy"+  , pattern =+    [ regex "(3[01]|[12]\\d|0?[1-9])[/-](0?[1-9]|1[0-2])[-/](\\d{2,4})"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (dd:mm:yy:_)):_) -> do+        y <- parseInt yy+        d <- parseInt dd+        m <- parseInt mm+        tt $ yearMonthDay y m d+      _ -> Nothing+  }++ruleThanksgiving :: Rule+ruleThanksgiving = Rule+  { name = "Thanksgiving Day"+  , pattern =+    [ regex "thanks?giving( day)?"+    ]+  , prod = \_ -> tt $ nthDOWOfMonth 4 4 11 -- Fourth Thursday of November+  }++rules :: [Rule]+rules =+  [ ruleDDMM+  , ruleDDMMYYYY+  , ruleThanksgiving+  ]
Duckling/Time/EN/Rules.hs view
@@ -13,7 +13,6 @@ module Duckling.Time.EN.Rules   ( rules ) where -import Control.Monad (liftM2) import Data.Maybe import Data.Text (Text) import Prelude@@ -108,7 +107,7 @@  instants :: [(Text, String, TG.Grain, Int)] instants =-  [ ("now", "((just|right)\\s*)?now|immediately", TG.Second, 0)+  [ ("right now", "((just|right)\\s*)now|immediately", TG.Second, 0)   , ("today", "todays?|(at this time)", TG.Day, 0)   , ("tomorrow", "(tmrw?|tomm?or?rows?)", TG.Day, 1)   , ("yesterday", "yesterdays?", TG.Day, - 1)@@ -125,6 +124,15 @@       , prod = \_ -> tt $ cycleNth grain n       } +ruleNow :: Rule+ruleNow = Rule+  { name = "now"+  , pattern =+    [ regex "now"+    ]+  , prod = \_ -> tt now+  }+ ruleNextDOW :: Rule ruleNextDOW = Rule   { name = "this|next <day-of-week>"@@ -306,7 +314,7 @@  { name = "past year (latent)"  , pattern =    [ Predicate $-       liftM2 (||) (isIntegerBetween (- 10000) 0) (isIntegerBetween 25 999)+       or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 999]    ]  , prod = \tokens -> case tokens of      (token:_) -> do@@ -369,7 +377,7 @@ ruleNamedDOMOrdinal = Rule   { name = "<named-month>|<named-day> <day-of-month> (ordinal)"   , pattern =-    [ Predicate $ liftM2 (||) isAMonth isADayOfWeek+    [ Predicate $ or . sequence [isAMonth, isADayOfWeek]     , Predicate isDOMOrdinal     ]   , prod = \tokens -> case tokens of@@ -448,7 +456,7 @@ ruleTODLatent = Rule   { name = "time-of-day (latent)"   , pattern =-    [ Predicate $ liftM2 (&&) isNumeralSafeToUse (isIntegerBetween 0 23)+    [ Predicate $ and . sequence [isNumeralSafeToUse, isIntegerBetween 0 23]     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -553,7 +561,7 @@ ruleHONumeral = Rule   { name = "<hour-of-day> <integer>"   , pattern =-    [ Predicate $ liftM2 (&&) isNotLatent isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -697,20 +705,6 @@       _ -> Nothing   } -ruleMMDDYYYY :: Rule-ruleMMDDYYYY = Rule-  { name = "mm/dd/yyyy"-  , pattern =-    [regex "(0?[1-9]|1[0-2])[/-](3[01]|[12]\\d|0?[1-9])[-/](\\d{2,4})"]-  , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do-        y <- parseInt yy-        m <- parseInt mm-        d <- parseInt dd-        tt $ yearMonthDay y m d-      _ -> Nothing-  }- ruleYYYYMMDD :: Rule ruleYYYYMMDD = Rule   { name = "yyyy-mm-dd"@@ -724,18 +718,6 @@       _ -> Nothing   } -ruleMMDD :: Rule-ruleMMDD = Rule-  { name = "mm/dd"-  , pattern = [regex "(0?[1-9]|1[0-2])\\s?[/-]\\s?(3[01]|[12]\\d|0?[1-9])"]-  , prod = \tokens -> case tokens of-      (Token RegexMatch (GroupMatch (mm:dd:_)):_) -> do-        m <- parseInt mm-        d <- parseInt dd-        tt $ monthDay m d-      _ -> Nothing-  }- ruleNoonMidnightEOD :: Rule ruleNoonMidnightEOD = Rule   { name = "noon|midnight|EOD|end of day"@@ -804,7 +786,7 @@ ruleTonight :: Rule ruleTonight = Rule   { name = "tonight"-  , pattern = [regex "toni(ght|gth|te)"]+  , 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)@@ -860,7 +842,7 @@ ruleWeekend = Rule   { name = "week-end"   , pattern =-    [ regex "(week(\\s|-)?end|wkend)"+    [ regex "(week(\\s|-)?end|wkend)s?"     ]   , prod = \_ -> tt weekend   }@@ -919,49 +901,89 @@   { name = "<month> dd-dd (interval)"   , pattern =     [ Predicate isAMonth-    , regex "(3[01]|[12]\\d|0?[1-9])"+    , Predicate isDOMValue     , regex "\\-|to|th?ru|through|(un)?til(l)?"-    , regex "(3[01]|[12]\\d|0?[1-9])"+    , Predicate isDOMValue     ]   , prod = \tokens -> case tokens of       (Token Time td:-       Token RegexMatch (GroupMatch (d1:_)):+       token1:        _:-       Token RegexMatch (GroupMatch (d2:_)):+       token2:        _) -> do-        dd1 <- parseInt d1-        dd2 <- parseInt d2-        dom1 <- intersect (dayOfMonth dd1) td-        dom2 <- intersect (dayOfMonth dd2) td+        dom1 <- intersectDOM td token1+        dom2 <- intersectDOM td token2         Token Time <$> interval TTime.Closed dom1 dom2       _ -> Nothing   } +ruleIntervalDDDDMonth :: Rule+ruleIntervalDDDDMonth = Rule+  { name = "dd-dd <month> (interval)"+  , pattern =+    [ Predicate isDOMValue+    , regex "\\-|to|th?ru|through|(un)?til(l)?"+    , Predicate isDOMValue+    , Predicate isAMonth+    ]+  , prod = \tokens -> case tokens of+      (token1:+       _:+       token2:+       Token Time td:+       _) -> do+        dom1 <- intersectDOM td token1+        dom2 <- intersectDOM td token2+        Token Time <$> interval TTime.Closed dom1 dom2+      _ -> Nothing+  }+ ruleIntervalFromMonthDDDD :: Rule ruleIntervalFromMonthDDDD = Rule   { name = "from <month> dd-dd (interval)"   , pattern =     [ regex "from"     , Predicate isAMonth-    , regex "(3[01]|[12]\\d|0?[1-9])"+    , Predicate isDOMValue     , regex "\\-|to|th?ru|through|(un)?til(l)?"-    , regex "(3[01]|[12]\\d|0?[1-9])"+    , Predicate isDOMValue     ]   , prod = \tokens -> case tokens of       (_:        Token Time td:-       Token RegexMatch (GroupMatch (d1:_)):+       token1:        _:-       Token RegexMatch (GroupMatch (d2:_)):+       token2:        _) -> do-        dd1 <- parseInt d1-        dd2 <- parseInt d2-        dom1 <- intersect (dayOfMonth dd1) td-        dom2 <- intersect (dayOfMonth dd2) td+        dom1 <- intersectDOM td token1+        dom2 <- intersectDOM td token2         Token Time <$> interval TTime.Closed dom1 dom2       _ -> Nothing   } +ruleIntervalFromDDDDMonth :: Rule+ruleIntervalFromDDDDMonth = Rule+  { name = "from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)"+  , pattern =+    [ regex "from"+    , Predicate isDOMValue+    , regex "\\-|to|th?ru|through|(un)?til(l)?"+    , Predicate isDOMValue+    , Predicate isAMonth+    ]+  , prod = \tokens -> case tokens of+      (_:+       token1:+       _:+       token2:+       Token Time td:+       _) -> do+        dom1 <- intersectDOM td token1+        dom2 <- intersectDOM td token2+        Token Time <$> interval TTime.Closed dom1 dom2+      _ -> Nothing+  }+ -- Blocked for :latent time. May need to accept certain latents only, like hours ruleIntervalDash :: Rule ruleIntervalDash = Rule@@ -1012,7 +1034,7 @@ ruleIntervalTODDash = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isNotLatent isATimeOfDay+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|:|to|th?ru|through|(un)?til(l)?"     , Predicate isATimeOfDay     ]@@ -1236,19 +1258,11 @@     )   , ( "Father's Day" -- Third Sunday of June     , "father'?s?'? day"-    , 2, 7, 6+    , 3, 7, 6     )   , ( "Mother's Day" -- Second Sunday of May     , "mother'?s?'? day"-    , 1, 7, 5-    )-  , ( "Thanksgiving Day" -- Fourth Thursday of November-    , "thanks?giving( day)?"-    , 4, 4, 11-    )-  , ( "Black Friday" -- Fourth Friday of November-    , "black frid?day"-    , 4, 5, 11+    , 2, 7, 5     )   ,  ( "Labor Day" -- First Monday of September      , "labor day"@@ -1265,6 +1279,16 @@       , prod = \_ -> tt $ nthDOWOfMonth n dow m       } +-- The day after Thanksgiving (not always the fourth Friday of November)+ruleBlackFriday :: Rule+ruleBlackFriday = Rule+  { name = "black friday"+  , pattern =+    [ regex "black frid?day"+    ]+  , prod = \_ -> tt . cycleNthAfter False TG.Day 1 $ nthDOWOfMonth 4 4 11+  }+ -- Last Monday of May ruleMemorialDay :: Rule ruleMemorialDay = Rule@@ -1277,7 +1301,7 @@ ruleMemorialDayWeekend :: Rule ruleMemorialDayWeekend = Rule   { name = "Memorial Day Weekend"-  , pattern = [regex "memorial day week(\\s|-)?end"]+  , pattern = [regex "memorial day week(\\s|-)?ends?"]   , prod = \_ ->       tt . longWEBefore $ predLastOf (dayOfWeek 1) (month 5)   }@@ -1286,7 +1310,7 @@ ruleLaborDayWeekend :: Rule ruleLaborDayWeekend = Rule   { name = "Labor Day weekend"-  , pattern = [regex "labor day week(\\s|-)?end"]+  , pattern = [regex "labor day week(\\s|-)?ends?"]   , prod = \_ -> tt . longWEBefore $ nthDOWOfMonth 1 1 9   } @@ -1555,11 +1579,26 @@       _ -> Nothing   } +ruleIntervalForDurationFrom :: Rule+ruleIntervalForDurationFrom = Rule+  { name = "for <duration> from <time>"+  , pattern =+    [ regex "for"+    , dimension Duration+    , regex "(from|starting|beginning|after|starting from)"+    , dimension Time+    ]+  , prod = \tokens -> case tokens of+      (_:Token Duration dd:_:Token Time td1:_) ->+        Token Time <$> interval TTime.Open td1 (durationAfter dd td1)+      _ -> Nothing+}+ ruleTimezone :: Rule ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1619,9 +1658,7 @@   , ruleHalfAfterHOD   , ruleQuarterAfterHOD   , ruleHalfHOD-  , ruleMMDDYYYY   , ruleYYYYMMDD-  , ruleMMDD   , ruleMMYYYY   , ruleNoonMidnightEOD   , rulePartOfDays@@ -1637,7 +1674,9 @@   , ruleTODPrecision   , rulePrecisionTOD   , ruleIntervalFromMonthDDDD+  , ruleIntervalFromDDDDMonth   , ruleIntervalMonthDDDD+  , ruleIntervalDDDDMonth   , ruleIntervalDash   , ruleIntervalFrom   , ruleIntervalBetween@@ -1668,9 +1707,12 @@   , ruleDurationInWithinAfter   , ruleDurationHenceAgo   , ruleDurationAfterBeforeTime+  , ruleIntervalForDurationFrom   , ruleInNumeral   , ruleTimezone   , rulePartOfMonth+  , ruleNow+  , ruleBlackFriday   ]   ++ ruleInstants   ++ ruleDaysOfWeek
+ Duckling/Time/EN/US/Corpus.hs view
@@ -0,0 +1,60 @@+-- 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.Time.EN.US.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 2, 15, 0, 0, 0) Day)+             [ "2/15"+             , "on 2/15"+             , "2 / 15"+             , "2-15"+             , "2 - 15"+             ]+  , examples (datetime (1974, 10, 31, 0, 0, 0) Day)+             [ "10/31/1974"+             , "10/31/74"+             , "10-31-74"+             ]+  , examples (datetime (2013, 4, 25, 16, 0, 0) Minute)+             [ "4/25 at 4:00pm"+             ]+  , examples (datetime (2013, 11, 28, 0, 0, 0) Day)+             [ "thanksgiving day"+             , "thanksgiving"+             , "thanksgiving 2013"+             , "this thanksgiving"+             , "next thanksgiving day"+             ]+  , examples (datetime (2014, 11, 27, 0, 0, 0) Day)+             [ "thanksgiving of next year"+             , "thanksgiving 2014"+             ]+  , examples (datetime (2012, 11, 22, 0, 0, 0) Day)+             [ "last thanksgiving"+             , "thanksgiving day 2012"+             ]+  , examples (datetime (2016, 11, 24, 0, 0, 0) Day)+             [ "thanksgiving 2016"+             ]+  , examples (datetime (2017, 11, 23, 0, 0, 0) Day)+             [ "thanksgiving 2017"+             ]+  ]
+ Duckling/Time/EN/US/Rules.hs view
@@ -0,0 +1,70 @@+-- 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.Time.EN.US.Rules+  ( rules+  , ruleMMDD+  , ruleMMDDYYYY+  , ruleThanksgiving+  ) where++import Data.Maybe+import Prelude++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (parseInt)+import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Time.Types (TimeData (..))+import Duckling.Types++ruleMMDD :: Rule+ruleMMDD = Rule+  { name = "mm/dd"+  , pattern = [regex "(0?[1-9]|1[0-2])\\s?[/-]\\s?(3[01]|[12]\\d|0?[1-9])"]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (mm:dd:_)):_) -> do+        m <- parseInt mm+        d <- parseInt dd+        tt $ monthDay m d+      _ -> Nothing+  }++ruleMMDDYYYY :: Rule+ruleMMDDYYYY = Rule+  { name = "mm/dd/yyyy"+  , pattern =+    [regex "(0?[1-9]|1[0-2])[/-](3[01]|[12]\\d|0?[1-9])[-/](\\d{2,4})"]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (mm:dd:yy:_)):_) -> do+        y <- parseInt yy+        m <- parseInt mm+        d <- parseInt dd+        tt $ yearMonthDay y m d+      _ -> Nothing+  }++ruleThanksgiving :: Rule+ruleThanksgiving = Rule+  { name = "Thanksgiving Day"+  , pattern =+    [ regex "thanks?giving( day)?"+    ]+  , prod = \_ -> tt $ nthDOWOfMonth 4 4 11 -- Fourth Thursday of November+  }++rules :: [Rule]+rules =+  [ ruleMMDD+  , ruleMMDDYYYY+  , ruleThanksgiving+  ]
Duckling/Time/ES/Corpus.hs view
@@ -9,19 +9,20 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.ES.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.TimeGrain.Types hiding (add) import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Time/ES/Rules.hs view
@@ -13,35 +13,25 @@ module Duckling.Time.ES.Rules   ( rules ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "lunes|lun?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleTheDayAfterTomorrow :: Rule ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"   , pattern =-    [ regex "pasado\\s?ma(n|\x00f1)ana"+    [ regex "pasado\\s?ma(n|ñ)ana"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   }@@ -59,15 +49,6 @@       _ -> Nothing   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "diciembre|dic\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleCeTime :: Rule ruleCeTime = Rule   { name = "ce <time>"@@ -81,15 +62,51 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "martes|mar?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }+daysOfWeek :: [(Text.Text, String)]+daysOfWeek =+  [ ( "Lunes"     , "lunes|lun?\\.?"                        )+  , ( "Martes"    , "martes|mar?\\.?"                       )+  , ( "Miercoles" , "mi(e|é)\\.?(rcoles)?|mx|mier?\\." )+  , ( "Jueves"    , "jueves|jue|jue\\."                     )+  , ( "Viernes"   , "viernes|vie|vie\\."                    )+  , ( "Sabado"    , "s(á|a)bado|s(á|a)b\\.?"      )+  , ( "Domingo"   , "domingo|dom\\.?"                       )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text.Text, String)]+months =+  [ ( "Enero"     , "enero|ene\\.?")+  , ( "Febrero"   , "febrero|feb\\.?")+  , ( "Marzo"     , "marzo|mar\\.?")+  , ( "Abril"     , "abril|abr\\.?")+  , ( "Mayo"      , "mayo?\\.?")+  , ( "Junio"     , "junio|jun\\.?")+  , ( "Julio"     , "julio|jul\\.?")+  , ( "Agosto"    , "agosto|ago\\.?")+  , ( "Septiembre", "septiembre|sept?\\.?")+  , ( "Octubre"   , "octubre|oct\\.?")+  , ( "Noviembre" , "noviembre|nov\\.?")+  , ( "Diciembre" , "diciembre|dic\\.?")+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleThisDayofweek :: Rule ruleThisDayofweek = Rule   { name = "this <day-of-week>"@@ -103,15 +120,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "s(\x00e1|a)bado|s(\x00e1|a)b\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -126,15 +134,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "julio|jul\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"@@ -183,7 +182,7 @@ ruleUltimoDayofweekDeTime = Rule   { name = "ultimo <day-of-week> de <time>"   , pattern =-    [ regex "(\x00fa|u)ltimo"+    [ regex "(ú|u)ltimo"     , Predicate isADayOfWeek     , regex "de|en"     , dimension Time@@ -223,15 +222,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "jueves|jue|jue\\."-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleElDayofmonthDeNamedmonth :: Rule ruleElDayofmonthDeNamedmonth = Rule   { name = "el <day-of-month> de <named-month>"@@ -266,7 +256,7 @@   { name = "el proximo <cycle> "   , pattern =     [ regex "(el|los|la|las) ?"-    , regex "pr(\x00f3|o)xim(o|a)s?|siguientes?"+    , regex "pr(ó|o)xim(o|a)s?|siguientes?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -333,7 +323,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "mediod(\x00ed|i)a"+    [ regex "mediod(í|i)a"     ]   , prod = \_ -> tt $ hour False 12   }@@ -342,7 +332,7 @@ ruleProximasNCycle = Rule   { name = "proximas n <cycle>"   , pattern =-    [ regex "pr(\x00f3|o)xim(o|a)s?"+    [ regex "pr(ó|o)xim(o|a)s?"     , Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain     ]@@ -450,7 +440,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -594,15 +584,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "enero|ene\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleInThePartofday :: Rule ruleInThePartofday = Rule   { name = "in the <part-of-day>"@@ -620,7 +601,7 @@ ruleDelYear = Rule   { name = "del <year>"   , pattern =-    [ regex "del( a(\x00f1|n)o)?"+    [ regex "del( a(ñ|n)o)?"     , Predicate $ isIntegerBetween 1000 2100     ]   , prod = \tokens -> case tokens of@@ -630,15 +611,6 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "marzo|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDdmm :: Rule ruleDdmm = Rule   { name = "dd[/-]mm"@@ -666,15 +638,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "abril|abr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleMidnight :: Rule ruleMidnight = Rule   { name = "midnight"@@ -688,20 +651,11 @@ ruleAnoNuevo = Rule   { name = "ano nuevo"   , pattern =-    [ regex "a(n|\x00f1)o nuevo"+    [ regex "a(n|ñ)o nuevo"     ]   , prod = \_ -> tt $ monthDay 1 1   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "viernes|vie|vie\\."-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDdddMonthinterval :: Rule ruleDdddMonthinterval = Rule   { name = "dd-dd <month>(interval)"@@ -740,15 +694,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "febrero|feb\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleNamedmonthnameddayPast :: Rule ruleNamedmonthnameddayPast = Rule   { name = "<named-month|named-day> past"@@ -829,7 +774,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "(pr(\x00f3|o)xim(o|a)s?|que vienen?|siguientes?)"+    , regex "(pr(ó|o)xim(o|a)s?|que vienen?|siguientes?)"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -882,7 +827,7 @@   { name = "<dim time> de la manana"   , pattern =     [ Predicate isATimeOfDay-    , regex "(a|en|de) la ma(\x00f1|n)ana"+    , regex "(a|en|de) la ma(ñ|n)ana"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> do@@ -926,15 +871,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "junio|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleDentroDeDuration :: Rule ruleDentroDeDuration = Rule   { name = "dentro de <duration>"@@ -949,25 +885,13 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "agosto|ago\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleWeekend :: Rule ruleWeekend = Rule   { name = "week-end"   , pattern =     [ regex "week[ -]?end|fin de semana"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleOrdinalQuarterYear :: Rule@@ -1055,7 +979,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "ma(\x00f1|n)ana"+    [ regex "ma(ñ|n)ana"     ]   , prod = \_ ->       let from = hour False 4@@ -1096,7 +1020,7 @@   , pattern =     [ regex "(el|los|la|las) ?"     , dimension TimeGrain-    , regex "pasad(a|o)s?|(u|\x00fa)ltim[ao]s?"+    , regex "pasad(a|o)s?|(u|ú)ltim[ao]s?"     ]   , prod = \tokens -> case tokens of       (_:Token TimeGrain grain:_) ->@@ -1130,7 +1054,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "oto(\x00f1|n)o"+    [ regex "oto(ñ|n)o"     ]   , prod = \_ ->       let from = monthDay 9 23@@ -1215,24 +1139,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mayo?\\.?"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "domingo|dom\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleElTime :: Rule ruleElTime = Rule   { name = "el <time>"@@ -1258,15 +1164,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "octubre|oct\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleEsteenUnCycle :: Rule ruleEsteenUnCycle = Rule   { name = "este|en un <cycle>"@@ -1285,7 +1182,7 @@   { name = "n proximas <cycle>"   , pattern =     [ Predicate $ isIntegerBetween 2 9999-    , regex "pr(\x00f3|o)xim(o|a)s?"+    , regex "pr(ó|o)xim(o|a)s?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1300,7 +1197,7 @@   { name = "la pasado <cycle>"   , pattern =     [ regex "(el|los|la|las) ?"-    , regex "pasad(a|o)s?|(u|\x00fa)ltim[ao]s?"+    , regex "pasad(a|o)s?|(u|ú)ltim[ao]s?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1337,15 +1234,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "noviembre|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleOrdinalQuarter :: Rule ruleOrdinalQuarter = Rule   { name = "<ordinal> quarter"@@ -1366,7 +1254,7 @@   , pattern =     [ regex "(el|los|la|las) ?"     , dimension TimeGrain-    , regex "(pr(\x00f3|o)xim(o|a)s?|que vienen?|siguientes?)"+    , regex "(pr(ó|o)xim(o|a)s?|que vienen?|siguientes?)"     ]   , prod = \tokens -> case tokens of       (_:Token TimeGrain grain:_) ->@@ -1380,7 +1268,7 @@   , pattern =     [ regex "(el|los|la|las)"     , dimension TimeGrain-    , regex "(pr(\x00f3|o)xim(o|a)s?|que vienen?|siguientes?)"+    , regex "(pr(ó|o)xim(o|a)s?|que vienen?|siguientes?)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1393,7 +1281,7 @@ ruleDelMedioda = Rule   { name = "del mediodía"   , pattern =-    [ regex "del mediod(i|\x00ed)a"+    [ regex "del mediod(i|í)a"     ]   , prod = \_ ->       let from = hour False 12@@ -1402,15 +1290,6 @@            interval TTime.Open from to   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mi(e|\x00e9)\\.?(rcoles)?|mx|mier?\\."-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleIntersectByDe :: Rule ruleIntersectByDe = Rule   { name = "intersect by `de`"@@ -1429,7 +1308,7 @@ ruleTomorrow = Rule   { name = "tomorrow"   , pattern =-    [ regex "ma(n|\x00f1)ana"+    [ regex "ma(n|ñ)ana"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -1452,20 +1331,11 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "septiembre|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleTimezone :: Rule ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isATimeOfDay, isNotLatent]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1523,25 +1393,6 @@   , ruleNCycleProximoqueViene   , ruleNPasadosCycle   , ruleNProximasCycle-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonth   , ruleNamedmonthnameddayNext   , ruleNamedmonthnameddayPast@@ -1591,3 +1442,5 @@   , ruleHourofdayMinusIntegerAsRelativeMinutes2   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/FR/Corpus.hs view
@@ -10,20 +10,30 @@  module Duckling.Time.FR.Corpus   ( corpus+  , negativeCorpus   ) where  import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale 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)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)++negativeCorpus :: NegativeCorpus+negativeCorpus = (testContext {locale = makeLocale FR Nothing}, examples)+  where+    examples =+      [ "Ana a un court de tennis"+      , "deux trois"+      , "deux trois minutes"+      ]  allExamples :: [Example] allExamples = concat
Duckling/Time/FR/Rules.hs view
@@ -13,8 +13,9 @@ module Duckling.Time.FR.Rules   ( rules ) where -import Control.Monad (liftM2)+import Data.Text (Text) import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt)@@ -29,20 +30,11 @@ ruleAujourdhui = Rule   { name = "aujourd'hui"   , pattern =-    [ regex "(aujourd'? ?hui)|(ce jour)|(dans la journ(\x00e9|e)e?)|(en ce moment)"+    [ regex "(aujourd'? ?hui)|(ce jour)|(dans la journ(é|e)e?)|(en ce moment)"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "lun\\.?(di)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleDayofmonthNamedmonth :: Rule ruleDayofmonthNamedmonth = Rule   { name = "<day-of-month> <named-month>"@@ -68,7 +60,7 @@ ruleDbutDeSoire = Rule   { name = "début de soirée"   , pattern =-    [ regex "(en |au )?d(\x00e9|e)but de (la )?soir(\x00e9|e)e"+    [ regex "(en |au )?d(é|e)but de (la )?soir(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 18) (hour False 21)@@ -78,7 +70,7 @@ ruleFinDeSoire = Rule   { name = "fin de soirée"   , pattern =-    [ regex "(en |(\x00e0|a) la )?fin de (la )?soir(\x00e9|e)e"+    [ regex "(en |(à|a) la )?fin de (la )?soir(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 21) (hour False 0)@@ -88,7 +80,7 @@ ruleDbutDeMatine = Rule   { name = "début de matinée"   , pattern =-    [ regex "le matin (tr(e|\x00e8)s )?t(\x00f4|o)t|(tr(e|\x00e8)s )?t(\x00f4|o)t le matin|(en |au )?d(\x00e9|e)but de (la )?matin(\x00e9|e)e"+    [ regex "le matin (tr(e|è)s )?t(ô|o)t|(tr(e|è)s )?t(ô|o)t le matin|(en |au )?d(é|e)but de (la )?matin(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 7) (hour False 9)@@ -98,7 +90,7 @@ ruleMilieuDeMatine = Rule   { name = "milieu de matinée"   , pattern =-    [ regex "(en |au )?milieu de (la )?matin(\x00e9|e)e"+    [ regex "(en |au )?milieu de (la )?matin(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 9) (hour False 11)@@ -108,7 +100,7 @@ ruleFinDeMatine = Rule   { name = "fin de matinée"   , pattern =-    [ regex "(en |(\x00e0|a) la )?fin de (la )?matin(\x00e9|e)e"+    [ regex "(en |(à|a) la )?fin de (la )?matin(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 10) (hour False 12)@@ -118,7 +110,7 @@ ruleDbutDaprsmidi = Rule   { name = "début d'après-midi"   , pattern =-    [ regex "(au |en )?d(\x00e9|e)but (d'|de l')apr(e|\x00e9|\x00e8)s( |\\-)midi"+    [ regex "(au |en )?d(é|e)but (d'|de l')apr(e|é|è)s( |\\-)midi"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 12) (hour False 14)@@ -128,7 +120,7 @@ ruleMilieuDaprsmidi = Rule   { name = "milieu d'après-midi"   , pattern =-    [ regex "(au |en )?milieu (d'|de l')apr(e|\x00e9|\x00e8)s( |\\-)midi"+    [ regex "(au |en )?milieu (d'|de l')apr(e|é|è)s( |\\-)midi"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 14) (hour False 17)@@ -138,7 +130,7 @@ ruleFinDaprsmidi = Rule   { name = "fin d'après-midi"   , pattern =-    [ regex "((\x00e0|a) la |en )?fin (d'|de l')apr(e|\x00e9|\x00e8)s( |\\-)midi"+    [ regex "((à|a) la |en )?fin (d'|de l')apr(e|é|è)s( |\\-)midi"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 17) (hour False 19)@@ -148,7 +140,7 @@ ruleDbutDeJourne = Rule   { name = "début de journée"   , pattern =-    [ regex "(en |au )?d(\x00e9|e)but de (la )?journ(\x00e9|e)e"+    [ regex "(en |au )?d(é|e)but de (la )?journ(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>         interval TTime.Open (hour False 6) (hour False 10)@@ -158,7 +150,7 @@ ruleMilieuDeJourne = Rule   { name = "milieu de journée"   , pattern =-    [ regex "(en |au )?milieu de (la )?journ(\x00e9|e)e"+    [ regex "(en |au )?milieu de (la )?journ(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 11) (hour False 16)@@ -168,7 +160,7 @@ ruleFinDeJourne = Rule   { name = "fin de journée"   , pattern =-    [ regex "(en |(\x00e0|a) la )?fin de (la )?journ(\x00e9|e)e"+    [ regex "(en |(à|a) la )?fin de (la )?journ(é|e)e"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 17) (hour False 21)@@ -178,7 +170,7 @@ ruleDbutDeSemaine = Rule   { name = "début de semaine"   , pattern =-    [ regex "(en |au )?d(\x00e9|e)but de (cette |la )?semaine"+    [ regex "(en |au )?d(é|e)but de (cette |la )?semaine"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (dayOfWeek 1) (dayOfWeek 2)@@ -198,7 +190,7 @@ ruleFinDeSemaine = Rule   { name = "fin de semaine"   , pattern =-    [ regex "(en |(\x00e0|a) la )?fin de (cette |la )?semaine"+    [ regex "(en |(à|a) la )?fin de (cette |la )?semaine"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (dayOfWeek 4) (dayOfWeek 7)@@ -217,15 +209,6 @@       _ -> Nothing   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "d(\x00e9|e)cembre|d(\x00e9|e)c\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleCePartofday :: Rule ruleCePartofday = Rule   { name = "ce <part-of-day>"@@ -252,15 +235,6 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mar\\.?(di)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleDurationAvantTime :: Rule ruleDurationAvantTime = Rule   { name = "<duration> avant <time>"@@ -284,21 +258,12 @@   , prod = \_ -> tt $ hour False 12   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "sam\\.?(edi)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"   , pattern =     [ Predicate isNotLatent-    , regex "\\-|au|jusqu'(au?|\x00e0)"+    , regex "\\-|au|jusqu'(au?|à)"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -307,15 +272,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juillet|juil?\\."-    ]-  , prod = \_ -> tt $ month 7-  }- ruleDatetimeddMonthinterval :: Rule ruleDatetimeddMonthinterval = Rule   { name = "<datetime>-dd <month>(interval)"@@ -340,7 +296,7 @@   , pattern =     [ regex "(midi )?de"     , Predicate isATimeOfDay-    , regex "\\-|(jusqu')?(\x00e0|au?)"+    , regex "\\-|(jusqu')?(à|au?)"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -354,7 +310,7 @@   { name = "n prochains <cycle>"   , pattern =     [ Predicate $ isIntegerBetween 2 9999-    , regex "prochaine?s?|suivante?s?|apr(e|\x00e8|\x00e9)s"+    , regex "prochaine?s?|suivante?s?|apr(e|è|é)s"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -369,7 +325,7 @@   { name = "n derniers <cycle>"   , pattern =     [ Predicate $ isIntegerBetween 2 9999-    , regex "derni(e|\x00e8|\x00e9)re?s?"+    , regex "derni(e|è|é)re?s?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -383,7 +339,7 @@ ruleAvantTimeofday = Rule   { name = "avant <time-of-day>"   , pattern =-    [ regex "(n[ ']importe quand )?(avant|jusqu'(a|\x00e0))"+    [ regex "(n[ ']importe quand )?(avant|jusqu'(a|à))"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -469,15 +425,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "jeu\\.?(di)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleNamedmonthProchain :: Rule ruleNamedmonthProchain = Rule   { name = "<named-month> prochain"@@ -509,7 +456,7 @@ ruleToussaint = Rule   { name = "toussaint"   , pattern =-    [ regex "((la |la journ(\x00e9|e)e de la |jour de la )?toussaint|jour des morts)"+    [ regex "((la |la journ(é|e)e de la |jour de la )?toussaint|jour des morts)"     ]   , prod = \_ -> tt $ monthDay 11 1   }@@ -518,7 +465,7 @@ ruleDernierCycleDeTimeLatent = Rule   { name = "dernier <cycle> de <time> (latent)"   , pattern =-    [ regex "derni(e|\x00e9|\x00e8)re?"+    [ regex "derni(e|é|è)re?"     , dimension TimeGrain     , regex "d['e]"     , dimension Time@@ -534,7 +481,7 @@   { name = "<duration> apres <time>"   , pattern =     [ dimension Duration-    , regex "apr(e|\x00e8)s"+    , regex "apr(e|è)s"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -549,7 +496,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "(d')? ?apr(e|\x00e8|\x00e9)s|qui sui(t|ves?)|plus tard"+    , regex "(d')? ?apr(e|è|é)s|qui sui(t|ves?)|plus tard"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -587,7 +534,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "(d')? ?avant|plus t(o|\x00f4)t"+    , regex "(d')? ?avant|plus t(o|ô)t"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -601,7 +548,7 @@   { name = "<dim time> du matin"   , pattern =     [ Predicate isATimeOfDay-    , regex "((du|dans|de) )?((au|le|la) )?mat(in(\x00e9|e)?e?)?"+    , regex "((du|dans|de) )?((au|le|la) )?mat(in(é|e)?e?)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> do@@ -622,22 +569,11 @@   , prod = \tokens -> case tokens of       (token:_:Token Time td:_) -> do         n <- getIntValue token-        from <- intersect (dayOfWeek 5) (hour False 18)-        to <- intersect (dayOfWeek 1) (hour False 0)-        td2 <- intersect td =<< interval TTime.Open from to+        td2 <- intersect td weekend         tt $ predNth (n - 1) False td2       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "janvier|janv\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleHourofdayEtQuart :: Rule ruleHourofdayEtQuart = Rule   { name = "<hour-of-day> et quart"@@ -682,7 +618,7 @@   { name = "<hour-of-day> et|passé de <number>"   , pattern =     [ Predicate isAnHourOfDay-    , regex "et|(pass(\x00e9|e)e? de)"+    , regex "et|(pass(é|e)e? de)"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -700,7 +636,7 @@   { name = "<hour-of-day> et|passé de <number> minutes"   , pattern =     [ Predicate isAnHourOfDay-    , regex "et|(pass(\x00e9|e)e? de)"+    , regex "et|(pass(é|e)e? de)"     , Predicate $ isIntegerBetween 1 59     , regex "min\\.?(ute)?s?"     ]@@ -718,7 +654,7 @@ ruleHourofdayInteger = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay, hasNoDirection]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -734,7 +670,7 @@ ruleHourofdayIntegerMinutes = Rule   { name = "<hour-of-day> <integer> minutes"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     , regex "min\\.?(ute)?s?"     ]@@ -781,7 +717,7 @@ ruleAprsLeDayofmonth = Rule   { name = "après le <day-of-month>"   , pattern =-    [ regex "(apr(e|\x00e8)s le|(a|\x00e0) partir du)"+    [ regex "(apr(e|è)s le|(a|à) partir du)"     , Predicate isDOMInteger     ]   , prod = \tokens -> case tokens of@@ -791,21 +727,12 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mars|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleCycleDernier :: Rule ruleCycleDernier = Rule   { name = "<cycle> dernier"   , pattern =     [ dimension TimeGrain-    , regex "derni(\x00e8|e)re?|pass(\x00e9|e)e?|pr(e|\x00e9)c(e|\x00e9)dente?|(d')? ?avant"+    , regex "derni(è|e)re?|pass(é|e)e?|pr(e|é)c(e|é)dente?|(d')? ?avant"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -859,7 +786,7 @@   { name = "<named-month|named-day> dernier|passé"   , pattern =     [ dimension Time-    , regex "derni(e|\x00e9|\x00e8)re?|pass(\x00e9|e)e?"+    , regex "derni(e|é|è)re?|pass(é|e)e?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -867,22 +794,13 @@       _ -> Nothing   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "avril|avr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleLeCycleDernier :: Rule ruleLeCycleDernier = Rule   { name = "le <cycle> dernier"   , pattern =     [ regex "l[ae']? ?"     , dimension TimeGrain-    , regex "derni(\x00e8|e)re?|pass(\x00e9|e)e?"+    , regex "derni(è|e)re?|pass(é|e)e?"     ]   , prod = \tokens -> case tokens of       (_:Token TimeGrain grain:_) ->@@ -896,7 +814,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "pass(e|\x00e8|\x00e9)(e|\x00e8|\x00e9)?s?|pr(e|\x00e9)c(e|\x00e9)dente?s?|(d')? ?avant|plus t(o|\x00f4)t"+    , regex "pass(e|è|é)(e|è|é)?s?|pr(e|é)c(e|é)dente?s?|(d')? ?avant|plus t(o|ô)t"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -909,21 +827,12 @@ ruleSoir = Rule   { name = "soir"   , pattern =-    [ regex "soir(\x00e9|e)?e?"+    [ regex "soir(é|e)?e?"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 18) (hour False 0)   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "ven\\.?(dredi)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDdddMonthinterval :: Rule ruleDdddMonthinterval = Rule   { name = "dd-dd <month>(interval)"@@ -981,7 +890,7 @@ ruleDbutNamedmonthinterval = Rule   { name = "début <named-month>(interval)"   , pattern =-    [ regex "d(\x00e9|e)but( du mois d[e'] ?)?"+    [ regex "d(é|e)but( du mois d[e'] ?)?"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -992,15 +901,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "f(\x00e9|e)vrier|f(\x00e9|e)v\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleLeCycleDeTime :: Rule ruleLeCycleDeTime = Rule   { name = "le <cycle> de <time>"@@ -1030,7 +930,7 @@ ruleSeason = Rule   { name = "season"   , pattern =-    [ regex "(cet )?(\x00e9|e)t(\x00e9|e)"+    [ regex "(cet )?(é|e)t(é|e)"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (monthDay 6 21) (monthDay 9 23)@@ -1040,7 +940,7 @@ ruleAprsmidi = Rule   { name = "après-midi"   , pattern =-    [ regex "apr(e|\x00e9|\x00e8)s( |\\-)midi"+    [ regex "apr(e|é|è)s( |\\-)midi"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 12) (hour False 19)@@ -1050,7 +950,7 @@ ruleNoel = Rule   { name = "noel"   , pattern =-    [ regex "(jour de )?no(e|\x00eb)l"+    [ regex "(jour de )?no(e|ë)l"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -1082,7 +982,7 @@   { name = "<named-month|named-day> suivant|d'après"   , pattern =     [ dimension Time-    , regex "suivante?s?|d'apr(e|\x00e9|\x00e8)s"+    , regex "suivante?s?|d'apr(e|é|è)s"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -1122,7 +1022,7 @@   { name = "<dim time> du soir"   , pattern =     [ Predicate isATimeOfDay-    , regex "((du|dans|de) )?((au|le|la) )?soir(\x00e9|e)?e?"+    , regex "((du|dans|de) )?((au|le|la) )?soir(é|e)?e?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> do@@ -1136,7 +1036,7 @@ ruleAprsTimeofday = Rule   { name = "après <time-of-day>"   , pattern =-    [ regex "(apr(e|\x00e8)s|(a|\x00e0) partir de|(un peu )?plus tard que)"+    [ regex "(apr(e|è)s|(a|à) partir de|(un peu )?plus tard que)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1149,7 +1049,7 @@ ruleAprsLeDjeuner = Rule   { name = "après le déjeuner"   , pattern =-    [ regex "apr(e|\x00e8)s (le )?d(e|\x00e9|\x00e8)jeuner"+    [ regex "apr(e|è)s (le )?d(e|é|è)jeuner"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -1174,7 +1074,7 @@ ruleErMai = Rule   { name = "1er mai"   , pattern =-    [ regex "f(e|\x00ea)te du travail"+    [ regex "f(e|ê)te du travail"     ]   , prod = \_ -> tt $ monthDay 5 1   }@@ -1183,7 +1083,7 @@ rulePremireQuinzaineDeNamedmonthinterval = Rule   { name = "première quinzaine de <named-month>(interval)"   , pattern =-    [ regex "(premi(\x00e8|e)re|1 ?(\x00e8|e)re) (quinzaine|15 ?aine) d[e']"+    [ regex "(premi(è|e)re|1 ?(è|e)re) (quinzaine|15 ?aine) d[e']"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -1200,7 +1100,7 @@   , pattern =     [ regex "de|depuis|du"     , dimension Time-    , regex "\\-|au|jusqu'(au?|\x00e0)"+    , regex "\\-|au|jusqu'(au?|à)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1223,7 +1123,7 @@   { name = "<cycle> prochain|suivant|d'après"   , pattern =     [ dimension TimeGrain-    , regex "prochaine?|suivante?|qui suit|(d')? ?apr(e|\x00e8|\x00e9)s"+    , regex "prochaine?|suivante?|qui suit|(d')? ?apr(e|è|é)s"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -1231,20 +1131,11 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juin|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleAprsLeTravail :: Rule ruleAprsLeTravail = Rule   { name = "après le travail"   , pattern =-    [ regex "apr(e|\x00e8)s (le )?travail"+    [ regex "apr(e|è)s (le )?travail"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -1252,22 +1143,13 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "ao(\x00fb|u)t|aou\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleLeDayofmonthDatetime :: Rule ruleLeDayofmonthDatetime = Rule   { name = "le <day-of-month> à <datetime>"   , pattern =     [ regex "le"     , Predicate isDOMInteger-    , regex "(a|\x00e0)"+    , regex "(a|à)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1283,10 +1165,7 @@   , pattern =     [ regex "week(\\s|-)?end"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleCedansLeCycle :: Rule@@ -1335,7 +1214,7 @@ ruleAvantLeDjeuner = Rule   { name = "avant le déjeuner"   , pattern =-    [ regex "avant (le )?d(e|\x00e9|\x00e8)jeuner"+    [ regex "avant (le )?d(e|é|è)jeuner"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -1352,10 +1231,7 @@     ]   , prod = \tokens -> case tokens of       (_:Token Time td:_) -> do-        from <- intersect (dayOfWeek 5) (hour False 18)-        to <- intersect (dayOfWeek 1) (hour False 0)-        td2 <- interval TTime.Open from to-        tt $ predLastOf td2 td+        tt $ predLastOf weekend td       _ -> Nothing   } @@ -1365,7 +1241,7 @@   , pattern =     [ regex "l[ae']? ?|une? ?"     , dimension TimeGrain-    , regex "prochaine?|suivante?|qui suit|(d'? ?)?apr(e|\x00e8|\x00e9)s"+    , regex "prochaine?|suivante?|qui suit|(d'? ?)?apr(e|è|é)s"     ]   , prod = \tokens -> case tokens of       (_:Token TimeGrain grain:_) ->@@ -1431,7 +1307,7 @@ ruleDeuximeQuinzaineDeNamedmonthinterval = Rule   { name = "deuxième quinzaine de <named-month>(interval)"   , pattern =-    [ regex "(deuxi(\x00e8|e)me|2 ?(\x00e8|e)me) (quinzaine|15 ?aine) d[e']"+    [ regex "(deuxi(è|e)me|2 ?(è|e)me) (quinzaine|15 ?aine) d[e']"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -1488,7 +1364,7 @@ ruleDernierDayofweekDeTimeLatent = Rule   { name = "dernier <day-of-week> de <time> (latent)"   , pattern =-    [ regex "derni(e|\x00e9|\x00e8)re?"+    [ regex "derni(e|é|è)re?"     , Predicate isADayOfWeek     , regex "d['e]"     , dimension Time@@ -1553,7 +1429,7 @@ ruleMatin = Rule   { name = "matin"   , pattern =-    [ regex "mat(in(\x00e9|e)?e?)?"+    [ regex "mat(in(é|e)?e?)?"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 4) (hour False 12)@@ -1586,12 +1462,11 @@ ruleVersTimeofday = Rule   { name = "à|vers <time-of-day>"   , pattern =-    [ regex "(vers|autour de|(a|\x00e0) environ|aux alentours de|(a|\x00e0))"-    , Predicate isATimeOfDay+    [ regex "(vers|autour de|(a|à) environ|aux alentours de|(a|à))"+    , Predicate $ and . sequence [isATimeOfDay, isNotLatent]     ]   , prod = \tokens -> case tokens of-      (_:Token Time td:_) ->-        tt $ notLatent td+      (_:x:_) -> Just x       _ -> Nothing   } @@ -1654,7 +1529,7 @@   { name = "intersect by 'mais/par exemple/plutôt'"   , pattern =     [ Predicate isNotLatent-    , regex "mais|par exemple|plut(\x00f4|o)t"+    , regex "mais|par exemple|plut(ô|o)t"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1667,9 +1542,9 @@ ruleLeCycleAprssuivantTime = Rule   { name = "le <cycle> après|suivant <time>"   , pattern =-    [ regex "l[ea']? ?"+    [ regex "l[ea']?"     , dimension TimeGrain-    , regex "suivante?|apr(e|\x00e8|\x00e9)s"+    , regex "suivante?|apr(e|è|é)s"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1689,7 +1564,12 @@     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of-      (_:Token RegexMatch (GroupMatch (m1:_)):_:Token RegexMatch (GroupMatch (m2:_)):Token Time td:_) -> do+      (_:+       Token RegexMatch (GroupMatch (m1:_)):+       _:+       Token RegexMatch (GroupMatch (m2:_)):+       Token Time td:+       _) -> do         n1 <- parseInt m1         n2 <- parseInt m2         from <- intersect (dayOfMonth n1) td@@ -1702,29 +1582,11 @@ ruleAprsdemain = Rule   { name = "après-demain"   , pattern =-    [ regex "apr(e|\x00e8)s[- ]?demain"+    [ regex "apr(e|è)s[- ]?demain"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mai"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "dim\\.?(anche)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleIlYADuration :: Rule ruleIlYADuration = Rule   { name = "il y a <duration>"@@ -1742,7 +1604,7 @@ ruleDudansLePartofday = Rule   { name = "du|dans le <part-of-day>"   , pattern =-    [ regex "du|dans l[ae']? ?|au|en|l[ae' ]|d(\x00e8|e)s l?[ae']? ?"+    [ regex "du|dans l[ae']? ?|au|en|l[ae' ]|d(è|e)s l?[ae']?"     , Predicate isAPartOfDay     ]   , prod = \tokens -> case tokens of@@ -1755,7 +1617,7 @@ ruleAuDjeuner = Rule   { name = "au déjeuner"   , pattern =-    [ regex "((\x00e0|a) l'heure du|au moment de|pendant( le)?|au)? d(e|\x00e9|\x00e8)jeuner"+    [ regex "((à|a) l'heure du|au moment de|pendant( le)?|au)? d(e|é|è)jeuner"     ]   , prod = \_ -> Token Time . partOfDay <$>       interval TTime.Open (hour False 12) (hour False 14)@@ -1774,20 +1636,11 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "octobre|oct\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleMaintenant :: Rule ruleMaintenant = Rule   { name = "maintenant"   , pattern =-    [ regex "maintenant|(tout de suite)"+    [ regex "maintenant|tout de suite"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -1811,9 +1664,9 @@ ruleLeCycleAvantprcdentTime = Rule   { name = "le <cycle> avant|précédent <time>"   , pattern =-    [ regex "l[ea']? ?"+    [ regex "l[ea']?"     , dimension TimeGrain-    , regex "avant|pr(\x00e9|e)c(\x00e9|e)dent"+    , regex "avant|pr(é|e)c(é|e)dent"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1826,7 +1679,7 @@ ruleDayOfMonthPremier = Rule   { name = "day of month (premier)"   , pattern =-    [ regex "premier|prem\\.?|1er|1 er"+    [ regex "premier|prem\\.?|1 ?er"     ]   , prod = \_ -> tt $ dayOfMonth 1   }@@ -1836,7 +1689,7 @@   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =     [ Predicate isATimeOfDay-    , regex "\\-|(jusqu')?(au?|\x00e0)"+    , regex "\\-|(jusqu')?(au?|à)"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1858,15 +1711,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "novembre|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleLeTime :: Rule ruleLeTime = Rule   { name = "le <time>"@@ -1883,7 +1727,7 @@ ruleSoirDeNol = Rule   { name = "soir de noël"   , pattern =-    [ regex "soir(\x00e9e)? de no(e|\x00eb)l"+    [ regex "soir(ée)? de no(e|ë)l"     ]   , prod = \_ -> do       from <- intersect (monthDay 12 24) (hour False 18)@@ -1915,15 +1759,6 @@   , prod = \_ -> tt $ monthDay 1 1   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mer\\.?(credi)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleMinuit :: Rule ruleMinuit = Rule   { name = "minuit"@@ -1939,7 +1774,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "prochaine?s?|suivante?s?|apr(e|\x00e8|\x00e9)s|qui sui(t|ves?)|plus tard"+    , regex "prochaine?s?|suivante?s?|apr(e|è|é)s|qui sui(t|ves?)|plus tard"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -1948,8 +1783,8 @@       _ -> Nothing   } -ruleNamedmonth13 :: Rule-ruleNamedmonth13 = Rule+ruleMidMonth :: Rule+ruleMidMonth = Rule   { name = "<named-month>"   , pattern =     [ regex "mi[- ]"@@ -1983,20 +1818,11 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "septembre|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleFinDuMois :: Rule ruleFinDuMois = Rule   { name = "fin du mois"   , pattern =-    [ regex "(en |((\x00e0|a) la ))?fin (du|de) (ce )?mois"+    [ regex "(en |((à|a) la ))?fin (du|de) (ce )?mois"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (dayOfMonth 21) (dayOfMonth 0)@@ -2006,7 +1832,7 @@ ruleDbutDuMois = Rule   { name = "début du mois"   , pattern =-    [ regex "(en |au )?d(\x00e9|e)but (du|de) (ce )?mois"+    [ regex "(en |au )?d(é|e)but (du|de) (ce )?mois"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (dayOfMonth 1) (dayOfMonth 10)@@ -2016,7 +1842,7 @@ ruleFinDAnnee = Rule   { name = "fin d'année"   , pattern =-    [ regex "(en |(\x00e0|a) la )?fin (d'|de l'|de cette )ann(\x00e9|e)e"+    [ regex "(en |(à|a) la )?fin (d'|de l'|de cette )ann(é|e)e"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (month 11) (month 1)@@ -2026,7 +1852,7 @@ ruleDbutDAnnee = Rule   { name = "début d'année"   , pattern =-    [ regex "(en |au )?d(\x00e9|e)but (d'|de l'|de cette )ann(\x00e9|e)e"+    [ regex "(en |au )?d(é|e)but (d'|de l'|de cette )ann(é|e)e"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (month 1) (month 3)@@ -2058,7 +1884,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -2068,6 +1894,51 @@       _ -> Nothing   } +months :: [(Text, String)]+months =+  [ ( "Janvier"   , "janvier|janv\\.?"                    )+  , ( "Fevrier"   , "f(é|e)vrier|f(é|e)v\\.?"   )+  , ( "Mars"      , "mars|mar\\.?"                        )+  , ( "Avril"     , "avril|avr\\.?"                       )+  , ( "Mai"       , "mai"                                 )+  , ( "Juin"      , "juin|jun\\.?"                        )+  , ( "Juillet"   , "juillet|juil?\\."                    )+  , ( "Aout"      , "ao(û|u)t|aou\\.?"               )+  , ( "Septembre" , "septembre|sept?\\.?"                 )+  , ( "Octobre"   , "octobre|oct\\.?"                     )+  , ( "Novembre"  , "novembre|nov\\.?"                    )+  , ( "Decembre"  ,  "d(é|e)cembre|d(é|e)c\\.?" )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }++daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Lundi"    , "lun\\.?(di)?"    )+  , ( "Mardi"    , "mar\\.?(di)?"    )+  , ( "Mercredi" , "mer\\.?(credi)?" )+  , ( "Jeudi"    , "jeu\\.?(di)?"    )+  , ( "Vendredi" , "ven\\.?(dredi)?" )+  , ( "Samedi"   , "sam\\.?(edi)?"   )+  , ( "Dimanche" , "dim\\.?(anche)?" )+  ]++ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }+ rules :: [Rule] rules =   [ ruleAprsLeDayofmonth@@ -2095,6 +1966,7 @@   , ruleDayofmonthNamedmonth   , ruleDayofweekDayofmonth   , ruleDayofweekDayofmonthTimeofday+  , ruleMidMonth   , ruleDayofweekErdayofweekDdMonthinterval   , ruleDayofweekProchain   , ruleDbutDaprsmidi@@ -2168,28 +2040,8 @@   , ruleNCycleSuivants   , ruleNDerniersCycle   , ruleNProchainsCycle-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7   , ruleNameddayEnHuit   , ruleNameddayEnQuinze-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth13-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthProchain   , ruleNamedmonthnameddayDernierpass   , ruleNamedmonthnameddaySuivantdaprs@@ -2233,3 +2085,5 @@   , rulePlusTard   , rulePlusTardPartofday   ]+  ++ ruleMonths+  ++ ruleDaysOfWeek
Duckling/Time/GA/Corpus.hs view
@@ -9,19 +9,20 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.GA.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.TimeGrain.Types hiding (add) import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Time/GA/Rules.hs view
@@ -13,6 +13,7 @@ module Duckling.Time.GA.Rules   ( rules ) where +import Data.Text (Text) import Prelude  import Duckling.Dimensions.Types@@ -27,65 +28,20 @@ ruleArInn = Rule   { name = "arú inné"   , pattern =-    [ regex "ar(\x00fa|u) inn(\x00e9|e)"+    [ regex "ar(ú|u) inn(é|e)"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "luai?n|lu\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleNollaigNaMban :: Rule ruleNollaigNaMban = Rule   { name = "Nollaig na mBan"   , pattern =-    [ regex "(l(\x00e1|a) |an )?nollaig (bheag|na mban)"+    [ regex "(l(á|a) |an )?nollaig (bheag|na mban)"     ]   , prod = \_ -> tt $ monthDay 1 6   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(na )?nollai?g|nol\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }--ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mh?(\x00e1|a)irt|m(\x00e1|a)?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }--ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "sathai?rn|sa\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }--ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?i(\x00fa|u)il|i(\x00fa|u)i\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleInniu :: Rule ruleInniu = Rule   { name = "inniu"@@ -102,7 +58,7 @@     [ regex "an"     , dimension Ordinal     , dimension TimeGrain-    , regex "(i ndiaidh|tar (\x00e9|e)is)"+    , regex "(i ndiaidh|tar (é|e)is)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -115,7 +71,7 @@ ruleInn = Rule   { name = "inné"   , pattern =-    [ regex "inn(\x00e9|e)"+    [ regex "inn(é|e)"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -124,7 +80,7 @@ ruleLFhileBrde = Rule   { name = "Lá Fhéile Bríde"   , pattern =-    [ regex "(l(\x00e1|a) )?(fh(e|\x00e9)ile|'?le) bh?r(\x00ed|i)de"+    [ regex "(l(á|a) )?(fh(e|é)ile|'?le) bh?r(í|i)de"     ]   , prod = \_ -> tt $ monthDay 2 1   }@@ -133,7 +89,7 @@ ruleLFhileVailintn = Rule   { name = "Lá Fhéile Vailintín"   , pattern =-    [ regex "(l(\x00e1|a) )?(fh(e|\x00e9)ile|'?le) vailint(\x00ed|i)n"+    [ regex "(l(á|a) )?(fh(e|é)ile|'?le) vailint(í|i)n"     ]   , prod = \_ -> tt $ monthDay 2 14   }@@ -169,7 +125,7 @@   { name = "<time> seo chugainn"   , pattern =     [ Predicate isNotLatent-    , regex "seo (chugainn|at(a|\x00e1) ag teacht)"+    , regex "seo (chugainn|at(a|á) ag teacht)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -177,20 +133,11 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "d(\x00e9|e)ardaoin|d(\x00e9|e)?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleAmrach :: Rule ruleAmrach = Rule   { name = "amárach"   , pattern =-    [ regex "am(\x00e1|a)rach"+    [ regex "am(á|a)rach"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -208,24 +155,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(an )?t?ean(\x00e1|a)ir|ean\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }--ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(an )?mh?(\x00e1|a)rta|m(\x00e1|a)r\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleOrdinalRithe :: Rule ruleOrdinalRithe = Rule   { name = "<ordinal> ráithe"@@ -261,7 +190,7 @@   { name = "<cycle> ó shin"   , pattern =     [ dimension TimeGrain-    , regex "(\x00f3|o) shin"+    , regex "(ó|o) shin"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -283,15 +212,6 @@       _ -> Nothing   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(an )?t?aibre(\x00e1|a)i?n|abr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleIGceannCycle :: Rule ruleIGceannCycle = Rule   { name = "i gceann <cycle>"@@ -321,15 +241,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "h?aoine|ao\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -376,7 +287,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "(\x00f3|o)(n l(\x00e1|a) (at(\x00e1|a) )?)?inniu"+    , regex "(ó|o)(n l(á|a) (at(á|a) )?)?inniu"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -385,22 +296,13 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(na )?feabhra|fea\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleOrdinalCycleINdiaidhTime :: Rule ruleOrdinalCycleINdiaidhTime = Rule   { name = "<ordinal> <cycle> i ndiaidh <time>"   , pattern =     [ dimension Ordinal     , dimension TimeGrain-    , regex "(i ndiaidh|tar (\x00e9|e)is)"+    , regex "(i ndiaidh|tar (é|e)is)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -436,24 +338,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(an )?mh?eith(ea|i)mh|mei\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }--ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(na )?l(\x00fa|u)nasa|l(\x00fa|u)n\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleAnOrdinalCycleDeTime :: Rule ruleAnOrdinalCycleDeTime = Rule   { name = "an <ordinal> <cycle> de <time>"@@ -474,7 +358,7 @@ ruleLNaNaithreacha = Rule   { name = "Lá na nAithreacha"   , pattern =-    [ regex "l(\x00e1|a) na naithreacha"+    [ regex "l(á|a) na naithreacha"     ]   , prod = \_ -> tt $ nthDOWOfMonth 2 7 6   }@@ -483,7 +367,7 @@ ruleArAmrach = Rule   { name = "arú amárach"   , pattern =-    [ regex "ar(\x00fa|u) am(\x00e1|a)rach"+    [ regex "ar(ú|u) am(á|a)rach"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   }@@ -534,7 +418,7 @@ ruleAnNollaig = Rule   { name = "An Nollaig"   , pattern =-    [ regex "(l(\x00e1|a) |an )?(nollai?g)"+    [ regex "(l(á|a) |an )?(nollai?g)"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -577,7 +461,7 @@ ruleLFhilePdraig = Rule   { name = "Lá Fhéile Pádraig"   , pattern =-    [ regex "(l(\x00e1|a) )?(fh(e|\x00e9)ile|'?le) ph?(\x00e1|a)draig"+    [ regex "(l(á|a) )?(fh(e|é)ile|'?le) ph?(á|a)draig"     ]   , prod = \_ -> tt $ monthDay 3 17   }@@ -588,7 +472,7 @@   , pattern =     [ regex "the"     , dimension TimeGrain-    , regex "(i ndiaidh|tar (\x00e9|e)is)"+    , regex "(i ndiaidh|tar (é|e)is)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -624,24 +508,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(na )?bh?ealtaine|bea\\.?"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "domhnai?[cg]h|do\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleAnDayofmonthNonOrdinal :: Rule ruleAnDayofmonthNonOrdinal = Rule   { name = "an <day-of-month> (non ordinal)"@@ -660,7 +526,7 @@ ruleDNamedday = Rule   { name = "dé named-day"   , pattern =-    [ regex "d(\x00e9|e)"+    [ regex "d(é|e)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -681,15 +547,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?dh?eireadh f(\x00f3|o)mhair|def?\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleCycleRoimhTime :: Rule ruleCycleRoimhTime = Rule   { name = "<cycle> roimh <time>"@@ -731,15 +588,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?(na )?samh(ain|na)|sam\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleAnNamedday :: Rule ruleAnNamedday = Rule   { name = "an named-day"@@ -752,21 +600,57 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "ch?(\x00e9|e)adaoin|c(\x00e9|e)\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday"   , "luai?n|lu\\.?"                       )+  , ( "Tuesday"  , "mh?(á|a)irt|m(á|a)?\\.?"   )+  , ( "Wednesday", "ch?(é|e)adaoin|c(é|e)\\.?" )+  , ( "Thursday" , "d(é|e)ardaoin|d(é|e)?\\.?" )+  , ( "Friday"   , "h?aoine|ao\\.?"                      )+  , ( "Saturday" , "sathai?rn|sa\\.?"                    )+  , ( "Sunday"   , "domhnai?[cg]h|do\\.?"                )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "January"  , "(mh?(í|i) )?(an )?t?ean(á|a)ir|ean\\.?"          )+  , ( "February" , "(mh?(í|i) )?(na )?feabhra|fea\\.?"                    )+  , ( "March"    , "(mh?(í|i) )?(an )?mh?(á|a)rta|m(á|a)r\\.?"  )+  , ( "April"    , "(mh?(í|i) )?(an )?t?aibre(á|a)i?n|abr\\.?"       )+  , ( "May"      , "(mh?(í|i) )?(na )?bh?ealtaine|bea\\.?"                )+  , ( "June"     , "(mh?(í|i) )?(an )?mh?eith(ea|i)mh|mei\\.?"            )+  , ( "July"     , "(mh?(í|i) )?i(ú|u)il|i(ú|u)i\\.?"           )+  , ( "August"   , "(mh?(í|i) )?(na )?l(ú|u)nasa|l(ú|u)n\\.?"   )+  , ( "September", "(mh?(í|i) )?mh?e(á|a)n f(ó|o)mhair|mef?\\.?")+  , ( "October"  , "(mh?(í|i) )?(na )?nollai?g|nol\\.?"                   )+  , ( "November" , "(mh?(í|i) )?(na )?samh(ain|na)|sam\\.?"               )+  , ( "December" , "(mh?(í|i) )?(na )?nollai?g|nol\\.?"                   )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleCycleINdiaidhTime :: Rule ruleCycleINdiaidhTime = Rule   { name = "<cycle> i ndiaidh <time>"   , pattern =     [ dimension TimeGrain-    , regex "(i ndiaidh|tar (\x00e9|e)is)"+    , regex "(i ndiaidh|tar (é|e)is)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -775,15 +659,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(mh?(\x00ed|i) )?mh?e(\x00e1|a)n f(\x00f3|o)mhair|mef?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -837,25 +712,6 @@   , ruleLFhilePdraig   , ruleLFhileVailintn   , ruleLNaNaithreacha-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNollaigNaMban   , ruleOnANamedday   , ruleOrdinalCycleDeTime@@ -870,3 +726,5 @@   , ruleYearLatent2   , ruleYyyymmdd   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/HE/Corpus.hs view
@@ -8,12 +8,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.HE.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -21,7 +22,7 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = HE}, allExamples)+corpus = (testContext {locale = makeLocale HE Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Time/HE/Rules.hs view
@@ -36,7 +36,7 @@   { name = "next <day-of-week>"   , pattern =     [ Predicate isADayOfWeek-    , regex "(\x05d4\x05d1\x05d0(\x05d4)?)"+    , regex "(הבא(ה)?)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -48,7 +48,7 @@ ruleNamedday = Rule   { name = "ב <named-day>"   , pattern =-    [ regex "\x05d1"+    [ regex "ב"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -60,7 +60,7 @@ ruleAtHourTimeofday = Rule   { name = "at hour <time-of-day>"   , pattern =-    [ regex "\x05d1\x05e9\x05e2\x05d4"+    [ regex "בשעה"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -69,21 +69,12 @@       _ -> Nothing   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d3\x05e6\x05de\x05d1\x05e8"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleHourofdayAndInteger :: Rule ruleHourofdayAndInteger = Rule   { name = "<hour-of-day> and <integer>"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x05d5"+    , regex "ו"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -101,8 +92,8 @@   { name = "<hour-of-day> and quarter"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x05d5"-    , regex "\x05e8\x05d1\x05e2(\x05d9)?"+    , regex "ו"+    , regex "רבע(י)?"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -115,8 +106,8 @@   { name = "<hour-of-day> and half"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x05d5"-    , regex "\x05d7\x05e6\x05d9|\x05de\x05d7\x05e6\x05d9\x05ea"+    , regex "ו"+    , regex "חצי|מחצית"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -145,7 +136,7 @@   { name = "<hour-of-day> quarter"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x05e8\x05d1\x05e2(\x05d9)?"+    , regex "רבע(י)?"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -158,7 +149,7 @@   { name = "<hour-of-day> half"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x05d7\x05e6\x05d9|\x05de\x05d7\x05e6\x05d9\x05ea"+    , regex "חצי|מחצית"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -171,7 +162,7 @@   { name = "<integer> to|till|before <integer> (hour-of-day)"   , pattern =     [ Predicate $ isIntegerBetween 1 59-    , regex "\x05dc\x05e4\x05e0\x05d9|\x05dc"+    , regex "לפני|ל"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -186,8 +177,8 @@ ruleQuarterTotillbeforeIntegerHourofday = Rule   { name = "quarter to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "\x05e8\x05d1\x05e2(\x05d9)?"-    , regex "\x05dc\x05e4\x05e0\x05d9|\x05dc"+    [ regex "רבע(י)?"+    , regex "לפני|ל"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -199,8 +190,8 @@ ruleHalfTotillbeforeIntegerHourofday = Rule   { name = "half to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "\x05d7\x05e6\x05d9|\x05de\x05d7\x05e6\x05d9\x05ea"-    , regex "\x05dc\x05e4\x05e0\x05d9|\x05dc"+    [ regex "חצי|מחצית"+    , regex "לפני|ל"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -213,7 +204,7 @@   { name = "integer after|past <integer> (hour-of-day)"   , pattern =     [ Predicate $ isIntegerBetween 1 59-    , regex "\x05d0\x05d7\x05e8\x05d9"+    , regex "אחרי"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -228,8 +219,8 @@ ruleQuarterAfterpastIntegerHourofday = Rule   { name = "quarter after|past <integer> (hour-of-day)"   , pattern =-    [ regex "\x05e8\x05d1\x05e2(\x05d9)?"-    , regex "\x05d0\x05d7\x05e8\x05d9"+    [ regex "רבע(י)?"+    , regex "אחרי"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -241,8 +232,8 @@ ruleHalfAfterpastIntegerHourofday = Rule   { name = "half after|past <integer> (hour-of-day)"   , pattern =-    [ regex "\x05d7\x05e6\x05d9|\x05de\x05d7\x05e6\x05d9\x05ea"-    , regex "\x05d0\x05d7\x05e8\x05d9"+    [ regex "חצי|מחצית"+    , regex "אחרי"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -254,7 +245,7 @@ ruleNamedday2 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e9\x05e0\x05d9"+    [ regex "(יום )?שני"     ]   , prod = \_ -> tt $ dayOfWeek 1   }@@ -263,7 +254,7 @@ ruleSinceTimeofday = Rule   { name = "since <time-of-day>"   , pattern =-    [ regex "\x05de"+    [ regex "מ"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -276,7 +267,7 @@   { name = "last <time>"   , pattern =     [ dimension Time-    , regex "\x05e9\x05e2\x05d1\x05e8|(\x05d4)?\x05e7\x05d5\x05d3\x05dd|(\x05d4)?\x05d0\x05d7\x05e8\x05d5\x05df"+    , regex "שעבר|(ה)?קודם|(ה)?אחרון"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -288,7 +279,7 @@ ruleNamedday6 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e9\x05d9\x05e9\x05d9"+    [ regex "(יום )?שישי"     ]   , prod = \_ -> tt $ dayOfWeek 5   }@@ -298,7 +289,7 @@   { name = "<datetime> - <datetime> (interval)"   , pattern =     [ Predicate isNotLatent-    , regex "\\-|\x05e2(\x05d3)?"+    , regex "\\-|ע(ד)?"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -307,20 +298,11 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d9\x05d5\x05dc\x05d9"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleTheDayofmonthNonOrdinal :: Rule ruleTheDayofmonthNonOrdinal = Rule   { name = "the <day-of-month> (non ordinal)"   , pattern =-    [ regex "\x05d4/S"+    [ regex "ה/S"     , Predicate isDOMInteger     ]   , prod = \tokens -> case tokens of@@ -335,7 +317,7 @@   { name = "<cycle> after <time>"   , pattern =     [ dimension TimeGrain-    , regex "\x05d0\x05d7\x05e8\x05d9"+    , regex "אחרי"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -348,7 +330,7 @@ ruleInDuration = Rule   { name = "in <duration>"   , pattern =-    [ regex "\x05d1\x05e2\x05d5\x05d3"+    [ regex "בעוד"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -360,7 +342,7 @@ ruleInNamedmonth = Rule   { name = "in <named-month>"   , pattern =-    [ regex "\x05d1"+    [ regex "ב"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -372,7 +354,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "\x05e2\x05db\x05e9\x05d9\x05d5|\x05de\x05d9\x05d9\x05d3"+    [ regex "עכשיו|מייד"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -382,7 +364,7 @@   { name = "current <day-of-week>"   , pattern =     [ Predicate isADayOfWeek-    , regex "(\x05d4\x05d6\x05d4|\x05d4\x05d6\x05d0\x05ea|\x05d4\x05e7\x05e8\x05d5\x05d1(\x05d4)?)"+    , regex "(הזה|הזאת|הקרוב(ה)?)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -394,9 +376,9 @@ ruleFromDatetimeDatetimeInterval = Rule   { name = "from <datetime> - <datetime> (interval)"   , pattern =-    [ regex "\x05de|\x05de\x05e9\x05e2\x05d4"+    [ regex "מ|משעה"     , dimension Time-    , regex "\\-|\x05e2\x05d3"+    , regex "\\-|עד"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -409,7 +391,7 @@ ruleNamedday4 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e8\x05d1\x05d9\x05e2\x05d9"+    [ regex "(יום )?רביעי"     ]   , prod = \_ -> tt $ dayOfWeek 3   }@@ -418,9 +400,9 @@ ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"   , pattern =-    [ regex "\x05d4"+    [ regex "ה"     , dimension TimeGrain-    , regex "\x05d0\x05d7\x05e8\x05d9"+    , regex "אחרי"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -433,9 +415,9 @@ ruleTheCycleBeforeTime = Rule   { name = "the <cycle> before <time>"   , pattern =-    [ regex "\x05d4"+    [ regex "ה"     , dimension TimeGrain-    , regex "\x05dc\x05e4\x05e0\x05d9"+    , regex "לפני"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -449,7 +431,7 @@   { name = "last <day-of-week>"   , pattern =     [ Predicate isADayOfWeek-    , regex "(\x05e9\x05e2\x05d1\x05e8(\x05d4)?|\x05d4\x05e7\x05d5\x05d3\x05de\x05ea|\x05d4\x05e7\x05d5\x05d3\x05dd)"+    , regex "(שעבר(ה)?|הקודמת|הקודם)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -461,7 +443,7 @@ ruleTheIdesOfNamedmonth = Rule   { name = "the ides of <named-month>"   , pattern =-    [ regex "\x05d1\x05d0\x05de\x05e6\x05e2"+    [ regex "באמצע"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -475,7 +457,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "(\x05d1)?\x05e6\x05d4\x05e8\x05d9\x05d9\x05dd"+    [ regex "(ב)?צהריים"     ]   , prod = \_ -> tt $ hour False 12   }@@ -484,7 +466,7 @@ ruleToday = Rule   { name = "today"   , pattern =-    [ regex "\x05d4\x05d9\x05d5\x05dd"+    [ regex "היום"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   }@@ -493,9 +475,9 @@ ruleBetweenTimeofdayAndTimeofdayInterval = Rule   { name = "between <time-of-day> and <time-of-day> (interval)"   , pattern =-    [ regex "\x05d1\x05d9\x05df"+    [ regex "בין"     , Predicate isATimeOfDay-    , regex "\x05dc"+    , regex "ל"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -509,36 +491,18 @@   { name = "next <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "\x05d4\x05d1\x05d0(\x05d4)?"+    , regex "הבא(ה)?"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) -> tt $ cycleNth grain 1       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d9\x05e0\x05d5\x05d0\x05e8"-    ]-  , prod = \_ -> tt $ month 1-  }--ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05de\x05e8\x05e5"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleForDuration :: Rule ruleForDuration = Rule   { name = "for <duration>"   , pattern =-    [ regex "\x05ea\x05d5\x05da"+    [ regex "תוך"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -552,7 +516,7 @@   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "\x05de\x05e2\x05db\x05e9\x05d9\x05d5"+    , regex "מעכשיו"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -564,7 +528,7 @@ ruleLunch = Rule   { name = "lunch"   , pattern =-    [ regex "(\x05d1)?\x05e6\x05d4\x05e8\x05d9\x05d9\x05dd"+    [ regex "(ב)?צהריים"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 12) (hour False 14)@@ -575,7 +539,7 @@   { name = "last <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "\x05d4\x05d0\x05d7\x05e8\x05d5\x05df|\x05d4\x05d0\x05d7\x05e8\x05d5\x05e0\x05d4|\x05e9\x05e2\x05d1\x05e8|\x05e9\x05e2\x05d1\x05e8\x05d4"+    , regex "האחרון|האחרונה|שעבר|שעברה"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -587,21 +551,12 @@ ruleAfternoon = Rule   { name = "afternoon"   , pattern =-    [ regex "\x05d0\x05d7\x05d4(\x05f4)?\x05e6|\x05d0\x05d7\x05e8 \x05d4\x05e6\x05d4\x05e8\x05d9\x05d9\x05dd"+    [ regex "אחה(״)?צ|אחר הצהריים"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 12) (hour False 19)   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d0\x05e4\x05e8\x05d9\x05dc"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleNamedmonthDayofmonthOrdinal :: Rule ruleNamedmonthDayofmonthOrdinal = Rule   { name = "<named-month> <day-of-month> (ordinal)"@@ -618,7 +573,7 @@ ruleNamedday5 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05d7\x05de\x05d9\x05e9\x05d9"+    [ regex "(יום )?חמישי"     ]   , prod = \_ -> tt $ dayOfWeek 4   }@@ -654,7 +609,7 @@   , pattern =     [ dimension Ordinal     , dimension Time-    , regex "\x05d0\x05d7\x05e8\x05d9"+    , regex "אחרי"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -681,7 +636,7 @@ ruleAfterDuration = Rule   { name = "after <duration>"   , pattern =-    [ regex "\x05d0\x05d7\x05e8\x05d9"+    [ regex "אחרי"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -707,7 +662,7 @@   { name = "<day-of-month> (ordinal) of <named-month>"   , pattern =     [ Predicate isDOMOrdinal-    , regex "\x05e9\x05dc|\x05d1|\x05dc"+    , regex "של|ב|ל"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -715,20 +670,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05e4\x05d1\x05e8\x05d5\x05d0\x05e8"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleThisEvening :: Rule ruleThisEvening = Rule   { name = "this evening"   , pattern =-    [ regex "\x05d4\x05e2\x05e8\x05d1"+    [ regex "הערב"     ]   , prod = \_ -> do       td <- interval TTime.Open (hour False 18) (hour False 0)@@ -739,9 +685,9 @@ ruleBetweenDatetimeAndDatetimeInterval = Rule   { name = "between <datetime> and <datetime> (interval)"   , pattern =-    [ regex "\x05d1\x05d9\x05df"+    [ regex "בין"     , dimension Time-    , regex "\x05dc"+    , regex "ל"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -754,7 +700,7 @@ ruleEndOfYear = Rule   { name = "End of year"   , pattern =-    [ regex "\x05e1\x05d5\x05e3 (\x05d4)?\x05e9\x05e0\x05d4"+    [ regex "סוף (ה)?שנה"     ]   , prod = \_ -> tt $ cycleNth TG.Year 1   }@@ -763,7 +709,7 @@ ruleDurationAgo = Rule   { name = "<duration> ago"   , pattern =-    [ regex "\x05dc\x05e4\x05e0\x05d9"+    [ regex "לפני"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -778,7 +724,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "\x05d0\x05d7\x05e8\x05d5\x05df|\x05d0\x05d7\x05e8\x05d5\x05e0\x05d5\x05ea|\x05d0\x05d7\x05e8\x05d5\x05e0\x05d4|\x05d0\x05d7\x05e8\x05d5\x05e0\x05d9\x05dd"+    , regex "אחרון|אחרונות|אחרונה|אחרונים"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -791,7 +737,7 @@ ruleMidnighteodendOfDay = Rule   { name = "midnight|EOD|end of day"   , pattern =-    [ regex "(\x05d1)?\x05d7\x05e6\x05d5\x05ea"+    [ regex "(ב)?חצות"     ]   , prod = \_ -> tt $ hour False 0   }@@ -824,7 +770,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "\x05e2\x05d3"+    [ regex "עד"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -837,7 +783,7 @@ ruleAtTimeofday = Rule   { name = "at <time-of-day>"   , pattern =-    [ regex "\x05d1"+    [ regex "ב"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -845,22 +791,13 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d9\x05d5\x05e0\x05d9"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"   , pattern =     [ dimension Time     , dimension Ordinal-    , regex "\x05e9\x05dc|\x05d1"+    , regex "של|ב"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -869,15 +806,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d0\x05d5\x05d2\x05d5\x05e1\x05d8"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -894,12 +822,9 @@ ruleWeekend = Rule   { name = "week-end"   , pattern =-    [ regex "(\x05e1\x05d5\x05e4\x05f4\x05e9|\x05e1\x05d5\x05e3 \x05d4\x05e9\x05d1\x05d5\x05e2)"+    [ regex "(סופ״ש|סוף השבוע)"     ]-  , prod = \_ -> do-      fri <- intersect (dayOfWeek 5) (hour False 18)-      mon <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open fri mon+  , prod = \_ -> tt weekend   }  ruleNameddayDayofmonthOrdinal :: Rule@@ -918,7 +843,7 @@ ruleDate = Rule   { name = "ב <date>"   , pattern =-    [ regex "\x05d1"+    [ regex "ב"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -931,7 +856,7 @@   { name = "next <time>"   , pattern =     [ Predicate isNotLatent-    , regex "\x05d4\x05d1\x05d0(\x05d4)?"+    , regex "הבא(ה)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ predNth 0 True td@@ -971,10 +896,10 @@ ruleTheOrdinalCycleAfterTime = Rule   { name = "the <ordinal> <cycle> after <time>"   , pattern =-    [ regex "\x05d4"+    [ regex "ה"     , dimension Ordinal     , dimension TimeGrain-    , regex "\x05d0\x05d7\x05e8\x05d9|\x05dc\x05d0\x05d7\x05e8"+    , regex "אחרי|לאחר"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -989,7 +914,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "\x05d4\x05d1\x05d0|\x05d4\x05d1\x05d0\x05d4|\x05d4\x05d1\x05d0\x05d9\x05dd|\x05d4\x05d1\x05d0\x05d5\x05ea"+    , regex "הבא|הבאה|הבאים|הבאות"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -1002,7 +927,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "(\x05d1)?\x05d1\x05d5\x05e7\x05e8"+    [ regex "(ב)?בוקר"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 4) (hour False 12)@@ -1013,7 +938,7 @@   { name = "this <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "\x05d4\x05e7\x05e8\x05d5(\x05d1)?\x05d4|\x05d4\x05d6\x05d4|\x05d4\x05d6\x05d0\x05ea"+    , regex "הקרו(ב)?ה|הזה|הזאת"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -1026,7 +951,7 @@   { name = "this <time>"   , pattern =     [ dimension Time-    , regex "\x05d4\x05e7\x05e8\x05d5\x05d1|\x05d4\x05d6\x05d4"+    , regex "הקרוב|הזה"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -1039,7 +964,7 @@   { name = "<day-of-month> (non ordinal) of <named-month>"   , pattern =     [ Predicate isDOMInteger-    , regex "\x05e9\x05dc|\x05d1|\x05dc"+    , regex "של|ב|ל"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -1051,7 +976,7 @@ ruleEndOfMonth = Rule   { name = "End of month"   , pattern =-    [ regex "\x05e1\x05d5\x05e3 (\x05d4)?\x05d7\x05d5\x05d3\x05e9"+    [ regex "סוף (ה)?חודש"     ]   , prod = \_ -> tt $ cycleNth TG.Month 1   }@@ -1060,7 +985,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "(\x05d0\x05ea\x05de\x05d5\x05dc|\x05d0\x05de\x05e9)"+    [ regex "(אתמול|אמש)"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -1069,7 +994,7 @@ ruleAfterTimeofday = Rule   { name = "after <time-of-day>"   , pattern =-    [ regex "\x05d0\x05d7\x05e8\x05d9"+    [ regex "אחרי"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1109,7 +1034,7 @@   , pattern =     [ dimension Ordinal     , dimension TimeGrain-    , regex "\x05d0\x05d7\x05e8\x05d9|\x05dc\x05d0\x05d7\x05e8"+    , regex "אחרי|לאחר"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1118,20 +1043,11 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05de\x05d0\x05d9"-    ]-  , prod = \_ -> tt $ month 5-  }- ruleNamedday7 :: Rule ruleNamedday7 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e9\x05d1\x05ea"+    [ regex "(יום )?שבת"     ]   , prod = \_ -> tt $ dayOfWeek 6   }@@ -1155,7 +1071,7 @@   { name = "<time> of <part-of-day>"   , pattern =     [ dimension Time-    , regex "\x05d1"+    , regex "ב"     , Predicate isAPartOfDay     ]   , prod = \tokens -> case tokens of@@ -1176,15 +1092,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05d0\x05d5\x05e7\x05d8\x05d5\x05d1\x05e8"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleNamedmonthDayofmonthNonOrdinal :: Rule ruleNamedmonthDayofmonthNonOrdinal = Rule   { name = "<named-month> <day-of-month> (non ordinal)"@@ -1201,7 +1108,7 @@ ruleNamedday8 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e8\x05d0\x05e9\x05d5\x05df"+    [ regex "(יום )?ראשון"     ]   , prod = \_ -> tt $ dayOfWeek 7   }@@ -1223,7 +1130,7 @@   { name = "last <day-of-week> of <time>"   , pattern =     [ Predicate isADayOfWeek-    , regex "\x05d4\x05d0\x05d7\x05e8\x05d5\x05df \x05e9\x05dc"+    , regex "האחרון של"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1253,7 +1160,7 @@   { name = "<cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "\x05dc\x05e4\x05e0\x05d9"+    , regex "לפני"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1262,21 +1169,12 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05e0\x05d5\x05d1\x05de\x05d1\x05e8"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"   , pattern =     [ dimension Duration-    , regex "\x05d0\x05d7\x05e8\x05d9|\x05dc\x05d0\x05d7\x05e8"+    , regex "אחרי|לאחר"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1289,7 +1187,7 @@ ruleEveningnight = Rule   { name = "evening|night"   , pattern =-    [ regex "(\x05d1)?\x05e2\x05e8\x05d1"+    [ regex "(ב)?ערב"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 18) (hour False 0)@@ -1314,7 +1212,7 @@ ruleNamedday3 = Rule   { name = "named-day"   , pattern =-    [ regex "(\x05d9\x05d5\x05dd )?\x05e9\x05dc\x05d9\x05e9\x05d9"+    [ regex "(יום )?שלישי"     ]   , prod = \_ -> tt $ dayOfWeek 2   }@@ -1323,7 +1221,7 @@ ruleTheDayofmonthOrdinal = Rule   { name = "the <day-of-month> (ordinal)"   , pattern =-    [ regex "\x05d4"+    [ regex "ה"     , Predicate isDOMOrdinal     ]   , prod = \tokens -> case tokens of@@ -1338,7 +1236,7 @@   { name = "<duration> before <time>"   , pattern =     [ dimension Duration-    , regex "\x05dc\x05e4\x05e0\x05d9"+    , regex "לפני"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1351,9 +1249,9 @@ rulePartofdayOfTime = Rule   { name = "<part-of-day> of <time>"   , pattern =-    [ regex "\x05d1"+    [ regex "ב"     , Predicate isAPartOfDay-    , regex "\x05e9\x05dc"+    , regex "של"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1380,7 +1278,7 @@ ruleTomorrow = Rule   { name = "tomorrow"   , pattern =-    [ regex "(\x05de\x05d7\x05e8|\x05dc\x05de\x05d7\x05e8\x05ea)"+    [ regex "(מחר|למחרת)"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -1397,15 +1295,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x05e1\x05e4\x05d8\x05de\x05d1\x05e8"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1437,6 +1326,31 @@       _ -> Nothing   } +months :: [(Text, String)]+months =+  [ ( "ינואר", "ינואר" )+  , ( "פברואר", "פברואר" )+  , ( "מרץ", "מרץ" )+  , ( "אפריל", "אפריל" )+  , ( "מאי", "מאי" )+  , ( "יוני", "יוני" )+  , ( "יולי", "יולי" )+  , ( "אוגוסט", "אוגוסט" )+  , ( "ספטמבר", "ספטמבר" )+  , ( "אוקטובר", "אוקטובר" )+  , ( "נובמבר", "נובמבר" )+  , ( "דצמבר", "דצמבר" )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ rules :: [Rule] rules =   [ ruleAbsorptionOfAfterNamedDay@@ -1499,18 +1413,6 @@   , ruleNamedday7   , ruleNamedday8   , ruleNameddayDayofmonthOrdinal-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNextCycle@@ -1554,3 +1456,4 @@   , ruleYesterday   , ruleYyyymmdd   ]+  ++ ruleMonths
Duckling/Time/HR/Corpus.hs view
@@ -8,12 +8,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.HR.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -21,7 +22,7 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -433,7 +434,7 @@   , examples (datetime (2015, 2, 0, 0, 0, 0) Month)              [ "za dvije godine"              ]-  , examples (datetime (2013, 12, 0, 0, 0, 0) Month)+  , examples (datetime (2013, 12, 25, 0, 0, 0) Day)              [ "jednu godinu poslije Bozica"              ]   , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
Duckling/Time/HR/Rules.hs view
@@ -11,7 +11,7 @@ module Duckling.Time.HR.Rules   ( rules ) where -import Control.Monad (join, liftM2)+import Control.Monad (join) import Data.Maybe import Data.String import Data.Text (Text)@@ -31,24 +31,51 @@ import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "ponedjelja?ka?|pon\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday"   , "ponedjelja?ka?|pon\\.?"                )+  , ( "Tuesday"  , "utora?ka?|uto?\\.?"                    )+  , ( "Wednesday", "srijed(a|e|u)|sri\\.?"                 )+  , ( "Thursday" , "(č|c)etvrta?ka?|(č|c)et\\.?" )+  , ( "Friday"   , "peta?ka?|pet\\.?"                      )+  , ( "Saturday" , "subot(a|e|u)|sub?\\.?"                 )+  , ( "Sunday"   , "nedjelj(a|e|u)|ned\\.?"                )+  ] -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "prosina?c(a|u)?|decemba?r(a|u)?|dec\\.?|pros?\\.?|dvanaest(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 12-  }+ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      } +months :: [(Text, String)]+months =+  [ ( "January"  , "sije(c|č)a?nj(a|u)?|januar(a|u)?|jan\\.?|sij?\\.?|prv(i|a|o(ga?)?)"                )+  , ( "February" , "(ve)?lja(c|č)(a|e|i)|februar(a|u)?|feb\\.?|ve(lj)?\\.?|drug(i|a|o(ga?)?)"          )+  , ( "March"    , "o(z|ž)uja?k(a|u)?|mart(a|u)?|mar\\.?|o(z|ž)u?\\.?|tre(c|ć)(i|a|e(ga?)?)" )+  , ( "April"    , "trava?nj(a|u)?|april(a|u)?|apr\\.?|tra\\.?|(č|c)etvrt(i|a|o(ga?)?)"                )+  , ( "May"      , "sviba?nj(a|u)?|maj|svi\\.?|pet(i|a|o(ga?)?)"                                            )+  , ( "June"     , "lipa?nj(a|u)?|jun(i|u|a)?|jun\\.?|lip?\\.?|(š|s)est(i|a|o(ga?)?)"                  )+  , ( "July"     , "srpa?nj(a|u)?|jul(i|u|a)?|jul\\.?|srp\\.?|sedm(i|a|o(ga?)?)"                            )+  , ( "August"   , "kolovoz(a|u)?|august(a|u)?|aug\\.?|kol\\.?|osm(i|a|o(ga?)?)"                            )+  , ( "September", "ruja?n(a|u)?|septemba?r(a|u)?|sept?\\.?|ruj\\.?|devet(i|a|o(ga?)?)"                     )+  , ( "October"  , "listopad(a|u)?|oktobar(a|u)?|okt\\.?|lis\\.?|deset(i|a|o(ga?)?)"                        )+  , ( "November" , "studen(i|oga?|om)|novemba?r(a|u)?|nov\\.?|stu\\.?|jedanaest(i|a|o(ga?)?)"               )+  , ( "December" , "prosina?c(a|u)?|decemba?r(a|u)?|dec\\.?|pros?\\.?|dvanaest(i|a|o(ga?)?)"                )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleHalfIntegerHrStyleHourofday :: Rule ruleHalfIntegerHrStyleHourofday = Rule   { name = "half <integer> (HR style hour-of-day)"@@ -81,7 +108,7 @@ ruleQuarterTotillbeforeIntegerHourofday = Rule   { name = "quarter to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "(kvarata?|(c|\x010d)etvrt|frtalj)\\s+do"+    [ regex "(kvarata?|(c|č)etvrt|frtalj)\\s+do"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -121,7 +148,7 @@ ruleQuarterAfterpastHourofday = Rule   { name = "quarter after|past (hour-of-day)"   , pattern =-    [ regex "(kvarata?|(c|\x010d)etvrt|frtalj)\\s+(poslije|nakon)"+    [ regex "(kvarata?|(c|č)etvrt|frtalj)\\s+(poslije|nakon)"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -145,7 +172,7 @@ ruleHourofdayNumeral = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -162,7 +189,7 @@   { name = "<hour-of-day> quarter"   , pattern =     [ Predicate isAnHourOfDay-    , regex "kvarata?|(c|\x010d)etvrt|frtalj"+    , regex "kvarata?|(c|č)etvrt|frtalj"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -205,7 +232,7 @@ ruleZaQuarterHourofday = Rule   { name = "za quarter (hour-of-day)"   , pattern =-    [ regex "za\\s+(kvarata?|(c|\x010d)etvrt|frtalj)"+    [ regex "za\\s+(kvarata?|(c|č)etvrt|frtalj)"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -229,15 +256,6 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "utora?ka?|uto?\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"@@ -272,7 +290,7 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "(prethodn(i|u|a|e|o(ga?)?)|pro(s|\x0161)l(ih?|u|a|e|o(ga?)?))"+    [ regex "(prethodn(i|u|a|e|o(ga?)?)|pro(s|š)l(ih?|u|a|e|o(ga?)?))"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -281,15 +299,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "subot(a|e|u)|sub?\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -304,15 +313,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "srpa?nj(a|u)?|jul(i|u|a)?|jul\\.?|srp\\.?|sedm(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 7-  }- ruleCycleAfterTime :: Rule ruleCycleAfterTime = Rule   { name = "<cycle> after <time>"@@ -367,7 +367,7 @@ ruleFromDatetimeDatetimeInterval = Rule   { name = "from <datetime> - <datetime> (interval)"   , pattern =-    [ regex "od|izme(dj|\x0111)u"+    [ regex "od|izme(dj|đ)u"     , dimension Time     , regex "\\-"     , dimension Time@@ -401,20 +401,11 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "(\x010d|c)etvrta?ka?|(\x010d|c)et\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 4-  }- ruleSeason4 :: Rule ruleSeason4 = Rule   { name = "season"   , pattern =-    [ regex "prolje(c|\x0107)(e|a)"+    [ regex "prolje(c|ć)(e|a)"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 3 20) (monthDay 6 21)@@ -438,7 +429,7 @@   { name = "<time> after next"   , pattern =     [ dimension Time-    , regex "nakon sljede(\x0107|c)(i|e|a)(ga?)?"+    , regex "nakon sljede(ć|c)(i|e|a)(ga?)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Just . Token Time $ predNth 1 True td@@ -468,7 +459,7 @@ ruleToday = Rule   { name = "today"   , pattern =-    [ regex "danas?|(dana(s|\x0161)nj(i|eg) dana?) "+    [ regex "danas?|(dana(s|š)nj(i|eg) dana?) "     ]   , prod = \_ -> Just . Token Time $ cycleNth TG.Day 0   }@@ -477,7 +468,7 @@ ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "ov(aj?|og?|e)|sljede(c|\x0107)(i|u|a|e(ga?)?)"+    [ regex "ov(aj?|og?|e)|sljede(c|ć)(i|u|a|e(ga?)?)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -489,7 +480,7 @@ ruleBetweenTimeofdayAndTimeofdayInterval = Rule   { name = "between <time-of-day> and <time-of-day> (interval)"   , pattern =-    [ regex "od|izme(dj|\x0111)u"+    [ regex "od|izme(dj|đ)u"     , Predicate isATimeOfDay     , regex "do|i"     , Predicate isATimeOfDay@@ -504,7 +495,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "sljede(c|\x0107)(i|a|u|e(ga?)?)"+    [ regex "sljede(c|ć)(i|a|u|e(ga?)?)"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -512,15 +503,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "sije(c|\x010d)a?nj(a|u)?|januar(a|u)?|jan\\.?|sij?\\.?|prv(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 1-  }- ruleTimeofdayApproximately :: Rule ruleTimeofdayApproximately = Rule   { name = "<time-of-day> approximately"@@ -533,20 +515,11 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "o(z|\x017e)uja?k(a|u)?|mart(a|u)?|mar\\.?|o(z|\x017e)u?\\.?|tre(c|\x0107)(i|a|e(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 3-  }- ruleForDuration :: Rule ruleForDuration = Rule   { name = "for <duration>"   , pattern =-    [ regex "za( jo(s|\x0161))?|u"+    [ regex "za( jo(s|š))?|u"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -574,7 +547,7 @@   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "od (sada?|ovog trenutka|dana(s|\x0161)nj(i|eg) dana?)"+    , regex "od (sada?|ovog trenutka|dana(s|š)nj(i|eg) dana?)"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) -> Just . Token Time $ inDuration dd@@ -585,7 +558,7 @@ ruleLunch = Rule   { name = "lunch"   , pattern =-    [ regex "(((za )|(u vrijeme )) )?ru(c|\x010d)a?k(a|om)?"+    [ regex "(((za )|(u vrijeme )) )?ru(c|č)a?k(a|om)?"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 12) (hour False 14)@@ -595,7 +568,7 @@ ruleLastCycle = Rule   { name = "last <cycle>"   , pattern =-    [ regex "prethodn(i|a|e|u)|pro(s|\x0161)l(i|a|e|u|o(ga?)?)"+    [ regex "prethodn(i|a|e|u)|pro(s|š)l(i|a|e|u|o(ga?)?)"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -627,21 +600,12 @@       interval TTime.Open (hour False 12) (hour False 20)   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "trava?nj(a|u)?|april(a|u)?|apr\\.?|tra\\.?|(\x010d|c)etvrt(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"   , pattern =     [ dimension Time-    , regex "prije (prethodn(e|o(ga?)?)|pro(s|\x0161)l(ih?|u|a|e|o(ga?)?))"+    , regex "prije (prethodn(e|o(ga?)?)|pro(s|š)l(ih?|u|a|e|o(ga?)?))"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -653,7 +617,7 @@ ruleLateNight = Rule   { name = "late night"   , pattern =-    [ regex "(((u|po)\\s)?no(c|\x0107)(i|as|u)?|u?jutros?)"+    [ regex "(((u|po)\\s)?no(c|ć)(i|as|u)?|u?jutros?)"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 0) (hour False 4)@@ -692,15 +656,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "peta?ka?|pet\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -745,7 +700,7 @@ ruleAfterDuration = Rule   { name = "after <duration>"   , pattern =-    [ regex "(nakon|poslije)( jo(s|\x0161))?"+    [ regex "(nakon|poslije)( jo(s|š))?"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -794,20 +749,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "(ve)?lja(c|\x010d)(a|e|i)|februar(a|u)?|feb\\.?|ve(lj)?\\.?|drug(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"   , pattern =-    [ regex "to(c|\x010d)no( u)?"+    [ regex "to(c|č)no( u)?"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -851,7 +797,7 @@ ruleBetweenDatetimeAndDatetimeInterval = Rule   { name = "between <datetime> and <datetime> (interval)"   , pattern =-    [ regex "od|izme(dj|\x0111)u"+    [ regex "od|izme(dj|đ)u"     , dimension Time     , regex "do|i"     , dimension Time@@ -914,7 +860,7 @@ ruleLastNCycle = Rule   { name = "last n <cycle>"   , pattern =-    [ regex "prethodn(ih?|a|e)|pro(s|\x0161)l(a|e|ih?)"+    [ regex "prethodn(ih?|a|e)|pro(s|š)l(a|e|ih?)"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -942,7 +888,7 @@ ruleMidnighteodendOfDay = Rule   { name = "midnight|EOD|end of day"   , pattern =-    [ regex "(u )?pono(c|\x0107)i?|(the )?(EOD|((do )? kraja? dana))"+    [ regex "(u )?pono(c|ć)i?|(the )?(EOD|((do )? kraja? dana))"     ]   , prod = \_ -> Just . Token Time $ hour False 0   }@@ -1007,15 +953,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "lipa?nj(a|u)?|jun(i|u|a)?|jun\\.?|lip?\\.?|(\x0161|s)est(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1031,15 +968,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "kolovoz(a|u)?|august(a|u)?|aug\\.?|kol\\.?|osm(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1058,10 +986,7 @@   , pattern =     [ regex "(za )?vikenda?"     ]-  , prod = \_ -> do-      fri <- intersect (dayOfWeek 5) (hour False 18)-      mon <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open fri mon+  , prod = \_ -> tt weekend   }  rulePrijeDuration :: Rule@@ -1113,7 +1038,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "sljede(c|\x0107)(i|u|a|e(ga?)?)"+    [ regex "sljede(c|ć)(i|u|a|e(ga?)?)"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1155,7 +1080,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "(u )?(sljede(c|\x0107)(ih?|a|eg?))"+    [ regex "(u )?(sljede(c|ć)(ih?|a|eg?))"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -1256,7 +1181,7 @@ ruleDayBeforeYesterday = Rule   { name = "day before yesterday"   , pattern =-    [ regex "(prekju(c|\x010d)er)"+    [ regex "(prekju(c|č)er)"     ]   , prod = \_ -> Just . Token Time . cycleNth TG.Day $ - 2   }@@ -1265,7 +1190,7 @@ ruleAfterLunch = Rule   { name = "after lunch"   , pattern =-    [ regex "poslije ru(c|\x010d)ka"+    [ regex "poslije ru(c|č)ka"     ]   , prod = \_ -> do       td <- interval TTime.Open (hour False 13) (hour False 17)@@ -1278,7 +1203,7 @@   { name = "year (latent)"   , pattern =     [ Predicate $-       liftM2 (||) (isIntegerBetween (- 10000) 0) (isIntegerBetween 25 999)+       or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 999]     ]   , prod = \tokens -> case tokens of      (token:_) -> do@@ -1291,7 +1216,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "(ju(c|\x010d)er)"+    [ regex "(ju(c|č)er)"     ]   , prod = \_ -> Just . Token Time . cycleNth TG.Day $ - 1   }@@ -1322,7 +1247,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "(zi(c|\x0107)bo|bo(z|\x017e)i(c|\x0107))(a|u|ni|na)?"+    [ regex "(zi(c|ć)bo|bo(z|ž)i(c|ć))(a|u|ni|na)?"     ]   , prod = \_ -> Just . Token Time $ monthDay 12 25   }@@ -1375,7 +1300,7 @@ ruleAfterNextTime = Rule   { name = "after next <time>"   , pattern =-    [ regex "nakon sljede(\x0107|c)(i|e|a)(ga?)?"+    [ regex "nakon sljede(ć|c)(i|e|a)(ga?)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1383,24 +1308,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "sviba?nj(a|u)?|maj|svi\\.?|pet(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "nedjelj(a|e|u)|ned\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 7-  }- ruleDayAfterTomorrow :: Rule ruleDayAfterTomorrow = Rule   { name = "day after tomorrow"@@ -1428,7 +1335,7 @@ ruleTonight = Rule   { name = "tonight"   , pattern =-    [ regex "(na)?ve(c|\x010d)er(as)?"+    [ regex "(na)?ve(c|č)er(as)?"     ]   , prod = \_ -> do       let today = cycleNth TG.Day 0@@ -1440,7 +1347,7 @@ ruleBeforeLasttime = Rule   { name = "before last<time>"   , pattern =-    [ regex "prije (prethodn(i|u|a|e|o(ga?)?)|pro(s|\x0161)l(ih?|a|e|o(ga?)?))"+    [ regex "prije (prethodn(i|u|a|e|o(ga?)?)|pro(s|š)l(ih?|a|e|o(ga?)?))"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1452,7 +1359,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) (isGrainFinerThan TG.Day) isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isGrainFinerThan TG.Day]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1475,20 +1382,11 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "listopad(a|u)?|oktobar(a|u)?|okt\\.?|lis\\.?|deset(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 10-  }- ruleHalloweenDay :: Rule ruleHalloweenDay = Rule   { name = "halloween day"   , pattern =-    [ regex "no(c|\x0107) vje(s|\x0161)tica"+    [ regex "no(c|ć) vje(s|š)tica"     ]   , prod = \_ -> Just . Token Time $ monthDay 10 31   }@@ -1521,9 +1419,9 @@ ruleFathersDay = Rule   { name = "Father's Day"   , pattern =-    [ regex "dan (o(c|\x010d)eva|tata)"+    [ regex "dan (o(c|č)eva|tata)"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 2 7 6+  , prod = \_ -> tt $ nthDOWOfMonth 3 7 6   }  ruleByTime :: Rule@@ -1572,7 +1470,7 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isNotLatent isATimeOfDay+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|:"     , Predicate isATimeOfDay     ]@@ -1582,15 +1480,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "studen(i|oga?|om)|novemba?r(a|u)?|nov\\.?|stu\\.?|jedanaest(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1609,7 +1498,7 @@ ruleEveningnight = Rule   { name = "evening|night"   , pattern =-    [ regex "(na)?ve(c|\x010d)er(i|as)?"+    [ regex "(na)?ve(c|č)er(i|as)?"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 18) (hour False 0)@@ -1634,20 +1523,11 @@ ruleDayBeforeDayBeforeYesterday = Rule   { name = "day before day before yesterday"   , pattern =-    [ regex "(prek\\s?prekju(c|\x010d)er)"+    [ regex "(prek\\s?prekju(c|č)er)"     ]   , prod = \_ -> Just . Token Time . cycleNth TG.Day $ - 3   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "srijed(a|e|u)|sri\\.?"-    ]-  , prod = \_ -> Just . Token Time $ dayOfWeek 3-  }- ruleDurationBeforeTime :: Rule ruleDurationBeforeTime = Rule   { name = "<duration> before <time>"@@ -1684,9 +1564,9 @@ ruleMothersDay = Rule   { name = "Mother's Day"   , pattern =-    [ regex "maj(c|\x010d)in dan"+    [ regex "maj(c|č)in dan"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 5+  , prod = \_ -> tt $ nthDOWOfMonth 2 7 5   }  ruleTimeofdayOclock :: Rule@@ -1715,15 +1595,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "ruja?n(a|u)?|septemba?r(a|u)?|sept?\\.?|ruj\\.?|devet(i|a|o(ga?)?)"-    ]-  , prod = \_ -> Just . Token Time $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1821,26 +1692,7 @@   , ruleMonthDdddInterval   , ruleMorning   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7   , ruleNameddayDayofmonthOrdinal-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNewYearsDay@@ -1902,3 +1754,5 @@   , ruleZaQuarterHourofday   , ruleZaHalfHourofday   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
+ Duckling/Time/HU/Corpus.hs view
@@ -0,0 +1,176 @@+-- 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.Time.HU.Corpus+  ( corpus+  ) where++import Data.String+import Prelude++import Duckling.Locale+import Duckling.Resolve+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)+import Duckling.Testing.Types hiding (examples)++corpus :: Corpus+corpus = (testContext {locale = makeLocale HU Nothing}, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 2, 12, 4, 30, 0) Second)+             [ "most"+             , "épp most"+             ]+  , examples (datetime (2013, 2, 12, 0, 0, 0) Day)+             [ "ma"+             ]+  , examples (datetime (2013, 2, 13, 0, 0, 0) Day)+             [ "holnap"+             ]+  , examples (datetime (2013, 2, 14, 0, 0, 0) Day)+             [ "holnapután"+             ]+  , examples (datetime (2013, 2, 11, 0, 0, 0) Day)+             [ "tegnap"+             ]+  , examples (datetime (2013, 2, 10, 0, 0, 0) Day)+             [ "tegnapelőtt"+             ]+  , examples (datetime (2013, 3, 1, 0, 0, 0) Month)+             [ "hónap vége"+             , "a hónap vége"+             ]+  , examples (datetime (2014, 1, 1, 0, 0, 0) Year)+             [ "év vége"+             , "az év vége"+             ]+  , examples (datetime (2013, 2, 18, 0, 0, 0) Day)+             [ "hétfő"+             , "hét"+             , "hét."+             ]+  , examples (datetime (2013, 2, 19, 0, 0, 0) Day)+             [ "kedd"+             ]+  , examples (datetime (2013, 2, 17, 0, 0, 0) Day)+             [ "vasárnap"+             , "vas"+             , "vas."+             ]+  , examples (datetime (2014, 1, 1, 0, 0, 0) Month)+             [ "január"+             , "jan"+             , "jan."+             ]+  , examples (datetime (2013, 3, 1, 0, 0, 0) Month)+             [ "március"+             , "már"+             , "már."+             , "márc"+             , "márc"+             ]+  , examples (datetime (2013, 3, 15, 0, 0, 0) Day)+             [ "március 15"+             , "már 15"+             , "már. 15"+             , "márc 15"+             , "márc. 15"+             ]+  , examples (datetime (2013, 3, 1, 0, 0, 0) Month)+             [ "következő hónap"+             , "jövő hónap"+             ]+  , examples (datetime (2012, 1, 1, 0, 0, 0) Year)+             [ "előző év"+             , "múlt év"+             ]+  , examples (datetime (2013, 2, 21, 0, 0, 0) Day)+             [ "jövő csütörtök"+             ]+  , examples (datetime (2013, 2, 12, 15, 20, 0) Minute)+             [ "15:20"+             ]+  , examples (datetime (2013, 2, 12, 8, 20, 0) Minute)+             [ "08:20"+             , "8:20"+             ]+  , examples (datetime (2013, 2, 12, 15, 20, 44) Second)+             [ "15:20:44"+             ]+  , examples (datetime (2013, 2, 12, 8, 20, 44) Second)+             [ "08:20:44"+             , "8:20:44"+             ]+  , examples (datetime (2013, 2, 12, 11, 0, 0) Hour)+             [ "de 11"+             , "de. 11"+             , "délelőtt 11"+             ]+  , examples (datetime (2013, 2, 12, 23, 0, 0) Hour)+             [ "du 11"+             , "du. 11"+             , "délután 11"+             ]+  , examples (datetime (2013, 2, 13, 23, 0, 0) Hour)+             [ "szerda du 11"+             , "szerda du. 11"+             , "szerda délután 11"+             ]+  , examples (datetime (2013, 2, 20, 23, 0, 0) Hour)+             [ "jövő szerda du 11"+             , "jövő szerda du. 11"+             , "jövő szerda délután 11"+             ]+  , examples (datetime (2013, 8, 20, 0, 0, 0) Day)+             [ "2013.08.20"+             , "2013 . 08 . 20"+             , "2013-08-20"+             , "2013 - 08 - 20"+             ]+  , examples (datetime (2013, 8, 20, 11, 45, 0) Minute)+             [ "2013.08.20 11:45"+             ]+  , examples (datetime (2013, 8, 20, 17, 0, 0) Hour)+             [ "2013.08.20 délután 5"+             ]+  , examples (datetime (2013, 8, 20, 0, 0, 0) Day)+             [ "08.20"+             , "08 . 20"+             , "08-20"+             , "08 - 20"+             ]+  , examples (datetimeInterval ((2013, 2, 12, 6, 0, 0), (2013, 2, 12, 10, 0, 0)) Hour)+             [ "ma reggel"+             , "reggel"+             ]+  , examples (datetimeInterval ((2013, 2, 13, 8, 0, 0), (2013, 2, 13, 12, 0, 0)) Hour)+             [ "holnap délelőtt"+             ]+  , examples (datetimeInterval ((2013, 2, 11, 12, 0, 0), (2013, 2, 11, 13, 0, 0)) Hour)+             [ "tegnap délben"+             ]+  , examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 18, 0, 0)) Hour)+             [ "ma délután"+             , "délután"+             ]+  , examples (datetimeInterval ((2013, 2, 12, 16, 0, 0), (2013, 2, 12, 20, 0, 0)) Hour)+             [ "ma este"+             , "este"+             ]+  , examples (datetimeInterval ((2013, 2, 12, 20, 0, 0), (2013, 2, 12, 23, 0, 0)) Hour)+             [ "ma éjszaka"+             , "éjszaka"+             ]+  , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)+             [ "nyár"+             ]+  ]
+ Duckling/Time/HU/Rules.hs view
@@ -0,0 +1,325 @@+-- 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.Time.HU.Rules+  ( rules ) where++import Data.Maybe+import Data.String+import Data.Text (Text)+import Prelude+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Numeral.Helpers (parseInt)+import Duckling.Regex.Types+import Duckling.Types+import Duckling.Time.Helpers+import qualified Duckling.Time.Types as TTime+import qualified Duckling.TimeGrain.Types as TG+++ruleIntersect :: Rule+ruleIntersect = Rule+  { name = "intersect"+  , pattern =+    [ Predicate isNotLatent+    , Predicate isNotLatent+    ]+  , prod = \tokens -> case tokens of+      (Token Time td1:Token Time td2:_) -> Token Time <$> intersect td1 td2+      _ -> Nothing+  }++instants :: [(Text, String, TG.Grain, Int)]+instants =+  [ ("right now",            "((\x00E9pp )?most)|azonnal", TG.Second, 0  )+  , ("today",                "ma",                         TG.Day,    0  )+  , ("tomorrow",             "holnap",                     TG.Day,    1  )+  , ("day after tomorrow",   "holnaput\x00E1n",            TG.Day,    2  )+  , ("yesterday",            "tegnap",                     TG.Day,    -1 )+  , ("day before yesterday", "tegnapel\x0151tt",           TG.Day,    -2 )+  , ("end of month",         "(a )?h\x00F3nap v\x00E9ge",  TG.Month,  1  )+  , ("end of year",          "(az )?\x00E9v v\x00E9ge",    TG.Year,   1  )+  ]++ruleInstants :: [Rule]+ruleInstants = map go instants+  where+    go (name, regexPattern, grain, n) = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ cycleNth grain n+      }++daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday"   , "h\x00E9tf\x0151|h\x00E9t\\.?"           )+  , ( "Tuesday"  , "kedd"                                   )+  , ( "Wednesday", "szerda|szer\\.?"                        )+  , ( "Thursday" , "cs\x00FCt\x00F6rt\x00F6k|cs\x00FCt\\.?" )+  , ( "Friday"   , "p\x00E9ntek|p\x00E9n\\.?"               )+  , ( "Saturday" , "szombat|szom\\.?"                       )+  , ( "Sunday"   , "vas\x00E1rnap|vas\\.?"                  )+  ]++ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "January"  , "janu\x00E1r|jan\\.?"         )+  , ( "February" , "febru\x00E1r|febr?\\.?"      )+  , ( "March"    , "m\x00E1rcius|m\x00E1rc?\\.?" )+  , ( "April"    , "\x00E1prilis|\x00E1pr\\.?"   )+  , ( "May"      , "m\x00E1jus|m\x00E1j\\.?"     )+  , ( "June"     , "j\x00FAnius|j\x00FAn\\.?"    )+  , ( "July"     , "j\x00FAlius|j\x00FAl\\.?"    )+  , ( "August"   , "augusztus|aug\\.?"           )+  , ( "September", "szeptember|szept?\\.?"       )+  , ( "October"  , "okt\x00F3ber|okt\\.?"        )+  , ( "November" , "november|nov\\.?"            )+  , ( "December" , "december|dec\\.?"            )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }++ruleMonthDOMNumeral :: Rule+ruleMonthDOMNumeral = Rule+  { name = "<named-month> <day-of-month> (non ordinal)"+  , pattern =+    [ Predicate isAMonth+    , Predicate isDOMInteger+    ]+  , prod = \tokens -> case tokens of+      (Token Time td:token:_) -> Token Time <$> intersectDOM td token+      _ -> Nothing+  }++ruleCycleThisLastNext :: Rule+ruleCycleThisLastNext = Rule+  { name = "this|last|next <cycle>"+  , pattern =+    [ regex "(most|el\x0151z\x0151|m\x00FAlt|k\x00F6vetkez\x0151|j\x00F6v\x0151)"+    , dimension TimeGrain+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):Token TimeGrain grain:_) ->+        case Text.toLower match of+          "most"                -> tt $ cycleNth grain 0+          "el\x0151z\x0151"     -> tt . cycleNth grain $ - 1+          "m\x00FAlt"           -> tt . cycleNth grain $ - 1+          "k\x00F6vetkez\x0151" -> tt $ cycleNth grain 1+          "j\x00F6v\x0151"      -> tt $ cycleNth grain 1+          _ -> Nothing+      _ -> Nothing+  }++ruleNextDOW :: Rule+ruleNextDOW = Rule+  { name = "next <day-of-week>"+  , pattern =+    [ regex "j\x00F6v\x0151"+    , Predicate isADayOfWeek+    ]+  , prod = \tokens -> case tokens of+      (_:Token Time td:_) -> tt $ predNth 1 True td+      _ -> Nothing+  }++ruleHHMM :: Rule+ruleHHMM = Rule+  { name = "hh:mm"+  , pattern =+    [ regex "((?:[01]?\\d)|(?:2[0-3]))[:.]([0-5]\\d)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (hh:mm:_)):_) -> do+        h <- parseInt hh+        m <- parseInt mm+        tt $ hourMinute True h m+      _ -> Nothing+  }++ruleHHMMSS :: Rule+ruleHHMMSS = Rule+  { name = "hh:mm:ss"+  , pattern =+    [ regex "((?:[01]?\\d)|(?:2[0-3]))[:.]([0-5]\\d)[:.]([0-5]\\d)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (hh:mm:ss:_)):_) -> do+        h <- parseInt hh+        m <- parseInt mm+        s <- parseInt ss+        tt $ hourMinuteSecond True h m s+      _ -> Nothing+  }++ruleTODLatent :: Rule+ruleTODLatent = Rule+  { name = "time-of-day (latent)"+  , pattern =+    [ Predicate $ and . sequence [isNumeralSafeToUse, isIntegerBetween 0 23]+    ]+  , prod = \tokens -> case tokens of+      (token:_) -> do+        n <- getIntValue token+        tt . mkLatent $ hour True n+      _ -> Nothing+  }++ruleTODAM :: Rule+ruleTODAM = Rule+  { name = "am <time-of-day>"+  , pattern =+    [ regex "(de\\.?|d\x00E9lel\x0151tt)"+    , Predicate isATimeOfDay+    ]+  , prod = \tokens -> case tokens of+      (_:Token Time td:_) ->+        tt . timeOfDayAMPM td $ True+      _ -> Nothing+  }++ruleTODPM :: Rule+ruleTODPM = Rule+  { name = "pm <time-of-day>"+  , pattern =+    [ regex "(du\\.?|d\x00E9lut\x00E1n)"+    , Predicate isATimeOfDay+    ]+  , prod = \tokens -> case tokens of+      (_:Token Time td:_) -> tt . timeOfDayAMPM td $ False+      _ -> Nothing+  }++ruleYYYYMMDD :: Rule+ruleYYYYMMDD = Rule+  { name = "yyyy.mm.dd"+  , pattern =+    [ regex "(\\d{2,4})\\s?[-\\.]\\s?(0?[1-9]|1[0-2])\\s?[-\\.]\\s?(3[01]|[12]\\d|0?[1-9])"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (yy:mm:dd:_)):_) -> do+        y <- parseInt yy+        m <- parseInt mm+        d <- parseInt dd+        tt $ yearMonthDay y m d+      _ -> Nothing+  }++ruleMMDD :: Rule+ruleMMDD = Rule+  { name = "mm.dd"+  , pattern =+    [ regex "(0?[1-9]|1[0-2])\\s?[-\\.]\\s?(3[01]|[12]\\d|0?[1-9])"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (mm:dd:_)):_) -> do+        m <- parseInt mm+        d <- parseInt dd+        tt $ monthDay m d+      _ -> Nothing+  }++rulePartOfDays :: Rule+rulePartOfDays = Rule+  { name = "part of days"+  , pattern =+    [ regex "(reggel|d\x00E9lel\x0151tt|d\x00E9lben|d\x00E9lut\x00E1n|este|\x00E9jszaka)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> do+        let (start, end) = case Text.toLower match of+              "reggel"             -> (hour False 6, hour False 10)+              "d\x00E9lel\x0151tt" -> (hour False 08, hour False 12)+              "d\x00E9lben"        -> (hour False 12, hour False 13)+              "d\x00E9lut\x00E1n"  -> (hour False 12, hour False 18)+              "este"               -> (hour False 16, hour False 20)+              _                    -> (hour False 20, hour False 23)+        td <- interval TTime.Open start end+        tt . partOfDay $ td+      _ -> Nothing+  }++-- Since part of days are latent, general time intersection is blocked+ruleTimePOD :: Rule+ruleTimePOD = Rule+  { name = "<time> <part-of-day>"+  , pattern =+    [ dimension Time+    , Predicate isAPartOfDay+    ]+  , prod = \tokens -> case tokens of+      (Token Time td:Token Time pod:_) -> Token Time <$> intersect pod td+      _ -> Nothing+  }++ruleSeasons :: Rule+ruleSeasons = Rule+  { name = "seasons"+  , pattern =+    [ regex "(ny\x00E1r|\x0151sz|t\x00E9l|tavasz)"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (match:_)):_) -> do+        start <- case Text.toLower match of+          "ny\x00E1r" -> Just $ monthDay 6 21+          "\x0151sz"  -> Just $ monthDay 9 23+          "t\x00E9l"  -> Just $ monthDay 12 21+          "tavasz"    -> Just $ monthDay 3 20+          _ -> Nothing+        end <- case Text.toLower match of+          "ny\x00E1r" -> Just $ monthDay 9 23+          "\x0151sz"  -> Just $ monthDay 12 21+          "t\x00E9l"  -> Just $ monthDay 3 20+          "tavasz"    -> Just $ monthDay 6 21+          _ -> Nothing+        Token Time <$> interval TTime.Open start end+      _ -> Nothing++  }++rules :: [Rule]+rules =+  [ ruleIntersect+  , ruleMonthDOMNumeral+  , ruleCycleThisLastNext+  , ruleNextDOW+  , ruleHHMM+  , ruleHHMMSS+  , ruleTODLatent+  , ruleTODAM+  , ruleTODPM+  , ruleYYYYMMDD+  , ruleMMDD+  , rulePartOfDays+  , ruleTimePOD+  , ruleSeasons+  ]+  ++ ruleInstants+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/Helpers.hs view
@@ -12,24 +12,22 @@  module Duckling.Time.Helpers   ( -- Patterns-    isADayOfWeek, isAMonth, isAnHourOfDay, isAPartOfDay, isATimeOfDay-  , isDOMInteger, isDOMOrdinal, isDOMValue, isGrain, isGrainFinerThan-  , isGrainOfTime, isIntegerBetween, isNotLatent, isOrdinalBetween-  , isMidnightOrNoon, isNumeralSafeToUse+    hasNoDirection, isADayOfWeek, isAMonth, isAnHourOfDay, isAPartOfDay+  , isATimeOfDay, isDOMInteger, isDOMOrdinal, isDOMValue, isGrain+  , isGrainFinerThan, isGrainOfTime, isIntegerBetween, isNotLatent+  , isOrdinalBetween, isMidnightOrNoon, isNumeralSafeToUse     -- Production   , cycleLastOf, cycleN, cycleNth, cycleNthAfter, dayOfMonth, dayOfWeek-  , daysOfWeekOfMonth, durationAfter, durationAgo, durationBefore, form, hour-  , hourMinute, hourMinuteSecond, inDuration, intersect, intersectDOM, interval+  , durationAfter, durationAgo, durationBefore, form, hour, hourMinute+  , hourMinuteSecond, inDuration, intersect, intersectDOM, interval   , inTimezone, longWEBefore, minute, minutesAfter, minutesBefore, mkLatent-  , month, monthDay, notLatent, nthDOWOfMonth, partOfDay, predLastOf, predNth-  , predNthAfter, second, timeOfDayAMPM, weekend, withDirection, year-  , yearMonthDay-  , tt+  , month, monthDay, notLatent, now, nthDOWOfMonth, partOfDay, predLastOf+  , predNth, predNthAfter, second, timeOfDayAMPM, weekend, withDirection, year+  , yearMonthDay, tt     -- Other   , getIntValue   ) where -import Control.Monad (liftM2) import Data.Maybe import Data.Text (Text) import Prelude@@ -190,16 +188,23 @@ timeCompose :: TTime.Predicate -> TTime.Predicate -> TTime.Predicate timeCompose pred1 pred2 = mkIntersectPredicate pred1 pred2 +addDuration :: DurationData -> TTime.TimeObject -> TTime.TimeObject+addDuration (DurationData n g) t = TTime.timePlus t g $ toInteger n++mergeDuration :: TTime.Predicate -> DurationData -> TTime.Predicate+mergeDuration pred1 dd@(DurationData _ g) =+  mkSeriesPredicate $! TTime.timeSeqMap False f pred1+  where+    f x@TTime.TimeObject{TTime.grain = tg} _ = Just $ addDuration dd t'+      where+        g' = min tg g+        t' = if g' == tg then x else TTime.timeRound x g'+ shiftDuration :: TTime.Predicate -> DurationData -> TTime.Predicate-shiftDuration pred1 (DurationData n g) =+shiftDuration pred1 dd@(DurationData _ g) =   mkSeriesPredicate $! TTime.timeSeqMap False f pred1   where-    grain = case g of-      TG.Second -> TG.Second-      TG.Year -> TG.Month-      TG.Month -> TG.Day-      _ -> pred g-    f x _ = Just $ TTime.timePlus (TTime.timeRound x grain) g $ toInteger n+    f x _ = Just . addDuration dd . TTime.timeRound x $ TG.lower g  shiftTimezone :: Series.TimeZoneSeries -> TTime.Predicate -> TTime.Predicate shiftTimezone providedSeries pred1 =@@ -269,6 +274,10 @@ isNotLatent (Token Time td) = not $ TTime.latent td isNotLatent _ = False +hasNoDirection :: Predicate+hasNoDirection (Token Time td) = isNothing $ TTime.direction td+hasNoDirection _ = False+ isIntegerBetween :: Int -> Int -> Predicate isIntegerBetween low high (Token Numeral nd) =   TNumeral.isIntegerBetween (TNumeral.value nd) low high@@ -290,7 +299,7 @@ isDOMInteger = isIntegerBetween 1 31  isDOMValue :: Predicate-isDOMValue = liftM2 (||) isDOMOrdinal isDOMInteger+isDOMValue = or . sequence [isDOMOrdinal, isDOMInteger]  -- ----------------------------------------------------------------- -- Production@@ -320,6 +329,10 @@       [] -> Nothing       (x:_) -> Just x +now :: TimeData+now = td {TTime.timeGrain = TG.NoGrain}+  where+    td = cycleNth TG.Second 0  hour :: Bool -> Int -> TimeData hour is12H n = timeOfDay (Just n) is12H $ TTime.timedata'@@ -432,18 +445,24 @@ durationAgo dd = inDuration $ timeNegPeriod dd  durationAfter :: DurationData -> TimeData -> TimeData-durationAfter dd TimeData {TTime.timePred = pred1} = TTime.timedata'-  { TTime.timePred = shiftDuration pred1 dd-  , TTime.timeGrain = TDuration.grain dd}+durationAfter dd TimeData {TTime.timePred = pred1, TTime.timeGrain = g} =+  TTime.timedata'+    { TTime.timePred = if g == TG.NoGrain+      then shiftDuration pred1 dd+      else mergeDuration pred1 dd+    , TTime.timeGrain = TDuration.grain dd+    }  durationBefore :: DurationData -> TimeData -> TimeData durationBefore dd pred1 = durationAfter (timeNegPeriod dd) pred1  inDuration :: DurationData -> TimeData inDuration dd = TTime.timedata'-  { TTime.timePred = shiftDuration (takeNth 0 False $ timeCycle TG.Second) dd+  { TTime.timePred = shiftDuration t dd   , TTime.timeGrain = TDuration.grain dd   }+  where+    t = takeNth 0 False $ timeCycle TG.Second  inTimezone :: Text -> TimeData -> Maybe TimeData inTimezone input td@TimeData {TTime.timePred = p} = do@@ -491,16 +510,13 @@     fri = intersect' (dayOfWeek 5, hour False 18)     mon = intersect' (dayOfWeek 1, hour False 0) -daysOfWeekOfMonth :: Int -> Int -> TimeData-daysOfWeekOfMonth dow m = intersect' (dayOfWeek dow, month m)- -- Zero-indexed weeks, Monday is 1 -- Use `predLastOf` for last day of week of month nthDOWOfMonth :: Int -> Int -> Int -> TimeData-nthDOWOfMonth n dow m = intersect' (dowsM, week)+nthDOWOfMonth n dow m = predNthAfter (n - 1) dow_ month_   where-    dowsM = daysOfWeekOfMonth dow m-    week = cycleNthAfter False TG.Week n $ monthDay m 1+    dow_ = dayOfWeek dow+    month_ = month m  intersectDOM :: TimeData -> Token -> Maybe TimeData intersectDOM td token = do
Duckling/Time/IT/Corpus.hs view
@@ -13,10 +13,10 @@   , negativeCorpus   ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -24,13 +24,14 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = IT}, allExamples)+corpus = (testContext {locale = makeLocale IT Nothing}, allExamples)  negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {lang = IT}, examples)+negativeCorpus = (testContext {locale = makeLocale IT Nothing}, examples)   where     examples =       [ "ma"+      , "3 20"       ]  allExamples :: [Example]@@ -79,6 +80,8 @@              ]   , examples (datetime (2013, 2, 19, 0, 0, 0) Day)              [ "Martedì"+             , "Martedi"+             , "mar"              ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)              [ "Mercoledì"@@ -94,6 +97,7 @@              ]   , examples (datetime (2013, 2, 14, 0, 0, 0) Day)              [ "giovedi"+             , "giovedì"              , "gio"              ]   , examples (datetime (2013, 2, 15, 0, 0, 0) Day)@@ -111,6 +115,16 @@              , "dom"              , "dom."              ]+   , examples (datetime (2013, 1, 1, 0, 0, 0) Month)+              [ "gennaio 2013"+              , "genn 2013"+              , "genn. 2013"+              ]+  , examples (datetime (2013, 12, 1, 0, 0, 0) Month)+              [ "dicembre 2013"+              , "dic 2013"+              , "dic. 2013"+              ]   , examples (datetime (2013, 2, 10, 0, 0, 0) Day)              [ "domenica 10 febbraio"              ]@@ -329,7 +343,7 @@              , "tre e 20"              , "3 e 20"              , "3:20"-             , "3 20"+             , "alle 3 20"              ]   , examples (datetime (2013, 2, 12, 15, 30, 0) Minute)              [ "15:30"
Duckling/Time/IT/Rules.hs view
@@ -13,22 +13,22 @@ module Duckling.Time.IT.Rules   ( rules ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text+import Data.Text (Text) import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Numeral.Types (NumeralData(..))-import qualified Duckling.Numeral.Types as TNumeral import Duckling.Ordinal.Types (OrdinalData(..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types  ruleFestaDellaRepubblica :: Rule ruleFestaDellaRepubblica = Rule@@ -48,15 +48,6 @@   , prod = \_ -> tt $ monthDay 1 6   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "luned(i|\x00ec)|lun?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleDayofmonthNamedmonth :: Rule ruleDayofmonthNamedmonth = Rule   { name = "<day-of-month> <named-month>"@@ -128,15 +119,6 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "dicembre|dic\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleTheCycleNext :: Rule ruleTheCycleNext = Rule   { name = "the <cycle> next"@@ -184,15 +166,6 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "marted(i|\x00ec)|mar\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleYearNotLatent :: Rule ruleYearNotLatent = Rule   { name = "year (1000-2100 not latent)"@@ -404,15 +377,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "sabato|sab\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -427,15 +391,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "luglio|lug\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"@@ -453,7 +408,7 @@ ruleDayOfMonthSt = Rule   { name = "day of month (1st)"   , pattern =-    [ regex "(primo|1o|1\x00ba|1\x00b0)"+    [ regex "(primo|1o|1º|1°)"     ]   , prod = \_ -> tt $ dayOfMonth 1   }@@ -558,7 +513,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -620,7 +575,7 @@ ruleHhRelativeminutesDelPomeriggiotimeofday = Rule   { name = "hh <relative-minutes> del pomeriggio(time-of-day)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     , regex "d(i|el(la)?) (pomeriggio|(sta)?(sera|notte))"     ]@@ -653,11 +608,12 @@         tt $ hourMinute False h n       _ -> Nothing   }+ ruleHourofdayIntegerMinutes :: Rule ruleHourofdayIntegerMinutes = Rule   { name = "<hour-of-day> <integer> minutes"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     , regex "min(ut[oi]|\\.)?"     ]@@ -1039,15 +995,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "gioved(i|\x00ec)|gio\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleSantoStefano :: Rule ruleSantoStefano = Rule   { name = "santo stefano"@@ -1073,7 +1020,7 @@ ruleFestaDelPap = Rule   { name = "festa del papà"   , pattern =-    [ regex "festa del pap(a|\x00e0)|(festa di )?s(an|\\.) giuseppe"+    [ regex "festa del pap(a|à)|(festa di )?s(an|\\.) giuseppe"     ]   , prod = \_ -> tt $ monthDay 3 19   }@@ -1163,15 +1110,51 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "gennaio|genn?\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Lunedi"   , "luned(i|ì)|lun?\\.?"   )+  , ( "Martedi"  , "marted(i|ì)|mar\\.?"   )+  , ( "Mercoledi", "mercoled(i|ì)|mer\\.?" )+  , ( "Giovedi"  , "gioved(i|ì)|gio\\.?"   )+  , ( "Venerdi"  , "venerd(i|ì)|ven\\.?"   )+  , ( "Sabato"   , "sabato|sab\\.?"             )+  , ( "Domenica" , "domenica|dom\\.?"           )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "Gennaio"  , "gennaio|genn?\\.?"   )+  , ( "Febbraio" , "febbraio|febb?\\.?"  )+  , ( "Marzo"    , "marzo|mar\\.?"       )+  , ( "Aprile"   , "aprile|apr\\.?"      )+  , ( "Maggio"   , "maggio|magg?\\.?"    )+  , ( "Giugno"   , "giugno|giu\\.?"      )+  , ( "Luglio"   , "luglio|lug\\.?"      )+  , ( "Agosto"   , "agosto|ago\\.?"      )+  , ( "Settembre", "settembre|sett?\\.?" )+  , ( "Ottobre"  , "ottobre|ott\\.?"     )+  , ( "Novembre" , "novembre|nov\\.?"    )+  , ( "Dicembre" , "dicembre|dic\\.?"    )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleTheCycleOfTime :: Rule ruleTheCycleOfTime = Rule   { name = "the <cycle> of <time>"@@ -1187,15 +1170,6 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "marzo|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleLunch :: Rule ruleLunch = Rule   { name = "lunch"@@ -1251,15 +1225,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "aprile|apr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- rulePartofdayOfDimTime :: Rule rulePartofdayOfDimTime = Rule   { name = "<part-of-day> of <dim time>"@@ -1308,15 +1273,6 @@   , prod = \_ -> tt $ monthDay 12 24   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "venerd(i|\x00ec)|ven\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleNthTimeAfterTime :: Rule ruleNthTimeAfterTime = Rule   { name = "nth <time> after <time>"@@ -1364,15 +1320,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "febbraio|febb?\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleStasera :: Rule ruleStasera = Rule   { name = "stasera"@@ -1566,15 +1513,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "giugno|giu\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1590,15 +1528,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "agosto|ago\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleDalDatetimeAlDatetimeInterval :: Rule ruleDalDatetimeAlDatetimeInterval = Rule   { name = "dal <datetime> al <datetime> (interval)"@@ -1637,10 +1566,7 @@   , pattern =     [ regex "week[ -]?end|fine ?settimana|we"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleIlWeekendDelTime :: Rule@@ -2108,24 +2034,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "maggio|magg?\\.?"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "domenica|dom\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleDalleTimeofdayAlleTimeofdayInterval :: Rule ruleDalleTimeofdayAlleTimeofdayInterval = Rule   { name = "dalle <time-of-day> alle <time-of-day> (interval)"@@ -2141,15 +2049,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "ottobre|ott\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleEntroLeTimeofday :: Rule ruleEntroLeTimeofday = Rule   { name = "entro le <time-of-day>"@@ -2242,15 +2141,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "novembre|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleIleNCyclePassatipassate :: Rule ruleIleNCyclePassatipassate = Rule   { name = "i|le n <cycle> passati|passate"@@ -2267,15 +2157,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mercoled(i|\x00ec)|mer\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleEoyendOfYear :: Rule ruleEoyendOfYear = Rule   { name = "EOY|End of year"@@ -2331,7 +2212,7 @@   , pattern =     [ regex "festa della mamma"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 5+  , prod = \_ -> tt $ nthDOWOfMonth 2 7 5   }  ruleFestaDelLavoro :: Rule@@ -2357,20 +2238,11 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "settembre|sett?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleTimezone :: Rule ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -2444,26 +2316,7 @@   , ruleMidnight   , ruleMorning   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7   , ruleNameddayDayofmonth-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNewYearsDay   , ruleNewYearsEve   , ruleNextCycle@@ -2567,3 +2420,5 @@   , ruleTraIlIntEIlInt   , ruleIlWeekendDelTime   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/KO/Corpus.hs view
@@ -9,12 +9,13 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.KO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -22,7 +23,7 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = KO}, allExamples)+corpus = (testContext {locale = makeLocale KO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Time/KO/Rules.hs view
@@ -13,27 +13,26 @@ module Duckling.Time.KO.Rules   ( rules ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types  ruleNamedday :: Rule ruleNamedday = Rule   { name = "<named-day>에"   , pattern =     [ Predicate isADayOfWeek-    , regex "\xc5d0"+    , regex "에"     ]   , prod = \tokens -> case tokens of       (x:_) -> Just x@@ -44,7 +43,7 @@ ruleLiberationDay = Rule   { name = "Liberation Day"   , pattern =-    [ regex "\xad11\xbcf5\xc808"+    [ regex "광복절"     ]   , prod = \_ -> tt $ monthDay 8 15   }@@ -53,7 +52,7 @@ ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow - 내일모레"   , pattern =-    [ regex "(\xb0b4\xc77c)?\xbaa8\xb808"+    [ regex "(내일)?모\xb808"     ]   , prod = \_ ->       tt . cycleNthAfter False TG.Day 1 $ cycleNth TG.Day 1@@ -63,7 +62,7 @@ ruleConstitutionDay = Rule   { name = "Constitution Day"   , pattern =-    [ regex "\xc81c\xd5cc\xc808"+    [ regex "제헌절"     ]   , prod = \_ -> tt $ monthDay 6 17   }@@ -73,7 +72,7 @@   { name = "<time-of-day>이전"   , pattern =     [ Predicate isATimeOfDay-    , regex "(\xc774)?\xc804"+    , regex "(이)?전"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -86,7 +85,7 @@   { name = "day"   , pattern =     [ Predicate isDOMInteger-    , regex "\xc77c"+    , regex "일"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -100,7 +99,7 @@   { name = "since <time-of-day>"   , pattern =     [ Predicate isATimeOfDay-    , regex "\xc774\xb798\xb85c"+    , regex "이래로"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -112,7 +111,7 @@ ruleThisDayofweek = Rule   { name = "this <day-of-week>"   , pattern =-    [ regex "\xc774\xbc88(\xc8fc)?|\xae08\xc8fc"+    [ regex "이번(주)?|금주"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -125,7 +124,7 @@ ruleNewYearsDay = Rule   { name = "New Year's Day"   , pattern =-    [ regex "\xc2e0\xc815|\xc124\xb0a0"+    [ regex "신정|설날"     ]   , prod = \_ -> tt $ monthDay 1 1   }@@ -134,7 +133,7 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "\xc804|\xc800\xbc88|\xc9c0\xb09c"+    [ regex "전|저번|지난"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -148,7 +147,7 @@   { name = "<datetime> - <datetime> (interval)"   , pattern =     [ Predicate isNotLatent-    , regex "\\-|\\~|\xbd80\xd130"+    , regex "\\-|\\~|부터"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -162,7 +161,7 @@   { name = "in <duration>"   , pattern =     [ dimension Duration-    , regex "(\xc548|\xb0b4)(\xc5d0)?"+    , regex "(안|내)(에)?"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -174,7 +173,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "\xbc29\xae08|\xc9c0\xae08|\xbc29\xae08|\xb9c9"+    [ regex "방금|지금|방금|막"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -184,7 +183,7 @@   { name = "month"   , pattern =     [ Predicate $ isIntegerBetween 1 12-    , regex "\xc6d4"+    , regex "월"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -197,7 +196,7 @@ ruleSeason4 = Rule   { name = "season"   , pattern =-    [ regex "\xbd04"+    [ regex "봄"     ]   , prod = \_ ->       let from = monthDay 3 20@@ -235,7 +234,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "\xc815\xc624"+    [ regex "정오"     ]   , prod = \_ -> tt $ hour False 12   }@@ -244,7 +243,7 @@ ruleToday = Rule   { name = "today"   , pattern =-    [ regex "\xc624\xb298|\xb2f9\xc77c|\xae08\xc77c"+    [ regex "오늘|당일|금일"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   }@@ -253,9 +252,9 @@ ruleIntegerHourofdayRelativeMinutes = Rule   { name = "<integer> (hour-of-day) relative minutes 전"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59-    , regex "\xbd84\xc804"+    , regex "분전"     ]   , prod = \tokens -> case tokens of       (Token Time td:token:_) -> do@@ -269,9 +268,9 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59-    , regex "\xbd84"+    , regex "분"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -287,7 +286,7 @@   { name = "half (hour-of-day) relative minutes 전"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\xbc18\xc804"+    , regex "반전"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$> minutesBefore 30 td@@ -299,7 +298,7 @@   { name = "<hour-of-day> half (as relative minutes)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\xbc18"+    , regex "반"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -312,7 +311,7 @@   { name = "seconds"   , pattern =     [ Predicate $ isIntegerBetween 0 59-    , regex "\xcd08"+    , regex "초"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -339,7 +338,7 @@ ruleTheDayBeforeYesterday = Rule   { name = "the day before yesterday - 엊그제"   , pattern =-    [ regex "(\xc5ca)?\xadf8(\xc81c|\xc7ac)"+    [ regex "(엊)?그(제|재)"     ]   , prod = \_ ->       tt . cycleNthAfter False TG.Day (-1) $ cycleNth TG.Day (-1)@@ -349,17 +348,17 @@ ruleDayofweek = Rule   { name = "day-of-week"   , pattern =-    [ regex "(\xc6d4|\xd654|\xc218|\xbaa9|\xae08|\xd1a0|\xc77c)(\xc694\xc77c|\xc69c)"+    [ regex "(월|화|수|목|금|토|일)(요일|욜)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xc6d4" -> tt $ dayOfWeek 1-        "\xd654" -> tt $ dayOfWeek 2-        "\xc218" -> tt $ dayOfWeek 3-        "\xbaa9" -> tt $ dayOfWeek 4-        "\xae08" -> tt $ dayOfWeek 5-        "\xd1a0" -> tt $ dayOfWeek 6-        "\xc77c" -> tt $ dayOfWeek 7+        "월" -> tt $ dayOfWeek 1+        "화" -> tt $ dayOfWeek 2+        "수" -> tt $ dayOfWeek 3+        "목" -> tt $ dayOfWeek 4+        "금" -> tt $ dayOfWeek 5+        "토" -> tt $ dayOfWeek 6+        "일" -> tt $ dayOfWeek 7         _ -> Nothing       _ -> Nothing   }@@ -368,7 +367,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "\xb2e4\xc74c|\xc624\xb294|\xcc28|\xb0b4"+    [ regex "다음|오는|차|내"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -382,7 +381,7 @@   { name = "<named-month>에"   , pattern =     [ Predicate isAMonth-    , regex "\xc5d0"+    , regex "에"     ]   , prod = \tokens -> case tokens of       (x:_) -> Just x@@ -394,7 +393,7 @@   { name = "<time-of-day> approximately"   , pattern =     [ Predicate isATimeOfDay-    , regex "\xc815\xb3c4|\xcbe4"+    , regex "정도|쯤"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -405,7 +404,7 @@ ruleDurationFromNow = Rule   { name = "<duration> from now"   , pattern =-    [ regex "\xc9c0\xae08\xbd80\xd130"+    [ regex "지금부터"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -418,7 +417,7 @@ ruleLunch = Rule   { name = "lunch"   , pattern =-    [ regex "\xc810\xc2ec"+    [ regex "점심"     ]   , prod = \_ ->       let from = hour False 12@@ -431,7 +430,7 @@ ruleLastCycle = Rule   { name = "last <cycle>"   , pattern =-    [ regex "\xc9c0\xb09c|\xc791|\xc804|\xc800\xbc88"+    [ regex "지난|작|전|저번"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -444,7 +443,7 @@ ruleAfternoon = Rule   { name = "afternoon"   , pattern =-    [ regex "\xc624\xd6c4"+    [ regex "오후"     ]   , prod = \_ ->       let from = hour False 12@@ -457,7 +456,7 @@ ruleChristmasEve = Rule   { name = "christmas eve"   , pattern =-    [ regex "(\xd06c\xb9ac\xc2a4\xb9c8\xc2a4)?\xc774\xbe0c"+    [ regex "(크리스마스)?이브"     ]   , prod = \_ -> tt $ monthDay 12 24   }@@ -467,7 +466,7 @@   { name = "in|during the <part-of-day>"   , pattern =     [ Predicate isAPartOfDay-    , regex "\xc5d0|\xb3d9\xc548"+    , regex "에|동안"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -508,7 +507,7 @@   { name = "after <duration>"   , pattern =     [ dimension Duration-    , regex "(\xc774)?\xd6c4"+    , regex "(이)?후"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -534,7 +533,7 @@   { name = "exactly <time-of-day>"   , pattern =     [ Predicate isATimeOfDay-    , regex "\xc815\xac01"+    , regex "정각"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -545,7 +544,7 @@ ruleSeason3 = Rule   { name = "season"   , pattern =-    [ regex "\xaca8\xc6b8"+    [ regex "겨울"     ]   , prod = \_ ->       let from = monthDay 12 21@@ -557,7 +556,7 @@ ruleSeason = Rule   { name = "season"   , pattern =-    [ regex "\xc5ec\xb984"+    [ regex "여름"     ]   , prod = \_ ->       let from = monthDay 6 21@@ -569,24 +568,24 @@ ruleDayWithKoreanNumeral = Rule   { name = "day with korean number - 십일..삼십일일"   , pattern =-    [ regex "((\xc774|\xc0bc)?\xc2ed(\xc77c|\xc774|\xc0bc|\xc0ac|\xc624|\xc721|\xce60|\xd314|\xad6c)?)\xc77c"+    [ regex "((이|삼)?십(일|이|삼|사|오|육|칠|팔|구)?)일"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (_:m1:m2:_)):_) ->         let dozens = case m1 of-              "\xc774" -> 2-              "\xc0bc" -> 3+              "이" -> 2+              "삼" -> 3               _        -> 1             units = case m2 of-              "\xc77c" -> 1-              "\xc774" -> 2-              "\xc0bc" -> 3-              "\xc0ac" -> 4-              "\xc624" -> 5-              "\xc721" -> 6-              "\xce60" -> 7-              "\xd314" -> 8-              "\xad6c" -> 9+              "일" -> 1+              "이" -> 2+              "삼" -> 3+              "사" -> 4+              "오" -> 5+              "육" -> 6+              "칠" -> 7+              "팔" -> 8+              "구" -> 9               _        -> 1         in tt . dayOfMonth $ 10 * dozens + units       _ -> Nothing@@ -596,19 +595,19 @@ ruleDayWithKoreanNumeral2 = Rule   { name = "day with korean number - 일일..구일"   , pattern =-    [ regex "(\xc77c|\xc774|\xc0bc|\xc0ac|\xc624|\xc721|\xce60|\xd314|\xad6c)\xc77c"+    [ regex "(일|이|삼|사|오|육|칠|팔|구)일"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case match of-        "\xc77c" -> tt $ dayOfMonth 1-        "\xc774" -> tt $ dayOfMonth 2-        "\xc0bc" -> tt $ dayOfMonth 3-        "\xc0ac" -> tt $ dayOfMonth 4-        "\xc624" -> tt $ dayOfMonth 5-        "\xc721" -> tt $ dayOfMonth 6-        "\xce60" -> tt $ dayOfMonth 7-        "\xd314" -> tt $ dayOfMonth 8-        "\xad6c" -> tt $ dayOfMonth 9+        "일" -> tt $ dayOfMonth 1+        "이" -> tt $ dayOfMonth 2+        "삼" -> tt $ dayOfMonth 3+        "사" -> tt $ dayOfMonth 4+        "오" -> tt $ dayOfMonth 5+        "육" -> tt $ dayOfMonth 6+        "칠" -> tt $ dayOfMonth 7+        "팔" -> tt $ dayOfMonth 8+        "구" -> tt $ dayOfMonth 9         _ -> Nothing       _ -> Nothing   }@@ -618,7 +617,7 @@   { name = "<time-of-day>에"   , pattern =     [ Predicate isATimeOfDay-    , regex "\xc5d0"+    , regex "에"     ]   , prod = \tokens -> case tokens of       (_:Token Time td:_) ->@@ -631,7 +630,7 @@   { name = "<duration> ago"   , pattern =     [ dimension Duration-    , regex "(\xc774)?\xc804"+    , regex "(이)?전"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -643,7 +642,7 @@ ruleLastNCycle = Rule   { name = "last n <cycle>"   , pattern =-    [ regex "\xc9c0\xb09c"+    [ regex "지난"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -675,7 +674,7 @@   { name = "within <duration>"   , pattern =     [ dimension Duration-    , regex "\xc774\xb0b4(\xc5d0)?"+    , regex "이내(에)?"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -689,7 +688,7 @@ ruleMidnighteodendOfDay = Rule   { name = "midnight|EOD|end of day"   , pattern =-    [ regex "\xc790\xc815"+    [ regex "자정"     ]   , prod = \_ -> tt $ hour False 0   }@@ -711,7 +710,7 @@ ruleAboutTimeofday = Rule   { name = "about <time-of-day>"   , pattern =-    [ regex "\xb300\xcda9|\xc57d"+    [ regex "대충|약"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -724,7 +723,7 @@   { name = "end of <time>"   , pattern =     [ dimension Time-    , regex "\xb9d0"+    , regex "말"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -749,12 +748,9 @@ ruleWeekend = Rule   { name = "week-end"   , pattern =-    [ regex "\xc8fc\xb9d0"+    [ regex "주말"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleTimeDayofweek :: Rule@@ -762,7 +758,7 @@   { name = "<time> 마지막 <day-of-week>"   , pattern =     [ dimension Time-    , regex "\xb9c8\xc9c0\xb9c9"+    , regex "마지막"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -776,7 +772,7 @@   { name = "<date>에"   , pattern =     [ dimension Time-    , regex "\xc5d0"+    , regex "에"     ]   , prod = \tokens -> case tokens of       (x:_) -> Just x@@ -787,7 +783,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "\xb2e4\xc74c|\xc624\xb294"+    [ regex "다음|오는"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -801,7 +797,7 @@   { name = "<time> 마지막 <cycle>"   , pattern =     [ dimension Time-    , regex "\xb9c8\xc9c0\xb9c9"+    , regex "마지막"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -829,7 +825,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "\xb2e4\xc74c"+    [ regex "다음"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -844,7 +840,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "\xc544\xce68"+    [ regex "아침"     ]   , prod = \_ ->       let from = hour False 4@@ -857,7 +853,7 @@ ruleThisCycle = Rule   { name = "this <cycle>"   , pattern =-    [ regex "\xc774\xbc88|\xae08|\xc62c"+    [ regex "이번|금|올"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -870,7 +866,7 @@ ruleThisTime = Rule   { name = "this <time>"   , pattern =-    [ regex "\xc774\xbc88"+    [ regex "이번"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -884,7 +880,7 @@   { name = "<time-of-day> 정각"   , pattern =     [ Predicate isATimeOfDay-    , regex "\xc815\xac01"+    , regex "정각"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -896,7 +892,7 @@ ruleMemorialDay = Rule   { name = "Memorial Day"   , pattern =-    [ regex "\xd604\xcda9\xc77c"+    [ regex "현충일"     ]   , prod = \_ -> tt $ monthDay 6 6   }@@ -918,7 +914,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "\xc5b4\xc81c"+    [ regex "어제"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -927,7 +923,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "\xac00\xc744"+    [ regex "가을"     ]   , prod = \_ ->       let from = monthDay 9 23@@ -939,8 +935,8 @@ ruleAfterTimeofday = Rule   { name = "after <time-of-day>"   , pattern =-    [ Predicate $ liftM2 (||) isATimeOfDay isAPartOfDay-    , regex "\xc9c0\xb098\xc11c|(\xc774)?\xd6c4(\xc5d0)?"+    [ Predicate $ or . sequence [isATimeOfDay, isAPartOfDay]+    , regex "지나서|(이)?후(에)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -952,7 +948,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "\xd06c\xb9ac\xc2a4\xb9c8\xc2a4"+    [ regex "크리스마스"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -975,7 +971,7 @@   { name = "<time> 마지막 <cycle> "   , pattern =     [ dimension Time-    , regex "\xb9c8\xc9c0\xb9c9"+    , regex "마지막"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -993,7 +989,7 @@   { name = "after <part-of-day>"   , pattern =     [ Predicate isAPartOfDay-    , regex "\xc9c0\xb098\xc11c|\xd6c4\xc5d0"+    , regex "지나서|후에"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -1006,7 +1002,7 @@   { name = "time-of-day"   , pattern =     [ Predicate $ isIntegerBetween 0 24-    , regex "\xc2dc"+    , regex "시"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -1019,7 +1015,7 @@ ruleHangulDay = Rule   { name = "Hangul Day"   , pattern =-    [ regex "\xd55c\xae00\xb0a0"+    [ regex "한글날"     ]   , prod = \_ -> tt $ monthDay 10 9   }@@ -1070,7 +1066,7 @@ ruleChildrensDay = Rule   { name = "Children's Day"   , pattern =-    [ regex "\xc5b4\xb9b0\xc774\xb0a0"+    [ regex "어린이날"     ]   , prod = \_ -> tt $ monthDay 5 5   }@@ -1092,7 +1088,7 @@   { name = "by <time> - 까지"   , pattern =     [ dimension Time-    , regex "\xae4c\xc9c0"+    , regex "까지"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$>@@ -1135,8 +1131,8 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent-    , regex "\\-|\\~|\xbd80\xd130"+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]+    , regex "\\-|\\~|부터"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1149,7 +1145,7 @@ ruleNationalFoundationDay = Rule   { name = "National Foundation Day"   , pattern =-    [ regex "\xac1c\xcc9c\xc808"+    [ regex "개천절"     ]   , prod = \_ -> tt $ monthDay 10 3   }@@ -1158,7 +1154,7 @@ ruleEveningnight = Rule   { name = "evening|night"   , pattern =-    [ regex "\xc800\xb141|\xbc24"+    [ regex "저녁|밤"     ]   , prod = \_ ->       let from = hour False 18@@ -1171,7 +1167,7 @@ ruleIndependenceMovementDay = Rule   { name = "Independence Movement Day"   , pattern =-    [ regex "\xc0bc\xc77c\xc808"+    [ regex "삼일절"     ]   , prod = \_ -> tt $ monthDay 3 1   }@@ -1195,7 +1191,7 @@ ruleTomorrow = Rule   { name = "tomorrow"   , pattern =-    [ regex "\xb0b4\xc77c|\xba85\xc77c|\xb0bc"+    [ regex "내일|명일|낼"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -1204,14 +1200,14 @@ ruleAmpmTimeofday = Rule   { name = "am|pm <time-of-day>"   , pattern =-    [ regex "(\xc624\xc804|\xc544\xce68|\xc624\xd6c4|\xc800\xb141)"+    [ regex "(오전|아침|오후|저녁)"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):        Token Time td:        _) -> tt . timeOfDayAMPM td $-         elem match ["\xc624\xc804", "\xc544\xce68"]+         elem match ["오전", "아침"]       _ -> Nothing   } @@ -1220,7 +1216,7 @@   { name = "year"   , pattern =     [ Predicate $ isIntegerBetween 1 2100-    , regex "\xb144"+    , regex "년"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -1248,7 +1244,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of
Duckling/Time/NB/Corpus.hs view
@@ -5,16 +5,16 @@ -- 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.Time.NB.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month)@@ -22,7 +22,7 @@ import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = NB}, allExamples)+corpus = (testContext {locale = makeLocale NB Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -408,7 +408,7 @@   , examples (datetime (1954, 0, 0, 0, 0, 0) Year)              [ "1954"              ]-  , examples (datetime (2013, 12, 0, 0, 0, 0) Month)+  , examples (datetime (2013, 12, 24, 0, 0, 0) Day)              [ "et år etter julaften"              , "ett år etter julaften"              ]
Duckling/Time/NB/Rules.hs view
@@ -13,29 +13,20 @@ module Duckling.Time.NB.Rules   ( rules ) where -import Control.Monad (liftM2)+import Data.Text (Text) import Prelude  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "mandag|man\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleTheDayAfterTomorrow :: Rule ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"@@ -45,21 +36,12 @@   , prod = \_ -> tt $ cycleNth TG.Day 2   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "desember|des\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"   , pattern =     [ Predicate $ isIntegerBetween 1 59-    , regex "p\x00e5"+    , regex "på"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -92,7 +74,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -108,7 +90,7 @@ ruleQuarterTotillbeforeIntegerHourofday = Rule   { name = "quarter to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "(et)? ?(kvart)(er)? *p\x00e5"+    [ regex "(et)? ?(kvart)(er)? *på"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -147,7 +129,7 @@ ruleHalfTotillbeforeIntegerHourofday = Rule   { name = "half to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "halv time *p\x00e5"+    [ regex "halv time *på"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -191,15 +173,6 @@   , prod = \_ -> tt $ monthDay 5 17   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "tirsdag|tirs?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"@@ -245,7 +218,7 @@ ruleNewYearsDay = Rule   { name = "new year's day"   , pattern =-    [ regex "nytt\x00e5rsdag"+    [ regex "nyttårsdag"     ]   , prod = \_ -> tt $ monthDay 1 1   }@@ -263,15 +236,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "l\x00f8rdag|l\x00f8r\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -286,15 +250,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juli|jul\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"@@ -353,7 +308,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "akkurat n\x00e5|n\x00e5|(i )?dette \x00f8yeblikk"+    [ regex "akkurat nå|nå|(i )?dette øyeblikk"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -411,15 +366,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "torsdag|tors?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleTheCycleAfterTime :: Rule ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"@@ -439,7 +385,7 @@   { name = "the <cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "(en|tet|et)? f\x00f8r"+    , regex "(en|tet|et)? før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -524,7 +470,7 @@ ruleTheDayBeforeYesterday = Rule   { name = "the day before yesterday"   , pattern =-    [ regex "i forig\x00e5rs"+    [ regex "i forigårs"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   }@@ -557,15 +503,51 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "januar|jan\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Mandag"  , "mandag|man\\.?"    )+  , ( "Tirsdag" , "tirsdag|tirs?\\.?" )+  , ( "Onsdag"  , "onsdag|ons\\.?"    )+  , ( "Torsdag" , "torsdag|tors?\\.?" )+  , ( "Fredag"  , "fredag|fre\\.?"    )+  , ( "Lørdag"  , "lørdag|lør\\.?"    )+  , ( "Søndag"  , "søndag|søn\\.?"    )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "Januar"   , "januar|jan\\.?"      )+  , ( "Februar"  , "februar|feb\\.?"     )+  , ( "Mars"     , "mars|mar\\.?"        )+  , ( "April"    , "april|apr\\.?"       )+  , ( "Mai"      , "mai"                 )+  , ( "Juni"     , "juni|jun\\.?"        )+  , ( "Juli"     , "juli|jul\\.?"        )+  , ( "August"   , "august|aug\\.?"      )+  , ( "September", "september|sept?\\.?" )+  , ( "Oktober"  , "oktober|okt\\.?"     )+  , ( "November" , "november|nov\\.?"    )+  , ( "Desember" , "desember|des\\.?"    )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleTheCycleOfTime :: Rule ruleTheCycleOfTime = Rule   { name = "the <cycle> of <time>"@@ -596,7 +578,7 @@ ruleOnDate = Rule   { name = "on <date>"   , pattern =-    [ regex "den|p\x00e5"+    [ regex "den|på"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -604,21 +586,12 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mars|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDurationFromNow :: Rule ruleDurationFromNow = Rule   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "fra (i dag|idag|n\x00e5)"+    , regex "fra (i dag|idag|nå)"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -679,15 +652,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "april|apr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"@@ -736,15 +700,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "fredag|fre\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -831,7 +786,7 @@   , pattern =     [ regex "(etter|fra)"     , Predicate isATimeOfDay-    , regex "((men )?f\x00f8r)|\\-|tilogmed|til"+    , regex "((men )?før)|\\-|tilogmed|til"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -840,15 +795,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "februar|feb\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"@@ -906,7 +852,7 @@ ruleNewYearsEve = Rule   { name = "new year's eve"   , pattern =-    [ regex "nytt\x00e5rsaften?"+    [ regex "nyttårsaften?"     ]   , prod = \_ -> tt $ monthDay 12 31   }@@ -1051,7 +997,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "(engang )?innen|f\x00f8r|opptil"+    [ regex "(engang )?innen|før|opptil"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1073,15 +1019,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juni|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1097,15 +1034,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "august|aug\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1125,10 +1053,7 @@   , pattern =     [ regex "((week(\\s|-)?end)|helg)(en|a)?"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleEomendOfMonth :: Rule@@ -1256,7 +1181,7 @@ ruleADuration = Rule   { name = "a <duration>"   , pattern =-    [ regex "(om )?en|ett|\x00e9n|et"+    [ regex "(om )?en|ett|én|et"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -1295,7 +1220,7 @@ ruleThisCycle = Rule   { name = "this <cycle>"   , pattern =-    [ regex "denne|dette|i|n\x00e5v\x00e6rende"+    [ regex "denne|dette|i|nåværende"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1346,7 +1271,7 @@ ruleOnANamedday = Rule   { name = "on a named-day"   , pattern =-    [ regex "p\x00e5 en"+    [ regex "på en"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -1359,7 +1284,7 @@   { name = "year (latent)"   , pattern =     [ Predicate $-       liftM2 (||) (isIntegerBetween (- 10000) 0) (isIntegerBetween 25 999)+       or . sequence [isIntegerBetween (- 10000) 0, isIntegerBetween 25 999]     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -1372,7 +1297,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "i g\x00e5r|ig\x00e5r"+    [ regex "i går|igår"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -1406,7 +1331,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "((1\\.?)|f\x00f8rste)? ?juledag"+    [ regex "((1\\.?)|første)? ?juledag"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -1466,24 +1391,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mai"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "s\x00f8ndag|s\x00f8n\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1523,15 +1430,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "oktober|okt\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleHalloweenDay :: Rule ruleHalloweenDay = Rule   { name = "halloween day"@@ -1586,7 +1484,7 @@   , pattern =     [ regex "farsdag"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 11+  , prod = \_ -> tt $ nthDOWOfMonth 2 7 11   }  ruleCycleBeforeTime :: Rule@@ -1594,7 +1492,7 @@   { name = "<cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "f\x00f8r"+    , regex "før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1622,7 +1520,7 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|tilogmed|til"     , Predicate isATimeOfDay     ]@@ -1632,15 +1530,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "november|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1670,15 +1559,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "onsdag|ons\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleTheDayofmonthOrdinal :: Rule ruleTheDayofmonthOrdinal = Rule   { name = "the <day-of-month> (ordinal)"@@ -1697,7 +1577,7 @@   { name = "<duration> before <time>"   , pattern =     [ dimension Duration-    , regex "f\x00f8r"+    , regex "før"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1744,7 +1624,7 @@   , pattern =     [ regex "morsdag"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 2+  , prod = \_ -> tt $ nthDOWOfMonth 2 7 2   }  ruleTimeofdayOclock :: Rule@@ -1760,15 +1640,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "september|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1807,7 +1678,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1880,25 +1751,6 @@   , ruleMonthDdddInterval   , ruleMorning   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNewYearsDay@@ -1964,3 +1816,5 @@   , ruleYyyymmdd   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/PL/Corpus.hs view
@@ -9,21 +9,38 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.PL.Corpus-  ( corpus ) where+  ( corpus+  , negativeCorpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale 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)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = PL}, allExamples)+corpus = (testContext {locale = makeLocale PL Nothing}, allExamples) +negativeCorpus :: NegativeCorpus+negativeCorpus = (testContext {locale = makeLocale PL Nothing}, examples)+  where+    examples =+      [ "nie"+      , "niez"+      , "Za Herbatke"+      , "za herbatke"+      , "No nic"+      , "no nic"+      , "pierwszy"+      , "drugiej"+      , "trzecia piętnaście"+      ]+ allExamples :: [Example] allExamples = concat   [ examples (datetime (2013, 2, 12, 4, 30, 0) Second)@@ -94,6 +111,8 @@              , "ta niedziela"              , "niedz"              , "niedz."+             , "nd"+             , "ndz"              ]   , examples (datetime (2013, 3, 1, 0, 0, 0) Day)              [ "pierwszy marca"@@ -339,6 +358,12 @@              , "o trzeciej rano"              , "o trzeciej z rana"              ]+  , examples (datetime (2013, 2, 12, 13, 0, 0) Hour)+             [ "o pierwszy"+             ]+  , examples (datetime (2013, 2, 12, 14, 0, 0) Hour)+             [ "o drugiej"+             ]   , examples (datetime (2013, 2, 13, 3, 18, 0) Minute)              [ "3:18 rano"              ]@@ -435,14 +460,14 @@              [ "piętnaście po trzeciej"              , "15 po trzeciej"              , "kwadrans po 3"-             , "trzecia piętnaście"+             , "o trzecia piętnaście"              , "15:15"              ]   , examples (datetime (2013, 2, 12, 15, 20, 0) Minute)              [ "20 po 3"              , "3:20"              , "3:20 w poludnie"-             , "trzecia dwadzieścia"+             , "o trzecia dwadzieścia"              ]   , examples (datetime (2013, 2, 12, 15, 30, 0) Minute)              [ "w pół do szesnastej"
Duckling/Time/PL/Rules.hs view
@@ -13,20 +13,19 @@ module Duckling.Time.PL.Rules   ( rules ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData(..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types  ruleOrdinalCycleTime :: Rule ruleOrdinalCycleTime = Rule@@ -42,24 +41,51 @@       _ -> Nothing   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "poniedzia(l|\x0142)(ek|ku|kowi|kiem|kowy)|pon\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }+daysOfWeek :: [(Text.Text, String)]+daysOfWeek =+  [ ( "Monday" , "poniedzia(l|ł)(ek|ku|kowi|kiem|kowy)|pon\\.?" )+  , ( "Tuesday" , "wtorek|wtorku|wtorkowi|wtorkiem|wtr?\\.?" )+  , ( "Wednesday" , "(Ś|ś|s)rod(a|ą|y|e|ę|zie|owy|o)|(s|ś|Ś)ro?\\.?" )+  , ( "Thursday" , "czwartek|czwartku|czwartkowi|czwartkiem|czwr?\\.?" )+  , ( "Friday" , "piątek|piatek|piątku|piatku|piątkowi|piatkowi|piątkiem|piatkiem|pi(ą|a)tkowy|pia\\.?" )+  , ( "Saturday" , "sobota|soboty|sobocie|sobotę|sobote|sobotą|sobota|sobocie|soboto|sob\\.?" )+  , ( "Sunday" , "niedziel(a|i|ę|e|ą|o)|n(ie)?dz?\\.?" )+  ] -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "grudzie\x0144|grudzien|grudnia|grudniowi|grudniem|grudniu|gru\\.?|grud\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }+ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      } +months :: [(Text.Text, String)]+months =+  [ ( "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\\.?" )+  , ( "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\\.?" )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"@@ -98,7 +124,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -153,7 +179,7 @@ ruleHalfTotillbeforeIntegerHourofday = Rule   { name = "half to|till|before <integer> (hour-of-day)"   , pattern =-    [ regex "p(o|\x00f3)(l|\x0142) *(do|przed)"+    [ regex "p(o|ó)(l|ł) *(do|przed)"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -165,7 +191,7 @@ ruleHalfAfterpastIntegerHourofday = Rule   { name = "half after|past <integer> (hour-of-day)"   , pattern =-    [ regex "p(o|\x00f3)(l|\x0142) *po"+    [ regex "p(o|ó)(l|ł) *po"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -180,7 +206,7 @@   { name = "<hour-of-day> half (as relative minutes)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "p(o|\x00f3)(l|\x0142)"+    , regex "p(o|ó)(l|ł)"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -188,15 +214,6 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "wtorek|wtorku|wtorkowi|wtorkiem|wtr?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"@@ -210,7 +227,7 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?|(po ?)?przedni(ego|ch|emu|e|mi|m|a)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?|(po ?)?przedni(ego|ch|emu|e|mi|m|a)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -219,21 +236,12 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "sobota|soboty|sobocie|sobot\x0119|sobote|sobot\x0105|sobota|sobocie|soboto|sob\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"   , pattern =     [ Predicate isNotLatent-    , regex "\\-|(p|d)o|a(\x017c|z) (p|d)o"+    , regex "\\-|(p|d)o|a(ż|z) (p|d)o"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -242,15 +250,6 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "lipiec|lipca|lipcowi|lipcem|lipcu|lip\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleCycleAfterTime :: Rule ruleCycleAfterTime = Rule   { name = "<cycle> after <time>"@@ -269,7 +268,7 @@ ruleInDuration = Rule   { name = "in <duration>"   , pattern =-    [ regex "(w( ?(prze)?ci\x0105gu)?|za) ?(jeszcze)?|przez"+    [ regex "(w( ?(prze)?ciągu)?|za) ?(jeszcze)?|przez"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -282,7 +281,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "(w)? ?(tym|tej)? ?(teraz|momencie|chwili|mome\x0144cie)"+    [ regex "(w)? ?(tym|tej)? ?(teraz|momencie|chwili|momeńcie)"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -291,7 +290,7 @@ ruleLastCycleOfTime = Rule   { name = "last <cycle> of <time>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?"     , dimension TimeGrain     , regex "w(e)?|z(e)?"     , dimension Time@@ -306,9 +305,9 @@ ruleFromDatetimeDatetimeInterval = Rule   { name = "from <datetime> - <datetime> (interval)"   , pattern =-    [ regex "od|p(o|\x00f3)(z|\x017a)niej ni(z|\x017c)"+    [ regex "od|p(o|ó)(z|ź)niej ni(z|ż)"     , dimension Time-    , regex "\\-|do|po|a\x017c do|az do|a\x017c po|az po|ale przed"+    , regex "\\-|do|po|aż do|az do|aż po|az po|ale przed"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -325,7 +324,7 @@     ]   , prod = \tokens -> case tokens of       (Token Ordinal (OrdinalData {TOrdinal.value = v}):_) ->-        tt $ hour True v+        tt . mkLatent $ hour True v       _ -> Nothing   } @@ -335,7 +334,7 @@   , pattern =     [ Predicate isAMonth     , regex "(3[01]|[12]\\d|0?[1-9])"-    , regex "\\-|do|po|a\x017c do|az do|a\x017c po|az po"+    , regex "\\-|do|po|aż do|az do|aż po|az po"     , regex "(3[01]|[12]\\d|0?[1-9])"     ]   , prod = \tokens -> case tokens of@@ -352,20 +351,11 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "czwartek|czwartku|czwartkowi|czwartkiem|czwr?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleSeason4 :: Rule ruleSeason4 = Rule   { name = "season"   , pattern =-    [ regex "wiosna|wiosny|wio\x015bnie|wiosnie|wiosn\x0119|wiosne|wiosn\x0105|wiosna|wio\x015bnie|wiosnie|wiosno"+    [ regex "wiosna|wiosny|wiośnie|wiosnie|wiosnę|wiosne|wiosną|wiosna|wiośnie|wiosnie|wiosno"     ]   , prod = \_ ->       let from = monthDay 3 20@@ -391,7 +381,7 @@   { name = "<time> after next"   , pattern =     [ dimension Time-    , regex "po kolejnym|po nast(e|\x0119)pn(ym|y|ego|emu|(a|\x0105)|ej|e)|po przysz(l|\x0142)(ym|y|ego|emu|(a|\x0105)|ej)"+    , regex "po kolejnym|po nast(e|ę)pn(ym|y|ego|emu|(a|ą)|ej|e)|po przysz(l|ł)(ym|y|ego|emu|(a|ą)|ej)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -417,7 +407,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "po(l|\x0142)udni(em|e|a|u)"+    [ regex "po(l|ł)udni(em|e|a|u)"     ]   , prod = \_ -> tt $ hour False 12   }@@ -426,7 +416,7 @@ ruleToday = Rule   { name = "today"   , pattern =-    [ regex "dzisiejszy|dzisiaj|dzi\x015b|dzis|w ten dzie\x0144|w ten dzien|w obecny dzie\x0144|w obecny dzien|obecnego dnia"+    [ regex "dzisiejszy|dzisiaj|dziś|dzis|w ten dzień|w ten dzien|w obecny dzień|w obecny dzien|obecnego dnia"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   }@@ -435,7 +425,7 @@ ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "kolejn(ym|y|ego|emu|e)|nast(e|\x0119)pn(ym|y|ego|emu|e|(a|\x0105)|ej|e)"+    [ regex "kolejn(ym|y|ego|emu|e)|nast(e|ę)pn(ym|y|ego|emu|e|(a|ą)|ej|e)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -448,7 +438,7 @@ ruleBetweenTimeofdayAndTimeofdayInterval = Rule   { name = "between <time-of-day> and <time-of-day> (interval)"   , pattern =-    [ regex "(po|po )?miedzy|mi\x0119dzy"+    [ regex "(po|po )?miedzy|między"     , Predicate isATimeOfDay     , regex "a|i"     , Predicate isATimeOfDay@@ -463,7 +453,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "kolejn(ym|y|ego|emu|(a|\x0105)|ej|e)|nast(e|\x0119)pn(ym|y|ego|emu|(a|\x0105)|ej|e)|przysz(l|\x0142)(ego|emu|ym|(a|\x0105)|ej|ych|i|ymi|y|e)|za"+    [ regex "kolejn(ym|y|ego|emu|(a|ą)|ej|e)|nast(e|ę)pn(ym|y|ego|emu|(a|ą)|ej|e)|przysz(l|ł)(ego|emu|ym|(a|ą)|ej|ych|i|ymi|y|e)|za"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -472,15 +462,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "stycze\x0144|styczen|stycznia|styczniowi|styczniem|styczniu|sty(cz)?\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleTheCycleOfTime :: Rule ruleTheCycleOfTime = Rule   { name = "the <cycle> of <time>"@@ -501,7 +482,7 @@   { name = "<time-of-day> approximately"   , pattern =     [ Predicate isATimeOfDay-    , regex "o?ko(l|\x0142)o|mniej wi(e|\x0119)cej"+    , regex "o?ko(l|ł)o|mniej wi(e|ę)cej"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -512,7 +493,7 @@ rulePolishIndependenceDay = Rule   { name = "Polish independence day"   , pattern =-    [ regex "(s|\x015b)wiet(a|o) niepodleg(l|\x0142)o(s|\x015b)ci|(\x015b|s)w\\.? niepodleg(l|\x0142)o(s|\x015b)ci"+    [ regex "(s|ś)wiet(a|o) niepodleg(l|ł)o(s|ś)ci|(ś|s)w\\.? niepodleg(l|ł)o(s|ś)ci"     ]   , prod = \_ -> tt $ monthDay 11 11   }@@ -529,20 +510,11 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "marzec|marca|marcowi|marcem|marcu|marz?\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleLastDayofweekTime :: Rule ruleLastDayofweekTime = Rule   { name = "last <day-of-week> <time>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?"     , Predicate isADayOfWeek     , dimension Time     ]@@ -557,7 +529,7 @@   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "od (dzi(s|\x015b)|teraz)"+    , regex "od (dzi(s|ś)|teraz)"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -582,7 +554,7 @@ ruleLastCycle = Rule   { name = "last <cycle>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej|e)?|(po ?)?przedni(ego|ch|emu|mi|m|e|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej|e)?|(po ?)?przedni(ego|ch|emu|mi|m|e|(a|ą)|ej)?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -595,7 +567,7 @@ ruleAfternoon = Rule   { name = "afternoon"   , pattern =-    [ regex "po(l|\x0142)udni(em|e|a|u)"+    [ regex "po(l|ł)udni(em|e|a|u)"     ]   , prod = \_ ->       let from = hour False 12@@ -609,8 +581,8 @@   { name = "<hour-of-day> - <hour-of-day> (interval)"   , pattern =     [ Predicate isATimeOfDay-    , regex "-|do|a\x017c po|po"-    , Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    , regex "-|do|aż po|po"+    , Predicate $ and . sequence [isNotLatent, isATimeOfDay]     ]   , prod = \tokens -> case tokens of       (Token Time td1:_:Token Time td2:_) ->@@ -618,21 +590,12 @@       _ -> Nothing   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "kwiecie\x0144|kwiecien|kwietnia|kwietniowi|kwietniem|kwietniu|kwiet?\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"   , pattern =     [ dimension Time-    , regex "przed ?ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?"+    , regex "przed ?ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -656,7 +619,7 @@ ruleChristmasEve = Rule   { name = "christmas eve"   , pattern =-    [ regex "(wigilia|wigilii|wigili(e|\x0119)|wigili(a|\x0105)|wigilio) ?(bo(z|\x017c)ego narodzenia)?"+    [ regex "(wigilia|wigilii|wigili(e|ę)|wigili(a|ą)|wigilio) ?(bo(z|ż)ego narodzenia)?"     ]   , prod = \_ -> tt $ monthDay 12 24   }@@ -678,20 +641,11 @@ ruleThanksgivingDay = Rule   { name = "thanksgiving day"   , pattern =-    [ regex "((s|\x015b)wiet(a|o)|(dzie(n|\x0144)))? ?dzi(e|\x0119)kczynieni(e|a)"+    [ regex "((s|ś)wiet(a|o)|(dzie(n|ń)))? ?dzi(e|ę)kczynieni(e|a)"     ]   , prod = \_ -> tt $ nthDOWOfMonth 4 4 11   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "pi\x0105tek|piatek|pi\x0105tku|piatku|pi\x0105tkowi|piatkowi|pi\x0105tkiem|piatkiem|pi(\x0105|a)tkowy|pia\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -717,19 +671,6 @@         Token Time <$> intersect td1 td2       _ -> Nothing   }-ruleIntersectBy2 :: Rule-ruleIntersectBy2 = Rule-  { name = "intersect by \",\" 2"-  , pattern =-    [ Predicate isNotLatent-    , regex ","-    , Predicate isNotLatent-    ]-  , prod = \tokens -> case tokens of-      (Token Time td1:_:Token Time td2:_) ->-        Token Time <$> intersect td1 td2-      _ -> Nothing-  }  ruleNthTimeAfterTime :: Rule ruleNthTimeAfterTime = Rule@@ -790,9 +731,9 @@ ruleFromTimeofdayTimeofdayInterval = Rule   { name = "from <time-of-day> - <time-of-day> (interval)"   , pattern =-    [ regex "(ni\x017c|niz|od)"+    [ regex "(niż|niz|od)"     , Predicate isATimeOfDay-    , regex "((but )?before)|\\-|do|po|a\x017c do|az do|a\x017c po|az po"+    , regex "((but )?before)|\\-|do|po|aż do|az do|aż po|az po"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -801,20 +742,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "luty|lutego|lutemu|lut?\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"   , pattern =-    [ regex "(r(o|\x00f3)wno|dok(l|\x0142)adnie)( o)?"+    [ regex "(r(o|ó)wno|dok(l|ł)adnie)( o)?"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -826,7 +758,7 @@ ruleSeason3 = Rule   { name = "season"   , pattern =-    [ regex "zima|zimy|zimie|zim\x0119|zime|zim\x0105|zima|zimie|zimo"+    [ regex "zima|zimy|zimie|zimę|zime|zimą|zima|zimie|zimo"     ]   , prod = \_ ->       let from = monthDay 12 21@@ -863,7 +795,7 @@ ruleBetweenDatetimeAndDatetimeInterval = Rule   { name = "between <datetime> and <datetime> (interval)"   , pattern =-    [ regex "(po|po )?mi(e|\x0119)dzy"+    [ regex "(po|po )?mi(e|ę)dzy"     , dimension Time     , regex "a|i"     , dimension Time@@ -900,7 +832,7 @@ ruleByTheEndOfTime = Rule   { name = "by the end of <time>"   , pattern =-    [ regex "do (ko[\x0144n]ca )?(tego)?"+    [ regex "do (ko[ńn]ca )?(tego)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -922,7 +854,7 @@ ruleLastNCycle = Rule   { name = "last n <cycle>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej|e)?|(po ?)?przedni(ego|ch|emu|mi|m|e|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej|e)?|(po ?)?przedni(ego|ch|emu|mi|m|e|(a|ą)|ej)?"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -938,7 +870,7 @@   { name = "<time-of-day> sharp"   , pattern =     [ Predicate isATimeOfDay-    , regex "r(o|\x00f3)wno|dok(l|\x0142)adnie"+    , regex "r(o|ó)wno|dok(l|ł)adnie"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -949,7 +881,7 @@ ruleWithinDuration = Rule   { name = "within <duration>"   , pattern =-    [ regex "(w )?ci(a|\x0105)gu|zakresie|obr\x0119bie|obrebie"+    [ regex "(w )?ci(a|ą)gu|zakresie|obrębie|obrebie"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -992,8 +924,7 @@     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of-      (Token Time td1:Token Time td2:_) ->-        Token Time <$> intersect td1 td2+      (Token Time td1:Token Time td2:_) -> Token Time <$> intersect td1 td2       _ -> Nothing   } @@ -1001,7 +932,7 @@ ruleAboutTimeofday = Rule   { name = "about <time-of-day>"   , pattern =-    [ regex "o?ko(l|\x0142)o|mniej wi(e|\x0119)cej|tak o"+    [ regex "o?ko(l|ł)o|mniej wi(e|ę)cej|tak o"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1013,12 +944,12 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "(a[\x017cz] )?do|przed"-    , dimension Time+    [ regex "(a(ż|z) )?do|przed"+    , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of       (_:Token Time td:_) ->-        tt $ withDirection TTime.Before td+        tt . notLatent $ withDirection TTime.Before td       _ -> Nothing   } @@ -1030,20 +961,10 @@     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of-      (_:Token Time td:_) ->-        tt $ notLatent td+      (_:Token Time td:_) -> tt $ notLatent td       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "czerwiec|czerwca|czerwcowi|czerwcem|czerwcu|czer?\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1059,15 +980,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "sierpie\x0144|sierpien|sierpnia|sierpniowi|sierpniem|sierpniu|sierp\\.?|sier\\.?|sie\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1087,17 +999,14 @@   , pattern =     [ regex "((wek|week|wik)(\\s|-)?end|wkend)"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleEomendOfMonth :: Rule ruleEomendOfMonth = Rule   { name = "EOM|End of month"   , pattern =-    [ regex "(na |w )?(koniec|ko(n|\x0144)ca|ko(n|\x0144)cu|ko(n|\x0144)cowi|ko(n|\x0144)cem|ko(n|\x0144)c(o|\x00f3)wke) (miesi(a|\x0105)ca|msc)"+    [ regex "(na |w )?(koniec|ko(n|ń)ca|ko(n|ń)cu|ko(n|ń)cowi|ko(n|ń)cem|ko(n|ń)c(o|ó)wke) (miesi(a|ą)ca|msc)"     ]   , prod = \_ -> tt $ cycleNth TG.Month 1   }@@ -1106,7 +1015,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "kolejn(ym|y|ego|emu|(a|\x0105)|ej|e)|nast(e|\x0119)pn(ym|y|ego|emu|e|(a|\x0105)|ej|e)|przysz(l|\x0142)(ego|emu|ym|(a|\x0105)|ej|ych|i|ymi|y|e)"+    [ regex "kolejn(ym|y|ego|emu|(a|ą)|ej|e)|nast(e|ę)pn(ym|y|ego|emu|e|(a|ą)|ej|e)|przysz(l|ł)(ego|emu|ym|(a|ą)|ej|ych|i|ymi|y|e)"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1187,7 +1096,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "kolejn(ym|y|ego|emu|(a|\x0105)|ej|e)|nast(e|\x0119)pn(ym|y|ego|emu|(a|\x0105)|ej|e)"+    [ regex "kolejn(ym|y|ego|emu|(a|ą)|ej|e)|nast(e|ę)pn(ym|y|ego|emu|(a|ą)|ej|e)"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -1202,7 +1111,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "rano|poran(ek|ku|ka)|z rana|(s|\x015b)witem"+    [ regex "rano|poran(ek|ku|ka)|z rana|(s|ś)witem"     ]   , prod = \_ ->       let from = hour False 4@@ -1228,7 +1137,7 @@ ruleThisCycle = Rule   { name = "this <cycle>"   , pattern =-    [ regex "te(mu|n|go|j)|tym|t(a|\x0105)|nadchodz(a|\x0105)c(ym|y|ego|emu|(a|\x0105)|ej)|obecn(ym|y|emu|ego|nym|(a|\x0105)|ej)"+    [ regex "te(mu|n|go|j)|tym|t(a|ą)|nadchodz(a|ą)c(ym|y|ego|emu|(a|ą)|ej)|obecn(ym|y|emu|ego|nym|(a|ą)|ej)"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1241,7 +1150,7 @@ ruleThisTime = Rule   { name = "this <time>"   , pattern =-    [ regex "te(mu|n|go|j)|ta|to|tym|nadchodz(a|\x0105)c(ym|y|ego|emu|(a|\x0105)|ej)"+    [ regex "te(mu|n|go|j)|ta|to|tym|nadchodz(a|ą)c(ym|y|ego|emu|(a|ą)|ej)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1255,7 +1164,7 @@   { name = "<duration> hence"   , pattern =     [ dimension Duration-    , regex "p(o|\x00f3)(z|\x017a)niej|potem"+    , regex "p(o|ó)(z|ź)niej|potem"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -1295,7 +1204,7 @@   { name = "<time-of-day> popołudniu/wieczorem/w nocy"   , pattern =     [ Predicate isATimeOfDay-    , regex "(w )?noc(y|(a|\x0105))|(po ?)?po(l|\x0142)udni(em|e|a|u)|wiecz(o|\x00f3)r(i|u|a|owi|em|rze)"+    , regex "(w )?noc(y|(a|ą))|(po ?)?po(l|ł)udni(em|e|a|u)|wiecz(o|ó)r(i|u|a|owi|em|rze)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ timeOfDayAMPM td False@@ -1340,7 +1249,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "jesie\x0144|jesien|jesieni|jesieni\x0105|jesienia"+    [ regex "jesień|jesien|jesieni|jesienią|jesienia"     ]   , prod = \_ ->       let from = monthDay 9 23@@ -1365,7 +1274,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "((\x015a|\x015b|s)wi(e|\x0119)ta)? ?bo(z|\x017c)(ym|ego|e) narodzeni(e|a|u)"+    [ regex "((Ś|ś|s)wi(e|ę)ta)? ?bo(z|ż)(ym|ego|e) narodzeni(e|a|u)"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -1412,24 +1321,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "maj|maja|majowi|majem|maju"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "niedziela|niedzieli|niedziel\x0119|niedziele|niedziela|niedziel\x0105|niedzieli|niedzielo|nied?z?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1451,7 +1342,7 @@     [ regex "od"     , Predicate isATimeOfDay     , regex "-|to|th?ru|through|until"-    , Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    , Predicate $ and . sequence [isNotLatent, isATimeOfDay]     ]   , prod = \tokens -> case tokens of       (_:Token Time td1:_:Token Time td2:_) ->@@ -1472,15 +1363,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "pa(z|\x017a)dziernik(a|owi|iem|u)?|pa\x017a\\.?|paz\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleHalloweenDay :: Rule ruleHalloweenDay = Rule   { name = "halloween day"@@ -1532,7 +1414,7 @@ ruleLastDayofweekOfTime = Rule   { name = "last <day-of-week> of <time>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?"     , Predicate isADayOfWeek     , regex "w(e)?|z(e)?"     , dimension Time@@ -1547,16 +1429,16 @@ ruleFathersDay = Rule   { name = "Father's Day"   , pattern =-    [ regex "dzie(n|\x0144) ?(taty|ojca)"+    [ regex "dzie(n|ń) ?(taty|ojca)"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 2 7 6+  , prod = \_ -> tt $ nthDOWOfMonth 3 7 6   }  ruleLastCycleTime :: Rule ruleLastCycleTime = Rule   { name = "last <cycle> <time>"   , pattern =-    [ regex "ostatni(ego|ch|emu|mi|m|(a|\x0105)|ej)?"+    [ regex "ostatni(ego|ch|emu|mi|m|(a|ą)|ej)?"     , dimension TimeGrain     , dimension Time     ]@@ -1570,7 +1452,7 @@ ruleByTime = Rule   { name = "by <time>"   , pattern =-    [ regex "(a(z|\x017c) )?do"+    [ regex "(a(z|ż) )?do"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1615,8 +1497,8 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent-    , regex "\\-|:|do|po|a\x017c do|az do|a\x017c po|az po"+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]+    , regex "\\-|:|do|po|aż do|az do|aż po|az po"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1625,15 +1507,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "listopad|listopada|listopadowi|listopadem|listopadzie|lis\\.?|list\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1652,7 +1525,7 @@ ruleEveningnight = Rule   { name = "evening|night"   , pattern =-    [ regex "wiecz(o|\x00f3)r(em|owi|ze|a|u)?|noc(\x0105)?"+    [ regex "wiecz(o|ó)r(em|owi|ze|a|u)?|noc(ą)?"     ]   , prod = \_ ->       let from = hour False 18@@ -1676,15 +1549,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "(\x015a|\x015b|s)rod(a|\x0105|y|e|\x0119|zie|owy|o)|(s|\x015b|\x015a)ro?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleDurationBeforeTime :: Rule ruleDurationBeforeTime = Rule   { name = "<duration> before <time>"@@ -1718,7 +1582,7 @@ ruleEoyendOfYear = Rule   { name = "EOY|End of year"   , pattern =-    [ regex "(na |w )?(koniec|ko(n|\x0144)ca|ko(n|\x0144)cu|ko(n|\x0144)cowi|ko(n|\x0144)cem|ko(n|\x0144)c(o|\x00f3)wke) (rok(u|owi|iem))"+    [ regex "(na |w )?(koniec|ko(n|ń)ca|ko(n|ń)cu|ko(n|ń)cowi|ko(n|ń)cem|ko(n|ń)c(o|ó)wke) (rok(u|owi|iem))"     ]   , prod = \_ -> tt $ cycleNth TG.Year 1   }@@ -1736,9 +1600,9 @@ ruleMothersDay = Rule   { name = "Mother's Day"   , pattern =-    [ regex "dzie(n|\x0144) ? ma(my|tki|m)"+    [ regex "dzie(n|ń) ?ma(my|tki|m)"     ]-  , prod = \_ -> tt $ nthDOWOfMonth 1 7 5+  , prod = \_ -> tt $ nthDOWOfMonth 2 7 5   }  ruleTimeofdayOclock :: Rule@@ -1754,15 +1618,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "wrzesie\x0144|wrzesien|wrze\x015bnia|wrzesnia|wrze\x015bniowi|wrzesniowi|wrzesie\x0144|wrzesien|wrze\x015bniem|wrzesniem|wrze\x015bniu|wrzesniu|wrz\\.?|wrze\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1801,7 +1656,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1863,7 +1718,6 @@   , ruleIntegerLatentTimeofday   , ruleIntersect   , ruleIntersectBy-  , ruleIntersectBy2   , ruleIntersectByOfFromS   , ruleLastCycle   , ruleLastCycleOfTime@@ -1878,25 +1732,6 @@   , ruleMonthDdddInterval   , ruleMorning   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNewYearsEve@@ -1957,3 +1792,5 @@   , ruleYyyymmdd   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/PT/Corpus.hs view
@@ -13,24 +13,28 @@   , negativeCorpus   ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale 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)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = PT}, allExamples)+corpus = (testContext {locale = makeLocale PT Nothing}, allExamples)  negativeCorpus :: NegativeCorpus-negativeCorpus = (testContext {lang = PT}, examples)+negativeCorpus = (testContext {locale = makeLocale PT Nothing}, examples)   where     examples =       [ "no 987"+      , "um"+      , "um dos"+      , "um dos minutos"+      , "ter"       ]  allExamples :: [Example]@@ -83,7 +87,6 @@              , "terca feira"              , "terca"              , "ter."-             , "ter"              ]   , examples (datetime (2013, 2, 13, 0, 0, 0) Day)              [ "quarta-feira"@@ -150,6 +153,7 @@              [ "1 de março"              , "primeiro de março"              , "um de março"+             , "1o de março"              ]   , examples (datetime (2013, 3, 1, 0, 0, 0) Day)              [ "1-3-2013"
Duckling/Time/PT/Rules.hs view
@@ -13,17 +13,17 @@ module Duckling.Time.PT.Rules   ( rules ) where -import qualified Data.Text as Text import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types 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-import Duckling.Types  ruleNamedday :: Rule ruleNamedday = Rule@@ -38,7 +38,7 @@ ruleSHourmintimeofday = Rule   { name = "às <hour-min>(time-of-day)"   , pattern =-    [ regex "(\x00e0|a)s?"+    [ regex "(à|a)s?"     , Predicate isATimeOfDay     , regex "horas?"     ]@@ -51,7 +51,7 @@ ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"   , pattern =-    [ regex "depois de amanh(\x00e3|a)"+    [ regex "depois de amanh(ã|a)"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   }@@ -69,7 +69,7 @@ ruleNamedday2 = Rule   { name = "named-day"   , pattern =-    [ regex "ter(\x00e7|c)a((\\s|\\-)feira)?|ter\\.?"+    [ regex "ter(ç|c)a((\\s|\\-)feira)?|ter\\."     ]   , prod = \_ -> tt $ dayOfWeek 2   }@@ -99,13 +99,12 @@ ruleIntersectByDaOrDe = Rule   { name = "intersect by `da` or `de`"   , pattern =-    [ Predicate isNotLatent+    [ dimension Time     , regex "d[ae]"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of-      (Token Time td1:_:Token Time td2:_) ->-        Token Time <$> intersect td1 td2+      (Token Time td1:_:Token Time td2:_) -> Token Time <$> intersect td1 td2       _ -> Nothing   } @@ -128,12 +127,11 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "(\x00fa|u)ltim[ao]s?"+    [ regex "(ú|u)ltim[ao]s?"     , dimension Time     ]   , prod = \tokens -> case tokens of-      (_:Token Time td:_) ->-        tt $ predNth (-1) False td+      (_:Token Time td:_) -> tt $ predNth (-1) False td       _ -> Nothing   } @@ -141,7 +139,7 @@ ruleNamedday6 = Rule   { name = "named-day"   , pattern =-    [ regex "s(\x00e1|a)bado|s(\x00e1|a)b\\.?"+    [ regex "s(á|a)bado|s(á|a)b\\.?"     ]   , prod = \_ -> tt $ dayOfWeek 6   }@@ -188,7 +186,7 @@   , pattern =     [ regex "primeiro|um|1o"     ]-  , prod = \_ -> tt $ dayOfMonth 1+  , prod = \_ -> tt . mkLatent $ dayOfMonth 1   }  ruleNow :: Rule@@ -242,7 +240,7 @@ ruleProximoCycle = Rule   { name = "proximo <cycle> "   , pattern =-    [ regex "pr(\x00f3|o)xim(o|a)s?"+    [ regex "pr(ó|o)xim(o|a)s?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -282,7 +280,7 @@ ruleSHourminTimeofday = Rule   { name = "às <hour-min> <time-of-day>"   , pattern =-    [ regex "(\x00e0|a)s"+    [ regex "(à|a)s"     , Predicate isNotLatent     , regex "da"     , Predicate isATimeOfDay@@ -345,7 +343,7 @@ ruleProximasNCycle = Rule   { name = "proximas n <cycle>"   , pattern =-    [ regex "pr(\x00f3|o)xim(o|a)s?"+    [ regex "pr(ó|o)xim(o|a)s?"     , Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain     ]@@ -360,7 +358,7 @@ ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "es[ts][ae]|pr(\x00f3|o)xim[ao]"+    [ regex "es[ts][ae]|pr(ó|o)xim[ao]"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -382,7 +380,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -415,7 +413,7 @@   { name = "<integer> para as <hour-of-day> (as relative minutes)"   , pattern =     [ Predicate $ isIntegerBetween 1 59-    , regex "para ((o|a|\x00e0)s?)?"+    , regex "para ((o|a|à)s?)?"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -430,7 +428,7 @@ ruleHourofdayIntegerAsRelativeMinutes2 = Rule   { name = "<hour-of-day> <integer> (as relative minutes) minutos"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     , regex "min\\.?(uto)?s?"     ]@@ -466,7 +464,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 59     , regex "min\\.?(uto)?s?"-    , regex "para ((o|a|\x00e0)s?)?"+    , regex "para ((o|a|à)s?)?"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -505,7 +503,7 @@ ruleQuarterParaAsHourofdayAsRelativeMinutes = Rule   { name = "quinze para as <hour-of-day> (as relative minutes)"   , pattern =-    [ regex "quinze para ((o|a|\x00e0)s?)?"+    [ regex "quinze para ((o|a|à)s?)?"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -541,7 +539,7 @@ ruleHalfParaAsHourofdayAsRelativeMinutes = Rule   { name = "half para as <hour-of-day> (as relative minutes)"   , pattern =-    [ regex "(meia|trinta) para ((o|a|\x00e0)s?)?"+    [ regex "(meia|trinta) para ((o|a|à)s?)?"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -577,7 +575,7 @@ ruleThreeQuarterParaAsHourofdayAsRelativeMinutes = Rule   { name = "3/4 para as <hour-of-day> (as relative minutes)"   , pattern =-    [ regex "quarenta e cinco para ((o|a|\x00e0)s?)?"+    [ regex "quarenta e cinco para ((o|a|à)s?)?"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -633,7 +631,7 @@ ruleNamedmonth3 = Rule   { name = "named-month"   , pattern =-    [ regex "mar(\x00e7|c)o|mar\\.?"+    [ regex "mar(ç|c)o|mar\\.?"     ]   , prod = \_ -> tt $ month 3   }@@ -642,7 +640,7 @@ ruleDepoisDasTimeofday = Rule   { name = "depois das <time-of-day>"   , pattern =-    [ regex "(depois|ap(\x00f3|o)s) d?((a|\x00e1|\x00e0)[so]?|os?)"+    [ regex "(depois|ap(ó|o)s) d?((a|á|à)[so]?|os?)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -705,7 +703,7 @@   { name = "<dim time> da manha"   , pattern =     [ Predicate $ isGrainFinerThan TG.Year-    , regex "(da|na|pela) manh(\x00e3|a)"+    , regex "(da|na|pela) manh(ã|a)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> do@@ -721,7 +719,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "(pr(\x00f3|o)xim(o|a)s?|que vem?|seguintes?)"+    , regex "(pr(ó|o)xim(o|a)s?|que vem?|seguintes?)"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -790,7 +788,7 @@ ruleUltimoTime = Rule   { name = "ultimo <time>"   , pattern =-    [ regex "(u|\x00fa)ltimo"+    [ regex "(u|ú)ltimo"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -837,7 +835,7 @@ ruleSeason = Rule   { name = "season"   , pattern =-    [ regex "ver(\x00e3|a)o"+    [ regex "ver(ã|a)o"     ]   , prod = \_ ->       let from = monthDay 6 21@@ -849,7 +847,7 @@ ruleRightNow = Rule   { name = "right now"   , pattern =-    [ regex "agora|j(\x00e1|a)|(nesse|neste) instante"+    [ regex "agora|j(á|a)|(nesse|neste) instante"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -900,7 +898,7 @@   { name = "<named-month|named-day> next"   , pattern =     [ dimension Time-    , regex "(da pr(o|\x00f3)xima semana)|(da semana)? que vem"+    , regex "(da pr(o|ó)xima semana)|(da semana)? que vem"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -978,7 +976,7 @@ ruleSTimeofday = Rule   { name = "às <time-of-day>"   , pattern =-    [ regex "(\x00e0|a)s?"+    [ regex "(à|a)s?"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -1017,10 +1015,7 @@   , pattern =     [ regex "final de semana|fim de semana|fds"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleDayofweekSHourmin :: Rule@@ -1028,7 +1023,7 @@   { name = "<day-of-week> às <hour-min>"   , pattern =     [ Predicate isATimeOfDay-    , regex "(\x00e0|a)s"+    , regex "(à|a)s"     , Predicate isNotLatent     , regex "da|pela"     , Predicate isATimeOfDay@@ -1065,7 +1060,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "(d[ao]) pr(\x00f3|o)xim[ao]s?|que vem"+    [ regex "(d[ao]) pr(ó|o)xim[ao]s?|que vem"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1092,7 +1087,7 @@ ruleVesperaDeAnoNovo = Rule   { name = "vespera de ano novo"   , pattern =-    [ regex "v(\x00e9|e)spera d[eo] ano[\\s\\-]novo"+    [ regex "v(é|e)spera d[eo] ano[\\s\\-]novo"     ]   , prod = \_ -> tt $ monthDay 12 31   }@@ -1186,7 +1181,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "manh(\x00e3|a)"+    [ regex "manh(ã|a)"     ]   , prod = \_ ->       let from = hour False 4@@ -1225,7 +1220,7 @@ ruleProclamaoDaRepblica = Rule   { name = "Proclamação da República"   , pattern =-    [ regex "proclama(c|\x00e7)(a|\x00e3)o da rep(\x00fa|u)blica"+    [ regex "proclama(c|ç)(a|ã)o da rep(ú|u)blica"     ]   , prod = \_ -> tt $ monthDay 11 15   }@@ -1279,7 +1274,7 @@   , pattern =     [ Predicate $ isIntegerBetween 2 9999     , dimension TimeGrain-    , regex "atr(a|\x00e1)s"+    , regex "atr(a|á)s"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -1431,7 +1426,7 @@ ruleAntesDasTimeofday = Rule   { name = "antes das <time-of-day>"   , pattern =-    [ regex "(antes|at(e|\x00e9)|n(a|\x00e3)o mais que) (d?(o|a|\x00e0)s?)?"+    [ regex "(antes|at(e|é)|n(a|ã)o mais que) (d?(o|a|à)s?)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1445,7 +1440,7 @@   { name = "n proximas <cycle>"   , pattern =     [ Predicate $ isIntegerBetween 2 9999-    , regex "pr(\x00f3|o)xim(o|a)s?"+    , regex "pr(ó|o)xim(o|a)s?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -1483,7 +1478,7 @@ ruleIndependecia = Rule   { name = "Independecia"   , pattern =-    [ regex "independ(\x00ea|e)ncia"+    [ regex "independ(ê|e)ncia"     ]   , prod = \_ -> tt $ monthDay 9 7   }@@ -1501,7 +1496,7 @@ ruleTomorrow = Rule   { name = "tomorrow"   , pattern =-    [ regex "amanh(\x00e3|a)"+    [ regex "amanh(ã|a)"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }
Duckling/Time/RO/Corpus.hs view
@@ -9,19 +9,28 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.RO.Corpus-  ( corpus ) where+  ( corpus+  , negativeCorpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.TimeGrain.Types hiding (add) import Duckling.Testing.Types hiding (examples) +negativeCorpus :: NegativeCorpus+negativeCorpus = (testContext, examples)+  where+    examples =+      [ "sa"+      ]+ corpus :: Corpus-corpus = (testContext {lang = RO}, allExamples)+corpus = (testContext {locale = makeLocale RO Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -69,7 +78,6 @@              [ "sambata"              , "sâmbătă"              , "sam"-             , "sa"              ]   , examples (datetime (2013, 2, 17, 0, 0, 0) Day)              [ "duminica"
Duckling/Time/RO/Rules.hs view
@@ -13,7 +13,7 @@ module Duckling.Time.RO.Rules   ( rules ) where -import Control.Monad (liftM2)+import Data.Text (Text) import Prelude  import Duckling.Dimensions.Types@@ -21,9 +21,9 @@ import Duckling.Regex.Types 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-import Duckling.Types  ruleAcum :: Rule ruleAcum = Rule@@ -34,48 +34,21 @@   , prod = \_ -> tt $ cycleNth TG.Second 0   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "lu(n(ea|i)?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleDupamiaza :: Rule ruleDupamiaza = Rule   { name = "dupamiaza"   , pattern =-    [ regex "dupamiaz(a|\x0103)|dup(a|\x0103) amiaz(a|\x0103)"+    [ regex "dupamiaz(a|ă)|dup(a|ă) amiaz(a|ă)"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 12) (hour False 19)   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "dec(embrie)?"-    ]-  , prod = \_ -> tt $ month 12-  }--ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "ma(r((t|\x021b)(ea|i))?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"   , pattern =-    [ regex "sf\\.?((a|\x00e2)ntul)? Valentin"+    [ regex "sf\\.?((a|â)ntul)? Valentin"     ]   , prod = \_ -> tt $ monthDay 2 14   }@@ -101,24 +74,6 @@   , prod = \_ -> tt $ monthDay 1 1   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "s(a|\x00e2)mb(a|\x0103)t(a|\x0103)|s(a|\x00e2)m|s(a|\x00e2)"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }--ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "iul(ie)?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleOrdinalTrimestruYear :: Rule ruleOrdinalTrimestruYear = Rule   { name = "<ordinal> trimestru <year>"@@ -138,7 +93,7 @@ ruleInNamedmonth = Rule   { name = "in <named-month>"   , pattern =-    [ regex "(i|\x00ee)n"+    [ regex "(i|î)n"     , Predicate isAMonth     ]   , prod = \tokens -> case tokens of@@ -165,7 +120,7 @@ ruleIntroNamedday = Rule   { name = "intr-o <named-day>"   , pattern =-    [ regex "((i|\x00ee)n(tr)?(\\-?o)?)"+    [ regex "((i|î)n(tr)?(\\-?o)?)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -196,20 +151,11 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "jo(ia?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleInDuration :: Rule ruleInDuration = Rule   { name = "in <duration>"   , pattern =-    [ regex "(i|\x00ee)n"+    [ regex "(i|î)n"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -230,7 +176,7 @@ ruleCycleAcesta = Rule   { name = "<cycle> acesta"   , pattern =-    [ regex "aceasta|acest|(a|\x0103)sta"+    [ regex "aceasta|acest|(a|ă)sta"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -255,7 +201,7 @@ ruleAzi = Rule   { name = "azi"   , pattern =-    [ regex "a(st(a|\x0103))?zi"+    [ regex "a(st(a|ă))?zi"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   }@@ -274,7 +220,7 @@   { name = "<time> trecut[aă]?"   , pattern =     [ dimension Time-    , regex "(trecut(a|\x0103)?)"+    , regex "(trecut(a|ă)?)"     ]   , prod = \tokens -> case tokens of       (_:Token Time td:_) -> tt $ predNth (-1) False td@@ -286,7 +232,7 @@   { name = "this|next <day-of-week>"   , pattern =     [ Predicate isADayOfWeek-    , regex "aceasta|(a|\x0103)sta|urm(a|\x0103)toare"+    , regex "aceasta|(a|ă)sta|urm(a|ă)toare"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ predNth 0 True td@@ -297,9 +243,9 @@ ruleBetweenTimeofdayAndTimeofdayInterval = Rule   { name = "between <time-of-day> and <time-of-day> (interval)"   , pattern =-    [ regex "(i|\x00ee)ntre"+    [ regex "(i|î)ntre"     , Predicate isATimeOfDay-    , regex "(s|\x0219)i"+    , regex "(s|ș)i"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -308,20 +254,11 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "ian(uarie)?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleUrmatoareaCycle :: Rule ruleUrmatoareaCycle = Rule   { name = "urmatoarea <cycle>"   , pattern =-    [ regex "(urm(a|\x0103)to(area|rul)|viito(are|r))"+    [ regex "(urm(a|ă)to(area|rul)|viito(are|r))"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -334,27 +271,18 @@   { name = "<cycle> acesta"   , pattern =     [ dimension TimeGrain-    , regex "aceasta|acest|(a|\x0103)sta|curent(a|\x0103)"+    , regex "aceasta|acest|(a|ă)sta|curent(a|ă)"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) -> tt $ cycleNth grain 0       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "martie|mar"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleCraciun :: Rule ruleCraciun = Rule   { name = "craciun"   , pattern =-    [ regex "(ziua de )?cr(a|\x0103)ciun"+    [ regex "(ziua de )?cr(a|ă)ciun"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -400,15 +328,6 @@       _ -> Nothing   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "apr(ilie)?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleBlackFriday :: Rule ruleBlackFriday = Rule   { name = "black friday"@@ -422,7 +341,7 @@ ruleChristmasEve = Rule   { name = "christmas eve"   , pattern =-    [ regex "ajun(ul)? (de )?cr(a|\x0103)ciun"+    [ regex "ajun(ul)? (de )?cr(a|ă)ciun"     ]   , prod = \_ -> tt $ monthDay 12 24   }@@ -443,7 +362,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -460,7 +379,7 @@   { name = "<hour-of-day> sfert"   , pattern =     [ Predicate isAnHourOfDay-    , regex "((s|\x0219)i )?(un )?sfert"+    , regex "((s|ș)i )?(un )?sfert"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:@@ -473,7 +392,7 @@   { name = "<hour-of-day> sfert"   , pattern =     [ Predicate isAnHourOfDay-    , regex "((s|\x0219)i )?jum(a|\x0103)tate|jumate"+    , regex "((s|ș)i )?jum(a|ă)tate|jumate"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:@@ -481,20 +400,11 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "vi(n(er(ea|i))?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDiseara :: Rule ruleDiseara = Rule   { name = "diseara"   , pattern =-    [ regex "disear(a|\x0103)|((i|\x00ee)n aceas(a|\x0103) )?sear(a|\x0103)"+    [ regex "disear(a|ă)|((i|î)n aceas(a|ă) )?sear(a|ă)"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -535,7 +445,7 @@   , pattern =     [ dimension Ordinal     , dimension Time-    , regex "dup(a|\x0103)"+    , regex "dup(a|ă)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -576,9 +486,9 @@ ruleFromTimeofdayTimeofdayInterval = Rule   { name = "from <time-of-day> - <time-of-day> (interval)"   , pattern =-    [ regex "(dup(a|\x0103)|(i|\x00ee)ncep(a|\x00e2)nd cu)"+    [ regex "(dup(a|ă)|(i|î)ncep(a|â)nd cu)"     , Predicate isATimeOfDay-    , regex "(dar |(s|\x0219)i )?((i|\x00ee)nainte|p(a|\x00e2)n(a|\x0103) la( de)?)"+    , regex "(dar |(s|ș)i )?((i|î)nainte|p(a|â)n(a|ă) la( de)?)"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -587,20 +497,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "feb(ruarie)?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleSeason3 :: Rule ruleSeason3 = Rule   { name = "season"   , pattern =-    [ regex "primavar(a|\x0103)"+    [ regex "primavar(a|ă)"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (monthDay 3 20) (monthDay 6 21)@@ -610,7 +511,7 @@ ruleUrmatoareleNCycle = Rule   { name = "urmatoarele n <cycle>"   , pattern =-    [ regex "urm(a|\x0103)to(arele|rii|area)"+    [ regex "urm(a|ă)to(arele|rii|area)"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -625,7 +526,7 @@ ruleSeason = Rule   { name = "season"   , pattern =-    [ regex "toamn(a|\x0103)"+    [ regex "toamn(a|ă)"     ]   , prod = \_ -> Token Time <$>       interval TTime.Open (monthDay 9 23) (monthDay 12 21)@@ -635,7 +536,7 @@ ruleDupaDuration = Rule   { name = "dupa <duration>"   , pattern =-    [ regex "dup(a|\x0103)"+    [ regex "dup(a|ă)"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -657,7 +558,7 @@ ruleByTheEndOfTime = Rule   { name = "by the end of <time>"   , pattern =-    [ regex "p(a|\x00ee)n(a|\x0103) ((i|\x00ee)n|la)"+    [ regex "p(a|î)n(a|ă) ((i|î)n|la)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -708,7 +609,7 @@ ruleAboutTimeofday = Rule   { name = "about <time-of-day>"   , pattern =-    [ regex "(cam|aproximativ|(i|\x00ee)n jur de)"+    [ regex "(cam|aproximativ|(i|î)n jur de)"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -720,7 +621,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "p(a|\x00ee)n(a|\x0103) ((i|\x00ee)n|la)"+    [ regex "p(a|î)n(a|ă) ((i|î)n|la)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -741,22 +642,13 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "iun(ie)?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleIntreDatetimeSiDatetimeInterval :: Rule ruleIntreDatetimeSiDatetimeInterval = Rule   { name = "intre <datetime> si <datetime> (interval)"   , pattern =-    [ regex "(i|\x00ee)nre"+    [ regex "(i|î)nre"     , dimension Time-    , regex "(s|\x0219)i"+    , regex "(s|ș)i"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -781,15 +673,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "aug(ust)?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -809,10 +692,7 @@   , pattern =     [ regex "(week(\\s|\\-)?end|wkend)"     ]-  , prod = \_ -> do-      fri <- intersect (dayOfWeek 5) (hour False 18)-      mon <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open fri mon+  , prod = \_ -> tt weekend   }  rulePeDayofmonthNonOrdinal :: Rule@@ -834,7 +714,7 @@   { name = "<time> (aceasta|acesta|[aă]sta)"   , pattern =     [ dimension Time-    , regex "aceasta|(a|\x0103)sta|urm(a|\x0103)toare"+    , regex "aceasta|(a|ă)sta|urm(a|ă)toare"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -846,7 +726,7 @@ ruleEomendOfMonth = Rule   { name = "EOM|End of month"   , pattern =-    [ regex "sf(a|\x00e2)r(s|\x0219)itul lunii"+    [ regex "sf(a|â)r(s|ș)itul lunii"     ]   , prod = \_ -> tt $ cycleNth TG.Month 1   }@@ -881,7 +761,7 @@   { name = "<cycle> urmatoare"   , pattern =     [ dimension TimeGrain-    , regex "(urm(a|\x0103)to(are|r)|viito(are|r))"+    , regex "(urm(a|ă)to(are|r)|viito(are|r))"     ]   , prod = \tokens -> case tokens of       (_:Token TimeGrain grain:_) -> tt $ cycleNth grain 1@@ -922,7 +802,7 @@   { name = "<cycle> trecut"   , pattern =     [ dimension TimeGrain-    , regex "trecut(a|\x0103)?"+    , regex "trecut(a|ă)?"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -948,7 +828,7 @@   { name = "<duration> inainte de <time>"   , pattern =     [ dimension Duration-    , regex "(i|\x00ee)nainte de"+    , regex "(i|î)nainte de"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -975,7 +855,7 @@   { name = "<duration> in urma"   , pattern =     [ dimension Duration-    , regex "(i|\x00ee)n urm(a|\x0103)"+    , regex "(i|î)n urm(a|ă)"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) -> tt $ durationAgo dd@@ -998,7 +878,7 @@ ruleSezonAnotimp = Rule   { name = "sezon anotimp"   , pattern =-    [ regex "var(a|\x0103)"+    [ regex "var(a|ă)"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 6 21) (monthDay 9 23)@@ -1008,7 +888,7 @@ ruleSearaNoapte = Rule   { name = "sear[aă] noapte"   , pattern =-    [ regex "sear(a|\x0103)|noapte"+    [ regex "sear(a|ă)|noapte"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 18) (hour False 0)@@ -1031,7 +911,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "iarn(a|\x0103)"+    [ regex "iarn(a|ă)"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 12 21) (monthDay 3 20)@@ -1056,7 +936,7 @@ ruleAfterTimeofday = Rule   { name = "after <time-of-day>"   , pattern =-    [ regex "dup(a|\x0103)"+    [ regex "dup(a|ă)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1068,7 +948,7 @@ ruleDimineata = Rule   { name = "diminea[tț][aă]"   , pattern =-    [ regex "diminea(t|\x021b)(a|\x0103)"+    [ regex "diminea(t|ț)(a|ă)"     ]   , prod = \_ -> Token Time . mkLatent . partOfDay <$>       interval TTime.Open (hour False 4) (hour False 12)@@ -1078,7 +958,7 @@ ruleTimeUrmatoarer = Rule   { name = "<time> urm[aă]to(are|r)"   , pattern =-    [ regex "urm(a|\x0103)to(are|r)"+    [ regex "urm(a|ă)to(are|r)"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1086,15 +966,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mai"-    ]-  , prod = \_ -> tt $ month 5-  }- ruleTimeofdayFix :: Rule ruleTimeofdayFix = Rule   { name = "<time-of-day> fix"@@ -1107,15 +978,6 @@       _ -> Nothing   } -ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "du(m(inic(a|\x0103))?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1134,7 +996,7 @@ ruleMaine = Rule   { name = "maine"   , pattern =-    [ regex "m(a|\x00e2)ine"+    [ regex "m(a|â)ine"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -1143,7 +1005,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1166,15 +1028,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "oct(ombrie)?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleHalloweenDay :: Rule ruleHalloweenDay = Rule   { name = "halloween day"@@ -1273,7 +1126,7 @@ ruleByTime = Rule   { name = "by <time>"   , pattern =-    [ regex "p(a|\x00e2)n(a|\x0103) (la|(i|\x00ee)n)"+    [ regex "p(a|â)n(a|ă) (la|(i|î)n)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1297,24 +1150,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "noi(embrie)?"-    ]-  , prod = \_ -> tt $ month 11-  }--ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "mi(e(rcur(ea|i))?)?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleMmddyyyy :: Rule ruleMmddyyyy = Rule   { name = "mm/dd/yyyy"@@ -1334,7 +1169,7 @@ ruleEoyendOfYear = Rule   { name = "EOY|End of year"   , pattern =-    [ regex "sf(a|\x00e2)r(s|\x0219)itul anului"+    [ regex "sf(a|â)r(s|ș)itul anului"     ]   , prod = \_ -> tt $ cycleNth TG.Year 1   }@@ -1360,15 +1195,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "sept(embrie)?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleHhmmss :: Rule ruleHhmmss = Rule   { name = "hh:mm:ss"@@ -1384,6 +1210,51 @@       _ -> Nothing   } +daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "luni"  , "lu(n(ea|i)?)?"                        )+  , ( "marti"  , "ma(r((t|ț)(ea|i))?)?"                )+  , ( "miercuri"  , "mi(e(rcur(ea|i))?)?"              )+  , ( "joi"  , "jo(ia?)?"                              )+  , ( "vineri"  , "vi(n(er(ea|i))?)?"                  )+  , ( "sambata" , "s(a|â)mb(a|ă)t(a|ă)|s(a|â)m"        )+  , ( "duminica"  , "du(m(inic(a|ă))?)?"               )+  ]++ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "ianuarie"  , "ian(uarie)?"     )+  , ( "februarie"  , "feb(ruarie)?"   )+  , ( "martie"  , "martie|mar"        )+  , ( "aprilie"  , "apr(ilie)?"       )+  , ( "mai"  , "mai"                  )+  , ( "iunie"  , "iun(ie)?"           )+  , ( "iulie"  , "iul(ie)?"           )+  , ( "august"  , "aug(ust)?"         )+  , ( "septembrie"  , "sept(embrie)?" )+  , ( "octombrie"  , "oct(ombrie)?"   )+  , ( "noiembrie"  , "noi(embrie)?"   )+  , ( "decembrie"  , "dec(embrie)?"   )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ rules :: [Rule] rules =   [ ruleAboutTimeofday@@ -1440,27 +1311,8 @@   , ruleMmddyyyy   , ruleMonthDdddInterval   , ruleMothersDay-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7   , ruleNameddayDayofmonthNumeral   , ruleNameddayPeDayofmonthNumeral-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNewYearsDay   , ruleNewYearsEve@@ -1501,3 +1353,5 @@   , ruleYearLatent2   , ruleYyyymmdd   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/SV/Corpus.hs view
@@ -9,20 +9,21 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.SV.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale 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)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus-corpus = (testContext {lang = SV}, allExamples)+corpus = (testContext {locale = makeLocale SV Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -75,18 +76,18 @@   , examples (datetime (2013, 3, 1, 0, 0, 0) Day)              [ "Den förste mars"              , "Den första mars"-             , "1. mars"-             , "Den 1. mars"+             , "1:a mars"+             , "Den 1:a mars"              ]   , examples (datetime (2013, 3, 3, 0, 0, 0) Day)              [ "3 mars"              , "den tredje mars"-             , "den 3. mars"+             , "den 3:e mars"              ]   , examples (datetime (2015, 3, 3, 0, 0, 0) Day)              [ "3 mars 2015"              , "tredje mars 2015"-             , "3. mars 2015"+             , "3:e mars 2015"              , "3-3-2015"              , "03-03-2015"              , "3/3/2015"@@ -95,14 +96,13 @@              , "2015-03-03"              ]   , examples (datetime (2013, 2, 15, 0, 0, 0) Day)-             [ "På den 15."+             [ "På den 15:e"              , "På den 15"-             , "Den 15."-             , "Den 15"+             , "Den 15:e"              ]   , examples (datetime (2013, 2, 15, 0, 0, 0) Day)-             [ "den 15. februari"-             , "15. februari"+             [ "den 15:e februari"+             , "15:e februari"              , "februari 15"              , "15-02"              , "15/02"@@ -167,24 +167,25 @@              ]   , examples (datetime (2013, 7, 1, 0, 0, 0) Quarter)              [ "tredje kvartalet"-             , "3. kvartal"-             , "3 kvartal"+             , "3:e kvartal"              ]   , examples (datetime (2018, 10, 1, 0, 0, 0) Quarter)-             [ "4. kvartal 2018"+             [ "4:e kvartal 2018"              , "fjärde kvartalet 2018"              ]-  , examples (datetime (2012, 0, 0, 0, 0, 0) Year)+  , examples (datetime (2012, 1, 1, 0, 0, 0) Year)              [ "förra år"+             , "förra året"+             , "föregående år"              ]-  , examples (datetime (2012, 0, 0, 0, 0, 0) Year)+  , examples (datetime (2012, 1, 1, 0, 0, 0) Year)              [ "i fjol"              ]-  , examples (datetime (2013, 0, 0, 0, 0, 0) Year)+  , examples (datetime (2013, 1, 1, 0, 0, 0) Year)              [ "i år"              , "detta år"              ]-  , examples (datetime (2014, 0, 0, 0, 0, 0) Year)+  , examples (datetime (2014, 1, 1, 0, 0, 0) Year)              [ "nästa år"              ]   , examples (datetime (2013, 2, 10, 0, 0, 0) Day)@@ -194,6 +195,7 @@              ]   , examples (datetime (2013, 2, 5, 0, 0, 0) Day)              [ "förra tisdag"+             , "i tisdags"              ]   , examples (datetime (2013, 2, 19, 0, 0, 0) Day)              [ "nästa tisdag"
Duckling/Time/SV/Rules.hs view
@@ -13,47 +13,74 @@ module Duckling.Time.SV.Rules   ( rules ) where -import Control.Monad (liftM2)+import Data.Text (Text) import Prelude  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Ordinal.Types (OrdinalData (..))-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "m\x00e5ndag(en)?|m\x00e5n\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Mandag"  , "måndag(en)?s?|mån\\.?"    )+  , ( "Tisdag"  , "tisdag(en)?s?|tis?\\.?"   )+  , ( "Onsdag"  , "onsdag(en)?s?|ons\\.?"    )+  , ( "Torsdag" , "torsdag(en)?s?|tors?\\.?" )+  , ( "Fredag"  , "fredag(en)?s?|fre\\.?"    )+  , ( "Lordag"  , "lördag(en)?s?|lör\\.?"    )+  , ( "Sondag"  , "söndag(en)?s?|sön\\.?"    )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ("Januari"   , "januari|jan\\.?"     )+  , ("Februari"  , "februari|feb\\.?"    )+  , ("Mars"      , "mars|mar\\.?"        )+  , ("April"     , "april|apr\\.?"       )+  , ("Maj"       , "maj"                 )+  , ("Juni"      , "juni|jun\\.?"        )+  , ("Juli"      , "juli|jul\\.?"        )+  , ("Augusti"   , "augusti|aug\\.?"     )+  , ("September" , "september|sept?\\.?" )+  , ("Oktober"   , "oktober|okt\\.?"     )+  , ("November"  , "november|nov\\.?"    )+  , ("December"  , "december|dec\\.?"    )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleTheDayAfterTomorrow :: Rule ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"   , pattern =-    [ regex "i \x00f6verimorgon"+    [ regex "i överimorgon"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "december|dec\\.?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"@@ -75,7 +102,7 @@   { name = "relative minutes after|past <integer> (hour-of-day)"   , pattern =     [ Predicate $ isIntegerBetween 1 59-    , regex "\x00f6ver"+    , regex "över"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -92,7 +119,7 @@ ruleHourofdayIntegerAsRelativeMinutes = Rule   { name = "<hour-of-day> <integer> (as relative minutes)"   , pattern =-    [ Predicate isAnHourOfDay+    [ Predicate $ and . sequence [isNotLatent, isAnHourOfDay]     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -122,7 +149,7 @@   { name = "quarter after|past <integer> (hour-of-day)"   , pattern =     [ regex "(en)? ?(kvart)(er)?"-    , regex "\x00f6ver"+    , regex "över"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -164,7 +191,7 @@   { name = "half after|past <integer> (hour-of-day)"   , pattern =     [ regex "halvtimme"-    , regex "\x00f6ver"+    , regex "över"     , Predicate isAnHourOfDay     ]   , prod = \tokens -> case tokens of@@ -188,15 +215,6 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "tisdag(en)?|tis?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleTheOrdinalCycleOfTime :: Rule ruleTheOrdinalCycleOfTime = Rule   { name = "the <ordinal> <cycle> of <time>"@@ -204,7 +222,7 @@     [ regex "den"     , dimension Ordinal     , dimension TimeGrain-    , regex "av|i|fr\x00e5n"+    , regex "av|i|från"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -237,7 +255,7 @@ ruleNewYearsDay = Rule   { name = "new year's day"   , pattern =-    [ regex "ny\x00e5rsdag(en)?"+    [ regex "nyårsdag(en)?"     ]   , prod = \_ -> tt $ monthDay 1 1   }@@ -246,7 +264,7 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "(sista|f\x00f6rra|senaste)"+    [ regex "(sista|förra|senaste)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -255,15 +273,6 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "l\x00f6rdag(en)?|l\x00f6r\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- ruleDatetimeDatetimeInterval :: Rule ruleDatetimeDatetimeInterval = Rule   { name = "<datetime> - <datetime> (interval)"@@ -278,20 +287,11 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juli|jul\\.?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleEvening :: Rule ruleEvening = Rule   { name = "evening"   , pattern =-    [ regex "kv\x00e4ll(en)?"+    [ regex "kväll(en)?"     ]   , prod = \_ ->       let from = hour False 18@@ -345,7 +345,7 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "just nu|nu|(i )?detta \x00f6gonblick"+    [ regex "just nu|nu|(i )?detta ögonblick"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -369,7 +369,7 @@ ruleFromDatetimeDatetimeInterval = Rule   { name = "from <datetime> - <datetime> (interval)"   , pattern =-    [ regex "fr\x00e5n"+    [ regex "från"     , dimension Time     , regex "\\-|till|till och med|tom"     , dimension Time@@ -403,15 +403,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "torsdag(en)?|tors?\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleTheCycleAfterTime :: Rule ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"@@ -431,7 +422,7 @@   { name = "the <cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "(en|na|et)? f\x00f6re"+    , regex "(en|na|et)? före"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -457,7 +448,7 @@ ruleTimeAfterNext = Rule   { name = "<time> after next"   , pattern =-    [ regex "n\x00e4sta"+    [ regex "nästa"     , dimension Time     , regex "igen"     ]@@ -503,7 +494,7 @@ ruleThisnextDayofweek = Rule   { name = "this|next <day-of-week>"   , pattern =-    [ regex "(kommande|n\x00e4sta)"+    [ regex "(kommande|nästa)"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -512,11 +503,23 @@       _ -> Nothing   } +ruleLastDayofweek :: Rule+ruleLastDayofweek = Rule+  { name = "last <day-of-week>"+  , pattern =+    [ regex "i"+    , Predicate isADayOfWeek+    ]+  , prod = \tokens -> case tokens of+      (_:Token Time td:_) -> tt $ predNth (-1) True td+      _ -> Nothing+  }+ ruleTheDayBeforeYesterday :: Rule ruleTheDayBeforeYesterday = Rule   { name = "the day before yesterday"   , pattern =-    [ regex "i f\x00f6rrg\x00e5r"+    [ regex "i förrgår"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   }@@ -540,7 +543,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "n\x00e4sta|kommande"+    [ regex "nästa|kommande"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -549,15 +552,6 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "januari|jan\\.?"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleTheCycleOfTime :: Rule ruleTheCycleOfTime = Rule   { name = "the <cycle> of <time>"@@ -588,7 +582,7 @@ ruleOnDate = Rule   { name = "on <date>"   , pattern =-    [ regex "den|p\x00e5|under"+    [ regex "den|på|under"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -596,21 +590,12 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "mars|mar\\.?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDurationFromNow :: Rule ruleDurationFromNow = Rule   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "fr\x00e5n (idag|nu)"+    , regex "från (idag|nu)"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -635,7 +620,7 @@ ruleLastCycle = Rule   { name = "last <cycle>"   , pattern =-    [ regex "sista|senaste|f\x00f6rra"+    [ regex "sista|senaste|f(ö)rra|f(ö)reg(å)ende"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -671,15 +656,6 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "april|apr\\.?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleTimeBeforeLast :: Rule ruleTimeBeforeLast = Rule   { name = "<time> before last"@@ -728,15 +704,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "fredag(en)?|fre\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleDayofmonthordinalNamedmonth :: Rule ruleDayofmonthordinalNamedmonth = Rule   { name = "<day-of-month>(ordinal) <named-month>"@@ -824,9 +791,9 @@ ruleFromTimeofdayTimeofdayInterval = Rule   { name = "from <time-of-day> - <time-of-day> (interval)"   , pattern =-    [ regex "(efter|fr\x00e5n)"+    [ regex "(efter|från)"     , Predicate isATimeOfDay-    , regex "((men )?f\x00f6re)|\\-|till|till och med|tom"+    , regex "((men )?före)|\\-|till|till och med|tom"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -835,15 +802,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "februari|feb\\.?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"@@ -901,7 +859,7 @@ ruleNewYearsEve = Rule   { name = "new year's eve"   , pattern =-    [ regex "ny\x00e5rsafton?"+    [ regex "nyårsafton?"     ]   , prod = \_ -> tt $ monthDay 12 31   }@@ -948,7 +906,7 @@ ruleLastNCycle = Rule   { name = "last n <cycle>"   , pattern =-    [ regex "sista|senaste|f\x00f6rra"+    [ regex "sista|senaste|förra"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -975,7 +933,7 @@ ruleWithinDuration = Rule   { name = "within <duration>"   , pattern =-    [ regex "(innanf\x00f6r|inom)"+    [ regex "(innanför|inom)"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -1036,7 +994,7 @@ ruleUntilTimeofday = Rule   { name = "until <time-of-day>"   , pattern =-    [ regex "innan|f\x00f6re|intill"+    [ regex "innan|före|intill"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1058,15 +1016,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "juni|jun\\.?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -1085,15 +1034,6 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "augusti|aug\\.?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleTimePartofday :: Rule ruleTimePartofday = Rule   { name = "<time> <part-of-day>"@@ -1113,10 +1053,7 @@   , pattern =     [ regex "((week(\\s|-)?end)|helg)(en)?"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleEomendOfMonth :: Rule@@ -1161,7 +1098,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "n\x00e4sta|kommande"+    [ regex "nästa|kommande"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -1233,7 +1170,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "n\x00e4sta"+    [ regex "nästa"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -1300,7 +1237,7 @@ ruleThisTime = Rule   { name = "this <time>"   , pattern =-    [ regex "(denna|detta|i|den h\x00e4r)"+    [ regex "(denna|detta|i|den här)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1338,7 +1275,7 @@ ruleOnANamedday = Rule   { name = "on a named-day"   , pattern =-    [ regex "p\x00e5 en"+    [ regex "på en"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -1363,7 +1300,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "i g\x00e5r|ig\x00e5r"+    [ regex "i går|igår"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -1448,7 +1385,7 @@   , pattern =     [ dimension Ordinal     , dimension TimeGrain-    , regex "av|i|fr\x00e5n"+    , regex "av|i|från"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1457,24 +1394,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "maj"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "s\x00f6ndag(en)?|s\x00f6n\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleHhmm :: Rule ruleHhmm = Rule   { name = "hh:mm"@@ -1493,7 +1412,7 @@ ruleTonight = Rule   { name = "tonight"   , pattern =-    [ regex "ikv\x00e4ll"+    [ regex "ikväll"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -1514,15 +1433,6 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "oktober|okt\\.?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleNamedmonthDayofmonthNonOrdinal :: Rule ruleNamedmonthDayofmonthNonOrdinal = Rule   { name = "<named-month> <day-of-month> (non ordinal)"@@ -1567,7 +1477,7 @@   { name = "<cycle> before <time>"   , pattern =     [ dimension TimeGrain-    , regex "f\x00f6re"+    , regex "före"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1595,7 +1505,7 @@ ruleTimeofdayTimeofdayInterval = Rule   { name = "<time-of-day> - <time-of-day> (interval)"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\-|till|till och med|tom"     , Predicate isATimeOfDay     ]@@ -1605,15 +1515,6 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "november|nov\\.?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleDurationAfterTime :: Rule ruleDurationAfterTime = Rule   { name = "<duration> after <time>"@@ -1641,15 +1542,6 @@       _ -> Nothing   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "onsdag(en)?|ons\\.?"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleTheDayofmonthOrdinal :: Rule ruleTheDayofmonthOrdinal = Rule   { name = "the <day-of-month> (ordinal)"@@ -1669,7 +1561,7 @@   { name = "<duration> before <time>"   , pattern =     [ dimension Duration-    , regex "f\x00f6re"+    , regex "före"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -1723,15 +1615,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "september|sept?\\.?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleDayofmonthordinalNamedmonthYear :: Rule ruleDayofmonthordinalNamedmonthYear = Rule   { name = "<day-of-month>(ordinal) <named-month> year"@@ -1770,7 +1653,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1838,25 +1721,6 @@   , ruleMidnighteodendOfDay   , ruleMonthDdddInterval   , ruleMorning-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonthNonOrdinal   , ruleNamedmonthDayofmonthOrdinal   , ruleNewYearsDay@@ -1900,6 +1764,7 @@   , ruleThisPartofday   , ruleThisTime   , ruleThisnextDayofweek+  , ruleLastDayofweek   , ruleTimeAfterNext   , ruleTimeBeforeLast   , ruleTimePartofday@@ -1921,3 +1786,5 @@   , ruleYyyymmdd   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
Duckling/Time/VI/Corpus.hs view
@@ -8,23 +8,24 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.VI.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve+import Duckling.Testing.Types hiding (examples) import Duckling.Time.Corpus import Duckling.Time.Types hiding (Month, refTime) import Duckling.TimeGrain.Types hiding (add)-import Duckling.Testing.Types hiding (examples)  corpus :: Corpus corpus = (context, allExamples)   where     context = testContext-      { lang = VI+      { locale = makeLocale VI Nothing       , referenceTime = refTime (2017, 2, 2, 3, 55, 0) (-2)       } 
Duckling/Time/VI/Rules.hs view
@@ -12,8 +12,8 @@ module Duckling.Time.VI.Rules   ( rules ) where -import Control.Monad (liftM2) import Prelude+import Data.Text (Text) import qualified Data.Text as Text  import Duckling.Dimensions.Types@@ -33,25 +33,61 @@ ruleTtDng = Rule   { name = "tết dương"   , pattern =-    [ regex "(t(\x1ebf)t d(\x01b0)(\x01a1)ng)(l(\x1ecb)ch)?"+    [ regex "(t(ế)t d(ư)(ơ)ng)(l(ị)ch)?"     ]   , prod = \_ -> tt $ monthDay 1 1   } -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) (2|hai)"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }+daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday"   , "th(ứ) (2|hai)"                                      )+  , ( "Tuesday"  , "th(ứ) (3|ba)"                                       )+  , ( "Wednesday", "th(ứ) 4|th(ứ) b(ố)n|th(ứ) t(ư)" )+  , ( "Thursday" , "th(ứ) (5|n(ă)m)"                               )+  , ( "Friday"   , "th(ứ) 6|th(ứ) s(á)u"                      )+  , ( "Saturday" , "th(ứ) (7|b((ả)|(ẩ))y)"                    )+  , ( "Sunday"   , "ch(ủ) nh(ậ)t"                                  )+  ] +ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "January"  , "th(á)ng (gi(ê)ng|m(ộ)t)"         )+  , ( "February" , "th(á)ng hai"                               )+  , ( "March"    , "th(á)ng ba"                                )+  , ( "April"    , "th(á)ng t(ư)|th(á)ng b(ố)n" )+  , ( "May"      , "th(á)ng n(ă)m"                        )+  , ( "June"     , "th(á)ng s(á)u"                        )+  , ( "July"     , "th(á)ng b(ả)y"                        )+  , ( "August"   , "th(á)ng t(á)m"                        )+  , ( "September", "th(á)ng ch(í)n"                       )+  , ( "October"  , "th(á)ng m(ư)(ờ)i"                )+  , ( "November" , "th(á)ng m(ư)(ờ)i m(ộ)t"     )+  , ( "December" , "th(á)ng m(ư)(ờ)i hai"            )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ ruleDayofmonthNamedmonth :: Rule ruleDayofmonthNamedmonth = Rule   { name = "<day-of-month> (numeric with day symbol) <named-month>"   , pattern =-    [ regex "(ng(\x00e0)y|m(\x1ed3)ng)( m(\x1ed3)ng)?"+    [ regex "(ng(à)y|m(ồ)ng)( m(ồ)ng)?"     , Predicate isDOMInteger     , Predicate isAMonth     ]@@ -65,8 +101,8 @@   { name = "<day-of-week> cuối cùng của <time>"   , pattern =     [ Predicate isADayOfWeek-    , regex "cu(\x1ed1)i c(\x00f9)ng|cu(\x1ed1)i"-    , regex "c(\x1ee7)a|trong|v(\x00e0)o"+    , regex "cu(ố)i c(ù)ng|cu(ố)i"+    , regex "c(ủ)a|trong|v(à)o"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -79,7 +115,7 @@   { name = "<time> tới"   , pattern =     [ Predicate isNotLatent-    , regex "t(\x1edb)i"+    , regex "t(ớ)i"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ predNth 0 True td@@ -91,8 +127,8 @@   { name = "<cycle> cuối cùng của <time>"   , pattern =     [ dimension TimeGrain-    , regex "cu(\x1ed1)i c(\x00f9)ng|cu(\x1ed1)i"-    , regex "c(\x1ee7)a|trong|v(\x00e0)o"+    , regex "cu(ố)i c(ù)ng|cu(ố)i"+    , regex "c(ủ)a|trong|v(à)o"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -101,20 +137,11 @@       _ -> Nothing   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng m(\x01b0)(\x1edd)i hai"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleTimeofdayLatent2 :: Rule ruleTimeofdayLatent2 = Rule   { name = "time-of-day (latent)"   , pattern =-    [ regex "(l(\x00fa)c|v(\x00e0)o)( l(\x00fa)c)?"+    [ regex "(l(ú)c|v(à)o)( l(ú)c)?"     , Predicate $ isIntegerBetween 0 23     ]   , prod = \tokens -> case tokens of@@ -128,47 +155,29 @@ ruleCchMngThng = Rule   { name = "cách mạng tháng 8"   , pattern =-    [ regex "c(\x00e1)ch m(\x1ea1)ng th(\x00e1)ng (8|t(\x00e1)m)"+    [ regex "c(á)ch m(ạ)ng th(á)ng (8|t(á)m)"     ]   , prod = \_ -> tt $ monthDay 8 19   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) (3|ba)"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleTimeofdayGiNg :: Rule ruleTimeofdayGiNg = Rule   { name = "<time-of-day> giờ đúng"   , pattern =     [ Predicate isATimeOfDay-    , regex "gi(\x1edd) (\x0111)(\x00fa)ng"+    , regex "gi(ờ) (đ)(ú)ng"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) (7|b((\x1ea3)|(\x1ea9))y)"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }- rulePartofdayHmNay :: Rule rulePartofdayHmNay = Rule   { name = "<part-of-day> (hôm )?nay"   , pattern =     [ Predicate isAPartOfDay-    , regex "(h(\x00f4)m )?nay"+    , regex "(h(ô)m )?nay"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -176,20 +185,11 @@       _ -> Nothing   } -ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng b(\x1ea3)y"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleNgyDdmmyyyy :: Rule ruleNgyDdmmyyyy = Rule   { name = "ngày dd/mm/yyyy"   , pattern =-    [ regex "ng(\x00e0)y"+    [ regex "ng(à)y"     , regex "(3[01]|[12]\\d|0?[1-9])[-/](0?[1-9]|1[0-2])[/-](\\d{2,4})"     ]   , prod = \tokens -> case tokens of@@ -201,15 +201,6 @@       _ -> Nothing   } -ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) (5|n(\x0103)m)"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- rulePartofdayTime :: Rule rulePartofdayTime = Rule   { name = "<part-of-day> <time>"@@ -241,7 +232,7 @@ ruleSeason4 = Rule   { name = "season"   , pattern =-    [ regex "m(\x00f9)a? xu(\x00e2)n"+    [ regex "m(ù)a? xu(â)n"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 3 20) (monthDay 6 21)@@ -251,7 +242,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "(bu(\x1ed5)i )?(t(\x1ed1)i|(\x0111)(\x00ea)m)"+    [ regex "(bu(ổ)i )?(t(ố)i|(đ)(ê)m)"     ]   , prod = \_ -> tt $ hour False 12   }@@ -260,7 +251,7 @@ ruleQucTLaoNg = Rule   { name = "quốc tế lao động"   , pattern =-    [ regex "(ng(\x00e0)y )?qu(\x1ed1)c t(\x1ebf) lao (\x0111)(\x00f4)ng"+    [ regex "(ng(à)y )?qu(ố)c t(ế) lao (đ)(ô)ng"     ]   , prod = \_ -> tt $ monthDay 5 1   }@@ -270,28 +261,19 @@   { name = "next <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "(t(\x1edb)i|k(\x1ebf)|sau|ti(\x1ebf)p)( theo)?( ti(\x1ebf)p)?"+    , regex "(t(ớ)i|k(ế)|sau|ti(ế)p)( theo)?( ti(ế)p)?"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) -> tt $ cycleNth grain 1       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng (gi(\x00ea)ng|m(\x1ed9)t)"-    ]-  , prod = \_ -> tt $ month 1-  }- ruleTimeofdayApproximately :: Rule ruleTimeofdayApproximately = Rule   { name = "<time-of-day> approximately"   , pattern =     [ Predicate isATimeOfDay-    , regex "g(\x1ea7)n"+    , regex "g(ầ)n"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -304,7 +286,7 @@   , pattern =     [ Predicate $ isGrain TG.Quarter     , dimension Numeral-    , regex "c(\x1ee7)a|trong"+    , regex "c(ủ)a|trong"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -314,20 +296,11 @@       _ -> Nothing   } -ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng ba"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleLunch :: Rule ruleLunch = Rule   { name = "lunch"   , pattern =-    [ regex "(bu(\x1ed5)i )?tr(\x01b0)a"+    [ regex "(bu(ổ)i )?tr(ư)a"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 12) (hour False 14)@@ -338,7 +311,7 @@   { name = "last <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "tr(\x01b0)(\x1edb)c|qua|v(\x1eeb)a r(\x1ed3)i|ngo(\x00e1)i"+    , regex "tr(ư)(ớ)c|qua|v(ừ)a r(ồ)i|ngo(á)i"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) -> tt . cycleNth grain $ - 1@@ -363,26 +336,17 @@ ruleAfternoon = Rule   { name = "afternoon"   , pattern =-    [ regex "(bu(\x1ed5)i )?chi(\x1ec1)u"+    [ regex "(bu(ổ)i )?chi(ề)u"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 12) (hour False 19)   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng t(\x01b0)|th(\x00e1)ng b(\x1ed1)n"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleHmNay :: Rule ruleHmNay = Rule   { name = "hôm nay"   , pattern =-    [ regex "((ngay )?h(\x00f4)m|b(\x1eef)a) nay"+    [ regex "((ngay )?h(ô)m|b(ữ)a) nay"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   }@@ -391,7 +355,7 @@ ruleAtHhmm = Rule   { name = "at hh:mm"   , pattern =-    [ regex "(l(\x00fa)c|v(\x00e0)o)( l(\x00fa)c)?"+    [ regex "(l(ú)c|v(à)o)( l(ú)c)?"     , regex "((?:[01]?\\d)|(?:2[0-3]))[:.hg]([0-5]\\d)"     ]   , prod = \tokens -> case tokens of@@ -423,7 +387,7 @@   { name = "(hour-of-day) quarter"   , pattern =     [ Predicate isAnHourOfDay-    , regex "k(\x00e9)m"+    , regex "k(é)m"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -438,7 +402,7 @@   { name = "(hour-of-day) half"   , pattern =     [ Predicate isAnHourOfDay-    , regex "r(\x01b0)(\x1ee1)i"+    , regex "r(ư)(ỡ)i"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:_) ->@@ -452,7 +416,7 @@   , pattern =     [ Predicate isAnHourOfDay     , Predicate $ isIntegerBetween 1 59-    , regex "ph(\x00fa)t"+    , regex "ph(ú)t"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) is12H)}:@@ -463,20 +427,11 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) 6|th(\x1ee9) s(\x00e1)u"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleCuiNm :: Rule ruleCuiNm = Rule   { name = "cuối năm"   , pattern =-    [ regex "cu(\x1ed1)i n(\x0103)m"+    [ regex "cu(ố)i n(ă)m"     ]   , prod = \_ -> tt $ cycleNth TG.Year 1   }@@ -509,20 +464,11 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng hai"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleExactlyTimeofday :: Rule ruleExactlyTimeofday = Rule   { name = "exactly <time-of-day>"   , pattern =-    [ regex "(v(\x00e0)o )?(\x0111)(\x00fa)ng"+    [ regex "(v(à)o )?(đ)(ú)ng"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -534,7 +480,7 @@ ruleNgyHmQua = Rule   { name = "ngày hôm qua"   , pattern =-    [ regex "(ng(\x00e0)y )?(h(\x00f4)m )?qua"+    [ regex "(ng(à)y )?(h(ô)m )?qua"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -543,7 +489,7 @@ ruleSeason3 = Rule   { name = "season"   , pattern =-    [ regex "m(\x00f9)a? (\x0111)(\x00f4)ng"+    [ regex "m(ù)a? (đ)(ô)ng"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 12 21) (monthDay 3 20)@@ -553,7 +499,7 @@ ruleSeason = Rule   { name = "season"   , pattern =-    [ regex "m(\x00f9)a? (h(\x00e8)|h(\x1ea1))"+    [ regex "m(ù)a? (h(è)|h(ạ))"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 6 21) (monthDay 9 23)@@ -575,7 +521,7 @@ ruleYearNumericWithYearSymbol = Rule   { name = "year (numeric with year symbol)"   , pattern =-    [ regex "n(\x0103)m"+    [ regex "n(ă)m"     , Predicate $ isIntegerBetween 1000 9999     ]   , prod = \tokens -> case tokens of@@ -589,7 +535,7 @@ ruleAfterWork = Rule   { name = "after work"   , pattern =-    [ regex "(sau gi(\x1edd) l(\x00e0)m|sau gi(\x1edd) tan t(\x1ea7)m|l(\x00fa)c tan t(\x1ea7)m)"+    [ regex "(sau gi(ờ) l(à)m|sau gi(ờ) tan t(ầ)m|l(ú)c tan t(ầ)m)"     ]   , prod = \_ -> do       td <- interval TTime.Open (hour False 17) (hour False 21)@@ -603,7 +549,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "tr(\x01b0)(\x1edb)c|qua|v(\x1eeb)a r(\x1ed3)i|ngo(\x00e1)i|v(\x1eeb)a qua"+    , regex "tr(ư)(ớ)c|qua|v(ừ)a r(ồ)i|ngo(á)i|v(ừ)a qua"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -617,7 +563,7 @@   { name = "<time-of-day> sharp"   , pattern =     [ Predicate isATimeOfDay-    , regex "(\x0111)(\x00fa)ng"+    , regex "(đ)(ú)ng"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -640,7 +586,7 @@ ruleAboutTimeofday = Rule   { name = "about <time-of-day>"   , pattern =-    [ regex "(v(\x00e0)o )?kho(\x1ea3)ng"+    [ regex "(v(à)o )?kho(ả)ng"     , Predicate isATimeOfDay     ]   , prod = \tokens -> case tokens of@@ -652,34 +598,16 @@ ruleLTnhNhn = Rule   { name = "lễ tình nhân"   , pattern =-    [ regex "(ng(\x00e0)y )?(l(\x1ec5))? t(\x00ec)nh nh(\x00e2)n"+    [ regex "(ng(à)y )?(l(ễ))? t(ì)nh nh(â)n"     ]   , prod = \_ -> tt $ monthDay 2 14   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng s(\x00e1)u"-    ]-  , prod = \_ -> tt $ month 6-  }--ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng t(\x00e1)m"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleCuiThng :: Rule ruleCuiThng = Rule   { name = "cuối tháng"   , pattern =-    [ regex "cu(\x1ed1)i th(\x00e1)ng"+    [ regex "cu(ố)i th(á)ng"     ]   , prod = \_ -> tt $ cycleNth TG.Month 1   }@@ -688,12 +616,9 @@ ruleWeekend = Rule   { name = "week-end"   , pattern =-    [ regex "(cu(\x1ed1)i|h(\x1ebf)t) tu(\x1ea7)n"+    [ regex "(cu(ố)i|h(ế)t) tu(ầ)n"     ]-  , prod = \_ -> do-      fri <- intersect (dayOfWeek 5) (hour False 18)-      mon <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open fri mon+  , prod = \_ -> tt weekend   }  ruleTimeofdaySngchiuti :: Rule@@ -701,7 +626,7 @@   { name = "<time-of-day> sáng|chiều|tối"   , pattern =     [ Predicate isATimeOfDay-    , regex "(s(\x00e1)ng|chi(\x1ec1)u|t(\x1ed1)i)"+    , regex "(s(á)ng|chi(ề)u|t(ố)i)"     ]   , prod = \tokens -> case tokens of       (Token Time td:Token RegexMatch (GroupMatch (ap:_)):_) ->@@ -714,7 +639,7 @@   { name = "<time> trước"   , pattern =     [ dimension Time-    , regex "tr(\x01b0)(\x1edb)c|v(\x1eeb)a r(\x1ed3)i"+    , regex "tr(ư)(ớ)c|v(ừ)a r(ồ)i"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ predNth (-1) False td@@ -726,7 +651,7 @@   { name = "time-of-day giờ"   , pattern =     [ Predicate isATimeOfDay-    , regex "gi(\x1edd)"+    , regex "gi(ờ)"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ notLatent td@@ -737,7 +662,7 @@ ruleQucKhnh = Rule   { name = "quốc khánh"   , pattern =-    [ regex "qu(\x1ed1)c kh(\x00e1)nh"+    [ regex "qu(ố)c kh(á)nh"     ]   , prod = \_ -> tt $ monthDay 9 3   }@@ -762,7 +687,7 @@   { name = "intersect by \"of\", \"from\", \"'s\""   , pattern =     [ Predicate isNotLatent-    , regex "c(\x1ee7)a|trong"+    , regex "c(ủ)a|trong"     , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of@@ -776,7 +701,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "(t(\x1edb)i|k(\x1ebf)|sau|ti(\x1ebf)p)( theo)?( ti(\x1ebf)p)?"+    , regex "(t(ớ)i|k(ế)|sau|ti(ế)p)( theo)?( ti(ế)p)?"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -789,7 +714,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "(bu(\x1ed5)i )?s(\x00e1)ng"+    [ regex "(bu(ổ)i )?s(á)ng"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 4) (hour False 12)@@ -800,7 +725,7 @@   { name = "this <cycle>"   , pattern =     [ dimension TimeGrain-    , regex "nay|n(\x00e0)y|hi(\x1ec7)n t(\x1ea1)i|h(\x00f4)m nay|n(\x0103)m nay"+    , regex "nay|n(à)y|hi(ệ)n t(ạ)i|h(ô)m nay|n(ă)m nay"     ]   , prod = \tokens -> case tokens of       (Token TimeGrain grain:_) ->@@ -812,7 +737,7 @@ ruleNoon2 = Rule   { name = "noon"   , pattern =-    [ regex "(bu(\x1ed5)i )?(t(\x1ed1)i|(\x0111)(\x00ea)m)"+    [ regex "(bu(ổ)i )?(t(ố)i|(đ)(ê)m)"     ]   , prod = \_ -> Token Time . partOfDay . mkLatent <$>       interval TTime.Open (hour False 18) (hour False 0)@@ -822,7 +747,7 @@ ruleAfterLunch = Rule   { name = "after lunch"   , pattern =-    [ regex "(sau|qua) (bu(\x1ed5)i |b(\x1eef)a )?tr(\x01b0)a"+    [ regex "(sau|qua) (bu(ổ)i |b(ữ)a )?tr(ư)a"     ]   , prod = \_ -> do       td <- interval TTime.Open (hour False 13) (hour False 17)@@ -834,7 +759,7 @@ ruleSeason2 = Rule   { name = "season"   , pattern =-    [ regex "m(\x00f9)a? thu"+    [ regex "m(ù)a? thu"     ]   , prod = \_ ->       Token Time <$> interval TTime.Open (monthDay 9 23) (monthDay 12 21)@@ -845,7 +770,7 @@   { name = "<time> này"   , pattern =     [ dimension Time-    , regex "n(\x00e0)y|nay"+    , regex "n(à)y|nay"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> tt $ predNth 0 False td@@ -869,7 +794,7 @@ ruleNgyMai = Rule   { name = "ngày mai"   , pattern =-    [ regex "(ng(\x00e0)y )?mai"+    [ regex "(ng(à)y )?mai"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -880,7 +805,7 @@   , pattern =     [ dimension TimeGrain     , dimension Ordinal-    , regex "c(\x1ee7)a|trong"+    , regex "c(ủ)a|trong"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -889,29 +814,11 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng n(\x0103)m"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "ch(\x1ee7) nh(\x1ead)t"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- ruleMonthNumericWithMonthSymbol :: Rule ruleMonthNumericWithMonthSymbol = Rule   { name = "month (numeric with month symbol)"   , pattern =-    [ regex "th(\x00e1)ng"+    [ regex "th(á)ng"     , Predicate $ isIntegerBetween 1 12     ]   , prod = \tokens -> case tokens of@@ -939,7 +846,7 @@ ruleTonight = Rule   { name = "tonight"   , pattern =-    [ regex "(t(\x1ed1)i|(\x0111)(\x00ea)m)( h(\x00f4)m)? nay"+    [ regex "(t(ố)i|(đ)(ê)m)( h(ô)m)? nay"     ]   , prod = \_ -> do       let today = cycleNth TG.Day 0@@ -951,7 +858,7 @@ ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) (isGrainFinerThan TG.Day) isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isGrainFinerThan TG.Day]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -961,20 +868,11 @@       _ -> Nothing   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng m(\x01b0)(\x1edd)i"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleByGi :: Rule ruleByGi = Rule   { name = "bây giờ"   , pattern =-    [ regex "(ngay )?(b(\x00e2)y gi(\x1edd)|l(\x00fa)c n(\x00e0)y)"+    [ regex "(ngay )?(b(â)y gi(ờ)|l(ú)c n(à)y)"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   }@@ -983,7 +881,7 @@ ruleNgyDdmm = Rule   { name = "ngày dd/mm"   , pattern =-    [ regex "ng(\x00e0)y"+    [ regex "ng(à)y"     , regex "(3[01]|[12]\\d|0?[1-9])/(0?[1-9]|1[0-2])"     ]   , prod = \tokens -> case tokens of@@ -1017,7 +915,7 @@   { name = "hhmm (military) sáng|chiều|tối"   , pattern =     [ regex "((?:1[012]|0?\\d))([0-5]\\d)"-    , regex "(s(\x00e1)ng|chi(\x1ec1)u|t(\x1ed1)i)"+    , regex "(s(á)ng|chi(ề)u|t(ố)i)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (hh:mm:_)):@@ -1045,38 +943,20 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng m(\x01b0)(\x1edd)i m(\x1ed9)t"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleGingSinh :: Rule ruleGingSinh = Rule   { name = "giáng sinh"   , pattern =-    [ regex "(ng(\x00e0)y )(xmas|christmas|gi(\x00e1)ng sinh)?"+    [ regex "(ng(à)y )(xmas|christmas|gi(á)ng sinh)?"     ]   , prod = \_ -> tt $ monthDay 12 25   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "th(\x1ee9) 4|th(\x1ee9) b(\x1ed1)n|th(\x1ee9) t(\x01b0)"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleNgyHmKia :: Rule ruleNgyHmKia = Rule   { name = "ngày hôm kia"   , pattern =-    [ regex "(ng(\x00e0)y )?h(\x00f4)m kia"+    [ regex "(ng(à)y )?h(ô)m kia"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   }@@ -1086,7 +966,7 @@   { name = "<day-of-week> tới"   , pattern =     [ Predicate isADayOfWeek-    , regex "t(\x1edb)i"+    , regex "t(ớ)i"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -1094,15 +974,6 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "th(\x00e1)ng ch(\x00ed)n"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleHhmmss :: Rule ruleHhmmss = Rule   { name = "hh:mm:ss"@@ -1155,25 +1026,6 @@   , ruleLunch   , ruleMonthNumericWithMonthSymbol   , ruleMorning-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNextCycle   , ruleNextNCycle   , ruleNgyDdmm@@ -1214,3 +1066,5 @@   , ruleYearNumericWithYearSymbol   , ruleYyyymmdd   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
+ Duckling/Time/ZH/CN/Corpus.hs view
@@ -0,0 +1,37 @@+-- 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.Time.ZH.CN.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 10, 1, 0, 0, 0) Day)+             [ "国庆"+             , "國慶"+             , "国庆节"+             , "国庆節"+             , "國慶节"+             , "國慶節"+             ]+  , examples (datetimeInterval ((2013, 10, 1, 18, 0, 0), (2013, 10, 2, 0, 0, 0)) Hour)+             [ "国庆节晚上"+             , "國慶節晚上"+             ]+  ]
+ Duckling/Time/ZH/CN/Rules.hs view
@@ -0,0 +1,35 @@+-- 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.Time.ZH.CN.Rules+  ( rules+  ) where++import Prelude++import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Types++ruleNationalDay :: Rule+ruleNationalDay = Rule+  { name = "national day"+  , pattern =+    [ regex "(国庆|國慶)(节|節)?"+    ]+  , prod = \_ -> tt $ monthDay 10 1+  }++rules :: [Rule]+rules =+  [ ruleNationalDay+  ]
Duckling/Time/ZH/Corpus.hs view
@@ -9,19 +9,24 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.ZH.Corpus-  ( corpus ) where+  ( corpus+  , defaultCorpus+  ) where -import Prelude import Data.String+import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Time.Corpus import Duckling.TimeGrain.Types hiding (add) import Duckling.Testing.Types hiding (examples) +defaultCorpus :: Corpus+defaultCorpus = corpus+ corpus :: Corpus-corpus = (testContext {lang = ZH}, allExamples)+corpus = (testContext {locale = makeLocale ZH Nothing}, allExamples)  allExamples :: [Example] allExamples = concat@@ -239,6 +244,9 @@              , "今個星期二"              , "今個礼拜二"              , "今個禮拜二"+             , "今星期二"+             , "今礼拜二"+             , "今禮拜二"              ]   , examples (datetime (2013, 2, 11, 0, 0, 0) Week)              [ "这周"@@ -479,21 +487,11 @@              [ "建军节"              , "建軍節"              ]-  , examples (datetime (2013, 10, 1, 0, 0, 0) Day)-             [ "国庆"-             , "國慶"-             , "国庆节"-             , "國慶節"-             ]   , examples (datetime (2013, 12, 25, 0, 0, 0) Day)              [ "圣诞"              , "聖誕"              , "圣诞节"              , "聖誕節"-             ]-  , examples (datetimeInterval ((2013, 10, 1, 18, 0, 0), (2013, 10, 2, 0, 0, 0)) Hour)-             [ "国庆节晚上"-             , "國慶節晚上"              ]   , examples (datetime (2013, 6, 1, 15, 15, 0) Minute)              [ "儿童节下午三点十五"
+ Duckling/Time/ZH/HK/Corpus.hs view
@@ -0,0 +1,37 @@+-- 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.Time.ZH.HK.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 10, 1, 0, 0, 0) Day)+             [ "国庆"+             , "國慶"+             , "国庆节"+             , "国庆節"+             , "國慶节"+             , "國慶節"+             ]+  , examples (datetimeInterval ((2013, 10, 1, 18, 0, 0), (2013, 10, 2, 0, 0, 0)) Hour)+             [ "国庆节晚上"+             , "國慶節晚上"+             ]+  ]
+ Duckling/Time/ZH/HK/Rules.hs view
@@ -0,0 +1,35 @@+-- 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.Time.ZH.HK.Rules+  ( rules+  ) where++import Prelude++import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Types++ruleNationalDay :: Rule+ruleNationalDay = Rule+  { name = "national day"+  , pattern =+    [ regex "(国庆|國慶)(节|節)?"+    ]+  , prod = \_ -> tt $ monthDay 10 1+  }++rules :: [Rule]+rules =+  [ ruleNationalDay+  ]
+ Duckling/Time/ZH/MO/Corpus.hs view
@@ -0,0 +1,37 @@+-- 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.Time.ZH.MO.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 10, 1, 0, 0, 0) Day)+             [ "国庆"+             , "國慶"+             , "国庆节"+             , "国庆節"+             , "國慶节"+             , "國慶節"+             ]+  , examples (datetimeInterval ((2013, 10, 1, 18, 0, 0), (2013, 10, 2, 0, 0, 0)) Hour)+             [ "国庆节晚上"+             , "國慶節晚上"+             ]+  ]
+ Duckling/Time/ZH/MO/Rules.hs view
@@ -0,0 +1,35 @@+-- 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.Time.ZH.MO.Rules+  ( rules+  ) where++import Prelude++import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Types++ruleNationalDay :: Rule+ruleNationalDay = Rule+  { name = "national day"+  , pattern =+    [ regex "(国庆|國慶)(节|節)?"+    ]+  , prod = \_ -> tt $ monthDay 10 1+  }++rules :: [Rule]+rules =+  [ ruleNationalDay+  ]
Duckling/Time/ZH/Rules.hs view
@@ -11,55 +11,38 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.ZH.Rules-  ( rules ) where+  ( rules+  ) where -import Control.Monad (liftM2)-import qualified Data.Text as Text+import Data.Text (Text) import Prelude+import qualified Data.Text as Text  import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt)-import qualified Duckling.Ordinal.Types as TOrdinal import Duckling.Regex.Types import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..))+import Duckling.Types+import qualified Duckling.Ordinal.Types as TOrdinal import qualified Duckling.Time.Types as TTime import qualified Duckling.TimeGrain.Types as TG-import Duckling.Types -ruleNamedday :: Rule-ruleNamedday = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x4e00|\x5468\x4e00|\x793c\x62dc\x4e00|\x79ae\x62dc\x4e00|\x9031\x4e00"-    ]-  , prod = \_ -> tt $ dayOfWeek 1-  }- ruleTheDayAfterTomorrow :: Rule ruleTheDayAfterTomorrow = Rule   { name = "the day after tomorrow"   , pattern =-    [ regex "\x540e\x5929|\x5f8c\x5929|\x5f8c\x65e5"+    [ regex "后天|後天|後日"     ]   , prod = \_ -> tt $ cycleNth TG.Day 2   } -ruleNamedmonth12 :: Rule-ruleNamedmonth12 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x5341\x4e8c\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 12-  }- ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule   { name = "relative minutes to|till|before <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "(\x70b9|\x9ede)\x5dee"+    , regex "(点|點)差"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -75,7 +58,7 @@   { name = "relative minutes to|till|before noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x5dee"+    , regex "差"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -91,7 +74,7 @@   { name = "relative minutes after|past <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x70b9|\x9ede"+    , regex "点|點"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -109,7 +92,7 @@   { name = "relative minutes after|past noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x8fc7|\x904e"+    , regex "过|\x904e"     , Predicate $ isIntegerBetween 1 59     ]   , prod = \tokens -> case tokens of@@ -127,8 +110,8 @@   { name = "quarter to|till|before <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "(\x70b9|\x9ede)\x5dee"-    , regex "\x4e00\x523b"+    , regex "(点|點)差"+    , regex "一刻"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$> minutesBefore 15 td@@ -139,8 +122,8 @@   { name = "quarter to|till|before noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x5dee"-    , regex "\x4e00\x523b"+    , regex "差"+    , regex "一刻"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$> minutesBefore 15 td@@ -151,8 +134,8 @@   { name = "quarter after|past <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x70b9|\x9ede"-    , regex "\x4e00\x523b"+    , regex "点|點"+    , regex "一刻"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -164,8 +147,8 @@   { name = "quarter after|past noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x8fc7"-    , regex "\x4e00\x523b"+    , regex "过"+    , regex "一刻"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -178,8 +161,8 @@   { name = "half to|till|before <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "(\x70b9|\x9ede)\x5dee"-    , regex "\x534a"+    , regex "(点|點)差"+    , regex "半"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$> minutesBefore 30 td@@ -190,8 +173,8 @@   { name = "half to|till|before noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x5dee"-    , regex "\x534a"+    , regex "差"+    , regex "半"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) -> Token Time <$> minutesBefore 30 td@@ -202,8 +185,8 @@   { name = "half after|past <integer> (hour-of-day)"   , pattern =     [ Predicate isAnHourOfDay-    , regex "\x70b9|\x9ede"-    , regex "\x534a"+    , regex "点|點"+    , regex "半"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -215,8 +198,8 @@   { name = "half after|past noon|midnight"   , pattern =     [ Predicate isMidnightOrNoon-    , regex "\x8fc7"-    , regex "\x534a"+    , regex "过"+    , regex "半"     ]   , prod = \tokens -> case tokens of       (Token Time TimeData {TTime.form = Just (TTime.TimeOfDay (Just hours) _)}:@@ -224,20 +207,11 @@       _ -> Nothing   } -ruleNamedday2 :: Rule-ruleNamedday2 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x4e8c|\x5468\x4e8c|\x793c\x62dc\x4e8c|\x79ae\x62dc\x4e8c|\x9031\x4e8c"-    ]-  , prod = \_ -> tt $ dayOfWeek 2-  }- ruleValentinesDay :: Rule ruleValentinesDay = Rule   { name = "valentine's day"   , pattern =-    [ regex "\x60c5\x4eba(\x8282|\x7bc0)"+    [ regex "情人(节|節)"     ]   , prod = \_ -> tt $ monthDay 2 14   }@@ -260,7 +234,7 @@ ruleThisDayofweek = Rule   { name = "this <day-of-week>"   , pattern =-    [ regex "\x8fd9|\x9019|\x4eca(\x4e2a|\x500b)"+    [ regex "这|這|今(个|個)?"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -274,7 +248,7 @@   { name = "nth <time> of <time>"   , pattern =     [ dimension Time-    , regex "\x7684"+    , regex "的"     , dimension Ordinal     , dimension Time     ]@@ -288,7 +262,7 @@ ruleNewYearsDay = Rule   { name = "new year's day"   , pattern =-    [ regex "\x5143\x65e6(\x8282|\x7bc0)?"+    [ regex "元旦(节|節)?"     ]   , prod = \_ -> tt $ monthDay 1 1   }@@ -297,7 +271,7 @@ ruleLastTime = Rule   { name = "last <time>"   , pattern =-    [ regex "\x53bb|\x4e0a(\x4e2a|\x500b)?"+    [ regex "去|上(个|個)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -306,29 +280,11 @@       _ -> Nothing   } -ruleNamedday6 :: Rule-ruleNamedday6 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x516d|\x5468\x516d|\x793c\x62dc\x516d|\x79ae\x62dc\x516d|\x9031\x516d"-    ]-  , prod = \_ -> tt $ dayOfWeek 6-  }--ruleNamedmonth7 :: Rule-ruleNamedmonth7 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e03\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 7-  }- ruleInDuration :: Rule ruleInDuration = Rule   { name = "in <duration>"   , pattern =-    [ regex "\x518d"+    [ regex "再"     , dimension Duration     ]   , prod = \tokens -> case tokens of@@ -341,36 +297,18 @@ ruleNow = Rule   { name = "now"   , pattern =-    [ regex "\x73b0\x5728|\x6b64\x65f6|\x6b64\x523b|\x5f53\x524d|\x73fe\x5728|\x6b64\x6642|\x7576\x524d|\x5b9c\x5bb6|\x800c\x5bb6|\x4f9d\x5bb6"+    [ regex "现在|此时|此刻|当前|現在|此時|當前|\x5b9c\x5bb6|\x800c\x5bb6|\x4f9d\x5bb6"     ]   , prod = \_ -> tt $ cycleNth TG.Second 0   } -ruleNationalDay :: Rule-ruleNationalDay = Rule-  { name = "national day"-  , pattern =-    [ regex "(\x56fd\x5e86|\x570b\x6176)(\x8282|\x7bc0)?"-    ]-  , prod = \_ -> tt $ monthDay 10 1-  }--ruleNamedday4 :: Rule-ruleNamedday4 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x56db|\x5468\x56db|\x793c\x62dc\x56db|\x79ae\x62dc\x56db|\x9031\x56db"-    ]-  , prod = \_ -> tt $ dayOfWeek 4-  }- ruleTheCycleAfterTime :: Rule ruleTheCycleAfterTime = Rule   { name = "the <cycle> after <time>"   , pattern =-    [ regex "\x90a3"+    [ regex "那"     , dimension TimeGrain-    , regex "(\x4e4b)?(\x540e|\x5f8c)"+    , regex "(之)?(后|後)"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -383,9 +321,9 @@ ruleTheCycleBeforeTime = Rule   { name = "the <cycle> before <time>"   , pattern =-    [ regex "\x90a3"+    [ regex "那"     , dimension TimeGrain-    , regex "(\x4e4b)?\x524d"+    , regex "(之)?前"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -398,7 +336,7 @@ ruleNoon = Rule   { name = "noon"   , pattern =-    [ regex "\x4e2d\x5348"+    [ regex "中午"     ]   , prod = \_ -> tt $ hour False 12   }@@ -407,16 +345,16 @@ ruleToday = Rule   { name = "today"   , pattern =-    [ regex "\x4eca\x5929|\x4eca\x65e5"+    [ regex "今天|今日"     ]   , prod = \_ -> tt $ cycleNth TG.Day 0   } -ruleThisnextDayofweek :: Rule-ruleThisnextDayofweek = Rule-  { name = "this|next <day-of-week>"+ruleNextDayofweek :: Rule+ruleNextDayofweek = Rule+  { name = "next <day-of-week>"   , pattern =-    [ regex "\x4eca(\x4e2a|\x500b)?|\x660e|\x4e0b(\x4e2a|\x500b)?"+    [ regex "明|下(个|個)?"     , Predicate isADayOfWeek     ]   , prod = \tokens -> case tokens of@@ -429,7 +367,7 @@ ruleTheDayBeforeYesterday = Rule   { name = "the day before yesterday"   , pattern =-    [ regex "\x524d\x5929|\x524d\x65e5"+    [ regex "前天|前日"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 2   }@@ -438,7 +376,7 @@ ruleLaborDay = Rule   { name = "labor day"   , pattern =-    [ regex "\x52b3\x52a8\x8282|\x52de\x52d5\x7bc0"+    [ regex "劳动节|勞動節"     ]   , prod = \_ -> tt $ monthDay 5 1   }@@ -447,7 +385,7 @@ ruleNextCycle = Rule   { name = "next <cycle>"   , pattern =-    [ regex "\x4e0b(\x4e2a|\x500b)?"+    [ regex "下(个|個)?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -456,30 +394,12 @@       _ -> Nothing   } -ruleNamedmonth :: Rule-ruleNamedmonth = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e00\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 1-  }--ruleNamedmonth3 :: Rule-ruleNamedmonth3 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e09\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 3-  }- ruleDurationFromNow :: Rule ruleDurationFromNow = Rule   { name = "<duration> from now"   , pattern =     [ dimension Duration-    , regex "\x540e|\x5f8c|\x4e4b\x5f8c"+    , regex "后|後|之後"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -491,7 +411,7 @@ ruleLastCycle = Rule   { name = "last <cycle>"   , pattern =-    [ regex "\x4e0a(\x4e2a|\x500b)?"+    [ regex "上(个|個)?"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -504,7 +424,7 @@ ruleAfternoon = Rule   { name = "afternoon"   , pattern =-    [ regex "\x4e0b\x5348|\x4e2d\x5348|\x664f\x665d"+    [ regex "下午|中午|\x664f\x665d"     ]   , prod = \_ ->       let from = hour False 12@@ -513,20 +433,11 @@            interval TTime.Open from to   } -ruleNamedmonth4 :: Rule-ruleNamedmonth4 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x56db\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 4-  }- ruleMidnight :: Rule ruleMidnight = Rule   { name = "midnight"   , pattern =-    [ regex "\x5348\x591c|\x51cc\x6668|\x534a\x591c"+    [ regex "午夜|凌晨|半夜"     ]   , prod = \_ -> tt $ hour False 0   }@@ -536,7 +447,7 @@   { name = "in|during the <part-of-day>"   , pattern =     [ Predicate isAPartOfDay-    , regex "\x70b9|\x9ede"+    , regex "点|點"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -544,15 +455,6 @@       _ -> Nothing   } -ruleNamedday5 :: Rule-ruleNamedday5 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x4e94|\x5468\x4e94|\x793c\x62dc\x4e94|\x79ae\x62dc\x4e94|\x9031\x4e94"-    ]-  , prod = \_ -> tt $ dayOfWeek 5-  }- ruleIntersectBy :: Rule ruleIntersectBy = Rule   { name = "intersect by \",\""@@ -581,15 +483,6 @@       _ -> Nothing   } -ruleNamedmonth2 :: Rule-ruleNamedmonth2 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e8c\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 2-  }- ruleIntegerLatentTimeofday :: Rule ruleIntegerLatentTimeofday = Rule   { name = "<integer> (latent time-of-day)"@@ -608,7 +501,7 @@   { name = "year (numeric with year symbol)"   , pattern =     [ Predicate $ isIntegerBetween 1000 9999-    , regex "\x5e74"+    , regex "年"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -622,7 +515,7 @@   { name = "<duration> ago"   , pattern =     [ dimension Duration-    , regex "(\x4e4b)?\x524d"+    , regex "(之)?前"     ]   , prod = \tokens -> case tokens of       (Token Duration dd:_) ->@@ -648,7 +541,7 @@ ruleLastNCycle = Rule   { name = "last n <cycle>"   , pattern =-    [ regex "\x4e0a|\x524d"+    [ regex "上|前"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -665,7 +558,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "(\x4e4b)?\x524d"+    , regex "(之)?前"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -687,15 +580,6 @@       _ -> Nothing   } -ruleNamedmonth6 :: Rule-ruleNamedmonth6 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x516d\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 6-  }- ruleNthTimeOfTime :: Rule ruleNthTimeOfTime = Rule   { name = "nth <time> of <time>"@@ -710,32 +594,20 @@       _ -> Nothing   } -ruleNamedmonth8 :: Rule-ruleNamedmonth8 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x516b\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 8-  }- ruleWeekend :: Rule ruleWeekend = Rule   { name = "week-end"   , pattern =-    [ regex "\x5468\x672b|\x9031\x672b"+    [ regex "周末|週末"     ]-  , prod = \_ -> do-      from <- intersect (dayOfWeek 5) (hour False 18)-      to <- intersect (dayOfWeek 1) (hour False 0)-      Token Time <$> interval TTime.Open from to+  , prod = \_ -> tt weekend   }  ruleLastYear :: Rule ruleLastYear = Rule   { name = "last year"   , pattern =-    [ regex "\x53bb\x5e74|\x4e0a\x5e74"+    [ regex "去年|上年"     ]   , prod = \_ -> tt . cycleNth TG.Year $ - 1   }@@ -757,7 +629,7 @@ ruleNextTime = Rule   { name = "next <time>"   , pattern =-    [ regex "\x660e|\x4e0b(\x4e2a|\x500b)?"+    [ regex "明|下(个|個)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -785,7 +657,7 @@ ruleNextNCycle = Rule   { name = "next n <cycle>"   , pattern =-    [ regex "\x4e0b|\x540e|\x5f8c"+    [ regex "下|后|後"     , Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain     ]@@ -802,7 +674,7 @@   , pattern =     [ Predicate $ isIntegerBetween 1 9999     , dimension TimeGrain-    , regex "\x4e0b|(\x4e4b)?\x540e|(\x4e4b)?\x5f8c"+    , regex "下|(之)?后|(之)?後"     ]   , prod = \tokens -> case tokens of       (token:Token TimeGrain grain:_) -> do@@ -815,7 +687,7 @@ ruleMorning = Rule   { name = "morning"   , pattern =-    [ regex "\x65e9\x4e0a|\x65e9\x6668|\x671d(\x982d)?\x65e9"+    [ regex "早上|早晨|\x671d(\x982d)?早"     ]   , prod = \_ ->       let from = hour False 4@@ -828,7 +700,7 @@ ruleNextYear = Rule   { name = "next year"   , pattern =-    [ regex "\x660e\x5e74|\x4e0b\x5e74"+    [ regex "明年|下年"     ]   , prod = \_ -> tt $ cycleNth TG.Year 1   }@@ -837,7 +709,7 @@ ruleThisCycle = Rule   { name = "this <cycle>"   , pattern =-    [ regex "(\x8fd9|\x9019)(\x4e00)?|\x4eca\x500b"+    [ regex "(这|這)(一)?|今個"     , dimension TimeGrain     ]   , prod = \tokens -> case tokens of@@ -850,7 +722,7 @@ ruleThisTime = Rule   { name = "this <time>"   , pattern =-    [ regex "\x4eca(\x4e2a|\x500b)?|\x8fd9(\x4e2a)?|\x9019(\x500b)?"+    [ regex "今(个|個)?|这(个)?|這(個)?"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -863,7 +735,7 @@ ruleYesterday = Rule   { name = "yesterday"   , pattern =-    [ regex "\x6628\x5929|\x6628\x65e5|\x5c0b\x65e5"+    [ regex "昨天|昨日|\x5c0b日"     ]   , prod = \_ -> tt . cycleNth TG.Day $ - 1   }@@ -872,7 +744,7 @@ ruleChristmas = Rule   { name = "christmas"   , pattern =-    [ regex "(\x5723\x8bde|\x8056\x8a95)(\x8282|\x7bc0)?"+    [ regex "(圣诞|聖誕)(节|節)?"     ]   , prod = \_ -> tt $ monthDay 12 25   }@@ -881,7 +753,7 @@ ruleLastNight = Rule   { name = "last night"   , pattern =-    [ regex "\x6628\x665a|\x6628\x5929\x665a\x4e0a|\x5c0b\x665a"+    [ regex "昨晚|昨天晚上|\x5c0b晚"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day $ - 1@@ -906,7 +778,7 @@ ruleArmysDay = Rule   { name = "army's day"   , pattern =-    [ regex "\x5efa(\x519b\x8282|\x8ecd\x7bc0)"+    [ regex "建(军节|軍節)"     ]   , prod = \_ -> tt $ monthDay 8 1   }@@ -917,7 +789,7 @@   , pattern =     [ Predicate isAMonth     , dimension Numeral-    , regex "\x53f7|\x865f|\x65e5"+    , regex "号|號|日"     ]   , prod = \tokens -> case tokens of       (Token Time td:token:_) -> Token Time <$> intersectDOM td token@@ -928,7 +800,7 @@ ruleLastTuesdayLastJuly = Rule   { name = "last tuesday, last july"   , pattern =-    [ regex "\x4e0a"+    [ regex "上"     , dimension Time     ]   , prod = \tokens -> case tokens of@@ -937,24 +809,6 @@       _ -> Nothing   } -ruleNamedmonth5 :: Rule-ruleNamedmonth5 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e94\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 5-  }--ruleNamedday7 :: Rule-ruleNamedday7 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x65e5|\x661f\x671f\x5929|\x793c\x62dc\x5929|\x5468\x65e5|\x79ae\x62dc\x5929|\x9031\x65e5|\x79ae\x62dc\x65e5"-    ]-  , prod = \_ -> tt $ dayOfWeek 7-  }- rulePartofdayDimTime :: Rule rulePartofdayDimTime = Rule   { name = "<part-of-day> <dim time>"@@ -973,7 +827,7 @@   { name = "month (numeric with month symbol)"   , pattern =     [ Predicate $ isIntegerBetween 1 12-    , regex "\x6708"+    , regex "月"     ]   , prod = \tokens -> case tokens of       (token:_) -> do@@ -986,7 +840,7 @@ ruleTonight = Rule   { name = "tonight"   , pattern =-    [ regex "\x4eca\x665a|\x4eca\x5929\x665a\x4e0a"+    [ regex "今晚|今天晚上"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 0@@ -998,7 +852,7 @@ ruleTomorrowNight = Rule   { name = "tomorrow night"   , pattern =-    [ regex "\x660e\x665a|\x660e\x5929\x665a\x4e0a|\x807d\x665a"+    [ regex "明晚|明天晚上|\x807d晚"     ]   , prod = \_ -> do       let td1 = cycleNth TG.Day 1@@ -1006,20 +860,11 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleNamedmonth10 :: Rule-ruleNamedmonth10 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x5341\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 10-  }- ruleChildrensDay :: Rule ruleChildrensDay = Rule   { name = "children's day"   , pattern =-    [ regex "(\x513f|\x5152)\x7ae5(\x8282|\x7bc0)"+    [ regex "(儿|兒)童(节|節)"     ]   , prod = \_ -> tt $ monthDay 6 1   }@@ -1028,7 +873,7 @@ ruleThisYear = Rule   { name = "this year"   , pattern =-    [ regex "\x4eca\x5e74"+    [ regex "今年"     ]   , prod = \_ -> tt $ cycleNth TG.Year 0   }@@ -1045,20 +890,11 @@       _ -> Nothing   } -ruleNamedmonth11 :: Rule-ruleNamedmonth11 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x5341\x4e00\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 11-  }- ruleWomensDay :: Rule ruleWomensDay = Rule   { name = "women's day"   , pattern =-    [ regex "(\x5987|\x5a66)\x5973(\x8282|\x7bc0)"+    [ regex "(妇|婦)女(节|節)"     ]   , prod = \_ -> tt $ monthDay 3 8   }@@ -1067,7 +903,7 @@ ruleEveningnight = Rule   { name = "evening|night"   , pattern =-    [ regex "\x665a\x4e0a|\x665a\x95f4"+    [ regex "晚上|晚间"     ]   , prod = \_ ->       let from = hour False 18@@ -1076,15 +912,6 @@            interval TTime.Open from to   } -ruleNamedday3 :: Rule-ruleNamedday3 = Rule-  { name = "named-day"-  , pattern =-    [ regex "\x661f\x671f\x4e09|\x5468\x4e09|\x793c\x62dc\x4e09|\x79ae\x62dc\x4e09|\x9031\x4e09"-    ]-  , prod = \_ -> tt $ dayOfWeek 3-  }- ruleMmddyyyy :: Rule ruleMmddyyyy = Rule   { name = "mm/dd/yyyy"@@ -1104,7 +931,7 @@ ruleTomorrow = Rule   { name = "tomorrow"   , pattern =-    [ regex "\x660e\x5929|\x660e\x65e5|\x807d\x65e5"+    [ regex "明天|明日|\x807d日"     ]   , prod = \_ -> tt $ cycleNth TG.Day 1   }@@ -1114,7 +941,7 @@   { name = "<time-of-day> o'clock"   , pattern =     [ Predicate isATimeOfDay-    , regex "\x9ede|\x70b9|\x6642"+    , regex "點|点|時"     ]   , prod = \tokens -> case tokens of       (Token Time td:_) ->@@ -1122,20 +949,11 @@       _ -> Nothing   } -ruleNamedmonth9 :: Rule-ruleNamedmonth9 = Rule-  { name = "named-month"-  , pattern =-    [ regex "\x4e5d\x6708(\x4efd)?"-    ]-  , prod = \_ -> tt $ month 9-  }- ruleTimezone :: Rule ruleTimezone = Rule   { name = "<time> timezone"   , pattern =-    [ Predicate $ liftM2 (&&) isATimeOfDay isNotLatent+    [ Predicate $ and . sequence [isNotLatent, isATimeOfDay]     , regex "\\b(YEKT|YEKST|YAKT|YAKST|WITA|WIT|WIB|WGT|WGST|WFT|WET|WEST|WAT|WAST|VUT|VLAT|VLAST|VET|UZT|UYT|UYST|UTC|ULAT|TVT|TMT|TLT|TKT|TJT|TFT|TAHT|SST|SRT|SGT|SCT|SBT|SAST|SAMT|RET|PYT|PYST|PWT|PST|PONT|PMST|PMDT|PKT|PHT|PHOT|PGT|PETT|PETST|PET|PDT|OMST|OMSST|NZST|NZDT|NUT|NST|NPT|NOVT|NOVST|NFT|NDT|NCT|MYT|MVT|MUT|MST|MSK|MSD|MMT|MHT|MDT|MAWT|MART|MAGT|MAGST|LINT|LHST|LHDT|KUYT|KST|KRAT|KRAST|KGT|JST|IST|IRST|IRKT|IRKST|IRDT|IOT|IDT|ICT|HOVT|HKT|GYT|GST|GMT|GILT|GFT|GET|GAMT|GALT|FNT|FKT|FKST|FJT|FJST|EST|EGT|EGST|EET|EEST|EDT|ECT|EAT|EAST|EASST|DAVT|ChST|CXT|CVT|CST|COT|CLT|CLST|CKT|CHAST|CHADT|CET|CEST|CDT|CCT|CAT|CAST|BTT|BST|BRT|BRST|BOT|BNT|AZT|AZST|AZOT|AZOST|AWST|AWDT|AST|ART|AQTT|ANAT|ANAST|AMT|AMST|ALMT|AKST|AKDT|AFT|AEST|AEDT|ADT|ACST|ACDT)\\b"     ]   , prod = \tokens -> case tokens of@@ -1145,6 +963,52 @@       _ -> Nothing   } ++daysOfWeek :: [(Text, String)]+daysOfWeek =+  [ ( "Monday", "星期一|周一|礼拜一|禮拜一|週一" )+  , ( "Tuesday", "星期二|周二|礼拜二|禮拜二|週二" )+  , ( "Wednesday", "星期三|周三|礼拜三|禮拜三|週三" )+  , ( "Thursday", "星期四|周四|礼拜四|禮拜四|週四" )+  , ( "Friday", "星期五|周五|礼拜五|禮拜五|週五" )+  , ( "Saturday", "星期六|周六|礼拜六|禮拜六|週六" )+  , ( "Sunday", "星期日|星期天|礼拜天|周日|禮拜天|週日|禮拜日" )+  ]++ruleDaysOfWeek :: [Rule]+ruleDaysOfWeek = zipWith go daysOfWeek [1..7]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ dayOfWeek i+      }++months :: [(Text, String)]+months =+  [ ( "January", "一月(份)?" )+  , ( "February", "二月(份)?" )+  , ( "March", "三月(份)?" )+  , ( "April", "四月(份)?" )+  , ( "May", "五月(份)?" )+  , ( "June", "六月(份)?" )+  , ( "July", "七月(份)?" )+  , ( "August", "八月(份)?" )+  , ( "September", "九月(份)?" )+  , ( "October", "十月(份)?" )+  , ( "November", "十一月(份)?" )+  , ( "December", "十二月(份)?" )+  ]++ruleMonths :: [Rule]+ruleMonths = zipWith go months [1..12]+  where+    go (name, regexPattern) i = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> tt $ month i+      }+ rules :: [Rule] rules =   [ ruleAbsorptionOfAfterNamedDay@@ -1176,27 +1040,7 @@   , ruleMmddyyyy   , ruleMonthNumericWithMonthSymbol   , ruleMorning-  , ruleNamedday-  , ruleNamedday2-  , ruleNamedday3-  , ruleNamedday4-  , ruleNamedday5-  , ruleNamedday6-  , ruleNamedday7-  , ruleNamedmonth-  , ruleNamedmonth10-  , ruleNamedmonth11-  , ruleNamedmonth12-  , ruleNamedmonth2-  , ruleNamedmonth3-  , ruleNamedmonth4-  , ruleNamedmonth5-  , ruleNamedmonth6-  , ruleNamedmonth7-  , ruleNamedmonth8-  , ruleNamedmonth9   , ruleNamedmonthDayofmonth-  , ruleNationalDay   , ruleNewYearsDay   , ruleNextCycle   , ruleNextNCycle@@ -1228,7 +1072,7 @@   , ruleThisDayofweek   , ruleThisTime   , ruleThisYear-  , ruleThisnextDayofweek+  , ruleNextDayofweek   , ruleTimeofdayAmpm   , ruleTimeofdayOclock   , ruleToday@@ -1243,3 +1087,5 @@   , ruleYyyymmdd   , ruleTimezone   ]+  ++ ruleDaysOfWeek+  ++ ruleMonths
+ Duckling/Time/ZH/TW/Corpus.hs view
@@ -0,0 +1,37 @@+-- 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.Time.ZH.TW.Corpus+  ( allExamples+  ) where++import Data.String+import Prelude++import Duckling.Testing.Types hiding (examples)+import Duckling.Time.Corpus+import Duckling.Time.Types hiding (Month)+import Duckling.TimeGrain.Types hiding (add)++allExamples :: [Example]+allExamples = concat+  [ examples (datetime (2013, 10, 10, 0, 0, 0) Day)+             [ "国庆"+             , "國慶"+             , "国庆节"+             , "国庆節"+             , "國慶节"+             , "國慶節"+             ]+  , examples (datetimeInterval ((2013, 10, 10, 18, 0, 0), (2013, 10, 11, 0, 0, 0)) Hour)+             [ "国庆节晚上"+             , "國慶節晚上"+             ]+  ]
+ Duckling/Time/ZH/TW/Rules.hs view
@@ -0,0 +1,35 @@+-- 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.Time.ZH.TW.Rules+  ( rules+  ) where++import Prelude++import Duckling.Regex.Types+import Duckling.Time.Helpers+import Duckling.Types++ruleNationalDay :: Rule+ruleNationalDay = Rule+  { name = "national day"+  , pattern =+    [ regex "(国庆|國慶)(节|節)?"+    ]+  , prod = \_ -> tt $ monthDay 10 10+  }++rules :: [Rule]+rules =+  [ ruleNationalDay+  ]
Duckling/TimeGrain/DA/Rules.hs view
@@ -26,9 +26,9 @@          , ("hour (grain)", "t(imer?)?", TG.Hour)          , ("day (grain)", "dag(e)?", TG.Day)          , ("week (grain)", "uger?", TG.Week)-         , ("month (grain)", "m\x00e5ned(er)?", TG.Month)+         , ("month (grain)", "måned(er)?", TG.Month)          , ("quarter (grain)", "kvartal(er)?", TG.Quarter)-         , ("year (grain)", "\x00e5r", TG.Year)+         , ("year (grain)", "år", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/ES/Rules.hs view
@@ -24,11 +24,11 @@ grains = [ ("segundo (grain)", "seg(undo)?s?", TG.Second)          , ("minutos (grain)", "min(uto)?s?", TG.Minute)          , ("hora (grain)", "h(ora)?s?", TG.Hour)-         , ("dia (grain)", "d(\x00ed|i)as?", TG.Day)+         , ("dia (grain)", "d(í|i)as?", TG.Day)          , ("semana (grain)", "semanas?", TG.Week)          , ("mes (grain)", "mes(es)?", TG.Month)          , ("trimestre (grain)", "trimestres?", TG.Quarter)-         , ("año (grain)", "a(n|\x00f1)os?", TG.Year)+         , ("año (grain)", "a(n|ñ)os?", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/FR/Rules.hs view
@@ -23,11 +23,11 @@ grains = [ ("seconde (grain)", "sec(onde)?s?", TG.Second)          , ("minute (grain)", "min(ute)?s?", TG.Minute)          , ("heure (grain)", "heures?", TG.Hour)-         , ("jour (grain)", "jour(n(e|\x00e9)e?)?s?", TG.Day)+         , ("jour (grain)", "jour(n(e|é)e?)?s?", TG.Day)          , ("semaine (grain)", "semaines?", TG.Week)          , ("mois (grain)", "mois", TG.Month)          , ("trimestre (grain)", "trimestres?", TG.Quarter)-         , ("année (grain)", "an(n(e|\x00e9)e?)?s?", TG.Year)+         , ("année (grain)", "an(n(e|é)e?)?s?", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/GA/Rules.hs view
@@ -21,13 +21,13 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("soicind (grain)", "t?sh?oicind(\x00ed|i)?", TG.Second)-         , ("nóiméad (grain)", "n[\x00f3o]im(\x00e9|e)[ai]da?", TG.Minute)+grains = [ ("soicind (grain)", "t?sh?oicind(í|i)?", TG.Second)+         , ("nóiméad (grain)", "n[óo]im(é|e)[ai]da?", TG.Minute)          , ("uair (grain)", "([thn]-?)?uair(e|eanta)?", TG.Hour)-         , ("lá (grain)", "l(ae(thanta)?|(\x00e1|a))", TG.Day)-         , ("seachtain (grain)", "t?sh?eachtain(e|(\x00ed|i))?", TG.Week)-         , ("mí (grain)", "mh?(\x00ed|i)(sa|nna)", TG.Month)-         , ("ráithe (grain)", "r(\x00e1|a)ith(e|(\x00ed|i))", TG.Quarter)+         , ("lá (grain)", "l(ae(thanta)?|(á|a))", TG.Day)+         , ("seachtain (grain)", "t?sh?eachtain(e|(í|i))?", TG.Week)+         , ("mí (grain)", "mh?(í|i)(sa|nna)", TG.Month)+         , ("ráithe (grain)", "r(á|a)ith(e|(í|i))", TG.Quarter)          , ("bliain (grain)", "m?bh?lia(in|na|nta)", TG.Year)          ] 
Duckling/TimeGrain/HE/Rules.hs view
@@ -20,14 +20,14 @@ import qualified Duckling.TimeGrain.Types as TG  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "\x05e9\x05e0\x05d9\x05d5\x05ea|\x05e9\x05e0\x05d9\x05d9\x05d4", TG.Second)-         , ("minute (grain)", "\x05d3\x05e7\x05d4|\x05d3\x05e7\x05d5\x05ea", TG.Minute)-         , ("hour (grain)", "\x05e9\x05e2\x05d5\x05ea|\x05e9\x05e2\x05d4", TG.Hour)-         , ("day (grain)", "\x05d9\x05de\x05d9\x05dd|\x05d9\x05d5\x05dd", TG.Day)-         , ("week (grain)", "\x05e9\x05d1\x05d5\x05e2|\x05e9\x05d1\x05d5\x05e2\x05d5\x05ea", TG.Week)-         , ("month (grain)", "\x05d7\x05d5\x05d3\x05e9|\x05d7\x05d5\x05d3\x05e9\x05d9\x05dd", TG.Month)-         , ("quarter (grain)", "\x05e8\x05d1\x05e2", TG.Quarter)-         , ("year (grain)", "\x05e9\x05e0\x05d4", TG.Year)+grains = [ ("second (grain)", "שניות|שנייה", TG.Second)+         , ("minute (grain)", "דקה|דקות", TG.Minute)+         , ("hour (grain)", "שעות|שעה", TG.Hour)+         , ("day (grain)", "ימים|יום", TG.Day)+         , ("week (grain)", "שבוע|שבועות", TG.Week)+         , ("month (grain)", "חודש|חודשים", TG.Month)+         , ("quarter (grain)", "רבע", TG.Quarter)+         , ("year (grain)", "שנה", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/HR/Rules.hs view
@@ -26,7 +26,7 @@          , ("day (grain)", "dan(i|a|e)?", TG.Day)          , ("week (grain)", "tjeda?n(a|e|u|i)?", TG.Week)          , ("month (grain)", "mjesec(a|e|u|i)?", TG.Month)-         , ("quarter (grain)", "kvartalu?|tromjese(c|\x010d)j(e|u)", TG.Quarter)+         , ("quarter (grain)", "kvartalu?|tromjese(c|č)j(e|u)", TG.Quarter)          , ("year (grain)", "godin(a|e|u)", TG.Year)          ] 
+ Duckling/TimeGrain/HU/Rules.hs view
@@ -0,0 +1,40 @@+-- 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.HU.Rules+  ( rules ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.Dimensions.Types+import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG++grains :: [(Text, String, TG.Grain)]+grains = [ ("second (grain) ", "m\x00E1sodperc(ek)?|mp",    TG.Second)+         , ("minute (grain)" , "perc(ek)?",                 TG.Minute)+         , ("hour (grain)"   , "\x00F3ra|\x00F3r\x00E1k",   TG.Hour)+         , ("day (grain)"    , "nap(ok)?",                  TG.Day)+         , ("week (grain)"   , "h\x00E9t|hetek",            TG.Week)+         , ("month (grain)"  , "h\x00F3nap|h\x00F3napok",   TG.Month)+         , ("quarter (grain)", "negyed\\s?\x00E9v(ek)?",    TG.Quarter)+         , ("year (grain)"   , "\x00E9v(ek)?",              TG.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/JA/Rules.hs view
@@ -21,13 +21,13 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "\x79d2(\x6bce|\x9593)?", TG.Second)-         , ("minute (grain)", "\x5206(\x6bce|\x9593)?", TG.Minute)-         , ("hour (grain)", "\x6642(\x6bce|\x9593)?", TG.Hour)-         , ("day (grain)", "\x65e5(\x6bce|\x9593)?", TG.Day)-         , ("week (grain)", "\x9031(\x6bce|\x9593)?", TG.Week)-         , ("month (grain)", "\x6708(\x6bce|\x9593)?", TG.Month)-         , ("year (grain)", "\x5e74(\x6bce|\x9593)?", TG.Year)+grains = [ ("second (grain)", "秒(毎|間)?", TG.Second)+         , ("minute (grain)", "分(毎|間)?", TG.Minute)+         , ("hour (grain)", "時(毎|間)?", TG.Hour)+         , ("day (grain)", "日(毎|間)?", TG.Day)+         , ("week (grain)", "週(毎|間)?", TG.Week)+         , ("month (grain)", "月(毎|間)?", TG.Month)+         , ("year (grain)", "年(毎|間)?", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/KO/Rules.hs view
@@ -21,14 +21,14 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "\xcd08", TG.Second)-         , ("minute (grain)", "\xbd84", TG.Minute)-         , ("hour (grain)", "\xc2dc(\xac04)?", TG.Hour)-         , ("day (grain)", "\xb0a0|\xc77c(\xac04|\xb3d9\xc548)?", TG.Day)-         , ("week (grain)", "\xc8fc(\xac04|\xb3d9\xc548|\xc77c)?", TG.Week)-         , ("month (grain)", "(\xb2ec)(\xac04|\xb3d9\xc548)?", TG.Month)-         , ("quarter (grain)", "\xbd84\xae30(\xac04|\xb3d9\xc548)?", TG.Quarter)-         , ("year (grain)", "\xd574|\xc5f0\xac04|\xb144(\xac04|\xb3d9\xc548)?", TG.Year)+grains = [ ("second (grain)", "초", TG.Second)+         , ("minute (grain)", "분", TG.Minute)+         , ("hour (grain)", "시(간)?", TG.Hour)+         , ("day (grain)", "날|일(간|동안)?", TG.Day)+         , ("week (grain)", "주(간|동안|일)?", TG.Week)+         , ("month (grain)", "(달)(간|동안)?", TG.Month)+         , ("quarter (grain)", "분기(간|동안)?", TG.Quarter)+         , ("year (grain)", "해|연간|년(간|동안)?", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/NB/Rules.hs view
@@ -26,9 +26,9 @@          , ("hour (grain)", "t(ime(r)?)?", TG.Hour)          , ("day (grain)", "dag(er)?", TG.Day)          , ("week (grain)", "uke(r|n)?", TG.Week)-         , ("month (grain)", "m\x00e5ned(er)?", TG.Month)+         , ("month (grain)", "måned(er)?", TG.Month)          , ("quarter (grain)", "kvart(al|er)(et)?", TG.Quarter)-         , ("year (grain)", "\x00e5r", TG.Year)+         , ("year (grain)", "år", TG.Year)          ]  rules :: [Rule]
+ Duckling/TimeGrain/NL/Rules.hs view
@@ -0,0 +1,40 @@+-- 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.NL.Rules+  ( rules ) where++import Data.Text (Text)+import Data.String+import Prelude++import Duckling.Dimensions.Types+import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG++grains :: [(Text, String, TG.Grain)]+grains = [ ("second (grain) " , "(seconde(n|s)?|sec|s)" , TG.Second)+         , ("minute (grain)"  , "(minuut|minuten|min|m)", TG.Minute)+         , ("hour (grain)"    , "(u|h|uur|uren)",         TG.Hour)+         , ("day (grain)"     , "(dagen|dag|d)",          TG.Day)+         , ("week (grain)"    , "(weken|week|w)",         TG.Week)+         , ("month (grain)"   , "(maanden|maand|mnd)",    TG.Month)+         , ("quarter (grain)" , "kwartier",               TG.Quarter)+         , ("year (grain)"    , "(jaren|jaar|j)",         TG.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/PL/Rules.hs view
@@ -21,13 +21,13 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "sekund(y|zie|(e|\x0119)|om|ami|ach|o|a)?|s", TG.Second)-         , ("minute (grain)", "minut(y|cie|(e|\x0119)|om|o|ami|ach|(a|\x0105))?|m", TG.Minute)-         , ("hour (grain)", "h|godzin(y|(e|\x0119)|ie|om|o|ami|ach|(a|\x0105))?", TG.Hour)-         , ("day (grain)", "dzie(n|\x0144|ni(a|\x0105))|dni(owi|ach|a|\x0105)?", TG.Day)-         , ("week (grain)", "tydzie(n|\x0144|)|tygod(ni(owi|u|a|em))|tygodn(iach|iami|iom|ie|i)|tyg\\.?", TG.Week)-         , ("month (grain)", "miesi(a|\x0105)c(owi|em|u|e|om|ami|ach|a)?", TG.Month)-         , ("quarter (grain)", "kwarta(l|\x0142)(u|owi|em|e|(o|\x00f3)w|om|ach|ami|y)?", TG.Quarter)+grains = [ ("second (grain)", "sekund(y|zie|(e|ę)|om|ami|ach|o|a)?|s", TG.Second)+         , ("minute (grain)", "minut(y|cie|(e|ę)|om|o|ami|ach|(a|ą))?|m", TG.Minute)+         , ("hour (grain)", "h|godzin(y|(e|ę)|ie|om|o|ami|ach|(a|ą))?", TG.Hour)+         , ("day (grain)", "dzie(n|ń|ni(a|ą))|dni(owi|ach|a|ą)?", TG.Day)+         , ("week (grain)", "tydzie(n|ń|)|tygod(ni(owi|u|a|em))|tygodn(iach|iami|iom|ie|i)|tyg\\.?", TG.Week)+         , ("month (grain)", "miesi(a|ą)c(owi|em|u|e|om|ami|ach|a)?", TG.Month)+         , ("quarter (grain)", "kwarta(l|ł)(u|owi|em|e|(o|ó)w|om|ach|ami|y)?", TG.Quarter)          , ("year (grain)", "rok(u|owi|iem)?|lat(ami|ach|a|om)?", TG.Year)          ] 
Duckling/TimeGrain/PT/Rules.hs view
@@ -24,9 +24,9 @@ grains = [ ("segundo (grain)", "seg(undo)?s?", TG.Second)          , ("minutos (grain)", "min(uto)?s?", TG.Minute)          , ("hora (grain)", "h(ora)?s?", TG.Hour)-         , ("dia (grain)", "d(\x00ed|i)as?", TG.Day)+         , ("dia (grain)", "d(í|i)as?", TG.Day)          , ("semana (grain)", "semanas?", TG.Week)-         , ("mes (grain)", "m(e|\x00ea)s(es)?", TG.Month)+         , ("mes (grain)", "m(e|ê)s(es)?", TG.Month)          , ("ano (grain)", "anos?", TG.Year)          ] 
Duckling/TimeGrain/RO/Rules.hs view
@@ -21,12 +21,12 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("secunde (grain)", "sec(und(a|e|\x0103))?", TG.Second)+grains = [ ("secunde (grain)", "sec(und(a|e|ă))?", TG.Second)          , ("minute (grain)", "min(ut(e|ul)?)?", TG.Minute)-         , ("ore (grain)", "h|or(a|e(le)?|\x0103)", TG.Hour)-         , ("zile (grain)", "zi(le(le)?|u(a|\x0103))?", TG.Day)-         , ("saptamani (grain)", "sapt(a|\x0103)m(a|\x00e2)n(ile|a|\x0103|i)", TG.Week)-         , ("luni (grain)", "lun(i(le)?|a|\x0103)", TG.Month)+         , ("ore (grain)", "h|or(a|e(le)?|ă)", TG.Hour)+         , ("zile (grain)", "zi(le(le)?|u(a|ă))?", TG.Day)+         , ("saptamani (grain)", "sapt(a|ă)m(a|â)n(ile|a|ă|i)", TG.Week)+         , ("luni (grain)", "lun(i(le)?|a|ă)", TG.Month)          , ("trimestru (grain)", "trimestr(e(le)?|ul?)", TG.Quarter)          , ("ani (grain)", "an(ul|ii?)?", TG.Year)          ]
Duckling/TimeGrain/SV/Rules.hs view
@@ -26,9 +26,9 @@          , ("hour (grain)", "t(imm(e(n)?|ar(na)?)?)?", TG.Hour)          , ("day (grain)", "dag(en|ar(na)?)?", TG.Day)          , ("week (grain)", "veck(or(na)?|a(n)?)?", TG.Week)-         , ("month (grain)", "m\x00e5nad(er(na)?)?", TG.Month)+         , ("month (grain)", "månad(er(na)?)?", TG.Month)          , ("quarter (grain)", "kvart(al)(et)?", TG.Quarter)-         , ("year (grain)", "\x00e5r(en)?", TG.Year)+         , ("year (grain)", "år(e[nt])?", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/TR/Rules.hs view
@@ -24,7 +24,7 @@ grains = [ ("saniye (grain)",     "sa?n(iye)?",           TG.Second)          , ("dakika (grain)",     "da?k(ika)?",           TG.Minute)          , ("saat (grain)",       "sa(at)?",              TG.Hour)-         , ("gün (grain)",        "g\x00fcn",             TG.Day)+         , ("gün (grain)",        "gün",             TG.Day)          , ("hafta (grain)",      "hafta",                TG.Week)          , ("ay (grain)",         "ay",                   TG.Month)          , ("çeyrek yıl (grain)", "\231eyrek y\305l",     TG.Quarter)
Duckling/TimeGrain/Types.hs view
@@ -15,23 +15,25 @@   ( Grain(..)   , add   , inSeconds+  , lower   )   where  import Control.DeepSeq import Data.Aeson import Data.Hashable-import qualified Data.Text as Text import Data.Text.Lazy.Builder (fromText)-import qualified Data.Time as Time import GHC.Generics-import TextShow- import Prelude+import TextShow+import qualified Data.Text as Text+import qualified Data.Time as Time  import Duckling.Resolve (Resolve(..)) -data Grain = Second | Minute | Hour | Day | Week | Month | Quarter | Year+data Grain+  -- NoGrain is helpful to define "now"+  = NoGrain | Second | Minute | Hour | Day | Week | Month | Quarter | Year   deriving (Eq, Generic, Hashable, Ord, Bounded, Enum, Show, NFData)  instance Resolve Grain where@@ -48,6 +50,7 @@ updateUTCDay (Time.UTCTime day diffTime) f = Time.UTCTime (f day) diffTime  add :: Time.UTCTime -> Grain -> Integer -> Time.UTCTime+add utcTime NoGrain n = Time.addUTCTime (realToFrac n) utcTime add utcTime Second n = Time.addUTCTime (realToFrac n) utcTime add utcTime Minute n = Time.addUTCTime (realToFrac $ 60 * n) utcTime add utcTime Hour n = Time.addUTCTime (realToFrac $ 3600 * n) utcTime@@ -59,6 +62,7 @@ add utcTime Year n = updateUTCDay utcTime $ Time.addGregorianYearsClip n  inSeconds :: Grain -> Int -> Int+inSeconds NoGrain n = n inSeconds Second  n = n inSeconds Minute  n = n * 60 inSeconds Hour    n = n * inSeconds Minute 60@@ -67,3 +71,10 @@ inSeconds Month   n = n * inSeconds Day 30 inSeconds Quarter n = n * inSeconds Month 3 inSeconds Year    n = n * inSeconds Day 365++lower :: Grain -> Grain+lower NoGrain = Second+lower Second = Second+lower Year = Month+lower Month = Day+lower x = pred x
Duckling/TimeGrain/VI/Rules.hs view
@@ -20,14 +20,14 @@ import qualified Duckling.TimeGrain.Types as TG  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "(gi\x00e2y|s|sec)", TG.Second)-         , ("minute (grain)", "(ph\x00fat|m|min)", TG.Minute)-         , ("hour (grain)", "(gi\x1edd|h|ti\x1ebfng)", TG.Hour)-         , ("day (grain)", "ng\x00e0y", TG.Day)-         , ("week (grain)", "tu\x1ea7n", TG.Week)-         , ("month (grain)", "th\x00e1ng", TG.Month)-         , ("quarter (grain)", "qu\x00fd", TG.Quarter)-         , ("year (grain)", "n\x0103m", TG.Year)+grains = [ ("second (grain)", "(giây|s|sec)", TG.Second)+         , ("minute (grain)", "(phút|m|min)", TG.Minute)+         , ("hour (grain)", "(giờ|h|tiếng)", TG.Hour)+         , ("day (grain)", "ngày", TG.Day)+         , ("week (grain)", "tuần", TG.Week)+         , ("month (grain)", "tháng", TG.Month)+         , ("quarter (grain)", "quý", TG.Quarter)+         , ("year (grain)", "năm", TG.Year)          ]  rules :: [Rule]
Duckling/TimeGrain/ZH/Rules.hs view
@@ -21,15 +21,15 @@ import Duckling.Types  grains :: [(Text, String, TG.Grain)]-grains = [ ("second (grain)", "\x79d2(\x949f|\x9418)?", TG.Second)-         , ("minute (grain)", "\x5206(\x949f|\x9418)?", TG.Minute)+grains = [ ("second (grain)", "秒(钟|鐘)?", TG.Second)+         , ("minute (grain)", "分(钟|鐘)?", TG.Minute)          , ("hour (grain)",-             "\x5c0f\x65f6|\x5c0f\x6642|\x9418(\x982d)?", TG.Hour)-         , ("day (grain)", "\x5929|\x65e5", TG.Day)+             "小时|小時|鐘(\x982d)?", TG.Hour)+         , ("day (grain)", "天|日", TG.Day)          , ("week (grain)",-             "\x5468|\x9031|\x793c\x62dc|\x79ae\x62dc|\x661f\x671f", TG.Week)-         , ("month (grain)", "\x6708", TG.Month)-         , ("year (grain)", "\x5e74", TG.Year)+             "周|週|礼拜|禮拜|星期", TG.Week)+         , ("month (grain)", "月", TG.Month)+         , ("year (grain)", "年", TG.Year)          ]  rules :: [Rule]
Duckling/Types.hs view
@@ -146,7 +146,7 @@ regex :: String -> PatternItem regex = Regex . R.makeRegexOpts compOpts execOpts   where-    compOpts = PCRE.defaultCompOpt + PCRE.compCaseless+    compOpts = PCRE.defaultCompOpt + PCRE.compCaseless + PCRE.compUTF8     execOpts = PCRE.defaultExecOpt  dimension :: Typeable a => Dimension a -> PatternItem
Duckling/Types/Document.hs view
@@ -19,19 +19,19 @@   , isRangeValid   ) where -import qualified Data.Array.Unboxed as Array import Data.Array.Unboxed (UArray) import Data.ByteString (ByteString)-import qualified Data.ByteString as BS-import qualified Data.Char as Char import Data.List (scanl', foldl', foldr) import Data.String import Data.Text (Text)+import Prelude hiding (length)+import qualified Data.Array.Unboxed as Array+import qualified Data.ByteString as BS+import qualified Data.Char as Char import qualified Data.Text.Unsafe as UText import qualified Data.Text.Encoding as Text import qualified Data.Text as Text import qualified Data.Text.Internal.Unsafe.Char as UText-import Prelude hiding (length)   data Document = Document@@ -124,8 +124,7 @@   where     charClass :: Char -> Char     charClass c-      | Char.isLower c = 'l'-      | Char.isUpper c = 'u'+      | Char.isLower c || Char.isUpper c = 'c'       | Char.isDigit c = 'd'       | otherwise = c     isDifferent :: Char -> Char -> Bool
Duckling/Volume/ES/Corpus.hs view
@@ -14,13 +14,13 @@ import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Volume.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = ES}, allExamples)+corpus = (testContext {locale = makeLocale ES Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Volume/ES/Rules.hs view
@@ -73,7 +73,7 @@   { name = "<latent vol> gallon"   , pattern =     [ dimension Volume-    , regex "gal(o|\x00f3)ne?s?"+    , regex "gal(o|ó)ne?s?"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->
Duckling/Volume/FR/Corpus.hs view
@@ -14,13 +14,13 @@ import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Volume.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = FR}, allExamples)+corpus = (testContext {locale = makeLocale FR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Volume/GA/Corpus.hs view
@@ -14,13 +14,13 @@ import Data.String import Prelude -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Volume.Types import Duckling.Testing.Types  corpus :: Corpus-corpus = (testContext {lang = GA}, allExamples)+corpus = (testContext {locale = makeLocale GA Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Volume/GA/Rules.hs view
@@ -25,7 +25,7 @@   { name = "<latent vol> ml"   , pattern =     [ dimension Volume-    , regex "m(l\\.?|h?illil(\x00ed|i)t(ea|i)r)"+    , regex "m(l\\.?|h?illil(í|i)t(ea|i)r)"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->@@ -38,7 +38,7 @@   { name = "<latent vol> kl"   , pattern =     [ dimension Volume-    , regex "(kl\\.?|g?ch?illil(\x00ed|i)t(ea|i)r)"+    , regex "(kl\\.?|g?ch?illil(í|i)t(ea|i)r)"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->@@ -51,7 +51,7 @@   { name = "<vol> heictilítir"   , pattern =     [ dimension Volume-    , regex "heictil(\x00ed|i)t(ea|i)r"+    , regex "heictil(í|i)t(ea|i)r"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->@@ -64,7 +64,7 @@   { name = "<vol> lítear"   , pattern =     [ dimension Volume-    , regex "(l(\x00ed|i)t(ea|i)r|l\\.?)"+    , regex "(l(í|i)t(ea|i)r|l\\.?)"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->@@ -77,7 +77,7 @@   { name = "<latent vol> galún"   , pattern =     [ dimension Volume-    , regex "n?gh?al(\x00fa|u)i?n"+    , regex "n?gh?al(ú|u)i?n"     ]   , prod = \tokens -> case tokens of       (Token Volume vd:_) ->
Duckling/Volume/HR/Corpus.hs view
@@ -13,13 +13,13 @@ import Prelude import Data.String -import Duckling.Lang+import Duckling.Locale import Duckling.Resolve import Duckling.Testing.Types import Duckling.Volume.Types  corpus :: Corpus-corpus = (testContext {lang = HR}, allExamples)+corpus = (testContext {locale = makeLocale HR Nothing}, allExamples)  allExamples :: [Example] allExamples = concat
Duckling/Volume/IT/Corpus.hs view

file too large to diff

Duckling/Volume/KO/Corpus.hs view

file too large to diff

Duckling/Volume/KO/Rules.hs view

file too large to diff

Duckling/Volume/NL/Corpus.hs view

file too large to diff

Duckling/Volume/PT/Corpus.hs view

file too large to diff

Duckling/Volume/PT/Rules.hs view

file too large to diff

Duckling/Volume/RO/Corpus.hs view

file too large to diff

Duckling/Volume/RO/Rules.hs view

file too large to diff

Duckling/Volume/TR/Corpus.hs view

file too large to diff

README.md view

file too large to diff

duckling.cabal view

file too large to diff

exe/Duckling/Ranking/Generate.hs view

file too large to diff

exe/Duckling/Ranking/Train.hs view

file too large to diff

exe/DucklingExpensive.hs view

file too large to diff

exe/DucklingRequestSample.hs view

file too large to diff

exe/ExampleMain.hs view

file too large to diff

+ tests/Duckling/AmountOfMoney/BG/Tests.hs view

file too large to diff

tests/Duckling/AmountOfMoney/Tests.hs view

file too large to diff

tests/Duckling/Api/Tests.hs view

file too large to diff

+ tests/Duckling/Duration/HU/Tests.hs view

file too large to diff

+ tests/Duckling/Duration/NL/Tests.hs view

file too large to diff

tests/Duckling/Duration/Tests.hs view

file too large to diff

tests/Duckling/Duration/ZH/Tests.hs view

file too large to diff

tests/Duckling/Email/EN/Tests.hs view

file too large to diff

+ tests/Duckling/Numeral/BG/Tests.hs view

file too large to diff

+ tests/Duckling/Numeral/HU/Tests.hs view

file too large to diff

+ tests/Duckling/Numeral/KA/Tests.hs view

file too large to diff

tests/Duckling/Numeral/Tests.hs view

file too large to diff

+ tests/Duckling/Ordinal/ES/Tests.hs view

file too large to diff

+ tests/Duckling/Ordinal/HU/Tests.hs view

file too large to diff

tests/Duckling/Ordinal/Tests.hs view

file too large to diff

tests/Duckling/Testing/Asserts.hs view

file too large to diff

tests/Duckling/Time/DA/Tests.hs view

file too large to diff

tests/Duckling/Time/EN/Tests.hs view

file too large to diff

tests/Duckling/Time/ES/Tests.hs view

file too large to diff

tests/Duckling/Time/FR/Tests.hs view

file too large to diff

tests/Duckling/Time/GA/Tests.hs view

file too large to diff

+ tests/Duckling/Time/HU/Tests.hs view

file too large to diff

tests/Duckling/Time/IT/Tests.hs view

file too large to diff

tests/Duckling/Time/KO/Tests.hs view

file too large to diff

tests/Duckling/Time/NB/Tests.hs view

file too large to diff

tests/Duckling/Time/PL/Tests.hs view

file too large to diff

tests/Duckling/Time/PT/Tests.hs view

file too large to diff

tests/Duckling/Time/RO/Tests.hs view

file too large to diff

tests/Duckling/Time/SV/Tests.hs view

file too large to diff

tests/Duckling/Time/Tests.hs view

file too large to diff

tests/Duckling/Time/VI/Tests.hs view

file too large to diff

tests/Duckling/Time/ZH/Tests.hs view

file too large to diff