packages feed

duckling 0.1.6.0 → 0.1.6.1

raw patch · 147 files changed

+18977/−13295 lines, 147 filesnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Duckling.AmountOfMoney.Helpers: financeWith :: (AmountOfMoneyData -> t) -> (t -> Bool) -> PatternItem
- Duckling.Locale: instance Data.Hashable.Class.Hashable Duckling.Locale.Region
- Duckling.Locale: instance GHC.Classes.Eq Duckling.Locale.Region
- Duckling.Locale: instance GHC.Classes.Ord Duckling.Locale.Region
- Duckling.Locale: instance GHC.Enum.Bounded Duckling.Locale.Region
- Duckling.Locale: instance GHC.Enum.Enum Duckling.Locale.Region
- Duckling.Locale: instance GHC.Generics.Generic Duckling.Locale.Region
- Duckling.Locale: instance GHC.Read.Read Duckling.Locale.Region
- Duckling.Locale: instance GHC.Show.Show Duckling.Locale.Region
- Duckling.Locale: instance TextShow.Classes.TextShow Duckling.Locale.Region
- Duckling.Temperature.Types: TemperatureValue :: TemperatureUnit -> Int -> TemperatureValue
+ Duckling.AmountOfMoney.EN.AU.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.AU.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.AU.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.BZ.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.BZ.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.BZ.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.CA.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.CA.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.CA.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.GB.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.GB.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.GB.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.IE.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.IE.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.IE.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.IN.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.IN.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.IN.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.JM.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.JM.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.JM.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.NZ.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.NZ.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.NZ.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.PH.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.PH.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.PH.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.TT.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.TT.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.TT.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.US.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.US.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.US.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.EN.ZA.Corpus: allExamples :: [Example]
+ Duckling.AmountOfMoney.EN.ZA.Corpus: negativeExamples :: [Text]
+ Duckling.AmountOfMoney.EN.ZA.Rules: rules :: [Rule]
+ Duckling.AmountOfMoney.RO.Corpus: negativeCorpus :: NegativeCorpus
+ Duckling.AmountOfMoney.Types: CAD :: Currency
+ Duckling.AmountOfMoney.Types: JMD :: Currency
+ Duckling.AmountOfMoney.Types: NZD :: Currency
+ Duckling.AmountOfMoney.Types: TTD :: Currency
+ Duckling.Core: BE :: Region
+ Duckling.Duration.HI.Corpus: corpus :: Corpus
+ Duckling.Duration.HI.Rules: rules :: [Rule]
+ Duckling.Locale: BE :: Region
+ Duckling.Quantity.ZH.Corpus: corpus :: Corpus
+ Duckling.Quantity.ZH.Rules: rules :: [Rule]
+ Duckling.Ranking.Classifiers.NL_BE: classifiers :: Classifiers
+ Duckling.Ranking.Classifiers.NL_NL: classifiers :: Classifiers
+ Duckling.Region: AU :: Region
+ Duckling.Region: BE :: Region
+ Duckling.Region: BZ :: Region
+ Duckling.Region: CA :: Region
+ Duckling.Region: CN :: Region
+ Duckling.Region: GB :: Region
+ Duckling.Region: HK :: Region
+ Duckling.Region: IE :: Region
+ Duckling.Region: IN :: Region
+ Duckling.Region: JM :: Region
+ Duckling.Region: MO :: Region
+ Duckling.Region: NL :: Region
+ Duckling.Region: NZ :: Region
+ Duckling.Region: PH :: Region
+ Duckling.Region: TT :: Region
+ Duckling.Region: TW :: Region
+ Duckling.Region: US :: Region
+ Duckling.Region: ZA :: Region
+ Duckling.Region: data Region
+ Duckling.Region: instance Data.Hashable.Class.Hashable Duckling.Region.Region
+ Duckling.Region: instance GHC.Classes.Eq Duckling.Region.Region
+ Duckling.Region: instance GHC.Classes.Ord Duckling.Region.Region
+ Duckling.Region: instance GHC.Enum.Bounded Duckling.Region.Region
+ Duckling.Region: instance GHC.Enum.Enum Duckling.Region.Region
+ Duckling.Region: instance GHC.Generics.Generic Duckling.Region.Region
+ Duckling.Region: instance GHC.Read.Read Duckling.Region.Region
+ Duckling.Region: instance GHC.Show.Show Duckling.Region.Region
+ Duckling.Region: instance TextShow.Classes.TextShow Duckling.Region.Region
+ Duckling.Temperature.Helpers: isSimpleTemperature :: Predicate
+ Duckling.Temperature.Helpers: isValueOnly :: Bool -> Predicate
+ Duckling.Temperature.Helpers: unitOnly :: TemperatureUnit -> TemperatureData
+ Duckling.Temperature.Helpers: valueOnly :: Int -> TemperatureData
+ Duckling.Temperature.Helpers: withInterval :: (Int, Int) -> TemperatureData -> TemperatureData
+ Duckling.Temperature.Helpers: withMax :: Int -> TemperatureData -> TemperatureData
+ Duckling.Temperature.Helpers: withMin :: Int -> TemperatureData -> TemperatureData
+ Duckling.Temperature.Helpers: withValue :: Int -> TemperatureData -> TemperatureData
+ Duckling.Temperature.Types: Above :: IntervalDirection
+ Duckling.Temperature.Types: IntervalValue :: (SingleValue, SingleValue) -> TemperatureValue
+ Duckling.Temperature.Types: OpenIntervalValue :: (SingleValue, IntervalDirection) -> TemperatureValue
+ Duckling.Temperature.Types: SimpleValue :: SingleValue -> TemperatureValue
+ Duckling.Temperature.Types: SingleValue :: TemperatureUnit -> Int -> SingleValue
+ Duckling.Temperature.Types: Under :: IntervalDirection
+ Duckling.Temperature.Types: [maxValue] :: TemperatureData -> Maybe Int
+ Duckling.Temperature.Types: [minValue] :: TemperatureData -> Maybe Int
+ Duckling.Temperature.Types: above :: TemperatureUnit -> Int -> TemperatureValue
+ Duckling.Temperature.Types: between :: TemperatureUnit -> (Int, Int) -> TemperatureValue
+ Duckling.Temperature.Types: data IntervalDirection
+ Duckling.Temperature.Types: data SingleValue
+ Duckling.Temperature.Types: instance Control.DeepSeq.NFData Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance Data.Aeson.Types.Class.ToJSON Duckling.Temperature.Types.SingleValue
+ Duckling.Temperature.Types: instance Data.Hashable.Class.Hashable Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance GHC.Classes.Eq Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance GHC.Classes.Eq Duckling.Temperature.Types.SingleValue
+ Duckling.Temperature.Types: instance GHC.Classes.Ord Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance GHC.Generics.Generic Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance GHC.Show.Show Duckling.Temperature.Types.IntervalDirection
+ Duckling.Temperature.Types: instance GHC.Show.Show Duckling.Temperature.Types.SingleValue
+ Duckling.Temperature.Types: openInterval :: IntervalDirection -> TemperatureUnit -> Int -> TemperatureValue
+ Duckling.Temperature.Types: simple :: TemperatureUnit -> Int -> TemperatureValue
+ Duckling.Temperature.Types: single :: TemperatureUnit -> Int -> SingleValue
+ Duckling.Temperature.Types: under :: TemperatureUnit -> Int -> TemperatureValue
+ Duckling.Temperature.Types: unitsAreCompatible :: Maybe TemperatureUnit -> TemperatureUnit -> Bool
+ Duckling.Time.Computed: globalYouthServiceDay :: TimeData
+ Duckling.Time.Computed: vesak :: TimeData
+ Duckling.Time.Helpers: intersectWithReplacement :: TimeData -> TimeData -> TimeData -> Maybe TimeData
+ Duckling.Time.Helpers: yearADBC :: Int -> TimeData
+ Duckling.Time.NL.BE.Corpus: allExamples :: [Example]
+ Duckling.Time.NL.BE.Rules: rules :: [Rule]
+ Duckling.Time.NL.Corpus: defaultCorpus :: Corpus
+ Duckling.Time.NL.NL.Rules: rulesBackwardCompatible :: [Rule]
+ Duckling.Time.Types: ReplaceIntersectPredicate :: Predicate -> Predicate -> Predicate -> Predicate
+ Duckling.Time.Types: mkReplaceIntersectPredicate :: Predicate -> Predicate -> Predicate -> Predicate
+ Duckling.Time.Types: runComposeWithReplacement :: SeriesPredicate -> SeriesPredicate -> SeriesPredicate -> SeriesPredicate
+ Duckling.Time.Types: runReplaceIntersectPredicate :: Predicate -> Predicate -> Predicate -> SeriesPredicate
+ Duckling.TimeGrain.HI.Rules: rules :: [Rule]
- Duckling.Temperature.Types: TemperatureData :: Maybe TemperatureUnit -> Int -> TemperatureData
+ Duckling.Temperature.Types: TemperatureData :: Maybe TemperatureUnit -> Maybe Int -> Maybe Int -> Maybe Int -> TemperatureData
- Duckling.Temperature.Types: [vUnit] :: TemperatureValue -> TemperatureUnit
+ Duckling.Temperature.Types: [vUnit] :: SingleValue -> TemperatureUnit
- Duckling.Temperature.Types: [vValue] :: TemperatureValue -> Int
+ Duckling.Temperature.Types: [vValue] :: SingleValue -> Int
- Duckling.Temperature.Types: [value] :: TemperatureData -> Int
+ Duckling.Temperature.Types: [value] :: TemperatureData -> Maybe Int

Files

Duckling/AmountOfMoney/AR/Rules.hs view
@@ -266,7 +266,7 @@     [ regex "(من|(ما )?بين)( ال)?"     , Predicate isPositive     , regex "(الى|حتى|و|ل)( ا?ل)?"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -283,9 +283,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "(من|(ما )?بين)( ال)?"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "(الى|حتى|و|ل)( ا?ل)?"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -303,7 +303,7 @@   , pattern =     [ Predicate isPositive     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData {TNumeral.value = from}:@@ -318,9 +318,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData {TAmountOfMoney.value = Just from, TAmountOfMoney.currency = c1}:@@ -336,7 +336,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "(حتى|[أا]قل من|تحت|(ما )?دون)|على ال[أا]كثر"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -350,7 +350,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "على ال[أا]كثر"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -364,7 +364,7 @@   { name = "at least/over/above/more than <amount-of-money>"   , pattern =     [ regex "فوق||[أا]كثر من|على ال[اأ]قل"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -377,7 +377,7 @@ ruleIntervalAtLeast = Rule   { name = "<amount-of-money> at least"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "على ال[اأ]قل"     ]   , prod = \tokens -> case tokens of
Duckling/AmountOfMoney/BG/Rules.hs view
@@ -165,7 +165,7 @@     [ regex "между|от"     , Predicate isPositive     , regex "до|и"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -183,9 +183,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "между|от"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "до|и"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -205,7 +205,7 @@   , pattern =     [ Predicate isPositive     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData{TNumeral.value = from}:@@ -221,9 +221,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -241,7 +241,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "под|по-малко от|не повече от"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -256,7 +256,7 @@   { name = "over/above/at least/more than <amount-of-money>"   , pattern =     [ regex "над|поне|повече от"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:
+ Duckling/AmountOfMoney/EN/AU/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.AU.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple AUD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple AUD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/AU/Rules.hs view
@@ -0,0 +1,53 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.AU.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000 $ currencyOnly AUD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v) $ currencyOnly AUD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/BZ/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.BZ.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple Dollar 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple Dollar 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/BZ/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.BZ.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly Dollar+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly Dollar+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/CA/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.CA.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple CAD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple CAD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/CA/Rules.hs view
@@ -0,0 +1,53 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.CA.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000 $ currencyOnly CAD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v) $ currencyOnly CAD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/GB/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.GB.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple GBP 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple GBP 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/GB/Rules.hs view
@@ -0,0 +1,53 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.GB.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000 $ currencyOnly GBP+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v) $ currencyOnly GBP+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/IE/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.IE.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple Dollar 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple Dollar 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/IE/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.IE.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly Dollar+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly Dollar+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/IN/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.IN.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple Dollar 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple Dollar 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/IN/Rules.hs view
@@ -0,0 +1,53 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.IN.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000 $ currencyOnly Dollar+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v) $ currencyOnly Dollar+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/JM/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.JM.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple JMD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple JMD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/JM/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.JM.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly JMD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly JMD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/NZ/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.NZ.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple NZD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple NZD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/NZ/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.NZ.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly NZD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly NZD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/PH/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.PH.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple Dollar 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple Dollar 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/PH/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.PH.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly Dollar+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly Dollar+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
Duckling/AmountOfMoney/EN/Rules.hs view
@@ -134,7 +134,7 @@   { name = "a <currency>"   , pattern =     [ regex "an?"-    , financeWith TAmountOfMoney.value isNothing+    , Predicate isCurrencyOnly     ]   , prod = \tokens -> case tokens of       (_:@@ -222,7 +222,7 @@     [ regex "between|from"     , Predicate isPositive     , regex "to|and"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -240,9 +240,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "between|from"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "to|and"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -262,7 +262,7 @@   , pattern =     [ Predicate isNatural     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData{TNumeral.value = from}:@@ -278,9 +278,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -298,7 +298,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "under|(less|lower|not? more) than"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -313,7 +313,7 @@   { name = "over/above/at least/more than <amount-of-money>"   , pattern =     [ regex "over|above|at least|more than"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:
+ Duckling/AmountOfMoney/EN/TT/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.TT.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple TTD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple TTD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/TT/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.TT.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly TTD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly TTD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/US/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.US.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple USD 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple USD 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/US/Rules.hs view
@@ -0,0 +1,53 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.US.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000 $ currencyOnly USD+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v) $ currencyOnly USD+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
+ Duckling/AmountOfMoney/EN/ZA/Corpus.hs view
@@ -0,0 +1,36 @@+-- 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.EN.ZA.Corpus+  ( allExamples+  , negativeExamples+  ) where++import Data.String+import Data.Text (Text)+import Prelude++import Duckling.AmountOfMoney.Types+import Duckling.Testing.Types++allExamples :: [Example]+allExamples = concat+  [ examples (simple Dollar 1000)+             [ "a grand"+             , "1 grand"+             ]+  , examples (simple Dollar 10000)+             [ "10 grand"+             ]+  ]++negativeExamples :: [Text]+negativeExamples =+  [ "grand"+  ]
+ Duckling/AmountOfMoney/EN/ZA/Rules.hs view
@@ -0,0 +1,55 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.AmountOfMoney.EN.ZA.Rules+  ( rules+  ) where++import Data.String+import Prelude++import Duckling.AmountOfMoney.Helpers+import Duckling.AmountOfMoney.Types (Currency(..))+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Types++import qualified Duckling.Numeral.Types as TNumeral+++ruleAGrand :: Rule+ruleAGrand = Rule+  { name = "a grand"+  , pattern =+    [ regex "a grand"+    ]+  , prod = \_ -> Just . Token AmountOfMoney . withValue 1000+                 $ currencyOnly Dollar+  }++ruleGrand :: Rule+ruleGrand = Rule+  { name = "<amount> grand"+  , pattern =+    [ Predicate isPositive+    , regex "grand"+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:_)+        -> Just . Token AmountOfMoney . withValue (1000 * v)+           $ currencyOnly Dollar+      _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleAGrand+  , ruleGrand+  ]
Duckling/AmountOfMoney/FR/Rules.hs view
@@ -99,7 +99,7 @@     [ regex "entre"     , Predicate isPositive     , regex "et"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -118,9 +118,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "entre"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "et"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -145,7 +145,7 @@   , pattern =     [ Predicate isNatural     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData{TNumeral.value = from}:@@ -161,9 +161,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -181,7 +181,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "(moins|pas plus|en-dessous) de"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -196,7 +196,7 @@   { name = "over/above/at least/more than <amount-of-money>"   , pattern =     [ regex "plus (que|de)|au moins"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:
Duckling/AmountOfMoney/Helpers.hs view
@@ -11,7 +11,6 @@  module Duckling.AmountOfMoney.Helpers   ( currencyOnly-  , financeWith   , isSimpleAmountOfMoney   , isCent   , isCents@@ -38,12 +37,6 @@ -- ----------------------------------------------------------------- -- Patterns -financeWith :: (AmountOfMoneyData -> t) -> (t -> Bool) -> PatternItem-financeWith f pred = Predicate $ \x ->-  case x of-    (Token AmountOfMoney x) -> pred (f x)-    _ -> False- isCents :: Predicate isCents (Token AmountOfMoney AmountOfMoneyData{value = Just _, currency = Cent}) = True isCents _ = False@@ -65,7 +58,7 @@  isSimpleAmountOfMoney :: Predicate isSimpleAmountOfMoney (Token AmountOfMoney AmountOfMoneyData-  {minValue = Nothing, maxValue = Nothing}) = True+  {value = Just _, minValue = Nothing, maxValue = Nothing}) = True isSimpleAmountOfMoney _ = False  isDime :: Predicate
Duckling/AmountOfMoney/NL/Rules.hs view
@@ -149,7 +149,7 @@     [ regex "tussen|vanaf|van"     , Predicate isPositive     , regex "tot|en"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -167,9 +167,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "tussen|vanaf|van"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "tot|en"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -189,7 +189,7 @@   , pattern =     [ Predicate isNatural     , regex "\\-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData{TNumeral.value = from}:@@ -205,9 +205,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "\\-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -225,7 +225,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "(minder|lager|niet? meer) dan"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -240,7 +240,7 @@   { name = "over/above/at least/more than <amount-of-money>"   , pattern =     [ regex "boven de|minstens|meer dan"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:
Duckling/AmountOfMoney/RO/Corpus.hs view
@@ -10,6 +10,7 @@  module Duckling.AmountOfMoney.RO.Corpus   ( corpus+  , negativeCorpus   ) where  import Data.String@@ -20,8 +21,18 @@ import Duckling.Resolve import Duckling.Testing.Types +context :: Context+context = testContext {locale = makeLocale RO Nothing}++negativeCorpus :: NegativeCorpus+negativeCorpus = (context, testOptions, examples)+  where+    examples =+      [ "10 de dolari"+      ]+ corpus :: Corpus-corpus = (testContext {locale = makeLocale RO Nothing}, testOptions, allExamples)+corpus = (context, testOptions, allExamples)  allExamples :: [Example] allExamples = concat@@ -31,8 +42,8 @@              , "10 RON"              ]   , examples (simple Cent 50)-             [ "50 bani"-             , "50 BANI"+             [ "50 de bani"+             , "50 DE BANI"              ]   , examples (simple RON 10.5)              [ "10,5 lei"@@ -65,21 +76,21 @@              [ "2 centi"              ]   , examples (simple Cent 23)-             [ "23 centi"+             [ "23 de centi"              ]   , examples (simple Dollar 2.23)-             [ "2 dolari si 23 centi"-             , "2 dolari și 23 cenți"-             , "doi dolari si douăzeci si trei centi"-             , "doi dolari și douăzeci și trei cenți"-             , "2 dolari 23 centi"+             [ "2 dolari si 23 de centi"+             , "2 dolari și 23 de cenți"+             , "doi dolari si douăzeci si trei de centi"+             , "doi dolari și douăzeci și trei de cenți"+             , "2 dolari 23 de centi"              , "doi dolari si 23"              , "doi dolari și 23"              ]   , examples (simple EUR 20)              [ "20€"-             , "20 euro"-             , "20 Euro"+             , "20 de euro"+             , "20 de Euro"              , "EUR 20"              ]   , examples (simple EUR 29.99)@@ -105,7 +116,7 @@              [ "una liră libaneză"              ]   , examples (simple INR 42)-             [ "42 rupii"+             [ "42 de rupii"              , "Rs. 42"              ]   , examples (simple KWD 1)@@ -118,4 +129,29 @@              [ "1 rial saudit"              , "un rial saudi"              ]+  , examples (between RON (5, 15))+             [ "intre 5 si 15 lei"+             , "intre 5 și 15 lei"+             , "de la 5 RON la 15 RON"+             , "intre 5 lei si 15 lei"+             , "de la 5 la 15 lei"+             , "5 - 15 roni"+             , "aproximativ 5-15 lei"+             , "aproape de 5-15 lei"+             , "cam 5-15 RON"+             ]+  , examples (under EUR 7)+             [ "sub șapte euro"+             , "mai putin de 7 EUR"+             , "mai puțin de 7 EUR"+             , "nu chiar 7€"+             , "nici macar 7 euro"+             , "mai ieftin de 7€"+             , "cel mult 7 euro"+             ]+  , examples (above Dollar 3)+            [ "mai mult de 3 dolari"+            , "peste 3 dolari"+            , "mai scump de trei dolari"+            ]   ]
Duckling/AmountOfMoney/RO/Rules.hs view
@@ -22,7 +22,7 @@ import Duckling.AmountOfMoney.Helpers import Duckling.AmountOfMoney.Types (Currency(..), AmountOfMoneyData (..)) import Duckling.Dimensions.Types-import Duckling.Numeral.Helpers (isNatural, isPositive)+import Duckling.Numeral.Helpers (isNatural, isPositive, numberWith) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Regex.Types import Duckling.Types@@ -43,6 +43,22 @@       _ -> Nothing   } +ruleAmountDeUnit :: Rule+ruleAmountDeUnit = Rule+  { name = "<amount >= 20> de <unit>"+  , pattern =+    [ numberWith TNumeral.value (>= 20)+    , regex "de"+    , Predicate isCurrencyOnly+    ]+  , prod = \case+      (Token Numeral NumeralData{TNumeral.value = v}:+       _:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.currency = c}:+       _) -> Just . Token AmountOfMoney . withValue v $ currencyOnly c+      _ -> Nothing+  }+ ruleIntersectAndNumeral :: Rule ruleIntersectAndNumeral = Rule   { name = "intersect (and number)"@@ -84,11 +100,11 @@   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly Dollar   } -rulePrecisionAmountofmoney :: Rule-rulePrecisionAmountofmoney = Rule+rulePrecisionAmountOfMoney :: Rule+rulePrecisionAmountOfMoney = Rule   { name = "about/exactly <amount-of-money>"   , pattern =-    [ regex "exact|cam|aprox(\\.|imativ)?|aproape|(i|î)n jur (de)?"+    [ regex "exact|cam|aprox(\\.|imativ)?|(aproape|(i|î)n jur)( de)?"     , Predicate isMoneyWithValue     ]   , prod = \tokens -> case tokens of@@ -208,9 +224,118 @@   , prod = \_ -> Just . Token AmountOfMoney $ currencyOnly AED   } +ruleIntervalBetweenNumeral :: Rule+ruleIntervalBetweenNumeral = Rule+  { name = "between|from <numeral> to|and <amount-of-money>"+  , pattern =+    [ regex "intre|de la"+    , Predicate isPositive+    , regex "[sș]i|la"+    , Predicate isSimpleAmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (_:+       Token Numeral NumeralData{TNumeral.value = from}:+       _:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+                  TAmountOfMoney.currency = c}:+       _) | from < to ->+        Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c+      _ -> Nothing+  }++ruleIntervalBetween :: Rule+ruleIntervalBetween = Rule+  { name = "between|from <amount-of-money> to|and <amount-of-money>"+  , pattern =+    [ regex "intre|de la"+    , Predicate isSimpleAmountOfMoney+    , regex "[sș]i|la"+    , Predicate isSimpleAmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (_:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,+                TAmountOfMoney.currency = c1}:+       _:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+                  TAmountOfMoney.currency = c2}:+       _) | from < to && c1 == c2 ->+        Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+      _ -> Nothing+  }++ruleIntervalNumeralDash :: Rule+ruleIntervalNumeralDash = Rule+  { name = "<numeral> - <amount-of-money>"+  , pattern =+    [ Predicate isNatural+    , regex "-"+    , Predicate isSimpleAmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral NumeralData{TNumeral.value = from}:+       _:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+                  TAmountOfMoney.currency = c}:+       _) | from < to ->+        Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c+      _ -> Nothing+  }++ruleIntervalDash :: Rule+ruleIntervalDash = Rule+  { name = "<amount-of-money> - <amount-of-money>"+  , pattern =+    [ Predicate isSimpleAmountOfMoney+    , regex "-"+    , Predicate isSimpleAmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,+                  TAmountOfMoney.currency = c1}:+        _:+        Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+                  TAmountOfMoney.currency = c2}:+        _) | from < to && c1 == c2 ->+          Just . Token AmountOfMoney . withInterval (from, to) $ currencyOnly c1+      _ -> Nothing+  }++ruleIntervalMax :: Rule+ruleIntervalMax = Rule+  { name = "under/less/lower/no more than <amount-of-money>"+  , pattern =+    [ regex "sub|mai (pu[tț]|ieft)in de|nu chiar|nici macar|cel mult"+    , Predicate isSimpleAmountOfMoney+    ]+  , 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 "peste|mai (mult|scump) de|cel pu[tț]in"+    , Predicate isSimpleAmountOfMoney+    ]+  , prod = \tokens -> case tokens of+      (_:+       Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just to,+                  TAmountOfMoney.currency = c}:+       _) -> Just . Token AmountOfMoney . withMin to $ currencyOnly c+      _ -> Nothing+  }+ rules :: [Rule] rules =   [ ruleUnitAmount+  , ruleAmountDeUnit   , ruleAed   , ruleCent   , ruleDollar@@ -222,7 +347,13 @@   , ruleKwd   , ruleOtherPounds   , rulePounds-  , rulePrecisionAmountofmoney+  , rulePrecisionAmountOfMoney   , ruleRiyals   , ruleRon+  , ruleIntervalBetween+  , ruleIntervalBetweenNumeral+  , ruleIntervalDash+  , ruleIntervalMax+  , ruleIntervalMin+  , ruleIntervalNumeralDash   ]
Duckling/AmountOfMoney/RU/Rules.hs view
@@ -176,7 +176,7 @@     [ regex "между|от"     , Predicate isPositive     , regex "до|и"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -194,7 +194,7 @@   { name = "between|from <amount-of-money> to|and <numeral>"   , pattern =     [ regex "между|от"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "до|и"     , Predicate isNatural     ]@@ -214,9 +214,9 @@   { name = "between|from <amount-of-money> to|and <amount-of-money>"   , pattern =     [ regex "между|от"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     , regex "до|и"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -236,7 +236,7 @@   , pattern =     [ Predicate isPositive     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token Numeral NumeralData{TNumeral.value = from}:@@ -252,9 +252,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -272,7 +272,7 @@   { name = "under/less/lower/no more than <amount-of-money>"   , pattern =     [ regex "под|((менее|меньше|ниже|не больше|не более)( чем)?)"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:@@ -287,7 +287,7 @@   { name = "over/above/at least/more than <amount-of-money>"   , pattern =     [ regex "сверх|как минимум|((с?выше|больше|более)( чем)?)"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \tokens -> case tokens of       (_:
Duckling/AmountOfMoney/Rules.hs view
@@ -38,6 +38,7 @@   , ("bgn", BGN)   , ("brl", BRL)   , ("byn", BYN)+  , ("cad", CAD)   , ("¢", Cent)   , ("c", Cent)   , ("cny", CNY)@@ -68,6 +69,7 @@   , ("rs.", INR)   , ("rupee", INR)   , ("rupees", INR)+  , ("jmd", JMD)   , ("jod", JOD)   , ("¥", JPY)   , ("jpy", JPY)@@ -79,6 +81,7 @@   , ("myr", MYR)   , ("rm", MYR)   , ("nok", NOK)+  , ("nzd", NZD)   , ("£", Pound)   , ("pt", PTS)   , ("pta", PTS)@@ -97,6 +100,7 @@   , ("sgd", SGD)   , ("shekel", ILS)   , ("shekels", ILS)+  , ("ttd", TTD)   , ("usd", USD)   , ("us$", USD)   , ("vnd", VND)@@ -106,7 +110,7 @@ ruleCurrencies = Rule   { name = "currencies"   , pattern =-    [ regex "(aed|aud|bgn|brl|byn|¢|c|cny|\\$|dinars?|dollars?|egp|(e|€)uro?s?|€|gbp|hrk|idr|ils|inr|iqd|jod|¥|jpy|krw|kwd|lbp|mad|myr|rm|nok|£|pta?s?|qar|₽|rs\\.?|riy?als?|ron|rub|rupees?|sar|sek|sgb|shekels?|us(d|\\$)|vnd|yen|yuan)"+    [ regex "(aed|aud|bgn|brl|byn|¢|c|cad|cny|\\$|dinars?|dollars?|egp|(e|€)uro?s?|€|gbp|hrk|idr|ils|inr|iqd|jmd|jod|¥|jpy|krw|kwd|lbp|mad|myr|rm|nok|nzd|£|pta?s?|qar|₽|rs\\.?|riy?als?|ron|rub|rupees?|sar|sek|sgb|shekels?|ttd|us(d|\\$)|vnd|yen|yuan)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> do
Duckling/AmountOfMoney/Types.hs view
@@ -41,6 +41,7 @@   | BGN   | BRL   | BYN+  | CAD   | CNY   | EGP   | EUR@@ -50,6 +51,7 @@   | ILS   | INR   | IQD+  | JMD   | JOD   | JPY   | KRW@@ -58,6 +60,7 @@   | MAD   | MYR   | NOK+  | NZD   | PTS   | QAR   | RON@@ -65,6 +68,7 @@   | SAR   | SEK   | SGD+  | TTD   | USD   | VND   deriving (Eq, Generic, Hashable, Show, Ord, NFData)@@ -83,6 +87,7 @@   toJSON BGN     = "BGN"   toJSON BRL     = "BRL"   toJSON BYN     = "BYN"+  toJSON CAD     = "CAD"   toJSON CNY     = "CNY"   toJSON EGP     = "EGP"   toJSON EUR     = "EUR"@@ -92,6 +97,7 @@   toJSON ILS     = "ILS"   toJSON IQD     = "IQD"   toJSON INR     = "INR"+  toJSON JMD     = "JMD"   toJSON JOD     = "JOD"   toJSON JPY     = "JPY"   toJSON KRW     = "KRW"@@ -100,6 +106,7 @@   toJSON MAD     = "MAD"   toJSON MYR     = "MYR"   toJSON NOK     = "NOK"+  toJSON NZD     = "NZD"   toJSON PTS     = "PTS"   toJSON QAR     = "QAR"   toJSON RON     = "RON"@@ -107,6 +114,7 @@   toJSON SAR     = "SAR"   toJSON SEK     = "SEK"   toJSON SGD     = "SGD"+  toJSON TTD     = "TTD"   toJSON USD     = "USD"   toJSON VND     = "VND" 
Duckling/AmountOfMoney/ZH/Rules.hs view
@@ -185,7 +185,7 @@   , pattern =     [ Predicate isPositive     , regex "-|~|到"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \case       (Token Numeral NumeralData{TNumeral.value = from}:@@ -201,9 +201,9 @@ ruleIntervalDash = Rule   { name = "<amount-of-money> - <amount-of-money>"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "-|~|到"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \case       (Token AmountOfMoney AmountOfMoneyData{TAmountOfMoney.value = Just from,@@ -221,7 +221,7 @@   { name = "under/less/lower/no more than <amount-of-money> (最多|至少|最少)"   , pattern =     [ regex "(最多|至少|最少)"-    , financeWith TAmountOfMoney.value isJust+    , Predicate isSimpleAmountOfMoney     ]   , prod = \case       (Token RegexMatch (GroupMatch (match:_)):@@ -239,7 +239,7 @@ ruleIntervalBound2 = Rule   { name = "under/less/lower/no more than <amount-of-money> (以下|以上)"   , pattern =-    [ financeWith TAmountOfMoney.value isJust+    [ Predicate isSimpleAmountOfMoney     , regex "(以下|以上)"     ]   , prod = \case
Duckling/Dimensions/HI.hs view
@@ -14,6 +14,7 @@  allDimensions :: [Some Dimension] allDimensions =-  [ This Numeral+  [ This Duration+  , This Numeral   , This Ordinal   ]
Duckling/Dimensions/ZH.hs view
@@ -18,6 +18,7 @@   , This Duration   , This Numeral   , This Ordinal+  , This Quantity   , This Temperature   , This Time   ]
Duckling/Distance/EN/Corpus.hs view
@@ -69,4 +69,9 @@              , "over 5\""              , "above 5 in"              ]+  , examples (between Millimetre (5, 6))+             [ "between 5 and six millimeters"+             , "between 5 and six millimetres"+             , "5-6 mm"+             ]   ]
Duckling/Distance/EN/Rules.hs view
@@ -60,14 +60,18 @@   }  distances :: [(Text, String, TDistance.Unit)]-distances = [ ("km", "k(ilo)?m?(eter)?s?", TDistance.Kilometre)+distances = [ -- Imperial+              ("miles", "mi(le(s)?)?", TDistance.Mile)+            , ("yard", "y(ar)?ds?", TDistance.Yard)             , ("feet", "('|f(oo|ee)?ts?)", TDistance.Foot)             , ("inch", "(\"|''|in(ch(es)?)?)", TDistance.Inch)-            , ("yard", "y(ar)?ds?", TDistance.Yard)-            , ("meters", "meters?", TDistance.Metre)-            , ("centimeters", "cm|centimeters?", TDistance.Centimetre)-            , ("miles", "mi(le(s)?)?", TDistance.Mile)-            , ("m (ambiguous miles or meters)", "m", TDistance.M)+              -- Metric+            , ("km", "k(ilo)?m?(et(er|re))?s?", TDistance.Kilometre)+            , ("meters", "met(er|re)s?", TDistance.Metre)+            , ("centimeters", "cm|centimet(er|re)s?", TDistance.Centimetre)+            , ("millimeters", "mm|millimet(er|re)s?", TDistance.Millimetre)+              -- Ambiguous+            , ("m (miles or meters)", "m", TDistance.M)             ]  rulePrecision :: Rule
Duckling/Distance/RO/Corpus.hs view
@@ -44,4 +44,7 @@   , examples (simple Foot 10)              [ "zece picioare"              ]+  , examples (simple Foot 20)+             [ "20 de picioare"+             ]   ]
Duckling/Distance/RO/Rules.hs view
@@ -7,117 +7,87 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Distance.RO.Rules-  ( rules ) where+  ( rules+  ) where +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.Distance.Helpers-import qualified Duckling.Distance.Types as TDistance+import Duckling.Regex.Types import Duckling.Types--ruleLatentDistKm :: Rule-ruleLatentDistKm = Rule-  { name = "<latent dist> km"-  , pattern =-    [ dimension Distance-    , regex "(kilometr[iu]|km)"-    ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Kilometre dd-      _ -> Nothing-  }--ruleLatentDistPicioare :: Rule-ruleLatentDistPicioare = Rule-  { name = "<latent dist> picioare"-  , pattern =-    [ dimension Distance-    , regex "(picio(are|r))"-    ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Foot dd-      _ -> Nothing-  }--ruleLatentDistInch :: Rule-ruleLatentDistInch = Rule-  { name = "<latent dist> inch"-  , pattern =-    [ dimension Distance-    , regex "(inch|inci|inchi)"-    ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Inch dd-      _ -> Nothing-  }--ruleLatentDistYarzi :: Rule-ruleLatentDistYarzi = Rule-  { name = "<latent dist> yarzi"-  , pattern =-    [ dimension Distance-    , regex "y(ar)?(zi|d)?"-    ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Yard dd-      _ -> Nothing-  }+import qualified Duckling.Distance.Types as TDistance -ruleDistMeters :: Rule-ruleDistMeters = Rule-  { name = "<dist> meters"-  , pattern =-    [ dimension Distance-    , regex "(metr[ui]|m)"-    ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Metre dd-      _ -> Nothing-  }+unitMap :: HashMap Text TDistance.Unit+unitMap = HashMap.fromList+  [ ( "cm", TDistance.Centimetre )+  , ( "centimetri", TDistance.Centimetre )+  , ( "centimetru", TDistance.Centimetre )+  , ( "picior", TDistance.Foot )+  , ( "picioare", TDistance.Foot )+  , ( "inch", TDistance.Inch )+  , ( "inchi", TDistance.Inch )+  , ( "inci", TDistance.Inch )+  , ( "km", TDistance.Kilometre )+  , ( "kilometri", TDistance.Kilometre )+  , ( "kilometru", TDistance.Kilometre )+  , ( "m", TDistance.Metre )+  , ( "metri", TDistance.Metre )+  , ( "metru", TDistance.Metre )+  , ( "mila", TDistance.Mile )+  , ( "milă", TDistance.Mile )+  , ( "mile", TDistance.Mile )+  , ( "y", TDistance.Yard )+  , ( "yar", TDistance.Yard )+  , ( "yard", TDistance.Yard )+  , ( "yarzi", TDistance.Yard )+  , ( "yd", TDistance.Yard )+  , ( "yzi", TDistance.Yard )+  ] -ruleDistCentimeters :: Rule-ruleDistCentimeters = Rule-  { name = "<dist> centimeters"+ruleLatentDistUnit :: Rule+ruleLatentDistUnit = Rule+  { name = "<latent dist> foot/inch/yard/meter/kilometer/centimeter"   , pattern =     [ dimension Distance-    , regex "(centimetr[iu]|cm)"+    , regex "(inc(hi?|i)|(centi|kilo)?metr[iu]|mil[eaă]|[ck]?m|picio(are|r)|y(ar)?(zi|d)?)"     ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Centimetre dd+  , prod = \case+      (Token Distance dd:+       Token RegexMatch (GroupMatch (match:_)):+       _) -> do+         x <- HashMap.lookup (Text.toLower match) unitMap+         Just . Token Distance $ withUnit x dd       _ -> Nothing   } -ruleDistMiles :: Rule-ruleDistMiles = Rule-  { name = "<dist> miles"+ruleLatentDistDeUnit :: Rule+ruleLatentDistDeUnit = Rule+  { name = "<latent dist> foot/inch/yard/meter/kilometer/centimeter"   , pattern =     [ dimension Distance-    , regex "mil(e|a|ă)"+    , regex "de (inc(hi?|i)|(centi|kilo)?metr[iu]|mil[eaă]|[ck]?m|picio(are|r)|y(ar)?(zi|d)?)"     ]-  , prod = \tokens -> case tokens of-      (Token Distance dd:_) ->-        Just . Token Distance $ withUnit TDistance.Mile dd+  , prod = \case+      (Token Distance dd:+       Token RegexMatch (GroupMatch (match:_)):+       _) -> do+         x <- HashMap.lookup (Text.toLower match) unitMap+         Just . Token Distance $ withUnit x dd       _ -> Nothing   }  rules :: [Rule] rules =-  [ ruleDistCentimeters-  , ruleDistMeters-  , ruleDistMiles-  , ruleLatentDistInch-  , ruleLatentDistKm-  , ruleLatentDistPicioare-  , ruleLatentDistYarzi+  [ ruleLatentDistUnit+  , ruleLatentDistDeUnit   ]
Duckling/Distance/Types.hs view
@@ -27,10 +27,10 @@ import Duckling.Resolve (Resolve(..))  data Unit-  = Foot-  | Centimetre-  | Kilometre+  = Centimetre+  | Foot   | Inch+  | Kilometre   | M -- ambiguous between Mile and Metre   | Metre   | Mile
Duckling/Duration/EN/Corpus.hs view
@@ -62,6 +62,26 @@   , examples (DurationData 2 Year)              [ "2 years"              ]+  , examples (DurationData 30 Minute)+             [ "half an hour"+             , "half hour"+             , "1/2 hour"+             , "1/2h"+             , "1/2 h"+             ]+  , examples (DurationData 12 Hour)+             [ "half a day"+             , "half day"+             , "1/2 day"+             ]+  , examples (DurationData 90 Minute)+             [ "an hour and a half"+             , "one hour and half"+             ]+  , examples (DurationData 45 Day)+             [ "a month and a half"+             , "one month and half"+             ]   , examples (DurationData 27 Month)              [ "2 years and 3 months"              , "2 years, 3 months"
Duckling/Duration/EN/Rules.hs view
@@ -40,11 +40,11 @@   , prod = \_ -> Just . Token Duration $ duration TG.Minute 15   } -ruleDurationHalfAnHour :: Rule-ruleDurationHalfAnHour = Rule-  { name = "half an hour"+ruleDurationHalfAnHourAbbrev :: Rule+ruleDurationHalfAnHourAbbrev = Rule+  { name = "half an hour (abbrev)."   , pattern =-    [ regex "(1/2\\s?h(our)?|half an? hour)"+    [ regex "1/2\\s?h"     ]   , prod = \_ -> Just . Token Duration $ duration TG.Minute 30   }@@ -138,6 +138,31 @@       _ -> Nothing   } +ruleDurationHalfATimeGrain :: Rule+ruleDurationHalfATimeGrain = Rule+  { name = "half a <time-grain>"+  , pattern =+    [ regex "(1/2|half)( an?)?"+    , dimension TimeGrain+    ]+  , prod = \case+      (_:Token TimeGrain grain:_) -> Token Duration <$> timesOneAndAHalf grain 0+      _ -> Nothing+  }++ruleDurationOneGrainAndHalf :: Rule+ruleDurationOneGrainAndHalf = Rule+  { name = "a <unit-of-duration> and a half"+  , pattern =+    [ regex "an?|one"+    , dimension TimeGrain+    , regex "and (a )?half"+    ]+  , prod = \case+      (_:Token TimeGrain grain:_) -> Token Duration <$> timesOneAndAHalf grain 1+      _ -> Nothing+  }+ ruleDurationPrecision :: Rule ruleDurationPrecision = Rule   { name = "about|exactly <duration>"@@ -171,13 +196,15 @@ rules :: [Rule] rules =   [ ruleDurationQuarterOfAnHour-  , ruleDurationHalfAnHour+  , ruleDurationHalfAnHourAbbrev   , ruleDurationThreeQuartersOfAnHour   , ruleDurationFortnight   , ruleDurationNumeralMore   , ruleDurationDotNumeralHours   , ruleDurationAndHalfHour   , ruleDurationA+  , ruleDurationHalfATimeGrain+  , ruleDurationOneGrainAndHalf   , ruleDurationPrecision   , ruleNumeralQuotes   , ruleCompositeDuration
+ Duckling/Duration/HI/Corpus.hs view
@@ -0,0 +1,49 @@+-- 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.HI.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 HI Nothing}, testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (DurationData 15 Minute)+             [ "पंद्रह मिनट"+             , "लगभग पंद्रह मिनट"+             ]+  , examples (DurationData 30 Minute)+             [ "आधा घंटा"+             ]+  , examples (DurationData 1 Day)+             [ "दिवस"+             , "एक दिन"+             ]+  , examples (DurationData 14 Day)+             [ "पखवाड़ा"+             , "एक पखवाड़ा"+             ]+  , examples (DurationData 1 Year)+             [ "एक साल"+             , "केवल एक वर्ष"+             , "लगभग एक साल"+             ]+  ]
+ Duckling/Duration/HI/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.HI.Rules+  ( rules+  ) where++import Control.Monad (join)+import Data.String+import Data.HashMap.Strict (HashMap)+import Data.Text (Text)+import Prelude+import qualified Data.HashMap.Strict as HashMap+import qualified Data.Text as Text++import Duckling.Dimensions.Types+import Duckling.Duration.Helpers+import Duckling.Numeral.Helpers (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++avadhiMap :: HashMap Text TG.Grain+avadhiMap = HashMap.fromList+  [ ("मिनट" , TG.Minute)+  , ("घंटा" , TG.Hour)+  , ("दिवस" , TG.Day)+  , ("दिन"  , TG.Day)+  , ("महीना", TG.Month)+  , ("वर्ष" , TG.Year)+  , ("साल"  , TG.Year)+  ]++ruleAadha :: Rule+ruleAadha = Rule+  { name = "half of a duration"+  , pattern =+    [ regex "आधा ((साल|वर्ष)|(महीना)|(दिन|दिवस)|(घंटा)|(मिनट))"+    ]+  , prod = \tokens -> case tokens of+      (Token RegexMatch (GroupMatch (x:_)):_) -> do+        grain <- HashMap.lookup (Text.toLower x) avadhiMap+        Token Duration <$> timesOneAndAHalf grain 0+      _ -> Nothing+  }++ruleDurationPandrahMinat :: Rule+ruleDurationPandrahMinat = Rule+  { name = "quarter of an hour"+  , pattern =+    [ regex "पंद्रह मिनट"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Minute 15+  }++ruleDurationPakhwaada :: Rule+ruleDurationPakhwaada = Rule+  { name = "fortnight"+  , pattern =+    [ regex "((एक पखवाड़ा)|(पखवाड़ा))"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Day 14+  }++ruleDurationDin :: Rule+ruleDurationDin = Rule+  { name = "a day"+  , pattern =+    [ regex "((एक दिन)|(एक दिवस)|(दिन|दिवस))"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Day 1+  }++ruleDurationEkSaal :: Rule+ruleDurationEkSaal = Rule+  { name = "one year"+  , pattern =+    [ regex "एक (साल|वर्ष)"+    ]+  , prod = \_ -> Just . Token Duration $ duration TG.Year 1+  }++ruleDurationPreciseImprecise :: Rule+ruleDurationPreciseImprecise = Rule+  { name = "about|exactly <duration>"+  , pattern =+    [ regex "(लगभग|बिल्कुल|केवल)"+    , dimension Duration+    ]+    , prod = \tokens -> case tokens of+        (_:token:_) -> Just token+        _ -> Nothing+  }+++rules :: [Rule]+rules =+  [  ruleDurationPandrahMinat+  ,  ruleDurationPakhwaada+  ,  ruleDurationDin+  ,  ruleAadha+  ,  ruleDurationEkSaal+  ,  ruleDurationPreciseImprecise+  ]
Duckling/Duration/RO/Corpus.hs view
@@ -38,6 +38,7 @@   , examples (DurationData 45 Minute)              [ "trei sferturi de oră"              , "45min"+             , "45 de minute"              ]   , examples (DurationData 12 Week)              [ "doișpe saptamanile"
Duckling/Duration/RO/Rules.hs view
@@ -7,18 +7,22 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Duration.RO.Rules-  ( rules ) where+  ( rules+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Dimensions.Types import Duckling.Duration.Helpers-import qualified Duckling.TimeGrain.Types as TG+import Duckling.Numeral.Helpers (numberWith) import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.TimeGrain.Types as TG  ruleQuarterOfAnHour :: Rule ruleQuarterOfAnHour = Rule@@ -54,7 +58,7 @@     [ regex "o|un"     , dimension TimeGrain     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (_:Token TimeGrain grain:_) -> Just . Token Duration $ duration grain 1       _ -> Nothing   }@@ -66,11 +70,27 @@     [ regex "(exact|aproximativ|(i|î)n jur de)"     , dimension Duration     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (_:token:_) -> Just token       _ -> Nothing   } +ruleIntegerDeUnitofduration :: Rule+ruleIntegerDeUnitofduration = Rule+  { name = "<integer> <unit-of-duration>"+  , pattern =+    [ numberWith TNumeral.value (>= 20)+    , regex "de"+    , dimension TimeGrain+    ]+  , prod = \case+      (Token Numeral TNumeral.NumeralData{TNumeral.value = v}:+       _:+       Token TimeGrain grain:+       _) -> Just . Token Duration . duration grain $ floor v+      _ -> Nothing+  }+ rules :: [Rule] rules =   [ ruleExactInJurDeDuration@@ -78,4 +98,5 @@   , ruleOUnitofduration   , ruleQuarterOfAnHour   , ruleTreiSferturiDeOra+  , ruleIntegerDeUnitofduration   ]
Duckling/Locale.hs view
@@ -13,7 +13,7 @@ module Duckling.Locale   ( Lang(..)   , Locale(..)-  , Region(..)+  , Region(AU,BE,BZ,CA,CN,GB,HK,IE,IN,JM,MO,NZ,PH,TT,TW,US,ZA)   , allLocales   , makeLocale   ) where@@ -28,6 +28,9 @@ import qualified Data.HashSet as HashSet import qualified TextShow as TS +import Duckling.Region hiding (NL)+import qualified Duckling.Region as R (Region(NL))+ -- | ISO 639-1 Language. -- See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes data Lang@@ -70,30 +73,6 @@ 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-  = AU-  | BZ-  | CA-  | CN-  | GB-  | HK-  | IE-  | IN-  | JM-  | MO-  | NZ-  | PH-  | TT-  | TW-  | US-  | ZA-  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) @@ -115,5 +94,6 @@ allLocales :: HashMap Lang (HashSet Region) allLocales = HashMap.fromList   [ (EN, HashSet.fromList [AU, BZ, CA, GB, IN, IE, JM, NZ, PH, ZA, TT, US])+  , (NL, HashSet.fromList [BE, R.NL])   , (ZH, HashSet.fromList [CN, HK, MO, TW])   ]
Duckling/Numeral/AR/Corpus.hs view
@@ -140,6 +140,11 @@              [ "0.77"              , ".77"              ]+  , examples (NumeralValue 2000)+             [ "2000"+             , "الفان"+             , "الفين"+             ]   , examples (NumeralValue 100000)              [ "100000"              , "100 الف"@@ -148,9 +153,20 @@              [ "10000"              , "10 آلاف"              ]+  , examples (NumeralValue 1000000)+             [ "1000000"+             , "مليون"+             ]+  , examples (NumeralValue 2000000)+             [ "2000000"+             , "2 مليون"+             , "مليونان"+             , "مليونين"+             ]   , examples (NumeralValue 3000000)              [ "3 ملايين"              , "3000000"+             , "3 مليون"              ]   , examples (NumeralValue (-1200000))              [ "-1200000"
Duckling/Numeral/AR/Rules.hs view
@@ -173,7 +173,7 @@ rulePowersOfTen = Rule   { name = "powers of tens"   , pattern =-    [ regex "(ما?[ئي][ةه]|مئات|[أا]لف|ال??|[آا]لاف|ملايين)"+    [ regex "(ما?[ئي][ةه]|مئت(ان|ين)|مئات|[أا]لف(ان|ين)?|[آا]لاف|ملايين|مليون(ان|ين)?)"     ]   , prod = \tokens -> case tokens of       (Token RegexMatch (GroupMatch (match:_)):_) -> case Text.toLower match of@@ -185,18 +185,28 @@           double 1e2 >>= withGrain 2 >>= withMultipliable         "مائه" ->           double 1e2 >>= withGrain 2 >>= withMultipliable+        "مئتين" ->+          double 2e2 >>= withGrain 2+        "مئتان" ->+          double 2e2 >>= withGrain 2         "مئات" ->           double 1e2 >>= withGrain 2 >>= withMultipliable         "ألف" -> double 1e3 >>= withGrain 3 >>= withMultipliable         "الف" -> double 1e3 >>= withGrain 3 >>= withMultipliable+        "الفين" -> double 2e3 >>= withGrain 3+        "الفان" -> double 2e3 >>= withGrain 3         "الاف" ->           double 1e3 >>= withGrain 3 >>= withMultipliable         "آلاف" ->           double 1e3 >>= withGrain 3 >>= withMultipliable-        "ملايي" ->-          double 1e6 >>= withGrain 6 >>= withMultipliable         "ملايين" ->           double 1e6 >>= withGrain 6 >>= withMultipliable+        "مليون" ->+          double 1e6 >>= withGrain 6 >>= withMultipliable+        "مليونين" ->+          double 2e6 >>= withGrain 6+        "مليونان" ->+          double 2e6 >>= withGrain 6         _ -> Nothing       _ -> Nothing   }
Duckling/Numeral/RO/Corpus.hs view
@@ -9,10 +9,11 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Numeral.RO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Locale import Duckling.Numeral.Types
Duckling/Numeral/RO/Rules.hs view
@@ -40,20 +40,6 @@       _ -> Nothing   } -ruleSpecialCompositionForMissingHundredsLikeInOneTwentyTwo :: Rule-ruleSpecialCompositionForMissingHundredsLikeInOneTwentyTwo = Rule-  { name = "special composition for missing hundreds like in one twenty two"-  , pattern =-    [ numberBetween 1 10-    , numberBetween 11 100-    ]-  , prod = \tokens -> case tokens of-      (Token Numeral NumeralData{TNumeral.value = hundreds}:-       Token Numeral NumeralData{TNumeral.value = rest}:-       _) -> double $ hundreds * 100 + rest-      _ -> Nothing-  }- ruleDecimalWithThousandsSeparator :: Rule ruleDecimalWithThousandsSeparator = Rule   { name = "decimal with thousands separator"@@ -297,5 +283,4 @@   , ruleNumeralsPrefixWithOrMinus   , ruleNumeralsSuffixesWithNegativ   , rulePowersOfTen-  , ruleSpecialCompositionForMissingHundredsLikeInOneTwentyTwo   ]
Duckling/Quantity/RO/Corpus.hs view
@@ -9,10 +9,11 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Quantity.RO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Locale import Duckling.Quantity.Types@@ -32,5 +33,9 @@              ]   , examples (simple Pound 500 (Just "zahăr"))              [ "cinci sute livre de zahăr"+             , "cinci sute de livre de zahăr"+             ]+  , examples (simple Pound 21 (Just "mamaliga"))+             [ "douăzeci și unu de livre de mamaliga"              ]   ]
Duckling/Quantity/RO/Rules.hs view
@@ -7,30 +7,33 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Quantity.RO.Rules-  ( rules ) where+  ( rules+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Dimensions.Types-import Duckling.Numeral.Types (NumeralData (..))-import qualified Duckling.Numeral.Types as TNumeral+import Duckling.Numeral.Helpers (isPositive)+import Duckling.Numeral.Types (NumeralData(..)) import Duckling.Quantity.Helpers-import qualified Duckling.Quantity.Types as TQuantity import Duckling.Regex.Types import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.Quantity.Types as TQuantity  ruleNumeralUnits :: Rule ruleNumeralUnits = Rule   { name = "<number> <units>"   , pattern =-    [ dimension Numeral-    , regex "livr(a|e|ă)"+    [ Predicate isPositive+    , regex "(de )?livr(a|e|ă)"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Numeral NumeralData {TNumeral.value = v}:_) ->         Just . Token Quantity $ quantity TQuantity.Pound v       _ -> Nothing@@ -41,12 +44,12 @@   { name = "<quantity> of product"   , pattern =     [ dimension Quantity-    , regex "de (carne|can(a|ă)|zah(a|ă)r)"+    , regex "de (carne|can[aă]|zah[aă]r|mamaliga)"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Quantity qd:-       Token RegexMatch (GroupMatch (match:_)):-       _) -> Just . Token Quantity $ withProduct match qd+       Token RegexMatch (GroupMatch (product:_)):+       _) -> Just . Token Quantity $ withProduct product qd       _ -> Nothing   } 
+ Duckling/Quantity/ZH/Corpus.hs view
@@ -0,0 +1,64 @@+-- 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.Quantity.ZH.Corpus+  ( corpus+  ) where++import Data.String+import Prelude++import Duckling.Locale+import Duckling.Quantity.Types+import Duckling.Resolve+import Duckling.Testing.Types++corpus :: Corpus+corpus = (testContext {locale = makeLocale ZH Nothing},+  testOptions, allExamples)++allExamples :: [Example]+allExamples = concat+  [ examples (simple Gram 2 Nothing)+             [ "2克"+             , "二克"+             , "两克"+             , "2g"+             , "2.0g"+             ]+  , examples (simple Gram 1500 Nothing)+             [ "3斤"+             , "三斤"+             , "1.5公斤"+             , "1.5千克"+             , "1.5kg"+             , "1500g"+             ]+  , examples (simple Gram 0.035 Nothing)+             [ "35毫克"+             , "三十五毫克"+             , "35mg"+             ]+  , examples (simple Gram 1750 Nothing)+             [ "三斤半"+             , "3斤半"+             , "3斤5两"+             , "1.75千克"+             ]+  , examples (simple Gram 475 Nothing)+             [ "9两半"+             , "九兩半"+             ]+  , examples (simple Gram 3400 Nothing)+             [ "六斤八两"+             , "六斤8兩"+             , "3.4公斤"+             ]+  ]
+ Duckling/Quantity/ZH/Rules.hs view
@@ -0,0 +1,122 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Quantity.ZH.Rules+  ( rules+  ) where++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+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++quantities :: [(Text, String, TQuantity.Unit)]+quantities =+  [ ("<quantity> grams", "(千克|公斤|斤|两|兩|克|毫克|kg|g|mg)", TQuantity.Gram)+  ]++opsMap :: HashMap Text (Double -> Double)+opsMap = HashMap.fromList+  [ ( "千克" , (* 1000))+  , ( "公斤",  (* 1000))+  , ( "kg",   (* 1000))+  , ( "斤",    (* 500))+  , ( "两",    (* 50))+  , ( "兩",    (* 50))+  , ( "毫克",  (/ 1000))+  , ( "mg",   (/ 1000))+  ]++ruleNumeralQuantities :: [Rule]+ruleNumeralQuantities = map go quantities+  where+    getValue :: Text -> Double -> Double+    getValue match = HashMap.lookupDefault id (Text.toLower match) opsMap++    go :: (Text, String, TQuantity.Unit) -> Rule+    go (name, regexPattern, u) = Rule+      { name = name+      , pattern =+        [ Predicate isPositive+        , regex regexPattern+        ]+      , prod = \case+        (Token Numeral nd:+         Token RegexMatch (GroupMatch (match:_)):+         _) -> Just . Token Quantity $ quantity u value+          where value = getValue match $ TNumeral.value nd+        _ -> Nothing+      }++ruleCattyTael :: Rule+ruleCattyTael = Rule+  { name = "<quantity> catty <quantity> tael"+  , pattern =+    [ Predicate isPositive+    , regex "斤"+    , numberBetween 1 10+    , regex "两|兩"+    ]+  , prod = \case+    (Token Numeral TNumeral.NumeralData{TNumeral.value = x}:+     Token RegexMatch (GroupMatch _):+     Token Numeral TNumeral.NumeralData{TNumeral.value = y}:+     Token RegexMatch (GroupMatch _):+     _) -> Just . Token Quantity $ quantity TQuantity.Gram (x * 500 + y * 50)+    _ -> Nothing+  }++ruleCattyHalf :: Rule+ruleCattyHalf = Rule+  { name = "<quantity> catty half"+  , pattern =+    [ Predicate isPositive+    , regex "斤半"+    ]+  , prod = \case+    (Token Numeral TNumeral.NumeralData{TNumeral.value = x}:+     Token RegexMatch (GroupMatch _):+     _) -> Just . Token Quantity $ quantity TQuantity.Gram (x * 500 + 250)+    _ -> Nothing+  }++ruleTaelHalf :: Rule+ruleTaelHalf = Rule+  { name = "<quantity> tael half"+  , pattern =+    [ Predicate isPositive+    , regex "(两|兩)半"+    ]+  , prod = \case+    (Token Numeral TNumeral.NumeralData{TNumeral.value = x}:+     Token RegexMatch (GroupMatch _):+     _) -> Just . Token Quantity $ quantity TQuantity.Gram (x * 50 + 25)+    _ -> Nothing+  }++rules :: [Rule]+rules =+  [ ruleCattyTael+  , ruleCattyHalf+  , ruleTaelHalf+  ]+  ++ ruleNumeralQuantities
Duckling/Ranking/Classifiers/DA_XX.hs view
@@ -42,10 +42,10 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("integer (numeric)",         Classifier{okData =-                     ClassData{prior = -0.7974433001619848, unseen = -4.962844630259907,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 141},+                     ClassData{prior = -0.8013607652001781, unseen = -4.955827057601261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 140},                    koData =-                     ClassData{prior = -0.5987087137267001, unseen = -5.159055299214529,+                     ClassData{prior = -0.5955087109960292, unseen = -5.159055299214529,                                likelihoods = HashMap.fromList [("", 0.0)], n = 172}}),        ("the day before yesterday",         Classifier{okData =@@ -121,15 +121,15 @@                                n = 16}}),        ("absorption of , after named day",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.1354942159291497,+                     ClassData{prior = 0.0, unseen = -3.044522437723423,                                likelihoods =                                  HashMap.fromList-                                   [("Wednesday", -2.3978952727983707),-                                    ("Saturday", -2.3978952727983707),-                                    ("Monday", -1.7047480922384253),-                                    ("Friday", -1.9924301646902063), ("day", -0.8938178760220964),-                                    ("Sunday", -2.3978952727983707)],-                               n = 8},+                                   [("Wednesday", -2.3025850929940455),+                                    ("Saturday", -2.3025850929940455),+                                    ("Monday", -1.8971199848858813),+                                    ("Friday", -1.8971199848858813), ("day", -0.916290731874155),+                                    ("Sunday", -2.3025850929940455)],+                               n = 7},                    koData =                      ClassData{prior = -infinity, unseen = -1.9459101490553135,                                likelihoods = HashMap.fromList [], n = 0}}),@@ -287,141 +287,140 @@                                n = 2}}),        ("intersect",         Classifier{okData =-                     ClassData{prior = -0.44236966504361536,-                               unseen = -5.849324779946859,+                     ClassData{prior = -0.4402080565520373, unseen = -5.84354441703136,                                likelihoods =                                  HashMap.fromList                                    [("<datetime> - <datetime> (interval)on <date>",-                                     -4.054679305829669),+                                     -4.048882188145344),                                     ("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -5.153291594497779),+                                     -5.147494476813453),                                     ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.054679305829669),-                                    ("hourday", -5.153291594497779),-                                    ("dayhour", -2.901999795891284),-                                    ("daymonth", -3.361532125269724),-                                    ("monthyear", -3.073850052817943),-                                    ("Mondayon <date>", -5.153291594497779),-                                    ("intersecthh:mm", -5.153291594497779),-                                    ("Wednesdaynext <cycle>", -5.153291594497779),-                                    ("Marchyear", -4.747826486389615),+                                     -4.048882188145344),+                                    ("hourday", -5.147494476813453),+                                    ("dayhour", -2.896202678206958),+                                    ("daymonth", -3.355735007585398),+                                    ("monthyear", -3.068052935133617),+                                    ("Mondayon <date>", -5.147494476813453),+                                    ("intersecthh:mm", -5.147494476813453),+                                    ("Wednesdaynext <cycle>", -5.147494476813453),+                                    ("Marchyear", -4.742029368705289),                                     ("intersect by \"of\", \"from\", \"'s\"year",-                                     -4.747826486389615),-                                    ("Mondayintersect", -5.153291594497779),-                                    ("last <day-of-week> of <time>year", -4.747826486389615),-                                    ("todayat <time-of-day>", -4.747826486389615),-                                    ("Thursday<time> timezone", -3.900528626002411),-                                    ("dayday", -3.073850052817943),-                                    ("dd/mmat <time-of-day>", -4.237000862623624),-                                    ("the <day-of-month> (ordinal)February", -4.747826486389615),-                                    ("intersect by \",\"hh:mm", -4.237000862623624),-                                    ("Mondaythe <day-of-month> (non ordinal)", -5.153291594497779),+                                     -4.742029368705289),+                                    ("Mondayintersect", -5.147494476813453),+                                    ("last <day-of-week> of <time>year", -4.742029368705289),+                                    ("todayat <time-of-day>", -4.742029368705289),+                                    ("Thursday<time> timezone", -3.894731508318085),+                                    ("dayday", -3.132591456271188),+                                    ("dd/mmat <time-of-day>", -4.231203744939298),+                                    ("the <day-of-month> (ordinal)February", -4.742029368705289),+                                    ("intersect by \",\"hh:mm", -4.231203744939298),+                                    ("Mondaythe <day-of-month> (non ordinal)", -5.147494476813453),                                     ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",-                                     -5.153291594497779),-                                    ("dayyear", -3.2814894175961875),+                                     -5.147494476813453),+                                    ("dayyear", -3.275692299911862),                                     ("Thursdaybetween <datetime> and <datetime> (interval)",-                                     -5.153291594497779),-                                    ("Thursdayat <time-of-day>", -4.237000862623624),-                                    ("tomorrow<time-of-day> sharp", -4.747826486389615),+                                     -5.147494476813453),+                                    ("Thursdayat <time-of-day>", -4.231203744939298),+                                    ("tomorrow<time-of-day> sharp", -4.742029368705289),                                     ("<day-of-month>(ordinal) <named-month>year",-                                     -4.747826486389615),+                                     -4.742029368705289),                                     ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.054679305829669),+                                     -4.231203744939298),                                     ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -4.747826486389615),+                                     -4.742029368705289),                                     ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.747826486389615),-                                    ("tomorrowuntil <time-of-day>", -4.747826486389615),+                                     -4.742029368705289),+                                    ("tomorrowuntil <time-of-day>", -4.742029368705289),                                     ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",-                                     -4.460144413937834),-                                    ("the <day-of-month> (ordinal)March", -4.237000862623624),-                                    ("after <time-of-day>at <time-of-day>", -4.747826486389615),+                                     -4.454347296253507),+                                    ("the <day-of-month> (ordinal)March", -4.231203744939298),+                                    ("after <time-of-day>at <time-of-day>", -4.742029368705289),                                     ("intersect by \",\"<day-of-month> (non ordinal) <named-month>",-                                     -4.747826486389615),-                                    ("Mondaythe <day-of-month> (ordinal)", -5.153291594497779),-                                    ("tomorrowafter <time-of-day>", -4.747826486389615),+                                     -4.742029368705289),+                                    ("Mondaythe <day-of-month> (ordinal)", -5.147494476813453),+                                    ("tomorrowafter <time-of-day>", -4.742029368705289),                                     ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.237000862623624),+                                     -4.231203744939298),                                     ("Sunday<day-of-month> (non ordinal) <named-month>",-                                     -5.153291594497779),-                                    ("dayminute", -2.588342237036242),-                                    ("Tuesdaythis <time>", -4.460144413937834),+                                     -5.147494476813453),+                                    ("dayminute", -2.5825451193519164),+                                    ("Tuesdaythis <time>", -4.454347296253507),                                     ("from <datetime> - <datetime> (interval)on <date>",-                                     -4.460144413937834),-                                    ("<ordinal> <cycle> of <time>year", -4.747826486389615),-                                    ("minuteday", -2.550601909053395),+                                     -4.454347296253507),+                                    ("<ordinal> <cycle> of <time>year", -4.742029368705289),+                                    ("minuteday", -2.5448047913690695),                                     ("absorption of , after named dayintersect",-                                     -5.153291594497779),-                                    ("Octoberyear", -3.543853682063679),-                                    ("yearhh:mm", -5.153291594497779),+                                     -5.147494476813453),+                                    ("Octoberyear", -3.5380565643793527),+                                    ("yearhh:mm", -5.147494476813453),                                     ("absorption of , after named dayintersect by \",\"",-                                     -4.747826486389615),-                                    ("dd/mmyear", -4.747826486389615),-                                    ("Septemberyear", -4.237000862623624),-                                    ("at <time-of-day>on <date>", -5.153291594497779),+                                     -4.742029368705289),+                                    ("dd/mmyear", -4.742029368705289),+                                    ("Septemberyear", -4.231203744939298),+                                    ("at <time-of-day>on <date>", -5.147494476813453),                                     ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -5.153291594497779),+                                     -5.147494476813453),                                     ("between <datetime> and <datetime> (interval)on <date>",-                                     -5.153291594497779),-                                    ("dayweek", -4.054679305829669),-                                    ("weekyear", -4.237000862623624),-                                    ("hh:mmtomorrow", -4.460144413937834),-                                    ("Wednesdaythis <time>", -4.237000862623624),-                                    ("tomorrowat <time-of-day>", -3.900528626002411),-                                    ("at <time-of-day>tomorrow", -4.747826486389615),-                                    ("intersectFebruary", -5.153291594497779),-                                    ("last <cycle> of <time>year", -4.237000862623624),-                                    ("Mondaythis <time>", -5.153291594497779),+                                     -5.147494476813453),+                                    ("dayweek", -4.048882188145344),+                                    ("weekyear", -4.231203744939298),+                                    ("hh:mmtomorrow", -4.454347296253507),+                                    ("Wednesdaythis <time>", -4.231203744939298),+                                    ("tomorrowat <time-of-day>", -3.894731508318085),+                                    ("at <time-of-day>tomorrow", -4.742029368705289),+                                    ("intersectFebruary", -5.147494476813453),+                                    ("last <cycle> of <time>year", -4.231203744939298),+                                    ("Mondaythis <time>", -5.147494476813453),                                     ("<day-of-month> (non ordinal) <named-month>year",-                                     -4.747826486389615),-                                    ("yearminute", -5.153291594497779)],-                               n = 133},+                                     -4.742029368705289),+                                    ("yearminute", -5.147494476813453)],+                               n = 132},                    koData =-                     ClassData{prior = -1.0286537000611993, unseen = -5.43372200355424,+                     ClassData{prior = -1.032550537990017, unseen = -5.424950017481403,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -3.126760535960395),-                                    ("daymonth", -2.133508762950112),-                                    ("monthday", -3.8199077165203406),-                                    ("monthyear", -3.8199077165203406),-                                    ("Marchyear", -4.04305126783455),+                                   [("dayhour", -3.1179499062782403),+                                    ("daymonth", -2.1624384612508036),+                                    ("monthday", -3.8110970868381857),+                                    ("monthyear", -3.8110970868381857),+                                    ("Marchyear", -4.034240638152395),                                     ("intersect by \"of\", \"from\", \"'s\"year",-                                     -3.4834354798991276),-                                    ("Sundaythis <time>", -3.8199077165203406),-                                    ("absorption of , after named dayJuly", -4.330733340286331),-                                    ("dd/mmat <time-of-day>", -3.8199077165203406),-                                    ("hourhour", -3.4834354798991276),+                                     -3.4746248502169728),+                                    ("Sundaythis <time>", -3.8110970868381857),+                                    ("absorption of , after named dayJuly", -4.321922710604176),+                                    ("dd/mmat <time-of-day>", -3.8110970868381857),+                                    ("hourhour", -3.4746248502169728),                                     ("Thursdaybetween <time-of-day> and <time-of-day> (interval)",-                                     -4.736198448394496),-                                    ("dayyear", -3.349904087274605),+                                     -4.727387818712341),+                                    ("dayyear", -3.34109345759245),                                     ("Thursdaybetween <datetime> and <datetime> (interval)",-                                     -4.736198448394496),-                                    ("Thursdayat <time-of-day>", -3.2321210516182215),-                                    ("Thursdayhh:mm", -4.330733340286331),-                                    ("WednesdayFebruary", -4.736198448394496),+                                     -4.727387818712341),+                                    ("Thursdayat <time-of-day>", -3.2233104219360666),+                                    ("Thursdayhh:mm", -4.321922710604176),+                                    ("WednesdayFebruary", -4.727387818712341),                                     ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -4.330733340286331),+                                     -4.321922710604176),                                     ("in|during the <part-of-day>until <time-of-day>",-                                     -4.330733340286331),+                                     -4.321922710604176),                                     ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.736198448394496),-                                    ("Aprilyear", -4.736198448394496),+                                     -4.727387818712341),+                                    ("Aprilyear", -4.727387818712341),                                     ("<named-month> <day-of-month> (non ordinal)August",-                                     -3.8199077165203406),-                                    ("until <time-of-day>on <date>", -4.736198448394496),+                                     -3.8110970868381857),+                                    ("until <time-of-day>on <date>", -4.727387818712341),                                     ("August<day-of-month> (non ordinal) <named-month>",-                                     -3.8199077165203406),-                                    ("dayminute", -3.0314503561560704),-                                    ("Tuesdaythis <time>", -3.8199077165203406),-                                    ("minuteday", -3.2321210516182215),-                                    ("hh:mmon <date>", -3.349904087274605),-                                    ("Wednesdaythis <time>", -3.4834354798991276),-                                    ("absorption of , after named dayFebruary", -4.04305126783455),-                                    ("this <part-of-day>until <time-of-day>", -4.330733340286331),-                                    ("tomorrownoon", -4.736198448394496),-                                    ("this <time>until <time-of-day>", -4.330733340286331),-                                    ("Mondaythis <time>", -4.330733340286331)],-                               n = 74}}),+                                     -3.8110970868381857),+                                    ("dayminute", -3.0226397264739155),+                                    ("Tuesdaythis <time>", -3.8110970868381857),+                                    ("minuteday", -3.2233104219360666),+                                    ("hh:mmon <date>", -3.34109345759245),+                                    ("Wednesdaythis <time>", -3.4746248502169728),+                                    ("absorption of , after named dayFebruary", -4.321922710604176),+                                    ("this <part-of-day>until <time-of-day>", -4.321922710604176),+                                    ("tomorrownoon", -4.727387818712341),+                                    ("this <time>until <time-of-day>", -4.321922710604176),+                                    ("Mondaythis <time>", -4.321922710604176)],+                               n = 73}}),        ("<ordinal> <cycle> of <time>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -2.890371757896165,@@ -548,8 +547,8 @@                                n = 23}}),        ("Monday",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                     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}}),@@ -852,8 +851,8 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("February",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                     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}}),@@ -1037,58 +1036,57 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("intersect by \",\"",         Classifier{okData =-                     ClassData{prior = -0.1590646946296874, unseen = -4.51085950651685,+                     ClassData{prior = -0.13353139262452263, unseen = -4.48863636973214,                                likelihoods =                                  HashMap.fromList                                    [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -3.8066624897703196),+                                     -3.784189633918261),                                     ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -3.8066624897703196),+                                     -3.784189633918261),                                     ("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),+                                     -3.378724525810097),+                                    ("at <time-of-day>Saturday", -3.784189633918261),+                                    ("intersect by \",\"year", -3.784189633918261),+                                    ("hh:mmintersect by \",\"", -3.784189633918261),+                                    ("dayday", -2.174751721484161), ("dayyear", -2.867898902044106),                                     ("Saturday<day-of-month> (non ordinal) <named-month>",-                                     -3.8066624897703196),+                                     -3.784189633918261),                                     ("<named-month> <day-of-month> (non ordinal)intersect",-                                     -3.8066624897703196),+                                     -3.784189633918261),                                     ("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),+                                     -3.378724525810097),+                                    ("Fridayintersect", -3.784189633918261),+                                    ("hh:mmintersect", -3.784189633918261),+                                    ("intersect by \",\"intersect", -3.784189633918261),+                                    ("hh:mmSaturday", -3.784189633918261),+                                    ("at <time-of-day>intersect", -3.784189633918261),                                     ("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),+                                     -3.784189633918261),+                                    ("dayminute", -2.6855773452501515),+                                    ("intersectyear", -3.784189633918261),+                                    ("minuteday", -2.0794415416798357),+                                    ("hh:mmabsorption of , after named day", -3.784189633918261),+                                    ("at <time-of-day>intersect by \",\"", -3.784189633918261),                                     ("at <time-of-day>absorption of , after named day",-                                     -3.8066624897703196),-                                    ("intersectintersect", -3.8066624897703196),-                                    ("Fridayintersect by \",\"", -3.4011973816621555),+                                     -3.784189633918261),+                                    ("intersectintersect", -3.784189633918261),+                                    ("Fridayintersect by \",\"", -3.378724525810097),                                     ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -3.4011973816621555),+                                     -3.784189633918261),                                     ("Monday<day-of-month> (non ordinal) <named-month>",-                                     -3.8066624897703196),+                                     -3.784189633918261),                                     ("<named-month> <day-of-month> (non ordinal)year",-                                     -3.4011973816621555)],-                               n = 29},+                                     -3.378724525810097)],+                               n = 28},                    koData =-                     ClassData{prior = -1.916922612182061, unseen = -3.7612001156935624,+                     ClassData{prior = -2.0794415416798357, unseen = -3.713572066704308,                                likelihoods =                                  HashMap.fromList-                                   [("daymonth", -1.9459101490553135),-                                    ("FridayJuly", -2.639057329615259),-                                    ("WednesdayFebruary", -3.044522437723423),-                                    ("MondayFebruary", -2.639057329615259)],-                               n = 5}}),+                                   [("daymonth", -2.0794415416798357),+                                    ("FridayJuly", -2.5902671654458267),+                                    ("WednesdayFebruary", -2.995732273553991),+                                    ("MondayFebruary", -2.995732273553991)],+                               n = 4}}),        ("hh:mm",         Classifier{okData =                      ClassData{prior = -1.7094433359300068e-2,@@ -1449,17 +1447,17 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<named-month> <day-of-month> (non ordinal)",         Classifier{okData =-                     ClassData{prior = -0.4418327522790392,-                               unseen = -3.1780538303479458,+                     ClassData{prior = -0.48550781578170077,+                               unseen = -3.0910424533583156,                                likelihoods =                                  HashMap.fromList-                                   [("Aprilinteger (numeric)", -2.4423470353692043),-                                    ("month", -0.832909122935104),-                                    ("Februaryinteger (numeric)", -1.3437347467010947),-                                    ("Julyinteger (numeric)", -1.749199854809259)],-                               n = 9},+                                   [("Aprilinteger (numeric)", -2.3513752571634776),+                                    ("month", -0.8472978603872037),+                                    ("Februaryinteger (numeric)", -1.4350845252893227),+                                    ("Julyinteger (numeric)", -1.6582280766035324)],+                               n = 8},                    koData =-                     ClassData{prior = -1.0296194171811581, unseen = -2.772588722239781,+                     ClassData{prior = -0.9555114450274363, unseen = -2.772588722239781,                                likelihoods =                                  HashMap.fromList                                    [("Augustinteger (numeric)", -1.0986122886681098),
Duckling/Ranking/Classifiers/DE_XX.hs view
@@ -86,86 +86,85 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = -0.11778303565638351,-                               unseen = -5.723585101952381,+                     ClassData{prior = -0.12044615307586722,+                               unseen = -5.700443573390687,                                likelihoods =                                  HashMap.fromList-                                   [("<time-of-day>  o'clockmorning", -4.621699487939302),-                                    ("until <time-of-day>afternoon", -5.0271645960474665),-                                    ("dayhour", -3.322416503809041),-                                    ("todayevening", -4.621699487939302),+                                   [("<time-of-day>  o'clockmorning", -4.598481197837295),+                                    ("until <time-of-day>afternoon", -5.003946305945459),+                                    ("dayhour", -3.299198213707034),+                                    ("todayevening", -4.598481197837295),                                     ("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),+                                     -5.003946305945459),+                                    ("<time-of-day>  o'clockafter lunch", -4.310799125385514),+                                    ("intersect by ','evening", -3.499868909169185),+                                    ("<time-of-day>  o'clockon <date>", -3.9053340172773496),+                                    ("intersectevening", -1.935893370811842),+                                    ("time-of-day (latent)on <date>", -4.310799125385514),+                                    ("about <time-of-day>on <date>", -4.598481197837295),                                     ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",-                                     -4.621699487939302),-                                    ("hourhour", -1.1985231995583712),+                                     -4.598481197837295),+                                    ("hourhour", -1.2084571167732645),                                     ("<time-of-day>  o'clockin|during the <part-of-day>",-                                     -3.9285523073793565),-                                    ("Donnerstagmorning", -5.0271645960474665),-                                    ("<time-of-day>  o'clockafternoon", -4.334017415487521),+                                     -3.9053340172773496),+                                    ("Donnerstagmorning", -5.003946305945459),+                                    ("<time-of-day>  o'clockafternoon", -4.310799125385514),                                     ("half <integer> (german style hour-of-day)after lunch",-                                     -5.0271645960474665),-                                    ("until <time-of-day>morning", -4.621699487939302),-                                    ("minutehour", -2.3881072664322076),+                                     -5.003946305945459),+                                    ("until <time-of-day>morning", -5.003946305945459),+                                    ("minutehour", -2.3648889763302003),                                     ("at <time-of-day>in|during the <part-of-day>",-                                     -4.110873864173311),+                                     -4.087655574071304),                                     ("<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),+                                     -5.003946305945459),+                                    ("tomorrowevening", -5.003946305945459),+                                    ("time-of-day (latent)morning", -5.003946305945459),+                                    ("hh:mmmorning", -5.003946305945459),                                     ("half <integer> (german style hour-of-day)in|during the <part-of-day>",-                                     -4.621699487939302),-                                    ("until <time-of-day>on <date>", -5.0271645960474665),+                                     -4.598481197837295),+                                    ("until <time-of-day>on <date>", -5.003946305945459),                                     ("<day-of-month>(ordinal) <named-month>morning",-                                     -5.0271645960474665),-                                    ("<time-of-day>  o'clockevening", -5.0271645960474665),-                                    ("hh:mmon <date>", -4.110873864173311),+                                     -5.003946305945459),+                                    ("<time-of-day>  o'clockevening", -5.003946305945459),+                                    ("hh:mmon <date>", -4.087655574071304),                                     ("<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),+                                     -5.003946305945459),+                                    ("tomorrowlunch", -4.598481197837295),+                                    ("until <time-of-day>after lunch", -5.003946305945459),+                                    ("Montagmorning", -5.003946305945459),+                                    ("at <time-of-day>on <date>", -4.087655574071304),+                                    ("yesterdayevening", -5.003946305945459),+                                    ("intersectmorning", -5.003946305945459),+                                    ("hh:mmin|during the <part-of-day>", -4.087655574071304),                                     ("time-of-day (latent)in|during the <part-of-day>",-                                     -4.334017415487521),+                                     -4.310799125385514),                                     ("<hour-of-day> <integer> (as relative minutes)on <date>",-                                     -4.621699487939302),+                                     -4.598481197837295),                                     ("about <time-of-day>in|during the <part-of-day>",-                                     -4.621699487939302),+                                     -4.598481197837295),                                     ("half <integer> (german style hour-of-day)on <date>",-                                     -4.621699487939302),-                                    ("at <time-of-day>morning", -5.0271645960474665),+                                     -4.598481197837295),+                                    ("at <time-of-day>morning", -5.003946305945459),                                     ("until <time-of-day>in|during the <part-of-day>",-                                     -5.0271645960474665)],-                               n = 128},+                                     -5.003946305945459)],+                               n = 125},                    koData =-                     ClassData{prior = -2.1972245773362196, unseen = -4.406719247264253,+                     ClassData{prior = -2.176171168138387, unseen = -4.394449154672439,                                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),+                                   [("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),+                                    ("Februarmorning", -3.6888794541139363),+                                    ("<time-of-day>  o'clockafternoon", -3.6888794541139363),                                     ("year (latent)in|during the <part-of-day>",-                                     -3.7013019741124937),+                                     -3.6888794541139363),                                     ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.7850112422383386)],+                                     -2.772588722239781)],                                n = 16}}),        ("today",         Classifier{okData =@@ -184,31 +183,30 @@                                likelihoods = HashMap.fromList [("", 0.0)], n = 12}}),        ("at <time-of-day>",         Classifier{okData =-                     ClassData{prior = -0.2113090936672069, unseen = -4.382026634673881,+                     ClassData{prior = -0.137201121513485, unseen = -4.3694478524670215,                                likelihoods =                                  HashMap.fromList-                                   [("<time-of-day>  o'clock", -2.0668627594729756),+                                   [("<time-of-day>  o'clock", -2.0541237336955462),                                     ("half <integer> (german style hour-of-day)",-                                     -3.676300671907076),-                                    ("about <time-of-day>", -2.760009940032921),-                                    ("time-of-day (latent)", -1.7303905228517629),+                                     -3.6635616461296463),+                                    ("about <time-of-day>", -2.7472709142554916),+                                    ("time-of-day (latent)", -1.717651497074333),                                     ("relative minutes after|past <integer> (hour-of-day)",-                                     -3.676300671907076),-                                    ("hh:mm", -2.760009940032921),+                                     -3.6635616461296463),+                                    ("hh:mm", -2.7472709142554916),                                     ("quarter after|past <integer> (hour-of-day)",-                                     -3.676300671907076),-                                    ("hour", -1.0736109864626924), ("minute", -2.172223275130802),+                                     -3.6635616461296463),+                                    ("hour", -1.0608719606852628), ("minute", -2.159484249353372),                                     ("<hour-of-day> <integer> (as relative minutes)",-                                     -3.676300671907076)],+                                     -3.6635616461296463)],                                n = 34},                    koData =-                     ClassData{prior = -1.6582280766035324, unseen = -3.332204510175204,+                     ClassData{prior = -2.0541237336955462, unseen = -3.044522437723423,                                likelihoods =                                  HashMap.fromList-                                   [("time-of-day (latent)", -1.5040773967762742),-                                    ("<time-of-day> am|pm", -1.9095425048844386),-                                    ("hour", -1.349926716949016), ("minute", -2.1972245773362196)],-                               n = 8}}),+                                   [("time-of-day (latent)", -1.2039728043259361),+                                    ("hour", -1.2039728043259361)],+                               n = 5}}),        ("Neujahr",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -405,287 +403,263 @@                                n = 1}}),        ("intersect",         Classifier{okData =-                     ClassData{prior = -0.26452876747706405,-                               unseen = -6.926577033222725,+                     ClassData{prior = -0.1745489670397881, unseen = -6.88653164253051,                                likelihoods =                                  HashMap.fromList-                                   [("Samstag<time-of-day>  o'clock", -6.2324480165505225),-                                    ("hourday", -4.979685048055154),-                                    ("<datetime> - <datetime> (interval)year", -4.979685048055154),-                                    ("dayhour", -2.568886370420876),-                                    ("daymonth", -3.1879255788270995),+                                   [("Samstag<time-of-day>  o'clock", -6.192362489474872),+                                    ("hourday", -4.939599520979504),+                                    ("<datetime> - <datetime> (interval)year", -4.939599520979504),+                                    ("dayhour", -2.5288008433452256),+                                    ("daymonth", -3.147840051751449),                                     ("<day-of-month>(ordinal) <named-month> year<time-of-day>  o'clock",-                                     -6.2324480165505225),-                                    ("monthyear", -4.527699924312097),-                                    ("yearhour", -6.2324480165505225),-                                    ("Juliintersect", -6.2324480165505225),-                                    ("intersect<time-of-day>  o'clock", -4.092381853054252),-                                    ("after lunchat <time-of-day>", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("monthyear", -4.487614397236447),+                                    ("yearhour", -6.192362489474872),+                                    ("Juliintersect", -6.192362489474872),+                                    ("intersect<time-of-day>  o'clock", -4.052296325978602),+                                    ("after lunchat <time-of-day>", -6.192362489474872),                                     ("absorption of , after named daymm/dd/yyyy",-                                     -6.2324480165505225),-                                    ("intersectJuli", -5.539300835990577),-                                    ("<day-of-month> (ordinal)Dienstag", -6.2324480165505225),-                                    ("intersect by 'of', 'from', 'syear", -5.826982908442359),-                                    ("<time-of-day> am|pmintersect", -5.133835727882413),-                                    ("<day-of-month> (ordinal)September", -5.826982908442359),-                                    ("intersect<time> <part-of-day>", -4.153006474870687),-                                    ("<time-of-day>  o'clockafter lunch", -5.539300835990577),-                                    ("<day-of-month> (ordinal)Mittwoch", -6.2324480165505225),-                                    ("Montagthis <cycle>", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("intersectJuli", -5.499215308914927),+                                    ("<day-of-month> (ordinal)Dienstag", -6.192362489474872),+                                    ("intersect by 'of', 'from', 'syear", -5.786897381366708),+                                    ("<day-of-month> (ordinal)September", -5.786897381366708),+                                    ("intersect<time> <part-of-day>", -4.112920947795036),+                                    ("<time-of-day>  o'clockafter lunch", -5.499215308914927),+                                    ("<day-of-month> (ordinal)Mittwoch", -6.192362489474872),+                                    ("Montagthis <cycle>", -6.192362489474872),                                     ("<time> <part-of-day><time-of-day>  o'clock",-                                     -6.2324480165505225),-                                    ("Oktoberyear", -5.133835727882413),-                                    ("today<time-of-day>  o'clock", -6.2324480165505225),-                                    ("<time-of-day>  o'clockon <date>", -5.826982908442359),-                                    ("<time-of-day> am|pmintersect by ','", -5.539300835990577),-                                    ("intersect by ','year", -5.133835727882413),-                                    ("on <date><time-of-day>  o'clock", -6.2324480165505225),-                                    ("exactly <time-of-day>tomorrow", -5.826982908442359),-                                    ("mm/dd<time-of-day>  o'clock", -6.2324480165505225),-                                    ("monthhour", -5.826982908442359),+                                     -6.192362489474872),+                                    ("Oktoberyear", -5.093750200806762),+                                    ("today<time-of-day>  o'clock", -6.192362489474872),+                                    ("<time-of-day>  o'clockon <date>", -5.786897381366708),+                                    ("intersect by ','year", -5.093750200806762),+                                    ("on <date><time-of-day>  o'clock", -6.192362489474872),+                                    ("exactly <time-of-day>tomorrow", -5.786897381366708),+                                    ("mm/dd<time-of-day>  o'clock", -6.192362489474872),+                                    ("monthhour", -5.786897381366708),                                     ("on <date>between <datetime> and <datetime> (interval)",-                                     -6.2324480165505225),-                                    ("last <day-of-week> of <time>year", -6.2324480165505225),-                                    ("hourmonth", -5.826982908442359),-                                    ("todayat <time-of-day>", -5.539300835990577),-                                    ("mm/ddabout <time-of-day>", -5.826982908442359),+                                     -6.192362489474872),+                                    ("last <day-of-week> of <time>year", -6.192362489474872),+                                    ("hourmonth", -5.786897381366708),+                                    ("todayat <time-of-day>", -5.499215308914927),+                                    ("mm/ddabout <time-of-day>", -5.786897381366708),                                     ("Donnerstagfrom <datetime> - <datetime> (interval)",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("on <date>between <time-of-day> and <time-of-day> (interval)",-                                     -6.2324480165505225),-                                    ("on <date>at <time-of-day>", -5.826982908442359),-                                    ("dayday", -3.054394186202577),-                                    ("<time> <part-of-day>at <time-of-day>", -5.826982908442359),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -6.2324480165505225),-                                    ("about <time-of-day>on <date>", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("on <date>at <time-of-day>", -5.786897381366708),+                                    ("dayday", -3.0143086591269266),+                                    ("<time> <part-of-day>at <time-of-day>", -5.786897381366708),+                                    ("about <time-of-day>on <date>", -6.192362489474872),                                     ("<hour-of-day> <integer> (as relative minutes)in|during the <part-of-day>",-                                     -5.826982908442359),-                                    ("<day-of-month> (ordinal)intersect", -5.133835727882413),-                                    ("hourhour", -3.7067193722422673),-                                    ("hh:mmintersect by ','", -4.979685048055154),+                                     -5.786897381366708),+                                    ("<day-of-month> (ordinal)intersect", -5.093750200806762),+                                    ("hourhour", -3.6666338451666167),+                                    ("hh:mmintersect by ','", -4.939599520979504),                                     ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.539300835990577),-                                    ("Dienstagthis <cycle>", -6.2324480165505225),-                                    ("<part-of-day> of <time>Februar", -5.826982908442359),-                                    ("dayyear", -3.3146772844662435),-                                    ("Mittwochthis <cycle>", -6.2324480165505225),+                                     -5.499215308914927),+                                    ("Dienstagthis <cycle>", -6.192362489474872),+                                    ("<part-of-day> of <time>Februar", -5.786897381366708),+                                    ("dayyear", -3.274591757390593),+                                    ("Mittwochthis <cycle>", -6.192362489474872),                                     ("<time-of-day>  o'clockin|during the <part-of-day>",-                                     -5.133835727882413),-                                    ("tomorrow<time-of-day>  o'clock", -6.2324480165505225),-                                    ("<time-of-day>  o'clocktomorrow", -5.539300835990577),+                                     -5.093750200806762),+                                    ("tomorrow<time-of-day>  o'clock", -6.192362489474872),+                                    ("<time-of-day>  o'clocktomorrow", -5.499215308914927),                                     ("<day-of-month>(ordinal) <named-month>year",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("half <integer> (german style hour-of-day)after lunch",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("absorption of , after named day<day-of-month>(ordinal) <named-month>",-                                     -4.979685048055154),-                                    ("hourminute", -5.539300835990577),-                                    ("the <day-of-month> (ordinal)Juli", -6.2324480165505225),+                                     -4.939599520979504),+                                    ("hourminute", -5.499215308914927),+                                    ("the <day-of-month> (ordinal)Juli", -6.192362489474872),                                     ("on <date><day-of-month>(ordinal) <named-month>",-                                     -5.826982908442359),-                                    ("minutemonth", -3.558299367123994),-                                    ("minutehour", -3.9811562179440276),+                                     -5.786897381366708),+                                    ("minutemonth", -3.6666338451666167),+                                    ("minutehour", -3.941070690868377),                                     ("at <time-of-day>in|during the <part-of-day>",-                                     -5.316157284676367),+                                     -5.276071757600717),                                     ("absorption of , after named day<day-of-month>(ordinal) <named-month> year",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -5.133835727882413),+                                     -5.093750200806762),                                     ("<day-of-month>(ordinal) <named-month> year<time> <part-of-day>",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("<hour-of-day> <integer> (as relative minutes)after lunch",-                                     -6.2324480165505225),-                                    ("Donnerstag<time> timezone", -5.826982908442359),-                                    ("Samstagat <time-of-day>", -5.826982908442359),-                                    ("<time-of-day> am|pmSamstag", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("Donnerstag<time> timezone", -5.786897381366708),+                                    ("Samstagat <time-of-day>", -5.786897381366708),                                     ("intersect<day-of-month>(ordinal) <named-month>",-                                     -4.846153655430633),+                                     -4.939599520979504),                                     ("this <part-of-day><time-of-day>  o'clock",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("<day-of-month>(ordinal) <named-month>intersect",-                                     -6.2324480165505225),-                                    ("hh:mmintersect", -3.790100981181318),-                                    ("Donnerstaghh:mm", -6.2324480165505225),-                                    ("Weihnachtenyear", -6.2324480165505225),-                                    ("<day-of-month> (ordinal)Juli", -5.539300835990577),-                                    ("intersect by ','intersect", -4.979685048055154),-                                    ("intersect by 'of', 'from', 'sJuli", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("hh:mmintersect", -3.7500154541056676),+                                    ("Donnerstaghh:mm", -6.192362489474872),+                                    ("Weihnachtenyear", -6.192362489474872),+                                    ("<day-of-month> (ordinal)Juli", -5.499215308914927),+                                    ("intersect by ','intersect", -4.939599520979504),+                                    ("intersect by 'of', 'from', 'sJuli", -6.192362489474872),                                     ("half <integer> (german style hour-of-day)in|during the <part-of-day>",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("from <datetime> - <datetime> (interval)year",-                                     -5.539300835990577),-                                    ("at <time-of-day>intersect", -4.440688547322468),+                                     -5.499215308914927),+                                    ("at <time-of-day>intersect", -4.400603020246817),                                     ("on <date>from <time-of-day> - <time-of-day> (interval)",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("absorption of , after named day<day-of-month> (ordinal)",-                                     -4.979685048055154),+                                     -4.939599520979504),                                     ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",-                                     -6.2324480165505225),-                                    ("dayminute", -3.9811562179440276),+                                     -6.192362489474872),+                                    ("dayminute", -3.941070690868377),                                     ("on <date>from <datetime> - <datetime> (interval)",-                                     -6.2324480165505225),-                                    ("Mittwochnext <cycle>", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("Mittwochnext <cycle>", -6.192362489474872),                                     ("Donnerstagbetween <datetime> and <datetime> (interval)",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("<time> <part-of-day>from <datetime> - <datetime> (interval)",-                                     -6.2324480165505225),-                                    ("intersectyear", -4.440688547322468),-                                    ("on <date>intersect", -5.826982908442359),-                                    ("on <date><day-of-month> (ordinal)", -5.826982908442359),-                                    ("intersectSeptember", -3.4916079926253216),-                                    ("<ordinal> <cycle> of <time>year", -6.2324480165505225),-                                    ("minuteday", -2.252766362648562),+                                     -6.192362489474872),+                                    ("intersectyear", -4.400603020246817),+                                    ("on <date>intersect", -5.786897381366708),+                                    ("on <date><day-of-month> (ordinal)", -5.786897381366708),+                                    ("intersectSeptember", -3.5533051598596135),+                                    ("<ordinal> <cycle> of <time>year", -6.192362489474872),+                                    ("minuteday", -2.3422148877648135),                                     ("absorption of , after named dayintersect",-                                     -3.8345527437521523),-                                    ("intersect by ','September", -4.728370619774249),-                                    ("year<time-of-day>  o'clock", -6.2324480165505225),-                                    ("Juliyear", -5.826982908442359),-                                    ("at <time-of-day>intersect by ','", -5.539300835990577),-                                    ("hh:mmabsorption of , after named day", -5.826982908442359),-                                    ("intersect by ','<time> <part-of-day>", -5.316157284676367),-                                    ("hh:mmon <date>", -3.790100981181318),+                                     -3.7944672166765017),+                                    ("intersect by ','September", -4.8060681283549815),+                                    ("year<time-of-day>  o'clock", -6.192362489474872),+                                    ("Juliyear", -5.786897381366708),+                                    ("at <time-of-day>intersect by ','", -5.499215308914927),+                                    ("hh:mmabsorption of , after named day", -5.786897381366708),+                                    ("intersect by ','<time> <part-of-day>", -5.276071757600717),+                                    ("hh:mmon <date>", -3.7500154541056676),                                     ("at <time-of-day>absorption of , after named day",-                                     -6.2324480165505225),-                                    ("until <time-of-day>after lunch", -6.2324480165505225),-                                    ("mm/ddyear", -5.826982908442359),-                                    ("intersect by ','<time-of-day>  o'clock", -5.316157284676367),-                                    ("intersect<day-of-month> (ordinal)", -4.846153655430633),-                                    ("absorption of , after named daymm/dd", -6.2324480165505225),-                                    ("on <date>September", -5.316157284676367),-                                    ("Septemberyear", -5.826982908442359),+                                     -6.192362489474872),+                                    ("until <time-of-day>after lunch", -6.192362489474872),+                                    ("mm/ddyear", -5.786897381366708),+                                    ("intersect by ','<time-of-day>  o'clock", -5.276071757600717),+                                    ("intersect<day-of-month> (ordinal)", -4.939599520979504),+                                    ("absorption of , after named daymm/dd", -6.192362489474872),+                                    ("on <date>September", -5.276071757600717),+                                    ("Septemberyear", -5.786897381366708),                                     ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",-                                     -5.539300835990577),-                                    ("at <time-of-day>on <date>", -4.360645839648932),-                                    ("intersectintersect", -4.092381853054252),-                                    ("<day-of-month> (ordinal)Februar", -5.133835727882413),-                                    ("dayweek", -5.133835727882413),-                                    ("intersect by ','Juli", -5.539300835990577),+                                     -5.499215308914927),+                                    ("at <time-of-day>on <date>", -4.3205603125732805),+                                    ("intersectintersect", -4.112920947795036),+                                    ("<day-of-month> (ordinal)Februar", -5.093750200806762),+                                    ("dayweek", -5.093750200806762),+                                    ("intersect by ','Juli", -5.499215308914927),                                     ("absorption of , after named daythe <day-of-month> (ordinal)",-                                     -6.2324480165505225),-                                    ("weekyear", -5.826982908442359),-                                    ("hh:mmin|during the <part-of-day>", -5.316157284676367),-                                    ("Marzyear", -6.2324480165505225),-                                    ("tomorrowat <time-of-day>", -5.826982908442359),+                                     -6.192362489474872),+                                    ("weekyear", -5.786897381366708),+                                    ("hh:mmin|during the <part-of-day>", -5.276071757600717),+                                    ("Marzyear", -6.192362489474872),+                                    ("tomorrowat <time-of-day>", -5.786897381366708),                                     ("<hour-of-day> <integer> (as relative minutes)on <date>",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("Donnerstag<time-of-day> - <time-of-day> (interval)",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("Donnerstag<datetime> - <datetime> (interval)",-                                     -6.2324480165505225),-                                    ("Sonntaglast <cycle>", -6.2324480165505225),-                                    ("at <time-of-day>tomorrow", -6.2324480165505225),+                                     -6.192362489474872),+                                    ("Sonntaglast <cycle>", -6.192362489474872),+                                    ("at <time-of-day>tomorrow", -6.192362489474872),                                     ("about <time-of-day>in|during the <part-of-day>",-                                     -5.826982908442359),+                                     -5.786897381366708),                                     ("half <integer> (german style hour-of-day)on <date>",-                                     -6.2324480165505225),-                                    ("this <part-of-day>at <time-of-day>", -5.826982908442359),-                                    ("<datetime> - <datetime> (interval)Juli", -5.826982908442359),+                                     -6.192362489474872),+                                    ("this <part-of-day>at <time-of-day>", -5.786897381366708),+                                    ("<datetime> - <datetime> (interval)Juli", -5.786897381366708),                                     ("after lunch<hour-of-day> <integer> (as relative minutes)",-                                     -5.826982908442359),-                                    ("<day-of-month> (ordinal)Marz", -6.2324480165505225),-                                    ("last <cycle> of <time>year", -5.826982908442359),+                                     -5.786897381366708),+                                    ("<day-of-month> (ordinal)Marz", -6.192362489474872),+                                    ("last <cycle> of <time>year", -5.786897381366708),                                     ("<named-month> <day-of-month> (non ordinal)year",-                                     -6.2324480165505225),+                                     -6.192362489474872),                                     ("<day-of-month> (non ordinal) <named-month>year",-                                     -6.2324480165505225)],-                               n = 426},+                                     -6.192362489474872)],+                               n = 409},                    koData =-                     ClassData{prior = -1.4591557093847622, unseen = -6.052089168924417,+                     ClassData{prior = -1.8315552963929982, unseen = -5.75890177387728,                                likelihoods =                                  HashMap.fromList                                    [("Juli<day-of-month> (non ordinal) <named-month>",-                                     -5.356586274672012),+                                     -5.062595033026967),                                     ("absorption of , after named daythe <day-of-month> (non ordinal)",-                                     -5.356586274672012),-                                    ("<datetime> - <datetime> (interval)year", -5.356586274672012),-                                    ("dayhour", -4.663439094112067),+                                     -5.062595033026967),+                                    ("<datetime> - <datetime> (interval)year", -5.062595033026967),+                                    ("dayhour", -4.3694478524670215),                                     ("<named-month> <day-of-month> (non ordinal)Juli",-                                     -5.356586274672012),-                                    ("daymonth", -3.484784097770421),-                                    ("monthday", -4.951121166563848),-                                    ("monthyear", -5.356586274672012),-                                    ("yearhour", -5.356586274672012),-                                    ("after lunchat <time-of-day>", -4.951121166563848),-                                    ("mm/dduntil <time-of-day>", -4.951121166563848),-                                    ("until <time-of-day>year", -4.951121166563848),-                                    ("<day-of-month> (ordinal)Dienstag", -4.951121166563848),-                                    ("absorption of , after named dayFebruar", -4.257973986003902),-                                    ("on <date>Februar", -5.356586274672012),-                                    ("intersect by 'of', 'from', 'syear", -4.663439094112067),-                                    ("<time-of-day> am|pmintersect", -3.651838182433587),-                                    ("intersect<time> <part-of-day>", -5.356586274672012),-                                    ("<time-of-day>  o'clockafter lunch", -5.356586274672012),-                                    ("<day-of-month> (ordinal)Mittwoch", -5.356586274672012),-                                    ("after lunch<time-of-day>  o'clock", -5.356586274672012),-                                    ("absorption of , after named dayhh:mm", -5.356586274672012),-                                    ("<time-of-day> am|pmintersect by ','", -4.103823306176644),+                                     -5.062595033026967),+                                    ("daymonth", -3.1907928561253756),+                                    ("monthday", -4.657129924918802),+                                    ("monthyear", -5.062595033026967),+                                    ("yearhour", -5.062595033026967),+                                    ("after lunchat <time-of-day>", -4.657129924918802),+                                    ("mm/dduntil <time-of-day>", -4.657129924918802),+                                    ("until <time-of-day>year", -4.657129924918802),+                                    ("<day-of-month> (ordinal)Dienstag", -4.657129924918802),+                                    ("absorption of , after named dayFebruar", -3.963982744358857),+                                    ("on <date>Februar", -5.062595033026967),+                                    ("intersect by 'of', 'from', 'syear", -4.3694478524670215),+                                    ("intersect<time> <part-of-day>", -5.062595033026967),+                                    ("<time-of-day>  o'clockafter lunch", -5.062595033026967),+                                    ("<day-of-month> (ordinal)Mittwoch", -5.062595033026967),+                                    ("after lunch<time-of-day>  o'clock", -5.062595033026967),+                                    ("absorption of , after named dayhh:mm", -5.062595033026967),                                     ("<time-of-day>  o'clock<time> <part-of-day>",-                                     -4.440295542797857),-                                    ("<time-of-day> am|pmFreitag", -4.951121166563848),-                                    ("mm/ddhh:mm", -4.440295542797857),-                                    ("monthhour", -5.356586274672012),+                                     -4.146304301152812),+                                    ("mm/ddhh:mm", -4.146304301152812),+                                    ("monthhour", -5.062595033026967),                                     ("on <date>between <datetime> and <datetime> (interval)",-                                     -5.356586274672012),-                                    ("todayat <time-of-day>", -5.356586274672012),+                                     -5.062595033026967),+                                    ("todayat <time-of-day>", -5.062595033026967),                                     ("Donnerstagfrom <datetime> - <datetime> (interval)",-                                     -4.951121166563848),+                                     -4.657129924918802),                                     ("on <date>between <time-of-day> and <time-of-day> (interval)",-                                     -5.356586274672012),-                                    ("dayday", -3.970291913552122),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -4.951121166563848),-                                    ("hourhour", -3.8525088778957386),+                                     -5.062595033026967),+                                    ("dayday", -3.676300671907076),+                                    ("hourhour", -3.5585176362506927),                                     ("Donnerstagfrom <time-of-day> - <time-of-day> (interval)",-                                     -4.663439094112067),-                                    ("Donnerstagafter <time-of-day>", -5.356586274672012),-                                    ("dayyear", -3.2771447329921766),-                                    ("minutemonth", -3.484784097770421),-                                    ("Aprilyear", -5.356586274672012),-                                    ("Dienstagafter <time-of-day>", -5.356586274672012),-                                    ("intersect<day-of-month>(ordinal) <named-month>",-                                     -4.663439094112067),-                                    ("Donnerstaghh:mm", -4.951121166563848),-                                    ("<day-of-month> (ordinal)Juli", -4.951121166563848),-                                    ("<day-of-month> (ordinal)hh:mm", -4.440295542797857),+                                     -4.3694478524670215),+                                    ("Donnerstagafter <time-of-day>", -5.062595033026967),+                                    ("dayyear", -2.9831534913471307),+                                    ("Aprilyear", -5.062595033026967),+                                    ("Dienstagafter <time-of-day>", -5.062595033026967),+                                    ("Donnerstaghh:mm", -4.657129924918802),+                                    ("<day-of-month> (ordinal)Juli", -4.657129924918802),+                                    ("<day-of-month> (ordinal)hh:mm", -4.146304301152812),                                     ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.356586274672012),+                                     -5.062595033026967),                                     ("August<day-of-month> (non ordinal) <named-month>",-                                     -5.356586274672012),-                                    ("at <time-of-day>intersect", -4.257973986003902),+                                     -5.062595033026967),                                     ("on <date>from <time-of-day> - <time-of-day> (interval)",-                                     -4.951121166563848),+                                     -4.657129924918802),                                     ("Donnerstagbetween <time-of-day> and <time-of-day> (interval)",-                                     -5.356586274672012),-                                    ("dayminute", -2.6824376252454836),+                                     -5.062595033026967),+                                    ("dayminute", -2.388446383600438),                                     ("on <date>from <datetime> - <datetime> (interval)",-                                     -5.356586274672012),+                                     -5.062595033026967),                                     ("Donnerstagbetween <datetime> and <datetime> (interval)",-                                     -5.356586274672012),-                                    ("until <time-of-day>Juli", -5.356586274672012),-                                    ("intersectSeptember", -3.747148362237912),-                                    ("minuteday", -2.3608540011180215),-                                    ("intersect by ','September", -4.663439094112067),-                                    ("at <time-of-day>intersect by ','", -4.663439094112067),-                                    ("at <time-of-day>Freitag", -5.356586274672012),-                                    ("at <time-of-day>absorption of , after named day",-                                     -5.356586274672012),-                                    ("year<time> <part-of-day>", -5.356586274672012),-                                    ("mm/ddyear", -3.8525088778957386),-                                    ("intersect<day-of-month> (ordinal)", -4.663439094112067),+                                     -5.062595033026967),+                                    ("until <time-of-day>Juli", -5.062595033026967),+                                    ("year<time> <part-of-day>", -5.062595033026967),+                                    ("mm/ddyear", -3.5585176362506927),                                     ("<day-of-month> (ordinal)intersect by 'of', 'from', 's",-                                     -4.951121166563848),-                                    ("intersectintersect", -4.663439094112067),-                                    ("Donnerstag<part-of-day> of <time>", -5.356586274672012),-                                    ("<day-of-month> (ordinal)April", -5.356586274672012),+                                     -4.657129924918802),+                                    ("Donnerstag<part-of-day> of <time>", -5.062595033026967),+                                    ("<day-of-month> (ordinal)April", -5.062595033026967),                                     ("Donnerstag<time-of-day> - <time-of-day> (interval)",-                                     -5.356586274672012),-                                    ("after <time-of-day>year", -5.356586274672012),-                                    ("on <date>after <time-of-day>", -5.356586274672012),-                                    ("tomorrownoon", -5.356586274672012)],-                               n = 129}}),+                                     -5.062595033026967),+                                    ("after <time-of-day>year", -5.062595033026967),+                                    ("on <date>after <time-of-day>", -5.062595033026967),+                                    ("tomorrownoon", -5.062595033026967)],+                               n = 78}}),        ("<ordinal> <cycle> of <time>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -2.4849066497880004,@@ -1115,26 +1089,24 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("about <time-of-day>",         Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.4965075614664802,+                     ClassData{prior = -6.899287148695143e-2,+                               unseen = -3.4657359027997265,                                likelihoods =                                  HashMap.fromList-                                   [("<time-of-day>  o'clock", -1.3862943611198906),-                                    ("time-of-day (latent)", -1.3862943611198906),-                                    ("hour", -0.7576857016975165)],+                                   [("<time-of-day>  o'clock", -1.3545456628053103),+                                    ("time-of-day (latent)", -1.3545456628053103),+                                    ("hour", -0.7259370033829361)],                                n = 14},                    koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.1972245773362196,+                     ClassData{prior = -2.70805020110221, unseen = -1.791759469228055,                                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)", -0.916290731874155),+                                    ("hour", -0.916290731874155)],+                               n = 1}}),        ("time-of-day (latent)",         Classifier{okData =-                     ClassData{prior = -0.39890770756200533,+                     ClassData{prior = -0.3856624808119846,                                unseen = -3.9889840465642745,                                likelihoods =                                  HashMap.fromList@@ -1142,12 +1114,12 @@                                     ("integer (0..19)", -2.3608540011180215)],                                n = 51},                    koData =-                     ClassData{prior = -1.1118575154181303, unseen = -3.332204510175204,+                     ClassData{prior = -1.1394342831883648, unseen = -3.295836866004329,                                likelihoods =                                  HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.1972245773362196)],-                               n = 25}}),+                                   [("integer (numeric)", -0.12260232209233239),+                                    ("integer (0..19)", -2.159484249353372)],+                               n = 24}}),        ("year",         Classifier{okData =                      ClassData{prior = -8.338160893905101e-2,@@ -1234,32 +1206,6 @@                    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,@@ -1358,62 +1304,58 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("intersect by ','",         Classifier{okData =-                     ClassData{prior = -0.2531958963806117,-                               unseen = -5.0106352940962555,+                     ClassData{prior = -0.13353139262452263,+                               unseen = -4.969813299576001,                                likelihoods =                                  HashMap.fromList                                    [("Freitag<day-of-month>(ordinal) <named-month> year",-                                     -3.9053340172773496),-                                    ("dayhour", -2.8067217286092396),-                                    ("Freitagintersect", -2.0082140323914683),+                                     -3.8642323415917974),+                                    ("dayhour", -2.765620052923688),+                                    ("Freitagintersect", -1.967112356705916),                                     ("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),+                                     -4.269697449699962),+                                    ("Freitagmm/dd/yyyy", -3.8642323415917974),+                                    ("Freitagmm/dd", -3.8642323415917974),+                                    ("dayday", -1.2992829841302609),+                                    ("Samstagintersect", -4.269697449699962),+                                    ("dayyear", -4.269697449699962),                                     ("Freitag<day-of-month>(ordinal) <named-month>",-                                     -3.6176519448255684),-                                    ("Freitagthe <day-of-month> (ordinal)", -4.310799125385514),+                                     -3.5765502691400166),+                                    ("Freitagthe <day-of-month> (ordinal)", -4.269697449699962),                                     ("on <date><day-of-month>(ordinal) <named-month>",-                                     -3.9053340172773496),+                                     -3.8642323415917974),                                     ("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),+                                     -3.5765502691400166),+                                    ("Freitag<day-of-month> (ordinal)", -3.5765502691400166),+                                    ("on <date>intersect", -3.8642323415917974),+                                    ("on <date><day-of-month> (ordinal)", -3.8642323415917974),+                                    ("minuteday", -2.6602595372658615),                                     ("Montag<named-month> <day-of-month> (non ordinal)",-                                     -3.6176519448255684),+                                     -3.5765502691400166),                                     ("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),+                                     -4.269697449699962),+                                    ("intersect<day-of-month> (ordinal)", -3.5765502691400166),+                                    ("intersectintersect", -3.5765502691400166),+                                    ("Samstag<day-of-month> (ordinal)", -4.269697449699962),                                     ("Mittwoch<named-month> <day-of-month> (non ordinal)",-                                     -4.310799125385514),+                                     -4.269697449699962),                                     ("<named-month> <day-of-month> (non ordinal)year",-                                     -4.310799125385514)],-                               n = 59},+                                     -4.269697449699962)],+                               n = 56},                    koData =-                     ClassData{prior = -1.497519996230115, unseen = -4.189654742026425,+                     ClassData{prior = -2.0794415416798357, unseen = -3.871201010907891,                                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}}),+                                   [("daymonth", -2.0583881324820035),+                                    ("dayday", -3.1570004211501135),+                                    ("SonntagFebruar", -3.1570004211501135),+                                    ("MontagFebruar", -2.463853240590168),+                                    ("Freitagthe <day-of-month> (non ordinal)",+                                     -3.1570004211501135),+                                    ("dayminute", -2.751535313041949),+                                    ("MittwochFebruar", -3.1570004211501135),+                                    ("Freitaghh:mm", -2.751535313041949)],+                               n = 8}}),        ("second (grain)",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.9459101490553135,@@ -1547,31 +1489,31 @@                                likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),        ("until <time-of-day>",         Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -4.0943445622221,+                     ClassData{prior = -0.5520685823000397, unseen = -4.007333185232471,                                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},+                                   [("<time> <part-of-day>", -2.1972245773362196),+                                    ("<time-of-day>  o'clock", -2.1972245773362196),+                                    ("intersect", -3.295836866004329),+                                    ("time-of-day (latent)", -2.043073897508961),+                                    ("EOM|End of month", -3.295836866004329),+                                    ("hour", -1.0445450673978338), ("month", -3.295836866004329),+                                    ("midnight|EOD|end of day", -3.295836866004329)],+                               n = 19},                    koData =-                     ClassData{prior = -0.916290731874155, unseen = -3.828641396489095,+                     ClassData{prior = -0.8574502318512216,+                               unseen = -3.8066624897703196,                                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),+                                   [("mm/dd", -2.6855773452501515),+                                    ("intersect", -2.3978952727983707),+                                    ("mm/dd/yyyy", -2.6855773452501515),+                                    ("<day-of-month>(ordinal) <named-month>", -3.0910424533583156),+                                    ("day", -1.3862943611198906), ("hh:mm", -2.174751721484161),+                                    ("<day-of-month> (ordinal)", -3.0910424533583156),                                     ("<day-of-month> (non ordinal) <named-month>",-                                     -3.1135153092103742),-                                    ("minute", -2.1972245773362196)],+                                     -3.0910424533583156),+                                    ("minute", -2.174751721484161)],                                n = 14}}),        ("<integer> and an half hours",         Classifier{okData =
Duckling/Ranking/Classifiers/EN_CA.hs view
@@ -60,2989 +60,3206 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("Thursday",         Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.6142532380902823, unseen = -5.676753802268282,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 290},-                   koData =-                     ClassData{prior = -0.7788026251384392,-                               unseen = -5.5134287461649825,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 246}}),-       ("<duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),-                                    ("year", -2.662587827025453),-                                    ("<integer> <unit-of-duration>", -1.0531499145913523),-                                    ("a <unit-of-duration>", -2.662587827025453),-                                    ("month", -2.662587827025453),-                                    ("fortnight", -2.662587827025453)],-                               n = 18},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("year", -1.5040773967762742),-                                    ("<integer> <unit-of-duration>", -1.5040773967762742)],-                               n = 1}}),-       ("noon|midnight|EOD|end of day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter to|till|before <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Father's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.6739764335716716),-                                    ("dayday", -1.1631508098056809),-                                    ("day (grain)yesterday", -1.6739764335716716)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.6739764335716716),-                                    ("year (grain)Christmas", -2.0794415416798357),-                                    ("dayday", -2.0794415416798357),-                                    ("day (grain)intersect", -1.6739764335716716),-                                    ("day (grain)Easter Sunday", -2.0794415416798357),-                                    ("yearday", -2.0794415416798357)],-                               n = 4}}),-       ("Easter Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Navaratri",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Martin Luther King's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (20..90)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Shemini Atzeret",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ramadan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lazarus Saturday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect 2 numbers",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("compose by multiplicationinteger (0..19)",-                                     -0.2231435513142097)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],-                               n = 3}}),-       ("mm/yyyy",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("integer after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8109302162163288),-                                    ("integer (numeric)time-of-day (latent)", -1.0986122886681098),-                                    ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom HaShoah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal or number) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)December", -2.1400661634962708),-                                    ("ordinal (digits)February", -2.1400661634962708),-                                    ("integer (numeric)April", -2.1400661634962708),-                                    ("month", -1.4469189829363254)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)October", -2.6741486494265287),-                                    ("ordinal (digits)July", -2.6741486494265287),-                                    ("integer (numeric)September", -2.268683541318364),-                                    ("ordinal (digits)August", -2.6741486494265287),-                                    ("integer (numeric)August", -2.6741486494265287),-                                    ("ordinal (digits)April", -2.6741486494265287),-                                    ("month", -1.0647107369924282),-                                    ("integer (numeric)July", -2.268683541318364)],-                               n = 9}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -9.237332013101517e-2,-                               unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("dayhour", -1.4816045409242156),-                                    ("Mondayearly morning", -3.378724525810097),-                                    ("time-of-day (latent)tonight", -3.378724525810097),-                                    ("hourhour", -2.3978952727983707),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("todaypart of days", -3.784189633918261),-                                    ("minutehour", -2.6855773452501515),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -3.378724525810097),-                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),-                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),-                                    ("intersectpart of days", -3.784189633918261),-                                    ("intersectin|during the <part-of-day>", -3.784189633918261),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("tomorrowpart of days", -2.3978952727983707),-                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("hhmm (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("yesterdaypart of days", -3.378724525810097),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("Mondaypart of days", -3.784189633918261)],-                               n = 31},-                   koData =-                     ClassData{prior = -2.4277482359480516,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -2.772588722239781),-                                    ("monthhour", -2.772588722239781),-                                    ("hourhour", -2.772588722239781),-                                    ("year (latent)in|during the <part-of-day>",-                                     -2.772588722239781),-                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.772588722239781)],-                               n = 3}}),-       ("today",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("mm/dd",-        Classifier{okData =-                     ClassData{prior = -1.2729656758128873,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.961215868968717e-2,-                               unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.8430301339411947),-                                    ("noon|midnight|EOD|end of day", -3.8430301339411947),-                                    ("integer after|past <hour-of-day>", -3.8430301339411947),-                                    ("half after|past <hour-of-day>", -4.248495242049359),-                                    ("time-of-day (latent)", -1.6835458845878222),-                                    ("hhmm (latent)", -3.5553480614894135),-                                    ("<time-of-day> am|pm", -1.8061482066801546),-                                    ("hh:mm", -3.332204510175204),-                                    ("about|exactly <time-of-day>", -3.8430301339411947),-                                    ("hour", -1.0704414117014134),-                                    ("<time-of-day> sharp|exactly", -4.248495242049359),-                                    ("minute", -2.05127066471314)],-                               n = 64},-                   koData =-                     ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2321436812926323),-                                    ("hour", -1.2321436812926323)],-                               n = 6}}),-       ("December",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.1972245773362196),-                                    ("Wednesday", -2.6026896854443837),-                                    ("Saturday", -2.6026896854443837),-                                    ("Monday", -2.1972245773362196),-                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),-                                    ("Sunday", -2.6026896854443837)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("September",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|past|next <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.2626798770413155,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.456735772821304), ("second", -2.639057329615259),-                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),-                                    ("<integer> <unit-of-duration>", -0.7827593392496325),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("minute", -2.639057329615259)],-                               n = 31},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the ides of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -1.4816045409242156),-                                    ("mm/dd", -3.4965075614664802),-                                    ("absorption of , after named day", -3.0910424533583156),-                                    ("intersect", -3.0910424533583156),-                                    ("Saturday", -2.803360380906535),-                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),-                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.803360380906535),-                                    ("hour", -3.4965075614664802)],-                               n = 28},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -1.791759469228055)],-                               n = 4}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.11122563511022437,-                               unseen = -3.970291913552122,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},-                   koData =-                     ClassData{prior = -2.2512917986064953,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7884573603642702),-                                    ("hh:mmhh:mm", -0.7884573603642702)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),-                                    ("minutehour", -0.7884573603642702)],-                               n = 9}}),-       ("Halloween",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Passover",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -1.6094379124341003),-                                    ("month", -0.916290731874155),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("October",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from|since|after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -3.332204510175204),-                                    ("time-of-day (latent)", -2.4159137783010487),-                                    ("<time-of-day> am|pm", -2.4159137783010487),-                                    ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),-                                    ("month", -2.9267394020670396), ("minute", -2.4159137783010487),-                                    ("August", -3.332204510175204)],-                               n = 14},-                   koData =-                     ClassData{prior = -0.22677331936478848,-                               unseen = -4.9344739331306915,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.828641396489095),-                                    ("week", -4.23410650459726),-                                    ("<day-of-month> (ordinal or number) <named-month>",-                                     -4.23410650459726),-                                    ("today", -4.23410650459726), ("intersect", -2.362304327695668),-                                    ("second", -4.23410650459726), ("now", -3.5409593240373143),-                                    ("tomorrow", -3.828641396489095),-                                    ("this|last|next <cycle>", -4.23410650459726),-                                    ("day", -1.8827312474337816),-                                    ("time-of-day (latent)", -4.23410650459726),-                                    ("<time-of-day> am|pm", -3.828641396489095),-                                    ("nograin", -3.5409593240373143),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -4.23410650459726),-                                    ("Easter Sunday", -4.23410650459726),-                                    ("Christmas", -3.5409593240373143),-                                    ("hour", -2.981343536101891), ("month", -4.23410650459726),-                                    ("<datetime> - <datetime> (interval)", -2.847812143477369),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.5293584123588344),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -3.828641396489095),-                                    ("minute", -1.749199854809259),-                                    ("right now", -4.23410650459726),-                                    ("<month> dd-dd (interval)", -3.5409593240373143),-                                    ("dd-dd <month> (interval)", -3.828641396489095)],-                               n = 55}}),-       ("month (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> more <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in|within|after <duration>",-        Classifier{okData =-                     ClassData{prior = -0.11000089521432846,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.248434627109745),-                                    ("<integer> more <unit-of-duration>", -3.9415818076696905),-                                    ("three-quarters of an hour", -3.0252910757955354),-                                    ("<integer> + '\"", -3.248434627109745),-                                    ("number.number hours", -3.9415818076696905),-                                    ("second", -3.536116699561526), ("day", -3.248434627109745),-                                    ("half an hour", -3.0252910757955354),-                                    ("year", -3.9415818076696905),-                                    ("<integer> <unit-of-duration>", -1.5902065505062128),-                                    ("a <unit-of-duration>", -3.0252910757955354),-                                    ("quarter of an hour", -3.0252910757955354),-                                    ("hour", -2.5552874465498),-                                    ("about|exactly <duration>", -3.9415818076696905),-                                    ("<integer> and an half hour", -3.9415818076696905),-                                    ("minute", -1.3025244780544318)],-                               n = 43},-                   koData =-                     ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),-                                    ("<integer> <unit-of-duration>", -1.9095425048844386),-                                    ("a <unit-of-duration>", -2.1972245773362196)],-                               n = 5}}),-       ("January",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("three-quarters of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Mattu Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Wednesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> + '\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half <integer> (UK style hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Family Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("July",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8209805520698302,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),-       ("Shavuot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Vimy Ridge Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> <duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayyear", -0.6931471805599453),-                                    ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),-                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",-                                     -1.466337068793427),-                                    ("quarter", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),-                                    ("quarter", -0.8109302162163288)],-                               n = 3}}),-       ("Boss's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Orthodox Easter Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("one twenty two",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.44339892331178415,-                               unseen = -6.7464121285733745,-                               likelihoods =-                                 HashMap.fromList-                                   [("Navaratriyear (latent)", -6.052089168924417),-                                    ("Father's Dayyear (latent)", -6.052089168924417),-                                    ("Ramadanyear (latent)", -6.052089168924417),-                                    ("<datetime> - <datetime> (interval)on <date>",-                                     -4.799326200429049),-                                    ("Bhai Doojyear (latent)", -6.052089168924417),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.799326200429049),-                                    ("hourday", -4.347341076685992),-                                    ("dayhour", -3.134318436840138),-                                    ("Martin Luther King's Dayyear (latent)", -5.646624060816253),-                                    ("Shemini Atzeretyear (latent)", -6.052089168924417),-                                    ("daymonth", -5.358941988364472),-                                    ("monthday", -5.646624060816253),-                                    ("monthyear", -4.442651256490317),-                                    ("Yom Ha'atzmautyear (latent)", -6.052089168924417),-                                    ("Vijayadashamiyear (latent)", -6.052089168924417),-                                    ("Thanksgiving Dayyear (latent)", -4.953476880256307),-                                    ("Thai Pongalyear (latent)", -5.358941988364472),-                                    ("Thiru Onamyear (latent)", -5.358941988364472),-                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.052089168924417),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -6.052089168924417),-                                    ("houryear", -5.358941988364472),-                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",-                                     -6.052089168924417),-                                    ("Christmas<time-of-day> am|pm", -6.052089168924417),-                                    ("last <day-of-week> of <time>year (latent)",-                                     -6.052089168924417),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.358941988364472),-                                    ("<time-of-day> am|pmintersect", -4.799326200429049),-                                    ("Family Dayyear (latent)", -5.135798437050262),-                                    ("Octoberyear (latent)", -4.799326200429049),-                                    ("intersect<time-of-day> am|pm", -6.052089168924417),-                                    ("Mattu Pongalyear (latent)", -6.052089168924417),-                                    ("Shavuotyear (latent)", -6.052089168924417),-                                    ("Dhanterasin <named-month>|year", -6.052089168924417),-                                    ("at <time-of-day>in|within|after <duration>",-                                     -6.052089168924417),-                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.052089168924417),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -5.646624060816253),-                                    ("Marchyear (latent)", -6.052089168924417),-                                    ("Sukkotyear (latent)", -5.646624060816253),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -6.052089168924417),-                                    ("Clean Mondayyear (latent)", -5.646624060816253),-                                    ("monthhour", -5.646624060816253),-                                    ("todayat <time-of-day>", -6.052089168924417),-                                    ("Thursday<time> timezone", -4.347341076685992),-                                    ("this <time>hh(:mm) - <time-of-day> am|pm",-                                     -6.052089168924417),-                                    ("Palm SundaySunday", -5.646624060816253),-                                    ("dayday", -3.8548645915881976),-                                    ("<time> <part-of-day>at <time-of-day>", -6.052089168924417),-                                    ("mm/ddat <time-of-day>", -6.052089168924417),-                                    ("tonightat <time-of-day>", -6.052089168924417),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -5.358941988364472),-                                    ("today<time-of-day> am|pm", -6.052089168924417),-                                    ("Februarythe <day-of-month> (ordinal)", -5.646624060816253),-                                    ("at <time-of-day><time> <part-of-day>", -6.052089168924417),-                                    ("mm/dd<time-of-day> am|pm", -6.052089168924417),-                                    ("hourhour", -4.799326200429049),-                                    ("<time-of-day> am|pmon <date>", -4.037186148382152),-                                    ("National Patriots' Dayyear (latent)", -5.358941988364472),-                                    ("Wednesdaythis|last|next <cycle>", -6.052089168924417),-                                    ("Lentyear (latent)", -6.052089168924417),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.548011772148143),-                                    ("Boghiyear (latent)", -6.052089168924417),-                                    ("dayyear", -1.9330519941119446),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -6.052089168924417),-                                    ("Thursdayat <time-of-day>", -5.646624060816253),-                                    ("Islamic New Yearyear (latent)", -5.646624060816253),-                                    ("Laylat al-Qadryear (latent)", -5.135798437050262),-                                    ("Chhathin <named-month>|year", -6.052089168924417),-                                    ("Vasant Panchamiin <named-month>|year", -6.052089168924417),-                                    ("Diwaliin <named-month>|year", -6.052089168924417),-                                    ("Discovery Dayyear (latent)", -5.646624060816253),-                                    ("Shrove Tuesdayyear (latent)", -6.052089168924417),-                                    ("<time-of-day> am|pmtomorrow", -5.358941988364472),-                                    ("Yom Kippuryear (latent)", -6.052089168924417),-                                    ("<part-of-day> of <time>year (latent)", -6.052089168924417),-                                    ("minutehour", -5.135798437050262),-                                    ("Kaanum Pongalyear (latent)", -5.646624060816253),-                                    ("Maha Saptamiyear (latent)", -6.052089168924417),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.646624060816253),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.347341076685992),-                                    ("for <duration> from <time>December", -6.052089168924417),-                                    ("tomorrow<time-of-day> sharp|exactly", -6.052089168924417),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.135798437050262),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -5.646624060816253),-                                    ("Pentecostyear (latent)", -6.052089168924417),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.135798437050262),-                                    ("Eid al-Fitryear (latent)", -6.052089168924417),-                                    ("Mondayin|during the <part-of-day>", -6.052089168924417),-                                    ("Raksha Bandhanyear (latent)", -6.052089168924417),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.646624060816253),-                                    ("Navaratriin <named-month>|year", -6.052089168924417),-                                    ("Ashurayear (latent)", -6.052089168924417),-                                    ("Chinese New Yearyear (latent)", -6.052089168924417),-                                    ("Sundayyear (latent)", -6.052089168924417),-                                    ("Lag BaOmeryear (latent)", -6.052089168924417),-                                    ("last weekend of <named-month>year (latent)",-                                     -6.052089168924417),-                                    ("Eid al-Adhayear (latent)", -5.135798437050262),-                                    ("intersectin|during the <part-of-day>", -6.052089168924417),-                                    ("Christmasat <time-of-day>", -6.052089168924417),-                                    ("Passoveryear (latent)", -6.052089168924417),-                                    ("Lazarus Saturdayyear (latent)", -6.052089168924417),-                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",-                                     -6.052089168924417),-                                    ("Yom HaShoahyear (latent)", -5.646624060816253),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -5.135798437050262),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -6.052089168924417),-                                    ("Thai Pongalin <named-month>|year", -6.052089168924417),-                                    ("Septemberyear (latent)", -5.646624060816253),-                                    ("mm/ddyear (latent)", -6.052089168924417),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -4.799326200429049),-                                    ("Halloweenyear (latent)", -6.052089168924417),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.358941988364472),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -5.135798437050262),-                                    ("at <time-of-day>intersect", -5.646624060816253),-                                    ("Rosh Hashanahyear (latent)", -6.052089168924417),-                                    ("Dhanterasyear (latent)", -6.052089168924417),-                                    ("Tu BiShvatyear (latent)", -6.052089168924417),-                                    ("Holiyear (latent)", -5.358941988364472),-                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",-                                     -6.052089168924417),-                                    ("Holika Dahanyear (latent)", -5.358941988364472),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.052089168924417),-                                    ("dayminute", -3.4130318393091583),-                                    ("Mawlidyear (latent)", -6.052089168924417),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.646624060816253),-                                    ("<datetime> - <datetime> (interval)tomorrow",-                                     -6.052089168924417),-                                    ("Jumu'atul-Widayear (latent)", -5.135798437050262),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.052089168924417),-                                    ("minuteday", -2.414503009198031),-                                    ("absorption of , after named dayintersect",-                                     -6.052089168924417),-                                    ("intersectyear (latent)", -6.052089168924417),-                                    ("Orthodox Easter Sundayyear (latent)", -6.052089168924417),-                                    ("<ordinal> <cycle> of <time>year (latent)",-                                     -6.052089168924417),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -6.052089168924417),-                                    ("Boss's Dayyear (latent)", -5.646624060816253),-                                    ("Tisha B'Avyear (latent)", -6.052089168924417),-                                    ("Isra and Mi'rajyear (latent)", -5.135798437050262),-                                    ("at <time-of-day>absorption of , after named day",-                                     -6.052089168924417),-                                    ("Christmasyear (latent)", -5.646624060816253),-                                    ("Naraka Chaturdashiyear (latent)", -5.646624060816253),-                                    ("at <time-of-day>on <date>", -4.953476880256307),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -4.442651256490317),-                                    ("dayweek", -6.052089168924417),-                                    ("Easter Sundayyear (latent)", -5.358941988364472),-                                    ("Thursday<time-of-day> am|pm", -6.052089168924417),-                                    ("Labour Dayyear (latent)", -6.052089168924417),-                                    ("weekyear", -5.646624060816253),-                                    ("hh:mmin|during the <part-of-day>", -5.358941988364472),-                                    ("<cycle> after|before <time><time-of-day> am|pm",-                                     -5.646624060816253),-                                    ("Hanukkahyear (latent)", -6.052089168924417),-                                    ("February<time> <part-of-day>", -6.052089168924417),-                                    ("Tuesdayin <named-month>|year", -6.052089168924417),-                                    ("Great Lentyear (latent)", -6.052089168924417),-                                    ("tomorrowat <time-of-day>", -5.358941988364472),-                                    ("between <time> and <time>on <date>", -4.442651256490317),-                                    ("Thursdayfrom|since|after <time-of-day>", -5.358941988364472),-                                    ("last <cycle> of <time>year (latent)", -5.358941988364472),-                                    ("at <time-of-day>tomorrow", -5.646624060816253),-                                    ("tomorrow<time-of-day> am|pm", -6.052089168924417),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -6.052089168924417),-                                    ("Diwaliyear (latent)", -6.052089168924417),-                                    ("Black Fridayyear (latent)", -5.646624060816253),-                                    ("in|during the <part-of-day>at <time-of-day>",-                                     -6.052089168924417),-                                    ("Chhathyear (latent)", -5.646624060816253),-                                    ("Vasant Panchamiyear (latent)", -6.052089168924417),-                                    ("Palm Sundayintersect", -6.052089168924417),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -6.052089168924417),-                                    ("Februaryintersect", -6.052089168924417),-                                    ("Mother's Dayyear (latent)", -6.052089168924417),-                                    ("Simchat Torahyear (latent)", -6.052089168924417),-                                    ("Victoria Dayyear (latent)", -5.646624060816253)],-                               n = 319},-                   koData =-                     ClassData{prior = -1.0268064758045434, unseen = -6.343880434126331,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.648974238161206),-                                    ("hourday", -5.648974238161206),-                                    ("<named-month> <day-of-month> (non ordinal)July",-                                     -5.648974238161206),-                                    ("dayhour", -3.2066272027920015),-                                    ("daymonth", -3.56953269648137),-                                    ("monthday", -5.243509130053042),-                                    ("monthyear", -4.396211269665838),-                                    ("<time-of-day> am|pmyear (latent)", -5.243509130053042),-                                    ("Thai Pongalyear (latent)", -4.955827057601261),-                                    ("intersecthh:mm", -5.648974238161206),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -5.648974238161206),-                                    ("houryear", -4.732683506287051),-                                    ("from <time-of-day> - <time-of-day> (interval)July",-                                     -5.648974238161206),-                                    ("until <time-of-day><time-of-day> am|pm", -5.648974238161206),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.955827057601261),-                                    ("<time-of-day> am|pmintersect", -4.396211269665838),-                                    ("Octoberyear (latent)", -5.648974238161206),-                                    ("from|since|after <time-of-day>year (latent)",-                                     -4.396211269665838),-                                    ("from|since|after <time-of-day>on <date>", -4.732683506287051),-                                    ("July<day-of-month> (ordinal or number) <named-month>",-                                     -5.648974238161206),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -4.396211269665838),-                                    ("about|exactly <time-of-day>year (latent)",-                                     -5.648974238161206),-                                    ("absorption of , after named dayJuly", -5.243509130053042),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.732683506287051),-                                    ("Clean Mondayyear (latent)", -5.648974238161206),-                                    ("monthhour", -5.648974238161206),-                                    ("hourmonth", -4.955827057601261),-                                    ("todayat <time-of-day>", -5.648974238161206),-                                    ("from|since|after <time-of-day>July", -5.648974238161206),-                                    ("Mondayyear (latent)", -4.955827057601261),-                                    ("dayday", -5.243509130053042),-                                    ("mm/ddat <time-of-day>", -5.243509130053042),-                                    ("<time-of-day> am|pmon <date>", -4.396211269665838),-                                    ("dayyear", -2.678559772591505),-                                    ("Thursdaymm/dd", -5.648974238161206),-                                    ("New Year's Dayyear (latent)", -5.243509130053042),-                                    ("Thursdayat <time-of-day>", -4.396211269665838),-                                    ("<integer> to|till|before <hour-of-day>September",-                                     -5.648974238161206),-                                    ("Aprilyear (latent)", -5.648974238161206),-                                    ("monthminute", -5.648974238161206),-                                    ("<time-of-day> am|pmtomorrow", -5.648974238161206),-                                    ("Thursdayhh:mm", -4.732683506287051),-                                    ("August<day-of-month> (ordinal or number) <named-month>",-                                     -5.648974238161206),-                                    ("minutemonth", -3.857214768933151),-                                    ("Sundayfrom|since|after <time-of-day>", -5.648974238161206),-                                    ("week-endin <named-month>|year", -5.648974238161206),-                                    ("Augustyear (latent)", -5.243509130053042),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.243509130053042),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.243509130053042),-                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",-                                     -5.243509130053042),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.648974238161206),-                                    ("Sundayyear (latent)", -4.955827057601261),-                                    ("Christmasat <time-of-day>", -5.648974238161206),-                                    ("<duration> after|before|from <time>December",-                                     -5.648974238161206),-                                    ("yesterday<time-of-day> am|pm", -5.648974238161206),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -4.732683506287051),-                                    ("mm/ddyear (latent)", -5.648974238161206),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -5.243509130053042),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.648974238161206),-                                    ("until <time-of-day>on <date>", -4.955827057601261),-                                    ("at <time-of-day>intersect", -5.243509130053042),-                                    ("hh:mmyear (latent)", -4.550361949493096),-                                    ("Holiyear (latent)", -5.648974238161206),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.648974238161206),-                                    ("dayminute", -3.164067588373206),-                                    ("intersectSeptember", -4.144896841384932),-                                    ("minuteday", -2.580921303027589),-                                    ("absorption of , after named dayintersect",-                                     -5.648974238161206),-                                    ("Februaryin|during the <part-of-day>", -5.648974238161206),-                                    ("hh:mmon <date>", -3.634071217618941),-                                    ("Saturdayyear (latent)", -5.648974238161206),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -5.648974238161206),-                                    ("absorption of , after named daySeptember",-                                     -4.732683506287051),-                                    ("Naraka Chaturdashiyear (latent)", -5.648974238161206),-                                    ("on <date>September", -5.243509130053042),-                                    ("at <time-of-day>on <date>", -5.243509130053042),-                                    ("in <named-month>|yearyear (latent)", -5.648974238161206),-                                    ("dayweek", -5.648974238161206),-                                    ("Easter Sundayyear (latent)", -5.243509130053042),-                                    ("Thursday<time-of-day> am|pm", -5.243509130053042),-                                    ("absorption of , after named dayFebruary", -4.732683506287051),-                                    ("July<integer> to|till|before <hour-of-day>",-                                     -5.648974238161206),-                                    ("tomorrowat <time-of-day>", -5.648974238161206),-                                    ("<integer> to|till|before <hour-of-day>July",-                                     -5.648974238161206),-                                    ("Thursdayfrom|since|after <time-of-day>", -4.039536325727106),-                                    ("tomorrow<time-of-day> am|pm", -5.648974238161206),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -4.955827057601261),-                                    ("Diwaliyear (latent)", -5.243509130053042),-                                    ("Tuesdayfrom|since|after <time-of-day>", -5.648974238161206),-                                    ("Fridayyear (latent)", -5.243509130053042),-                                    ("minuteyear", -4.396211269665838)],-                               n = 178}}),-       ("one eleven",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("after lunch/work/school",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("early morning",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <number> (implicit minutes)",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3184537311185346),-                                    ("integer (0..19)", -1.2992829841302609)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.19105523676270922),-                                    ("integer (0..19)", -1.749199854809259)],-                               n = 21}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.791759469228055),-                                    ("ordinal (digits)quarter (grain)year (latent)",-                                     -2.1972245773362196),-                                    ("quarteryear", -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",-                                     -2.1972245773362196),-                                    ("ordinal (digits)day (grain)this|last|next <cycle>",-                                     -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",-                                     -2.1972245773362196),-                                    ("weekmonth", -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",-                                     -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 26},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -2.001480000210124),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("hh:mmhh:mm", -2.001480000210124),-                                    ("dayday", -2.512305623976115),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),-                                    ("hourhour", -2.512305623976115),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.1986731175506815),-                                    ("dayhour", -2.793208009442517),-                                    ("<day-of-month> (ordinal)time-of-day (latent)",-                                     -3.1986731175506815),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -3.1986731175506815),-                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),-                                    ("minuteminute", -2.793208009442517),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.793208009442517),-                                    ("dayday", -3.1986731175506815),-                                    ("hourhour", -2.505525936990736),-                                    ("dayyear", -3.1986731175506815),-                                    ("minutehour", -2.2823823856765264),-                                    ("hh:mmintersect", -2.793208009442517),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<time-of-day> am|pm",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",-                                     -3.1986731175506815)],-                               n = 14}}),-       ("Saturday",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("the <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.7346010553881064),-                                    ("week (grain)October", -1.7346010553881064),-                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",-                                     -1.7346010553881064),-                                    ("weekday", -1.2237754316221157)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number.number hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6094379124341003),-                                    ("hh:mmhh:mm", -1.6094379124341003),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),-                                    ("hourhour", -2.3025850929940455),-                                    ("hourminute", -2.3025850929940455),-                                    ("time-of-day (latent)<time-of-day> sharp|exactly",-                                     -2.70805020110221),-                                    ("time-of-day (latent)hh:mm", -2.70805020110221),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.0149030205422647),-                                    ("hourhour", -1.791759469228055),-                                    ("minutehour", -1.6094379124341003),-                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],-                               n = 9}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),-                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],-                               n = 4}}),-       ("Tisha B'Av",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yyyy-mm-dd",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -0.14892327639210656,-                               unseen = -4.955827057601261,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -4.348511193973878e-2),-                                    ("intersect 2 numbers", -3.5624655292582776)],-                               n = 137},-                   koData =-                     ClassData{prior = -1.9778617488619157, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3121863889661687),-                                    ("negative numbers", -0.6190392084062235),-                                    ("compose by multiplication", -1.8718021769015913)],-                               n = 22}}),-       ("mm/dd/yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Civic Holiday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Memorial Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Monday",-        Classifier{okData =-                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.2237754316221157,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm:ss",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Hanukkah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>integer (numeric)",-                                     -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 1}}),-       ("Labour Day",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.9808292530117262),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -2.0794415416798357),-                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",-                                     -1.6739764335716716),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",-                                     -1.6739764335716716)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.0986122886681098),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",-                                     -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",-                                     -1.3862943611198906)],-                               n = 3}}),-       ("Valentine's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("April",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maha Saptami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Discovery Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -4.0821994520255166e-2,-                               unseen = -4.304065093204169,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 72},-                   koData =-                     ClassData{prior = -3.2188758248682006,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<part-of-day> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.3513752571634776),-                                    ("part of daysintersect", -2.3513752571634776),-                                    ("hourday", -0.9650808960435872),-                                    ("part of daysthe <day-of-month> (ordinal)",-                                     -2.3513752571634776),-                                    ("part of daysthe <day-of-month> (number)",-                                     -2.3513752571634776),-                                    ("part of daysthis <time>", -2.3513752571634776),-                                    ("part of daysChristmas", -1.9459101490553135)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("six thirty six a.m.",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.252762968495368),-                                    ("one twenty two", -0.8472978603872037),-                                    ("one eleven", -1.252762968495368)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Shrove Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<day-of-month> (ordinal or number) of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.3513752571634776),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.3513752571634776),-                                    ("ordinal (digits)February", -2.3513752571634776),-                                    ("integer (numeric)February", -1.9459101490553135),-                                    ("month", -0.9650808960435872),-                                    ("ordinal (digits)March", -2.3513752571634776),-                                    ("integer (numeric)July", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.5040773967762742),-                                    ("month", -1.5040773967762742)],-                               n = 1}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("part of days", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Kaanum Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom Kippur",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("The Twelfth",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("powers of tens",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Friday",-        Classifier{okData =-                     ClassData{prior = -0.3677247801253174,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("early morning", -2.5257286443082556),-                                    ("hour", -0.7339691750802004),-                                    ("part of days", -0.8209805520698302)],-                               n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("part of days", -0.916290731874155)],-                               n = 1}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh(:mm) - <time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Groundhog Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|last|next <cycle>",-        Classifier{okData =-                     ClassData{prior = -7.503518594291408e-2,-                               unseen = -5.10594547390058,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.1295745142720766),-                                    ("month (grain)", -2.797281334830153),-                                    ("year (grain)", -2.5349170703626616),-                                    ("week (grain)", -1.1295745142720766),-                                    ("quarter", -3.4904285153900982), ("year", -2.5349170703626616),-                                    ("month", -2.797281334830153),-                                    ("quarter (grain)", -3.4904285153900982)],-                               n = 77},-                   koData =-                     ClassData{prior = -2.627081138568543, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.4816045409242156),-                                    ("week (grain)", -1.4816045409242156),-                                    ("day", -1.9924301646902063),-                                    ("day (grain)", -1.9924301646902063)],-                               n = 6}}),-       ("Mother's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Simchat Torah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Victoria Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Eve",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Raksha Bandhan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ashura",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Palm Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Eid al-Adha",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),-                                    ("time-of-day (latent)", -1.9459101490553135),-                                    ("<time-of-day> am|pm", -1.9459101490553135),-                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),-                                    ("minute", -1.540445040947149)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..twentieth,thirtieth,...)",-                                     -1.7047480922384253),-                                    ("ordinal (digits)", -0.2006706954621511)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..twentieth,thirtieth,...)",-                                     -0.916290731874155),-                                    ("ordinal (digits)", -0.5108256237659907)],-                               n = 3}}),-       ("last weekend of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),-                                    ("month", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lag BaOmer",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fractional number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),-       ("Sunday",-        Classifier{okData =-                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Chinese New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("February",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|this|next <season>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.330755969960742)],-                               n = 69},-                   koData =-                     ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -9.352605801082348e-2),-                                    ("integer (0..19)", -2.9267394020670396),-                                    ("integer 21..99", -3.332204510175204)],-                               n = 53}}),-       ("beginning of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.916290731874155),-                                    ("SundayMarch", -1.6094379124341003),-                                    ("MondayMarch", -1.6094379124341003),-                                    ("Sundayintersect", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.13858616328614667,-                               unseen = -5.147494476813453,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5026062268874014),-                                    ("integer (0..19)year (grain)", -3.062222014822824),-                                    ("integer (numeric)day (grain)", -2.743768283704289),-                                    ("integer (0..19)second (grain) ", -3.7553691953827695),-                                    ("integer (0..19)hour (grain)", -3.062222014822824),-                                    ("second", -3.349904087274605),-                                    ("integer (numeric)second (grain) ", -4.04305126783455),-                                    ("integer (numeric)year (grain)", -3.349904087274605),-                                    ("day", -2.4336133554004498), ("year", -2.576714199041123),-                                    ("integer (numeric)week (grain)", -3.062222014822824),-                                    ("integer (0..19)month (grain)", -3.5322256440685593),-                                    ("hour", -2.6567569067146595), ("month", -3.1957534074473464),-                                    ("integer (numeric)minute (grain)", -3.1957534074473464),-                                    ("integer (0..19)minute (grain)", -3.062222014822824),-                                    ("integer (numeric)month (grain)", -4.04305126783455),-                                    ("minute", -2.5026062268874014),-                                    ("integer (numeric)hour (grain)", -3.5322256440685593),-                                    ("integer (0..19)day (grain)", -3.5322256440685593),-                                    ("integer (0..19)week (grain)", -3.1957534074473464)],-                               n = 74},-                   koData =-                     ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),-                                    ("integer (numeric)hour (grain)", -1.4087672169719492),-                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],-                               n = 11}}),-       ("hhmm (latent)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer after|past <hour-of-day>", -3.951243718581427),-                                    ("at <time-of-day>", -2.202043863772168),-                                    ("from|since|after <time-of-day>", -3.7281001672672174),-                                    ("<time-of-day> o'clock", -4.238925791033208),-                                    ("half after|past <hour-of-day>", -4.238925791033208),-                                    ("time-of-day (latent)", -1.7266201670570935),-                                    ("hhmm (latent)", -4.6443908991413725),-                                    ("hh:mm", -2.293015641977895),-                                    ("quarter after|past <hour-of-day>", -4.6443908991413725),-                                    ("about|exactly <time-of-day>", -4.6443908991413725),-                                    ("until <time-of-day>", -3.951243718581427),-                                    ("hour", -1.2104036946562264),-                                    ("<time-of-day> sharp|exactly", -4.6443908991413725),-                                    ("minute", -1.754019141245208)],-                               n = 96},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.283414346005772),-                                    ("from|since|after <time-of-day>", -3.283414346005772),-                                    ("<hour-of-day> <integer>", -3.6888794541139363),-                                    ("time-of-day (latent)", -1.0498221244986778),-                                    ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],-                               n = 32}}),-       ("Yom Ha'atzmaut",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),-                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),-                                    ("month", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thiru Onam",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thai Pongal",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Vijayadashami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thanksgiving Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.1400661634962708),-                                    ("year (grain)", -2.4277482359480516),-                                    ("second", -2.833213344056216),-                                    ("week (grain)", -2.1400661634962708),-                                    ("day", -2.1400661634962708),-                                    ("minute (grain)", -2.833213344056216),-                                    ("year", -2.4277482359480516),-                                    ("second (grain) ", -2.833213344056216),-                                    ("minute", -2.833213344056216),-                                    ("day (grain)", -2.1400661634962708)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour (grain)", -1.7227665977411035),-                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),-                                    ("quarter (grain)", -1.9459101490553135)],-                               n = 7}}),-       ("at the beginning|end of <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -0.6931471805599453),-                                    ("year", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Dhanteras",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Tu BiShvat",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Whit Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -5.6352936551131744e-2,-                               unseen = -4.2626798770413155,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},-                   koData =-                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("Holi",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Rosh Hashanah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Holika Dahan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain) ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..twentieth,thirtieth,...)",-        Classifier{okData =-                     ClassData{prior = -0.1941560144409575, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -1.7346010553881064,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Mawlid",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Jumu'atul-Wida",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.252762968495368),-                                    ("dayday", -0.8472978603872037),-                                    ("day (grain)yesterday", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about|exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),-                                    ("this|last|next <cycle>", -1.791759469228055),-                                    ("day", -2.4849066497880004),-                                    ("time-of-day (latent)", -2.890371757896165),-                                    ("hhmm (latent)", -2.4849066497880004),-                                    ("<time-of-day> am|pm", -2.890371757896165),-                                    ("hour", -2.1972245773362196),-                                    ("next <time>", -2.890371757896165),-                                    ("this|next <day-of-week>", -2.890371757896165),-                                    ("minute", -2.4849066497880004)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("hour", -2.0794415416798357)],-                               n = 2}}),-       ("Sukkot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthyear", -1.2992829841302609),-                                    ("Marcha <unit-of-duration>", -1.7047480922384253),-                                    ("March<integer> <unit-of-duration>", -1.7047480922384253),-                                    ("Vijayadashami<integer> <unit-of-duration>",-                                     -1.7047480922384253),-                                    ("dayyear", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("World Vegan Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\", \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.46262352194811296,-                               unseen = -5.099866427824199,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -4.400603020246817),-                                    ("dayhour", -3.147840051751449),-                                    ("daymonth", -3.147840051751449),-                                    ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -4.400603020246817),-                                    ("Friday<named-month> <day-of-month> (non ordinal)",-                                     -3.7074558396868715),-                                    ("Wednesdayintersect", -4.400603020246817),-                                    ("Black Fridaythis|last|next <cycle>", -4.400603020246817),-                                    ("Labour Daythis|last|next <cycle>", -4.400603020246817),-                                    ("<part-of-day> of <time>February", -4.400603020246817),-                                    ("Saturday<time-of-day> am|pm", -4.400603020246817),-                                    ("Martin Luther King's Daythis|last|next <cycle>",-                                     -3.9951379121386528),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.400603020246817),-                                    ("on <date><time-of-day> am|pm", -4.400603020246817),-                                    ("hourmonth", -4.400603020246817),-                                    ("dayday", -2.5288008433452256),-                                    ("the <day-of-month> (ordinal)February", -3.9951379121386528),-                                    ("WednesdayOctober", -4.400603020246817),-                                    ("Wednesdaythis|last|next <cycle>", -3.9951379121386528),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.484312288372662),-                                    ("dayyear", -2.791165107812717),-                                    ("Saturday<named-month> <day-of-month> (non ordinal)",-                                     -4.400603020246817),-                                    ("Thursdayhh:mm", -3.9951379121386528),-                                    ("Thanksgiving Daythis|last|next <cycle>", -4.400603020246817),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -3.9951379121386528),-                                    ("TuesdayOctober", -4.400603020246817),-                                    ("the <day-of-month> (ordinal)March", -4.400603020246817),-                                    ("Mondaythis|last|next <cycle>", -4.400603020246817),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.400603020246817),-                                    ("Fridayintersect", -4.400603020246817),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -3.7074558396868715),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.484312288372662),-                                    ("Tuesdaythis|last|next <cycle>", -4.400603020246817),-                                    ("Sunday<named-month> <day-of-month> (non ordinal)",-                                     -4.400603020246817),-                                    ("dayminute", -3.0143086591269266),-                                    ("minuteday", -3.484312288372662),-                                    ("this|last|next <cycle>Sunday", -4.400603020246817),-                                    ("intersectyear (latent)", -4.400603020246817),-                                    ("Sundaythis|last|next <cycle>", -4.400603020246817),-                                    ("weekday", -4.400603020246817),-                                    ("dayweek", -3.3019907315787074),-                                    ("Thursday<time-of-day> am|pm", -4.400603020246817),-                                    ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -3.9951379121386528),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -3.9951379121386528)],-                               n = 51},-                   koData =-                     ClassData{prior = -0.9932517730102834, unseen = -4.804021044733257,-                               likelihoods =-                                 HashMap.fromList-                                   [("week-endJuly", -4.102643365036796),-                                    ("week-endOctober", -3.4094961844768505),-                                    ("daymonth", -1.9054187877005764),-                                    ("TuesdaySeptember", -4.102643365036796),-                                    ("Wednesdayintersect", -4.102643365036796),-                                    ("hourmonth", -3.004031076368686),-                                    ("Fridaythis|last|next <cycle>", -4.102643365036796),-                                    ("SundayFebruary", -4.102643365036796),-                                    ("WednesdayOctober", -4.102643365036796),-                                    ("week-endintersect", -4.102643365036796),-                                    ("dayyear", -4.102643365036796),-                                    ("FridayJuly", -3.6971782569286313),-                                    ("FridaySeptember", -4.102643365036796),-                                    ("WednesdayFebruary", -4.102643365036796),-                                    ("minutemonth", -3.186352633162641),-                                    ("SundayMarch", -4.102643365036796),-                                    ("MondayFebruary", -3.6971782569286313),-                                    ("Fridayintersect", -4.102643365036796),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.6971782569286313),-                                    ("dayminute", -3.4094961844768505),-                                    ("SaturdaySeptember", -4.102643365036796),-                                    ("intersectSeptember", -3.186352633162641),-                                    ("MondayMarch", -4.102643365036796),-                                    ("on <date>September", -3.6971782569286313),-                                    ("Tuesdayintersect", -4.102643365036796),-                                    ("Sundayintersect", -4.102643365036796)],-                               n = 30}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("Father's Day", -2.772588722239781),-                                    ("Martin Luther King's Day", -2.772588722239781),-                                    ("Mother's Day", -2.772588722239781),-                                    ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),-                                    ("Chinese New Year", -2.367123614131617),-                                    ("Thanksgiving Day", -2.772588722239781),-                                    ("Easter Sunday", -2.772588722239781),-                                    ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),-                                    ("week-end", -2.772588722239781)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("Monday", -2.5649493574615367), ("day", -2.159484249353372),-                                    ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),-                                    ("week-end", -1.466337068793427)],-                               n = 7}}),-       ("March",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month>|<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("Octoberordinal (digits)", -2.120263536200091),-                                    ("Thursdayordinal (digits)", -2.5257286443082556),-                                    ("day", -2.120263536200091),-                                    ("Augustordinal (digits)", -2.5257286443082556),-                                    ("Marchordinals (first..twentieth,thirtieth,...)",-                                     -2.120263536200091),-                                    ("Tuesdayordinal (digits)", -2.5257286443082556),-                                    ("month", -1.2729656758128873),-                                    ("Marchordinal (digits)", -2.5257286443082556)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("from|since|after <time-of-day>ordinal (digits)",-                                     -1.8718021769015913),-                                    ("Augustordinal (digits)", -1.8718021769015913),-                                    ("month", -1.466337068793427)],-                               n = 2}}),-       ("Clean Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Easter Sunday",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("Christmas",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.3025850929940455),-                                    ("<time-of-day> am|pm", -1.6094379124341003),-                                    ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),-                                    ("minute", -1.3862943611198906)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7227665977411035),-                                    ("yesterday", -2.2335922215070942),-                                    ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),-                                    ("hour", -2.639057329615259), ("minute", -1.252762968495368)],-                               n = 10}}),-       ("mm.dd.yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Isra and Mi'raj",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> after|before|from <time>",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>now", -2.803360380906535),-                                    ("a <unit-of-duration>Christmas", -2.803360380906535),-                                    ("dayday", -2.803360380906535),-                                    ("<integer> <unit-of-duration>today", -2.803360380906535),-                                    ("daysecond", -2.803360380906535),-                                    ("a <unit-of-duration>right now", -2.803360380906535),-                                    ("minutenograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Easter Sunday",-                                     -2.803360380906535),-                                    ("secondnograin", -2.803360380906535),-                                    ("yearday", -2.1102132003465894),-                                    ("daynograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -2.4423470353692043),-                                    ("dayday", -2.03688192726104),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -2.4423470353692043)],-                               n = 3}}),-       ("<day-of-month> (ordinal or number) of <month>",-        Classifier{okData =-                     ClassData{prior = -8.004270767353637e-2,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.803360380906535),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.803360380906535),-                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),-                                    ("integer (numeric)this|last|next <cycle>",-                                     -2.3978952727983707),-                                    ("ordinal (digits)February", -2.803360380906535),-                                    ("integer (numeric)February", -2.3978952727983707),-                                    ("month", -0.9315582040049435),-                                    ("ordinal (digits)March", -2.803360380906535),-                                    ("integer (numeric)July", -2.803360380906535)],-                               n = 12},-                   koData =-                     ClassData{prior = -2.5649493574615367,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.7047480922384253),-                                    ("month", -1.7047480922384253)],-                               n = 1}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Labour Day weekend",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Naraka Chaturdashi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("beginning of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6888794541139363,-                               likelihoods =-                                 HashMap.fromList-                                   [("Martin Luther King's Day", -2.9704144655697013),-                                    ("Halloween", -2.9704144655697013),-                                    ("Wednesday", -2.9704144655697013),-                                    ("Boss's Day", -2.9704144655697013),-                                    ("Memorial Day", -2.9704144655697013),-                                    ("Monday", -2.9704144655697013),-                                    ("Discovery Day", -2.9704144655697013),-                                    ("Mother's Day", -2.9704144655697013),-                                    ("day", -1.0986122886681098),-                                    ("Thanksgiving Day", -2.9704144655697013),-                                    ("March", -2.9704144655697013), ("month", -2.9704144655697013),-                                    ("Tuesday", -2.277267285009756)],-                               n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> sharp|exactly",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.1400661634962708),-                                    ("time-of-day (latent)", -2.1400661634962708),-                                    ("hhmm (latent)", -2.1400661634962708),-                                    ("<time-of-day> am|pm", -2.1400661634962708),-                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),-                                    ("minute", -1.4469189829363254)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <named-month>|year",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -2.4423470353692043),-                                    ("year (latent)", -1.0560526742493137),-                                    ("year", -1.0560526742493137), ("March", -2.4423470353692043),-                                    ("month", -2.03688192726104)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.2992829841302609),-                                    ("year (latent)", -1.7047480922384253),-                                    ("year", -1.7047480922384253), ("month", -1.2992829841302609)],-                               n = 3}}),-       ("Islamic New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("negative numbers",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -7.696104113612832e-2),-                                    ("integer (0..19)", -2.6026896854443837)],-                               n = 25}}),-       ("about|exactly <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> before last|after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday", -1.8718021769015913),-                                    ("Friday", -1.466337068793427), ("day", -1.1786549963416462),-                                    ("March", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by the end of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("this|last|next <cycle>", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hhmm (military) am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -3.1918471524802814),-                                    ("intersect<time-of-day> am|pm", -3.1918471524802814),-                                    ("minuteminute", -1.457246097092175),-                                    ("hh:mmhh:mm", -2.093234863812172),-                                    ("dayday", -3.1918471524802814),-                                    ("hourhour", -2.093234863812172),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),-                                    ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (non ordinal)July",-                                     -3.1135153092103742),-                                    ("daymonth", -2.70805020110221),-                                    ("from|since|after <time-of-day>intersect", -2.70805020110221),-                                    ("<time-of-day> am|pmintersect", -3.1135153092103742),-                                    ("hh:mm<time-of-day> am|pm", -2.70805020110221),-                                    ("minuteminute", -1.8607523407150064),-                                    ("hourhour", -2.70805020110221),-                                    ("minutehour", -2.70805020110221),-                                    ("hh:mmintersect", -2.1972245773362196),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -3.1135153092103742),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.1135153092103742)],-                               n = 12}}),-       ("Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Day",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("fortnight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> and an half hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("National Patriots' Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Laylat al-Qadr",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Boghi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("at the beginning|end of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("January", -1.3862943611198906),-                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.0986122886681098),-                                    ("month", -1.0986122886681098)],-                               n = 1}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.529395204760564),-                                    ("hh:mmhh:mm", -1.8971199848858813),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -2.4849066497880004),-                                    ("hourhour", -1.6964492894237302),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -3.4011973816621555),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.4011973816621555),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),-                                    ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>time-of-day (latent)",-                                     -3.4657359027997265),-                                    ("hh:mmtime-of-day (latent)", -1.7609878105613013),-                                    ("hh:mm<time-of-day> am|pm", -3.0602707946915624),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -3.4657359027997265),-                                    ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),-                                    ("hourhour", -2.2129729343043585),-                                    ("minutehour", -1.2144441041932315),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.4657359027997265),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -2.5494451709255714),-                                    ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),-                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",-                                     -3.0602707946915624)],-                               n = 24}}),-       ("military spelled out numbers am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("winter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> after <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.42121346507630353,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.5455312716044354),-                                    ("Marchinteger (numeric)", -2.833213344056216),-                                    ("Aprilinteger (numeric)", -3.2386784521643803),-                                    ("month", -0.8407831793660099),-                                    ("Februaryinteger (numeric)", -1.9859154836690123),-                                    ("Septemberinteger (numeric)", -2.833213344056216),-                                    ("Octoberinteger (numeric)", -2.833213344056216),-                                    ("Julyinteger (numeric)", -2.1400661634962708)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.3353749158170367),-                                    ("Marchinteger (numeric)", -2.740840023925201),-                                    ("Aprilinteger (numeric)", -2.740840023925201),-                                    ("month", -0.9490805546971459),-                                    ("from|since|after <time-of-day>integer (numeric)",-                                     -2.3353749158170367),-                                    ("Julyinteger (numeric)", -1.6422277352570913)],-                               n = 11}}),-       ("Diwali",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("last night",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -2.2512917986064953),-                                    ("Wednesday", -2.2512917986064953),-                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),-                                    ("Tuesday", -1.55814461804655)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)October", -1.791759469228055),-                                    ("daymonth", -1.2809338454620642),-                                    ("day (grain)intersect", -1.791759469228055),-                                    ("weekmonth", -1.791759469228055),-                                    ("week (grain)intersect", -2.1972245773362196),-                                    ("week (grain)September", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Chhath",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Vasant Panchami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)April", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Black Friday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week-end",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("Great Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maundy Thursday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("right now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("for <duration> from <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -1.5040773967762742),-                                    ("dayday", -1.0986122886681098),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -1.5040773967762742)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.252762968495368),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -1.252762968495368)],-                               n = 1}}),-       ("compose by multiplication",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("between <time> and <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.832909122935104),-                                    ("hh:mmhh:mm", -0.832909122935104)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),-                                    ("minuteminute", -1.410986973710262),-                                    ("minutehour", -1.410986973710262),-                                    ("hh:mmintersect", -1.410986973710262)],-                               n = 18}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),-                                    ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>integer (numeric)integer (numeric)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",-                                     -2.740840023925201),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -2.3353749158170367),-                                    ("month", -0.8690378470236094),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -2.3353749158170367)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of days",-        Classifier{okData =-                     ClassData{prior = -3.509131981127006e-2,-                               unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},-                   koData =-                     ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+                     ClassData{prior = -8.961215868968717e-2,+                               unseen = -3.5263605246161616,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 32},+                   koData =+                     ClassData{prior = -2.456735772821304, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5818290513461541, unseen = -5.768320995793772,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 318},+                   koData =+                     ClassData{prior = -0.818427494994547, unseen = -5.53338948872752,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 251}}),+       ("<year> (bc|ad)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = -5.406722127027582e-2,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),+                                    ("year", -2.662587827025453),+                                    ("<integer> <unit-of-duration>", -1.0531499145913523),+                                    ("a <unit-of-duration>", -2.662587827025453),+                                    ("month", -2.662587827025453),+                                    ("fortnight", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("year", -1.5040773967762742),+                                    ("<integer> <unit-of-duration>", -1.5040773967762742)],+                               n = 1}}),+       ("noon|midnight|EOD|end of day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter to|till|before <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Father's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.6739764335716716),+                                    ("dayday", -1.1631508098056809),+                                    ("day (grain)yesterday", -1.6739764335716716)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.6739764335716716),+                                    ("year (grain)Christmas", -2.0794415416798357),+                                    ("dayday", -2.0794415416798357),+                                    ("day (grain)intersect", -1.6739764335716716),+                                    ("day (grain)Easter Sunday", -2.0794415416798357),+                                    ("yearday", -2.0794415416798357)],+                               n = 4}}),+       ("Easter Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Navaratri",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Martin Luther King's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (20..90)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Shemini Atzeret",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ramadan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lazarus Saturday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect 2 numbers",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("compose by multiplicationinteger (0..19)",+                                     -0.2231435513142097)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],+                               n = 3}}),+       ("mm/yyyy",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("from|since|after <time>",+        Classifier{okData =+                     ClassData{prior = -1.540445040947149, unseen = -4.248495242049359,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal or number) <named-month>",+                                     -3.5409593240373143),+                                    ("July", -3.5409593240373143),+                                    ("year (latent)", -3.1354942159291497),+                                    ("day", -3.1354942159291497),+                                    ("time-of-day (latent)", -2.624668592163159),+                                    ("year", -3.1354942159291497),+                                    ("<time-of-day> am|pm", -2.624668592163159),+                                    ("hh:mm", -2.624668592163159),+                                    ("<day-of-month> (ordinal)", -3.5409593240373143),+                                    ("hour", -2.03688192726104), ("month", -3.1354942159291497),+                                    ("minute", -2.624668592163159),+                                    ("August", -3.5409593240373143)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.2411620568168881, unseen = -5.111987788356543,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -4.007333185232471),+                                    ("week", -4.412798293340635),+                                    ("<day-of-month> (ordinal or number) <named-month>",+                                     -4.412798293340635),+                                    ("today", -4.412798293340635),+                                    ("intersect", -2.540996116439044),+                                    ("<time> for <duration>", -4.412798293340635),+                                    ("second", -4.412798293340635), ("now", -3.71965111278069),+                                    ("tomorrow", -4.007333185232471),+                                    ("this|last|next <cycle>", -4.412798293340635),+                                    ("day", -1.927891643552635),+                                    ("time-of-day (latent)", -2.6210388241125804),+                                    ("<time-of-day> am|pm", -4.007333185232471),+                                    ("nograin", -3.71965111278069),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -4.412798293340635),+                                    ("<day-of-month> (ordinal)", -4.007333185232471),+                                    ("Easter Sunday", -4.412798293340635),+                                    ("Christmas", -3.71965111278069), ("hour", -2.3978952727983707),+                                    ("month", -4.412798293340635),+                                    ("<datetime> - <datetime> (interval)", -3.1600353248452673),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.908720896564361),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -4.007333185232471),+                                    ("minute", -1.927891643552635),+                                    ("right now", -4.412798293340635),+                                    ("<month> dd-dd (interval)", -3.71965111278069),+                                    ("part of days", -4.412798293340635),+                                    ("dd-dd <month> (interval)", -4.007333185232471)],+                               n = 66}}),+       ("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}}),+       ("<ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.268683541318364),+                                    ("daymonth", -2.268683541318364),+                                    ("ordinal (digits)day (grain)May", -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.6741486494265287),+                                    ("weekmonth", -1.7578579175523736),+                                    ("ordinal (digits)week (grain)October", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)intersect", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.6741486494265287),+                                    ("weekyear", -1.9810014688665833),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)May",+                                     -2.6741486494265287)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom HaShoah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal or number) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)December", -1.6582280766035324),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)April", -2.3513752571634776),+                                    ("month", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)October", -2.6741486494265287),+                                    ("ordinal (digits)July", -2.6741486494265287),+                                    ("integer (numeric)September", -2.268683541318364),+                                    ("ordinal (digits)August", -2.6741486494265287),+                                    ("integer (numeric)August", -2.6741486494265287),+                                    ("ordinal (digits)April", -2.6741486494265287),+                                    ("month", -1.0647107369924282),+                                    ("integer (numeric)July", -2.268683541318364)],+                               n = 9}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -9.237332013101517e-2,+                               unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("dayhour", -1.4816045409242156),+                                    ("Mondayearly morning", -3.378724525810097),+                                    ("time-of-day (latent)tonight", -3.378724525810097),+                                    ("hourhour", -2.3978952727983707),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("todaypart of days", -3.784189633918261),+                                    ("minutehour", -2.6855773452501515),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -3.378724525810097),+                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),+                                    ("intersectpart of days", -3.784189633918261),+                                    ("intersectin|during the <part-of-day>", -3.784189633918261),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("tomorrowpart of days", -2.3978952727983707),+                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("hhmm (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("yesterdaypart of days", -3.378724525810097),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("Mondaypart of days", -3.784189633918261)],+                               n = 31},+                   koData =+                     ClassData{prior = -2.4277482359480516,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.772588722239781),+                                    ("monthhour", -2.772588722239781),+                                    ("hourhour", -2.772588722239781),+                                    ("year (latent)in|during the <part-of-day>",+                                     -2.772588722239781),+                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -2.772588722239781)],+                               n = 3}}),+       ("today",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm/dd",+        Classifier{okData =+                     ClassData{prior = -1.2729656758128873,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.4557388028063e-2, unseen = -5.003946305945459,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.898599985096005),+                                    ("noon|midnight|EOD|end of day", -3.898599985096005),+                                    ("integer after|past <hour-of-day>", -3.898599985096005),+                                    ("half after|past <hour-of-day>", -4.304065093204169),+                                    ("time-of-day (latent)", -1.6650077635889111),+                                    ("hhmm (latent)", -3.6109179126442243),+                                    ("<time-of-day> am|pm", -1.7783364488959144),+                                    ("hh:mm", -3.3877743613300146),+                                    ("about|exactly <time-of-day>", -3.898599985096005),+                                    ("hour", -1.0459685551826876),+                                    ("<time-of-day> sharp|exactly", -4.304065093204169),+                                    ("minute", -2.10684051586795)],+                               n = 68},+                   koData =+                     ClassData{prior = -2.512305623976115, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2321436812926323),+                                    ("hour", -1.2321436812926323)],+                               n = 6}}),+       ("December",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.1972245773362196),+                                    ("Wednesday", -2.6026896854443837),+                                    ("Saturday", -2.6026896854443837),+                                    ("Monday", -2.1972245773362196),+                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+                                    ("Sunday", -2.6026896854443837)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tonight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|past|next <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.2626798770413155,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.456735772821304), ("second", -2.639057329615259),+                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),+                                    ("<integer> <unit-of-duration>", -0.7827593392496325),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("minute", -2.639057329615259)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the ides of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.4816045409242156),+                                    ("mm/dd", -3.4965075614664802),+                                    ("absorption of , after named day", -3.0910424533583156),+                                    ("intersect", -3.0910424533583156),+                                    ("Saturday", -2.803360380906535),+                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.803360380906535),+                                    ("hour", -3.4965075614664802)],+                               n = 28},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.791759469228055)],+                               n = 4}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.10919929196499197,+                               unseen = -3.9889840465642745,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 52},+                   koData =+                     ClassData{prior = -2.268683541318364, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7884573603642702),+                                    ("hh:mmhh:mm", -0.7884573603642702)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),+                                    ("minutehour", -0.7884573603642702)],+                               n = 9}}),+       ("Halloween",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Passover",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("October",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> more <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vesak",+        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}}),+       ("Earth 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}}),+       ("in|within|after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.12516314295400605,+                               unseen = -4.6913478822291435,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.295836866004329),+                                    ("<integer> more <unit-of-duration>", -3.9889840465642745),+                                    ("three-quarters of an hour", -3.0726933146901194),+                                    ("<integer> + '\"", -3.295836866004329),+                                    ("number.number hours", -3.9889840465642745),+                                    ("second", -3.58351893845611),+                                    ("half a <time-grain>", -3.0726933146901194),+                                    ("day", -3.295836866004329), ("year", -3.9889840465642745),+                                    ("<integer> <unit-of-duration>", -1.6376087894007967),+                                    ("a <unit-of-duration>", -3.0726933146901194),+                                    ("quarter of an hour", -3.0726933146901194),+                                    ("hour", -2.6026896854443837),+                                    ("about|exactly <duration>", -3.9889840465642745),+                                    ("half an hour (abbrev).", -3.58351893845611),+                                    ("<integer> and an half hour", -3.9889840465642745),+                                    ("minute", -1.2809338454620642)],+                               n = 45},+                   koData =+                     ClassData{prior = -2.1400661634962708,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -2.3025850929940455), ("year", -1.791759469228055),+                                    ("<integer> <unit-of-duration>", -1.791759469228055),+                                    ("a <unit-of-duration>", -2.3025850929940455)],+                               n = 6}}),+       ("January",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("three-quarters of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mattu Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Wednesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> + '\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half <integer> (UK style hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Family Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("July",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.48550781578170077,+                               unseen = -2.890371757896165,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("Shavuot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vimy Ridge Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> <duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayyear", -0.6931471805599453),+                                    ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.466337068793427),+                                    ("quarter", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),+                                    ("quarter", -0.8109302162163288)],+                               n = 3}}),+       ("Boss's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Orthodox Easter Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("one twenty two",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("May",+        Classifier{okData =+                     ClassData{prior = 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.45391749149411126, unseen = -6.78105762593618,+                               likelihoods =+                                 HashMap.fromList+                                   [("Navaratriyear (latent)", -6.0867747269123065),+                                    ("Father's Dayyear (latent)", -6.0867747269123065),+                                    ("Ramadanyear (latent)", -6.0867747269123065),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.834011758416939),+                                    ("Bhai Doojyear (latent)", -6.0867747269123065),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.834011758416939),+                                    ("hourday", -4.382026634673881),+                                    ("dayhour", -3.283414346005772),+                                    ("Martin Luther King's Dayyear (latent)", -5.681309618804143),+                                    ("Shemini Atzeretyear (latent)", -6.0867747269123065),+                                    ("daymonth", -5.170483995038151),+                                    ("monthday", -5.681309618804143),+                                    ("monthyear", -4.295015257684252),+                                    ("Yom Ha'atzmautyear (latent)", -6.0867747269123065),+                                    ("Vijayadashamiyear (latent)", -6.0867747269123065),+                                    ("Administrative Professionals' Dayyear (latent)",+                                     -5.681309618804143),+                                    ("Thanksgiving Dayyear (latent)", -4.988162438244197),+                                    ("Thai Pongalyear (latent)", -5.393627546352362),+                                    ("Thiru Onamyear (latent)", -5.393627546352362),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.0867747269123065),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -6.0867747269123065),+                                    ("houryear", -5.393627546352362),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -6.0867747269123065),+                                    ("Christmas<time-of-day> am|pm", -6.0867747269123065),+                                    ("last <day-of-week> of <time>year (latent)",+                                     -6.0867747269123065),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.393627546352362),+                                    ("<time-of-day> am|pmintersect", -4.834011758416939),+                                    ("Earth Houryear (latent)", -6.0867747269123065),+                                    ("Family Dayyear (latent)", -5.170483995038151),+                                    ("Octoberyear (latent)", -4.582697330136033),+                                    ("intersect<time-of-day> am|pm", -6.0867747269123065),+                                    ("Mattu Pongalyear (latent)", -6.0867747269123065),+                                    ("Shavuotyear (latent)", -6.0867747269123065),+                                    ("Dhanterasin <named-month>|year", -6.0867747269123065),+                                    ("at <time-of-day>in|within|after <duration>",+                                     -6.0867747269123065),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.0867747269123065),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -5.681309618804143),+                                    ("Marchyear (latent)", -6.0867747269123065),+                                    ("Sukkotyear (latent)", -5.681309618804143),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -6.0867747269123065),+                                    ("Clean Mondayyear (latent)", -5.681309618804143),+                                    ("monthhour", -5.681309618804143),+                                    ("todayat <time-of-day>", -6.0867747269123065),+                                    ("Thursday<time> timezone", -4.382026634673881),+                                    ("from|since|after <time>December", -6.0867747269123065),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -6.0867747269123065),+                                    ("Palm SundaySunday", -5.681309618804143),+                                    ("dayday", -3.8895501495760874),+                                    ("<time> <part-of-day>at <time-of-day>", -6.0867747269123065),+                                    ("mm/ddat <time-of-day>", -6.0867747269123065),+                                    ("tonightat <time-of-day>", -6.0867747269123065),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -5.393627546352362),+                                    ("today<time-of-day> am|pm", -6.0867747269123065),+                                    ("Februarythe <day-of-month> (ordinal)", -5.681309618804143),+                                    ("at <time-of-day><time> <part-of-day>", -6.0867747269123065),+                                    ("mm/dd<time-of-day> am|pm", -6.0867747269123065),+                                    ("hourhour", -4.834011758416939),+                                    ("<time-of-day> am|pmon <date>", -4.071871706370042),+                                    ("National Patriots' Dayyear (latent)", -5.393627546352362),+                                    ("Wednesdaythis|last|next <cycle>", -6.0867747269123065),+                                    ("Lentyear (latent)", -6.0867747269123065),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.582697330136033),+                                    ("Boghiyear (latent)", -6.0867747269123065),+                                    ("dayyear", -1.9123874570166697),+                                    ("Thursdayfrom|since|after <time>", -5.681309618804143),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -6.0867747269123065),+                                    ("Thursdayat <time-of-day>", -5.681309618804143),+                                    ("Islamic New Yearyear (latent)", -5.681309618804143),+                                    ("Laylat al-Qadryear (latent)", -5.170483995038151),+                                    ("Chhathin <named-month>|year", -6.0867747269123065),+                                    ("Vasant Panchamiin <named-month>|year", -6.0867747269123065),+                                    ("Diwaliin <named-month>|year", -6.0867747269123065),+                                    ("Discovery Dayyear (latent)", -5.681309618804143),+                                    ("Shrove Tuesdayyear (latent)", -6.0867747269123065),+                                    ("intersect by \",\", \"of\", \"from\" for year<time-of-day> am|pm",+                                     -5.393627546352362),+                                    ("<time-of-day> am|pmtomorrow", -5.393627546352362),+                                    ("Yom Kippuryear (latent)", -6.0867747269123065),+                                    ("<part-of-day> of <time>year (latent)", -6.0867747269123065),+                                    ("minutehour", -5.170483995038151),+                                    ("Kaanum Pongalyear (latent)", -5.681309618804143),+                                    ("Maha Saptamiyear (latent)", -6.0867747269123065),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.681309618804143),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.382026634673881),+                                    ("for <duration> from <time>December", -6.0867747269123065),+                                    ("tomorrow<time-of-day> sharp|exactly", -6.0867747269123065),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.170483995038151),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.681309618804143),+                                    ("Pentecostyear (latent)", -6.0867747269123065),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.170483995038151),+                                    ("Eid al-Fitryear (latent)", -6.0867747269123065),+                                    ("Mondayin|during the <part-of-day>", -6.0867747269123065),+                                    ("Raksha Bandhanyear (latent)", -6.0867747269123065),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.681309618804143),+                                    ("Navaratriin <named-month>|year", -6.0867747269123065),+                                    ("Ashurayear (latent)", -6.0867747269123065),+                                    ("Chinese New Yearyear (latent)", -6.0867747269123065),+                                    ("Sundayyear (latent)", -6.0867747269123065),+                                    ("Lag BaOmeryear (latent)", -6.0867747269123065),+                                    ("last weekend of <named-month>year (latent)",+                                     -6.0867747269123065),+                                    ("Eid al-Adhayear (latent)", -5.170483995038151),+                                    ("intersectin|during the <part-of-day>", -6.0867747269123065),+                                    ("Christmasat <time-of-day>", -6.0867747269123065),+                                    ("Passoveryear (latent)", -6.0867747269123065),+                                    ("Lazarus Saturdayyear (latent)", -6.0867747269123065),+                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",+                                     -6.0867747269123065),+                                    ("Yom HaShoahyear (latent)", -5.681309618804143),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -5.681309618804143),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -6.0867747269123065),+                                    ("Thai Pongalin <named-month>|year", -6.0867747269123065),+                                    ("Septemberyear (latent)", -5.681309618804143),+                                    ("mm/ddyear (latent)", -6.0867747269123065),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.834011758416939),+                                    ("Halloweenyear (latent)", -6.0867747269123065),+                                    ("<ordinal> last <cycle> of <time>year (latent)",+                                     -5.681309618804143),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.393627546352362),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -6.0867747269123065),+                                    ("at <time-of-day>intersect", -5.681309618804143),+                                    ("Rosh Hashanahyear (latent)", -5.393627546352362),+                                    ("Dhanterasyear (latent)", -6.0867747269123065),+                                    ("Tu BiShvatyear (latent)", -6.0867747269123065),+                                    ("Holiyear (latent)", -5.393627546352362),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -6.0867747269123065),+                                    ("Holika Dahanyear (latent)", -5.393627546352362),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -6.0867747269123065),+                                    ("dayminute", -3.4477173972970485),+                                    ("Mawlidyear (latent)", -6.0867747269123065),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.681309618804143),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -6.0867747269123065),+                                    ("Jumu'atul-Widayear (latent)", -5.170483995038151),+                                    ("minuteday", -2.4491885671859213),+                                    ("absorption of , after named dayintersect",+                                     -6.0867747269123065),+                                    ("intersectyear (latent)", -6.0867747269123065),+                                    ("Orthodox Easter Sundayyear (latent)", -6.0867747269123065),+                                    ("<ordinal> <cycle> of <time>year (latent)",+                                     -6.0867747269123065),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -6.0867747269123065),+                                    ("Boss's Dayyear (latent)", -5.681309618804143),+                                    ("Global Youth Service Dayyear (latent)", -6.0867747269123065),+                                    ("Tisha B'Avyear (latent)", -6.0867747269123065),+                                    ("Isra and Mi'rajyear (latent)", -5.170483995038151),+                                    ("at <time-of-day>absorption of , after named day",+                                     -6.0867747269123065),+                                    ("Christmasyear (latent)", -5.681309618804143),+                                    ("Naraka Chaturdashiyear (latent)", -5.681309618804143),+                                    ("at <time-of-day>on <date>", -4.988162438244197),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.477336814478207),+                                    ("dayweek", -6.0867747269123065),+                                    ("Easter Sundayyear (latent)", -5.393627546352362),+                                    ("Labour Dayyear (latent)", -6.0867747269123065),+                                    ("weekyear", -4.988162438244197),+                                    ("hh:mmin|during the <part-of-day>", -5.393627546352362),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.681309618804143),+                                    ("Hanukkahyear (latent)", -5.393627546352362),+                                    ("February<time> <part-of-day>", -6.0867747269123065),+                                    ("Tuesdayin <named-month>|year", -6.0867747269123065),+                                    ("Great Lentyear (latent)", -6.0867747269123065),+                                    ("tomorrowat <time-of-day>", -5.393627546352362),+                                    ("between <time> and <time>on <date>", -4.477336814478207),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\" for year",+                                     -6.0867747269123065),+                                    ("last <cycle> of <time>year (latent)", -5.393627546352362),+                                    ("at <time-of-day>tomorrow", -5.681309618804143),+                                    ("tomorrow<time-of-day> am|pm", -6.0867747269123065),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -6.0867747269123065),+                                    ("Diwaliyear (latent)", -6.0867747269123065),+                                    ("Black Fridayyear (latent)", -5.681309618804143),+                                    ("the <ordinal> last <cycle> of <time>year (latent)",+                                     -6.0867747269123065),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -6.0867747269123065),+                                    ("Chhathyear (latent)", -5.681309618804143),+                                    ("Vasant Panchamiyear (latent)", -6.0867747269123065),+                                    ("Palm Sundayintersect", -6.0867747269123065),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -6.0867747269123065),+                                    ("Februaryintersect", -6.0867747269123065),+                                    ("Mother's Dayyear (latent)", -6.0867747269123065),+                                    ("Simchat Torahyear (latent)", -6.0867747269123065),+                                    ("Victoria Dayyear (latent)", -5.681309618804143),+                                    ("minuteyear", -6.0867747269123065)],+                               n = 329},+                   koData =+                     ClassData{prior = -1.0082282271998406, unseen = -6.398594934535208,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.787491742782046),+                                    ("hourday", -4.787491742782046),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.703782474656201),+                                    ("dayhour", -3.138833117194664),+                                    ("Tuesdayfrom|since|after <time>", -5.703782474656201),+                                    ("daymonth", -3.56371631115993),+                                    ("monthday", -5.298317366548036),+                                    ("monthyear", -4.451019506160833),+                                    ("<time-of-day> am|pmyear (latent)", -5.298317366548036),+                                    ("Thai Pongalyear (latent)", -5.0106352940962555),+                                    ("intersecthh:mm", -5.703782474656201),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.703782474656201),+                                    ("houryear", -4.787491742782046),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.703782474656201),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.0106352940962555),+                                    ("<time-of-day> am|pmintersect", -4.451019506160833),+                                    ("until <time>on <date>", -5.0106352940962555),+                                    ("Octoberyear (latent)", -5.703782474656201),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.703782474656201),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -4.451019506160833),+                                    ("about|exactly <time-of-day>year (latent)",+                                     -5.703782474656201),+                                    ("absorption of , after named dayJuly", -5.298317366548036),+                                    ("from|since|after <time>July", -5.703782474656201),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -4.787491742782046),+                                    ("Clean Mondayyear (latent)", -5.703782474656201),+                                    ("monthhour", -5.703782474656201),+                                    ("hourmonth", -4.787491742782046),+                                    ("todayat <time-of-day>", -5.703782474656201),+                                    ("from|since|after <time>December", -5.703782474656201),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -5.703782474656201),+                                    ("Mondayyear (latent)", -5.0106352940962555),+                                    ("dayday", -5.298317366548036),+                                    ("mm/ddat <time-of-day>", -5.298317366548036),+                                    ("<time-of-day> am|pmon <date>", -4.451019506160833),+                                    ("dayyear", -2.7333680090865),+                                    ("Thursdaymm/dd", -5.703782474656201),+                                    ("New Year's Dayyear (latent)", -5.298317366548036),+                                    ("Thursdayfrom|since|after <time>", -3.9990343824177756),+                                    ("Thursdayat <time-of-day>", -4.451019506160833),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.703782474656201),+                                    ("Aprilyear (latent)", -5.703782474656201),+                                    ("monthminute", -5.703782474656201),+                                    ("<time-of-day> am|pmtomorrow", -5.703782474656201),+                                    ("Thursdayhh:mm", -4.787491742782046),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.703782474656201),+                                    ("minutemonth", -3.912023005428146),+                                    ("week-endin <named-month>|year", -5.703782474656201),+                                    ("Augustyear (latent)", -5.298317366548036),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.298317366548036),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.298317366548036),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -5.298317366548036),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.703782474656201),+                                    ("Sundayyear (latent)", -5.0106352940962555),+                                    ("Christmasat <time-of-day>", -5.703782474656201),+                                    ("from|since|after <time>year (latent)", -4.451019506160833),+                                    ("<duration> after|before|from <time>December",+                                     -5.703782474656201),+                                    ("yesterday<time-of-day> am|pm", -5.703782474656201),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -5.703782474656201),+                                    ("mm/ddyear (latent)", -5.703782474656201),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -5.0106352940962555),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.703782474656201),+                                    ("at <time-of-day>intersect", -5.298317366548036),+                                    ("hh:mmyear (latent)", -4.605170185988091),+                                    ("Holiyear (latent)", -5.703782474656201),+                                    ("until <time><time-of-day> am|pm", -5.703782474656201),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.703782474656201),+                                    ("dayminute", -3.1780538303479458),+                                    ("intersectSeptember", -4.199705077879927),+                                    ("minuteday", -2.635729539522584),+                                    ("absorption of , after named dayintersect",+                                     -5.703782474656201),+                                    ("Februaryin|during the <part-of-day>", -5.703782474656201),+                                    ("hh:mmon <date>", -3.6888794541139363),+                                    ("Saturdayyear (latent)", -5.703782474656201),+                                    ("from|since|after <time>on <date>", -4.787491742782046),+                                    ("absorption of , after named daySeptember",+                                     -4.787491742782046),+                                    ("Naraka Chaturdashiyear (latent)", -5.703782474656201),+                                    ("on <date>September", -5.298317366548036),+                                    ("at <time-of-day>on <date>", -5.298317366548036),+                                    ("in <named-month>|yearyear (latent)", -5.703782474656201),+                                    ("dayweek", -5.703782474656201),+                                    ("Easter Sundayyear (latent)", -5.298317366548036),+                                    ("Thursday<time-of-day> am|pm", -5.0106352940962555),+                                    ("weekyear", -5.298317366548036),+                                    ("<named-month> <day-of-month> (non ordinal)until <time>",+                                     -5.703782474656201),+                                    ("intersect by \",\", \"of\", \"from\" for yearhh:mm",+                                     -5.0106352940962555),+                                    ("Sundayfrom|since|after <time>", -5.703782474656201),+                                    ("absorption of , after named dayFebruary", -4.787491742782046),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.703782474656201),+                                    ("tomorrowat <time-of-day>", -5.703782474656201),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.703782474656201),+                                    ("last <cycle> of <time>year (latent)", -5.298317366548036),+                                    ("tomorrow<time-of-day> am|pm", -5.703782474656201),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -5.0106352940962555),+                                    ("Diwaliyear (latent)", -5.298317366548036),+                                    ("<time-of-day> - <time-of-day> (interval)July",+                                     -5.703782474656201),+                                    ("Fridayyear (latent)", -5.298317366548036),+                                    ("minuteyear", -4.451019506160833)],+                               n = 189}}),+       ("one eleven",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("after lunch/work/school",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("early morning",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <number> (implicit minutes)",+        Classifier{okData =+                     ClassData{prior = -1.2685113254635072,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3184537311185346),+                                    ("integer (0..19)", -1.2992829841302609)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.33024168687057687,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2231435513142097),+                                    ("integer (0..19)", -1.6094379124341003)],+                               n = 23}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.791759469228055),+                                    ("ordinal (digits)quarter (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("quarteryear", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+                                     -2.1972245773362196),+                                    ("ordinal (digits)day (grain)this|last|next <cycle>",+                                     -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.367295829986474,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 27},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.001480000210124),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("hh:mmhh:mm", -2.001480000210124),+                                    ("dayday", -2.512305623976115),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+                                    ("hourhour", -2.512305623976115),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.1986731175506815),+                                    ("dayhour", -2.793208009442517),+                                    ("<day-of-month> (ordinal)time-of-day (latent)",+                                     -3.1986731175506815),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -3.1986731175506815),+                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),+                                    ("minuteminute", -2.793208009442517),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.793208009442517),+                                    ("dayday", -3.1986731175506815),+                                    ("hourhour", -2.505525936990736),+                                    ("dayyear", -3.1986731175506815),+                                    ("minutehour", -2.2823823856765264),+                                    ("hh:mmintersect", -2.793208009442517),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<time-of-day> am|pm",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+                                     -3.1986731175506815)],+                               n = 14}}),+       ("Saturday",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("the <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.7346010553881064),+                                    ("week (grain)October", -1.7346010553881064),+                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",+                                     -1.7346010553881064),+                                    ("weekday", -1.2237754316221157)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number.number hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -2.3025850929940455),+                                    ("hourminute", -2.3025850929940455),+                                    ("time-of-day (latent)<time-of-day> sharp|exactly",+                                     -2.70805020110221),+                                    ("time-of-day (latent)hh:mm", -2.70805020110221),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.0149030205422647),+                                    ("hourhour", -1.791759469228055),+                                    ("minutehour", -1.6094379124341003),+                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+                               n = 9}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),+                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],+                               n = 4}}),+       ("Global Youth Service 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}}),+       ("Tisha B'Av",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yyyy-mm-dd",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -0.1431008436406733, unseen = -5.081404364984463,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -3.822121282019774e-2),+                                    ("intersect 2 numbers", -3.6888794541139363)],+                               n = 156},+                   koData =+                     ClassData{prior = -2.0149030205422647, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1349799328389845),+                                    ("negative numbers", -0.6931471805599453),+                                    ("compose by multiplication", -1.9459101490553135)],+                               n = 24}}),+       ("mm/dd/yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Civic Holiday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> for <duration>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -1.0296194171811581),+                                    ("intersect<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -1.540445040947149),+                                    ("from|since|after <time><integer> <unit-of-duration>",+                                     -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.2039728043259361),+                                    ("December<integer> <unit-of-duration>", -1.2039728043259361)],+                               n = 2}}),+       ("Memorial Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Monday",+        Classifier{okData =+                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -1.2237754316221157,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm:ss",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Hanukkah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.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 = -0.40546510810816444,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),+                                    ("hour", -0.9808292530117262),+                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>integer (numeric)",+                                     -1.0986122886681098),+                                    ("hour", -1.0986122886681098)],+                               n = 1}}),+       ("Labour Day",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9808292530117262),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -2.0794415416798357),+                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+                                     -1.6739764335716716),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+                                     -1.6739764335716716)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0986122886681098),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+                                     -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+                                     -1.3862943611198906)],+                               n = 3}}),+       ("half a <time-grain>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("Valentine's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("April",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maha Saptami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Discovery Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -3.822121282019774e-2,+                               unseen = -4.3694478524670215,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 77},+                   koData =+                     ClassData{prior = -3.283414346005772, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<part-of-day> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.3513752571634776),+                                    ("part of daysintersect", -2.3513752571634776),+                                    ("hourday", -0.9650808960435872),+                                    ("part of daysthe <day-of-month> (ordinal)",+                                     -2.3513752571634776),+                                    ("part of daysthe <day-of-month> (number)",+                                     -2.3513752571634776),+                                    ("part of daysthis <time>", -2.3513752571634776),+                                    ("part of daysChristmas", -1.9459101490553135)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time> for <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("six thirty six a.m.",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.252762968495368),+                                    ("one twenty two", -0.8472978603872037),+                                    ("one eleven", -1.252762968495368)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Shrove Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<day-of-month> (ordinal or number) of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.3513752571634776),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.3513752571634776),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)February", -1.9459101490553135),+                                    ("month", -0.9650808960435872),+                                    ("ordinal (digits)March", -2.3513752571634776),+                                    ("integer (numeric)July", -2.3513752571634776)],+                               n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.5040773967762742),+                                    ("month", -1.5040773967762742)],+                               n = 1}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("part of days", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Kaanum Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom Kippur",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("The Twelfth",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("powers of tens",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Friday",+        Classifier{okData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("early morning", -2.5257286443082556),+                                    ("hour", -0.7339691750802004),+                                    ("part of days", -0.8209805520698302)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.916290731874155),+                                    ("part of days", -0.916290731874155)],+                               n = 1}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh(:mm) - <time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Groundhog Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|last|next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.15600424847658126, unseen = -5.10594547390058,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.1295745142720766),+                                    ("month (grain)", -2.797281334830153),+                                    ("year (grain)", -2.5349170703626616),+                                    ("week (grain)", -1.1295745142720766),+                                    ("quarter", -3.4904285153900982), ("year", -2.5349170703626616),+                                    ("month", -2.797281334830153),+                                    ("quarter (grain)", -3.4904285153900982)],+                               n = 77},+                   koData =+                     ClassData{prior = -1.9348603128687285,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2809338454620642),+                                    ("week (grain)", -1.2809338454620642),+                                    ("day", -1.9740810260220096),+                                    ("day (grain)", -1.9740810260220096)],+                               n = 13}}),+       ("Mother's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Simchat Torah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Victoria Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Eve",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Raksha Bandhan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ashura",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Palm Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Eid al-Adha",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),+                                    ("time-of-day (latent)", -1.9459101490553135),+                                    ("<time-of-day> am|pm", -1.9459101490553135),+                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+                                    ("minute", -1.540445040947149)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.5753641449035618,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -1.7047480922384253),+                                    ("ordinal (digits)", -0.2006706954621511)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.8266785731844679,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.8109302162163288),+                                    ("ordinal (digits)", -0.587786664902119)],+                               n = 7}}),+       ("last weekend of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),+                                    ("month", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lag BaOmer",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fractional number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Chinese New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|this|next <season>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.635159922909596, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.11441035117774422),+                                    ("integer (0..19)", -2.3581549441488563)],+                               n = 71},+                   koData =+                     ClassData{prior = -0.7547050735593787, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.878087785311434e-2),+                                    ("integer (0..19)", -3.0910424533583156),+                                    ("integer 21..99", -3.4965075614664802)],+                               n = 63}}),+       ("beginning of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("SundayMarch", -1.6094379124341003),+                                    ("MondayMarch", -1.6094379124341003),+                                    ("Sundayintersect", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -5.181783550292085,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5370924029585704),+                                    ("integer (0..19)year (grain)", -2.9789251552376097),+                                    ("integer (numeric)day (grain)", -2.6112003751122925),+                                    ("integer (0..19)second (grain) ", -3.7898553714539385),+                                    ("integer (0..19)hour (grain)", -3.096708190893993),+                                    ("second", -3.3843902633457743),+                                    ("integer (numeric)second (grain) ", -4.07753744390572),+                                    ("integer (numeric)year (grain)", -3.3843902633457743),+                                    ("day", -2.342936388517613), ("year", -2.5370924029585704),+                                    ("integer (numeric)week (grain)", -3.096708190893993),+                                    ("integer (0..19)month (grain)", -3.5667118201397288),+                                    ("hour", -2.691243082785829), ("month", -3.230239583518516),+                                    ("integer (numeric)minute (grain)", -3.230239583518516),+                                    ("integer (0..19)minute (grain)", -3.096708190893993),+                                    ("integer (numeric)month (grain)", -4.07753744390572),+                                    ("minute", -2.5370924029585704),+                                    ("integer (numeric)hour (grain)", -3.5667118201397288),+                                    ("integer (0..19)day (grain)", -3.5667118201397288),+                                    ("integer (0..19)week (grain)", -3.230239583518516)],+                               n = 77},+                   koData =+                     ClassData{prior = -2.0794415416798357, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+                                    ("integer (numeric)hour (grain)", -1.4087672169719492),+                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],+                               n = 11}}),+       ("hhmm (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.2546422183735807, unseen = -5.37989735354046,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>", -3.765840495250065),+                                    ("integer after|past <hour-of-day>", -3.9889840465642745),+                                    ("at <time-of-day>", -2.1564025828159643),+                                    ("<time-of-day> o'clock", -4.276666119016055),+                                    ("half after|past <hour-of-day>", -4.276666119016055),+                                    ("time-of-day (latent)", -1.7117167615545186),+                                    ("hhmm (latent)", -4.68213122712422),+                                    ("hh:mm", -2.330755969960742),+                                    ("quarter after|past <hour-of-day>", -4.68213122712422),+                                    ("until <time>", -3.9889840465642745),+                                    ("about|exactly <time-of-day>", -4.68213122712422),+                                    ("hour", -1.1856236656577395),+                                    ("<time-of-day> sharp|exactly", -4.68213122712422),+                                    ("minute", -1.791759469228055)],+                               n = 100},+                   koData =+                     ClassData{prior = -1.492516574375198, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.20545280453606),+                                    ("from|since|after <time>", -3.20545280453606),+                                    ("<hour-of-day> <integer>", -3.6109179126442243),+                                    ("time-of-day (latent)", -1.085189268335969),+                                    ("hour", -1.0459685551826876), ("minute", -2.6946271807700692)],+                               n = 29}}),+       ("Yom Ha'atzmaut",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thiru Onam",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thai Pongal",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Vijayadashami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Administrative Professionals' 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}}),+       ("Thanksgiving Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("part of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.1400661634962708),+                                    ("year (grain)", -2.4277482359480516),+                                    ("second", -2.833213344056216),+                                    ("week (grain)", -2.1400661634962708),+                                    ("day", -2.1400661634962708),+                                    ("minute (grain)", -2.833213344056216),+                                    ("year", -2.4277482359480516),+                                    ("second (grain) ", -2.833213344056216),+                                    ("minute", -2.833213344056216),+                                    ("day (grain)", -2.1400661634962708)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -1.7227665977411035),+                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+                                    ("quarter (grain)", -1.9459101490553135)],+                               n = 7}}),+       ("at the beginning|end of <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -0.6931471805599453),+                                    ("year", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Dhanteras",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tu BiShvat",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Whit Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -5.6352936551131744e-2,+                               unseen = -4.2626798770413155,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},+                   koData =+                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("Holi",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Rosh Hashanah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <named-day> ago|back",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Thursday", -0.6931471805599453),+                                    ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Holika Dahan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second (grain) ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..twentieth,thirtieth,...)",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Mawlid",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Jumu'atul-Wida",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("until <time>",+        Classifier{okData =+                     ClassData{prior = -1.1786549963416462, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -2.159484249353372),+                                    ("time-of-day (latent)", -2.5649493574615367),+                                    ("year", -2.159484249353372),+                                    ("<time-of-day> am|pm", -1.8718021769015913),+                                    ("hh:mm", -2.159484249353372), ("hour", -2.159484249353372),+                                    ("minute", -1.6486586255873816)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.2192034840549946),+                                    ("yesterday", -2.7300291078209855),+                                    ("day", -2.7300291078209855),+                                    ("time-of-day (latent)", -1.6314168191528755),+                                    ("hh:mm", -2.2192034840549946), ("hour", -1.5260563034950494),+                                    ("minute", -1.749199854809259)],+                               n = 18}}),+       ("the <cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.252762968495368),+                                    ("dayday", -0.8472978603872037),+                                    ("day (grain)yesterday", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about|exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+                                    ("this|last|next <cycle>", -1.791759469228055),+                                    ("day", -2.4849066497880004),+                                    ("time-of-day (latent)", -2.890371757896165),+                                    ("hhmm (latent)", -2.4849066497880004),+                                    ("<time-of-day> am|pm", -2.890371757896165),+                                    ("hour", -2.1972245773362196),+                                    ("next <time>", -2.890371757896165),+                                    ("this|next <day-of-week>", -2.890371757896165),+                                    ("minute", -2.4849066497880004)],+                               n = 12},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -2.0794415416798357)],+                               n = 2}}),+       ("Sukkot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthyear", -1.540445040947149),+                                    ("Marcha <unit-of-duration>", -1.9459101490553135),+                                    ("March<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("Vijayadashami<integer> <unit-of-duration>",+                                     -1.9459101490553135),+                                    ("Administrative Professionals' Day<integer> <unit-of-duration>",+                                     -1.9459101490553135),+                                    ("dayyear", -1.540445040947149)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("World Vegan Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.5292593254548287, unseen = -4.969813299576001,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -4.269697449699962),+                                    ("dayhour", -3.8642323415917974),+                                    ("daymonth", -3.016934481204594),+                                    ("<named-month> <day-of-month> (non ordinal)Friday",+                                     -4.269697449699962),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.5765502691400166),+                                    ("Wednesdayintersect", -4.269697449699962),+                                    ("Black Fridaythis|last|next <cycle>", -4.269697449699962),+                                    ("Labour Daythis|last|next <cycle>", -4.269697449699962),+                                    ("<part-of-day> of <time>February", -4.269697449699962),+                                    ("Saturday<time-of-day> am|pm", -4.269697449699962),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -3.8642323415917974),+                                    ("on <date><time-of-day> am|pm", -4.269697449699962),+                                    ("hourmonth", -4.269697449699962),+                                    ("Fridayintersect by \",\", \"of\", \"from\" for year",+                                     -4.269697449699962),+                                    ("dayday", -2.3978952727983707),+                                    ("the <day-of-month> (ordinal)February", -3.8642323415917974),+                                    ("WednesdayOctober", -4.269697449699962),+                                    ("Wednesdaythis|last|next <cycle>", -3.8642323415917974),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.353406717825807),+                                    ("dayyear", -3.1710851610318525),+                                    ("Saturday<named-month> <day-of-month> (non ordinal)",+                                     -4.269697449699962),+                                    ("Thursdayhh:mm", -3.8642323415917974),+                                    ("Thanksgiving Daythis|last|next <cycle>", -4.269697449699962),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -3.8642323415917974),+                                    ("TuesdayOctober", -4.269697449699962),+                                    ("the <day-of-month> (ordinal)March", -4.269697449699962),+                                    ("Mondaythis|last|next <cycle>", -4.269697449699962),+                                    ("Fridayintersect", -4.269697449699962),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -3.8642323415917974),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.8642323415917974),+                                    ("Tuesdaythis|last|next <cycle>", -4.269697449699962),+                                    ("Sunday<named-month> <day-of-month> (non ordinal)",+                                     -4.269697449699962),+                                    ("dayminute", -2.883403088580071),+                                    ("minuteday", -3.353406717825807),+                                    ("this|last|next <cycle>Sunday", -4.269697449699962),+                                    ("Sundaythis|last|next <cycle>", -4.269697449699962),+                                    ("weekday", -4.269697449699962),+                                    ("dayweek", -3.1710851610318525),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.8642323415917974)],+                               n = 43},+                   koData =+                     ClassData{prior = -0.8892620594862358, unseen = -4.770684624465665,+                               likelihoods =+                                 HashMap.fromList+                                   [("week-endJuly", -4.069026754237811),+                                    ("week-endOctober", -3.3758795736778655),+                                    ("daymonth", -1.8718021769015913),+                                    ("TuesdaySeptember", -4.069026754237811),+                                    ("Wednesdayintersect", -4.069026754237811),+                                    ("hourmonth", -2.9704144655697013),+                                    ("Fridaythis|last|next <cycle>", -4.069026754237811),+                                    ("SundayFebruary", -4.069026754237811),+                                    ("WednesdayOctober", -4.069026754237811),+                                    ("week-endintersect", -4.069026754237811),+                                    ("dayyear", -4.069026754237811),+                                    ("FridayJuly", -3.6635616461296463),+                                    ("FridaySeptember", -4.069026754237811),+                                    ("WednesdayFebruary", -4.069026754237811),+                                    ("minutemonth", -3.152736022363656),+                                    ("SundayMarch", -4.069026754237811),+                                    ("MondayFebruary", -3.6635616461296463),+                                    ("Fridayintersect", -4.069026754237811),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.6635616461296463),+                                    ("dayminute", -3.3758795736778655),+                                    ("SaturdaySeptember", -4.069026754237811),+                                    ("intersectSeptember", -3.152736022363656),+                                    ("MondayMarch", -4.069026754237811),+                                    ("on <date>September", -3.6635616461296463),+                                    ("Tuesdayintersect", -4.069026754237811),+                                    ("Sundayintersect", -4.069026754237811)],+                               n = 30}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.772588722239781),+                                    ("Martin Luther King's Day", -2.772588722239781),+                                    ("Mother's Day", -2.772588722239781),+                                    ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),+                                    ("Chinese New Year", -2.367123614131617),+                                    ("Thanksgiving Day", -2.772588722239781),+                                    ("Easter Sunday", -2.772588722239781),+                                    ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),+                                    ("week-end", -2.772588722239781)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -2.5649493574615367), ("day", -2.159484249353372),+                                    ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),+                                    ("week-end", -1.466337068793427)],+                               n = 7}}),+       ("March",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month>|<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.120263536200091),+                                    ("Thursdayordinal (digits)", -2.5257286443082556),+                                    ("day", -2.120263536200091),+                                    ("Augustordinal (digits)", -2.5257286443082556),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.120263536200091),+                                    ("Tuesdayordinal (digits)", -2.5257286443082556),+                                    ("month", -1.2729656758128873),+                                    ("Marchordinal (digits)", -2.5257286443082556)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>ordinal (digits)",+                                     -1.8718021769015913),+                                    ("Augustordinal (digits)", -1.8718021769015913),+                                    ("month", -1.466337068793427)],+                               n = 2}}),+       ("Clean Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Easter Sunday",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("Christmas",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm.dd.yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Isra and Mi'raj",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> after|before|from <time>",+        Classifier{okData =+                     ClassData{prior = -0.3184537311185346,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>now", -2.803360380906535),+                                    ("a <unit-of-duration>Christmas", -2.803360380906535),+                                    ("dayday", -2.803360380906535),+                                    ("<integer> <unit-of-duration>today", -2.803360380906535),+                                    ("daysecond", -2.803360380906535),+                                    ("a <unit-of-duration>right now", -2.803360380906535),+                                    ("minutenograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Easter Sunday",+                                     -2.803360380906535),+                                    ("secondnograin", -2.803360380906535),+                                    ("yearday", -2.1102132003465894),+                                    ("daynograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -2.4423470353692043),+                                    ("dayday", -2.03688192726104),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -2.4423470353692043)],+                               n = 3}}),+       ("<day-of-month> (ordinal or number) of <month>",+        Classifier{okData =+                     ClassData{prior = -8.004270767353637e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.803360380906535),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.803360380906535),+                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+                                    ("integer (numeric)this|last|next <cycle>",+                                     -2.3978952727983707),+                                    ("ordinal (digits)February", -2.803360380906535),+                                    ("integer (numeric)February", -2.3978952727983707),+                                    ("month", -0.9315582040049435),+                                    ("ordinal (digits)March", -2.803360380906535),+                                    ("integer (numeric)July", -2.803360380906535)],+                               n = 12},+                   koData =+                     ClassData{prior = -2.5649493574615367,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.7047480922384253),+                                    ("month", -1.7047480922384253)],+                               n = 1}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Labour Day weekend",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Naraka Chaturdashi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("beginning of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martin Luther King's Day", -2.9704144655697013),+                                    ("Halloween", -2.9704144655697013),+                                    ("Wednesday", -2.9704144655697013),+                                    ("Boss's Day", -2.9704144655697013),+                                    ("Memorial Day", -2.9704144655697013),+                                    ("Monday", -2.9704144655697013),+                                    ("Discovery Day", -2.9704144655697013),+                                    ("Mother's Day", -2.9704144655697013),+                                    ("day", -1.0986122886681098),+                                    ("Thanksgiving Day", -2.9704144655697013),+                                    ("March", -2.9704144655697013), ("month", -2.9704144655697013),+                                    ("Tuesday", -2.277267285009756)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> sharp|exactly",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.1400661634962708),+                                    ("time-of-day (latent)", -2.1400661634962708),+                                    ("hhmm (latent)", -2.1400661634962708),+                                    ("<time-of-day> am|pm", -2.1400661634962708),+                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+                                    ("minute", -1.4469189829363254)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <named-month>|year",+        Classifier{okData =+                     ClassData{prior = -0.2719337154836418,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("<year> (bc|ad)", -1.845826690498331),+                                    ("October", -2.9444389791664407),+                                    ("year (latent)", -1.3350010667323402),+                                    ("year", -0.9295359586241757), ("March", -2.9444389791664407),+                                    ("month", -2.538973871058276)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.4350845252893227, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.6739764335716716),+                                    ("year (latent)", -1.3862943611198906),+                                    ("year", -1.3862943611198906), ("month", -1.6739764335716716)],+                               n = 5}}),+       ("Islamic New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.696104113612832e-2),+                                    ("integer (0..19)", -2.6026896854443837)],+                               n = 25}}),+       ("about|exactly <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("half a <time-grain>", -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}}),+       ("half an hour (abbrev).",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               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.5596157879354228, unseen = -4.127134385045092,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -3.012261575505202),+                                    ("from|since|after <time>hh:mm", -2.501435951739211),+                                    ("minuteminute", -1.2776605201170952),+                                    ("hh:mmhh:mm", -1.9136492868370918),+                                    ("dayday", -3.012261575505202),+                                    ("hourhour", -3.012261575505202),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -3.012261575505202),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -3.012261575505202),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -3.012261575505202)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.2386784521643803),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -3.2386784521643803),+                                    ("daymonth", -2.833213344056216),+                                    ("<time-of-day> am|pmintersect", -3.2386784521643803),+                                    ("hh:mm<time-of-day> am|pm", -2.833213344056216),+                                    ("minuteminute", -1.9859154836690123),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("dayday", -3.2386784521643803),+                                    ("from|since|after <time><day-of-month> (ordinal or number) <named-month>",+                                     -2.833213344056216),+                                    ("hourhour", -2.5455312716044354),+                                    ("minutehour", -2.833213344056216),+                                    ("hh:mmintersect", -2.322387720290225),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.2386784521643803),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("from|since|after <time>intersect", -2.833213344056216)],+                               n = 15}}),+       ("Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Day",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("fortnight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> and an half hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("National Patriots' Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Laylat al-Qadr",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Boghi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("at the beginning|end of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("January", -1.3862943611198906),+                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>hh:mm", -2.4849066497880004),+                                    ("minuteminute", -1.529395204760564),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.4011973816621555),+                                    ("hh:mmhh:mm", -1.8971199848858813),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -1.8971199848858813),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -3.4011973816621555),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.4418327522790392, unseen = -4.532599493153256,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.828641396489095),+                                    ("until <time>time-of-day (latent)", -2.575878427993727),+                                    ("hh:mmtime-of-day (latent)", -2.12389330425067),+                                    ("hh:mm<time-of-day> am|pm", -3.4231762883809305),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -3.828641396489095),+                                    ("at <time-of-day><time-of-day> am|pm", -3.828641396489095),+                                    ("hourhour", -1.6314168191528755),+                                    ("from|since|after <time><integer> to|till|before <hour-of-day>",+                                     -3.828641396489095),+                                    ("hourminute", -3.828641396489095),+                                    ("minutehour", -1.5773495978825998),+                                    ("until <time><time-of-day> am|pm", -3.4231762883809305),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -2.575878427993727),+                                    ("at <time-of-day>time-of-day (latent)", -3.4231762883809305),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -3.4231762883809305)],+                               n = 36}}),+       ("military spelled out numbers am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("winter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> after <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+                                     -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.42121346507630353,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5455312716044354),+                                    ("Marchinteger (numeric)", -2.833213344056216),+                                    ("Aprilinteger (numeric)", -3.2386784521643803),+                                    ("month", -0.8407831793660099),+                                    ("Februaryinteger (numeric)", -1.9859154836690123),+                                    ("Septemberinteger (numeric)", -2.833213344056216),+                                    ("Octoberinteger (numeric)", -2.833213344056216),+                                    ("Julyinteger (numeric)", -2.1400661634962708)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.3353749158170367),+                                    ("Marchinteger (numeric)", -2.740840023925201),+                                    ("Aprilinteger (numeric)", -2.740840023925201),+                                    ("month", -0.9490805546971459),+                                    ("from|since|after <time>integer (numeric)",+                                     -2.3353749158170367),+                                    ("Julyinteger (numeric)", -1.6422277352570913)],+                               n = 11}}),+       ("Diwali",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("last night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.2512917986064953),+                                    ("Wednesday", -2.2512917986064953),+                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+                                    ("Tuesday", -1.55814461804655)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},+                   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.916290731874155, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9924301646902063),+                                    ("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.9924301646902063),+                                    ("week (grain)intersect", -2.3978952727983707),+                                    ("week (grain)September", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.2335922215070942),+                                    ("day (grain)May", -2.2335922215070942),+                                    ("week (grain)year (latent)", -1.9459101490553135),+                                    ("weekmonth", -1.7227665977411035),+                                    ("week (grain)October", -2.2335922215070942),+                                    ("weekyear", -1.9459101490553135),+                                    ("week (grain)intersect", -2.2335922215070942)],+                               n = 9}}),+       ("Chhath",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vasant Panchami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(ordinal) <named-month> year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)April", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("daymonth", -2.1972245773362196),+                                    ("ordinal (digits)day (grain)May", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("weekyear", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Black Friday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week-end",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("Great Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maundy Thursday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("right now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("for <duration> from <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -1.5040773967762742),+                                    ("dayday", -1.0986122886681098),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.252762968495368),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -1.252762968495368)],+                               n = 1}}),+       ("compose by multiplication",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("between <time> and <time>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.832909122935104),+                                    ("hh:mmhh:mm", -0.832909122935104)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),+                                    ("minuteminute", -1.410986973710262),+                                    ("minutehour", -1.410986973710262),+                                    ("hh:mmintersect", -1.410986973710262)],+                               n = 18}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>integer (numeric)integer (numeric)",+                                     -2.740840023925201),+                                    ("from|since|after <time>ordinal (digits)ordinal (digits)",+                                     -2.740840023925201),+                                    ("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -2.3353749158170367),+                                    ("from|since|after <time>ordinal (digits)integer (numeric)",+                                     -2.740840023925201),+                                    ("month", -0.8690378470236094),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -2.3353749158170367)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\" for year",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("Black Fridaythis|last|next <cycle>", -2.6026896854443837),+                                    ("Labour Daythis|last|next <cycle>", -2.6026896854443837),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -2.1972245773362196),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -2.6026896854443837),+                                    ("dayyear", -0.9932517730102834),+                                    ("Thanksgiving Daythis|last|next <cycle>", -2.6026896854443837),+                                    ("intersectyear (latent)", -2.6026896854443837),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -2.1972245773362196)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("Fridaythis|last|next <cycle>", -1.7047480922384253),+                                    ("dayyear", -1.7047480922384253)],+                               n = 1}}),+       ("part of days",+        Classifier{okData =+                     ClassData{prior = -6.899287148695143e-2,+                               unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},+                   koData =+                     ClassData{prior = -2.70805020110221, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),        ("at the beginning|end of <week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.330733340286331,
Duckling/Ranking/Classifiers/EN_GB.hs view
@@ -60,2922 +60,3130 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("Thursday",         Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.6366143532277309, unseen = -5.648974238161206,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 282},-                   koData =-                     ClassData{prior = -0.7530684850340607, unseen = -5.53338948872752,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 251}}),-       ("<duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),-                                    ("year", -2.662587827025453),-                                    ("<integer> <unit-of-duration>", -1.0531499145913523),-                                    ("a <unit-of-duration>", -2.662587827025453),-                                    ("month", -2.662587827025453),-                                    ("fortnight", -2.662587827025453)],-                               n = 18},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("year", -1.5040773967762742),-                                    ("<integer> <unit-of-duration>", -1.5040773967762742)],-                               n = 1}}),-       ("noon|midnight|EOD|end of day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter to|till|before <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Father's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.6739764335716716),-                                    ("dayday", -1.1631508098056809),-                                    ("day (grain)yesterday", -1.6739764335716716)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.6739764335716716),-                                    ("year (grain)Christmas", -2.0794415416798357),-                                    ("dayday", -2.0794415416798357),-                                    ("day (grain)intersect", -1.6739764335716716),-                                    ("day (grain)Easter Sunday", -2.0794415416798357),-                                    ("yearday", -2.0794415416798357)],-                               n = 4}}),-       ("Easter Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Navaratri",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Martin Luther King's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (20..90)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Shemini Atzeret",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ramadan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lazarus Saturday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect 2 numbers",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("compose by multiplicationinteger (0..19)",-                                     -0.2231435513142097)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],-                               n = 3}}),-       ("mm/yyyy",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("integer after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8109302162163288),-                                    ("integer (numeric)time-of-day (latent)", -1.0986122886681098),-                                    ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom HaShoah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal or number) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)December", -2.1400661634962708),-                                    ("ordinal (digits)February", -2.1400661634962708),-                                    ("integer (numeric)April", -2.1400661634962708),-                                    ("month", -1.4469189829363254)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)October", -2.6741486494265287),-                                    ("ordinal (digits)July", -2.6741486494265287),-                                    ("integer (numeric)September", -2.268683541318364),-                                    ("ordinal (digits)August", -2.6741486494265287),-                                    ("integer (numeric)August", -2.6741486494265287),-                                    ("ordinal (digits)April", -2.6741486494265287),-                                    ("month", -1.0647107369924282),-                                    ("integer (numeric)July", -2.268683541318364)],-                               n = 9}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -9.237332013101517e-2,-                               unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("dayhour", -1.4816045409242156),-                                    ("Mondayearly morning", -3.378724525810097),-                                    ("time-of-day (latent)tonight", -3.378724525810097),-                                    ("hourhour", -2.3978952727983707),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("todaypart of days", -3.784189633918261),-                                    ("minutehour", -2.6855773452501515),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -3.378724525810097),-                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),-                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),-                                    ("intersectpart of days", -3.784189633918261),-                                    ("intersectin|during the <part-of-day>", -3.784189633918261),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("tomorrowpart of days", -2.3978952727983707),-                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("hhmm (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("yesterdaypart of days", -3.378724525810097),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("Mondaypart of days", -3.784189633918261)],-                               n = 31},-                   koData =-                     ClassData{prior = -2.4277482359480516,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -2.772588722239781),-                                    ("monthhour", -2.772588722239781),-                                    ("hourhour", -2.772588722239781),-                                    ("year (latent)in|during the <part-of-day>",-                                     -2.772588722239781),-                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.772588722239781)],-                               n = 3}}),-       ("dd/mm",-        Classifier{okData =-                     ClassData{prior = -1.2685113254635072,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -0.33024168687057687,-                               unseen = -3.2188758248682006,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 23}}),-       ("today",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.961215868968717e-2,-                               unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.8430301339411947),-                                    ("noon|midnight|EOD|end of day", -3.8430301339411947),-                                    ("integer after|past <hour-of-day>", -3.8430301339411947),-                                    ("half after|past <hour-of-day>", -4.248495242049359),-                                    ("time-of-day (latent)", -1.6835458845878222),-                                    ("hhmm (latent)", -3.5553480614894135),-                                    ("<time-of-day> am|pm", -1.8061482066801546),-                                    ("hh:mm", -3.332204510175204),-                                    ("about|exactly <time-of-day>", -3.8430301339411947),-                                    ("hour", -1.0704414117014134),-                                    ("<time-of-day> sharp|exactly", -4.248495242049359),-                                    ("minute", -2.05127066471314)],-                               n = 64},-                   koData =-                     ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2321436812926323),-                                    ("hour", -1.2321436812926323)],-                               n = 6}}),-       ("December",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.1972245773362196),-                                    ("Wednesday", -2.6026896854443837),-                                    ("Saturday", -2.6026896854443837),-                                    ("Monday", -2.1972245773362196),-                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),-                                    ("Sunday", -2.6026896854443837)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("September",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|past|next <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.2626798770413155,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.456735772821304), ("second", -2.639057329615259),-                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),-                                    ("<integer> <unit-of-duration>", -0.7827593392496325),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("minute", -2.639057329615259)],-                               n = 31},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the ides of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -1.4816045409242156),-                                    ("dd/mm", -3.4965075614664802),-                                    ("absorption of , after named day", -3.0910424533583156),-                                    ("intersect", -3.0910424533583156),-                                    ("Saturday", -2.803360380906535),-                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),-                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.803360380906535),-                                    ("hour", -3.4965075614664802)],-                               n = 28},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -1.791759469228055)],-                               n = 4}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.11122563511022437,-                               unseen = -3.970291913552122,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},-                   koData =-                     ClassData{prior = -2.2512917986064953,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7884573603642702),-                                    ("hh:mmhh:mm", -0.7884573603642702)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),-                                    ("minutehour", -0.7884573603642702)],-                               n = 9}}),-       ("Halloween",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Passover",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -1.6094379124341003),-                                    ("month", -0.916290731874155),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("October",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from|since|after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -3.332204510175204),-                                    ("time-of-day (latent)", -2.4159137783010487),-                                    ("<time-of-day> am|pm", -2.4159137783010487),-                                    ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),-                                    ("month", -2.9267394020670396), ("minute", -2.4159137783010487),-                                    ("August", -3.332204510175204)],-                               n = 14},-                   koData =-                     ClassData{prior = -0.22677331936478848,-                               unseen = -4.9344739331306915,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.828641396489095),-                                    ("week", -4.23410650459726),-                                    ("<day-of-month> (ordinal or number) <named-month>",-                                     -4.23410650459726),-                                    ("today", -4.23410650459726), ("intersect", -2.362304327695668),-                                    ("second", -4.23410650459726), ("now", -3.5409593240373143),-                                    ("tomorrow", -3.828641396489095),-                                    ("this|last|next <cycle>", -4.23410650459726),-                                    ("day", -1.8827312474337816),-                                    ("time-of-day (latent)", -4.23410650459726),-                                    ("<time-of-day> am|pm", -3.828641396489095),-                                    ("nograin", -3.5409593240373143),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -4.23410650459726),-                                    ("Easter Sunday", -4.23410650459726),-                                    ("Christmas", -3.5409593240373143),-                                    ("hour", -2.981343536101891), ("month", -4.23410650459726),-                                    ("<datetime> - <datetime> (interval)", -2.847812143477369),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.5293584123588344),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -3.828641396489095),-                                    ("minute", -1.749199854809259),-                                    ("right now", -4.23410650459726),-                                    ("<month> dd-dd (interval)", -3.5409593240373143),-                                    ("dd-dd <month> (interval)", -3.828641396489095)],-                               n = 55}}),-       ("month (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> more <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in|within|after <duration>",-        Classifier{okData =-                     ClassData{prior = -0.11000089521432846,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.248434627109745),-                                    ("<integer> more <unit-of-duration>", -3.9415818076696905),-                                    ("three-quarters of an hour", -3.0252910757955354),-                                    ("<integer> + '\"", -3.248434627109745),-                                    ("number.number hours", -3.9415818076696905),-                                    ("second", -3.536116699561526), ("day", -3.248434627109745),-                                    ("half an hour", -3.0252910757955354),-                                    ("year", -3.9415818076696905),-                                    ("<integer> <unit-of-duration>", -1.5902065505062128),-                                    ("a <unit-of-duration>", -3.0252910757955354),-                                    ("quarter of an hour", -3.0252910757955354),-                                    ("hour", -2.5552874465498),-                                    ("about|exactly <duration>", -3.9415818076696905),-                                    ("<integer> and an half hour", -3.9415818076696905),-                                    ("minute", -1.3025244780544318)],-                               n = 43},-                   koData =-                     ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),-                                    ("<integer> <unit-of-duration>", -1.9095425048844386),-                                    ("a <unit-of-duration>", -2.1972245773362196)],-                               n = 5}}),-       ("January",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("three-quarters of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Mattu Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Wednesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> + '\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half <integer> (UK style hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("July",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8209805520698302,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),-       ("Shavuot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> <duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayyear", -0.6931471805599453),-                                    ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),-                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",-                                     -1.466337068793427),-                                    ("quarter", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),-                                    ("quarter", -0.8109302162163288)],-                               n = 3}}),-       ("Boss's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Orthodox Easter Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("one twenty two",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.45868580431307404,-                               unseen = -6.723832440821209,-                               likelihoods =-                                 HashMap.fromList-                                   [("Navaratriyear (latent)", -6.029482614295503),-                                    ("Father's Dayyear (latent)", -6.029482614295503),-                                    ("Ramadanyear (latent)", -6.029482614295503),-                                    ("<datetime> - <datetime> (interval)on <date>",-                                     -4.776719645800135),-                                    ("Bhai Doojyear (latent)", -6.029482614295503),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.776719645800135),-                                    ("hourday", -4.324734522057078),-                                    ("dayhour", -3.1117118822112237),-                                    ("Martin Luther King's Dayyear (latent)", -5.6240175061873385),-                                    ("Shemini Atzeretyear (latent)", -6.029482614295503),-                                    ("daymonth", -5.336335433735558),-                                    ("monthday", -5.6240175061873385),-                                    ("monthyear", -4.420044701861403),-                                    ("Yom Ha'atzmautyear (latent)", -6.029482614295503),-                                    ("Vijayadashamiyear (latent)", -6.029482614295503),-                                    ("Thanksgiving Dayyear (latent)", -4.930870325627393),-                                    ("Thai Pongalyear (latent)", -5.336335433735558),-                                    ("Thiru Onamyear (latent)", -5.336335433735558),-                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.029482614295503),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -6.029482614295503),-                                    ("houryear", -5.336335433735558),-                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",-                                     -6.029482614295503),-                                    ("Christmas<time-of-day> am|pm", -6.029482614295503),-                                    ("last <day-of-week> of <time>year (latent)",-                                     -6.029482614295503),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.336335433735558),-                                    ("<time-of-day> am|pmintersect", -4.776719645800135),-                                    ("Octoberyear (latent)", -4.776719645800135),-                                    ("intersect<time-of-day> am|pm", -6.029482614295503),-                                    ("Mattu Pongalyear (latent)", -6.029482614295503),-                                    ("Shavuotyear (latent)", -6.029482614295503),-                                    ("Dhanterasin <named-month>|year", -6.029482614295503),-                                    ("at <time-of-day>in|within|after <duration>",-                                     -6.029482614295503),-                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.029482614295503),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -5.6240175061873385),-                                    ("Marchyear (latent)", -6.029482614295503),-                                    ("Sukkotyear (latent)", -5.6240175061873385),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -6.029482614295503),-                                    ("Clean Mondayyear (latent)", -5.6240175061873385),-                                    ("monthhour", -5.6240175061873385),-                                    ("todayat <time-of-day>", -6.029482614295503),-                                    ("Thursday<time> timezone", -4.324734522057078),-                                    ("dd/mm<time-of-day> am|pm", -6.029482614295503),-                                    ("this <time>hh(:mm) - <time-of-day> am|pm",-                                     -6.029482614295503),-                                    ("Palm SundaySunday", -5.6240175061873385),-                                    ("dayday", -3.8322580369592836),-                                    ("dd/mmat <time-of-day>", -6.029482614295503),-                                    ("<time> <part-of-day>at <time-of-day>", -6.029482614295503),-                                    ("tonightat <time-of-day>", -6.029482614295503),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -5.336335433735558),-                                    ("today<time-of-day> am|pm", -6.029482614295503),-                                    ("Februarythe <day-of-month> (ordinal)", -5.6240175061873385),-                                    ("at <time-of-day><time> <part-of-day>", -6.029482614295503),-                                    ("hourhour", -4.776719645800135),-                                    ("<time-of-day> am|pmon <date>", -4.014579593753238),-                                    ("Wednesdaythis|last|next <cycle>", -6.029482614295503),-                                    ("Lentyear (latent)", -6.029482614295503),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.5254052175192285),-                                    ("Boghiyear (latent)", -6.029482614295503),-                                    ("dayyear", -1.9776976664921981),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -6.029482614295503),-                                    ("Thursdayat <time-of-day>", -5.6240175061873385),-                                    ("Islamic New Yearyear (latent)", -5.6240175061873385),-                                    ("Laylat al-Qadryear (latent)", -5.113191882421348),-                                    ("Chhathin <named-month>|year", -6.029482614295503),-                                    ("Vasant Panchamiin <named-month>|year", -6.029482614295503),-                                    ("Diwaliin <named-month>|year", -6.029482614295503),-                                    ("Shrove Tuesdayyear (latent)", -6.029482614295503),-                                    ("<time-of-day> am|pmtomorrow", -5.336335433735558),-                                    ("Yom Kippuryear (latent)", -6.029482614295503),-                                    ("<part-of-day> of <time>year (latent)", -6.029482614295503),-                                    ("minutehour", -5.113191882421348),-                                    ("Kaanum Pongalyear (latent)", -5.6240175061873385),-                                    ("Maha Saptamiyear (latent)", -6.029482614295503),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.6240175061873385),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.324734522057078),-                                    ("for <duration> from <time>December", -6.029482614295503),-                                    ("tomorrow<time-of-day> sharp|exactly", -6.029482614295503),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.113191882421348),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -5.6240175061873385),-                                    ("Pentecostyear (latent)", -6.029482614295503),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.113191882421348),-                                    ("Eid al-Fitryear (latent)", -6.029482614295503),-                                    ("Mondayin|during the <part-of-day>", -6.029482614295503),-                                    ("Raksha Bandhanyear (latent)", -6.029482614295503),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.6240175061873385),-                                    ("Navaratriin <named-month>|year", -6.029482614295503),-                                    ("Ashurayear (latent)", -6.029482614295503),-                                    ("Chinese New Yearyear (latent)", -6.029482614295503),-                                    ("Sundayyear (latent)", -6.029482614295503),-                                    ("Lag BaOmeryear (latent)", -6.029482614295503),-                                    ("last weekend of <named-month>year (latent)",-                                     -6.029482614295503),-                                    ("Eid al-Adhayear (latent)", -5.113191882421348),-                                    ("intersectin|during the <part-of-day>", -6.029482614295503),-                                    ("Christmasat <time-of-day>", -6.029482614295503),-                                    ("Passoveryear (latent)", -6.029482614295503),-                                    ("Lazarus Saturdayyear (latent)", -6.029482614295503),-                                    ("dd/mmyear (latent)", -6.029482614295503),-                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",-                                     -6.029482614295503),-                                    ("Yom HaShoahyear (latent)", -5.6240175061873385),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -5.113191882421348),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -6.029482614295503),-                                    ("Thai Pongalin <named-month>|year", -6.029482614295503),-                                    ("Septemberyear (latent)", -5.6240175061873385),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -4.776719645800135),-                                    ("Halloweenyear (latent)", -6.029482614295503),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.336335433735558),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -5.113191882421348),-                                    ("at <time-of-day>intersect", -5.6240175061873385),-                                    ("Rosh Hashanahyear (latent)", -6.029482614295503),-                                    ("Dhanterasyear (latent)", -6.029482614295503),-                                    ("Tu BiShvatyear (latent)", -6.029482614295503),-                                    ("Holiyear (latent)", -5.336335433735558),-                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",-                                     -6.029482614295503),-                                    ("Holika Dahanyear (latent)", -5.336335433735558),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.029482614295503),-                                    ("dayminute", -3.3904252846802443),-                                    ("Mawlidyear (latent)", -6.029482614295503),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.6240175061873385),-                                    ("<datetime> - <datetime> (interval)tomorrow",-                                     -6.029482614295503),-                                    ("Jumu'atul-Widayear (latent)", -5.113191882421348),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.029482614295503),-                                    ("minuteday", -2.391896454569117),-                                    ("absorption of , after named dayintersect",-                                     -6.029482614295503),-                                    ("intersectyear (latent)", -6.029482614295503),-                                    ("Orthodox Easter Sundayyear (latent)", -6.029482614295503),-                                    ("<ordinal> <cycle> of <time>year (latent)",-                                     -6.029482614295503),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -6.029482614295503),-                                    ("Mothering Sundayyear (latent)", -5.6240175061873385),-                                    ("Boss's Dayyear (latent)", -5.6240175061873385),-                                    ("Tisha B'Avyear (latent)", -6.029482614295503),-                                    ("Isra and Mi'rajyear (latent)", -5.113191882421348),-                                    ("at <time-of-day>absorption of , after named day",-                                     -6.029482614295503),-                                    ("Christmasyear (latent)", -5.6240175061873385),-                                    ("Naraka Chaturdashiyear (latent)", -5.6240175061873385),-                                    ("at <time-of-day>on <date>", -4.930870325627393),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -4.420044701861403),-                                    ("dayweek", -6.029482614295503),-                                    ("Easter Sundayyear (latent)", -5.336335433735558),-                                    ("Thursday<time-of-day> am|pm", -6.029482614295503),-                                    ("weekyear", -5.6240175061873385),-                                    ("hh:mmin|during the <part-of-day>", -5.336335433735558),-                                    ("<cycle> after|before <time><time-of-day> am|pm",-                                     -5.6240175061873385),-                                    ("Hanukkahyear (latent)", -6.029482614295503),-                                    ("February<time> <part-of-day>", -6.029482614295503),-                                    ("Tuesdayin <named-month>|year", -6.029482614295503),-                                    ("Great Lentyear (latent)", -6.029482614295503),-                                    ("tomorrowat <time-of-day>", -5.336335433735558),-                                    ("between <time> and <time>on <date>", -4.420044701861403),-                                    ("Thursdayfrom|since|after <time-of-day>", -5.336335433735558),-                                    ("last <cycle> of <time>year (latent)", -5.336335433735558),-                                    ("at <time-of-day>tomorrow", -5.6240175061873385),-                                    ("tomorrow<time-of-day> am|pm", -6.029482614295503),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -6.029482614295503),-                                    ("Diwaliyear (latent)", -6.029482614295503),-                                    ("Black Fridayyear (latent)", -5.6240175061873385),-                                    ("in|during the <part-of-day>at <time-of-day>",-                                     -6.029482614295503),-                                    ("Chhathyear (latent)", -5.6240175061873385),-                                    ("Vasant Panchamiyear (latent)", -6.029482614295503),-                                    ("Palm Sundayintersect", -6.029482614295503),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -6.029482614295503),-                                    ("August Bank Holidayyear (latent)", -5.336335433735558),-                                    ("Februaryintersect", -6.029482614295503),-                                    ("Simchat Torahyear (latent)", -6.029482614295503)],-                               n = 311},-                   koData =-                     ClassData{prior = -0.9999816852264825, unseen = -6.349138991379798,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.654242029096065),-                                    ("hourday", -5.654242029096065),-                                    ("<named-month> <day-of-month> (non ordinal)July",-                                     -5.654242029096065),-                                    ("dayhour", -3.2118949937268604),-                                    ("daymonth", -3.574800487416229),-                                    ("monthday", -5.2487769209879005),-                                    ("monthyear", -4.401479060600697),-                                    ("<time-of-day> am|pmyear (latent)", -5.2487769209879005),-                                    ("Thai Pongalyear (latent)", -4.96109484853612),-                                    ("intersecthh:mm", -5.654242029096065),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -5.654242029096065),-                                    ("houryear", -4.73795129722191),-                                    ("from <time-of-day> - <time-of-day> (interval)July",-                                     -5.654242029096065),-                                    ("until <time-of-day><time-of-day> am|pm", -5.654242029096065),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.96109484853612),-                                    ("<time-of-day> am|pmintersect", -4.401479060600697),-                                    ("Octoberyear (latent)", -5.654242029096065),-                                    ("from|since|after <time-of-day>year (latent)",-                                     -4.401479060600697),-                                    ("from|since|after <time-of-day>on <date>", -4.73795129722191),-                                    ("July<day-of-month> (ordinal or number) <named-month>",-                                     -5.654242029096065),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -4.401479060600697),-                                    ("about|exactly <time-of-day>year (latent)",-                                     -5.654242029096065),-                                    ("absorption of , after named dayJuly", -5.2487769209879005),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.73795129722191),-                                    ("Clean Mondayyear (latent)", -5.654242029096065),-                                    ("monthhour", -5.654242029096065),-                                    ("hourmonth", -4.96109484853612),-                                    ("todayat <time-of-day>", -5.654242029096065),-                                    ("Bank Holidayyear (latent)", -4.96109484853612),-                                    ("from|since|after <time-of-day>July", -5.654242029096065),-                                    ("Mondayyear (latent)", -4.96109484853612),-                                    ("dayday", -5.2487769209879005),-                                    ("dd/mmat <time-of-day>", -5.2487769209879005),-                                    ("<time-of-day> am|pmon <date>", -4.401479060600697),-                                    ("Thursdaydd/mm", -5.654242029096065),-                                    ("dayyear", -2.609719591372642),-                                    ("New Year's Dayyear (latent)", -5.2487769209879005),-                                    ("Thursdayat <time-of-day>", -4.401479060600697),-                                    ("<integer> to|till|before <hour-of-day>September",-                                     -5.654242029096065),-                                    ("Aprilyear (latent)", -5.654242029096065),-                                    ("monthminute", -5.654242029096065),-                                    ("<time-of-day> am|pmtomorrow", -5.654242029096065),-                                    ("Thursdayhh:mm", -4.73795129722191),-                                    ("August<day-of-month> (ordinal or number) <named-month>",-                                     -5.654242029096065),-                                    ("minutemonth", -3.8624825598680097),-                                    ("Sundayfrom|since|after <time-of-day>", -5.654242029096065),-                                    ("week-endin <named-month>|year", -5.654242029096065),-                                    ("Augustyear (latent)", -5.2487769209879005),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.2487769209879005),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.2487769209879005),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.654242029096065),-                                    ("dd/mm<time-of-day> - <time-of-day> (interval)",-                                     -5.2487769209879005),-                                    ("Sundayyear (latent)", -4.96109484853612),-                                    ("Christmasat <time-of-day>", -5.654242029096065),-                                    ("dd/mmyear (latent)", -5.654242029096065),-                                    ("<duration> after|before|from <time>December",-                                     -5.654242029096065),-                                    ("yesterday<time-of-day> am|pm", -5.654242029096065),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -4.73795129722191),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -5.2487769209879005),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.654242029096065),-                                    ("until <time-of-day>on <date>", -4.96109484853612),-                                    ("at <time-of-day>intersect", -5.2487769209879005),-                                    ("hh:mmyear (latent)", -4.555629740427955),-                                    ("Holiyear (latent)", -5.654242029096065),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.654242029096065),-                                    ("dayminute", -3.1693353793080647),-                                    ("intersectSeptember", -4.1501646323197905),-                                    ("minuteday", -2.5861890939624477),-                                    ("absorption of , after named dayintersect",-                                     -5.654242029096065),-                                    ("Februaryin|during the <part-of-day>", -5.654242029096065),-                                    ("hh:mmon <date>", -3.6393390085538),-                                    ("Saturdayyear (latent)", -5.654242029096065),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -5.654242029096065),-                                    ("absorption of , after named daySeptember", -4.73795129722191),-                                    ("Naraka Chaturdashiyear (latent)", -5.654242029096065),-                                    ("on <date>September", -5.2487769209879005),-                                    ("at <time-of-day>on <date>", -5.2487769209879005),-                                    ("in <named-month>|yearyear (latent)", -5.654242029096065),-                                    ("dayweek", -5.654242029096065),-                                    ("Easter Sundayyear (latent)", -5.2487769209879005),-                                    ("Thursday<time-of-day> am|pm", -5.2487769209879005),-                                    ("absorption of , after named dayFebruary", -4.73795129722191),-                                    ("July<integer> to|till|before <hour-of-day>",-                                     -5.654242029096065),-                                    ("tomorrowat <time-of-day>", -5.654242029096065),-                                    ("<integer> to|till|before <hour-of-day>July",-                                     -5.654242029096065),-                                    ("Thursdayfrom|since|after <time-of-day>", -4.044804116661965),-                                    ("tomorrow<time-of-day> am|pm", -5.654242029096065),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -4.96109484853612),-                                    ("Diwaliyear (latent)", -5.2487769209879005),-                                    ("Tuesdayfrom|since|after <time-of-day>", -5.654242029096065),-                                    ("Fridayyear (latent)", -5.2487769209879005),-                                    ("minuteyear", -4.401479060600697)],-                               n = 181}}),-       ("one eleven",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("after lunch/work/school",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("early morning",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <number> (implicit minutes)",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3184537311185346),-                                    ("integer (0..19)", -1.2992829841302609)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.19105523676270922),-                                    ("integer (0..19)", -1.749199854809259)],-                               n = 21}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.791759469228055),-                                    ("ordinal (digits)quarter (grain)year (latent)",-                                     -2.1972245773362196),-                                    ("quarteryear", -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",-                                     -2.1972245773362196),-                                    ("ordinal (digits)day (grain)this|last|next <cycle>",-                                     -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",-                                     -2.1972245773362196),-                                    ("weekmonth", -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",-                                     -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -2.001480000210124),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("hh:mmhh:mm", -2.001480000210124),-                                    ("dayday", -2.512305623976115),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),-                                    ("hourhour", -2.512305623976115),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.1986731175506815),-                                    ("dayhour", -2.793208009442517),-                                    ("<day-of-month> (ordinal)time-of-day (latent)",-                                     -3.1986731175506815),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -3.1986731175506815),-                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),-                                    ("minuteminute", -2.793208009442517),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.793208009442517),-                                    ("dayday", -3.1986731175506815),-                                    ("hourhour", -2.505525936990736),-                                    ("dayyear", -3.1986731175506815),-                                    ("minutehour", -2.2823823856765264),-                                    ("hh:mmintersect", -2.793208009442517),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<time-of-day> am|pm",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",-                                     -3.1986731175506815)],-                               n = 14}}),-       ("Saturday",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("the <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.7346010553881064),-                                    ("week (grain)October", -1.7346010553881064),-                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",-                                     -1.7346010553881064),-                                    ("weekday", -1.2237754316221157)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number.number hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6094379124341003),-                                    ("hh:mmhh:mm", -1.6094379124341003),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),-                                    ("hourhour", -2.3025850929940455),-                                    ("hourminute", -2.3025850929940455),-                                    ("time-of-day (latent)<time-of-day> sharp|exactly",-                                     -2.70805020110221),-                                    ("time-of-day (latent)hh:mm", -2.70805020110221),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.0149030205422647),-                                    ("hourhour", -1.791759469228055),-                                    ("minutehour", -1.6094379124341003),-                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],-                               n = 9}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),-                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],-                               n = 4}}),-       ("Tisha B'Av",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Mothering Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yyyy-mm-dd",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -0.15746743245325218,-                               unseen = -4.897839799950911,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -4.616204176316249e-2),-                                    ("intersect 2 numbers", -3.5040547671018634)],-                               n = 129},-                   koData =-                     ClassData{prior = -1.9262373834566084, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3121863889661687),-                                    ("negative numbers", -0.6190392084062235),-                                    ("compose by multiplication", -1.8718021769015913)],-                               n = 22}}),-       ("Bank Holiday",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Monday",-        Classifier{okData =-                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.2237754316221157,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("dd/mm/yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm:ss",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Hanukkah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>integer (numeric)",-                                     -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 1}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.9808292530117262),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -2.0794415416798357),-                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",-                                     -1.6739764335716716),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",-                                     -1.6739764335716716)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.0986122886681098),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",-                                     -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",-                                     -1.3862943611198906)],-                               n = 3}}),-       ("Valentine's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("April",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maha Saptami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -4.0821994520255166e-2,-                               unseen = -4.304065093204169,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 72},-                   koData =-                     ClassData{prior = -3.2188758248682006,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<part-of-day> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.3513752571634776),-                                    ("part of daysintersect", -2.3513752571634776),-                                    ("hourday", -0.9650808960435872),-                                    ("part of daysthe <day-of-month> (ordinal)",-                                     -2.3513752571634776),-                                    ("part of daysthe <day-of-month> (number)",-                                     -2.3513752571634776),-                                    ("part of daysthis <time>", -2.3513752571634776),-                                    ("part of daysChristmas", -1.9459101490553135)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("six thirty six a.m.",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.252762968495368),-                                    ("one twenty two", -0.8472978603872037),-                                    ("one eleven", -1.252762968495368)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Shrove Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<day-of-month> (ordinal or number) of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.3513752571634776),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.3513752571634776),-                                    ("ordinal (digits)February", -2.3513752571634776),-                                    ("integer (numeric)February", -1.9459101490553135),-                                    ("month", -0.9650808960435872),-                                    ("ordinal (digits)March", -2.3513752571634776),-                                    ("integer (numeric)July", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.5040773967762742),-                                    ("month", -1.5040773967762742)],-                               n = 1}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("part of days", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Kaanum Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom Kippur",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("powers of tens",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Friday",-        Classifier{okData =-                     ClassData{prior = -0.3677247801253174,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("early morning", -2.5257286443082556),-                                    ("hour", -0.7339691750802004),-                                    ("part of days", -0.8209805520698302)],-                               n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("part of days", -0.916290731874155)],-                               n = 1}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh(:mm) - <time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|last|next <cycle>",-        Classifier{okData =-                     ClassData{prior = -7.598590697792199e-2,-                               unseen = -5.093750200806762,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.1173044216802621),-                                    ("month (grain)", -2.7850112422383386),-                                    ("year (grain)", -2.6026896854443837),-                                    ("week (grain)", -1.1173044216802621),-                                    ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),-                                    ("month", -2.7850112422383386),-                                    ("quarter (grain)", -3.4781584227982836)],-                               n = 76},-                   koData =-                     ClassData{prior = -2.6149597780361984,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.4816045409242156),-                                    ("week (grain)", -1.4816045409242156),-                                    ("day", -1.9924301646902063),-                                    ("day (grain)", -1.9924301646902063)],-                               n = 6}}),-       ("Simchat Torah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("August Bank Holiday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Eve",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Raksha Bandhan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ashura",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Palm Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Eid al-Adha",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),-                                    ("time-of-day (latent)", -1.9459101490553135),-                                    ("<time-of-day> am|pm", -1.9459101490553135),-                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),-                                    ("minute", -1.540445040947149)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2006706954621511,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..twentieth,thirtieth,...)",-                                     -1.7047480922384253),-                                    ("ordinal (digits)", -0.2006706954621511)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.7047480922384253,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],-                               n = 2}}),-       ("last weekend of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),-                                    ("month", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lag BaOmer",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fractional number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),-       ("Sunday",-        Classifier{okData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("Chinese New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("February",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|this|next <season>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.330755969960742)],-                               n = 69},-                   koData =-                     ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -9.352605801082348e-2),-                                    ("integer (0..19)", -2.9267394020670396),-                                    ("integer 21..99", -3.332204510175204)],-                               n = 53}}),-       ("beginning of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.916290731874155),-                                    ("SundayMarch", -1.6094379124341003),-                                    ("MondayMarch", -1.6094379124341003),-                                    ("Sundayintersect", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.13858616328614667,-                               unseen = -5.147494476813453,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5026062268874014),-                                    ("integer (0..19)year (grain)", -3.062222014822824),-                                    ("integer (numeric)day (grain)", -2.743768283704289),-                                    ("integer (0..19)second (grain) ", -3.7553691953827695),-                                    ("integer (0..19)hour (grain)", -3.062222014822824),-                                    ("second", -3.349904087274605),-                                    ("integer (numeric)second (grain) ", -4.04305126783455),-                                    ("integer (numeric)year (grain)", -3.349904087274605),-                                    ("day", -2.4336133554004498), ("year", -2.576714199041123),-                                    ("integer (numeric)week (grain)", -3.062222014822824),-                                    ("integer (0..19)month (grain)", -3.5322256440685593),-                                    ("hour", -2.6567569067146595), ("month", -3.1957534074473464),-                                    ("integer (numeric)minute (grain)", -3.1957534074473464),-                                    ("integer (0..19)minute (grain)", -3.062222014822824),-                                    ("integer (numeric)month (grain)", -4.04305126783455),-                                    ("minute", -2.5026062268874014),-                                    ("integer (numeric)hour (grain)", -3.5322256440685593),-                                    ("integer (0..19)day (grain)", -3.5322256440685593),-                                    ("integer (0..19)week (grain)", -3.1957534074473464)],-                               n = 74},-                   koData =-                     ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),-                                    ("integer (numeric)hour (grain)", -1.4087672169719492),-                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],-                               n = 11}}),-       ("hhmm (latent)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer after|past <hour-of-day>", -3.951243718581427),-                                    ("at <time-of-day>", -2.202043863772168),-                                    ("from|since|after <time-of-day>", -3.7281001672672174),-                                    ("<time-of-day> o'clock", -4.238925791033208),-                                    ("half after|past <hour-of-day>", -4.238925791033208),-                                    ("time-of-day (latent)", -1.7266201670570935),-                                    ("hhmm (latent)", -4.6443908991413725),-                                    ("hh:mm", -2.293015641977895),-                                    ("quarter after|past <hour-of-day>", -4.6443908991413725),-                                    ("about|exactly <time-of-day>", -4.6443908991413725),-                                    ("until <time-of-day>", -3.951243718581427),-                                    ("hour", -1.2104036946562264),-                                    ("<time-of-day> sharp|exactly", -4.6443908991413725),-                                    ("minute", -1.754019141245208)],-                               n = 96},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.283414346005772),-                                    ("from|since|after <time-of-day>", -3.283414346005772),-                                    ("<hour-of-day> <integer>", -3.6888794541139363),-                                    ("time-of-day (latent)", -1.0498221244986778),-                                    ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],-                               n = 32}}),-       ("Yom Ha'atzmaut",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),-                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),-                                    ("month", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thiru Onam",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thai Pongal",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Vijayadashami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thanksgiving Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Guy Fawkes Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.1400661634962708),-                                    ("year (grain)", -2.4277482359480516),-                                    ("second", -2.833213344056216),-                                    ("week (grain)", -2.1400661634962708),-                                    ("day", -2.1400661634962708),-                                    ("minute (grain)", -2.833213344056216),-                                    ("year", -2.4277482359480516),-                                    ("second (grain) ", -2.833213344056216),-                                    ("minute", -2.833213344056216),-                                    ("day (grain)", -2.1400661634962708)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour (grain)", -1.7227665977411035),-                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),-                                    ("quarter (grain)", -1.9459101490553135)],-                               n = 7}}),-       ("at the beginning|end of <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -0.6931471805599453),-                                    ("year", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Dhanteras",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Tu BiShvat",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Whit Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -4.255961441879589e-2,-                               unseen = -4.2626798770413155,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},-                   koData =-                     ClassData{prior = -3.1780538303479458,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Holi",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Rosh Hashanah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Holika Dahan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain) ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..twentieth,thirtieth,...)",-        Classifier{okData =-                     ClassData{prior = -6.899287148695143e-2,-                               unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Mawlid",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Jumu'atul-Wida",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.252762968495368),-                                    ("dayday", -0.8472978603872037),-                                    ("day (grain)yesterday", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about|exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),-                                    ("this|last|next <cycle>", -1.791759469228055),-                                    ("day", -2.4849066497880004),-                                    ("time-of-day (latent)", -2.890371757896165),-                                    ("hhmm (latent)", -2.4849066497880004),-                                    ("<time-of-day> am|pm", -2.890371757896165),-                                    ("hour", -2.1972245773362196),-                                    ("next <time>", -2.890371757896165),-                                    ("this|next <day-of-week>", -2.890371757896165),-                                    ("minute", -2.4849066497880004)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("dd/mm", -2.0794415416798357), ("day", -2.0794415416798357),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("hour", -2.0794415416798357)],-                               n = 2}}),-       ("Sukkot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthyear", -1.2992829841302609),-                                    ("Marcha <unit-of-duration>", -1.7047480922384253),-                                    ("March<integer> <unit-of-duration>", -1.7047480922384253),-                                    ("Vijayadashami<integer> <unit-of-duration>",-                                     -1.7047480922384253),-                                    ("dayyear", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("World Vegan Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\", \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -5.081404364984463,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("dayhour", -3.1292636661785136),-                                    ("daymonth", -3.1292636661785136),-                                    ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -4.382026634673881),-                                    ("Friday<named-month> <day-of-month> (non ordinal)",-                                     -3.6888794541139363),-                                    ("Wednesdayintersect", -4.382026634673881),-                                    ("Black Fridaythis|last|next <cycle>", -4.382026634673881),-                                    ("<part-of-day> of <time>February", -4.382026634673881),-                                    ("Saturday<time-of-day> am|pm", -4.382026634673881),-                                    ("Martin Luther King's Daythis|last|next <cycle>",-                                     -3.9765615265657175),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.382026634673881),-                                    ("on <date><time-of-day> am|pm", -4.382026634673881),-                                    ("hourmonth", -4.382026634673881),-                                    ("dayday", -2.5102244577722903),-                                    ("the <day-of-month> (ordinal)February", -3.9765615265657175),-                                    ("WednesdayOctober", -4.382026634673881),-                                    ("Wednesdaythis|last|next <cycle>", -3.9765615265657175),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.4657359027997265),-                                    ("dayyear", -2.8779492378976075),-                                    ("Saturday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("Thursdayhh:mm", -3.9765615265657175),-                                    ("Thanksgiving Daythis|last|next <cycle>", -4.382026634673881),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -3.9765615265657175),-                                    ("TuesdayOctober", -4.382026634673881),-                                    ("the <day-of-month> (ordinal)March", -4.382026634673881),-                                    ("Mondaythis|last|next <cycle>", -4.382026634673881),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.382026634673881),-                                    ("Fridayintersect", -4.382026634673881),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -3.6888794541139363),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.4657359027997265),-                                    ("Tuesdaythis|last|next <cycle>", -4.382026634673881),-                                    ("Sunday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("dayminute", -2.995732273553991),-                                    ("minuteday", -3.4657359027997265),-                                    ("this|last|next <cycle>Sunday", -4.382026634673881),-                                    ("intersectyear (latent)", -4.382026634673881),-                                    ("Sundaythis|last|next <cycle>", -4.382026634673881),-                                    ("weekday", -4.382026634673881),-                                    ("dayweek", -3.283414346005772),-                                    ("Thursday<time-of-day> am|pm", -4.382026634673881),-                                    ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -3.9765615265657175),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -3.9765615265657175)],-                               n = 50},-                   koData =-                     ClassData{prior = -0.9808292530117262, unseen = -4.795790545596741,-                               likelihoods =-                                 HashMap.fromList-                                   [("week-endJuly", -4.0943445622221),-                                    ("week-endOctober", -3.4011973816621555),-                                    ("daymonth", -1.8971199848858813),-                                    ("TuesdaySeptember", -4.0943445622221),-                                    ("Wednesdayintersect", -4.0943445622221),-                                    ("hourmonth", -2.995732273553991),-                                    ("Fridaythis|last|next <cycle>", -4.0943445622221),-                                    ("SundayFebruary", -4.0943445622221),-                                    ("WednesdayOctober", -4.0943445622221),-                                    ("week-endintersect", -4.0943445622221),-                                    ("dayyear", -4.0943445622221),-                                    ("FridayJuly", -3.6888794541139363),-                                    ("FridaySeptember", -4.0943445622221),-                                    ("WednesdayFebruary", -4.0943445622221),-                                    ("minutemonth", -3.1780538303479458),-                                    ("SundayMarch", -4.0943445622221),-                                    ("MondayFebruary", -3.6888794541139363),-                                    ("Fridayintersect", -4.0943445622221),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.6888794541139363),-                                    ("dayminute", -3.4011973816621555),-                                    ("SaturdaySeptember", -4.0943445622221),-                                    ("intersectSeptember", -3.1780538303479458),-                                    ("MondayMarch", -4.0943445622221),-                                    ("on <date>September", -3.6888794541139363),-                                    ("Tuesdayintersect", -4.0943445622221),-                                    ("Sundayintersect", -4.0943445622221)],-                               n = 30}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("Father's Day", -2.772588722239781),-                                    ("Martin Luther King's Day", -2.772588722239781),-                                    ("Mothering Sunday", -2.772588722239781),-                                    ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),-                                    ("Chinese New Year", -2.367123614131617),-                                    ("Thanksgiving Day", -2.772588722239781),-                                    ("Easter Sunday", -2.772588722239781),-                                    ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),-                                    ("week-end", -2.772588722239781)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("Monday", -2.5649493574615367), ("day", -2.159484249353372),-                                    ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),-                                    ("week-end", -1.466337068793427)],-                               n = 7}}),-       ("March",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month>|<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("Octoberordinal (digits)", -2.120263536200091),-                                    ("Thursdayordinal (digits)", -2.5257286443082556),-                                    ("day", -2.120263536200091),-                                    ("Augustordinal (digits)", -2.5257286443082556),-                                    ("Marchordinals (first..twentieth,thirtieth,...)",-                                     -2.120263536200091),-                                    ("Tuesdayordinal (digits)", -2.5257286443082556),-                                    ("month", -1.2729656758128873),-                                    ("Marchordinal (digits)", -2.5257286443082556)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("from|since|after <time-of-day>ordinal (digits)",-                                     -1.8718021769015913),-                                    ("Augustordinal (digits)", -1.8718021769015913),-                                    ("month", -1.466337068793427)],-                               n = 2}}),-       ("Clean Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Easter Sunday",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("Christmas",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.3025850929940455),-                                    ("<time-of-day> am|pm", -1.6094379124341003),-                                    ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),-                                    ("minute", -1.3862943611198906)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7227665977411035),-                                    ("yesterday", -2.2335922215070942),-                                    ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),-                                    ("hour", -2.639057329615259), ("minute", -1.252762968495368)],-                               n = 10}}),-       ("dd.mm.yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Isra and Mi'raj",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> after|before|from <time>",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>now", -2.803360380906535),-                                    ("a <unit-of-duration>Christmas", -2.803360380906535),-                                    ("dayday", -2.803360380906535),-                                    ("<integer> <unit-of-duration>today", -2.803360380906535),-                                    ("daysecond", -2.803360380906535),-                                    ("a <unit-of-duration>right now", -2.803360380906535),-                                    ("minutenograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Easter Sunday",-                                     -2.803360380906535),-                                    ("secondnograin", -2.803360380906535),-                                    ("yearday", -2.1102132003465894),-                                    ("daynograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -2.4423470353692043),-                                    ("dayday", -2.03688192726104),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -2.4423470353692043)],-                               n = 3}}),-       ("<day-of-month> (ordinal or number) of <month>",-        Classifier{okData =-                     ClassData{prior = -8.004270767353637e-2,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.803360380906535),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.803360380906535),-                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),-                                    ("integer (numeric)this|last|next <cycle>",-                                     -2.3978952727983707),-                                    ("ordinal (digits)February", -2.803360380906535),-                                    ("integer (numeric)February", -2.3978952727983707),-                                    ("month", -0.9315582040049435),-                                    ("ordinal (digits)March", -2.803360380906535),-                                    ("integer (numeric)July", -2.803360380906535)],-                               n = 12},-                   koData =-                     ClassData{prior = -2.5649493574615367,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.7047480922384253),-                                    ("month", -1.7047480922384253)],-                               n = 1}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Naraka Chaturdashi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("beginning of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("Martin Luther King's Day", -2.803360380906535),-                                    ("Halloween", -2.803360380906535),-                                    ("Wednesday", -2.803360380906535),-                                    ("Boss's Day", -2.803360380906535),-                                    ("Mothering Sunday", -2.803360380906535),-                                    ("Monday", -2.803360380906535), ("day", -1.0986122886681098),-                                    ("Thanksgiving Day", -2.803360380906535),-                                    ("March", -2.803360380906535), ("month", -2.803360380906535),-                                    ("Tuesday", -2.1102132003465894)],-                               n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> sharp|exactly",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.1400661634962708),-                                    ("time-of-day (latent)", -2.1400661634962708),-                                    ("hhmm (latent)", -2.1400661634962708),-                                    ("<time-of-day> am|pm", -2.1400661634962708),-                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),-                                    ("minute", -1.4469189829363254)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <named-month>|year",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -2.4423470353692043),-                                    ("year (latent)", -1.0560526742493137),-                                    ("year", -1.0560526742493137), ("March", -2.4423470353692043),-                                    ("month", -2.03688192726104)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.2992829841302609),-                                    ("year (latent)", -1.7047480922384253),-                                    ("year", -1.7047480922384253), ("month", -1.2992829841302609)],-                               n = 3}}),-       ("Islamic New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("negative numbers",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -7.696104113612832e-2),-                                    ("integer (0..19)", -2.6026896854443837)],-                               n = 25}}),-       ("about|exactly <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> before last|after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday", -1.8718021769015913),-                                    ("Friday", -1.466337068793427), ("day", -1.1786549963416462),-                                    ("March", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by the end of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("this|last|next <cycle>", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hhmm (military) am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -3.1918471524802814),-                                    ("intersect<time-of-day> am|pm", -3.1918471524802814),-                                    ("minuteminute", -1.457246097092175),-                                    ("hh:mmhh:mm", -2.093234863812172),-                                    ("dayday", -3.1918471524802814),-                                    ("hourhour", -2.093234863812172),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),-                                    ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (non ordinal)July",-                                     -3.1135153092103742),-                                    ("daymonth", -2.70805020110221),-                                    ("from|since|after <time-of-day>intersect", -2.70805020110221),-                                    ("<time-of-day> am|pmintersect", -3.1135153092103742),-                                    ("hh:mm<time-of-day> am|pm", -2.70805020110221),-                                    ("minuteminute", -1.8607523407150064),-                                    ("hourhour", -2.70805020110221),-                                    ("minutehour", -2.70805020110221),-                                    ("hh:mmintersect", -2.1972245773362196),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -3.1135153092103742),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.1135153092103742)],-                               n = 12}}),-       ("Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Day",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("fortnight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> and an half hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Laylat al-Qadr",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Boghi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("at the beginning|end of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("January", -1.3862943611198906),-                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.0986122886681098),-                                    ("month", -1.0986122886681098)],-                               n = 1}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.529395204760564),-                                    ("hh:mmhh:mm", -1.8971199848858813),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -2.4849066497880004),-                                    ("hourhour", -1.6964492894237302),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -3.4011973816621555),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.4011973816621555),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),-                                    ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>time-of-day (latent)",-                                     -3.4657359027997265),-                                    ("hh:mmtime-of-day (latent)", -1.7609878105613013),-                                    ("hh:mm<time-of-day> am|pm", -3.0602707946915624),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -3.4657359027997265),-                                    ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),-                                    ("hourhour", -2.2129729343043585),-                                    ("minutehour", -1.2144441041932315),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.4657359027997265),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -2.5494451709255714),-                                    ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),-                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",-                                     -3.0602707946915624)],-                               n = 24}}),-       ("military spelled out numbers am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("winter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> after <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.42121346507630353,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.5455312716044354),-                                    ("Marchinteger (numeric)", -2.833213344056216),-                                    ("Aprilinteger (numeric)", -3.2386784521643803),-                                    ("month", -0.8407831793660099),-                                    ("Februaryinteger (numeric)", -1.9859154836690123),-                                    ("Septemberinteger (numeric)", -2.833213344056216),-                                    ("Octoberinteger (numeric)", -2.833213344056216),-                                    ("Julyinteger (numeric)", -2.1400661634962708)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.3353749158170367),-                                    ("Marchinteger (numeric)", -2.740840023925201),-                                    ("Aprilinteger (numeric)", -2.740840023925201),-                                    ("month", -0.9490805546971459),-                                    ("from|since|after <time-of-day>integer (numeric)",-                                     -2.3353749158170367),-                                    ("Julyinteger (numeric)", -1.6422277352570913)],-                               n = 11}}),-       ("Diwali",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("last night",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -2.2512917986064953),-                                    ("Wednesday", -2.2512917986064953),-                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),-                                    ("Tuesday", -1.55814461804655)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)October", -1.791759469228055),-                                    ("daymonth", -1.2809338454620642),-                                    ("day (grain)intersect", -1.791759469228055),-                                    ("weekmonth", -1.791759469228055),-                                    ("week (grain)intersect", -2.1972245773362196),-                                    ("week (grain)September", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Chhath",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Vasant Panchami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)April", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Black Friday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week-end",-        Classifier{okData =-                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("Great Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maundy Thursday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("right now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("for <duration> from <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -1.5040773967762742),-                                    ("dayday", -1.0986122886681098),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -1.5040773967762742)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.252762968495368),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -1.252762968495368)],-                               n = 1}}),-       ("compose by multiplication",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("between <time> and <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.832909122935104),-                                    ("hh:mmhh:mm", -0.832909122935104)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),-                                    ("minuteminute", -1.410986973710262),-                                    ("minutehour", -1.410986973710262),-                                    ("hh:mmintersect", -1.410986973710262)],-                               n = 18}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),-                                    ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>integer (numeric)integer (numeric)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",-                                     -2.740840023925201),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -2.3353749158170367),-                                    ("month", -0.8690378470236094),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -2.3353749158170367)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of days",-        Classifier{okData =-                     ClassData{prior = -3.509131981127006e-2,-                               unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},-                   koData =-                     ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+                     ClassData{prior = -8.961215868968717e-2,+                               unseen = -3.5263605246161616,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 32},+                   koData =+                     ClassData{prior = -2.456735772821304, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.6049544685244844, unseen = -5.736572297479192,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 308},+                   koData =+                     ClassData{prior = -0.7898768070184965, unseen = -5.552959584921617,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 256}}),+       ("<year> (bc|ad)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = -5.406722127027582e-2,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),+                                    ("year", -2.662587827025453),+                                    ("<integer> <unit-of-duration>", -1.0531499145913523),+                                    ("a <unit-of-duration>", -2.662587827025453),+                                    ("month", -2.662587827025453),+                                    ("fortnight", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -2.9444389791664407,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("year", -1.5040773967762742),+                                    ("<integer> <unit-of-duration>", -1.5040773967762742)],+                               n = 1}}),+       ("noon|midnight|EOD|end of day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter to|till|before <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Father's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.6739764335716716),+                                    ("dayday", -1.1631508098056809),+                                    ("day (grain)yesterday", -1.6739764335716716)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.6739764335716716),+                                    ("year (grain)Christmas", -2.0794415416798357),+                                    ("dayday", -2.0794415416798357),+                                    ("day (grain)intersect", -1.6739764335716716),+                                    ("day (grain)Easter Sunday", -2.0794415416798357),+                                    ("yearday", -2.0794415416798357)],+                               n = 4}}),+       ("Easter Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Navaratri",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Martin Luther King's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (20..90)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Shemini Atzeret",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ramadan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lazarus Saturday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect 2 numbers",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("compose by multiplicationinteger (0..19)",+                                     -0.2231435513142097)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],+                               n = 3}}),+       ("mm/yyyy",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("from|since|after <time>",+        Classifier{okData =+                     ClassData{prior = -1.540445040947149, unseen = -4.248495242049359,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal or number) <named-month>",+                                     -3.5409593240373143),+                                    ("July", -3.5409593240373143),+                                    ("year (latent)", -3.1354942159291497),+                                    ("day", -3.1354942159291497),+                                    ("time-of-day (latent)", -2.624668592163159),+                                    ("year", -3.1354942159291497),+                                    ("<time-of-day> am|pm", -2.624668592163159),+                                    ("hh:mm", -2.624668592163159),+                                    ("<day-of-month> (ordinal)", -3.5409593240373143),+                                    ("hour", -2.03688192726104), ("month", -3.1354942159291497),+                                    ("minute", -2.624668592163159),+                                    ("August", -3.5409593240373143)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.2411620568168881, unseen = -5.111987788356543,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -4.007333185232471),+                                    ("week", -4.412798293340635),+                                    ("<day-of-month> (ordinal or number) <named-month>",+                                     -4.412798293340635),+                                    ("today", -4.412798293340635),+                                    ("intersect", -2.540996116439044),+                                    ("<time> for <duration>", -4.412798293340635),+                                    ("second", -4.412798293340635), ("now", -3.71965111278069),+                                    ("tomorrow", -4.007333185232471),+                                    ("this|last|next <cycle>", -4.412798293340635),+                                    ("day", -1.927891643552635),+                                    ("time-of-day (latent)", -2.6210388241125804),+                                    ("<time-of-day> am|pm", -4.007333185232471),+                                    ("nograin", -3.71965111278069),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -4.412798293340635),+                                    ("<day-of-month> (ordinal)", -4.007333185232471),+                                    ("Easter Sunday", -4.412798293340635),+                                    ("Christmas", -3.71965111278069), ("hour", -2.3978952727983707),+                                    ("month", -4.412798293340635),+                                    ("<datetime> - <datetime> (interval)", -3.1600353248452673),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.908720896564361),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -4.007333185232471),+                                    ("minute", -1.927891643552635),+                                    ("right now", -4.412798293340635),+                                    ("<month> dd-dd (interval)", -3.71965111278069),+                                    ("part of days", -4.412798293340635),+                                    ("dd-dd <month> (interval)", -4.007333185232471)],+                               n = 66}}),+       ("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}}),+       ("<ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.268683541318364),+                                    ("daymonth", -2.268683541318364),+                                    ("ordinal (digits)day (grain)May", -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.6741486494265287),+                                    ("weekmonth", -1.7578579175523736),+                                    ("ordinal (digits)week (grain)October", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)intersect", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.6741486494265287),+                                    ("weekyear", -1.9810014688665833),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)May",+                                     -2.6741486494265287)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom HaShoah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal or number) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)December", -1.6582280766035324),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)April", -2.3513752571634776),+                                    ("month", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)October", -2.6741486494265287),+                                    ("ordinal (digits)July", -2.6741486494265287),+                                    ("integer (numeric)September", -2.268683541318364),+                                    ("ordinal (digits)August", -2.6741486494265287),+                                    ("integer (numeric)August", -2.6741486494265287),+                                    ("ordinal (digits)April", -2.6741486494265287),+                                    ("month", -1.0647107369924282),+                                    ("integer (numeric)July", -2.268683541318364)],+                               n = 9}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -9.237332013101517e-2,+                               unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("dayhour", -1.4816045409242156),+                                    ("Mondayearly morning", -3.378724525810097),+                                    ("time-of-day (latent)tonight", -3.378724525810097),+                                    ("hourhour", -2.3978952727983707),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("todaypart of days", -3.784189633918261),+                                    ("minutehour", -2.6855773452501515),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -3.378724525810097),+                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),+                                    ("intersectpart of days", -3.784189633918261),+                                    ("intersectin|during the <part-of-day>", -3.784189633918261),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("tomorrowpart of days", -2.3978952727983707),+                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("hhmm (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("yesterdaypart of days", -3.378724525810097),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("Mondaypart of days", -3.784189633918261)],+                               n = 31},+                   koData =+                     ClassData{prior = -2.4277482359480516,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.772588722239781),+                                    ("monthhour", -2.772588722239781),+                                    ("hourhour", -2.772588722239781),+                                    ("year (latent)in|during the <part-of-day>",+                                     -2.772588722239781),+                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -2.772588722239781)],+                               n = 3}}),+       ("dd/mm",+        Classifier{okData =+                     ClassData{prior = -1.2685113254635072,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -0.33024168687057687,+                               unseen = -3.2188758248682006,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 23}}),+       ("today",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.4557388028063e-2, unseen = -5.003946305945459,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.898599985096005),+                                    ("noon|midnight|EOD|end of day", -3.898599985096005),+                                    ("integer after|past <hour-of-day>", -3.898599985096005),+                                    ("half after|past <hour-of-day>", -4.304065093204169),+                                    ("time-of-day (latent)", -1.6650077635889111),+                                    ("hhmm (latent)", -3.6109179126442243),+                                    ("<time-of-day> am|pm", -1.7783364488959144),+                                    ("hh:mm", -3.3877743613300146),+                                    ("about|exactly <time-of-day>", -3.898599985096005),+                                    ("hour", -1.0459685551826876),+                                    ("<time-of-day> sharp|exactly", -4.304065093204169),+                                    ("minute", -2.10684051586795)],+                               n = 68},+                   koData =+                     ClassData{prior = -2.512305623976115, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2321436812926323),+                                    ("hour", -1.2321436812926323)],+                               n = 6}}),+       ("December",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.1972245773362196),+                                    ("Wednesday", -2.6026896854443837),+                                    ("Saturday", -2.6026896854443837),+                                    ("Monday", -2.1972245773362196),+                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+                                    ("Sunday", -2.6026896854443837)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tonight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|past|next <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.2626798770413155,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.456735772821304), ("second", -2.639057329615259),+                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),+                                    ("<integer> <unit-of-duration>", -0.7827593392496325),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("minute", -2.639057329615259)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the ides of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.4816045409242156),+                                    ("dd/mm", -3.4965075614664802),+                                    ("absorption of , after named day", -3.0910424533583156),+                                    ("intersect", -3.0910424533583156),+                                    ("Saturday", -2.803360380906535),+                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.803360380906535),+                                    ("hour", -3.4965075614664802)],+                               n = 28},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.791759469228055)],+                               n = 4}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.11122563511022437,+                               unseen = -3.970291913552122,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},+                   koData =+                     ClassData{prior = -2.2512917986064953,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7884573603642702),+                                    ("hh:mmhh:mm", -0.7884573603642702)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),+                                    ("minutehour", -0.7884573603642702)],+                               n = 9}}),+       ("Halloween",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Passover",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("October",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> more <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vesak",+        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}}),+       ("Earth 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}}),+       ("in|within|after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -4.6913478822291435,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.295836866004329),+                                    ("<integer> more <unit-of-duration>", -3.9889840465642745),+                                    ("three-quarters of an hour", -3.0726933146901194),+                                    ("<integer> + '\"", -3.295836866004329),+                                    ("number.number hours", -3.9889840465642745),+                                    ("second", -3.58351893845611),+                                    ("half a <time-grain>", -3.0726933146901194),+                                    ("day", -3.295836866004329), ("year", -3.9889840465642745),+                                    ("<integer> <unit-of-duration>", -1.6376087894007967),+                                    ("a <unit-of-duration>", -3.0726933146901194),+                                    ("quarter of an hour", -3.0726933146901194),+                                    ("hour", -2.6026896854443837),+                                    ("about|exactly <duration>", -3.9889840465642745),+                                    ("half an hour (abbrev).", -3.58351893845611),+                                    ("<integer> and an half hour", -3.9889840465642745),+                                    ("minute", -1.2809338454620642)],+                               n = 45},+                   koData =+                     ClassData{prior = -2.3025850929940455, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -2.2335922215070942), ("year", -1.9459101490553135),+                                    ("<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("a <unit-of-duration>", -2.2335922215070942)],+                               n = 5}}),+       ("January",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("three-quarters of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mattu Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Wednesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> + '\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half <integer> (UK style hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("July",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.48550781578170077,+                               unseen = -2.890371757896165,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("Shavuot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> <duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayyear", -0.6931471805599453),+                                    ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.466337068793427),+                                    ("quarter", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),+                                    ("quarter", -0.8109302162163288)],+                               n = 3}}),+       ("Boss's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Orthodox Easter Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("one twenty two",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("May",+        Classifier{okData =+                     ClassData{prior = 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.4711784874188598, unseen = -6.75343791859778,+                               likelihoods =+                                 HashMap.fromList+                                   [("Navaratriyear (latent)", -6.059123195581797),+                                    ("Father's Dayyear (latent)", -6.059123195581797),+                                    ("Ramadanyear (latent)", -6.059123195581797),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.8063602270864285),+                                    ("Bhai Doojyear (latent)", -6.059123195581797),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.8063602270864285),+                                    ("hourday", -4.354375103343371),+                                    ("dayhour", -3.2557628146752617),+                                    ("Martin Luther King's Dayyear (latent)", -5.653658087473633),+                                    ("Shemini Atzeretyear (latent)", -6.059123195581797),+                                    ("daymonth", -5.1428324637076415),+                                    ("monthday", -5.653658087473633),+                                    ("monthyear", -4.267363726353742),+                                    ("Yom Ha'atzmautyear (latent)", -6.059123195581797),+                                    ("Vijayadashamiyear (latent)", -6.059123195581797),+                                    ("Thanksgiving Dayyear (latent)", -4.9605109069136875),+                                    ("Thai Pongalyear (latent)", -5.365976015021851),+                                    ("Thiru Onamyear (latent)", -5.365976015021851),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.059123195581797),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -6.059123195581797),+                                    ("houryear", -5.365976015021851),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -6.059123195581797),+                                    ("Christmas<time-of-day> am|pm", -6.059123195581797),+                                    ("last <day-of-week> of <time>year (latent)",+                                     -6.059123195581797),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.365976015021851),+                                    ("<time-of-day> am|pmintersect", -4.8063602270864285),+                                    ("Earth Houryear (latent)", -6.059123195581797),+                                    ("Octoberyear (latent)", -4.555045798805523),+                                    ("intersect<time-of-day> am|pm", -6.059123195581797),+                                    ("Mattu Pongalyear (latent)", -6.059123195581797),+                                    ("Shavuotyear (latent)", -6.059123195581797),+                                    ("Dhanterasin <named-month>|year", -6.059123195581797),+                                    ("at <time-of-day>in|within|after <duration>",+                                     -6.059123195581797),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.059123195581797),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -5.653658087473633),+                                    ("Marchyear (latent)", -6.059123195581797),+                                    ("Sukkotyear (latent)", -5.653658087473633),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -6.059123195581797),+                                    ("Clean Mondayyear (latent)", -5.653658087473633),+                                    ("monthhour", -5.653658087473633),+                                    ("todayat <time-of-day>", -6.059123195581797),+                                    ("Thursday<time> timezone", -4.354375103343371),+                                    ("from|since|after <time>December", -6.059123195581797),+                                    ("dd/mm<time-of-day> am|pm", -6.059123195581797),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -6.059123195581797),+                                    ("Palm SundaySunday", -5.653658087473633),+                                    ("dayday", -3.8618986182455775),+                                    ("dd/mmat <time-of-day>", -6.059123195581797),+                                    ("<time> <part-of-day>at <time-of-day>", -6.059123195581797),+                                    ("tonightat <time-of-day>", -6.059123195581797),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -5.365976015021851),+                                    ("today<time-of-day> am|pm", -6.059123195581797),+                                    ("Februarythe <day-of-month> (ordinal)", -5.653658087473633),+                                    ("at <time-of-day><time> <part-of-day>", -6.059123195581797),+                                    ("hourhour", -4.8063602270864285),+                                    ("<time-of-day> am|pmon <date>", -4.044220175039532),+                                    ("Wednesdaythis|last|next <cycle>", -6.059123195581797),+                                    ("Lentyear (latent)", -6.059123195581797),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.555045798805523),+                                    ("Boghiyear (latent)", -6.059123195581797),+                                    ("dayyear", -1.9647786333596962),+                                    ("Thursdayfrom|since|after <time>", -5.653658087473633),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -6.059123195581797),+                                    ("Thursdayat <time-of-day>", -5.653658087473633),+                                    ("Islamic New Yearyear (latent)", -5.653658087473633),+                                    ("Laylat al-Qadryear (latent)", -5.1428324637076415),+                                    ("Chhathin <named-month>|year", -6.059123195581797),+                                    ("Vasant Panchamiin <named-month>|year", -6.059123195581797),+                                    ("Diwaliin <named-month>|year", -6.059123195581797),+                                    ("Shrove Tuesdayyear (latent)", -6.059123195581797),+                                    ("intersect by \",\", \"of\", \"from\" for year<time-of-day> am|pm",+                                     -5.365976015021851),+                                    ("<time-of-day> am|pmtomorrow", -5.365976015021851),+                                    ("Yom Kippuryear (latent)", -6.059123195581797),+                                    ("<part-of-day> of <time>year (latent)", -6.059123195581797),+                                    ("minutehour", -5.1428324637076415),+                                    ("Kaanum Pongalyear (latent)", -5.653658087473633),+                                    ("Maha Saptamiyear (latent)", -6.059123195581797),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.653658087473633),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.354375103343371),+                                    ("for <duration> from <time>December", -6.059123195581797),+                                    ("tomorrow<time-of-day> sharp|exactly", -6.059123195581797),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.1428324637076415),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.653658087473633),+                                    ("Pentecostyear (latent)", -6.059123195581797),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.1428324637076415),+                                    ("Eid al-Fitryear (latent)", -6.059123195581797),+                                    ("Mondayin|during the <part-of-day>", -6.059123195581797),+                                    ("Raksha Bandhanyear (latent)", -6.059123195581797),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.653658087473633),+                                    ("Navaratriin <named-month>|year", -6.059123195581797),+                                    ("Ashurayear (latent)", -6.059123195581797),+                                    ("Chinese New Yearyear (latent)", -6.059123195581797),+                                    ("Sundayyear (latent)", -6.059123195581797),+                                    ("Lag BaOmeryear (latent)", -6.059123195581797),+                                    ("last weekend of <named-month>year (latent)",+                                     -6.059123195581797),+                                    ("Eid al-Adhayear (latent)", -5.1428324637076415),+                                    ("intersectin|during the <part-of-day>", -6.059123195581797),+                                    ("Christmasat <time-of-day>", -6.059123195581797),+                                    ("Passoveryear (latent)", -6.059123195581797),+                                    ("Lazarus Saturdayyear (latent)", -6.059123195581797),+                                    ("dd/mmyear (latent)", -6.059123195581797),+                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",+                                     -6.059123195581797),+                                    ("Yom HaShoahyear (latent)", -5.653658087473633),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -5.653658087473633),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -6.059123195581797),+                                    ("Thai Pongalin <named-month>|year", -6.059123195581797),+                                    ("Septemberyear (latent)", -5.653658087473633),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.8063602270864285),+                                    ("Halloweenyear (latent)", -6.059123195581797),+                                    ("<ordinal> last <cycle> of <time>year (latent)",+                                     -5.653658087473633),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.365976015021851),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -6.059123195581797),+                                    ("at <time-of-day>intersect", -5.653658087473633),+                                    ("Rosh Hashanahyear (latent)", -5.365976015021851),+                                    ("Dhanterasyear (latent)", -6.059123195581797),+                                    ("Tu BiShvatyear (latent)", -6.059123195581797),+                                    ("Holiyear (latent)", -5.365976015021851),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -6.059123195581797),+                                    ("Holika Dahanyear (latent)", -5.365976015021851),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -6.059123195581797),+                                    ("dayminute", -3.420065865966538),+                                    ("Mawlidyear (latent)", -6.059123195581797),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.653658087473633),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -6.059123195581797),+                                    ("Jumu'atul-Widayear (latent)", -5.1428324637076415),+                                    ("minuteday", -2.421537035855411),+                                    ("absorption of , after named dayintersect",+                                     -6.059123195581797),+                                    ("intersectyear (latent)", -6.059123195581797),+                                    ("Orthodox Easter Sundayyear (latent)", -6.059123195581797),+                                    ("<ordinal> <cycle> of <time>year (latent)",+                                     -6.059123195581797),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -6.059123195581797),+                                    ("Mothering Sundayyear (latent)", -5.653658087473633),+                                    ("Boss's Dayyear (latent)", -5.653658087473633),+                                    ("Global Youth Service Dayyear (latent)", -6.059123195581797),+                                    ("Tisha B'Avyear (latent)", -6.059123195581797),+                                    ("Isra and Mi'rajyear (latent)", -5.1428324637076415),+                                    ("at <time-of-day>absorption of , after named day",+                                     -6.059123195581797),+                                    ("Christmasyear (latent)", -5.653658087473633),+                                    ("Naraka Chaturdashiyear (latent)", -5.653658087473633),+                                    ("at <time-of-day>on <date>", -4.9605109069136875),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.449685283147696),+                                    ("dayweek", -6.059123195581797),+                                    ("Easter Sundayyear (latent)", -5.365976015021851),+                                    ("weekyear", -4.9605109069136875),+                                    ("hh:mmin|during the <part-of-day>", -5.365976015021851),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.653658087473633),+                                    ("Hanukkahyear (latent)", -5.365976015021851),+                                    ("February<time> <part-of-day>", -6.059123195581797),+                                    ("Tuesdayin <named-month>|year", -6.059123195581797),+                                    ("Great Lentyear (latent)", -6.059123195581797),+                                    ("tomorrowat <time-of-day>", -5.365976015021851),+                                    ("between <time> and <time>on <date>", -4.449685283147696),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\" for year",+                                     -6.059123195581797),+                                    ("last <cycle> of <time>year (latent)", -5.365976015021851),+                                    ("at <time-of-day>tomorrow", -5.653658087473633),+                                    ("tomorrow<time-of-day> am|pm", -6.059123195581797),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -6.059123195581797),+                                    ("Diwaliyear (latent)", -6.059123195581797),+                                    ("Black Fridayyear (latent)", -5.653658087473633),+                                    ("the <ordinal> last <cycle> of <time>year (latent)",+                                     -6.059123195581797),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -6.059123195581797),+                                    ("Chhathyear (latent)", -5.653658087473633),+                                    ("Vasant Panchamiyear (latent)", -6.059123195581797),+                                    ("Palm Sundayintersect", -6.059123195581797),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -6.059123195581797),+                                    ("August Bank Holidayyear (latent)", -5.365976015021851),+                                    ("Februaryintersect", -6.059123195581797),+                                    ("Simchat Torahyear (latent)", -6.059123195581797),+                                    ("minuteyear", -6.059123195581797)],+                               n = 319},+                   koData =+                     ClassData{prior = -0.9788742181759229, unseen = -6.401917196727186,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.79081953287472),+                                    ("hourday", -4.79081953287472),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.707110264748875),+                                    ("dayhour", -3.142160907287339),+                                    ("Tuesdayfrom|since|after <time>", -5.707110264748875),+                                    ("daymonth", -3.567044101252605),+                                    ("monthday", -5.301645156640712),+                                    ("monthyear", -4.454347296253507),+                                    ("<time-of-day> am|pmyear (latent)", -5.301645156640712),+                                    ("Thai Pongalyear (latent)", -5.01396308418893),+                                    ("intersecthh:mm", -5.707110264748875),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.707110264748875),+                                    ("houryear", -4.79081953287472),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.707110264748875),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.01396308418893),+                                    ("<time-of-day> am|pmintersect", -4.454347296253507),+                                    ("until <time>on <date>", -5.01396308418893),+                                    ("Octoberyear (latent)", -5.707110264748875),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.707110264748875),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -4.454347296253507),+                                    ("about|exactly <time-of-day>year (latent)",+                                     -5.707110264748875),+                                    ("absorption of , after named dayJuly", -5.301645156640712),+                                    ("from|since|after <time>July", -5.707110264748875),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -4.79081953287472),+                                    ("Clean Mondayyear (latent)", -5.707110264748875),+                                    ("monthhour", -5.707110264748875),+                                    ("hourmonth", -4.79081953287472),+                                    ("todayat <time-of-day>", -5.707110264748875),+                                    ("Bank Holidayyear (latent)", -5.01396308418893),+                                    ("from|since|after <time>December", -5.707110264748875),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -5.707110264748875),+                                    ("Mondayyear (latent)", -5.01396308418893),+                                    ("dayday", -5.301645156640712),+                                    ("dd/mmat <time-of-day>", -5.301645156640712),+                                    ("<time-of-day> am|pmon <date>", -4.454347296253507),+                                    ("Thursdaydd/mm", -5.707110264748875),+                                    ("dayyear", -2.662587827025453),+                                    ("New Year's Dayyear (latent)", -5.301645156640712),+                                    ("Thursdayfrom|since|after <time>", -4.00236217251045),+                                    ("Thursdayat <time-of-day>", -4.454347296253507),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.707110264748875),+                                    ("Aprilyear (latent)", -5.707110264748875),+                                    ("monthminute", -5.707110264748875),+                                    ("<time-of-day> am|pmtomorrow", -5.707110264748875),+                                    ("Thursdayhh:mm", -4.79081953287472),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.707110264748875),+                                    ("minutemonth", -3.915350795520821),+                                    ("week-endin <named-month>|year", -5.707110264748875),+                                    ("Augustyear (latent)", -5.301645156640712),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.301645156640712),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.301645156640712),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.707110264748875),+                                    ("dd/mm<time-of-day> - <time-of-day> (interval)",+                                     -5.301645156640712),+                                    ("Sundayyear (latent)", -5.01396308418893),+                                    ("Christmasat <time-of-day>", -5.707110264748875),+                                    ("from|since|after <time>year (latent)", -4.454347296253507),+                                    ("dd/mmyear (latent)", -5.707110264748875),+                                    ("<duration> after|before|from <time>December",+                                     -5.707110264748875),+                                    ("yesterday<time-of-day> am|pm", -5.707110264748875),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -5.707110264748875),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -5.01396308418893),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.707110264748875),+                                    ("at <time-of-day>intersect", -5.301645156640712),+                                    ("hh:mmyear (latent)", -4.608497976080766),+                                    ("Holiyear (latent)", -5.707110264748875),+                                    ("until <time><time-of-day> am|pm", -5.707110264748875),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.707110264748875),+                                    ("dayminute", -3.1813816204406202),+                                    ("intersectSeptember", -4.203032867972602),+                                    ("minuteday", -2.639057329615259),+                                    ("absorption of , after named dayintersect",+                                     -5.707110264748875),+                                    ("Februaryin|during the <part-of-day>", -5.707110264748875),+                                    ("hh:mmon <date>", -3.692207244206611),+                                    ("Saturdayyear (latent)", -5.707110264748875),+                                    ("from|since|after <time>on <date>", -4.79081953287472),+                                    ("absorption of , after named daySeptember", -4.79081953287472),+                                    ("Naraka Chaturdashiyear (latent)", -5.707110264748875),+                                    ("on <date>September", -5.301645156640712),+                                    ("at <time-of-day>on <date>", -5.301645156640712),+                                    ("in <named-month>|yearyear (latent)", -5.707110264748875),+                                    ("dayweek", -5.707110264748875),+                                    ("Easter Sundayyear (latent)", -5.301645156640712),+                                    ("Thursday<time-of-day> am|pm", -5.01396308418893),+                                    ("weekyear", -5.301645156640712),+                                    ("<named-month> <day-of-month> (non ordinal)until <time>",+                                     -5.707110264748875),+                                    ("intersect by \",\", \"of\", \"from\" for yearhh:mm",+                                     -5.01396308418893),+                                    ("Sundayfrom|since|after <time>", -5.707110264748875),+                                    ("absorption of , after named dayFebruary", -4.79081953287472),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.707110264748875),+                                    ("tomorrowat <time-of-day>", -5.707110264748875),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.707110264748875),+                                    ("last <cycle> of <time>year (latent)", -5.301645156640712),+                                    ("tomorrow<time-of-day> am|pm", -5.707110264748875),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -5.01396308418893),+                                    ("Diwaliyear (latent)", -5.301645156640712),+                                    ("<time-of-day> - <time-of-day> (interval)July",+                                     -5.707110264748875),+                                    ("Fridayyear (latent)", -5.301645156640712),+                                    ("minuteyear", -4.454347296253507)],+                               n = 192}}),+       ("one eleven",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("after lunch/work/school",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("early morning",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <number> (implicit minutes)",+        Classifier{okData =+                     ClassData{prior = -1.2367626271489267,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3184537311185346),+                                    ("integer (0..19)", -1.2992829841302609)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.3429447511268303,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1823215567939546),+                                    ("integer (0..19)", -1.791759469228055)],+                               n = 22}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.791759469228055),+                                    ("ordinal (digits)quarter (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("quarteryear", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+                                     -2.1972245773362196),+                                    ("ordinal (digits)day (grain)this|last|next <cycle>",+                                     -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.295836866004329,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.001480000210124),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("hh:mmhh:mm", -2.001480000210124),+                                    ("dayday", -2.512305623976115),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+                                    ("hourhour", -2.512305623976115),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.1986731175506815),+                                    ("dayhour", -2.793208009442517),+                                    ("<day-of-month> (ordinal)time-of-day (latent)",+                                     -3.1986731175506815),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -3.1986731175506815),+                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),+                                    ("minuteminute", -2.793208009442517),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.793208009442517),+                                    ("dayday", -3.1986731175506815),+                                    ("hourhour", -2.505525936990736),+                                    ("dayyear", -3.1986731175506815),+                                    ("minutehour", -2.2823823856765264),+                                    ("hh:mmintersect", -2.793208009442517),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<time-of-day> am|pm",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+                                     -3.1986731175506815)],+                               n = 14}}),+       ("Saturday",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("the <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.7346010553881064),+                                    ("week (grain)October", -1.7346010553881064),+                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",+                                     -1.7346010553881064),+                                    ("weekday", -1.2237754316221157)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number.number hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -2.3025850929940455),+                                    ("hourminute", -2.3025850929940455),+                                    ("time-of-day (latent)<time-of-day> sharp|exactly",+                                     -2.70805020110221),+                                    ("time-of-day (latent)hh:mm", -2.70805020110221),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.0149030205422647),+                                    ("hourhour", -1.791759469228055),+                                    ("minutehour", -1.6094379124341003),+                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+                               n = 9}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),+                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],+                               n = 4}}),+       ("Global Youth Service 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}}),+       ("Tisha B'Av",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mothering Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yyyy-mm-dd",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -0.15219181534192538,+                               unseen = -5.017279836814924,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -4.0821994520255166e-2),+                                    ("intersect 2 numbers", -3.624340932976365)],+                               n = 146},+                   koData =+                     ClassData{prior = -1.957744606702316, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1349799328389845),+                                    ("negative numbers", -0.6931471805599453),+                                    ("compose by multiplication", -1.9459101490553135)],+                               n = 24}}),+       ("Bank Holiday",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<time> for <duration>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -1.0296194171811581),+                                    ("intersect<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -1.540445040947149),+                                    ("from|since|after <time><integer> <unit-of-duration>",+                                     -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.2039728043259361),+                                    ("December<integer> <unit-of-duration>", -1.2039728043259361)],+                               n = 2}}),+       ("Monday",+        Classifier{okData =+                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -1.2237754316221157,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("dd/mm/yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm:ss",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Hanukkah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.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 = -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}}),+       ("half a <time-grain>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("Valentine's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("April",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maha Saptami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -3.822121282019774e-2,+                               unseen = -4.3694478524670215,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 77},+                   koData =+                     ClassData{prior = -3.283414346005772, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<part-of-day> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.3513752571634776),+                                    ("part of daysintersect", -2.3513752571634776),+                                    ("hourday", -0.9650808960435872),+                                    ("part of daysthe <day-of-month> (ordinal)",+                                     -2.3513752571634776),+                                    ("part of daysthe <day-of-month> (number)",+                                     -2.3513752571634776),+                                    ("part of daysthis <time>", -2.3513752571634776),+                                    ("part of daysChristmas", -1.9459101490553135)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time> for <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("six thirty six a.m.",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.252762968495368),+                                    ("one twenty two", -0.8472978603872037),+                                    ("one eleven", -1.252762968495368)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Shrove Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<day-of-month> (ordinal or number) of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.3513752571634776),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.3513752571634776),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)February", -1.9459101490553135),+                                    ("month", -0.9650808960435872),+                                    ("ordinal (digits)March", -2.3513752571634776),+                                    ("integer (numeric)July", -2.3513752571634776)],+                               n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.5040773967762742),+                                    ("month", -1.5040773967762742)],+                               n = 1}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("part of days", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Kaanum Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom Kippur",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("powers of tens",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Friday",+        Classifier{okData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("early morning", -2.5257286443082556),+                                    ("hour", -0.7339691750802004),+                                    ("part of days", -0.8209805520698302)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.916290731874155),+                                    ("part of days", -0.916290731874155)],+                               n = 1}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh(:mm) - <time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|last|next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.15790302944580878,+                               unseen = -5.093750200806762,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.1173044216802621),+                                    ("month (grain)", -2.7850112422383386),+                                    ("year (grain)", -2.6026896854443837),+                                    ("week (grain)", -1.1173044216802621),+                                    ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),+                                    ("month", -2.7850112422383386),+                                    ("quarter (grain)", -3.4781584227982836)],+                               n = 76},+                   koData =+                     ClassData{prior = -1.9236870122706031,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2809338454620642),+                                    ("week (grain)", -1.2809338454620642),+                                    ("day", -1.9740810260220096),+                                    ("day (grain)", -1.9740810260220096)],+                               n = 13}}),+       ("Simchat Torah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("August Bank Holiday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Eve",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Raksha Bandhan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ashura",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Palm Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Eid al-Adha",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),+                                    ("time-of-day (latent)", -1.9459101490553135),+                                    ("<time-of-day> am|pm", -1.9459101490553135),+                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+                                    ("minute", -1.540445040947149)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -1.7047480922384253),+                                    ("ordinal (digits)", -0.2006706954621511)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.9808292530117262),+                                    ("ordinal (digits)", -0.4700036292457356)],+                               n = 6}}),+       ("last weekend of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),+                                    ("month", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lag BaOmer",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fractional number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -1.252762968495368, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("Chinese New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|this|next <season>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.635159922909596, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.11441035117774422),+                                    ("integer (0..19)", -2.3581549441488563)],+                               n = 71},+                   koData =+                     ClassData{prior = -0.7547050735593787, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.878087785311434e-2),+                                    ("integer (0..19)", -3.0910424533583156),+                                    ("integer 21..99", -3.4965075614664802)],+                               n = 63}}),+       ("beginning of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("SundayMarch", -1.6094379124341003),+                                    ("MondayMarch", -1.6094379124341003),+                                    ("Sundayintersect", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.1351747783682526, unseen = -5.170483995038151,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5257286443082556),+                                    ("integer (0..19)year (grain)", -3.0853444322436783),+                                    ("integer (numeric)day (grain)", -2.5998366164619773),+                                    ("integer (0..19)second (grain) ", -3.7784916128036232),+                                    ("integer (0..19)hour (grain)", -3.0853444322436783),+                                    ("second", -3.373026504695459),+                                    ("integer (numeric)second (grain) ", -4.0661736852554045),+                                    ("integer (numeric)year (grain)", -3.373026504695459),+                                    ("day", -2.331572629867298), ("year", -2.5998366164619773),+                                    ("integer (numeric)week (grain)", -3.0853444322436783),+                                    ("integer (0..19)month (grain)", -3.5553480614894135),+                                    ("hour", -2.6798793241355137), ("month", -3.2188758248682006),+                                    ("integer (numeric)minute (grain)", -3.2188758248682006),+                                    ("integer (0..19)minute (grain)", -3.0853444322436783),+                                    ("integer (numeric)month (grain)", -4.0661736852554045),+                                    ("minute", -2.5257286443082556),+                                    ("integer (numeric)hour (grain)", -3.5553480614894135),+                                    ("integer (0..19)day (grain)", -3.5553480614894135),+                                    ("integer (0..19)week (grain)", -3.2188758248682006)],+                               n = 76},+                   koData =+                     ClassData{prior = -2.068012845856213, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+                                    ("integer (numeric)hour (grain)", -1.4087672169719492),+                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],+                               n = 11}}),+       ("hhmm (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.2546422183735807, unseen = -5.37989735354046,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>", -3.765840495250065),+                                    ("integer after|past <hour-of-day>", -3.9889840465642745),+                                    ("at <time-of-day>", -2.1564025828159643),+                                    ("<time-of-day> o'clock", -4.276666119016055),+                                    ("half after|past <hour-of-day>", -4.276666119016055),+                                    ("time-of-day (latent)", -1.7117167615545186),+                                    ("hhmm (latent)", -4.68213122712422),+                                    ("hh:mm", -2.330755969960742),+                                    ("quarter after|past <hour-of-day>", -4.68213122712422),+                                    ("until <time>", -3.9889840465642745),+                                    ("about|exactly <time-of-day>", -4.68213122712422),+                                    ("hour", -1.1856236656577395),+                                    ("<time-of-day> sharp|exactly", -4.68213122712422),+                                    ("minute", -1.791759469228055)],+                               n = 100},+                   koData =+                     ClassData{prior = -1.492516574375198, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.20545280453606),+                                    ("from|since|after <time>", -3.20545280453606),+                                    ("<hour-of-day> <integer>", -3.6109179126442243),+                                    ("time-of-day (latent)", -1.085189268335969),+                                    ("hour", -1.0459685551826876), ("minute", -2.6946271807700692)],+                               n = 29}}),+       ("Yom Ha'atzmaut",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thiru Onam",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thai Pongal",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Vijayadashami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thanksgiving Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("part of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Guy Fawkes Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.1400661634962708),+                                    ("year (grain)", -2.4277482359480516),+                                    ("second", -2.833213344056216),+                                    ("week (grain)", -2.1400661634962708),+                                    ("day", -2.1400661634962708),+                                    ("minute (grain)", -2.833213344056216),+                                    ("year", -2.4277482359480516),+                                    ("second (grain) ", -2.833213344056216),+                                    ("minute", -2.833213344056216),+                                    ("day (grain)", -2.1400661634962708)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -1.7227665977411035),+                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+                                    ("quarter (grain)", -1.9459101490553135)],+                               n = 7}}),+       ("at the beginning|end of <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -0.6931471805599453),+                                    ("year", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Dhanteras",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tu BiShvat",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Whit Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -4.255961441879589e-2,+                               unseen = -4.2626798770413155,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},+                   koData =+                     ClassData{prior = -3.1780538303479458,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Holi",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Rosh Hashanah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <named-day> ago|back",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Thursday", -0.6931471805599453),+                                    ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Holika Dahan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second (grain) ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..twentieth,thirtieth,...)",+        Classifier{okData =+                     ClassData{prior = -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}}),+       ("Mawlid",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Jumu'atul-Wida",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("until <time>",+        Classifier{okData =+                     ClassData{prior = -1.1786549963416462, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -2.159484249353372),+                                    ("time-of-day (latent)", -2.5649493574615367),+                                    ("year", -2.159484249353372),+                                    ("<time-of-day> am|pm", -1.8718021769015913),+                                    ("hh:mm", -2.159484249353372), ("hour", -2.159484249353372),+                                    ("minute", -1.6486586255873816)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.2192034840549946),+                                    ("yesterday", -2.7300291078209855),+                                    ("day", -2.7300291078209855),+                                    ("time-of-day (latent)", -1.6314168191528755),+                                    ("hh:mm", -2.2192034840549946), ("hour", -1.5260563034950494),+                                    ("minute", -1.749199854809259)],+                               n = 18}}),+       ("the <cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.252762968495368),+                                    ("dayday", -0.8472978603872037),+                                    ("day (grain)yesterday", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about|exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+                                    ("this|last|next <cycle>", -1.791759469228055),+                                    ("day", -2.4849066497880004),+                                    ("time-of-day (latent)", -2.890371757896165),+                                    ("hhmm (latent)", -2.4849066497880004),+                                    ("<time-of-day> am|pm", -2.890371757896165),+                                    ("hour", -2.1972245773362196),+                                    ("next <time>", -2.890371757896165),+                                    ("this|next <day-of-week>", -2.890371757896165),+                                    ("minute", -2.4849066497880004)],+                               n = 12},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("dd/mm", -2.0794415416798357), ("day", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -2.0794415416798357)],+                               n = 2}}),+       ("Sukkot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthyear", -1.2992829841302609),+                                    ("Marcha <unit-of-duration>", -1.7047480922384253),+                                    ("March<integer> <unit-of-duration>", -1.7047480922384253),+                                    ("Vijayadashami<integer> <unit-of-duration>",+                                     -1.7047480922384253),+                                    ("dayyear", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("World Vegan Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.5389965007326869, unseen = -4.948759890378168,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("dayhour", -3.8430301339411947),+                                    ("daymonth", -2.995732273553991),+                                    ("<named-month> <day-of-month> (non ordinal)Friday",+                                     -4.248495242049359),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.5553480614894135),+                                    ("Wednesdayintersect", -4.248495242049359),+                                    ("Black Fridaythis|last|next <cycle>", -4.248495242049359),+                                    ("<part-of-day> of <time>February", -4.248495242049359),+                                    ("Saturday<time-of-day> am|pm", -4.248495242049359),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -3.8430301339411947),+                                    ("on <date><time-of-day> am|pm", -4.248495242049359),+                                    ("hourmonth", -4.248495242049359),+                                    ("Fridayintersect by \",\", \"of\", \"from\" for year",+                                     -4.248495242049359),+                                    ("dayday", -2.3766930651477676),+                                    ("the <day-of-month> (ordinal)February", -3.8430301339411947),+                                    ("WednesdayOctober", -4.248495242049359),+                                    ("Wednesdaythis|last|next <cycle>", -3.8430301339411947),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.332204510175204),+                                    ("dayyear", -3.332204510175204),+                                    ("Saturday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("Thursdayhh:mm", -3.8430301339411947),+                                    ("Thanksgiving Daythis|last|next <cycle>", -4.248495242049359),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -3.8430301339411947),+                                    ("TuesdayOctober", -4.248495242049359),+                                    ("the <day-of-month> (ordinal)March", -4.248495242049359),+                                    ("Mondaythis|last|next <cycle>", -4.248495242049359),+                                    ("Fridayintersect", -4.248495242049359),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -3.8430301339411947),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.8430301339411947),+                                    ("Tuesdaythis|last|next <cycle>", -4.248495242049359),+                                    ("Sunday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("dayminute", -2.8622008809294686),+                                    ("minuteday", -3.332204510175204),+                                    ("this|last|next <cycle>Sunday", -4.248495242049359),+                                    ("Sundaythis|last|next <cycle>", -4.248495242049359),+                                    ("weekday", -4.248495242049359),+                                    ("dayweek", -3.1498829533812494),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.8430301339411947)],+                               n = 42},+                   koData =+                     ClassData{prior = -0.8754687373538999, unseen = -4.762173934797756,+                               likelihoods =+                                 HashMap.fromList+                                   [("week-endJuly", -4.060443010546419),+                                    ("week-endOctober", -3.367295829986474),+                                    ("daymonth", -1.8632184332102),+                                    ("TuesdaySeptember", -4.060443010546419),+                                    ("Wednesdayintersect", -4.060443010546419),+                                    ("hourmonth", -2.9618307218783095),+                                    ("Fridaythis|last|next <cycle>", -4.060443010546419),+                                    ("SundayFebruary", -4.060443010546419),+                                    ("WednesdayOctober", -4.060443010546419),+                                    ("week-endintersect", -4.060443010546419),+                                    ("dayyear", -4.060443010546419),+                                    ("FridayJuly", -3.654977902438255),+                                    ("FridaySeptember", -4.060443010546419),+                                    ("WednesdayFebruary", -4.060443010546419),+                                    ("minutemonth", -3.144152278672264),+                                    ("SundayMarch", -4.060443010546419),+                                    ("MondayFebruary", -3.654977902438255),+                                    ("Fridayintersect", -4.060443010546419),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.654977902438255),+                                    ("dayminute", -3.367295829986474),+                                    ("SaturdaySeptember", -4.060443010546419),+                                    ("intersectSeptember", -3.144152278672264),+                                    ("MondayMarch", -4.060443010546419),+                                    ("on <date>September", -3.654977902438255),+                                    ("Tuesdayintersect", -4.060443010546419),+                                    ("Sundayintersect", -4.060443010546419)],+                               n = 30}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.772588722239781),+                                    ("Martin Luther King's Day", -2.772588722239781),+                                    ("Mothering Sunday", -2.772588722239781),+                                    ("day", -1.1631508098056809), ("Sunday", -2.772588722239781),+                                    ("Chinese New Year", -2.367123614131617),+                                    ("Thanksgiving Day", -2.772588722239781),+                                    ("Easter Sunday", -2.772588722239781),+                                    ("hour", -2.772588722239781), ("Tuesday", -2.772588722239781),+                                    ("week-end", -2.772588722239781)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.8873031950009028, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -2.5649493574615367), ("day", -2.159484249353372),+                                    ("Sunday", -2.5649493574615367), ("hour", -1.466337068793427),+                                    ("week-end", -1.466337068793427)],+                               n = 7}}),+       ("March",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month>|<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.120263536200091),+                                    ("Thursdayordinal (digits)", -2.5257286443082556),+                                    ("day", -2.120263536200091),+                                    ("Augustordinal (digits)", -2.5257286443082556),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.120263536200091),+                                    ("Tuesdayordinal (digits)", -2.5257286443082556),+                                    ("month", -1.2729656758128873),+                                    ("Marchordinal (digits)", -2.5257286443082556)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>ordinal (digits)",+                                     -1.8718021769015913),+                                    ("Augustordinal (digits)", -1.8718021769015913),+                                    ("month", -1.466337068793427)],+                               n = 2}}),+       ("Clean Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Easter Sunday",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("Christmas",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("dd.mm.yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Isra and Mi'raj",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> after|before|from <time>",+        Classifier{okData =+                     ClassData{prior = -0.3184537311185346,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>now", -2.803360380906535),+                                    ("a <unit-of-duration>Christmas", -2.803360380906535),+                                    ("dayday", -2.803360380906535),+                                    ("<integer> <unit-of-duration>today", -2.803360380906535),+                                    ("daysecond", -2.803360380906535),+                                    ("a <unit-of-duration>right now", -2.803360380906535),+                                    ("minutenograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Easter Sunday",+                                     -2.803360380906535),+                                    ("secondnograin", -2.803360380906535),+                                    ("yearday", -2.1102132003465894),+                                    ("daynograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -2.4423470353692043),+                                    ("dayday", -2.03688192726104),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -2.4423470353692043)],+                               n = 3}}),+       ("<day-of-month> (ordinal or number) of <month>",+        Classifier{okData =+                     ClassData{prior = -8.004270767353637e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.803360380906535),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.803360380906535),+                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+                                    ("integer (numeric)this|last|next <cycle>",+                                     -2.3978952727983707),+                                    ("ordinal (digits)February", -2.803360380906535),+                                    ("integer (numeric)February", -2.3978952727983707),+                                    ("month", -0.9315582040049435),+                                    ("ordinal (digits)March", -2.803360380906535),+                                    ("integer (numeric)July", -2.803360380906535)],+                               n = 12},+                   koData =+                     ClassData{prior = -2.5649493574615367,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.7047480922384253),+                                    ("month", -1.7047480922384253)],+                               n = 1}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Naraka Chaturdashi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("beginning of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martin Luther King's Day", -2.803360380906535),+                                    ("Halloween", -2.803360380906535),+                                    ("Wednesday", -2.803360380906535),+                                    ("Boss's Day", -2.803360380906535),+                                    ("Mothering Sunday", -2.803360380906535),+                                    ("Monday", -2.803360380906535), ("day", -1.0986122886681098),+                                    ("Thanksgiving Day", -2.803360380906535),+                                    ("March", -2.803360380906535), ("month", -2.803360380906535),+                                    ("Tuesday", -2.1102132003465894)],+                               n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> sharp|exactly",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.1400661634962708),+                                    ("time-of-day (latent)", -2.1400661634962708),+                                    ("hhmm (latent)", -2.1400661634962708),+                                    ("<time-of-day> am|pm", -2.1400661634962708),+                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+                                    ("minute", -1.4469189829363254)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <named-month>|year",+        Classifier{okData =+                     ClassData{prior = -0.2719337154836418,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("<year> (bc|ad)", -1.845826690498331),+                                    ("October", -2.9444389791664407),+                                    ("year (latent)", -1.3350010667323402),+                                    ("year", -0.9295359586241757), ("March", -2.9444389791664407),+                                    ("month", -2.538973871058276)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.4350845252893227, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.6739764335716716),+                                    ("year (latent)", -1.3862943611198906),+                                    ("year", -1.3862943611198906), ("month", -1.6739764335716716)],+                               n = 5}}),+       ("Islamic New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.696104113612832e-2),+                                    ("integer (0..19)", -2.6026896854443837)],+                               n = 25}}),+       ("about|exactly <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("half a <time-grain>", -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}}),+       ("half an hour (abbrev).",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               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.5596157879354228, unseen = -4.127134385045092,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -3.012261575505202),+                                    ("from|since|after <time>hh:mm", -2.501435951739211),+                                    ("minuteminute", -1.2776605201170952),+                                    ("hh:mmhh:mm", -1.9136492868370918),+                                    ("dayday", -3.012261575505202),+                                    ("hourhour", -3.012261575505202),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -3.012261575505202),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -3.012261575505202),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -3.012261575505202)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.2386784521643803),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -3.2386784521643803),+                                    ("daymonth", -2.833213344056216),+                                    ("<time-of-day> am|pmintersect", -3.2386784521643803),+                                    ("hh:mm<time-of-day> am|pm", -2.833213344056216),+                                    ("minuteminute", -1.9859154836690123),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("dayday", -3.2386784521643803),+                                    ("from|since|after <time><day-of-month> (ordinal or number) <named-month>",+                                     -2.833213344056216),+                                    ("hourhour", -2.5455312716044354),+                                    ("minutehour", -2.833213344056216),+                                    ("hh:mmintersect", -2.322387720290225),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.2386784521643803),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("from|since|after <time>intersect", -2.833213344056216)],+                               n = 15}}),+       ("Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Day",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("fortnight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> and an half hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Laylat al-Qadr",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Boghi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("at the beginning|end of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("January", -1.3862943611198906),+                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>hh:mm", -2.4849066497880004),+                                    ("minuteminute", -1.529395204760564),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.4011973816621555),+                                    ("hh:mmhh:mm", -1.8971199848858813),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -1.8971199848858813),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -3.4011973816621555),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.4418327522790392, unseen = -4.532599493153256,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.828641396489095),+                                    ("until <time>time-of-day (latent)", -2.575878427993727),+                                    ("hh:mmtime-of-day (latent)", -2.12389330425067),+                                    ("hh:mm<time-of-day> am|pm", -3.4231762883809305),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -3.828641396489095),+                                    ("at <time-of-day><time-of-day> am|pm", -3.828641396489095),+                                    ("hourhour", -1.6314168191528755),+                                    ("from|since|after <time><integer> to|till|before <hour-of-day>",+                                     -3.828641396489095),+                                    ("hourminute", -3.828641396489095),+                                    ("minutehour", -1.5773495978825998),+                                    ("until <time><time-of-day> am|pm", -3.4231762883809305),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -2.575878427993727),+                                    ("at <time-of-day>time-of-day (latent)", -3.4231762883809305),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -3.4231762883809305)],+                               n = 36}}),+       ("military spelled out numbers am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("winter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> after <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+                                     -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.42121346507630353,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5455312716044354),+                                    ("Marchinteger (numeric)", -2.833213344056216),+                                    ("Aprilinteger (numeric)", -3.2386784521643803),+                                    ("month", -0.8407831793660099),+                                    ("Februaryinteger (numeric)", -1.9859154836690123),+                                    ("Septemberinteger (numeric)", -2.833213344056216),+                                    ("Octoberinteger (numeric)", -2.833213344056216),+                                    ("Julyinteger (numeric)", -2.1400661634962708)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.3353749158170367),+                                    ("Marchinteger (numeric)", -2.740840023925201),+                                    ("Aprilinteger (numeric)", -2.740840023925201),+                                    ("month", -0.9490805546971459),+                                    ("from|since|after <time>integer (numeric)",+                                     -2.3353749158170367),+                                    ("Julyinteger (numeric)", -1.6422277352570913)],+                               n = 11}}),+       ("Diwali",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("last night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.2512917986064953),+                                    ("Wednesday", -2.2512917986064953),+                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+                                    ("Tuesday", -1.55814461804655)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},+                   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.916290731874155, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9924301646902063),+                                    ("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.9924301646902063),+                                    ("week (grain)intersect", -2.3978952727983707),+                                    ("week (grain)September", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.2335922215070942),+                                    ("day (grain)May", -2.2335922215070942),+                                    ("week (grain)year (latent)", -1.9459101490553135),+                                    ("weekmonth", -1.7227665977411035),+                                    ("week (grain)October", -2.2335922215070942),+                                    ("weekyear", -1.9459101490553135),+                                    ("week (grain)intersect", -2.2335922215070942)],+                               n = 9}}),+       ("Chhath",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vasant Panchami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(ordinal) <named-month> year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)April", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("daymonth", -2.1972245773362196),+                                    ("ordinal (digits)day (grain)May", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("weekyear", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Black Friday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week-end",+        Classifier{okData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("Great Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maundy Thursday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("right now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("for <duration> from <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -1.5040773967762742),+                                    ("dayday", -1.0986122886681098),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.252762968495368),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -1.252762968495368)],+                               n = 1}}),+       ("compose by multiplication",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("between <time> and <time>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.832909122935104),+                                    ("hh:mmhh:mm", -0.832909122935104)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),+                                    ("minuteminute", -1.410986973710262),+                                    ("minutehour", -1.410986973710262),+                                    ("hh:mmintersect", -1.410986973710262)],+                               n = 18}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>integer (numeric)integer (numeric)",+                                     -2.740840023925201),+                                    ("from|since|after <time>ordinal (digits)ordinal (digits)",+                                     -2.740840023925201),+                                    ("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -2.3353749158170367),+                                    ("from|since|after <time>ordinal (digits)integer (numeric)",+                                     -2.740840023925201),+                                    ("month", -0.8690378470236094),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -2.3353749158170367)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\" for year",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Black Fridaythis|last|next <cycle>", -2.4849066497880004),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -2.0794415416798357),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -2.4849066497880004),+                                    ("dayyear", -0.9808292530117262),+                                    ("Thanksgiving Daythis|last|next <cycle>", -2.4849066497880004),+                                    ("intersectyear (latent)", -2.4849066497880004),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -2.0794415416798357)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Fridaythis|last|next <cycle>", -1.6094379124341003),+                                    ("dayyear", -1.6094379124341003)],+                               n = 1}}),+       ("part of days",+        Classifier{okData =+                     ClassData{prior = -6.899287148695143e-2,+                               unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},+                   koData =+                     ClassData{prior = -2.70805020110221, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),        ("at the beginning|end of <week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.330733340286331,
Duckling/Ranking/Classifiers/EN_US.hs view
@@ -67,2994 +67,3257 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("Thursday",         Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.6239027683849615, unseen = -5.655991810819852,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 284},-                   koData =-                     ClassData{prior = -0.7675454706138047,-                               unseen = -5.5134287461649825,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 246}}),-       ("<duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = -5.406722127027582e-2,-                               unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),-                                    ("year", -2.662587827025453),-                                    ("<integer> <unit-of-duration>", -1.0531499145913523),-                                    ("a <unit-of-duration>", -2.662587827025453),-                                    ("month", -2.662587827025453),-                                    ("fortnight", -2.662587827025453)],-                               n = 18},-                   koData =-                     ClassData{prior = -2.9444389791664407,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("year", -1.5040773967762742),-                                    ("<integer> <unit-of-duration>", -1.5040773967762742)],-                               n = 1}}),-       ("noon|midnight|EOD|end of day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter to|till|before <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Father's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.6739764335716716),-                                    ("dayday", -1.1631508098056809),-                                    ("day (grain)yesterday", -1.6739764335716716)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.6739764335716716),-                                    ("year (grain)Christmas", -2.0794415416798357),-                                    ("dayday", -2.0794415416798357),-                                    ("day (grain)intersect", -1.6739764335716716),-                                    ("day (grain)Easter Sunday", -2.0794415416798357),-                                    ("yearday", -2.0794415416798357)],-                               n = 4}}),-       ("Easter Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Navaratri",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Martin Luther King's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (20..90)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Shemini Atzeret",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ramadan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lazarus Saturday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect 2 numbers",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("compose by multiplicationinteger (0..19)",-                                     -0.2231435513142097)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],-                               n = 3}}),-       ("mm/yyyy",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("integer after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8109302162163288),-                                    ("integer (numeric)time-of-day (latent)", -1.0986122886681098),-                                    ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom HaShoah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal or number) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)December", -2.1400661634962708),-                                    ("ordinal (digits)February", -2.1400661634962708),-                                    ("integer (numeric)April", -2.1400661634962708),-                                    ("month", -1.4469189829363254)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)October", -2.6741486494265287),-                                    ("ordinal (digits)July", -2.6741486494265287),-                                    ("integer (numeric)September", -2.268683541318364),-                                    ("ordinal (digits)August", -2.6741486494265287),-                                    ("integer (numeric)August", -2.6741486494265287),-                                    ("ordinal (digits)April", -2.6741486494265287),-                                    ("month", -1.0647107369924282),-                                    ("integer (numeric)July", -2.268683541318364)],-                               n = 9}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -9.237332013101517e-2,-                               unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("dayhour", -1.4816045409242156),-                                    ("Mondayearly morning", -3.378724525810097),-                                    ("time-of-day (latent)tonight", -3.378724525810097),-                                    ("hourhour", -2.3978952727983707),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("todaypart of days", -3.784189633918261),-                                    ("minutehour", -2.6855773452501515),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -3.378724525810097),-                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),-                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),-                                    ("intersectpart of days", -3.784189633918261),-                                    ("intersectin|during the <part-of-day>", -3.784189633918261),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("tomorrowpart of days", -2.3978952727983707),-                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("hhmm (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("yesterdaypart of days", -3.378724525810097),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("Mondaypart of days", -3.784189633918261)],-                               n = 31},-                   koData =-                     ClassData{prior = -2.4277482359480516,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -2.772588722239781),-                                    ("monthhour", -2.772588722239781),-                                    ("hourhour", -2.772588722239781),-                                    ("year (latent)in|during the <part-of-day>",-                                     -2.772588722239781),-                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.772588722239781)],-                               n = 3}}),-       ("Cyber Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("today",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("mm/dd",-        Classifier{okData =-                     ClassData{prior = -1.2729656758128873,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.961215868968717e-2,-                               unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.8430301339411947),-                                    ("noon|midnight|EOD|end of day", -3.8430301339411947),-                                    ("integer after|past <hour-of-day>", -3.8430301339411947),-                                    ("half after|past <hour-of-day>", -4.248495242049359),-                                    ("time-of-day (latent)", -1.6835458845878222),-                                    ("hhmm (latent)", -3.5553480614894135),-                                    ("<time-of-day> am|pm", -1.8061482066801546),-                                    ("hh:mm", -3.332204510175204),-                                    ("about|exactly <time-of-day>", -3.8430301339411947),-                                    ("hour", -1.0704414117014134),-                                    ("<time-of-day> sharp|exactly", -4.248495242049359),-                                    ("minute", -2.05127066471314)],-                               n = 64},-                   koData =-                     ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2321436812926323),-                                    ("hour", -1.2321436812926323)],-                               n = 6}}),-       ("December",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.1972245773362196),-                                    ("Wednesday", -2.6026896854443837),-                                    ("Saturday", -2.6026896854443837),-                                    ("Monday", -2.1972245773362196),-                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),-                                    ("Sunday", -2.6026896854443837)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("September",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|past|next <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.2626798770413155,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.456735772821304), ("second", -2.639057329615259),-                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),-                                    ("<integer> <unit-of-duration>", -0.7827593392496325),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("minute", -2.639057329615259)],-                               n = 31},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the ides of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -1.4816045409242156),-                                    ("mm/dd", -3.4965075614664802),-                                    ("absorption of , after named day", -3.0910424533583156),-                                    ("intersect", -3.0910424533583156),-                                    ("Saturday", -2.803360380906535),-                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),-                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.803360380906535),-                                    ("hour", -3.4965075614664802)],-                               n = 28},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -1.791759469228055)],-                               n = 4}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.11122563511022437,-                               unseen = -3.970291913552122,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},-                   koData =-                     ClassData{prior = -2.2512917986064953,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7884573603642702),-                                    ("hh:mmhh:mm", -0.7884573603642702)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),-                                    ("minutehour", -0.7884573603642702)],-                               n = 9}}),-       ("Halloween",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Passover",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -1.6094379124341003),-                                    ("month", -0.916290731874155),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("October",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from|since|after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.5950491749820006, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -3.332204510175204),-                                    ("time-of-day (latent)", -2.4159137783010487),-                                    ("<time-of-day> am|pm", -2.4159137783010487),-                                    ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),-                                    ("month", -2.9267394020670396), ("minute", -2.4159137783010487),-                                    ("August", -3.332204510175204)],-                               n = 14},-                   koData =-                     ClassData{prior = -0.22677331936478848,-                               unseen = -4.9344739331306915,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.828641396489095),-                                    ("week", -4.23410650459726),-                                    ("<day-of-month> (ordinal or number) <named-month>",-                                     -4.23410650459726),-                                    ("today", -4.23410650459726), ("intersect", -2.362304327695668),-                                    ("second", -4.23410650459726), ("now", -3.5409593240373143),-                                    ("tomorrow", -3.828641396489095),-                                    ("this|last|next <cycle>", -4.23410650459726),-                                    ("day", -1.8827312474337816),-                                    ("time-of-day (latent)", -4.23410650459726),-                                    ("<time-of-day> am|pm", -3.828641396489095),-                                    ("nograin", -3.5409593240373143),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -4.23410650459726),-                                    ("Easter Sunday", -4.23410650459726),-                                    ("Christmas", -3.5409593240373143),-                                    ("hour", -2.981343536101891), ("month", -4.23410650459726),-                                    ("<datetime> - <datetime> (interval)", -2.847812143477369),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.5293584123588344),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -3.828641396489095),-                                    ("minute", -1.749199854809259),-                                    ("right now", -4.23410650459726),-                                    ("<month> dd-dd (interval)", -3.5409593240373143),-                                    ("dd-dd <month> (interval)", -3.828641396489095)],-                               n = 55}}),-       ("month (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> more <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in|within|after <duration>",-        Classifier{okData =-                     ClassData{prior = -0.11000089521432846,-                               unseen = -4.6443908991413725,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.248434627109745),-                                    ("<integer> more <unit-of-duration>", -3.9415818076696905),-                                    ("three-quarters of an hour", -3.0252910757955354),-                                    ("<integer> + '\"", -3.248434627109745),-                                    ("number.number hours", -3.9415818076696905),-                                    ("second", -3.536116699561526), ("day", -3.248434627109745),-                                    ("half an hour", -3.0252910757955354),-                                    ("year", -3.9415818076696905),-                                    ("<integer> <unit-of-duration>", -1.5902065505062128),-                                    ("a <unit-of-duration>", -3.0252910757955354),-                                    ("quarter of an hour", -3.0252910757955354),-                                    ("hour", -2.5552874465498),-                                    ("about|exactly <duration>", -3.9415818076696905),-                                    ("<integer> and an half hour", -3.9415818076696905),-                                    ("minute", -1.3025244780544318)],-                               n = 43},-                   koData =-                     ClassData{prior = -2.2617630984737906, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -2.1972245773362196), ("year", -1.9095425048844386),-                                    ("<integer> <unit-of-duration>", -1.9095425048844386),-                                    ("a <unit-of-duration>", -2.1972245773362196)],-                               n = 5}}),-       ("January",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("three-quarters of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Mattu Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Wednesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> + '\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half <integer> (UK style hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("July",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8209805520698302,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),-       ("Shavuot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> <duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayyear", -0.6931471805599453),-                                    ("Diwali<integer> <unit-of-duration>", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),-                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",-                                     -1.466337068793427),-                                    ("quarter", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),-                                    ("quarter", -0.8109302162163288)],-                               n = 3}}),-       ("Boss's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Orthodox Easter Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("one twenty two",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.454305983502537, unseen = -6.732210706467206,-                               likelihoods =-                                 HashMap.fromList-                                   [("Navaratriyear (latent)", -6.037870919922137),-                                    ("Father's Dayyear (latent)", -6.037870919922137),-                                    ("Ramadanyear (latent)", -6.037870919922137),-                                    ("<datetime> - <datetime> (interval)on <date>",-                                     -4.785107951426769),-                                    ("Military Spouse Dayyear (latent)", -6.037870919922137),-                                    ("Bhai Doojyear (latent)", -6.037870919922137),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.785107951426769),-                                    ("hourday", -4.333122827683712),-                                    ("dayhour", -3.1201001878378585),-                                    ("Martin Luther King's Dayyear (latent)", -5.632405811813974),-                                    ("Shemini Atzeretyear (latent)", -6.037870919922137),-                                    ("daymonth", -5.344723739362192),-                                    ("monthday", -5.632405811813974),-                                    ("monthyear", -4.428433007488038),-                                    ("Yom Ha'atzmautyear (latent)", -6.037870919922137),-                                    ("Vijayadashamiyear (latent)", -6.037870919922137),-                                    ("Thanksgiving Dayyear (latent)", -4.939258631254028),-                                    ("Thai Pongalyear (latent)", -5.344723739362192),-                                    ("Thiru Onamyear (latent)", -5.344723739362192),-                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.037870919922137),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -6.037870919922137),-                                    ("houryear", -5.344723739362192),-                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",-                                     -6.037870919922137),-                                    ("Christmas<time-of-day> am|pm", -6.037870919922137),-                                    ("last <day-of-week> of <time>year (latent)",-                                     -6.037870919922137),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.344723739362192),-                                    ("<time-of-day> am|pmintersect", -4.785107951426769),-                                    ("Octoberyear (latent)", -4.785107951426769),-                                    ("intersect<time-of-day> am|pm", -6.037870919922137),-                                    ("Mattu Pongalyear (latent)", -6.037870919922137),-                                    ("Shavuotyear (latent)", -6.037870919922137),-                                    ("Dhanterasin <named-month>|year", -6.037870919922137),-                                    ("at <time-of-day>in|within|after <duration>",-                                     -6.037870919922137),-                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.037870919922137),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -5.632405811813974),-                                    ("Marchyear (latent)", -6.037870919922137),-                                    ("Sukkotyear (latent)", -5.632405811813974),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -6.037870919922137),-                                    ("Clean Mondayyear (latent)", -5.632405811813974),-                                    ("monthhour", -5.632405811813974),-                                    ("todayat <time-of-day>", -6.037870919922137),-                                    ("Thursday<time> timezone", -4.333122827683712),-                                    ("this <time>hh(:mm) - <time-of-day> am|pm",-                                     -6.037870919922137),-                                    ("Palm SundaySunday", -5.632405811813974),-                                    ("dayday", -3.8406463425859183),-                                    ("<time> <part-of-day>at <time-of-day>", -6.037870919922137),-                                    ("mm/ddat <time-of-day>", -6.037870919922137),-                                    ("tonightat <time-of-day>", -6.037870919922137),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -5.344723739362192),-                                    ("today<time-of-day> am|pm", -6.037870919922137),-                                    ("Februarythe <day-of-month> (ordinal)", -5.632405811813974),-                                    ("at <time-of-day><time> <part-of-day>", -6.037870919922137),-                                    ("mm/dd<time-of-day> am|pm", -6.037870919922137),-                                    ("hourhour", -4.785107951426769),-                                    ("<time-of-day> am|pmon <date>", -4.022967899379873),-                                    ("Wednesdaythis|last|next <cycle>", -6.037870919922137),-                                    ("Lentyear (latent)", -6.037870919922137),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.533793523145864),-                                    ("Boghiyear (latent)", -6.037870919922137),-                                    ("dayyear", -1.9688441656843267),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -6.037870919922137),-                                    ("Thursdayat <time-of-day>", -5.632405811813974),-                                    ("Islamic New Yearyear (latent)", -5.632405811813974),-                                    ("Laylat al-Qadryear (latent)", -5.121580188047982),-                                    ("Chhathin <named-month>|year", -6.037870919922137),-                                    ("Vasant Panchamiin <named-month>|year", -6.037870919922137),-                                    ("Diwaliin <named-month>|year", -6.037870919922137),-                                    ("Shrove Tuesdayyear (latent)", -6.037870919922137),-                                    ("<time-of-day> am|pmtomorrow", -5.344723739362192),-                                    ("Yom Kippuryear (latent)", -6.037870919922137),-                                    ("<part-of-day> of <time>year (latent)", -6.037870919922137),-                                    ("minutehour", -5.121580188047982),-                                    ("Kaanum Pongalyear (latent)", -5.632405811813974),-                                    ("Maha Saptamiyear (latent)", -6.037870919922137),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.632405811813974),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.333122827683712),-                                    ("for <duration> from <time>December", -6.037870919922137),-                                    ("tomorrow<time-of-day> sharp|exactly", -6.037870919922137),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.121580188047982),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -5.632405811813974),-                                    ("Pentecostyear (latent)", -6.037870919922137),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.121580188047982),-                                    ("Eid al-Fitryear (latent)", -6.037870919922137),-                                    ("Mondayin|during the <part-of-day>", -6.037870919922137),-                                    ("Raksha Bandhanyear (latent)", -6.037870919922137),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.632405811813974),-                                    ("Navaratriin <named-month>|year", -6.037870919922137),-                                    ("Ashurayear (latent)", -6.037870919922137),-                                    ("Chinese New Yearyear (latent)", -6.037870919922137),-                                    ("Sundayyear (latent)", -6.037870919922137),-                                    ("Lag BaOmeryear (latent)", -6.037870919922137),-                                    ("last weekend of <named-month>year (latent)",-                                     -6.037870919922137),-                                    ("Eid al-Adhayear (latent)", -5.121580188047982),-                                    ("intersectin|during the <part-of-day>", -6.037870919922137),-                                    ("Christmasat <time-of-day>", -6.037870919922137),-                                    ("Passoveryear (latent)", -6.037870919922137),-                                    ("Lazarus Saturdayyear (latent)", -6.037870919922137),-                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",-                                     -6.037870919922137),-                                    ("Cyber Mondayyear (latent)", -5.632405811813974),-                                    ("Yom HaShoahyear (latent)", -5.632405811813974),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -5.121580188047982),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -6.037870919922137),-                                    ("Thai Pongalin <named-month>|year", -6.037870919922137),-                                    ("Septemberyear (latent)", -5.632405811813974),-                                    ("mm/ddyear (latent)", -6.037870919922137),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -4.785107951426769),-                                    ("Halloweenyear (latent)", -6.037870919922137),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.344723739362192),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -5.121580188047982),-                                    ("at <time-of-day>intersect", -5.632405811813974),-                                    ("Rosh Hashanahyear (latent)", -6.037870919922137),-                                    ("Dhanterasyear (latent)", -6.037870919922137),-                                    ("Tu BiShvatyear (latent)", -6.037870919922137),-                                    ("Holiyear (latent)", -5.344723739362192),-                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",-                                     -6.037870919922137),-                                    ("Holika Dahanyear (latent)", -5.344723739362192),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.037870919922137),-                                    ("dayminute", -3.398813590306879),-                                    ("Mawlidyear (latent)", -6.037870919922137),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.632405811813974),-                                    ("<datetime> - <datetime> (interval)tomorrow",-                                     -6.037870919922137),-                                    ("Jumu'atul-Widayear (latent)", -5.121580188047982),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.037870919922137),-                                    ("minuteday", -2.400284760195752),-                                    ("absorption of , after named dayintersect",-                                     -6.037870919922137),-                                    ("intersectyear (latent)", -6.037870919922137),-                                    ("Orthodox Easter Sundayyear (latent)", -6.037870919922137),-                                    ("<ordinal> <cycle> of <time>year (latent)",-                                     -6.037870919922137),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -6.037870919922137),-                                    ("Boss's Dayyear (latent)", -5.632405811813974),-                                    ("Tisha B'Avyear (latent)", -6.037870919922137),-                                    ("Isra and Mi'rajyear (latent)", -5.121580188047982),-                                    ("at <time-of-day>absorption of , after named day",-                                     -6.037870919922137),-                                    ("Christmasyear (latent)", -5.632405811813974),-                                    ("Naraka Chaturdashiyear (latent)", -5.632405811813974),-                                    ("at <time-of-day>on <date>", -4.939258631254028),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -4.428433007488038),-                                    ("dayweek", -6.037870919922137),-                                    ("Easter Sundayyear (latent)", -5.344723739362192),-                                    ("Thursday<time-of-day> am|pm", -6.037870919922137),-                                    ("weekyear", -5.632405811813974),-                                    ("hh:mmin|during the <part-of-day>", -5.344723739362192),-                                    ("<cycle> after|before <time><time-of-day> am|pm",-                                     -5.632405811813974),-                                    ("Hanukkahyear (latent)", -6.037870919922137),-                                    ("February<time> <part-of-day>", -6.037870919922137),-                                    ("National Grandparents Dayyear (latent)", -6.037870919922137),-                                    ("Tuesdayin <named-month>|year", -6.037870919922137),-                                    ("Great Lentyear (latent)", -6.037870919922137),-                                    ("tomorrowat <time-of-day>", -5.344723739362192),-                                    ("Labor Dayyear (latent)", -6.037870919922137),-                                    ("between <time> and <time>on <date>", -4.428433007488038),-                                    ("Thursdayfrom|since|after <time-of-day>", -5.344723739362192),-                                    ("last <cycle> of <time>year (latent)", -5.344723739362192),-                                    ("at <time-of-day>tomorrow", -5.632405811813974),-                                    ("tomorrow<time-of-day> am|pm", -6.037870919922137),-                                    ("President's Dayyear (latent)", -6.037870919922137),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -6.037870919922137),-                                    ("Diwaliyear (latent)", -6.037870919922137),-                                    ("Black Fridayyear (latent)", -5.632405811813974),-                                    ("in|during the <part-of-day>at <time-of-day>",-                                     -6.037870919922137),-                                    ("Chhathyear (latent)", -5.632405811813974),-                                    ("Vasant Panchamiyear (latent)", -6.037870919922137),-                                    ("Palm Sundayintersect", -6.037870919922137),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -6.037870919922137),-                                    ("Februaryintersect", -6.037870919922137),-                                    ("Mother's Dayyear (latent)", -6.037870919922137),-                                    ("Simchat Torahyear (latent)", -6.037870919922137)],-                               n = 313},-                   koData =-                     ClassData{prior = -1.0075523231524797, unseen = -6.35088571671474,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.655991810819852),-                                    ("hourday", -5.655991810819852),-                                    ("<named-month> <day-of-month> (non ordinal)July",-                                     -5.655991810819852),-                                    ("dayhour", -3.213644775450648),-                                    ("daymonth", -3.5765502691400166),-                                    ("monthday", -5.250526702711688),-                                    ("monthyear", -4.403228842324484),-                                    ("<time-of-day> am|pmyear (latent)", -5.250526702711688),-                                    ("Thai Pongalyear (latent)", -4.962844630259907),-                                    ("intersecthh:mm", -5.655991810819852),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -5.655991810819852),-                                    ("houryear", -4.739701078945697),-                                    ("from <time-of-day> - <time-of-day> (interval)July",-                                     -5.655991810819852),-                                    ("until <time-of-day><time-of-day> am|pm", -5.655991810819852),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.962844630259907),-                                    ("<time-of-day> am|pmintersect", -4.403228842324484),-                                    ("Octoberyear (latent)", -5.655991810819852),-                                    ("from|since|after <time-of-day>year (latent)",-                                     -4.403228842324484),-                                    ("from|since|after <time-of-day>on <date>", -4.739701078945697),-                                    ("July<day-of-month> (ordinal or number) <named-month>",-                                     -5.655991810819852),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -4.403228842324484),-                                    ("about|exactly <time-of-day>year (latent)",-                                     -5.655991810819852),-                                    ("absorption of , after named dayJuly", -5.250526702711688),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.739701078945697),-                                    ("Clean Mondayyear (latent)", -5.655991810819852),-                                    ("monthhour", -5.655991810819852),-                                    ("hourmonth", -4.962844630259907),-                                    ("todayat <time-of-day>", -5.655991810819852),-                                    ("from|since|after <time-of-day>July", -5.655991810819852),-                                    ("Mondayyear (latent)", -4.557379522151743),-                                    ("dayday", -5.250526702711688),-                                    ("mm/ddat <time-of-day>", -5.250526702711688),-                                    ("<time-of-day> am|pmon <date>", -4.403228842324484),-                                    ("dayyear", -2.6355669246754903),-                                    ("Thursdaymm/dd", -5.655991810819852),-                                    ("New Year's Dayyear (latent)", -5.250526702711688),-                                    ("Thursdayat <time-of-day>", -4.403228842324484),-                                    ("<integer> to|till|before <hour-of-day>September",-                                     -5.655991810819852),-                                    ("Aprilyear (latent)", -5.655991810819852),-                                    ("monthminute", -5.655991810819852),-                                    ("<time-of-day> am|pmtomorrow", -5.655991810819852),-                                    ("Thursdayhh:mm", -4.739701078945697),-                                    ("August<day-of-month> (ordinal or number) <named-month>",-                                     -5.655991810819852),-                                    ("minutemonth", -3.8642323415917974),-                                    ("Sundayfrom|since|after <time-of-day>", -5.655991810819852),-                                    ("week-endin <named-month>|year", -5.655991810819852),-                                    ("Augustyear (latent)", -5.250526702711688),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.250526702711688),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.250526702711688),-                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",-                                     -5.250526702711688),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.655991810819852),-                                    ("Sundayyear (latent)", -4.962844630259907),-                                    ("Christmasat <time-of-day>", -5.655991810819852),-                                    ("<duration> after|before|from <time>December",-                                     -5.655991810819852),-                                    ("yesterday<time-of-day> am|pm", -5.655991810819852),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -4.739701078945697),-                                    ("mm/ddyear (latent)", -5.655991810819852),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -5.250526702711688),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.655991810819852),-                                    ("until <time-of-day>on <date>", -4.962844630259907),-                                    ("at <time-of-day>intersect", -5.250526702711688),-                                    ("hh:mmyear (latent)", -4.557379522151743),-                                    ("Holiyear (latent)", -5.655991810819852),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.655991810819852),-                                    ("dayminute", -3.1710851610318525),-                                    ("intersectSeptember", -4.151914414043579),-                                    ("minuteday", -2.5879388756862354),-                                    ("absorption of , after named dayintersect",-                                     -5.655991810819852),-                                    ("Februaryin|during the <part-of-day>", -5.655991810819852),-                                    ("hh:mmon <date>", -3.6410887902775877),-                                    ("Saturdayyear (latent)", -5.655991810819852),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -5.655991810819852),-                                    ("absorption of , after named daySeptember",-                                     -4.739701078945697),-                                    ("Naraka Chaturdashiyear (latent)", -5.655991810819852),-                                    ("on <date>September", -5.250526702711688),-                                    ("at <time-of-day>on <date>", -5.250526702711688),-                                    ("in <named-month>|yearyear (latent)", -5.655991810819852),-                                    ("dayweek", -5.655991810819852),-                                    ("Easter Sundayyear (latent)", -5.250526702711688),-                                    ("Thursday<time-of-day> am|pm", -5.250526702711688),-                                    ("absorption of , after named dayFebruary", -4.739701078945697),-                                    ("July<integer> to|till|before <hour-of-day>",-                                     -5.655991810819852),-                                    ("tomorrowat <time-of-day>", -5.655991810819852),-                                    ("<integer> to|till|before <hour-of-day>July",-                                     -5.655991810819852),-                                    ("Thursdayfrom|since|after <time-of-day>", -4.046553898385752),-                                    ("tomorrow<time-of-day> am|pm", -5.655991810819852),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -4.962844630259907),-                                    ("Diwaliyear (latent)", -5.250526702711688),-                                    ("Tuesdayfrom|since|after <time-of-day>", -5.655991810819852),-                                    ("Fridayyear (latent)", -5.250526702711688),-                                    ("minuteyear", -4.403228842324484)],-                               n = 180}}),-       ("one eleven",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("after lunch/work/school",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("early morning",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <number> (implicit minutes)",-        Classifier{okData =-                     ClassData{prior = -1.2039728043259361,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3184537311185346),-                                    ("integer (0..19)", -1.2992829841302609)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.35667494393873245,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.19105523676270922),-                                    ("integer (0..19)", -1.749199854809259)],-                               n = 21}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.791759469228055),-                                    ("ordinal (digits)quarter (grain)year (latent)",-                                     -2.1972245773362196),-                                    ("quarteryear", -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",-                                     -2.1972245773362196),-                                    ("ordinal (digits)day (grain)this|last|next <cycle>",-                                     -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",-                                     -2.1972245773362196),-                                    ("weekmonth", -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",-                                     -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.367295829986474,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 27},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -2.001480000210124),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("hh:mmhh:mm", -2.001480000210124),-                                    ("dayday", -2.512305623976115),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),-                                    ("hourhour", -2.512305623976115),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.1986731175506815),-                                    ("dayhour", -2.793208009442517),-                                    ("<day-of-month> (ordinal)time-of-day (latent)",-                                     -3.1986731175506815),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -3.1986731175506815),-                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),-                                    ("minuteminute", -2.793208009442517),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.793208009442517),-                                    ("dayday", -3.1986731175506815),-                                    ("hourhour", -2.505525936990736),-                                    ("dayyear", -3.1986731175506815),-                                    ("minutehour", -2.2823823856765264),-                                    ("hh:mmintersect", -2.793208009442517),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<time-of-day> am|pm",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",-                                     -3.1986731175506815)],-                               n = 14}}),-       ("Saturday",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("the <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.7346010553881064),-                                    ("week (grain)October", -1.7346010553881064),-                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",-                                     -1.7346010553881064),-                                    ("weekday", -1.2237754316221157)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number.number hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6094379124341003),-                                    ("hh:mmhh:mm", -1.6094379124341003),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),-                                    ("hourhour", -2.3025850929940455),-                                    ("hourminute", -2.3025850929940455),-                                    ("time-of-day (latent)<time-of-day> sharp|exactly",-                                     -2.70805020110221),-                                    ("time-of-day (latent)hh:mm", -2.70805020110221),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.0149030205422647),-                                    ("hourhour", -1.791759469228055),-                                    ("minutehour", -1.6094379124341003),-                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],-                               n = 9}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),-                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],-                               n = 4}}),-       ("Tisha B'Av",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yyyy-mm-dd",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -0.15524059819128397,-                               unseen = -4.912654885736052,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -4.546237407675729e-2),-                                    ("intersect 2 numbers", -3.518980417318539)],-                               n = 131},-                   koData =-                     ClassData{prior = -1.9393954680341197, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3121863889661687),-                                    ("negative numbers", -0.6190392084062235),-                                    ("compose by multiplication", -1.8718021769015913)],-                               n = 22}}),-       ("mm/dd/yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Memorial Day",-        Classifier{okData =-                     ClassData{prior = -0.1823215567939546,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -1.791759469228055, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Monday",-        Classifier{okData =-                     ClassData{prior = -0.5108256237659907, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lincoln's Birthday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm:ss",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Hanukkah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>integer (numeric)",-                                     -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 1}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.9808292530117262),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -2.0794415416798357),-                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",-                                     -1.6739764335716716),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",-                                     -1.6739764335716716)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.0986122886681098),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",-                                     -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",-                                     -1.3862943611198906)],-                               n = 3}}),-       ("National Grandparents Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Valentine's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("April",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maha Saptami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -4.0821994520255166e-2,-                               unseen = -4.304065093204169,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 72},-                   koData =-                     ClassData{prior = -3.2188758248682006,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<part-of-day> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.3513752571634776),-                                    ("part of daysintersect", -2.3513752571634776),-                                    ("hourday", -0.9650808960435872),-                                    ("part of daysthe <day-of-month> (ordinal)",-                                     -2.3513752571634776),-                                    ("part of daysthe <day-of-month> (number)",-                                     -2.3513752571634776),-                                    ("part of daysthis <time>", -2.3513752571634776),-                                    ("part of daysChristmas", -1.9459101490553135)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("six thirty six a.m.",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.252762968495368),-                                    ("one twenty two", -0.8472978603872037),-                                    ("one eleven", -1.252762968495368)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Loyalty Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Shrove Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("<day-of-month> (ordinal or number) of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.3513752571634776),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.3513752571634776),-                                    ("ordinal (digits)February", -2.3513752571634776),-                                    ("integer (numeric)February", -1.9459101490553135),-                                    ("month", -0.9650808960435872),-                                    ("ordinal (digits)March", -2.3513752571634776),-                                    ("integer (numeric)July", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.5040773967762742),-                                    ("month", -1.5040773967762742)],-                               n = 1}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("part of days", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Kaanum Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom Kippur",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("powers of tens",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Friday",-        Classifier{okData =-                     ClassData{prior = -0.3677247801253174,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("early morning", -2.5257286443082556),-                                    ("hour", -0.7339691750802004),-                                    ("part of days", -0.8209805520698302)],-                               n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("part of days", -0.916290731874155)],-                               n = 1}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh(:mm) - <time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Groundhog Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|last|next <cycle>",-        Classifier{okData =-                     ClassData{prior = -7.410797215372185e-2,-                               unseen = -5.117993812416755,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.1416958748044215),-                                    ("month (grain)", -2.8094026953624978),-                                    ("year (grain)", -2.472930458741285),-                                    ("week (grain)", -1.1416958748044215),-                                    ("quarter", -3.5025498759224427), ("year", -2.472930458741285),-                                    ("month", -2.8094026953624978),-                                    ("quarter (grain)", -3.5025498759224427)],-                               n = 78},-                   koData =-                     ClassData{prior = -2.639057329615259, unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.4816045409242156),-                                    ("week (grain)", -1.4816045409242156),-                                    ("day", -1.9924301646902063),-                                    ("day (grain)", -1.9924301646902063)],-                               n = 6}}),-       ("Mother's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Simchat Torah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Eve",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Raksha Bandhan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ashura",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Palm Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Eid al-Adha",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),-                                    ("time-of-day (latent)", -1.9459101490553135),-                                    ("<time-of-day> am|pm", -1.9459101490553135),-                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),-                                    ("minute", -1.540445040947149)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2006706954621511,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..twentieth,thirtieth,...)",-                                     -1.7047480922384253),-                                    ("ordinal (digits)", -0.2006706954621511)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.7047480922384253,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],-                               n = 2}}),-       ("last weekend of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),-                                    ("month", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lag BaOmer",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fractional number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),-       ("Sunday",-        Classifier{okData =-                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Chinese New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("February",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|this|next <season>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.330755969960742)],-                               n = 69},-                   koData =-                     ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -9.352605801082348e-2),-                                    ("integer (0..19)", -2.9267394020670396),-                                    ("integer 21..99", -3.332204510175204)],-                               n = 53}}),-       ("beginning of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.916290731874155),-                                    ("SundayMarch", -1.6094379124341003),-                                    ("MondayMarch", -1.6094379124341003),-                                    ("Sundayintersect", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.13858616328614667,-                               unseen = -5.147494476813453,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5026062268874014),-                                    ("integer (0..19)year (grain)", -3.062222014822824),-                                    ("integer (numeric)day (grain)", -2.743768283704289),-                                    ("integer (0..19)second (grain) ", -3.7553691953827695),-                                    ("integer (0..19)hour (grain)", -3.062222014822824),-                                    ("second", -3.349904087274605),-                                    ("integer (numeric)second (grain) ", -4.04305126783455),-                                    ("integer (numeric)year (grain)", -3.349904087274605),-                                    ("day", -2.4336133554004498), ("year", -2.576714199041123),-                                    ("integer (numeric)week (grain)", -3.062222014822824),-                                    ("integer (0..19)month (grain)", -3.5322256440685593),-                                    ("hour", -2.6567569067146595), ("month", -3.1957534074473464),-                                    ("integer (numeric)minute (grain)", -3.1957534074473464),-                                    ("integer (0..19)minute (grain)", -3.062222014822824),-                                    ("integer (numeric)month (grain)", -4.04305126783455),-                                    ("minute", -2.5026062268874014),-                                    ("integer (numeric)hour (grain)", -3.5322256440685593),-                                    ("integer (0..19)day (grain)", -3.5322256440685593),-                                    ("integer (0..19)week (grain)", -3.1957534074473464)],-                               n = 74},-                   koData =-                     ClassData{prior = -2.044755983691946, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),-                                    ("integer (numeric)hour (grain)", -1.4087672169719492),-                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],-                               n = 11}}),-       ("hhmm (latent)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer after|past <hour-of-day>", -3.951243718581427),-                                    ("at <time-of-day>", -2.202043863772168),-                                    ("from|since|after <time-of-day>", -3.7281001672672174),-                                    ("<time-of-day> o'clock", -4.238925791033208),-                                    ("half after|past <hour-of-day>", -4.238925791033208),-                                    ("time-of-day (latent)", -1.7266201670570935),-                                    ("hhmm (latent)", -4.6443908991413725),-                                    ("hh:mm", -2.293015641977895),-                                    ("quarter after|past <hour-of-day>", -4.6443908991413725),-                                    ("about|exactly <time-of-day>", -4.6443908991413725),-                                    ("until <time-of-day>", -3.951243718581427),-                                    ("hour", -1.2104036946562264),-                                    ("<time-of-day> sharp|exactly", -4.6443908991413725),-                                    ("minute", -1.754019141245208)],-                               n = 96},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.283414346005772),-                                    ("from|since|after <time-of-day>", -3.283414346005772),-                                    ("<hour-of-day> <integer>", -3.6888794541139363),-                                    ("time-of-day (latent)", -1.0498221244986778),-                                    ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],-                               n = 32}}),-       ("Yom Ha'atzmaut",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),-                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),-                                    ("month", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thiru Onam",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thai Pongal",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Vijayadashami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thanksgiving Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.5306282510621704,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.1400661634962708),-                                    ("year (grain)", -2.4277482359480516),-                                    ("second", -2.833213344056216),-                                    ("week (grain)", -2.1400661634962708),-                                    ("day", -2.1400661634962708),-                                    ("minute (grain)", -2.833213344056216),-                                    ("year", -2.4277482359480516),-                                    ("second (grain) ", -2.833213344056216),-                                    ("minute", -2.833213344056216),-                                    ("day (grain)", -2.1400661634962708)],-                               n = 10},-                   koData =-                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour (grain)", -1.7227665977411035),-                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),-                                    ("quarter (grain)", -1.9459101490553135)],-                               n = 7}}),-       ("at the beginning|end of <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -0.6931471805599453),-                                    ("year", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Dhanteras",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Tu BiShvat",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Whit Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -5.6352936551131744e-2,-                               unseen = -4.2626798770413155,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},-                   koData =-                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("Holi",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Rosh Hashanah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Holika Dahan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain) ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..twentieth,thirtieth,...)",-        Classifier{okData =-                     ClassData{prior = -6.899287148695143e-2,-                               unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Mawlid",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Jumu'atul-Wida",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.252762968495368),-                                    ("dayday", -0.8472978603872037),-                                    ("day (grain)yesterday", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about|exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),-                                    ("this|last|next <cycle>", -1.791759469228055),-                                    ("day", -2.4849066497880004),-                                    ("time-of-day (latent)", -2.890371757896165),-                                    ("hhmm (latent)", -2.4849066497880004),-                                    ("<time-of-day> am|pm", -2.890371757896165),-                                    ("hour", -2.1972245773362196),-                                    ("next <time>", -2.890371757896165),-                                    ("this|next <day-of-week>", -2.890371757896165),-                                    ("minute", -2.4849066497880004)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("hour", -2.0794415416798357)],-                               n = 2}}),-       ("Sukkot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("monthyear", -1.2992829841302609),-                                    ("Marcha <unit-of-duration>", -1.7047480922384253),-                                    ("March<integer> <unit-of-duration>", -1.7047480922384253),-                                    ("Vijayadashami<integer> <unit-of-duration>",-                                     -1.7047480922384253),-                                    ("dayyear", -1.7047480922384253)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("World Vegan Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\", \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.45547552868282576,-                               unseen = -5.117993812416755,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -4.418840607796598),-                                    ("dayhour", -3.16607763930123), ("daymonth", -3.16607763930123),-                                    ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -4.418840607796598),-                                    ("Friday<named-month> <day-of-month> (non ordinal)",-                                     -3.7256934272366524),-                                    ("Wednesdayintersect", -4.418840607796598),-                                    ("Labor Daythis|last|next <cycle>", -4.418840607796598),-                                    ("Black Fridaythis|last|next <cycle>", -4.418840607796598),-                                    ("<part-of-day> of <time>February", -4.418840607796598),-                                    ("Saturday<time-of-day> am|pm", -4.418840607796598),-                                    ("Martin Luther King's Daythis|last|next <cycle>",-                                     -4.013375499688434),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.418840607796598),-                                    ("on <date><time-of-day> am|pm", -4.418840607796598),-                                    ("hourmonth", -4.418840607796598),-                                    ("dayday", -2.5470384308950065),-                                    ("the <day-of-month> (ordinal)February", -4.013375499688434),-                                    ("WednesdayOctober", -4.418840607796598),-                                    ("Wednesdaythis|last|next <cycle>", -4.013375499688434),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.5025498759224427),-                                    ("dayyear", -2.7140925155581725),-                                    ("Saturday<named-month> <day-of-month> (non ordinal)",-                                     -4.418840607796598),-                                    ("Thursdayhh:mm", -4.013375499688434),-                                    ("Thanksgiving Daythis|last|next <cycle>", -4.418840607796598),-                                    ("Memorial Daythis|last|next <cycle>", -4.418840607796598),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -4.013375499688434),-                                    ("TuesdayOctober", -4.418840607796598),-                                    ("the <day-of-month> (ordinal)March", -4.418840607796598),-                                    ("Mondaythis|last|next <cycle>", -4.418840607796598),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.418840607796598),-                                    ("Fridayintersect", -4.418840607796598),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -3.7256934272366524),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.5025498759224427),-                                    ("Tuesdaythis|last|next <cycle>", -4.418840607796598),-                                    ("Sunday<named-month> <day-of-month> (non ordinal)",-                                     -4.418840607796598),-                                    ("dayminute", -3.0325462466767075),-                                    ("minuteday", -3.5025498759224427),-                                    ("this|last|next <cycle>Sunday", -4.418840607796598),-                                    ("intersectyear (latent)", -4.418840607796598),-                                    ("Sundaythis|last|next <cycle>", -4.418840607796598),-                                    ("weekday", -4.418840607796598),-                                    ("dayweek", -3.3202283191284883),-                                    ("Thursday<time-of-day> am|pm", -4.418840607796598),-                                    ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -4.013375499688434),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -4.013375499688434)],-                               n = 52},-                   koData =-                     ClassData{prior = -1.0055218656020977, unseen = -4.812184355372417,-                               likelihoods =-                                 HashMap.fromList-                                   [("week-endJuly", -4.110873864173311),-                                    ("week-endOctober", -3.417726683613366),-                                    ("daymonth", -1.9136492868370918),-                                    ("TuesdaySeptember", -4.110873864173311),-                                    ("Wednesdayintersect", -4.110873864173311),-                                    ("hourmonth", -3.012261575505202),-                                    ("Fridaythis|last|next <cycle>", -4.110873864173311),-                                    ("SundayFebruary", -4.110873864173311),-                                    ("WednesdayOctober", -4.110873864173311),-                                    ("week-endintersect", -4.110873864173311),-                                    ("dayyear", -4.110873864173311),-                                    ("FridayJuly", -3.7054087560651467),-                                    ("FridaySeptember", -4.110873864173311),-                                    ("WednesdayFebruary", -4.110873864173311),-                                    ("minutemonth", -3.1945831322991562),-                                    ("SundayMarch", -4.110873864173311),-                                    ("MondayFebruary", -3.7054087560651467),-                                    ("Fridayintersect", -4.110873864173311),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.7054087560651467),-                                    ("dayminute", -3.417726683613366),-                                    ("SaturdaySeptember", -4.110873864173311),-                                    ("intersectSeptember", -3.1945831322991562),-                                    ("MondayMarch", -4.110873864173311),-                                    ("on <date>September", -3.7054087560651467),-                                    ("Tuesdayintersect", -4.110873864173311),-                                    ("Sundayintersect", -4.110873864173311)],-                               n = 30}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -0.4595323293784402,-                               unseen = -3.6635616461296463,-                               likelihoods =-                                 HashMap.fromList-                                   [("Father's Day", -2.9444389791664407),-                                    ("Martin Luther King's Day", -2.9444389791664407),-                                    ("Cyber Monday", -2.9444389791664407),-                                    ("Memorial Day", -2.9444389791664407),-                                    ("Mother's Day", -2.9444389791664407),-                                    ("day", -1.1526795099383855), ("Sunday", -2.9444389791664407),-                                    ("Chinese New Year", -2.538973871058276),-                                    ("Thanksgiving Day", -2.9444389791664407),-                                    ("Easter Sunday", -2.9444389791664407),-                                    ("hour", -2.9444389791664407), ("Tuesday", -2.9444389791664407),-                                    ("week-end", -2.9444389791664407)],-                               n = 12},-                   koData =-                     ClassData{prior = -0.9985288301111273, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("Monday", -2.639057329615259), ("day", -2.2335922215070942),-                                    ("Sunday", -2.639057329615259), ("hour", -1.540445040947149),-                                    ("week-end", -1.540445040947149)],-                               n = 7}}),-       ("March",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month>|<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("Octoberordinal (digits)", -2.120263536200091),-                                    ("Thursdayordinal (digits)", -2.5257286443082556),-                                    ("day", -2.120263536200091),-                                    ("Augustordinal (digits)", -2.5257286443082556),-                                    ("Marchordinals (first..twentieth,thirtieth,...)",-                                     -2.120263536200091),-                                    ("Tuesdayordinal (digits)", -2.5257286443082556),-                                    ("month", -1.2729656758128873),-                                    ("Marchordinal (digits)", -2.5257286443082556)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("from|since|after <time-of-day>ordinal (digits)",-                                     -1.8718021769015913),-                                    ("Augustordinal (digits)", -1.8718021769015913),-                                    ("month", -1.466337068793427)],-                               n = 2}}),-       ("Labor Day weekend",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Clean Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Veterans Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Easter Sunday",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("Christmas",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.3025850929940455),-                                    ("<time-of-day> am|pm", -1.6094379124341003),-                                    ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),-                                    ("minute", -1.3862943611198906)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7227665977411035),-                                    ("yesterday", -2.2335922215070942),-                                    ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),-                                    ("hour", -2.639057329615259), ("minute", -1.252762968495368)],-                               n = 10}}),-       ("mm.dd.yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Isra and Mi'raj",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> after|before|from <time>",-        Classifier{okData =-                     ClassData{prior = -0.3184537311185346,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>now", -2.803360380906535),-                                    ("a <unit-of-duration>Christmas", -2.803360380906535),-                                    ("dayday", -2.803360380906535),-                                    ("<integer> <unit-of-duration>today", -2.803360380906535),-                                    ("daysecond", -2.803360380906535),-                                    ("a <unit-of-duration>right now", -2.803360380906535),-                                    ("minutenograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),-                                    ("<integer> <unit-of-duration>Easter Sunday",-                                     -2.803360380906535),-                                    ("secondnograin", -2.803360380906535),-                                    ("yearday", -2.1102132003465894),-                                    ("daynograin", -2.803360380906535),-                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.2992829841302609,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -2.4423470353692043),-                                    ("dayday", -2.03688192726104),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -2.4423470353692043),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -2.4423470353692043)],-                               n = 3}}),-       ("<day-of-month> (ordinal or number) of <month>",-        Classifier{okData =-                     ClassData{prior = -8.004270767353637e-2,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.803360380906535),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.803360380906535),-                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),-                                    ("integer (numeric)this|last|next <cycle>",-                                     -2.3978952727983707),-                                    ("ordinal (digits)February", -2.803360380906535),-                                    ("integer (numeric)February", -2.3978952727983707),-                                    ("month", -0.9315582040049435),-                                    ("ordinal (digits)March", -2.803360380906535),-                                    ("integer (numeric)July", -2.803360380906535)],-                               n = 12},-                   koData =-                     ClassData{prior = -2.5649493574615367,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.7047480922384253),-                                    ("month", -1.7047480922384253)],-                               n = 1}}),-       ("Independence Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Naraka Chaturdashi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("beginning of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("Martin Luther King's Day", -2.890371757896165),-                                    ("Halloween", -2.890371757896165),-                                    ("Wednesday", -2.890371757896165),-                                    ("Boss's Day", -2.890371757896165),-                                    ("Memorial Day", -2.890371757896165),-                                    ("Monday", -2.890371757896165),-                                    ("Mother's Day", -2.890371757896165),-                                    ("day", -1.0986122886681098),-                                    ("Thanksgiving Day", -2.890371757896165),-                                    ("March", -2.890371757896165), ("month", -2.890371757896165),-                                    ("Tuesday", -2.1972245773362196)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> sharp|exactly",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.1400661634962708),-                                    ("time-of-day (latent)", -2.1400661634962708),-                                    ("hhmm (latent)", -2.1400661634962708),-                                    ("<time-of-day> am|pm", -2.1400661634962708),-                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),-                                    ("minute", -1.4469189829363254)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <named-month>|year",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -2.4423470353692043),-                                    ("year (latent)", -1.0560526742493137),-                                    ("year", -1.0560526742493137), ("March", -2.4423470353692043),-                                    ("month", -2.03688192726104)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.2992829841302609),-                                    ("year (latent)", -1.7047480922384253),-                                    ("year", -1.7047480922384253), ("month", -1.2992829841302609)],-                               n = 3}}),-       ("Islamic New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("negative numbers",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -7.696104113612832e-2),-                                    ("integer (0..19)", -2.6026896854443837)],-                               n = 25}}),-       ("about|exactly <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> before last|after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday", -1.8718021769015913),-                                    ("Friday", -1.466337068793427), ("day", -1.1786549963416462),-                                    ("March", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by the end of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("this|last|next <cycle>", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hhmm (military) am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -3.1918471524802814),-                                    ("intersect<time-of-day> am|pm", -3.1918471524802814),-                                    ("minuteminute", -1.457246097092175),-                                    ("hh:mmhh:mm", -2.093234863812172),-                                    ("dayday", -3.1918471524802814),-                                    ("hourhour", -2.093234863812172),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),-                                    ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (non ordinal)July",-                                     -3.1135153092103742),-                                    ("daymonth", -2.70805020110221),-                                    ("from|since|after <time-of-day>intersect", -2.70805020110221),-                                    ("<time-of-day> am|pmintersect", -3.1135153092103742),-                                    ("hh:mm<time-of-day> am|pm", -2.70805020110221),-                                    ("minuteminute", -1.8607523407150064),-                                    ("hourhour", -2.70805020110221),-                                    ("minutehour", -2.70805020110221),-                                    ("hh:mmintersect", -2.1972245773362196),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -3.1135153092103742),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.1135153092103742)],-                               n = 12}}),-       ("Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Day",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("fortnight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Memorial Day weekend",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> and an half hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Laylat al-Qadr",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Boghi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("at the beginning|end of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("January", -1.3862943611198906),-                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.0986122886681098),-                                    ("month", -1.0986122886681098)],-                               n = 1}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.529395204760564),-                                    ("hh:mmhh:mm", -1.8971199848858813),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -2.4849066497880004),-                                    ("hourhour", -1.6964492894237302),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -3.4011973816621555),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.4011973816621555),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),-                                    ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>time-of-day (latent)",-                                     -3.4657359027997265),-                                    ("hh:mmtime-of-day (latent)", -1.7609878105613013),-                                    ("hh:mm<time-of-day> am|pm", -3.0602707946915624),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -3.4657359027997265),-                                    ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),-                                    ("hourhour", -2.2129729343043585),-                                    ("minutehour", -1.2144441041932315),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.4657359027997265),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -2.5494451709255714),-                                    ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),-                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",-                                     -3.0602707946915624)],-                               n = 24}}),-       ("military spelled out numbers am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("winter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> after <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.42121346507630353,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.5455312716044354),-                                    ("Marchinteger (numeric)", -2.833213344056216),-                                    ("Aprilinteger (numeric)", -3.2386784521643803),-                                    ("month", -0.8407831793660099),-                                    ("Februaryinteger (numeric)", -1.9859154836690123),-                                    ("Septemberinteger (numeric)", -2.833213344056216),-                                    ("Octoberinteger (numeric)", -2.833213344056216),-                                    ("Julyinteger (numeric)", -2.1400661634962708)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.3353749158170367),-                                    ("Marchinteger (numeric)", -2.740840023925201),-                                    ("Aprilinteger (numeric)", -2.740840023925201),-                                    ("month", -0.9490805546971459),-                                    ("from|since|after <time-of-day>integer (numeric)",-                                     -2.3353749158170367),-                                    ("Julyinteger (numeric)", -1.6422277352570913)],-                               n = 11}}),-       ("President's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Diwali",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("last night",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -2.2512917986064953),-                                    ("Wednesday", -2.2512917986064953),-                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),-                                    ("Tuesday", -1.55814461804655)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)October", -1.791759469228055),-                                    ("daymonth", -1.2809338454620642),-                                    ("day (grain)intersect", -1.791759469228055),-                                    ("weekmonth", -1.791759469228055),-                                    ("week (grain)intersect", -2.1972245773362196),-                                    ("week (grain)September", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Chhath",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Vasant Panchami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)April", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Black Friday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Labor Day",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("week-end",-        Classifier{okData =-                     ClassData{prior = -1.5040773967762742,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.25131442828090605,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),-       ("Great Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maundy Thursday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("right now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("for <duration> from <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -1.5040773967762742),-                                    ("dayday", -1.0986122886681098),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -1.5040773967762742)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.252762968495368),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -1.252762968495368)],-                               n = 1}}),-       ("compose by multiplication",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("between <time> and <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.832909122935104),-                                    ("hh:mmhh:mm", -0.832909122935104)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),-                                    ("minuteminute", -1.410986973710262),-                                    ("minutehour", -1.410986973710262),-                                    ("hh:mmintersect", -1.410986973710262)],-                               n = 18}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),-                                    ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>integer (numeric)integer (numeric)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",-                                     -2.740840023925201),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -2.3353749158170367),-                                    ("month", -0.8690378470236094),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -2.3353749158170367)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of days",-        Classifier{okData =-                     ClassData{prior = -3.509131981127006e-2,-                               unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},-                   koData =-                     ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+                     ClassData{prior = -8.961215868968717e-2,+                               unseen = -3.5263605246161616,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 32},+                   koData =+                     ClassData{prior = -2.456735772821304, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5682888691888516, unseen = -5.799092654460526,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 328},+                   koData =+                     ClassData{prior = -0.8358495384412113, unseen = -5.53338948872752,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 251}}),+       ("<year> (bc|ad)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),+                                    ("year", -2.662587827025453),+                                    ("<integer> <unit-of-duration>", -1.0531499145913523),+                                    ("a <unit-of-duration>", -2.662587827025453),+                                    ("month", -2.662587827025453),+                                    ("fortnight", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("year", -1.2992829841302609),+                                    ("<integer> <unit-of-duration>", -1.2992829841302609)],+                               n = 2}}),+       ("noon|midnight|EOD|end of day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter to|till|before <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Father's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.6739764335716716),+                                    ("dayday", -1.1631508098056809),+                                    ("day (grain)yesterday", -1.6739764335716716)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.6739764335716716),+                                    ("year (grain)Christmas", -2.0794415416798357),+                                    ("dayday", -2.0794415416798357),+                                    ("day (grain)intersect", -1.6739764335716716),+                                    ("day (grain)Easter Sunday", -2.0794415416798357),+                                    ("yearday", -2.0794415416798357)],+                               n = 4}}),+       ("Easter Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Navaratri",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Martin Luther King's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (20..90)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Shemini Atzeret",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ramadan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lazarus Saturday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect 2 numbers",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("compose by multiplicationinteger (0..19)",+                                     -0.2231435513142097)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],+                               n = 3}}),+       ("mm/yyyy",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("from|since|after <time>",+        Classifier{okData =+                     ClassData{prior = -1.540445040947149, unseen = -4.248495242049359,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal or number) <named-month>",+                                     -3.5409593240373143),+                                    ("July", -3.5409593240373143),+                                    ("year (latent)", -3.1354942159291497),+                                    ("day", -3.1354942159291497),+                                    ("time-of-day (latent)", -2.624668592163159),+                                    ("year", -3.1354942159291497),+                                    ("<time-of-day> am|pm", -2.624668592163159),+                                    ("hh:mm", -2.624668592163159),+                                    ("<day-of-month> (ordinal)", -3.5409593240373143),+                                    ("hour", -2.03688192726104), ("month", -3.1354942159291497),+                                    ("minute", -2.624668592163159),+                                    ("August", -3.5409593240373143)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.2411620568168881, unseen = -5.111987788356543,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -4.007333185232471),+                                    ("week", -4.412798293340635),+                                    ("<day-of-month> (ordinal or number) <named-month>",+                                     -4.412798293340635),+                                    ("today", -4.412798293340635),+                                    ("intersect", -2.540996116439044),+                                    ("<time> for <duration>", -4.412798293340635),+                                    ("second", -4.412798293340635), ("now", -3.71965111278069),+                                    ("tomorrow", -4.007333185232471),+                                    ("this|last|next <cycle>", -4.412798293340635),+                                    ("day", -1.927891643552635),+                                    ("time-of-day (latent)", -2.6210388241125804),+                                    ("<time-of-day> am|pm", -4.007333185232471),+                                    ("nograin", -3.71965111278069),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -4.412798293340635),+                                    ("<day-of-month> (ordinal)", -4.007333185232471),+                                    ("Easter Sunday", -4.412798293340635),+                                    ("Christmas", -3.71965111278069), ("hour", -2.3978952727983707),+                                    ("month", -4.412798293340635),+                                    ("<datetime> - <datetime> (interval)", -3.1600353248452673),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.908720896564361),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -4.007333185232471),+                                    ("minute", -1.927891643552635),+                                    ("right now", -4.412798293340635),+                                    ("<month> dd-dd (interval)", -3.71965111278069),+                                    ("part of days", -4.412798293340635),+                                    ("dd-dd <month> (interval)", -4.007333185232471)],+                               n = 66}}),+       ("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}}),+       ("<ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.268683541318364),+                                    ("daymonth", -2.268683541318364),+                                    ("ordinal (digits)day (grain)May", -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.6741486494265287),+                                    ("weekmonth", -1.7578579175523736),+                                    ("ordinal (digits)week (grain)October", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)intersect", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.6741486494265287),+                                    ("weekyear", -1.9810014688665833),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)May",+                                     -2.6741486494265287)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom HaShoah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal or number) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)December", -1.6582280766035324),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)April", -2.3513752571634776),+                                    ("month", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)October", -2.6741486494265287),+                                    ("ordinal (digits)July", -2.6741486494265287),+                                    ("integer (numeric)September", -2.268683541318364),+                                    ("ordinal (digits)August", -2.6741486494265287),+                                    ("integer (numeric)August", -2.6741486494265287),+                                    ("ordinal (digits)April", -2.6741486494265287),+                                    ("month", -1.0647107369924282),+                                    ("integer (numeric)July", -2.268683541318364)],+                               n = 9}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -9.237332013101517e-2,+                               unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("dayhour", -1.4816045409242156),+                                    ("Mondayearly morning", -3.378724525810097),+                                    ("time-of-day (latent)tonight", -3.378724525810097),+                                    ("hourhour", -2.3978952727983707),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("todaypart of days", -3.784189633918261),+                                    ("minutehour", -2.6855773452501515),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -3.378724525810097),+                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),+                                    ("intersectpart of days", -3.784189633918261),+                                    ("intersectin|during the <part-of-day>", -3.784189633918261),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("tomorrowpart of days", -2.3978952727983707),+                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("hhmm (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("yesterdaypart of days", -3.378724525810097),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("Mondaypart of days", -3.784189633918261)],+                               n = 31},+                   koData =+                     ClassData{prior = -2.4277482359480516,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.772588722239781),+                                    ("monthhour", -2.772588722239781),+                                    ("hourhour", -2.772588722239781),+                                    ("year (latent)in|during the <part-of-day>",+                                     -2.772588722239781),+                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -2.772588722239781)],+                               n = 3}}),+       ("Cyber Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("today",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm/dd",+        Classifier{okData =+                     ClassData{prior = -1.2729656758128873,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.4557388028063e-2, unseen = -5.003946305945459,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.898599985096005),+                                    ("noon|midnight|EOD|end of day", -3.898599985096005),+                                    ("integer after|past <hour-of-day>", -3.898599985096005),+                                    ("half after|past <hour-of-day>", -4.304065093204169),+                                    ("time-of-day (latent)", -1.6650077635889111),+                                    ("hhmm (latent)", -3.6109179126442243),+                                    ("<time-of-day> am|pm", -1.7783364488959144),+                                    ("hh:mm", -3.3877743613300146),+                                    ("about|exactly <time-of-day>", -3.898599985096005),+                                    ("hour", -1.0459685551826876),+                                    ("<time-of-day> sharp|exactly", -4.304065093204169),+                                    ("minute", -2.10684051586795)],+                               n = 68},+                   koData =+                     ClassData{prior = -2.512305623976115, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2321436812926323),+                                    ("hour", -1.2321436812926323)],+                               n = 6}}),+       ("December",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.1972245773362196),+                                    ("Wednesday", -2.6026896854443837),+                                    ("Saturday", -2.6026896854443837),+                                    ("Monday", -2.1972245773362196),+                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+                                    ("Sunday", -2.6026896854443837)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tonight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|past|next <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.2626798770413155,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.456735772821304), ("second", -2.639057329615259),+                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),+                                    ("<integer> <unit-of-duration>", -0.7827593392496325),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("minute", -2.639057329615259)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the ides of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.4816045409242156),+                                    ("mm/dd", -3.4965075614664802),+                                    ("absorption of , after named day", -3.0910424533583156),+                                    ("intersect", -3.0910424533583156),+                                    ("Saturday", -2.803360380906535),+                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.803360380906535),+                                    ("hour", -3.4965075614664802)],+                               n = 28},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.791759469228055)],+                               n = 4}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.10919929196499197,+                               unseen = -3.9889840465642745,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 52},+                   koData =+                     ClassData{prior = -2.268683541318364, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7884573603642702),+                                    ("hh:mmhh:mm", -0.7884573603642702)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),+                                    ("minutehour", -0.7884573603642702)],+                               n = 9}}),+       ("Halloween",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Passover",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("October",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> more <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vesak",+        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}}),+       ("Earth 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}}),+       ("in|within|after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.12516314295400605,+                               unseen = -4.6913478822291435,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.295836866004329),+                                    ("<integer> more <unit-of-duration>", -3.9889840465642745),+                                    ("three-quarters of an hour", -3.0726933146901194),+                                    ("<integer> + '\"", -3.295836866004329),+                                    ("number.number hours", -3.9889840465642745),+                                    ("second", -3.58351893845611),+                                    ("half a <time-grain>", -3.0726933146901194),+                                    ("day", -3.295836866004329), ("year", -3.9889840465642745),+                                    ("<integer> <unit-of-duration>", -1.6376087894007967),+                                    ("a <unit-of-duration>", -3.0726933146901194),+                                    ("quarter of an hour", -3.0726933146901194),+                                    ("hour", -2.6026896854443837),+                                    ("about|exactly <duration>", -3.9889840465642745),+                                    ("half an hour (abbrev).", -3.58351893845611),+                                    ("<integer> and an half hour", -3.9889840465642745),+                                    ("minute", -1.2809338454620642)],+                               n = 45},+                   koData =+                     ClassData{prior = -2.1400661634962708,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -2.3025850929940455), ("year", -1.791759469228055),+                                    ("<integer> <unit-of-duration>", -1.791759469228055),+                                    ("a <unit-of-duration>", -2.3025850929940455)],+                               n = 6}}),+       ("January",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("three-quarters of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mattu Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Wednesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> + '\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half <integer> (UK style hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("July",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.48550781578170077,+                               unseen = -2.890371757896165,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("Shavuot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> <duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayyear", -0.8472978603872037),+                                    ("Tax Day<integer> <unit-of-duration>", -1.252762968495368),+                                    ("Diwali<integer> <unit-of-duration>", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.466337068793427),+                                    ("quarter", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),+                                    ("quarter", -0.8109302162163288)],+                               n = 3}}),+       ("Boss's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Orthodox Easter Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("one twenty two",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("May",+        Classifier{okData =+                     ClassData{prior = 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.4479425363752806, unseen = -6.806829360392176,+                               likelihoods =+                                 HashMap.fromList+                                   [("Navaratriyear (latent)", -6.11257537285704),+                                    ("Father's Dayyear (latent)", -6.11257537285704),+                                    ("Ramadanyear (latent)", -6.11257537285704),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.859812404361672),+                                    ("Military Spouse Dayyear (latent)", -6.11257537285704),+                                    ("Bhai Doojyear (latent)", -6.11257537285704),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.859812404361672),+                                    ("hourday", -4.407827280618615),+                                    ("dayhour", -3.309214991950505),+                                    ("Martin Luther King's Dayyear (latent)", -5.707110264748875),+                                    ("Shemini Atzeretyear (latent)", -6.11257537285704),+                                    ("daymonth", -5.196284640982885),+                                    ("monthday", -5.707110264748875),+                                    ("monthyear", -4.3208159036289855),+                                    ("Yom Ha'atzmautyear (latent)", -6.11257537285704),+                                    ("Vijayadashamiyear (latent)", -6.11257537285704),+                                    ("Administrative Professionals' Dayyear (latent)",+                                     -4.726281011737149),+                                    ("Thanksgiving Dayyear (latent)", -5.01396308418893),+                                    ("Thai Pongalyear (latent)", -5.419428192297095),+                                    ("Thiru Onamyear (latent)", -5.419428192297095),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.11257537285704),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -6.11257537285704),+                                    ("houryear", -5.419428192297095),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -6.11257537285704),+                                    ("Christmas<time-of-day> am|pm", -6.11257537285704),+                                    ("last <day-of-week> of <time>year (latent)",+                                     -6.11257537285704),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.419428192297095),+                                    ("<time-of-day> am|pmintersect", -4.859812404361672),+                                    ("Earth Houryear (latent)", -6.11257537285704),+                                    ("Octoberyear (latent)", -4.608497976080766),+                                    ("intersect<time-of-day> am|pm", -6.11257537285704),+                                    ("Mattu Pongalyear (latent)", -6.11257537285704),+                                    ("Shavuotyear (latent)", -6.11257537285704),+                                    ("Dhanterasin <named-month>|year", -6.11257537285704),+                                    ("at <time-of-day>in|within|after <duration>",+                                     -6.11257537285704),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.11257537285704),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -5.707110264748875),+                                    ("Marchyear (latent)", -6.11257537285704),+                                    ("Sukkotyear (latent)", -5.707110264748875),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -6.11257537285704),+                                    ("Clean Mondayyear (latent)", -5.707110264748875),+                                    ("monthhour", -5.707110264748875),+                                    ("todayat <time-of-day>", -6.11257537285704),+                                    ("Thursday<time> timezone", -4.407827280618615),+                                    ("from|since|after <time>December", -6.11257537285704),+                                    ("Emergency Medical Services for Children Dayyear (latent)",+                                     -6.11257537285704),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm", -6.11257537285704),+                                    ("Palm SundaySunday", -5.707110264748875),+                                    ("Tax Daythis|last|next <cycle>", -6.11257537285704),+                                    ("dayday", -3.915350795520821),+                                    ("<time> <part-of-day>at <time-of-day>", -6.11257537285704),+                                    ("mm/ddat <time-of-day>", -6.11257537285704),+                                    ("tonightat <time-of-day>", -6.11257537285704),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -5.419428192297095),+                                    ("today<time-of-day> am|pm", -6.11257537285704),+                                    ("Februarythe <day-of-month> (ordinal)", -5.707110264748875),+                                    ("at <time-of-day><time> <part-of-day>", -6.11257537285704),+                                    ("mm/dd<time-of-day> am|pm", -6.11257537285704),+                                    ("hourhour", -4.859812404361672),+                                    ("<time-of-day> am|pmon <date>", -4.097672352314775),+                                    ("Wednesdaythis|last|next <cycle>", -6.11257537285704),+                                    ("Lentyear (latent)", -6.11257537285704),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.608497976080766),+                                    ("Boghiyear (latent)", -6.11257537285704),+                                    ("dayyear", -1.8712486202862937),+                                    ("Thursdayfrom|since|after <time>", -5.707110264748875),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -6.11257537285704),+                                    ("Thursdayat <time-of-day>", -5.707110264748875),+                                    ("Islamic New Yearyear (latent)", -5.707110264748875),+                                    ("Laylat al-Qadryear (latent)", -5.196284640982885),+                                    ("Chhathin <named-month>|year", -6.11257537285704),+                                    ("Vasant Panchamiin <named-month>|year", -6.11257537285704),+                                    ("Diwaliin <named-month>|year", -6.11257537285704),+                                    ("Shrove Tuesdayyear (latent)", -6.11257537285704),+                                    ("intersect by \",\", \"of\", \"from\" for year<time-of-day> am|pm",+                                     -5.419428192297095),+                                    ("<time-of-day> am|pmtomorrow", -5.419428192297095),+                                    ("Yom Kippuryear (latent)", -6.11257537285704),+                                    ("<part-of-day> of <time>year (latent)", -6.11257537285704),+                                    ("minutehour", -5.196284640982885),+                                    ("Kaanum Pongalyear (latent)", -5.707110264748875),+                                    ("Maha Saptamiyear (latent)", -6.11257537285704),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.707110264748875),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.407827280618615),+                                    ("for <duration> from <time>December", -6.11257537285704),+                                    ("tomorrow<time-of-day> sharp|exactly", -6.11257537285704),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.196284640982885),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.707110264748875),+                                    ("Pentecostyear (latent)", -6.11257537285704),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.196284640982885),+                                    ("Eid al-Fitryear (latent)", -6.11257537285704),+                                    ("Mondayin|during the <part-of-day>", -6.11257537285704),+                                    ("Raksha Bandhanyear (latent)", -6.11257537285704),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.707110264748875),+                                    ("Emancipation Dayyear (latent)", -5.419428192297095),+                                    ("Navaratriin <named-month>|year", -6.11257537285704),+                                    ("Ashurayear (latent)", -6.11257537285704),+                                    ("Chinese New Yearyear (latent)", -6.11257537285704),+                                    ("Sundayyear (latent)", -6.11257537285704),+                                    ("Lag BaOmeryear (latent)", -6.11257537285704),+                                    ("last weekend of <named-month>year (latent)",+                                     -6.11257537285704),+                                    ("Eid al-Adhayear (latent)", -5.196284640982885),+                                    ("intersectin|during the <part-of-day>", -6.11257537285704),+                                    ("Christmasat <time-of-day>", -6.11257537285704),+                                    ("Passoveryear (latent)", -6.11257537285704),+                                    ("Lazarus Saturdayyear (latent)", -6.11257537285704),+                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",+                                     -6.11257537285704),+                                    ("Cyber Mondayyear (latent)", -5.707110264748875),+                                    ("Yom HaShoahyear (latent)", -5.707110264748875),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -5.707110264748875),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -6.11257537285704),+                                    ("Thai Pongalin <named-month>|year", -6.11257537285704),+                                    ("Septemberyear (latent)", -5.707110264748875),+                                    ("mm/ddyear (latent)", -6.11257537285704),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.859812404361672),+                                    ("Halloweenyear (latent)", -6.11257537285704),+                                    ("<ordinal> last <cycle> of <time>year (latent)",+                                     -5.707110264748875),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.419428192297095),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -6.11257537285704),+                                    ("at <time-of-day>intersect", -5.707110264748875),+                                    ("Rosh Hashanahyear (latent)", -5.419428192297095),+                                    ("Dhanterasyear (latent)", -6.11257537285704),+                                    ("Tu BiShvatyear (latent)", -6.11257537285704),+                                    ("Holiyear (latent)", -5.419428192297095),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -6.11257537285704),+                                    ("Holika Dahanyear (latent)", -5.419428192297095),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -6.11257537285704),+                                    ("dayminute", -3.4735180432417816),+                                    ("Mawlidyear (latent)", -6.11257537285704),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.707110264748875),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -6.11257537285704),+                                    ("Jumu'atul-Widayear (latent)", -5.196284640982885),+                                    ("minuteday", -2.4749892131306543),+                                    ("absorption of , after named dayintersect", -6.11257537285704),+                                    ("intersectyear (latent)", -6.11257537285704),+                                    ("Orthodox Easter Sundayyear (latent)", -6.11257537285704),+                                    ("<ordinal> <cycle> of <time>year (latent)", -6.11257537285704),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -6.11257537285704),+                                    ("Boss's Dayyear (latent)", -5.707110264748875),+                                    ("Global Youth Service Dayyear (latent)", -6.11257537285704),+                                    ("Tisha B'Avyear (latent)", -6.11257537285704),+                                    ("Isra and Mi'rajyear (latent)", -5.196284640982885),+                                    ("at <time-of-day>absorption of , after named day",+                                     -6.11257537285704),+                                    ("Christmasyear (latent)", -5.707110264748875),+                                    ("Naraka Chaturdashiyear (latent)", -5.707110264748875),+                                    ("at <time-of-day>on <date>", -5.01396308418893),+                                    ("Emergency Medical Services Weekyear (latent)",+                                     -6.11257537285704),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.5031374604229395),+                                    ("dayweek", -6.11257537285704),+                                    ("Easter Sundayyear (latent)", -5.419428192297095),+                                    ("weekyear", -5.01396308418893),+                                    ("hh:mmin|during the <part-of-day>", -5.419428192297095),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.707110264748875),+                                    ("Hanukkahyear (latent)", -5.419428192297095),+                                    ("February<time> <part-of-day>", -6.11257537285704),+                                    ("National Grandparents Dayyear (latent)", -6.11257537285704),+                                    ("Tuesdayin <named-month>|year", -6.11257537285704),+                                    ("Great Lentyear (latent)", -6.11257537285704),+                                    ("tomorrowat <time-of-day>", -5.419428192297095),+                                    ("Labor Dayyear (latent)", -6.11257537285704),+                                    ("between <time> and <time>on <date>", -4.5031374604229395),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\" for year",+                                     -6.11257537285704),+                                    ("last <cycle> of <time>year (latent)", -5.419428192297095),+                                    ("at <time-of-day>tomorrow", -5.707110264748875),+                                    ("tomorrow<time-of-day> am|pm", -6.11257537285704),+                                    ("President's Dayyear (latent)", -6.11257537285704),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -6.11257537285704),+                                    ("Diwaliyear (latent)", -6.11257537285704),+                                    ("Black Fridayyear (latent)", -5.707110264748875),+                                    ("the <ordinal> last <cycle> of <time>year (latent)",+                                     -6.11257537285704),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -6.11257537285704),+                                    ("Chhathyear (latent)", -5.707110264748875),+                                    ("Vasant Panchamiyear (latent)", -6.11257537285704),+                                    ("Palm Sundayintersect", -6.11257537285704),+                                    ("Tax Dayyear (latent)", -5.196284640982885),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -6.11257537285704),+                                    ("Februaryintersect", -6.11257537285704),+                                    ("Mother's Dayyear (latent)", -6.11257537285704),+                                    ("Simchat Torahyear (latent)", -6.11257537285704),+                                    ("minuteyear", -6.11257537285704)],+                               n = 338},+                   koData =+                     ClassData{prior = -1.0187150038116695, unseen = -6.413458957167357,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.802380355275797),+                                    ("hourday", -4.802380355275797),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.718671087149952),+                                    ("dayhour", -3.153721729688415),+                                    ("Tuesdayfrom|since|after <time>", -5.718671087149952),+                                    ("daymonth", -3.578604923653681),+                                    ("monthday", -5.313205979041787),+                                    ("monthyear", -4.465908118654584),+                                    ("<time-of-day> am|pmyear (latent)", -5.313205979041787),+                                    ("Thai Pongalyear (latent)", -5.025523906590006),+                                    ("intersecthh:mm", -5.718671087149952),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.718671087149952),+                                    ("houryear", -4.802380355275797),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.718671087149952),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.025523906590006),+                                    ("<time-of-day> am|pmintersect", -4.465908118654584),+                                    ("until <time>on <date>", -5.025523906590006),+                                    ("Octoberyear (latent)", -5.718671087149952),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.718671087149952),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -4.465908118654584),+                                    ("about|exactly <time-of-day>year (latent)",+                                     -5.718671087149952),+                                    ("absorption of , after named dayJuly", -5.313205979041787),+                                    ("from|since|after <time>July", -5.718671087149952),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -4.802380355275797),+                                    ("Clean Mondayyear (latent)", -5.718671087149952),+                                    ("monthhour", -5.718671087149952),+                                    ("hourmonth", -4.802380355275797),+                                    ("todayat <time-of-day>", -5.718671087149952),+                                    ("from|since|after <time>December", -5.718671087149952),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -5.718671087149952),+                                    ("Mondayyear (latent)", -4.620058798481842),+                                    ("dayday", -5.313205979041787),+                                    ("mm/ddat <time-of-day>", -5.313205979041787),+                                    ("<time-of-day> am|pmon <date>", -4.465908118654584),+                                    ("dayyear", -2.698246201005589),+                                    ("Thursdaymm/dd", -5.718671087149952),+                                    ("New Year's Dayyear (latent)", -5.313205979041787),+                                    ("Thursdayfrom|since|after <time>", -4.0139229949115265),+                                    ("Thursdayat <time-of-day>", -4.465908118654584),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.718671087149952),+                                    ("Aprilyear (latent)", -5.718671087149952),+                                    ("monthminute", -5.718671087149952),+                                    ("<time-of-day> am|pmtomorrow", -5.718671087149952),+                                    ("Thursdayhh:mm", -4.802380355275797),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.718671087149952),+                                    ("minutemonth", -3.926911617921897),+                                    ("week-endin <named-month>|year", -5.718671087149952),+                                    ("Augustyear (latent)", -5.313205979041787),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.313205979041787),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.313205979041787),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -5.313205979041787),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.718671087149952),+                                    ("Sundayyear (latent)", -5.025523906590006),+                                    ("Christmasat <time-of-day>", -5.718671087149952),+                                    ("from|since|after <time>year (latent)", -4.465908118654584),+                                    ("<duration> after|before|from <time>December",+                                     -5.718671087149952),+                                    ("yesterday<time-of-day> am|pm", -5.718671087149952),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -5.718671087149952),+                                    ("mm/ddyear (latent)", -5.718671087149952),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -5.025523906590006),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.718671087149952),+                                    ("at <time-of-day>intersect", -5.313205979041787),+                                    ("hh:mmyear (latent)", -4.620058798481842),+                                    ("Holiyear (latent)", -5.718671087149952),+                                    ("until <time><time-of-day> am|pm", -5.718671087149952),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.718671087149952),+                                    ("dayminute", -3.192942442841696),+                                    ("intersectSeptember", -4.214593690373678),+                                    ("minuteday", -2.6506181520163348),+                                    ("absorption of , after named dayintersect",+                                     -5.718671087149952),+                                    ("Februaryin|during the <part-of-day>", -5.718671087149952),+                                    ("hh:mmon <date>", -3.703768066607687),+                                    ("Saturdayyear (latent)", -5.718671087149952),+                                    ("from|since|after <time>on <date>", -4.802380355275797),+                                    ("absorption of , after named daySeptember",+                                     -4.802380355275797),+                                    ("Naraka Chaturdashiyear (latent)", -5.718671087149952),+                                    ("on <date>September", -5.313205979041787),+                                    ("at <time-of-day>on <date>", -5.313205979041787),+                                    ("in <named-month>|yearyear (latent)", -5.718671087149952),+                                    ("dayweek", -5.718671087149952),+                                    ("Easter Sundayyear (latent)", -5.313205979041787),+                                    ("Thursday<time-of-day> am|pm", -5.025523906590006),+                                    ("weekyear", -5.313205979041787),+                                    ("<named-month> <day-of-month> (non ordinal)until <time>",+                                     -5.718671087149952),+                                    ("intersect by \",\", \"of\", \"from\" for yearhh:mm",+                                     -5.025523906590006),+                                    ("Sundayfrom|since|after <time>", -5.718671087149952),+                                    ("absorption of , after named dayFebruary", -4.802380355275797),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.718671087149952),+                                    ("tomorrowat <time-of-day>", -5.718671087149952),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.718671087149952),+                                    ("last <cycle> of <time>year (latent)", -5.313205979041787),+                                    ("tomorrow<time-of-day> am|pm", -5.718671087149952),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -5.025523906590006),+                                    ("Diwaliyear (latent)", -5.313205979041787),+                                    ("<time-of-day> - <time-of-day> (interval)July",+                                     -5.718671087149952),+                                    ("Fridayyear (latent)", -5.313205979041787),+                                    ("minuteyear", -4.465908118654584)],+                               n = 191}}),+       ("one eleven",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("after lunch/work/school",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("early morning",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <number> (implicit minutes)",+        Classifier{okData =+                     ClassData{prior = -1.2685113254635072,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3184537311185346),+                                    ("integer (0..19)", -1.2992829841302609)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.33024168687057687,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1743533871447778),+                                    ("integer (0..19)", -1.8325814637483102)],+                               n = 23}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.791759469228055),+                                    ("ordinal (digits)quarter (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("quarteryear", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+                                     -2.1972245773362196),+                                    ("ordinal (digits)day (grain)this|last|next <cycle>",+                                     -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.001480000210124),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("hh:mmhh:mm", -2.001480000210124),+                                    ("dayday", -2.512305623976115),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+                                    ("hourhour", -2.512305623976115),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.1986731175506815),+                                    ("dayhour", -2.793208009442517),+                                    ("<day-of-month> (ordinal)time-of-day (latent)",+                                     -3.1986731175506815),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -3.1986731175506815),+                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),+                                    ("minuteminute", -2.793208009442517),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.793208009442517),+                                    ("dayday", -3.1986731175506815),+                                    ("hourhour", -2.505525936990736),+                                    ("dayyear", -3.1986731175506815),+                                    ("minutehour", -2.2823823856765264),+                                    ("hh:mmintersect", -2.793208009442517),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<time-of-day> am|pm",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+                                     -3.1986731175506815)],+                               n = 14}}),+       ("Saturday",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("the <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.7346010553881064),+                                    ("week (grain)October", -1.7346010553881064),+                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",+                                     -1.7346010553881064),+                                    ("weekday", -1.2237754316221157)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number.number hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -2.3025850929940455),+                                    ("hourminute", -2.3025850929940455),+                                    ("time-of-day (latent)<time-of-day> sharp|exactly",+                                     -2.70805020110221),+                                    ("time-of-day (latent)hh:mm", -2.70805020110221),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.0149030205422647),+                                    ("hourhour", -1.791759469228055),+                                    ("minutehour", -1.6094379124341003),+                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+                               n = 9}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),+                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],+                               n = 4}}),+       ("Global Youth Service 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}}),+       ("Tisha B'Av",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yyyy-mm-dd",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -0.13580154115906176,+                               unseen = -5.135798437050262,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -3.614851411631109e-2),+                                    ("intersect 2 numbers", -3.7436043538031827)],+                               n = 165},+                   koData =+                     ClassData{prior = -2.063693184711697, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1349799328389845),+                                    ("negative numbers", -0.6931471805599453),+                                    ("compose by multiplication", -1.9459101490553135)],+                               n = 24}}),+       ("mm/dd/yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> for <duration>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -1.0296194171811581),+                                    ("intersect<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -1.540445040947149),+                                    ("from|since|after <time><integer> <unit-of-duration>",+                                     -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.2039728043259361),+                                    ("December<integer> <unit-of-duration>", -1.2039728043259361)],+                               n = 2}}),+       ("Memorial Day",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Monday",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lincoln's Birthday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm:ss",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Emergency Medical Services for Children 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}}),+       ("Hanukkah",+        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}}),+       ("Siblings 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}}),+       ("<hour-of-day> <integer>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),+                                    ("hour", -0.9808292530117262),+                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>integer (numeric)",+                                     -1.0986122886681098),+                                    ("hour", -1.0986122886681098)],+                               n = 1}}),+       ("nth <time> of <time>",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.9808292530117262),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -2.0794415416798357),+                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",+                                     -1.6739764335716716),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",+                                     -1.6739764335716716)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.0986122886681098),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",+                                     -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",+                                     -1.3862943611198906)],+                               n = 3}}),+       ("National Grandparents Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half a <time-grain>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("Valentine's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("April",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maha Saptami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -3.822121282019774e-2,+                               unseen = -4.3694478524670215,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 77},+                   koData =+                     ClassData{prior = -3.283414346005772, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<part-of-day> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.3513752571634776),+                                    ("part of daysintersect", -2.3513752571634776),+                                    ("hourday", -0.9650808960435872),+                                    ("part of daysthe <day-of-month> (ordinal)",+                                     -2.3513752571634776),+                                    ("part of daysthe <day-of-month> (number)",+                                     -2.3513752571634776),+                                    ("part of daysthis <time>", -2.3513752571634776),+                                    ("part of daysChristmas", -1.9459101490553135)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time> for <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("six thirty six a.m.",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.252762968495368),+                                    ("one twenty two", -0.8472978603872037),+                                    ("one eleven", -1.252762968495368)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Loyalty Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Shrove Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("<day-of-month> (ordinal or number) of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.3513752571634776),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.3513752571634776),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)February", -1.9459101490553135),+                                    ("month", -0.9650808960435872),+                                    ("ordinal (digits)March", -2.3513752571634776),+                                    ("integer (numeric)July", -2.3513752571634776)],+                               n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.5040773967762742),+                                    ("month", -1.5040773967762742)],+                               n = 1}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("part of days", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Kaanum Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom Kippur",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tax 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}}),+       ("powers of tens",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Friday",+        Classifier{okData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("early morning", -2.5257286443082556),+                                    ("hour", -0.7339691750802004),+                                    ("part of days", -0.8209805520698302)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.916290731874155),+                                    ("part of days", -0.916290731874155)],+                               n = 1}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh(:mm) - <time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Groundhog Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|last|next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.15234072458201878,+                               unseen = -5.1298987149230735,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.153672065851137),+                                    ("month (grain)", -2.8213788864092133),+                                    ("year (grain)", -2.4159137783010487),+                                    ("week (grain)", -1.153672065851137),+                                    ("quarter", -3.5145260669691587), ("year", -2.4159137783010487),+                                    ("month", -2.8213788864092133),+                                    ("quarter (grain)", -3.5145260669691587)],+                               n = 79},+                   koData =+                     ClassData{prior = -1.9568392195875037,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2809338454620642),+                                    ("week (grain)", -1.2809338454620642),+                                    ("day", -1.9740810260220096),+                                    ("day (grain)", -1.9740810260220096)],+                               n = 13}}),+       ("Mother's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Simchat Torah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Eve",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Raksha Bandhan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ashura",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Palm Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Eid al-Adha",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),+                                    ("time-of-day (latent)", -1.9459101490553135),+                                    ("<time-of-day> am|pm", -1.9459101490553135),+                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+                                    ("minute", -1.540445040947149)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -1.7047480922384253),+                                    ("ordinal (digits)", -0.2006706954621511)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.9808292530117262),+                                    ("ordinal (digits)", -0.4700036292457356)],+                               n = 6}}),+       ("last weekend of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),+                                    ("month", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lag BaOmer",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fractional number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Chinese New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Emancipation 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}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|this|next <season>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.635159922909596, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.11441035117774422),+                                    ("integer (0..19)", -2.3581549441488563)],+                               n = 71},+                   koData =+                     ClassData{prior = -0.7547050735593787, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.878087785311434e-2),+                                    ("integer (0..19)", -3.0910424533583156),+                                    ("integer 21..99", -3.4965075614664802)],+                               n = 63}}),+       ("beginning of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("SundayMarch", -1.6094379124341003),+                                    ("MondayMarch", -1.6094379124341003),+                                    ("Sundayintersect", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.13192754304254806, unseen = -5.19295685089021,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5483284762254965),+                                    ("integer (0..19)year (grain)", -2.9901612285045354),+                                    ("integer (numeric)day (grain)", -2.622436448379218),+                                    ("integer (0..19)second (grain) ", -3.801091444720864),+                                    ("integer (0..19)hour (grain)", -3.107944264160919),+                                    ("second", -3.3956263366127),+                                    ("integer (numeric)second (grain) ", -4.088773517172645),+                                    ("integer (numeric)year (grain)", -3.2414756567854415),+                                    ("day", -2.3541724617845388), ("year", -2.479335604738545),+                                    ("integer (numeric)week (grain)", -3.107944264160919),+                                    ("integer (0..19)month (grain)", -3.577947893406655),+                                    ("hour", -2.7024791560527546), ("month", -3.2414756567854415),+                                    ("integer (numeric)minute (grain)", -3.2414756567854415),+                                    ("integer (0..19)minute (grain)", -3.107944264160919),+                                    ("integer (numeric)month (grain)", -4.088773517172645),+                                    ("minute", -2.5483284762254965),+                                    ("integer (numeric)hour (grain)", -3.577947893406655),+                                    ("integer (0..19)day (grain)", -3.577947893406655),+                                    ("integer (0..19)week (grain)", -3.2414756567854415)],+                               n = 78},+                   koData =+                     ClassData{prior = -2.0907410969337694, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+                                    ("integer (numeric)hour (grain)", -1.4087672169719492),+                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],+                               n = 11}}),+       ("hhmm (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.2546422183735807, unseen = -5.37989735354046,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>", -3.765840495250065),+                                    ("integer after|past <hour-of-day>", -3.9889840465642745),+                                    ("at <time-of-day>", -2.1564025828159643),+                                    ("<time-of-day> o'clock", -4.276666119016055),+                                    ("half after|past <hour-of-day>", -4.276666119016055),+                                    ("time-of-day (latent)", -1.7117167615545186),+                                    ("hhmm (latent)", -4.68213122712422),+                                    ("hh:mm", -2.330755969960742),+                                    ("quarter after|past <hour-of-day>", -4.68213122712422),+                                    ("until <time>", -3.9889840465642745),+                                    ("about|exactly <time-of-day>", -4.68213122712422),+                                    ("hour", -1.1856236656577395),+                                    ("<time-of-day> sharp|exactly", -4.68213122712422),+                                    ("minute", -1.791759469228055)],+                               n = 100},+                   koData =+                     ClassData{prior = -1.492516574375198, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.20545280453606),+                                    ("from|since|after <time>", -3.20545280453606),+                                    ("<hour-of-day> <integer>", -3.6109179126442243),+                                    ("time-of-day (latent)", -1.085189268335969),+                                    ("hour", -1.0459685551826876), ("minute", -2.6946271807700692)],+                               n = 29}}),+       ("Yom Ha'atzmaut",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thiru Onam",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thai Pongal",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Vijayadashami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Administrative Professionals' 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}}),+       ("Thanksgiving Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("part of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.5306282510621704,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.1400661634962708),+                                    ("year (grain)", -2.4277482359480516),+                                    ("second", -2.833213344056216),+                                    ("week (grain)", -2.1400661634962708),+                                    ("day", -2.1400661634962708),+                                    ("minute (grain)", -2.833213344056216),+                                    ("year", -2.4277482359480516),+                                    ("second (grain) ", -2.833213344056216),+                                    ("minute", -2.833213344056216),+                                    ("day (grain)", -2.1400661634962708)],+                               n = 10},+                   koData =+                     ClassData{prior = -0.8873031950009028, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -1.7227665977411035),+                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+                                    ("quarter (grain)", -1.9459101490553135)],+                               n = 7}}),+       ("at the beginning|end of <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -0.6931471805599453),+                                    ("year", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Dhanteras",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tu BiShvat",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Whit Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -5.6352936551131744e-2,+                               unseen = -4.2626798770413155,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},+                   koData =+                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("Holi",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Rosh Hashanah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <named-day> ago|back",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Thursday", -0.6931471805599453),+                                    ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Holika Dahan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second (grain) ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..twentieth,thirtieth,...)",+        Classifier{okData =+                     ClassData{prior = -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}}),+       ("Mawlid",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Jumu'atul-Wida",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("until <time>",+        Classifier{okData =+                     ClassData{prior = -1.1786549963416462, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -2.159484249353372),+                                    ("time-of-day (latent)", -2.5649493574615367),+                                    ("year", -2.159484249353372),+                                    ("<time-of-day> am|pm", -1.8718021769015913),+                                    ("hh:mm", -2.159484249353372), ("hour", -2.159484249353372),+                                    ("minute", -1.6486586255873816)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.2192034840549946),+                                    ("yesterday", -2.7300291078209855),+                                    ("day", -2.7300291078209855),+                                    ("time-of-day (latent)", -1.6314168191528755),+                                    ("hh:mm", -2.2192034840549946), ("hour", -1.5260563034950494),+                                    ("minute", -1.749199854809259)],+                               n = 18}}),+       ("the <cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.252762968495368),+                                    ("dayday", -0.8472978603872037),+                                    ("day (grain)yesterday", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about|exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+                                    ("this|last|next <cycle>", -1.791759469228055),+                                    ("day", -2.4849066497880004),+                                    ("time-of-day (latent)", -2.890371757896165),+                                    ("hhmm (latent)", -2.4849066497880004),+                                    ("<time-of-day> am|pm", -2.890371757896165),+                                    ("hour", -2.1972245773362196),+                                    ("next <time>", -2.890371757896165),+                                    ("this|next <day-of-week>", -2.890371757896165),+                                    ("minute", -2.4849066497880004)],+                               n = 12},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -2.0794415416798357)],+                               n = 2}}),+       ("Sukkot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthyear", -1.540445040947149),+                                    ("Marcha <unit-of-duration>", -1.9459101490553135),+                                    ("March<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("Vijayadashami<integer> <unit-of-duration>",+                                     -1.9459101490553135),+                                    ("dayyear", -1.540445040947149),+                                    ("Tax Day<integer> <unit-of-duration>", -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("World Vegan Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.5198754592859085, unseen = -4.990432586778736,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -4.290459441148391),+                                    ("dayhour", -3.884994333040227),+                                    ("daymonth", -3.0376964726530233),+                                    ("<named-month> <day-of-month> (non ordinal)Friday",+                                     -4.290459441148391),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.597312260588446),+                                    ("Wednesdayintersect", -4.290459441148391),+                                    ("Labor Daythis|last|next <cycle>", -4.290459441148391),+                                    ("Black Fridaythis|last|next <cycle>", -4.290459441148391),+                                    ("<part-of-day> of <time>February", -4.290459441148391),+                                    ("Saturday<time-of-day> am|pm", -4.290459441148391),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -3.884994333040227),+                                    ("on <date><time-of-day> am|pm", -4.290459441148391),+                                    ("hourmonth", -4.290459441148391),+                                    ("Fridayintersect by \",\", \"of\", \"from\" for year",+                                     -4.290459441148391),+                                    ("dayday", -2.4186572642467996),+                                    ("the <day-of-month> (ordinal)February", -3.884994333040227),+                                    ("WednesdayOctober", -4.290459441148391),+                                    ("Wednesdaythis|last|next <cycle>", -3.884994333040227),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.3741687092742363),+                                    ("dayyear", -3.0376964726530233),+                                    ("Saturday<named-month> <day-of-month> (non ordinal)",+                                     -4.290459441148391),+                                    ("Thursdayhh:mm", -3.884994333040227),+                                    ("Thanksgiving Daythis|last|next <cycle>", -4.290459441148391),+                                    ("Memorial Daythis|last|next <cycle>", -4.290459441148391),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -3.884994333040227),+                                    ("TuesdayOctober", -4.290459441148391),+                                    ("the <day-of-month> (ordinal)March", -4.290459441148391),+                                    ("Mondaythis|last|next <cycle>", -4.290459441148391),+                                    ("Fridayintersect", -4.290459441148391),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -3.884994333040227),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.884994333040227),+                                    ("Tuesdaythis|last|next <cycle>", -4.290459441148391),+                                    ("Sunday<named-month> <day-of-month> (non ordinal)",+                                     -4.290459441148391),+                                    ("dayminute", -2.9041650800285006),+                                    ("minuteday", -3.3741687092742363),+                                    ("this|last|next <cycle>Sunday", -4.290459441148391),+                                    ("Sundaythis|last|next <cycle>", -4.290459441148391),+                                    ("weekday", -4.290459441148391),+                                    ("dayweek", -3.1918471524802814),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.884994333040227)],+                               n = 44},+                   koData =+                     ClassData{prior = -0.9028677115420143, unseen = -4.77912349311153,+                               likelihoods =+                                 HashMap.fromList+                                   [("week-endJuly", -4.07753744390572),+                                    ("week-endOctober", -3.3843902633457743),+                                    ("daymonth", -1.8803128665695),+                                    ("TuesdaySeptember", -4.07753744390572),+                                    ("Wednesdayintersect", -4.07753744390572),+                                    ("hourmonth", -2.9789251552376097),+                                    ("Fridaythis|last|next <cycle>", -4.07753744390572),+                                    ("SundayFebruary", -4.07753744390572),+                                    ("WednesdayOctober", -4.07753744390572),+                                    ("week-endintersect", -4.07753744390572),+                                    ("dayyear", -4.07753744390572),+                                    ("FridayJuly", -3.672072335797555),+                                    ("FridaySeptember", -4.07753744390572),+                                    ("WednesdayFebruary", -4.07753744390572),+                                    ("minutemonth", -3.1612467120315646),+                                    ("SundayMarch", -4.07753744390572),+                                    ("MondayFebruary", -3.672072335797555),+                                    ("Fridayintersect", -4.07753744390572),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.672072335797555),+                                    ("dayminute", -3.3843902633457743),+                                    ("SaturdaySeptember", -4.07753744390572),+                                    ("intersectSeptember", -3.1612467120315646),+                                    ("MondayMarch", -4.07753744390572),+                                    ("on <date>September", -3.672072335797555),+                                    ("Tuesdayintersect", -4.07753744390572),+                                    ("Sundayintersect", -4.07753744390572)],+                               n = 30}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -0.4595323293784402,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("Father's Day", -2.9444389791664407),+                                    ("Martin Luther King's Day", -2.9444389791664407),+                                    ("Cyber Monday", -2.9444389791664407),+                                    ("Memorial Day", -2.9444389791664407),+                                    ("Mother's Day", -2.9444389791664407),+                                    ("day", -1.1526795099383855), ("Sunday", -2.9444389791664407),+                                    ("Chinese New Year", -2.538973871058276),+                                    ("Thanksgiving Day", -2.9444389791664407),+                                    ("Easter Sunday", -2.9444389791664407),+                                    ("hour", -2.9444389791664407), ("Tuesday", -2.9444389791664407),+                                    ("week-end", -2.9444389791664407)],+                               n = 12},+                   koData =+                     ClassData{prior = -0.9985288301111273, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -2.639057329615259), ("day", -2.2335922215070942),+                                    ("Sunday", -2.639057329615259), ("hour", -1.540445040947149),+                                    ("week-end", -1.540445040947149)],+                               n = 7}}),+       ("March",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month>|<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.120263536200091),+                                    ("Thursdayordinal (digits)", -2.5257286443082556),+                                    ("day", -2.120263536200091),+                                    ("Augustordinal (digits)", -2.5257286443082556),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.120263536200091),+                                    ("Tuesdayordinal (digits)", -2.5257286443082556),+                                    ("month", -1.2729656758128873),+                                    ("Marchordinal (digits)", -2.5257286443082556)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>ordinal (digits)",+                                     -1.8718021769015913),+                                    ("Augustordinal (digits)", -1.8718021769015913),+                                    ("month", -1.466337068793427)],+                               n = 2}}),+       ("Labor Day weekend",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Clean Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Emergency Medical Services Week",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Veterans Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Easter Sunday",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("Christmas",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm.dd.yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Isra and Mi'raj",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> after|before|from <time>",+        Classifier{okData =+                     ClassData{prior = -0.3184537311185346,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>now", -2.803360380906535),+                                    ("a <unit-of-duration>Christmas", -2.803360380906535),+                                    ("dayday", -2.803360380906535),+                                    ("<integer> <unit-of-duration>today", -2.803360380906535),+                                    ("daysecond", -2.803360380906535),+                                    ("a <unit-of-duration>right now", -2.803360380906535),+                                    ("minutenograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Christmas", -2.803360380906535),+                                    ("<integer> <unit-of-duration>Easter Sunday",+                                     -2.803360380906535),+                                    ("secondnograin", -2.803360380906535),+                                    ("yearday", -2.1102132003465894),+                                    ("daynograin", -2.803360380906535),+                                    ("<integer> <unit-of-duration>now", -2.3978952727983707)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -2.4423470353692043),+                                    ("dayday", -2.03688192726104),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -2.4423470353692043),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -2.4423470353692043)],+                               n = 3}}),+       ("<day-of-month> (ordinal or number) of <month>",+        Classifier{okData =+                     ClassData{prior = -8.004270767353637e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.803360380906535),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.803360380906535),+                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+                                    ("integer (numeric)this|last|next <cycle>",+                                     -2.3978952727983707),+                                    ("ordinal (digits)February", -2.803360380906535),+                                    ("integer (numeric)February", -2.3978952727983707),+                                    ("month", -0.9315582040049435),+                                    ("ordinal (digits)March", -2.803360380906535),+                                    ("integer (numeric)July", -2.803360380906535)],+                               n = 12},+                   koData =+                     ClassData{prior = -2.5649493574615367,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.7047480922384253),+                                    ("month", -1.7047480922384253)],+                               n = 1}}),+       ("Independence Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Naraka Chaturdashi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("beginning of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6888794541139363,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martin Luther King's Day", -2.9704144655697013),+                                    ("Halloween", -2.9704144655697013),+                                    ("Wednesday", -2.9704144655697013),+                                    ("Boss's Day", -2.9704144655697013),+                                    ("Memorial Day", -2.9704144655697013),+                                    ("Monday", -2.9704144655697013),+                                    ("Tax Day", -2.9704144655697013),+                                    ("Mother's Day", -2.9704144655697013),+                                    ("day", -1.0986122886681098),+                                    ("Thanksgiving Day", -2.9704144655697013),+                                    ("March", -2.9704144655697013), ("month", -2.9704144655697013),+                                    ("Tuesday", -2.277267285009756)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> sharp|exactly",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.1400661634962708),+                                    ("time-of-day (latent)", -2.1400661634962708),+                                    ("hhmm (latent)", -2.1400661634962708),+                                    ("<time-of-day> am|pm", -2.1400661634962708),+                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+                                    ("minute", -1.4469189829363254)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <named-month>|year",+        Classifier{okData =+                     ClassData{prior = -0.2719337154836418,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("<year> (bc|ad)", -1.845826690498331),+                                    ("October", -2.9444389791664407),+                                    ("year (latent)", -1.3350010667323402),+                                    ("year", -0.9295359586241757), ("March", -2.9444389791664407),+                                    ("month", -2.538973871058276)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.4350845252893227, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.6739764335716716),+                                    ("year (latent)", -1.3862943611198906),+                                    ("year", -1.3862943611198906), ("month", -1.6739764335716716)],+                               n = 5}}),+       ("Islamic New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.696104113612832e-2),+                                    ("integer (0..19)", -2.6026896854443837)],+                               n = 25}}),+       ("about|exactly <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("half a <time-grain>", -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}}),+       ("half an hour (abbrev).",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               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.5596157879354228, unseen = -4.127134385045092,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -3.012261575505202),+                                    ("from|since|after <time>hh:mm", -2.501435951739211),+                                    ("minuteminute", -1.2776605201170952),+                                    ("hh:mmhh:mm", -1.9136492868370918),+                                    ("dayday", -3.012261575505202),+                                    ("hourhour", -3.012261575505202),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -3.012261575505202),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -3.012261575505202),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -3.012261575505202)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.2386784521643803),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -3.2386784521643803),+                                    ("daymonth", -2.833213344056216),+                                    ("<time-of-day> am|pmintersect", -3.2386784521643803),+                                    ("hh:mm<time-of-day> am|pm", -2.833213344056216),+                                    ("minuteminute", -1.9859154836690123),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("dayday", -3.2386784521643803),+                                    ("from|since|after <time><day-of-month> (ordinal or number) <named-month>",+                                     -2.833213344056216),+                                    ("hourhour", -2.5455312716044354),+                                    ("minutehour", -2.833213344056216),+                                    ("hh:mmintersect", -2.322387720290225),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.2386784521643803),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("from|since|after <time>intersect", -2.833213344056216)],+                               n = 15}}),+       ("Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Day",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("fortnight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Memorial Day weekend",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> and an half hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Laylat al-Qadr",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Boghi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("at the beginning|end of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("January", -1.3862943611198906),+                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>hh:mm", -2.4849066497880004),+                                    ("minuteminute", -1.529395204760564),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.4011973816621555),+                                    ("hh:mmhh:mm", -1.8971199848858813),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -1.8971199848858813),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -3.4011973816621555),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.4418327522790392, unseen = -4.532599493153256,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.828641396489095),+                                    ("until <time>time-of-day (latent)", -2.575878427993727),+                                    ("hh:mmtime-of-day (latent)", -2.12389330425067),+                                    ("hh:mm<time-of-day> am|pm", -3.4231762883809305),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -3.828641396489095),+                                    ("at <time-of-day><time-of-day> am|pm", -3.828641396489095),+                                    ("hourhour", -1.6314168191528755),+                                    ("from|since|after <time><integer> to|till|before <hour-of-day>",+                                     -3.828641396489095),+                                    ("hourminute", -3.828641396489095),+                                    ("minutehour", -1.5773495978825998),+                                    ("until <time><time-of-day> am|pm", -3.4231762883809305),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -2.575878427993727),+                                    ("at <time-of-day>time-of-day (latent)", -3.4231762883809305),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -3.4231762883809305)],+                               n = 36}}),+       ("military spelled out numbers am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("winter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> after <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+                                     -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.42121346507630353,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5455312716044354),+                                    ("Marchinteger (numeric)", -2.833213344056216),+                                    ("Aprilinteger (numeric)", -3.2386784521643803),+                                    ("month", -0.8407831793660099),+                                    ("Februaryinteger (numeric)", -1.9859154836690123),+                                    ("Septemberinteger (numeric)", -2.833213344056216),+                                    ("Octoberinteger (numeric)", -2.833213344056216),+                                    ("Julyinteger (numeric)", -2.1400661634962708)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.3353749158170367),+                                    ("Marchinteger (numeric)", -2.740840023925201),+                                    ("Aprilinteger (numeric)", -2.740840023925201),+                                    ("month", -0.9490805546971459),+                                    ("from|since|after <time>integer (numeric)",+                                     -2.3353749158170367),+                                    ("Julyinteger (numeric)", -1.6422277352570913)],+                               n = 11}}),+       ("President's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Diwali",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("last night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.2512917986064953),+                                    ("Wednesday", -2.2512917986064953),+                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+                                    ("Tuesday", -1.55814461804655)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},+                   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.916290731874155, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9924301646902063),+                                    ("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.9924301646902063),+                                    ("week (grain)intersect", -2.3978952727983707),+                                    ("week (grain)September", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.2335922215070942),+                                    ("day (grain)May", -2.2335922215070942),+                                    ("week (grain)year (latent)", -1.9459101490553135),+                                    ("weekmonth", -1.7227665977411035),+                                    ("week (grain)October", -2.2335922215070942),+                                    ("weekyear", -1.9459101490553135),+                                    ("week (grain)intersect", -2.2335922215070942)],+                               n = 9}}),+       ("Chhath",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vasant Panchami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(ordinal) <named-month> year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)April", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("daymonth", -2.1972245773362196),+                                    ("ordinal (digits)day (grain)May", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("weekyear", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Black Friday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Labor Day",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("week-end",+        Classifier{okData =+                     ClassData{prior = -1.5040773967762742,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.25131442828090605,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("Great Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maundy Thursday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("right now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("for <duration> from <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -1.5040773967762742),+                                    ("dayday", -1.0986122886681098),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.252762968495368),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -1.252762968495368)],+                               n = 1}}),+       ("compose by multiplication",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("between <time> and <time>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.832909122935104),+                                    ("hh:mmhh:mm", -0.832909122935104)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),+                                    ("minuteminute", -1.410986973710262),+                                    ("minutehour", -1.410986973710262),+                                    ("hh:mmintersect", -1.410986973710262)],+                               n = 18}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>integer (numeric)integer (numeric)",+                                     -2.740840023925201),+                                    ("from|since|after <time>ordinal (digits)ordinal (digits)",+                                     -2.740840023925201),+                                    ("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -2.3353749158170367),+                                    ("from|since|after <time>ordinal (digits)integer (numeric)",+                                     -2.740840023925201),+                                    ("month", -0.8690378470236094),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -2.3353749158170367)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\" for year",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("Labor Daythis|last|next <cycle>", -2.803360380906535),+                                    ("Administrative Professionals' Dayyear (latent)",+                                     -2.803360380906535),+                                    ("Black Fridaythis|last|next <cycle>", -2.803360380906535),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -2.3978952727983707),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -2.803360380906535),+                                    ("dayyear", -1.0116009116784799),+                                    ("Thanksgiving Daythis|last|next <cycle>", -2.803360380906535),+                                    ("Memorial Daythis|last|next <cycle>", -2.803360380906535),+                                    ("intersectyear (latent)", -2.803360380906535),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -2.3978952727983707)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("Fridaythis|last|next <cycle>", -1.8718021769015913),+                                    ("dayyear", -1.8718021769015913)],+                               n = 1}}),+       ("part of days",+        Classifier{okData =+                     ClassData{prior = -6.899287148695143e-2,+                               unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},+                   koData =+                     ClassData{prior = -2.70805020110221, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),        ("at the beginning|end of <week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.330733340286331,
Duckling/Ranking/Classifiers/EN_XX.hs view
@@ -60,2888 +60,3093 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("Thursday",         Classifier{okData =-                     ClassData{prior = -9.53101798043249e-2,-                               unseen = -3.4657359027997265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 30},-                   koData =-                     ClassData{prior = -2.3978952727983707,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("integer (numeric)",-        Classifier{okData =-                     ClassData{prior = -0.6231370149872965, unseen = -5.645446897643238,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 281},-                   koData =-                     ClassData{prior = -0.7684302409804936,-                               unseen = -5.5012582105447265,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 243}}),-       ("<duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.784189633918261,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),-                                    ("year", -2.662587827025453),-                                    ("<integer> <unit-of-duration>", -1.0531499145913523),-                                    ("a <unit-of-duration>", -2.662587827025453),-                                    ("month", -2.662587827025453),-                                    ("fortnight", -2.662587827025453)],-                               n = 18},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("year", -1.466337068793427),-                                    ("<integer> <unit-of-duration>", -1.1786549963416462),-                                    ("month", -1.8718021769015913)],-                               n = 3}}),-       ("noon|midnight|EOD|end of day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter to|till|before <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.6739764335716716),-                                    ("dayday", -1.1631508098056809),-                                    ("day (grain)yesterday", -1.6739764335716716)],-                               n = 4},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.6739764335716716),-                                    ("year (grain)Christmas", -2.0794415416798357),-                                    ("dayday", -2.0794415416798357),-                                    ("day (grain)intersect", -1.6739764335716716),-                                    ("day (grain)Easter Sunday", -2.0794415416798357),-                                    ("yearday", -2.0794415416798357)],-                               n = 4}}),-       ("Easter Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Navaratri",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Martin Luther King's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("integer (20..90)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Shemini Atzeret",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ramadan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lazarus Saturday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect 2 numbers",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("compose by multiplicationinteger (0..19)",-                                     -0.2231435513142097)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],-                               n = 3}}),-       ("mm/yyyy",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("integer after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.8109302162163288),-                                    ("integer (numeric)time-of-day (latent)", -1.0986122886681098),-                                    ("integer (20..90)time-of-day (latent)", -1.5040773967762742)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom HaShoah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal or number) <named-month>",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)December", -2.1400661634962708),-                                    ("ordinal (digits)February", -2.1400661634962708),-                                    ("integer (numeric)April", -2.1400661634962708),-                                    ("month", -1.4469189829363254)],-                               n = 3},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.4011973816621555,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)October", -2.6741486494265287),-                                    ("ordinal (digits)July", -2.6741486494265287),-                                    ("integer (numeric)September", -2.268683541318364),-                                    ("ordinal (digits)August", -2.6741486494265287),-                                    ("integer (numeric)August", -2.6741486494265287),-                                    ("ordinal (digits)April", -2.6741486494265287),-                                    ("month", -1.0647107369924282),-                                    ("integer (numeric)July", -2.268683541318364)],-                               n = 9}}),-       ("<time> <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -9.237332013101517e-2,-                               unseen = -4.48863636973214,-                               likelihoods =-                                 HashMap.fromList-                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("dayhour", -1.4816045409242156),-                                    ("Mondayearly morning", -3.378724525810097),-                                    ("time-of-day (latent)tonight", -3.378724525810097),-                                    ("hourhour", -2.3978952727983707),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("todaypart of days", -3.784189633918261),-                                    ("minutehour", -2.6855773452501515),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -3.378724525810097),-                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),-                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),-                                    ("intersectpart of days", -3.784189633918261),-                                    ("intersectin|during the <part-of-day>", -3.784189633918261),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("tomorrowpart of days", -2.3978952727983707),-                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("hhmm (latent)in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("yesterdaypart of days", -3.378724525810097),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -3.784189633918261),-                                    ("Mondaypart of days", -3.784189633918261)],-                               n = 31},-                   koData =-                     ClassData{prior = -2.4277482359480516,-                               unseen = -3.4965075614664802,-                               likelihoods =-                                 HashMap.fromList-                                   [("yearhour", -2.772588722239781),-                                    ("monthhour", -2.772588722239781),-                                    ("hourhour", -2.772588722239781),-                                    ("year (latent)in|during the <part-of-day>",-                                     -2.772588722239781),-                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),-                                    ("time-of-day (latent)in|during the <part-of-day>",-                                     -2.772588722239781)],-                               n = 3}}),-       ("today",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("mm/dd",-        Classifier{okData =-                     ClassData{prior = -1.2729656758128873,-                               unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},-                   koData =-                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),-       ("at <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.961215868968717e-2,-                               unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time> timezone", -3.8430301339411947),-                                    ("noon|midnight|EOD|end of day", -3.8430301339411947),-                                    ("integer after|past <hour-of-day>", -3.8430301339411947),-                                    ("half after|past <hour-of-day>", -4.248495242049359),-                                    ("time-of-day (latent)", -1.6835458845878222),-                                    ("hhmm (latent)", -3.5553480614894135),-                                    ("<time-of-day> am|pm", -1.8061482066801546),-                                    ("hh:mm", -3.332204510175204),-                                    ("about|exactly <time-of-day>", -3.8430301339411947),-                                    ("hour", -1.0704414117014134),-                                    ("<time-of-day> sharp|exactly", -4.248495242049359),-                                    ("minute", -2.05127066471314)],-                               n = 64},-                   koData =-                     ClassData{prior = -2.456735772821304, unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -1.2321436812926323),-                                    ("hour", -1.2321436812926323)],-                               n = 6}}),-       ("December",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("absorption of , after named day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("on <date>", -2.1972245773362196),-                                    ("Wednesday", -2.6026896854443837),-                                    ("Saturday", -2.6026896854443837),-                                    ("Monday", -2.1972245773362196),-                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),-                                    ("Sunday", -2.6026896854443837)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("September",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("tonight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|past|next <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.2626798770413155,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.456735772821304), ("second", -2.639057329615259),-                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),-                                    ("<integer> <unit-of-duration>", -0.7827593392496325),-                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),-                                    ("minute", -2.639057329615259)],-                               n = 31},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the ides of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("on <date>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -4.204692619390966,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -1.4816045409242156),-                                    ("mm/dd", -3.4965075614664802),-                                    ("absorption of , after named day", -3.0910424533583156),-                                    ("intersect", -3.0910424533583156),-                                    ("Saturday", -2.803360380906535),-                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),-                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.803360380906535),-                                    ("hour", -3.4965075614664802)],-                               n = 28},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -1.791759469228055)],-                               n = 4}}),-       ("integer (0..19)",-        Classifier{okData =-                     ClassData{prior = -0.11122563511022437,-                               unseen = -3.970291913552122,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},-                   koData =-                     ClassData{prior = -2.2512917986064953,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),-       ("between <time-of-day> and <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.7884573603642702),-                                    ("hh:mmhh:mm", -0.7884573603642702)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),-                                    ("minutehour", -0.7884573603642702)],-                               n = 9}}),-       ("Halloween",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Passover",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -1.6094379124341003),-                                    ("month", -0.916290731874155),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("October",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from|since|after <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("July", -3.332204510175204),-                                    ("time-of-day (latent)", -2.4159137783010487),-                                    ("<time-of-day> am|pm", -2.4159137783010487),-                                    ("hh:mm", -2.4159137783010487), ("hour", -1.8281271133989299),-                                    ("month", -2.9267394020670396), ("minute", -2.4159137783010487),-                                    ("August", -3.332204510175204)],-                               n = 14},-                   koData =-                     ClassData{prior = -0.2231435513142097, unseen = -4.948759890378168,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.8430301339411947),-                                    ("week", -4.248495242049359),-                                    ("<day-of-month> (ordinal or number) <named-month>",-                                     -4.248495242049359),-                                    ("today", -4.248495242049359),-                                    ("intersect", -2.3766930651477676),-                                    ("second", -4.248495242049359), ("now", -3.332204510175204),-                                    ("tomorrow", -3.8430301339411947),-                                    ("this|last|next <cycle>", -4.248495242049359),-                                    ("day", -1.8971199848858813),-                                    ("time-of-day (latent)", -4.248495242049359),-                                    ("<time-of-day> am|pm", -3.8430301339411947),-                                    ("nograin", -3.332204510175204),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -4.248495242049359),-                                    ("Easter Sunday", -4.248495242049359),-                                    ("Christmas", -3.5553480614894135),-                                    ("hour", -2.995732273553991), ("month", -4.248495242049359),-                                    ("<datetime> - <datetime> (interval)", -2.8622008809294686),-                                    ("<time-of-day> - <time-of-day> (interval)",-                                     -2.5437471498109336),-                                    ("<named-month> <day-of-month> (non ordinal)",-                                     -3.8430301339411947),-                                    ("minute", -1.7635885922613588),-                                    ("right now", -4.248495242049359),-                                    ("<month> dd-dd (interval)", -3.5553480614894135),-                                    ("dd-dd <month> (interval)", -3.8430301339411947)],-                               n = 56}}),-       ("month (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> more <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)minute (grain)", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> o'clock",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in|within|after <duration>",-        Classifier{okData =-                     ClassData{prior = -0.17062551703076334,-                               unseen = -4.653960350157523,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -3.258096538021482),-                                    ("<integer> more <unit-of-duration>", -3.951243718581427),-                                    ("three-quarters of an hour", -3.0349529867072724),-                                    ("<integer> + '\"", -3.258096538021482),-                                    ("number.number hours", -3.951243718581427),-                                    ("second", -3.545778610473263), ("day", -3.258096538021482),-                                    ("half an hour", -3.0349529867072724),-                                    ("year", -3.951243718581427),-                                    ("<integer> <unit-of-duration>", -1.5998684614179497),-                                    ("a <unit-of-duration>", -3.0349529867072724),-                                    ("quarter of an hour", -3.0349529867072724),-                                    ("hour", -2.5649493574615367),-                                    ("about|exactly <duration>", -3.951243718581427),-                                    ("<integer> and an half hour", -3.951243718581427),-                                    ("minute", -1.3121863889661687)],-                               n = 43},-                   koData =-                     ClassData{prior = -1.8523840910444898,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -2.4277482359480516), ("year", -1.7346010553881064),-                                    ("<integer> <unit-of-duration>", -1.7346010553881064),-                                    ("a <unit-of-duration>", -2.1400661634962708),-                                    ("month", -2.833213344056216)],-                               n = 8}}),-       ("January",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("three-quarters of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Mattu Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Wednesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> + '\"",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half <integer> (UK style hour-of-day)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("July",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hour (grain)",-        Classifier{okData =-                     ClassData{prior = -0.8209805520698302,-                               unseen = -2.5649493574615367,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 11},-                   koData =-                     ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),-       ("Shavuot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> <duration> hence|ago",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.3862943611198906),-                                    ("Thanksgiving Day<integer> <unit-of-duration>",-                                     -1.0986122886681098),-                                    ("dayyear", -1.3862943611198906),-                                    ("Diwali<integer> <unit-of-duration>", -1.791759469228055)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),-                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",-                                     -1.466337068793427),-                                    ("quarter", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),-                                    ("quarter", -0.8109302162163288)],-                               n = 3}}),-       ("Boss's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Orthodox Easter Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("one twenty two",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect",-        Classifier{okData =-                     ClassData{prior = -0.459704877045161, unseen = -6.704414354964107,-                               likelihoods =-                                 HashMap.fromList-                                   [("Navaratriyear (latent)", -6.010040932680917),-                                    ("Ramadanyear (latent)", -6.010040932680917),-                                    ("<datetime> - <datetime> (interval)on <date>",-                                     -4.757277964185549),-                                    ("Bhai Doojyear (latent)", -6.010040932680917),-                                    ("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -4.757277964185549),-                                    ("hourday", -4.305292840442492),-                                    ("dayhour", -3.092270200596638),-                                    ("Martin Luther King's Dayyear (latent)", -5.604575824572753),-                                    ("Shemini Atzeretyear (latent)", -6.010040932680917),-                                    ("daymonth", -5.316893752120972),-                                    ("monthday", -5.604575824572753),-                                    ("monthyear", -4.400603020246817),-                                    ("Yom Ha'atzmautyear (latent)", -6.010040932680917),-                                    ("Vijayadashamiyear (latent)", -6.010040932680917),-                                    ("Thanksgiving Dayyear (latent)", -4.911428644012807),-                                    ("Thai Pongalyear (latent)", -5.316893752120972),-                                    ("Thiru Onamyear (latent)", -5.316893752120972),-                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.010040932680917),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -6.010040932680917),-                                    ("houryear", -5.316893752120972),-                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",-                                     -6.010040932680917),-                                    ("Christmas<time-of-day> am|pm", -6.010040932680917),-                                    ("last <day-of-week> of <time>year (latent)",-                                     -6.010040932680917),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.316893752120972),-                                    ("<time-of-day> am|pmintersect", -4.757277964185549),-                                    ("Octoberyear (latent)", -4.757277964185549),-                                    ("intersect<time-of-day> am|pm", -6.010040932680917),-                                    ("Mattu Pongalyear (latent)", -6.010040932680917),-                                    ("Shavuotyear (latent)", -6.010040932680917),-                                    ("Dhanterasin <named-month>|year", -6.010040932680917),-                                    ("at <time-of-day>in|within|after <duration>",-                                     -6.010040932680917),-                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.010040932680917),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -5.604575824572753),-                                    ("Marchyear (latent)", -6.010040932680917),-                                    ("Sukkotyear (latent)", -5.604575824572753),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -6.010040932680917),-                                    ("Clean Mondayyear (latent)", -5.604575824572753),-                                    ("monthhour", -5.604575824572753),-                                    ("todayat <time-of-day>", -6.010040932680917),-                                    ("Thursday<time> timezone", -4.305292840442492),-                                    ("this <time>hh(:mm) - <time-of-day> am|pm",-                                     -6.010040932680917),-                                    ("Palm SundaySunday", -5.604575824572753),-                                    ("dayday", -3.812816355344698),-                                    ("<time> <part-of-day>at <time-of-day>", -6.010040932680917),-                                    ("mm/ddat <time-of-day>", -6.010040932680917),-                                    ("tonightat <time-of-day>", -6.010040932680917),-                                    ("<time-of-day> am|pmabsorption of , after named day",-                                     -5.316893752120972),-                                    ("today<time-of-day> am|pm", -6.010040932680917),-                                    ("Februarythe <day-of-month> (ordinal)", -5.604575824572753),-                                    ("at <time-of-day><time> <part-of-day>", -6.010040932680917),-                                    ("mm/dd<time-of-day> am|pm", -6.010040932680917),-                                    ("hourhour", -4.757277964185549),-                                    ("<time-of-day> am|pmon <date>", -3.9951379121386528),-                                    ("Wednesdaythis|last|next <cycle>", -6.010040932680917),-                                    ("Lentyear (latent)", -6.010040932680917),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -4.505963535904644),-                                    ("Boghiyear (latent)", -6.010040932680917),-                                    ("dayyear", -2.011840231011719),-                                    ("<time-of-day> o'clockin|during the <part-of-day>",-                                     -6.010040932680917),-                                    ("Thursdayat <time-of-day>", -5.604575824572753),-                                    ("Islamic New Yearyear (latent)", -5.604575824572753),-                                    ("Laylat al-Qadryear (latent)", -5.093750200806762),-                                    ("Chhathin <named-month>|year", -6.010040932680917),-                                    ("Vasant Panchamiin <named-month>|year", -6.010040932680917),-                                    ("Diwaliin <named-month>|year", -6.010040932680917),-                                    ("Shrove Tuesdayyear (latent)", -6.010040932680917),-                                    ("<time-of-day> am|pmtomorrow", -5.316893752120972),-                                    ("Yom Kippuryear (latent)", -6.010040932680917),-                                    ("<part-of-day> of <time>year (latent)", -6.010040932680917),-                                    ("minutehour", -5.093750200806762),-                                    ("Kaanum Pongalyear (latent)", -5.604575824572753),-                                    ("Maha Saptamiyear (latent)", -6.010040932680917),-                                    ("at <time-of-day>in|during the <part-of-day>",-                                     -5.604575824572753),-                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",-                                     -4.305292840442492),-                                    ("for <duration> from <time>December", -6.010040932680917),-                                    ("tomorrow<time-of-day> sharp|exactly", -6.010040932680917),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.093750200806762),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -5.604575824572753),-                                    ("Pentecostyear (latent)", -6.010040932680917),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.093750200806762),-                                    ("Eid al-Fitryear (latent)", -6.010040932680917),-                                    ("Mondayin|during the <part-of-day>", -6.010040932680917),-                                    ("Raksha Bandhanyear (latent)", -6.010040932680917),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.604575824572753),-                                    ("Navaratriin <named-month>|year", -6.010040932680917),-                                    ("Ashurayear (latent)", -6.010040932680917),-                                    ("Chinese New Yearyear (latent)", -6.010040932680917),-                                    ("Sundayyear (latent)", -6.010040932680917),-                                    ("Lag BaOmeryear (latent)", -6.010040932680917),-                                    ("last weekend of <named-month>year (latent)",-                                     -6.010040932680917),-                                    ("Eid al-Adhayear (latent)", -5.093750200806762),-                                    ("intersectin|during the <part-of-day>", -6.010040932680917),-                                    ("Christmasat <time-of-day>", -6.010040932680917),-                                    ("Passoveryear (latent)", -6.010040932680917),-                                    ("Lazarus Saturdayyear (latent)", -6.010040932680917),-                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",-                                     -6.010040932680917),-                                    ("Yom HaShoahyear (latent)", -5.604575824572753),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -5.093750200806762),-                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",-                                     -6.010040932680917),-                                    ("Thai Pongalin <named-month>|year", -6.010040932680917),-                                    ("Septemberyear (latent)", -5.604575824572753),-                                    ("mm/ddyear (latent)", -6.010040932680917),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -4.757277964185549),-                                    ("Halloweenyear (latent)", -6.010040932680917),-                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.316893752120972),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -5.093750200806762),-                                    ("at <time-of-day>intersect", -5.604575824572753),-                                    ("Rosh Hashanahyear (latent)", -6.010040932680917),-                                    ("Dhanterasyear (latent)", -6.010040932680917),-                                    ("Tu BiShvatyear (latent)", -6.010040932680917),-                                    ("Holiyear (latent)", -5.316893752120972),-                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",-                                     -6.010040932680917),-                                    ("Holika Dahanyear (latent)", -5.316893752120972),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.010040932680917),-                                    ("dayminute", -3.3709836030656586),-                                    ("Mawlidyear (latent)", -6.010040932680917),-                                    ("from <datetime> - <datetime> (interval)on <date>",-                                     -5.604575824572753),-                                    ("<datetime> - <datetime> (interval)tomorrow",-                                     -6.010040932680917),-                                    ("Jumu'atul-Widayear (latent)", -5.093750200806762),-                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -6.010040932680917),-                                    ("minuteday", -2.3724547729545318),-                                    ("absorption of , after named dayintersect",-                                     -6.010040932680917),-                                    ("intersectyear (latent)", -6.010040932680917),-                                    ("Orthodox Easter Sundayyear (latent)", -6.010040932680917),-                                    ("<ordinal> <cycle> of <time>year (latent)",-                                     -6.010040932680917),-                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",-                                     -6.010040932680917),-                                    ("Boss's Dayyear (latent)", -5.604575824572753),-                                    ("Tisha B'Avyear (latent)", -6.010040932680917),-                                    ("Isra and Mi'rajyear (latent)", -5.093750200806762),-                                    ("at <time-of-day>absorption of , after named day",-                                     -6.010040932680917),-                                    ("Christmasyear (latent)", -5.604575824572753),-                                    ("Naraka Chaturdashiyear (latent)", -5.604575824572753),-                                    ("at <time-of-day>on <date>", -4.911428644012807),-                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",-                                     -4.400603020246817),-                                    ("dayweek", -6.010040932680917),-                                    ("Easter Sundayyear (latent)", -5.316893752120972),-                                    ("Thursday<time-of-day> am|pm", -6.010040932680917),-                                    ("weekyear", -5.604575824572753),-                                    ("hh:mmin|during the <part-of-day>", -5.316893752120972),-                                    ("<cycle> after|before <time><time-of-day> am|pm",-                                     -5.604575824572753),-                                    ("Hanukkahyear (latent)", -6.010040932680917),-                                    ("February<time> <part-of-day>", -6.010040932680917),-                                    ("Tuesdayin <named-month>|year", -6.010040932680917),-                                    ("Great Lentyear (latent)", -6.010040932680917),-                                    ("tomorrowat <time-of-day>", -5.316893752120972),-                                    ("between <time> and <time>on <date>", -4.400603020246817),-                                    ("Thursdayfrom|since|after <time-of-day>", -5.316893752120972),-                                    ("last <cycle> of <time>year (latent)", -5.316893752120972),-                                    ("at <time-of-day>tomorrow", -5.604575824572753),-                                    ("tomorrow<time-of-day> am|pm", -6.010040932680917),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -6.010040932680917),-                                    ("Diwaliyear (latent)", -6.010040932680917),-                                    ("Black Fridayyear (latent)", -5.604575824572753),-                                    ("in|during the <part-of-day>at <time-of-day>",-                                     -6.010040932680917),-                                    ("Chhathyear (latent)", -5.604575824572753),-                                    ("Vasant Panchamiyear (latent)", -6.010040932680917),-                                    ("Palm Sundayintersect", -6.010040932680917),-                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",-                                     -6.010040932680917),-                                    ("Februaryintersect", -6.010040932680917),-                                    ("Simchat Torahyear (latent)", -6.010040932680917)],-                               n = 305},-                   koData =-                     ClassData{prior = -0.9982331033604875, unseen = -6.331501849893691,-                               likelihoods =-                                 HashMap.fromList-                                   [("<time-of-day> - <time-of-day> (interval)on <date>",-                                     -5.636573724962751),-                                    ("hourday", -5.636573724962751),-                                    ("<named-month> <day-of-month> (non ordinal)July",-                                     -5.636573724962751),-                                    ("dayhour", -3.1942266895935467),-                                    ("daymonth", -3.5571321832829152),-                                    ("monthday", -5.231108616854587),-                                    ("monthyear", -4.383810756467383),-                                    ("<time-of-day> am|pmyear (latent)", -5.231108616854587),-                                    ("Thai Pongalyear (latent)", -4.943426544402806),-                                    ("intersecthh:mm", -5.636573724962751),-                                    ("from <datetime> - <datetime> (interval)July",-                                     -5.636573724962751),-                                    ("houryear", -4.720282993088596),-                                    ("from <time-of-day> - <time-of-day> (interval)July",-                                     -5.636573724962751),-                                    ("until <time-of-day><time-of-day> am|pm", -5.636573724962751),-                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.943426544402806),-                                    ("<time-of-day> am|pmintersect", -4.383810756467383),-                                    ("Octoberyear (latent)", -5.636573724962751),-                                    ("from|since|after <time-of-day>year (latent)",-                                     -4.383810756467383),-                                    ("from|since|after <time-of-day>on <date>", -4.720282993088596),-                                    ("July<day-of-month> (ordinal or number) <named-month>",-                                     -5.636573724962751),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -4.383810756467383),-                                    ("about|exactly <time-of-day>year (latent)",-                                     -5.636573724962751),-                                    ("absorption of , after named dayJuly", -5.231108616854587),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.720282993088596),-                                    ("Clean Mondayyear (latent)", -5.636573724962751),-                                    ("monthhour", -5.636573724962751),-                                    ("hourmonth", -4.943426544402806),-                                    ("todayat <time-of-day>", -5.636573724962751),-                                    ("from|since|after <time-of-day>July", -5.636573724962751),-                                    ("Mondayyear (latent)", -4.943426544402806),-                                    ("dayday", -5.231108616854587),-                                    ("mm/ddat <time-of-day>", -5.231108616854587),-                                    ("<time-of-day> am|pmon <date>", -4.383810756467383),-                                    ("dayyear", -2.66615925939305),-                                    ("Thursdaymm/dd", -5.636573724962751),-                                    ("New Year's Dayyear (latent)", -5.231108616854587),-                                    ("Thursdayat <time-of-day>", -4.383810756467383),-                                    ("<integer> to|till|before <hour-of-day>September",-                                     -5.636573724962751),-                                    ("Aprilyear (latent)", -5.636573724962751),-                                    ("monthminute", -5.636573724962751),-                                    ("<time-of-day> am|pmtomorrow", -5.636573724962751),-                                    ("Thursdayhh:mm", -4.720282993088596),-                                    ("August<day-of-month> (ordinal or number) <named-month>",-                                     -5.636573724962751),-                                    ("minutemonth", -3.844814255734696),-                                    ("Sundayfrom|since|after <time-of-day>", -5.636573724962751),-                                    ("week-endin <named-month>|year", -5.636573724962751),-                                    ("Augustyear (latent)", -5.231108616854587),-                                    ("Thursdayfrom <datetime> - <datetime> (interval)",-                                     -5.231108616854587),-                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.231108616854587),-                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",-                                     -5.231108616854587),-                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",-                                     -5.636573724962751),-                                    ("Sundayyear (latent)", -4.943426544402806),-                                    ("Christmasat <time-of-day>", -5.636573724962751),-                                    ("<duration> after|before|from <time>December",-                                     -5.636573724962751),-                                    ("yesterday<time-of-day> am|pm", -5.636573724962751),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -4.720282993088596),-                                    ("mm/ddyear (latent)", -5.636573724962751),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -5.231108616854587),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -5.636573724962751),-                                    ("until <time-of-day>on <date>", -4.943426544402806),-                                    ("at <time-of-day>intersect", -5.231108616854587),-                                    ("hh:mmyear (latent)", -4.537961436294641),-                                    ("Holiyear (latent)", -5.636573724962751),-                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",-                                     -5.636573724962751),-                                    ("dayminute", -3.1516670751747506),-                                    ("intersectSeptember", -4.132496328186477),-                                    ("minuteday", -2.568520789829134),-                                    ("absorption of , after named dayintersect",-                                     -5.636573724962751),-                                    ("Februaryin|during the <part-of-day>", -5.636573724962751),-                                    ("hh:mmon <date>", -3.6216707044204863),-                                    ("Saturdayyear (latent)", -5.636573724962751),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -5.636573724962751),-                                    ("absorption of , after named daySeptember",-                                     -4.720282993088596),-                                    ("Naraka Chaturdashiyear (latent)", -5.636573724962751),-                                    ("on <date>September", -5.231108616854587),-                                    ("at <time-of-day>on <date>", -5.231108616854587),-                                    ("in <named-month>|yearyear (latent)", -5.636573724962751),-                                    ("dayweek", -5.636573724962751),-                                    ("Easter Sundayyear (latent)", -5.231108616854587),-                                    ("Thursday<time-of-day> am|pm", -5.231108616854587),-                                    ("absorption of , after named dayFebruary", -4.720282993088596),-                                    ("July<integer> to|till|before <hour-of-day>",-                                     -5.636573724962751),-                                    ("tomorrowat <time-of-day>", -5.636573724962751),-                                    ("<integer> to|till|before <hour-of-day>July",-                                     -5.636573724962751),-                                    ("Thursdayfrom|since|after <time-of-day>", -4.027135812528651),-                                    ("tomorrow<time-of-day> am|pm", -5.636573724962751),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -4.943426544402806),-                                    ("Diwaliyear (latent)", -5.231108616854587),-                                    ("Tuesdayfrom|since|after <time-of-day>", -5.636573724962751),-                                    ("Fridayyear (latent)", -5.231108616854587),-                                    ("minuteyear", -4.383810756467383)],-                               n = 178}}),-       ("one eleven",-        Classifier{okData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("after lunch/work/school",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("early morning",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <number> (implicit minutes)",-        Classifier{okData =-                     ClassData{prior = -1.2685113254635072,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.3184537311185346),-                                    ("integer (0..19)", -1.2992829841302609)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.33024168687057687,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.1743533871447778),-                                    ("integer (0..19)", -1.8325814637483102)],-                               n = 23}}),-       ("<ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.791759469228055),-                                    ("ordinal (digits)quarter (grain)year (latent)",-                                     -2.1972245773362196),-                                    ("quarteryear", -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",-                                     -2.1972245773362196),-                                    ("ordinal (digits)day (grain)this|last|next <cycle>",-                                     -2.1972245773362196),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",-                                     -2.1972245773362196),-                                    ("weekmonth", -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",-                                     -2.1972245773362196)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -1.0116009116784799,-                               unseen = -3.6375861597263857,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -2.001480000210124),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("hh:mmhh:mm", -2.001480000210124),-                                    ("dayday", -2.512305623976115),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",-                                     -2.917770732084279),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),-                                    ("hourhour", -2.512305623976115),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.45198512374305727,-                               unseen = -3.912023005428146,-                               likelihoods =-                                 HashMap.fromList-                                   [("hourday", -3.1986731175506815),-                                    ("dayhour", -2.793208009442517),-                                    ("<day-of-month> (ordinal)time-of-day (latent)",-                                     -3.1986731175506815),-                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",-                                     -3.1986731175506815),-                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),-                                    ("minuteminute", -2.793208009442517),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.793208009442517),-                                    ("dayday", -3.1986731175506815),-                                    ("hourhour", -2.505525936990736),-                                    ("dayyear", -3.1986731175506815),-                                    ("minutehour", -2.2823823856765264),-                                    ("hh:mmintersect", -2.793208009442517),-                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<time-of-day> am|pm",-                                     -3.1986731175506815),-                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",-                                     -3.1986731175506815),-                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",-                                     -3.1986731175506815)],-                               n = 14}}),-       ("Saturday",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.9459101490553135,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("the <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",-                                     -1.7346010553881064),-                                    ("weekmonth", -1.7346010553881064),-                                    ("week (grain)October", -1.7346010553881064),-                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",-                                     -1.7346010553881064),-                                    ("weekday", -1.2237754316221157)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("number.number hours",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.6094379124341003),-                                    ("hh:mmhh:mm", -1.6094379124341003),-                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),-                                    ("hourhour", -2.3025850929940455),-                                    ("hourminute", -2.3025850929940455),-                                    ("time-of-day (latent)<time-of-day> sharp|exactly",-                                     -2.70805020110221),-                                    ("time-of-day (latent)hh:mm", -2.70805020110221),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),-                                    ("time-of-day (latent)time-of-day (latent)",-                                     -2.0149030205422647),-                                    ("hourhour", -1.791759469228055),-                                    ("minutehour", -1.6094379124341003),-                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],-                               n = 9}}),-       ("integer 21..99",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),-                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],-                               n = 4}}),-       ("Tisha B'Av",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("yyyy-mm-dd",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("year (latent)",-        Classifier{okData =-                     ClassData{prior = -0.16454938704815686,-                               unseen = -4.852030263919617,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -4.839654086185021e-2),-                                    ("intersect 2 numbers", -3.457892725338701)],-                               n = 123},-                   koData =-                     ClassData{prior = -1.8856912890622586, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.3121863889661687),-                                    ("negative numbers", -0.6190392084062235),-                                    ("compose by multiplication", -1.8718021769015913)],-                               n = 22}}),-       ("mm/dd/yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Monday",-        Classifier{okData =-                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.2237754316221157,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("yesterday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<ordinal> quarter <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm:ss",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Hanukkah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<hour-of-day> <integer>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>integer (20..90)", -1.3862943611198906),-                                    ("hour", -0.9808292530117262),-                                    ("at <time-of-day>integer (numeric)", -1.3862943611198906)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>integer (numeric)",-                                     -1.0986122886681098),-                                    ("hour", -1.0986122886681098)],-                               n = 1}}),-       ("nth <time> of <time>",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.9808292530117262),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -2.0794415416798357),-                                    ("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",-                                     -1.6739764335716716),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",-                                     -1.6739764335716716)],-                               n = 5},-                   koData =-                     ClassData{prior = -0.9808292530117262,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -1.0986122886681098),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",-                                     -1.791759469228055),-                                    ("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",-                                     -1.3862943611198906)],-                               n = 3}}),-       ("Valentine's Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("April",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maha Saptami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week (grain)",-        Classifier{okData =-                     ClassData{prior = -4.0821994520255166e-2,-                               unseen = -4.304065093204169,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 72},-                   koData =-                     ClassData{prior = -3.2188758248682006,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("<part-of-day> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -2.3513752571634776),-                                    ("part of daysintersect", -2.3513752571634776),-                                    ("hourday", -0.9650808960435872),-                                    ("part of daysthe <day-of-month> (ordinal)",-                                     -2.3513752571634776),-                                    ("part of daysthe <day-of-month> (number)",-                                     -2.3513752571634776),-                                    ("part of daysthis <time>", -2.3513752571634776),-                                    ("part of daysChristmas", -1.9459101490553135)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("six thirty six a.m.",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -1.252762968495368),-                                    ("one twenty two", -0.8472978603872037),-                                    ("one eleven", -1.252762968495368)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Shrove Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("now",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("<day-of-month> (ordinal or number) of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.13353139262452263,-                               unseen = -3.0910424533583156,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.3513752571634776),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.3513752571634776),-                                    ("ordinal (digits)February", -2.3513752571634776),-                                    ("integer (numeric)February", -1.9459101490553135),-                                    ("month", -0.9650808960435872),-                                    ("ordinal (digits)March", -2.3513752571634776),-                                    ("integer (numeric)July", -2.3513752571634776)],-                               n = 7},-                   koData =-                     ClassData{prior = -2.0794415416798357,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.5040773967762742),-                                    ("month", -1.5040773967762742)],-                               n = 1}}),-       ("this <part-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.6931471805599453),-                                    ("part of days", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Kaanum Pongal",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Yom Kippur",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("powers of tens",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Friday",-        Classifier{okData =-                     ClassData{prior = -0.3677247801253174,-                               unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},-                   koData =-                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("in|during the <part-of-day>",-        Classifier{okData =-                     ClassData{prior = -8.701137698962981e-2,-                               unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("early morning", -2.5257286443082556),-                                    ("hour", -0.7339691750802004),-                                    ("part of days", -0.8209805520698302)],-                               n = 11},-                   koData =-                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour", -0.916290731874155),-                                    ("part of days", -0.916290731874155)],-                               n = 1}}),-       ("tomorrow",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh(:mm) - <time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|last|next <cycle>",-        Classifier{okData =-                     ClassData{prior = -7.598590697792199e-2,-                               unseen = -5.093750200806762,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.1173044216802621),-                                    ("month (grain)", -2.7850112422383386),-                                    ("year (grain)", -2.6026896854443837),-                                    ("week (grain)", -1.1173044216802621),-                                    ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),-                                    ("month", -2.7850112422383386),-                                    ("quarter (grain)", -3.4781584227982836)],-                               n = 76},-                   koData =-                     ClassData{prior = -2.6149597780361984,-                               unseen = -3.1354942159291497,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.4816045409242156),-                                    ("week (grain)", -1.4816045409242156),-                                    ("day", -1.9924301646902063),-                                    ("day (grain)", -1.9924301646902063)],-                               n = 6}}),-       ("Simchat Torah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Eve",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)year (latent)",-                                     -0.6931471805599453),-                                    ("quarteryear", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Raksha Bandhan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Ashura",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Palm Sunday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Eid al-Adha",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods =-                                 HashMap.fromList-                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),-                                    ("time-of-day (latent)", -1.9459101490553135),-                                    ("<time-of-day> am|pm", -1.9459101490553135),-                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),-                                    ("minute", -1.540445040947149)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("half an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2006706954621511,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinals (first..twentieth,thirtieth,...)",-                                     -1.7047480922384253),-                                    ("ordinal (digits)", -0.2006706954621511)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.7047480922384253,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],-                               n = 2}}),-       ("last weekend of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),-                                    ("month", -0.7731898882334817)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <day-of-month> (number)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lag BaOmer",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("fractional number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),-       ("Sunday",-        Classifier{okData =-                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Chinese New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("February",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.70805020110221,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("minute (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.833213344056216,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last|this|next <season>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <ordinal> quarter",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453,-                               unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),-                                    ("quarter", -0.6931471805599453)],-                               n = 1}}),-       ("time-of-day (latent)",-        Classifier{okData =-                     ClassData{prior = -0.5699145401359973, unseen = -4.290459441148391,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -0.11778303565638351),-                                    ("integer (0..19)", -2.330755969960742)],-                               n = 69},-                   koData =-                     ClassData{prior = -0.8337291311811348, unseen = -4.04305126783455,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -9.352605801082348e-2),-                                    ("integer (0..19)", -2.9267394020670396),-                                    ("integer 21..99", -3.332204510175204)],-                               n = 53}}),-       ("beginning of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("last <day-of-week> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -0.916290731874155),-                                    ("SundayMarch", -1.6094379124341003),-                                    ("MondayMarch", -1.6094379124341003),-                                    ("Sundayintersect", -1.6094379124341003)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.13036181786324358,-                               unseen = -5.204006687076795,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.5594397016505672),-                                    ("integer (0..19)year (grain)", -3.11905548958599),-                                    ("integer (numeric)day (grain)", -2.8006017584674554),-                                    ("integer (0..19)second (grain) ", -3.8122026701459353),-                                    ("integer (0..19)hour (grain)", -3.11905548958599),-                                    ("second", -3.4067375620377707),-                                    ("integer (numeric)second (grain) ", -4.099884742597716),-                                    ("integer (numeric)year (grain)", -3.11905548958599),-                                    ("day", -2.4904468301636156), ("year", -2.4904468301636156),-                                    ("integer (numeric)week (grain)", -3.11905548958599),-                                    ("integer (0..19)month (grain)", -3.5890591188317256),-                                    ("hour", -2.7135903814778253), ("month", -2.89591193827178),-                                    ("integer (numeric)minute (grain)", -3.2525868822105126),-                                    ("integer (0..19)minute (grain)", -3.11905548958599),-                                    ("integer (numeric)month (grain)", -3.4067375620377707),-                                    ("minute", -2.5594397016505672),-                                    ("integer (numeric)hour (grain)", -3.5890591188317256),-                                    ("integer (0..19)day (grain)", -3.5890591188317256),-                                    ("integer (0..19)week (grain)", -3.2525868822105126)],-                               n = 79},-                   koData =-                     ClassData{prior = -2.1019143975318944, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),-                                    ("integer (numeric)hour (grain)", -1.4087672169719492),-                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],-                               n = 11}}),-       ("hhmm (latent)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> am|pm",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -5.342334251964811,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer after|past <hour-of-day>", -3.951243718581427),-                                    ("at <time-of-day>", -2.202043863772168),-                                    ("from|since|after <time-of-day>", -3.7281001672672174),-                                    ("<time-of-day> o'clock", -4.238925791033208),-                                    ("half after|past <hour-of-day>", -4.238925791033208),-                                    ("time-of-day (latent)", -1.7266201670570935),-                                    ("hhmm (latent)", -4.6443908991413725),-                                    ("hh:mm", -2.293015641977895),-                                    ("quarter after|past <hour-of-day>", -4.6443908991413725),-                                    ("about|exactly <time-of-day>", -4.6443908991413725),-                                    ("until <time-of-day>", -3.951243718581427),-                                    ("hour", -1.2104036946562264),-                                    ("<time-of-day> sharp|exactly", -4.6443908991413725),-                                    ("minute", -1.754019141245208)],-                               n = 96},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -4.394449154672439,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> to|till|before <hour-of-day>", -3.283414346005772),-                                    ("from|since|after <time-of-day>", -3.283414346005772),-                                    ("<hour-of-day> <integer>", -3.6888794541139363),-                                    ("time-of-day (latent)", -1.0498221244986778),-                                    ("hour", -1.0147308046874075), ("minute", -2.772588722239781)],-                               n = 32}}),-       ("Yom Ha'atzmaut",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),-                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),-                                    ("month", -0.8472978603872037)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thiru Onam",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thai Pongal",-        Classifier{okData =-                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -0.8472978603872037,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Vijayadashami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Thanksgiving Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of <named-month>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.1972245773362196,-                               likelihoods =-                                 HashMap.fromList-                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("a <unit-of-duration>",-        Classifier{okData =-                     ClassData{prior = -0.49247648509779407,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -2.1972245773362196),-                                    ("year (grain)", -2.1972245773362196),-                                    ("second", -2.890371757896165),-                                    ("week (grain)", -2.1972245773362196),-                                    ("day", -2.1972245773362196),-                                    ("minute (grain)", -2.890371757896165),-                                    ("year", -2.1972245773362196),-                                    ("second (grain) ", -2.890371757896165),-                                    ("minute", -2.890371757896165),-                                    ("day (grain)", -2.1972245773362196)],-                               n = 11},-                   koData =-                     ClassData{prior = -0.9444616088408514, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("hour (grain)", -1.7227665977411035),-                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),-                                    ("quarter (grain)", -1.9459101490553135)],-                               n = 7}}),-       ("at the beginning|end of <year>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.3978952727983707,-                               likelihoods =-                                 HashMap.fromList-                                   [("year (latent)", -0.6931471805599453),-                                    ("year", -0.6931471805599453)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Dhanteras",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Tu BiShvat",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Whit Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hh:mm",-        Classifier{okData =-                     ClassData{prior = -5.6352936551131744e-2,-                               unseen = -4.2626798770413155,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},-                   koData =-                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("Holi",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Rosh Hashanah",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Holika Dahan",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter of an hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("second (grain) ",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinals (first..twentieth,thirtieth,...)",-        Classifier{okData =-                     ClassData{prior = -6.899287148695143e-2,-                               unseen = -2.772588722239781,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 14},-                   koData =-                     ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("Mawlid",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Jumu'atul-Wida",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter after|past <hour-of-day>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -0.6931471805599453),-                                    ("hour", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("the <cycle> after|before <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)tomorrow", -1.252762968495368),-                                    ("dayday", -0.8472978603872037),-                                    ("day (grain)yesterday", -1.252762968495368)],-                               n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("about|exactly <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.15415067982725836,-                               unseen = -3.6109179126442243,-                               likelihoods =-                                 HashMap.fromList-                                   [("week", -1.791759469228055),-                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),-                                    ("this|last|next <cycle>", -1.791759469228055),-                                    ("day", -2.4849066497880004),-                                    ("time-of-day (latent)", -2.890371757896165),-                                    ("hhmm (latent)", -2.4849066497880004),-                                    ("<time-of-day> am|pm", -2.890371757896165),-                                    ("hour", -2.1972245773362196),-                                    ("next <time>", -2.890371757896165),-                                    ("this|next <day-of-week>", -2.890371757896165),-                                    ("minute", -2.4849066497880004)],-                               n = 12},-                   koData =-                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,-                               likelihoods =-                                 HashMap.fromList-                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),-                                    ("time-of-day (latent)", -2.0794415416798357),-                                    ("hour", -2.0794415416798357)],-                               n = 2}}),-       ("Sukkot",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day> in <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("daymonth", -2.3025850929940455),-                                    ("monthyear", -1.8971199848858813),-                                    ("Marcha <unit-of-duration>", -2.3025850929940455),-                                    ("March<integer> <unit-of-duration>", -2.3025850929940455),-                                    ("Thanksgiving Daya <unit-of-duration>", -2.3025850929940455),-                                    ("Thanksgiving Day<integer> <unit-of-duration>",-                                     -1.8971199848858813),-                                    ("Vijayadashami<integer> <unit-of-duration>",-                                     -2.3025850929940455),-                                    ("dayyear", -1.6094379124341003)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.1972245773362196,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("World Vegan Day",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("intersect by \",\", \"of\", \"from\", \"'s\"",-        Classifier{okData =-                     ClassData{prior = -0.4700036292457356, unseen = -5.081404364984463,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("dayhour", -3.1292636661785136),-                                    ("daymonth", -3.1292636661785136),-                                    ("<named-month> <day-of-month> (non ordinal)Friday",-                                     -4.382026634673881),-                                    ("Friday<named-month> <day-of-month> (non ordinal)",-                                     -3.6888794541139363),-                                    ("Wednesdayintersect", -4.382026634673881),-                                    ("Black Fridaythis|last|next <cycle>", -4.382026634673881),-                                    ("<part-of-day> of <time>February", -4.382026634673881),-                                    ("Saturday<time-of-day> am|pm", -4.382026634673881),-                                    ("Martin Luther King's Daythis|last|next <cycle>",-                                     -3.9765615265657175),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",-                                     -4.382026634673881),-                                    ("on <date><time-of-day> am|pm", -4.382026634673881),-                                    ("hourmonth", -4.382026634673881),-                                    ("dayday", -2.5102244577722903),-                                    ("the <day-of-month> (ordinal)February", -3.9765615265657175),-                                    ("WednesdayOctober", -4.382026634673881),-                                    ("Wednesdaythis|last|next <cycle>", -3.9765615265657175),-                                    ("intersect<named-month> <day-of-month> (non ordinal)",-                                     -3.4657359027997265),-                                    ("dayyear", -2.8779492378976075),-                                    ("Saturday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("Thursdayhh:mm", -3.9765615265657175),-                                    ("Thanksgiving Daythis|last|next <cycle>", -4.382026634673881),-                                    ("on <date><named-month> <day-of-month> (non ordinal)",-                                     -3.9765615265657175),-                                    ("TuesdayOctober", -4.382026634673881),-                                    ("the <day-of-month> (ordinal)March", -4.382026634673881),-                                    ("Mondaythis|last|next <cycle>", -4.382026634673881),-                                    ("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",-                                     -4.382026634673881),-                                    ("Fridayintersect", -4.382026634673881),-                                    ("Thursday<datetime> - <datetime> (interval)",-                                     -3.6888794541139363),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.4657359027997265),-                                    ("Tuesdaythis|last|next <cycle>", -4.382026634673881),-                                    ("Sunday<named-month> <day-of-month> (non ordinal)",-                                     -4.382026634673881),-                                    ("dayminute", -2.995732273553991),-                                    ("minuteday", -3.4657359027997265),-                                    ("this|last|next <cycle>Sunday", -4.382026634673881),-                                    ("intersectyear (latent)", -4.382026634673881),-                                    ("Sundaythis|last|next <cycle>", -4.382026634673881),-                                    ("weekday", -4.382026634673881),-                                    ("dayweek", -3.283414346005772),-                                    ("Thursday<time-of-day> am|pm", -4.382026634673881),-                                    ("Monday<named-month> <day-of-month> (non ordinal)",-                                     -3.9765615265657175),-                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",-                                     -3.9765615265657175)],-                               n = 50},-                   koData =-                     ClassData{prior = -0.9808292530117262, unseen = -4.795790545596741,-                               likelihoods =-                                 HashMap.fromList-                                   [("week-endJuly", -4.0943445622221),-                                    ("week-endOctober", -3.4011973816621555),-                                    ("daymonth", -1.8971199848858813),-                                    ("TuesdaySeptember", -4.0943445622221),-                                    ("Wednesdayintersect", -4.0943445622221),-                                    ("hourmonth", -2.995732273553991),-                                    ("Fridaythis|last|next <cycle>", -4.0943445622221),-                                    ("SundayFebruary", -4.0943445622221),-                                    ("WednesdayOctober", -4.0943445622221),-                                    ("week-endintersect", -4.0943445622221),-                                    ("dayyear", -4.0943445622221),-                                    ("FridayJuly", -3.6888794541139363),-                                    ("FridaySeptember", -4.0943445622221),-                                    ("WednesdayFebruary", -4.0943445622221),-                                    ("minutemonth", -3.1780538303479458),-                                    ("SundayMarch", -4.0943445622221),-                                    ("MondayFebruary", -3.6888794541139363),-                                    ("Fridayintersect", -4.0943445622221),-                                    ("Thursday<time-of-day> - <time-of-day> (interval)",-                                     -3.6888794541139363),-                                    ("dayminute", -3.4011973816621555),-                                    ("SaturdaySeptember", -4.0943445622221),-                                    ("intersectSeptember", -3.1780538303479458),-                                    ("MondayMarch", -4.0943445622221),-                                    ("on <date>September", -3.6888794541139363),-                                    ("Tuesdayintersect", -4.0943445622221),-                                    ("Sundayintersect", -4.0943445622221)],-                               n = 30}}),-       ("last <time>",-        Classifier{okData =-                     ClassData{prior = -0.6286086594223742, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("Martin Luther King's Day", -2.5649493574615367),-                                    ("day", -1.1786549963416462), ("Sunday", -2.5649493574615367),-                                    ("Chinese New Year", -2.159484249353372),-                                    ("Thanksgiving Day", -2.5649493574615367),-                                    ("Easter Sunday", -2.5649493574615367),-                                    ("hour", -2.5649493574615367), ("Tuesday", -2.5649493574615367),-                                    ("week-end", -2.5649493574615367)],-                               n = 8},-                   koData =-                     ClassData{prior = -0.7621400520468967,-                               unseen = -3.2188758248682006,-                               likelihoods =-                                 HashMap.fromList-                                   [("Monday", -2.4849066497880004), ("day", -2.0794415416798357),-                                    ("Sunday", -2.4849066497880004), ("hour", -1.3862943611198906),-                                    ("week-end", -1.3862943611198906)],-                               n = 7}}),-       ("March",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.044522437723423,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<named-month>|<named-day> <day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,-                               likelihoods =-                                 HashMap.fromList-                                   [("Octoberordinal (digits)", -2.120263536200091),-                                    ("Thursdayordinal (digits)", -2.5257286443082556),-                                    ("day", -2.120263536200091),-                                    ("Augustordinal (digits)", -2.5257286443082556),-                                    ("Marchordinals (first..twentieth,thirtieth,...)",-                                     -2.120263536200091),-                                    ("Tuesdayordinal (digits)", -2.5257286443082556),-                                    ("month", -1.2729656758128873),-                                    ("Marchordinal (digits)", -2.5257286443082556)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("from|since|after <time-of-day>ordinal (digits)",-                                     -1.8718021769015913),-                                    ("Augustordinal (digits)", -1.8718021769015913),-                                    ("month", -1.466337068793427)],-                               n = 2}}),-       ("Clean Monday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month> (ordinal)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Easter Sunday",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),-       ("Christmas",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("until <time-of-day>",-        Classifier{okData =-                     ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,-                               likelihoods =-                                 HashMap.fromList-                                   [("time-of-day (latent)", -2.3025850929940455),-                                    ("<time-of-day> am|pm", -1.6094379124341003),-                                    ("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),-                                    ("minute", -1.3862943611198906)],-                               n = 6},-                   koData =-                     ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersect", -1.7227665977411035),-                                    ("yesterday", -2.2335922215070942),-                                    ("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),-                                    ("hour", -2.639057329615259), ("minute", -1.252762968495368)],-                               n = 10}}),-       ("mm.dd.yyyy",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Isra and Mi'raj",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<duration> after|before|from <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.5553480614894135,-                               likelihoods =-                                 HashMap.fromList-                                   [("a <unit-of-duration>now", -2.833213344056216),-                                    ("a <unit-of-duration>Christmas", -2.833213344056216),-                                    ("dayday", -2.833213344056216),-                                    ("<integer> <unit-of-duration>today", -2.833213344056216),-                                    ("daysecond", -2.833213344056216),-                                    ("a <unit-of-duration>right now", -2.833213344056216),-                                    ("minutenograin", -2.833213344056216),-                                    ("<integer> <unit-of-duration>Christmas", -2.833213344056216),-                                    ("<integer> <unit-of-duration>Easter Sunday",-                                     -2.833213344056216),-                                    ("secondnograin", -2.833213344056216),-                                    ("yearday", -2.1400661634962708),-                                    ("daynograin", -2.833213344056216),-                                    ("<integer> <unit-of-duration>now", -2.4277482359480516)],-                               n = 8},-                   koData =-                     ClassData{prior = -1.0986122886681098, unseen = -3.295836866004329,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -2.5649493574615367),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -2.5649493574615367),-                                    ("monthnograin", -2.5649493574615367),-                                    ("dayday", -2.159484249353372),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -2.5649493574615367),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -2.5649493574615367),-                                    ("<integer> <unit-of-duration>now", -2.5649493574615367)],-                               n = 4}}),-       ("<day-of-month> (ordinal or number) of <month>",-        Classifier{okData =-                     ClassData{prior = -8.004270767353637e-2,-                               unseen = -3.5263605246161616,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)July", -2.803360380906535),-                                    ("ordinals (first..twentieth,thirtieth,...)March",-                                     -2.803360380906535),-                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),-                                    ("integer (numeric)this|last|next <cycle>",-                                     -2.3978952727983707),-                                    ("ordinal (digits)February", -2.803360380906535),-                                    ("integer (numeric)February", -2.3978952727983707),-                                    ("month", -0.9315582040049435),-                                    ("ordinal (digits)March", -2.803360380906535),-                                    ("integer (numeric)July", -2.803360380906535)],-                               n = 12},-                   koData =-                     ClassData{prior = -2.5649493574615367,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)February", -1.7047480922384253),-                                    ("month", -1.7047480922384253)],-                               n = 1}}),-       ("decimal number",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),-       ("Naraka Chaturdashi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("beginning of month",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("next <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods =-                                 HashMap.fromList-                                   [("Martin Luther King's Day", -2.70805020110221),-                                    ("Halloween", -2.70805020110221),-                                    ("Wednesday", -2.70805020110221),-                                    ("Boss's Day", -2.70805020110221),-                                    ("Monday", -2.70805020110221), ("day", -1.0986122886681098),-                                    ("Thanksgiving Day", -2.70805020110221),-                                    ("March", -2.70805020110221), ("month", -2.70805020110221),-                                    ("Tuesday", -2.0149030205422647)],-                               n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.3978952727983707,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time-of-day> sharp|exactly",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.890371757896165,-                               likelihoods =-                                 HashMap.fromList-                                   [("at <time-of-day>", -2.1400661634962708),-                                    ("time-of-day (latent)", -2.1400661634962708),-                                    ("hhmm (latent)", -2.1400661634962708),-                                    ("<time-of-day> am|pm", -2.1400661634962708),-                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),-                                    ("minute", -1.4469189829363254)],-                               n = 5},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("in <named-month>|year",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -2.4423470353692043),-                                    ("year (latent)", -1.0560526742493137),-                                    ("year", -1.0560526742493137), ("March", -2.4423470353692043),-                                    ("month", -2.03688192726104)],-                               n = 9},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -2.4849066497880004,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.2992829841302609),-                                    ("year (latent)", -1.7047480922384253),-                                    ("year", -1.7047480922384253), ("month", -1.2992829841302609)],-                               n = 3}}),-       ("Islamic New Year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("negative numbers",-        Classifier{okData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0},-                   koData =-                     ClassData{prior = 0.0, unseen = -3.332204510175204,-                               likelihoods =-                                 HashMap.fromList-                                   [("integer (numeric)", -7.696104113612832e-2),-                                    ("integer (0..19)", -2.6026896854443837)],-                               n = 25}}),-       ("about|exactly <duration>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("half an hour", -0.6931471805599453),-                                    ("minute", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<time> before last|after next",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods =-                                 HashMap.fromList-                                   [("Wednesday", -1.8718021769015913),-                                    ("Friday", -1.466337068793427), ("day", -1.1786549963416462),-                                    ("March", -1.8718021769015913), ("month", -1.8718021769015913)],-                               n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("by the end of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("this|last|next <cycle>", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("hhmm (military) am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<datetime> - <datetime> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,-                               likelihoods =-                                 HashMap.fromList-                                   [("intersecthh:mm", -3.1918471524802814),-                                    ("intersect<time-of-day> am|pm", -3.1918471524802814),-                                    ("minuteminute", -1.457246097092175),-                                    ("hh:mmhh:mm", -2.093234863812172),-                                    ("dayday", -3.1918471524802814),-                                    ("hourhour", -2.093234863812172),-                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",-                                     -3.1918471524802814),-                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.597312260588446),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.681021528714291),-                                    ("from|since|after <time-of-day>hh:mm", -2.681021528714291)],-                               n = 26},-                   koData =-                     ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,-                               likelihoods =-                                 HashMap.fromList-                                   [("<named-month> <day-of-month> (non ordinal)July",-                                     -3.1135153092103742),-                                    ("daymonth", -2.70805020110221),-                                    ("from|since|after <time-of-day>intersect", -2.70805020110221),-                                    ("<time-of-day> am|pmintersect", -3.1135153092103742),-                                    ("hh:mm<time-of-day> am|pm", -2.70805020110221),-                                    ("minuteminute", -1.8607523407150064),-                                    ("hourhour", -2.70805020110221),-                                    ("minutehour", -2.70805020110221),-                                    ("hh:mmintersect", -2.1972245773362196),-                                    ("<named-month> <day-of-month> (non ordinal)August",-                                     -3.1135153092103742),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.1135153092103742)],-                               n = 12}}),-       ("Tuesday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("New Year's Day",-        Classifier{okData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.3025850929940455,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),-       ("fortnight",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<integer> and an half hour",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Laylat al-Qadr",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Boghi",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("at the beginning|end of <named-month>",-        Classifier{okData =-                     ClassData{prior = -0.2231435513142097,-                               unseen = -2.5649493574615367,-                               likelihoods =-                                 HashMap.fromList-                                   [("January", -1.3862943611198906),-                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],-                               n = 4},-                   koData =-                     ClassData{prior = -1.6094379124341003,-                               unseen = -1.9459101490553135,-                               likelihoods =-                                 HashMap.fromList-                                   [("October", -1.0986122886681098),-                                    ("month", -1.0986122886681098)],-                               n = 1}}),-       ("<time-of-day> - <time-of-day> (interval)",-        Classifier{okData =-                     ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -1.529395204760564),-                                    ("hh:mmhh:mm", -1.8971199848858813),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -2.4849066497880004),-                                    ("hourhour", -1.6964492894237302),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -3.4011973816621555),-                                    ("from|since|after <time-of-day><time-of-day> am|pm",-                                     -3.4011973816621555),-                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.4849066497880004),-                                    ("from|since|after <time-of-day>hh:mm", -2.4849066497880004)],-                               n = 22},-                   koData =-                     ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,-                               likelihoods =-                                 HashMap.fromList-                                   [("about|exactly <time-of-day>time-of-day (latent)",-                                     -3.4657359027997265),-                                    ("hh:mmtime-of-day (latent)", -1.7609878105613013),-                                    ("hh:mm<time-of-day> am|pm", -3.0602707946915624),-                                    ("<time-of-day> am|pmtime-of-day (latent)",-                                     -3.4657359027997265),-                                    ("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),-                                    ("hourhour", -2.2129729343043585),-                                    ("minutehour", -1.2144441041932315),-                                    ("about|exactly <time-of-day><time-of-day> am|pm",-                                     -3.4657359027997265),-                                    ("from|since|after <time-of-day>time-of-day (latent)",-                                     -2.5494451709255714),-                                    ("at <time-of-day>time-of-day (latent)", -3.0602707946915624),-                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",-                                     -3.0602707946915624)],-                               n = 24}}),-       ("military spelled out numbers am|pm",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("winter",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("nth <time> after <time>",-        Classifier{okData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",-                                     -0.916290731874155)],-                               n = 1},-                   koData =-                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayday", -0.916290731874155),-                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",-                                     -0.916290731874155)],-                               n = 1}}),-       ("<named-month> <day-of-month> (non ordinal)",-        Classifier{okData =-                     ClassData{prior = -0.42121346507630353,-                               unseen = -3.951243718581427,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.5455312716044354),-                                    ("Marchinteger (numeric)", -2.833213344056216),-                                    ("Aprilinteger (numeric)", -3.2386784521643803),-                                    ("month", -0.8407831793660099),-                                    ("Februaryinteger (numeric)", -1.9859154836690123),-                                    ("Septemberinteger (numeric)", -2.833213344056216),-                                    ("Octoberinteger (numeric)", -2.833213344056216),-                                    ("Julyinteger (numeric)", -2.1400661634962708)],-                               n = 21},-                   koData =-                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Augustinteger (numeric)", -2.3353749158170367),-                                    ("Marchinteger (numeric)", -2.740840023925201),-                                    ("Aprilinteger (numeric)", -2.740840023925201),-                                    ("month", -0.9490805546971459),-                                    ("from|since|after <time-of-day>integer (numeric)",-                                     -2.3353749158170367),-                                    ("Julyinteger (numeric)", -1.6422277352570913)],-                               n = 11}}),-       ("Diwali",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809,-                               unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -1.3862943611198906,-                               unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),-       ("last night",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("this|next <day-of-week>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.995732273553991,-                               likelihoods =-                                 HashMap.fromList-                                   [("Thursday", -2.2512917986064953),-                                    ("Wednesday", -2.2512917986064953),-                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),-                                    ("Tuesday", -1.55814461804655)],-                               n = 7},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("ordinal (digits)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.6635616461296463,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 37},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("quarter (grain)",-        Classifier{okData =-                     ClassData{prior = -0.2876820724517809, unseen = -2.639057329615259,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},-                   koData =-                     ClassData{prior = -1.3862943611198906, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),-       ("last <cycle> of <time>",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.9444389791664407,-                               likelihoods =-                                 HashMap.fromList-                                   [("day (grain)October", -1.791759469228055),-                                    ("daymonth", -1.2809338454620642),-                                    ("day (grain)intersect", -1.791759469228055),-                                    ("weekmonth", -1.791759469228055),-                                    ("week (grain)intersect", -2.1972245773362196),-                                    ("week (grain)September", -2.1972245773362196)],-                               n = 6},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Chhath",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Vasant Panchami",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("<day-of-month>(ordinal) <named-month> year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList-                                   [("ordinal (digits)April", -0.6931471805599453),-                                    ("month", -0.6931471805599453)],-                               n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Black Friday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("week-end",-        Classifier{okData =-                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},-                   koData =-                     ClassData{prior = -0.3364722366212129,-                               unseen = -1.9459101490553135,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),-       ("Great Lent",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("Maundy Thursday",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("day (grain)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("right now",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("for <duration> from <time>",-        Classifier{okData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -2.3025850929940455,-                               likelihoods =-                                 HashMap.fromList-                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",-                                     -1.5040773967762742),-                                    ("dayday", -1.0986122886681098),-                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",-                                     -1.5040773967762742)],-                               n = 2},-                   koData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -2.0794415416798357,-                               likelihoods =-                                 HashMap.fromList-                                   [("dayhour", -1.252762968495368),-                                    ("<integer> <unit-of-duration>time-of-day (latent)",-                                     -1.252762968495368)],-                               n = 1}}),-       ("compose by multiplication",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.6094379124341003,-                               likelihoods =-                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],-                               n = 3},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("end of year",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -2.4849066497880004,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},-                   koData =-                     ClassData{prior = -infinity, unseen = -0.6931471805599453,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("between <time> and <time>",-        Classifier{okData =-                     ClassData{prior = -1.0986122886681098,-                               unseen = -3.1780538303479458,-                               likelihoods =-                                 HashMap.fromList-                                   [("minuteminute", -0.832909122935104),-                                    ("hh:mmhh:mm", -0.832909122935104)],-                               n = 9},-                   koData =-                     ClassData{prior = -0.40546510810816444,-                               unseen = -3.7376696182833684,-                               likelihoods =-                                 HashMap.fromList-                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),-                                    ("minuteminute", -1.410986973710262),-                                    ("minutehour", -1.410986973710262),-                                    ("hh:mmintersect", -1.410986973710262)],-                               n = 18}}),-       ("<month> dd-dd (interval)",-        Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4657359027997265,-                               likelihoods =-                                 HashMap.fromList-                                   [("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),-                                    ("from|since|after <time-of-day>ordinal (digits)ordinal (digits)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>integer (numeric)integer (numeric)",-                                     -2.740840023925201),-                                    ("from|since|after <time-of-day>ordinal (digits)integer (numeric)",-                                     -2.740840023925201),-                                    ("Augustordinal (digits)integer (numeric)",-                                     -2.3353749158170367),-                                    ("month", -0.8690378470236094),-                                    ("Augustordinal (digits)ordinal (digits)",-                                     -2.3353749158170367)],-                               n = 12},-                   koData =-                     ClassData{prior = -infinity, unseen = -2.0794415416798357,-                               likelihoods = HashMap.fromList [], n = 0}}),-       ("part of days",-        Classifier{okData =-                     ClassData{prior = -3.509131981127006e-2,-                               unseen = -3.4011973816621555,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},-                   koData =-                     ClassData{prior = -3.367295829986474, unseen = -1.0986122886681098,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+                     ClassData{prior = -8.961215868968717e-2,+                               unseen = -3.5263605246161616,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 32},+                   koData =+                     ClassData{prior = -2.456735772821304, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.5921203661592374, unseen = -5.733341276897745,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 307},+                   koData =+                     ClassData{prior = -0.8055393675814524, unseen = -5.521460917862246,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 248}}),+       ("<year> (bc|ad)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.784189633918261,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.563975538357343), ("day", -1.8152899666382492),+                                    ("year", -2.662587827025453),+                                    ("<integer> <unit-of-duration>", -1.0531499145913523),+                                    ("a <unit-of-duration>", -2.662587827025453),+                                    ("month", -2.662587827025453),+                                    ("fortnight", -2.662587827025453)],+                               n = 18},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("year", -1.466337068793427),+                                    ("<integer> <unit-of-duration>", -1.1786549963416462),+                                    ("month", -1.8718021769015913)],+                               n = 3}}),+       ("noon|midnight|EOD|end of day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter to|till|before <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.6739764335716716),+                                    ("dayday", -1.1631508098056809),+                                    ("day (grain)yesterday", -1.6739764335716716)],+                               n = 4},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.6739764335716716),+                                    ("year (grain)Christmas", -2.0794415416798357),+                                    ("dayday", -2.0794415416798357),+                                    ("day (grain)intersect", -1.6739764335716716),+                                    ("day (grain)Easter Sunday", -2.0794415416798357),+                                    ("yearday", -2.0794415416798357)],+                               n = 4}}),+       ("Easter Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Navaratri",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Martin Luther King's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (20..90)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Shemini Atzeret",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ramadan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lazarus Saturday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect 2 numbers",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("compose by multiplicationinteger (0..19)",+                                     -0.2231435513142097)],+                               n = 3},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("powers of tensinteger (0..19)", -0.2231435513142097)],+                               n = 3}}),+       ("mm/yyyy",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("from|since|after <time>",+        Classifier{okData =+                     ClassData{prior = -1.5522794985941517, unseen = -4.248495242049359,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal or number) <named-month>",+                                     -3.5409593240373143),+                                    ("July", -3.5409593240373143),+                                    ("year (latent)", -3.1354942159291497),+                                    ("day", -3.1354942159291497),+                                    ("time-of-day (latent)", -2.624668592163159),+                                    ("year", -3.1354942159291497),+                                    ("<time-of-day> am|pm", -2.624668592163159),+                                    ("hh:mm", -2.624668592163159),+                                    ("<day-of-month> (ordinal)", -3.5409593240373143),+                                    ("hour", -2.03688192726104), ("month", -3.1354942159291497),+                                    ("minute", -2.624668592163159),+                                    ("August", -3.5409593240373143)],+                               n = 18},+                   koData =+                     ClassData{prior = -0.23795863709935042,+                               unseen = -5.123963979403259,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -4.019381523748645),+                                    ("week", -4.42484663185681),+                                    ("<day-of-month> (ordinal or number) <named-month>",+                                     -4.42484663185681),+                                    ("today", -4.42484663185681),+                                    ("intersect", -2.5530444549552183),+                                    ("<time> for <duration>", -4.42484663185681),+                                    ("second", -4.42484663185681), ("now", -3.508555899982655),+                                    ("tomorrow", -4.019381523748645),+                                    ("this|last|next <cycle>", -4.42484663185681),+                                    ("day", -1.9399399820688095),+                                    ("time-of-day (latent)", -2.6330871626287546),+                                    ("<time-of-day> am|pm", -4.019381523748645),+                                    ("nograin", -3.508555899982655),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -4.42484663185681),+                                    ("<day-of-month> (ordinal)", -4.019381523748645),+                                    ("Easter Sunday", -4.42484663185681),+                                    ("Christmas", -3.7316994512968646),+                                    ("hour", -2.409943611314545), ("month", -4.42484663185681),+                                    ("<datetime> - <datetime> (interval)", -3.172083663361442),+                                    ("<time-of-day> - <time-of-day> (interval)",+                                     -2.920769235080536),+                                    ("<named-month> <day-of-month> (non ordinal)",+                                     -4.019381523748645),+                                    ("minute", -1.9399399820688095),+                                    ("right now", -4.42484663185681),+                                    ("<month> dd-dd (interval)", -3.7316994512968646),+                                    ("part of days", -4.42484663185681),+                                    ("dd-dd <month> (interval)", -4.019381523748645)],+                               n = 67}}),+       ("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}}),+       ("<ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.268683541318364),+                                    ("daymonth", -2.268683541318364),+                                    ("ordinal (digits)day (grain)May", -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.6741486494265287),+                                    ("weekmonth", -1.7578579175523736),+                                    ("ordinal (digits)week (grain)October", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)intersect", -2.6741486494265287),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.6741486494265287),+                                    ("weekyear", -1.9810014688665833),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.6741486494265287),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)May",+                                     -2.6741486494265287)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom HaShoah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal or number) <named-month>",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)December", -1.6582280766035324),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)April", -2.3513752571634776),+                                    ("month", -1.252762968495368)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.4418327522790392,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)October", -2.6741486494265287),+                                    ("ordinal (digits)July", -2.6741486494265287),+                                    ("integer (numeric)September", -2.268683541318364),+                                    ("ordinal (digits)August", -2.6741486494265287),+                                    ("integer (numeric)August", -2.6741486494265287),+                                    ("ordinal (digits)April", -2.6741486494265287),+                                    ("month", -1.0647107369924282),+                                    ("integer (numeric)July", -2.268683541318364)],+                               n = 9}}),+       ("<time> <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -9.237332013101517e-2,+                               unseen = -4.48863636973214,+                               likelihoods =+                                 HashMap.fromList+                                   [("<day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("dayhour", -1.4816045409242156),+                                    ("Mondayearly morning", -3.378724525810097),+                                    ("time-of-day (latent)tonight", -3.378724525810097),+                                    ("hourhour", -2.3978952727983707),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("todaypart of days", -3.784189633918261),+                                    ("minutehour", -2.6855773452501515),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -3.378724525810097),+                                    ("time-of-day (latent)this <part-of-day>", -3.784189633918261),+                                    ("Mondayin|during the <part-of-day>", -3.784189633918261),+                                    ("intersectpart of days", -3.784189633918261),+                                    ("intersectin|during the <part-of-day>", -3.784189633918261),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("tomorrowpart of days", -2.3978952727983707),+                                    ("hh:mmin|during the <part-of-day>", -3.0910424533583156),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("hhmm (latent)in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("yesterdaypart of days", -3.378724525810097),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -3.784189633918261),+                                    ("Mondaypart of days", -3.784189633918261)],+                               n = 31},+                   koData =+                     ClassData{prior = -2.4277482359480516,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearhour", -2.772588722239781),+                                    ("monthhour", -2.772588722239781),+                                    ("hourhour", -2.772588722239781),+                                    ("year (latent)in|during the <part-of-day>",+                                     -2.772588722239781),+                                    ("Februaryin|during the <part-of-day>", -2.772588722239781),+                                    ("time-of-day (latent)in|during the <part-of-day>",+                                     -2.772588722239781)],+                               n = 3}}),+       ("today",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm/dd",+        Classifier{okData =+                     ClassData{prior = -1.2729656758128873,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.3285040669720361, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.4557388028063e-2, unseen = -5.003946305945459,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> timezone", -3.898599985096005),+                                    ("noon|midnight|EOD|end of day", -3.898599985096005),+                                    ("integer after|past <hour-of-day>", -3.898599985096005),+                                    ("half after|past <hour-of-day>", -4.304065093204169),+                                    ("time-of-day (latent)", -1.6650077635889111),+                                    ("hhmm (latent)", -3.6109179126442243),+                                    ("<time-of-day> am|pm", -1.7783364488959144),+                                    ("hh:mm", -3.3877743613300146),+                                    ("about|exactly <time-of-day>", -3.898599985096005),+                                    ("hour", -1.0459685551826876),+                                    ("<time-of-day> sharp|exactly", -4.304065093204169),+                                    ("minute", -2.10684051586795)],+                               n = 68},+                   koData =+                     ClassData{prior = -2.512305623976115, unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.2321436812926323),+                                    ("hour", -1.2321436812926323)],+                               n = 6}}),+       ("December",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("on <date>", -2.1972245773362196),+                                    ("Wednesday", -2.6026896854443837),+                                    ("Saturday", -2.6026896854443837),+                                    ("Monday", -2.1972245773362196),+                                    ("Friday", -1.9095425048844386), ("day", -0.8979415932059586),+                                    ("Sunday", -2.6026896854443837)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("September",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("tonight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|past|next <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -4.2626798770413155,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.456735772821304), ("second", -2.639057329615259),+                                    ("day", -2.3025850929940455), ("year", -2.639057329615259),+                                    ("<integer> <unit-of-duration>", -0.7827593392496325),+                                    ("hour", -2.639057329615259), ("month", -2.639057329615259),+                                    ("minute", -2.639057329615259)],+                               n = 31},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the ides of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -1.4816045409242156),+                                    ("mm/dd", -3.4965075614664802),+                                    ("absorption of , after named day", -3.0910424533583156),+                                    ("intersect", -3.0910424533583156),+                                    ("Saturday", -2.803360380906535),+                                    ("Friday", -3.4965075614664802), ("day", -0.8574502318512216),+                                    ("the <day-of-month> (ordinal)", -3.0910424533583156),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.803360380906535),+                                    ("hour", -3.4965075614664802)],+                               n = 28},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.791759469228055), ("day", -1.2809338454620642),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -1.791759469228055)],+                               n = 4}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -0.11122563511022437,+                               unseen = -3.970291913552122,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 51},+                   koData =+                     ClassData{prior = -2.2512917986064953,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),+       ("between <time-of-day> and <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.7884573603642702),+                                    ("hh:mmhh:mm", -0.7884573603642702)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -0.7884573603642702),+                                    ("minutehour", -0.7884573603642702)],+                               n = 9}}),+       ("Halloween",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Passover",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -1.6094379124341003),+                                    ("month", -0.916290731874155),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("October",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("month (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 18},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> more <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)minute (grain)", -0.6931471805599453),+                                    ("minute", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> o'clock",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vesak",+        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}}),+       ("Earth 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}}),+       ("in|within|after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.16362942378180204,+                               unseen = -4.700480365792417,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.305053521109253),+                                    ("<integer> more <unit-of-duration>", -3.9982007016691985),+                                    ("three-quarters of an hour", -3.0819099697950434),+                                    ("<integer> + '\"", -3.305053521109253),+                                    ("number.number hours", -3.9982007016691985),+                                    ("second", -3.592735593561034),+                                    ("half a <time-grain>", -3.0819099697950434),+                                    ("day", -3.305053521109253), ("year", -3.9982007016691985),+                                    ("<integer> <unit-of-duration>", -1.6468254445057207),+                                    ("a <unit-of-duration>", -3.0819099697950434),+                                    ("quarter of an hour", -3.0819099697950434),+                                    ("hour", -2.6119063405493077),+                                    ("about|exactly <duration>", -3.9982007016691985),+                                    ("half an hour (abbrev).", -3.592735593561034),+                                    ("<integer> and an half hour", -3.9982007016691985),+                                    ("minute", -1.2901505005669882)],+                               n = 45},+                   koData =+                     ClassData{prior = -1.890850371872286, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -2.456735772821304), ("year", -1.7635885922613588),+                                    ("<integer> <unit-of-duration>", -1.7635885922613588),+                                    ("a <unit-of-duration>", -2.169053700369523),+                                    ("month", -2.8622008809294686)],+                               n = 8}}),+       ("January",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("three-quarters of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Mattu Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Wednesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> + '\"",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half <integer> (UK style hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("July",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hour (grain)",+        Classifier{okData =+                     ClassData{prior = -0.48550781578170077,+                               unseen = -2.890371757896165,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 16},+                   koData =+                     ClassData{prior = -0.9555114450274363,+                               unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10}}),+       ("Shavuot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> <duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.3862943611198906),+                                    ("Thanksgiving Day<integer> <unit-of-duration>",+                                     -1.0986122886681098),+                                    ("dayyear", -1.3862943611198906),+                                    ("Diwali<integer> <unit-of-duration>", -1.791759469228055)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -1.1786549963416462),+                                    ("ordinals (first..twentieth,thirtieth,...)quarter (grain)",+                                     -1.466337068793427),+                                    ("quarter", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.8109302162163288),+                                    ("quarter", -0.8109302162163288)],+                               n = 3}}),+       ("Boss's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Orthodox Easter Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("one twenty two",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("May",+        Classifier{okData =+                     ClassData{prior = 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.472396929151576, unseen = -6.734591659972948,+                               likelihoods =+                                 HashMap.fromList+                                   [("Navaratriyear (latent)", -6.040254711277414),+                                    ("Ramadanyear (latent)", -6.040254711277414),+                                    ("<datetime> - <datetime> (interval)on <date>",+                                     -4.787491742782046),+                                    ("Bhai Doojyear (latent)", -6.040254711277414),+                                    ("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.787491742782046),+                                    ("hourday", -4.335506619038989),+                                    ("dayhour", -3.236894330370879),+                                    ("Martin Luther King's Dayyear (latent)", -5.634789603169249),+                                    ("Shemini Atzeretyear (latent)", -6.040254711277414),+                                    ("daymonth", -5.123963979403259),+                                    ("monthday", -5.634789603169249),+                                    ("monthyear", -4.248495242049359),+                                    ("Yom Ha'atzmautyear (latent)", -6.040254711277414),+                                    ("Vijayadashamiyear (latent)", -6.040254711277414),+                                    ("Thanksgiving Dayyear (latent)", -4.941642422609305),+                                    ("Thai Pongalyear (latent)", -5.3471075307174685),+                                    ("Thiru Onamyear (latent)", -5.3471075307174685),+                                    ("Tuesdaythe <day-of-month> (ordinal)", -6.040254711277414),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -6.040254711277414),+                                    ("houryear", -5.3471075307174685),+                                    ("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",+                                     -6.040254711277414),+                                    ("Christmas<time-of-day> am|pm", -6.040254711277414),+                                    ("last <day-of-week> of <time>year (latent)",+                                     -6.040254711277414),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.3471075307174685),+                                    ("<time-of-day> am|pmintersect", -4.787491742782046),+                                    ("Earth Houryear (latent)", -6.040254711277414),+                                    ("Octoberyear (latent)", -4.53617731450114),+                                    ("intersect<time-of-day> am|pm", -6.040254711277414),+                                    ("Mattu Pongalyear (latent)", -6.040254711277414),+                                    ("Shavuotyear (latent)", -6.040254711277414),+                                    ("Dhanterasin <named-month>|year", -6.040254711277414),+                                    ("at <time-of-day>in|within|after <duration>",+                                     -6.040254711277414),+                                    ("Thursdayhh(:mm) - <time-of-day> am|pm", -6.040254711277414),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -5.634789603169249),+                                    ("Marchyear (latent)", -6.040254711277414),+                                    ("Sukkotyear (latent)", -5.634789603169249),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -6.040254711277414),+                                    ("Clean Mondayyear (latent)", -5.634789603169249),+                                    ("monthhour", -5.634789603169249),+                                    ("todayat <time-of-day>", -6.040254711277414),+                                    ("Thursday<time> timezone", -4.335506619038989),+                                    ("from|since|after <time>December", -6.040254711277414),+                                    ("this <time>hh(:mm) - <time-of-day> am|pm",+                                     -6.040254711277414),+                                    ("Palm SundaySunday", -5.634789603169249),+                                    ("dayday", -3.8430301339411947),+                                    ("<time> <part-of-day>at <time-of-day>", -6.040254711277414),+                                    ("mm/ddat <time-of-day>", -6.040254711277414),+                                    ("tonightat <time-of-day>", -6.040254711277414),+                                    ("<time-of-day> am|pmabsorption of , after named day",+                                     -5.3471075307174685),+                                    ("today<time-of-day> am|pm", -6.040254711277414),+                                    ("Februarythe <day-of-month> (ordinal)", -5.634789603169249),+                                    ("at <time-of-day><time> <part-of-day>", -6.040254711277414),+                                    ("mm/dd<time-of-day> am|pm", -6.040254711277414),+                                    ("hourhour", -4.787491742782046),+                                    ("<time-of-day> am|pmon <date>", -4.02535169073515),+                                    ("Wednesdaythis|last|next <cycle>", -6.040254711277414),+                                    ("Lentyear (latent)", -6.040254711277414),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -4.53617731450114),+                                    ("Boghiyear (latent)", -6.040254711277414),+                                    ("dayyear", -1.9972034434428638),+                                    ("Thursdayfrom|since|after <time>", -5.634789603169249),+                                    ("<time-of-day> o'clockin|during the <part-of-day>",+                                     -6.040254711277414),+                                    ("Thursdayat <time-of-day>", -5.634789603169249),+                                    ("Islamic New Yearyear (latent)", -5.634789603169249),+                                    ("Laylat al-Qadryear (latent)", -5.123963979403259),+                                    ("Chhathin <named-month>|year", -6.040254711277414),+                                    ("Vasant Panchamiin <named-month>|year", -6.040254711277414),+                                    ("Diwaliin <named-month>|year", -6.040254711277414),+                                    ("Shrove Tuesdayyear (latent)", -6.040254711277414),+                                    ("intersect by \",\", \"of\", \"from\" for year<time-of-day> am|pm",+                                     -5.3471075307174685),+                                    ("<time-of-day> am|pmtomorrow", -5.3471075307174685),+                                    ("Yom Kippuryear (latent)", -6.040254711277414),+                                    ("<part-of-day> of <time>year (latent)", -6.040254711277414),+                                    ("minutehour", -5.123963979403259),+                                    ("Kaanum Pongalyear (latent)", -5.634789603169249),+                                    ("Maha Saptamiyear (latent)", -6.040254711277414),+                                    ("at <time-of-day>in|during the <part-of-day>",+                                     -5.634789603169249),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -4.335506619038989),+                                    ("for <duration> from <time>December", -6.040254711277414),+                                    ("tomorrow<time-of-day> sharp|exactly", -6.040254711277414),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.123963979403259),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -5.634789603169249),+                                    ("Pentecostyear (latent)", -6.040254711277414),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.123963979403259),+                                    ("Eid al-Fitryear (latent)", -6.040254711277414),+                                    ("Mondayin|during the <part-of-day>", -6.040254711277414),+                                    ("Raksha Bandhanyear (latent)", -6.040254711277414),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.634789603169249),+                                    ("Navaratriin <named-month>|year", -6.040254711277414),+                                    ("Ashurayear (latent)", -6.040254711277414),+                                    ("Chinese New Yearyear (latent)", -6.040254711277414),+                                    ("Sundayyear (latent)", -6.040254711277414),+                                    ("Lag BaOmeryear (latent)", -6.040254711277414),+                                    ("last weekend of <named-month>year (latent)",+                                     -6.040254711277414),+                                    ("Eid al-Adhayear (latent)", -5.123963979403259),+                                    ("intersectin|during the <part-of-day>", -6.040254711277414),+                                    ("Christmasat <time-of-day>", -6.040254711277414),+                                    ("Passoveryear (latent)", -6.040254711277414),+                                    ("Lazarus Saturdayyear (latent)", -6.040254711277414),+                                    ("<day-of-month> (ordinal or number) <named-month>year (latent)",+                                     -6.040254711277414),+                                    ("Yom HaShoahyear (latent)", -5.634789603169249),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -5.634789603169249),+                                    ("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",+                                     -6.040254711277414),+                                    ("Thai Pongalin <named-month>|year", -6.040254711277414),+                                    ("Septemberyear (latent)", -5.634789603169249),+                                    ("mm/ddyear (latent)", -6.040254711277414),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.787491742782046),+                                    ("Halloweenyear (latent)", -6.040254711277414),+                                    ("<ordinal> last <cycle> of <time>year (latent)",+                                     -5.634789603169249),+                                    ("from <time-of-day> - <time-of-day> (interval)on <date>",+                                     -5.3471075307174685),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",+                                     -6.040254711277414),+                                    ("at <time-of-day>intersect", -5.634789603169249),+                                    ("Rosh Hashanahyear (latent)", -5.3471075307174685),+                                    ("Dhanterasyear (latent)", -6.040254711277414),+                                    ("Tu BiShvatyear (latent)", -6.040254711277414),+                                    ("Holiyear (latent)", -5.3471075307174685),+                                    ("<time-of-day> - <time-of-day> (interval)tomorrow",+                                     -6.040254711277414),+                                    ("Holika Dahanyear (latent)", -5.3471075307174685),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -6.040254711277414),+                                    ("dayminute", -3.4011973816621555),+                                    ("Mawlidyear (latent)", -6.040254711277414),+                                    ("from <datetime> - <datetime> (interval)on <date>",+                                     -5.634789603169249),+                                    ("<datetime> - <datetime> (interval)tomorrow",+                                     -6.040254711277414),+                                    ("Jumu'atul-Widayear (latent)", -5.123963979403259),+                                    ("minuteday", -2.402668551551028),+                                    ("absorption of , after named dayintersect",+                                     -6.040254711277414),+                                    ("intersectyear (latent)", -6.040254711277414),+                                    ("Orthodox Easter Sundayyear (latent)", -6.040254711277414),+                                    ("<ordinal> <cycle> of <time>year (latent)",+                                     -6.040254711277414),+                                    ("the <day-of-month> (ordinal)in|during the <part-of-day>",+                                     -6.040254711277414),+                                    ("Boss's Dayyear (latent)", -5.634789603169249),+                                    ("Global Youth Service Dayyear (latent)", -6.040254711277414),+                                    ("Tisha B'Avyear (latent)", -6.040254711277414),+                                    ("Isra and Mi'rajyear (latent)", -5.123963979403259),+                                    ("at <time-of-day>absorption of , after named day",+                                     -6.040254711277414),+                                    ("Christmasyear (latent)", -5.634789603169249),+                                    ("Naraka Chaturdashiyear (latent)", -5.634789603169249),+                                    ("at <time-of-day>on <date>", -4.941642422609305),+                                    ("between <time-of-day> and <time-of-day> (interval)on <date>",+                                     -4.430816798843313),+                                    ("dayweek", -6.040254711277414),+                                    ("Easter Sundayyear (latent)", -5.3471075307174685),+                                    ("weekyear", -4.941642422609305),+                                    ("hh:mmin|during the <part-of-day>", -5.3471075307174685),+                                    ("<cycle> after|before <time><time-of-day> am|pm",+                                     -5.634789603169249),+                                    ("Hanukkahyear (latent)", -5.3471075307174685),+                                    ("February<time> <part-of-day>", -6.040254711277414),+                                    ("Tuesdayin <named-month>|year", -6.040254711277414),+                                    ("Great Lentyear (latent)", -6.040254711277414),+                                    ("tomorrowat <time-of-day>", -5.3471075307174685),+                                    ("between <time> and <time>on <date>", -4.430816798843313),+                                    ("absorption of , after named dayintersect by \",\", \"of\", \"from\" for year",+                                     -6.040254711277414),+                                    ("last <cycle> of <time>year (latent)", -5.3471075307174685),+                                    ("at <time-of-day>tomorrow", -5.634789603169249),+                                    ("tomorrow<time-of-day> am|pm", -6.040254711277414),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -6.040254711277414),+                                    ("Diwaliyear (latent)", -6.040254711277414),+                                    ("Black Fridayyear (latent)", -5.634789603169249),+                                    ("the <ordinal> last <cycle> of <time>year (latent)",+                                     -6.040254711277414),+                                    ("in|during the <part-of-day>at <time-of-day>",+                                     -6.040254711277414),+                                    ("Chhathyear (latent)", -5.634789603169249),+                                    ("Vasant Panchamiyear (latent)", -6.040254711277414),+                                    ("Palm Sundayintersect", -6.040254711277414),+                                    ("<day-of-month> (ordinal or number) of <month>in|during the <part-of-day>",+                                     -6.040254711277414),+                                    ("Februaryintersect", -6.040254711277414),+                                    ("Simchat Torahyear (latent)", -6.040254711277414),+                                    ("minuteyear", -6.040254711277414)],+                               n = 313},+                   koData =+                     ClassData{prior = -0.9768531046320869, unseen = -6.385194398997726,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day> - <time-of-day> (interval)on <date>",+                                     -4.774068722449905),+                                    ("hourday", -4.774068722449905),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -5.69035945432406),+                                    ("dayhour", -3.125410096862524),+                                    ("Tuesdayfrom|since|after <time>", -5.69035945432406),+                                    ("daymonth", -3.5502932908277893),+                                    ("monthday", -5.284894346215896),+                                    ("monthyear", -4.437596485828692),+                                    ("<time-of-day> am|pmyear (latent)", -5.284894346215896),+                                    ("Thai Pongalyear (latent)", -4.997212273764115),+                                    ("intersecthh:mm", -5.69035945432406),+                                    ("from <datetime> - <datetime> (interval)July",+                                     -5.69035945432406),+                                    ("houryear", -4.774068722449905),+                                    ("from <time-of-day> - <time-of-day> (interval)July",+                                     -5.69035945432406),+                                    ("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -4.997212273764115),+                                    ("<time-of-day> am|pmintersect", -4.437596485828692),+                                    ("until <time>on <date>", -4.997212273764115),+                                    ("Octoberyear (latent)", -5.69035945432406),+                                    ("July<day-of-month> (ordinal or number) <named-month>",+                                     -5.69035945432406),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -4.437596485828692),+                                    ("about|exactly <time-of-day>year (latent)", -5.69035945432406),+                                    ("absorption of , after named dayJuly", -5.284894346215896),+                                    ("from|since|after <time>July", -5.69035945432406),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -4.774068722449905),+                                    ("Clean Mondayyear (latent)", -5.69035945432406),+                                    ("monthhour", -5.69035945432406),+                                    ("hourmonth", -4.774068722449905),+                                    ("todayat <time-of-day>", -5.69035945432406),+                                    ("from|since|after <time>December", -5.69035945432406),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -5.69035945432406),+                                    ("Mondayyear (latent)", -4.997212273764115),+                                    ("dayday", -5.284894346215896),+                                    ("mm/ddat <time-of-day>", -5.284894346215896),+                                    ("<time-of-day> am|pmon <date>", -4.437596485828692),+                                    ("dayyear", -2.719944988754359),+                                    ("Thursdaymm/dd", -5.69035945432406),+                                    ("New Year's Dayyear (latent)", -5.284894346215896),+                                    ("Thursdayfrom|since|after <time>", -3.9856113620856353),+                                    ("Thursdayat <time-of-day>", -4.437596485828692),+                                    ("<integer> to|till|before <hour-of-day>September",+                                     -5.69035945432406),+                                    ("Aprilyear (latent)", -5.69035945432406),+                                    ("monthminute", -5.69035945432406),+                                    ("<time-of-day> am|pmtomorrow", -5.69035945432406),+                                    ("Thursdayhh:mm", -4.774068722449905),+                                    ("August<day-of-month> (ordinal or number) <named-month>",+                                     -5.69035945432406),+                                    ("minutemonth", -3.898599985096005),+                                    ("week-endin <named-month>|year", -5.69035945432406),+                                    ("Augustyear (latent)", -5.284894346215896),+                                    ("Thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.284894346215896),+                                    ("Thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.284894346215896),+                                    ("mm/dd<time-of-day> - <time-of-day> (interval)",+                                     -5.284894346215896),+                                    ("tomorrowfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.69035945432406),+                                    ("Sundayyear (latent)", -4.997212273764115),+                                    ("Christmasat <time-of-day>", -5.69035945432406),+                                    ("from|since|after <time>year (latent)", -4.437596485828692),+                                    ("<duration> after|before|from <time>December",+                                     -5.69035945432406),+                                    ("yesterday<time-of-day> am|pm", -5.69035945432406),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -5.69035945432406),+                                    ("mm/ddyear (latent)", -5.69035945432406),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.997212273764115),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -5.69035945432406),+                                    ("at <time-of-day>intersect", -5.284894346215896),+                                    ("hh:mmyear (latent)", -4.591747165655951),+                                    ("Holiyear (latent)", -5.69035945432406),+                                    ("until <time><time-of-day> am|pm", -5.69035945432406),+                                    ("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",+                                     -5.69035945432406),+                                    ("dayminute", -3.164630810015805),+                                    ("intersectSeptember", -4.186282057547786),+                                    ("minuteday", -2.6223065191904436),+                                    ("absorption of , after named dayintersect", -5.69035945432406),+                                    ("Februaryin|during the <part-of-day>", -5.69035945432406),+                                    ("hh:mmon <date>", -3.6754564337817954),+                                    ("Saturdayyear (latent)", -5.69035945432406),+                                    ("from|since|after <time>on <date>", -4.774068722449905),+                                    ("absorption of , after named daySeptember",+                                     -4.774068722449905),+                                    ("Naraka Chaturdashiyear (latent)", -5.69035945432406),+                                    ("on <date>September", -5.284894346215896),+                                    ("at <time-of-day>on <date>", -5.284894346215896),+                                    ("in <named-month>|yearyear (latent)", -5.69035945432406),+                                    ("dayweek", -5.69035945432406),+                                    ("Easter Sundayyear (latent)", -5.284894346215896),+                                    ("Thursday<time-of-day> am|pm", -4.997212273764115),+                                    ("weekyear", -5.284894346215896),+                                    ("<named-month> <day-of-month> (non ordinal)until <time>",+                                     -5.69035945432406),+                                    ("intersect by \",\", \"of\", \"from\" for yearhh:mm",+                                     -4.997212273764115),+                                    ("Sundayfrom|since|after <time>", -5.69035945432406),+                                    ("absorption of , after named dayFebruary", -4.774068722449905),+                                    ("July<integer> to|till|before <hour-of-day>",+                                     -5.69035945432406),+                                    ("tomorrowat <time-of-day>", -5.69035945432406),+                                    ("<integer> to|till|before <hour-of-day>July",+                                     -5.69035945432406),+                                    ("last <cycle> of <time>year (latent)", -5.284894346215896),+                                    ("tomorrow<time-of-day> am|pm", -5.69035945432406),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -4.997212273764115),+                                    ("Diwaliyear (latent)", -5.284894346215896),+                                    ("<time-of-day> - <time-of-day> (interval)July",+                                     -5.69035945432406),+                                    ("Fridayyear (latent)", -5.284894346215896),+                                    ("minuteyear", -4.437596485828692)],+                               n = 189}}),+       ("one eleven",+        Classifier{okData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("after lunch/work/school",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("early morning",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <number> (implicit minutes)",+        Classifier{okData =+                     ClassData{prior = -1.2992829841302609,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.3184537311185346),+                                    ("integer (0..19)", -1.2992829841302609)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.3184537311185346, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.1670540846631662),+                                    ("integer (0..19)", -1.8718021769015913)],+                               n = 24}}),+       ("<ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.791759469228055),+                                    ("ordinal (digits)quarter (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("quarteryear", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)day (grain)October",+                                     -2.1972245773362196),+                                    ("ordinal (digits)day (grain)this|last|next <cycle>",+                                     -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0116009116784799,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -2.001480000210124),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("hh:mmhh:mm", -2.001480000210124),+                                    ("dayday", -2.512305623976115),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)<day-of-month> (ordinal)",+                                     -2.917770732084279),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.917770732084279),+                                    ("hourhour", -2.512305623976115),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.917770732084279)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.45198512374305727,+                               unseen = -3.912023005428146,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.1986731175506815),+                                    ("dayhour", -2.793208009442517),+                                    ("<day-of-month> (ordinal)time-of-day (latent)",+                                     -3.1986731175506815),+                                    ("<named-month>|<named-day> <day-of-month> (ordinal)year (latent)",+                                     -3.1986731175506815),+                                    ("hh:mmtime-of-day (latent)", -2.2823823856765264),+                                    ("minuteminute", -2.793208009442517),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.793208009442517),+                                    ("dayday", -3.1986731175506815),+                                    ("hourhour", -2.505525936990736),+                                    ("dayyear", -3.1986731175506815),+                                    ("minutehour", -2.2823823856765264),+                                    ("hh:mmintersect", -2.793208009442517),+                                    ("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<time-of-day> am|pm",+                                     -3.1986731175506815),+                                    ("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",+                                     -3.1986731175506815),+                                    ("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",+                                     -3.1986731175506815)],+                               n = 14}}),+       ("Saturday",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.9459101490553135,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("the <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",+                                     -1.7346010553881064),+                                    ("weekmonth", -1.7346010553881064),+                                    ("week (grain)October", -1.7346010553881064),+                                    ("week (grain)<named-month> <day-of-month> (non ordinal)",+                                     -1.7346010553881064),+                                    ("weekday", -1.2237754316221157)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("number.number hours",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.6094379124341003),+                                    ("hh:mmhh:mm", -1.6094379124341003),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -2.3025850929940455),+                                    ("hourminute", -2.3025850929940455),+                                    ("time-of-day (latent)<time-of-day> sharp|exactly",+                                     -2.70805020110221),+                                    ("time-of-day (latent)hh:mm", -2.70805020110221),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.6094379124341003),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.0149030205422647),+                                    ("hourhour", -1.791759469228055),+                                    ("minutehour", -1.6094379124341003),+                                    ("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],+                               n = 9}}),+       ("integer 21..99",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)integer (numeric)", -0.6931471805599453),+                                    ("integer (20..90)integer (0..19)", -0.6931471805599453)],+                               n = 4}}),+       ("Global Youth Service 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}}),+       ("Tisha B'Av",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yyyy-mm-dd",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("year (latent)",+        Classifier{okData =+                     ClassData{prior = -0.15822400521489416,+                               unseen = -4.976733742420574,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -4.255961441879589e-2),+                                    ("intersect 2 numbers", -3.58351893845611)],+                               n = 140},+                   koData =+                     ClassData{prior = -1.9218125974762528, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.1349799328389845),+                                    ("negative numbers", -0.6931471805599453),+                                    ("compose by multiplication", -1.9459101490553135)],+                               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}}),+       ("<time> for <duration>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -1.0296194171811581),+                                    ("intersect<integer> <unit-of-duration>", -1.9459101490553135),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -1.540445040947149),+                                    ("from|since|after <time><integer> <unit-of-duration>",+                                     -1.9459101490553135)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("monthday", -1.2039728043259361),+                                    ("December<integer> <unit-of-duration>", -1.2039728043259361)],+                               n = 2}}),+       ("Monday",+        Classifier{okData =+                     ClassData{prior = -0.3483066942682157, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -1.2237754316221157,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("yesterday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<ordinal> quarter <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm:ss",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Hanukkah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.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 = -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}}),+       ("half a <time-grain>",+        Classifier{okData =+                     ClassData{prior = -0.1823215567939546,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -1.791759469228055, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("Valentine's Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("April",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maha Saptami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week (grain)",+        Classifier{okData =+                     ClassData{prior = -3.822121282019774e-2,+                               unseen = -4.3694478524670215,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 77},+                   koData =+                     ClassData{prior = -3.283414346005772, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("<part-of-day> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",+                                     -2.3513752571634776),+                                    ("part of daysintersect", -2.3513752571634776),+                                    ("hourday", -0.9650808960435872),+                                    ("part of daysthe <day-of-month> (ordinal)",+                                     -2.3513752571634776),+                                    ("part of daysthe <day-of-month> (number)",+                                     -2.3513752571634776),+                                    ("part of daysthis <time>", -2.3513752571634776),+                                    ("part of daysChristmas", -1.9459101490553135)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <time> for <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.6931471805599453),+                                    ("<day-of-month> (ordinal or number) <named-month><integer> <unit-of-duration>",+                                     -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("six thirty six a.m.",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -1.252762968495368),+                                    ("one twenty two", -0.8472978603872037),+                                    ("one eleven", -1.252762968495368)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Shrove Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("now",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("<day-of-month> (ordinal or number) of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.13353139262452263,+                               unseen = -3.0910424533583156,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.3513752571634776),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.3513752571634776),+                                    ("ordinal (digits)February", -2.3513752571634776),+                                    ("integer (numeric)February", -1.9459101490553135),+                                    ("month", -0.9650808960435872),+                                    ("ordinal (digits)March", -2.3513752571634776),+                                    ("integer (numeric)July", -2.3513752571634776)],+                               n = 7},+                   koData =+                     ClassData{prior = -2.0794415416798357,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.5040773967762742),+                                    ("month", -1.5040773967762742)],+                               n = 1}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.6931471805599453),+                                    ("part of days", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Kaanum Pongal",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Yom Kippur",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("powers of tens",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Friday",+        Classifier{okData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 9},+                   koData =+                     ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("in|during the <part-of-day>",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("early morning", -2.5257286443082556),+                                    ("hour", -0.7339691750802004),+                                    ("part of days", -0.8209805520698302)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.916290731874155),+                                    ("part of days", -0.916290731874155)],+                               n = 1}}),+       ("tomorrow",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh(:mm) - <time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|last|next <cycle>",+        Classifier{okData =+                     ClassData{prior = -0.15790302944580878,+                               unseen = -5.093750200806762,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.1173044216802621),+                                    ("month (grain)", -2.7850112422383386),+                                    ("year (grain)", -2.6026896854443837),+                                    ("week (grain)", -1.1173044216802621),+                                    ("quarter", -3.4781584227982836), ("year", -2.6026896854443837),+                                    ("month", -2.7850112422383386),+                                    ("quarter (grain)", -3.4781584227982836)],+                               n = 76},+                   koData =+                     ClassData{prior = -1.9236870122706031,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.2809338454620642),+                                    ("week (grain)", -1.2809338454620642),+                                    ("day", -1.9740810260220096),+                                    ("day (grain)", -1.9740810260220096)],+                               n = 13}}),+       ("Simchat Torah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Eve",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)year (latent)",+                                     -0.6931471805599453),+                                    ("quarteryear", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Raksha Bandhan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Ashura",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Palm Sunday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Eid al-Adha",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("by <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("noon|midnight|EOD|end of day", -1.9459101490553135),+                                    ("time-of-day (latent)", -1.9459101490553135),+                                    ("<time-of-day> am|pm", -1.9459101490553135),+                                    ("hh:mm", -1.9459101490553135), ("hour", -1.540445040947149),+                                    ("minute", -1.540445040947149)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.5108256237659907,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -1.7047480922384253),+                                    ("ordinal (digits)", -0.2006706954621511)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.916290731874155, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)",+                                     -0.9808292530117262),+                                    ("ordinal (digits)", -0.4700036292457356)],+                               n = 6}}),+       ("last weekend of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -0.9555114450274363), ("July", -1.8718021769015913),+                                    ("month", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <day-of-month> (number)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lag BaOmer",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("fractional number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),+       ("Sunday",+        Classifier{okData =+                     ClassData{prior = -0.262364264467491, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -1.466337068793427, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Chinese New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("February",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("minute (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.833213344056216,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last|this|next <season>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> quarter",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453,+                               unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)quarter (grain)", -0.6931471805599453),+                                    ("quarter", -0.6931471805599453)],+                               n = 1}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.635159922909596, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.11441035117774422),+                                    ("integer (0..19)", -2.3581549441488563)],+                               n = 71},+                   koData =+                     ClassData{prior = -0.7547050735593787, unseen = -4.204692619390966,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.878087785311434e-2),+                                    ("integer (0..19)", -3.0910424533583156),+                                    ("integer 21..99", -3.4965075614664802)],+                               n = 63}}),+       ("beginning of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <day-of-week> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -0.916290731874155),+                                    ("SundayMarch", -1.6094379124341003),+                                    ("MondayMarch", -1.6094379124341003),+                                    ("Sundayintersect", -1.6094379124341003)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.1273394223766015, unseen = -5.225746673713201,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.581298495463066),+                                    ("integer (0..19)year (grain)", -3.1409142833984887),+                                    ("integer (numeric)day (grain)", -2.655406467616788),+                                    ("integer (0..19)second (grain) ", -3.834061463958434),+                                    ("integer (0..19)hour (grain)", -3.1409142833984887),+                                    ("second", -3.42859635585027),+                                    ("integer (numeric)second (grain) ", -4.121743536410215),+                                    ("integer (numeric)year (grain)", -3.1409142833984887),+                                    ("day", -2.3871424810221087), ("year", -2.512305623976115),+                                    ("integer (numeric)week (grain)", -3.1409142833984887),+                                    ("integer (0..19)month (grain)", -3.6109179126442243),+                                    ("hour", -2.7354491752903245), ("month", -2.917770732084279),+                                    ("integer (numeric)minute (grain)", -3.2744456760230114),+                                    ("integer (0..19)minute (grain)", -3.1409142833984887),+                                    ("integer (numeric)month (grain)", -3.42859635585027),+                                    ("minute", -2.581298495463066),+                                    ("integer (numeric)hour (grain)", -3.6109179126442243),+                                    ("integer (0..19)day (grain)", -3.6109179126442243),+                                    ("integer (0..19)week (grain)", -3.2744456760230114)],+                               n = 81},+                   koData =+                     ClassData{prior = -2.12389330425067, unseen = -3.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),+                                    ("integer (numeric)hour (grain)", -1.4087672169719492),+                                    ("integer (0..19)quarter (grain)", -3.1135153092103742)],+                               n = 11}}),+       ("hhmm (latent)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> am|pm",+        Classifier{okData =+                     ClassData{prior = -0.2546422183735807, unseen = -5.37989735354046,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>", -3.765840495250065),+                                    ("integer after|past <hour-of-day>", -3.9889840465642745),+                                    ("at <time-of-day>", -2.1564025828159643),+                                    ("<time-of-day> o'clock", -4.276666119016055),+                                    ("half after|past <hour-of-day>", -4.276666119016055),+                                    ("time-of-day (latent)", -1.7117167615545186),+                                    ("hhmm (latent)", -4.68213122712422),+                                    ("hh:mm", -2.330755969960742),+                                    ("quarter after|past <hour-of-day>", -4.68213122712422),+                                    ("until <time>", -3.9889840465642745),+                                    ("about|exactly <time-of-day>", -4.68213122712422),+                                    ("hour", -1.1856236656577395),+                                    ("<time-of-day> sharp|exactly", -4.68213122712422),+                                    ("minute", -1.791759469228055)],+                               n = 100},+                   koData =+                     ClassData{prior = -1.492516574375198, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> to|till|before <hour-of-day>", -3.20545280453606),+                                    ("from|since|after <time>", -3.20545280453606),+                                    ("<hour-of-day> <integer>", -3.6109179126442243),+                                    ("time-of-day (latent)", -1.085189268335969),+                                    ("hour", -1.0459685551826876), ("minute", -2.6946271807700692)],+                               n = 29}}),+       ("Yom Ha'atzmaut",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("from <day-of-month> (ordinal or number) to <day-of-month> (ordinal or number) <named-month> (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)ordinal (digits)July", -1.252762968495368),+                                    ("integer (numeric)integer (numeric)July", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thiru Onam",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thai Pongal",+        Classifier{okData =+                     ClassData{prior = -0.5596157879354228, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.8472978603872037,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Vijayadashami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Thanksgiving Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 17},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("part of <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("March", -0.6931471805599453), ("month", -0.6931471805599453)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("a <unit-of-duration>",+        Classifier{okData =+                     ClassData{prior = -0.49247648509779407,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.1972245773362196),+                                    ("year (grain)", -2.1972245773362196),+                                    ("second", -2.890371757896165),+                                    ("week (grain)", -2.1972245773362196),+                                    ("day", -2.1972245773362196),+                                    ("minute (grain)", -2.890371757896165),+                                    ("year", -2.1972245773362196),+                                    ("second (grain) ", -2.890371757896165),+                                    ("minute", -2.890371757896165),+                                    ("day (grain)", -2.1972245773362196)],+                               n = 11},+                   koData =+                     ClassData{prior = -0.9444616088408514, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour (grain)", -1.7227665977411035),+                                    ("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),+                                    ("quarter (grain)", -1.9459101490553135)],+                               n = 7}}),+       ("at the beginning|end of <year>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -0.6931471805599453),+                                    ("year", -0.6931471805599453)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Dhanteras",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Tu BiShvat",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Whit Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = -5.6352936551131744e-2,+                               unseen = -4.2626798770413155,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 69},+                   koData =+                     ClassData{prior = -2.9041650800285006, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),+       ("Holi",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("Rosh Hashanah",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> <named-day> ago|back",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)Thursday", -0.6931471805599453),+                                    ("day", -0.6931471805599453)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Holika Dahan",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter of an hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("second (grain) ",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinals (first..twentieth,thirtieth,...)",+        Classifier{okData =+                     ClassData{prior = -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}}),+       ("Mawlid",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Jumu'atul-Wida",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter after|past <hour-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("until <time>",+        Classifier{okData =+                     ClassData{prior = -1.1786549963416462, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("year (latent)", -2.159484249353372),+                                    ("time-of-day (latent)", -2.5649493574615367),+                                    ("year", -2.159484249353372),+                                    ("<time-of-day> am|pm", -1.8718021769015913),+                                    ("hh:mm", -2.159484249353372), ("hour", -2.159484249353372),+                                    ("minute", -1.6486586255873816)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.3677247801253174,+                               unseen = -3.8501476017100584,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -2.2192034840549946),+                                    ("yesterday", -2.7300291078209855),+                                    ("day", -2.7300291078209855),+                                    ("time-of-day (latent)", -1.6314168191528755),+                                    ("hh:mm", -2.2192034840549946), ("hour", -1.5260563034950494),+                                    ("minute", -1.749199854809259)],+                               n = 18}}),+       ("the <cycle> after|before <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)tomorrow", -1.252762968495368),+                                    ("dayday", -0.8472978603872037),+                                    ("day (grain)yesterday", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("about|exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.15415067982725836,+                               unseen = -3.6109179126442243,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.791759469228055),+                                    ("hh(:mm) - <time-of-day> am|pm", -2.890371757896165),+                                    ("this|last|next <cycle>", -1.791759469228055),+                                    ("day", -2.4849066497880004),+                                    ("time-of-day (latent)", -2.890371757896165),+                                    ("hhmm (latent)", -2.4849066497880004),+                                    ("<time-of-day> am|pm", -2.890371757896165),+                                    ("hour", -2.1972245773362196),+                                    ("next <time>", -2.890371757896165),+                                    ("this|next <day-of-week>", -2.890371757896165),+                                    ("minute", -2.4849066497880004)],+                               n = 12},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),+                                    ("time-of-day (latent)", -2.0794415416798357),+                                    ("hour", -2.0794415416798357)],+                               n = 2}}),+       ("Sukkot",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day> in <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.3025850929940455),+                                    ("monthyear", -1.8971199848858813),+                                    ("Marcha <unit-of-duration>", -2.3025850929940455),+                                    ("March<integer> <unit-of-duration>", -2.3025850929940455),+                                    ("Thanksgiving Daya <unit-of-duration>", -2.3025850929940455),+                                    ("Thanksgiving Day<integer> <unit-of-duration>",+                                     -1.8971199848858813),+                                    ("Vijayadashami<integer> <unit-of-duration>",+                                     -2.3025850929940455),+                                    ("dayyear", -1.6094379124341003)],+                               n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("World Vegan Day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\", \"'s\"",+        Classifier{okData =+                     ClassData{prior = -0.5389965007326869, unseen = -4.948759890378168,+                               likelihoods =+                                 HashMap.fromList+                                   [("Wednesday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("dayhour", -3.8430301339411947),+                                    ("daymonth", -2.995732273553991),+                                    ("<named-month> <day-of-month> (non ordinal)Friday",+                                     -4.248495242049359),+                                    ("Friday<named-month> <day-of-month> (non ordinal)",+                                     -3.5553480614894135),+                                    ("Wednesdayintersect", -4.248495242049359),+                                    ("Black Fridaythis|last|next <cycle>", -4.248495242049359),+                                    ("<part-of-day> of <time>February", -4.248495242049359),+                                    ("Saturday<time-of-day> am|pm", -4.248495242049359),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -3.8430301339411947),+                                    ("on <date><time-of-day> am|pm", -4.248495242049359),+                                    ("hourmonth", -4.248495242049359),+                                    ("Fridayintersect by \",\", \"of\", \"from\" for year",+                                     -4.248495242049359),+                                    ("dayday", -2.3766930651477676),+                                    ("the <day-of-month> (ordinal)February", -3.8430301339411947),+                                    ("WednesdayOctober", -4.248495242049359),+                                    ("Wednesdaythis|last|next <cycle>", -3.8430301339411947),+                                    ("intersect<named-month> <day-of-month> (non ordinal)",+                                     -3.332204510175204),+                                    ("dayyear", -3.332204510175204),+                                    ("Saturday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("Thursdayhh:mm", -3.8430301339411947),+                                    ("Thanksgiving Daythis|last|next <cycle>", -4.248495242049359),+                                    ("on <date><named-month> <day-of-month> (non ordinal)",+                                     -3.8430301339411947),+                                    ("TuesdayOctober", -4.248495242049359),+                                    ("the <day-of-month> (ordinal)March", -4.248495242049359),+                                    ("Mondaythis|last|next <cycle>", -4.248495242049359),+                                    ("Fridayintersect", -4.248495242049359),+                                    ("Thursday<datetime> - <datetime> (interval)",+                                     -3.8430301339411947),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.8430301339411947),+                                    ("Tuesdaythis|last|next <cycle>", -4.248495242049359),+                                    ("Sunday<named-month> <day-of-month> (non ordinal)",+                                     -4.248495242049359),+                                    ("dayminute", -2.8622008809294686),+                                    ("minuteday", -3.332204510175204),+                                    ("this|last|next <cycle>Sunday", -4.248495242049359),+                                    ("Sundaythis|last|next <cycle>", -4.248495242049359),+                                    ("weekday", -4.248495242049359),+                                    ("dayweek", -3.1498829533812494),+                                    ("Monday<named-month> <day-of-month> (non ordinal)",+                                     -3.8430301339411947)],+                               n = 42},+                   koData =+                     ClassData{prior = -0.8754687373538999, unseen = -4.762173934797756,+                               likelihoods =+                                 HashMap.fromList+                                   [("week-endJuly", -4.060443010546419),+                                    ("week-endOctober", -3.367295829986474),+                                    ("daymonth", -1.8632184332102),+                                    ("TuesdaySeptember", -4.060443010546419),+                                    ("Wednesdayintersect", -4.060443010546419),+                                    ("hourmonth", -2.9618307218783095),+                                    ("Fridaythis|last|next <cycle>", -4.060443010546419),+                                    ("SundayFebruary", -4.060443010546419),+                                    ("WednesdayOctober", -4.060443010546419),+                                    ("week-endintersect", -4.060443010546419),+                                    ("dayyear", -4.060443010546419),+                                    ("FridayJuly", -3.654977902438255),+                                    ("FridaySeptember", -4.060443010546419),+                                    ("WednesdayFebruary", -4.060443010546419),+                                    ("minutemonth", -3.144152278672264),+                                    ("SundayMarch", -4.060443010546419),+                                    ("MondayFebruary", -3.654977902438255),+                                    ("Fridayintersect", -4.060443010546419),+                                    ("Thursday<time-of-day> - <time-of-day> (interval)",+                                     -3.654977902438255),+                                    ("dayminute", -3.367295829986474),+                                    ("SaturdaySeptember", -4.060443010546419),+                                    ("intersectSeptember", -3.144152278672264),+                                    ("MondayMarch", -4.060443010546419),+                                    ("on <date>September", -3.654977902438255),+                                    ("Tuesdayintersect", -4.060443010546419),+                                    ("Sundayintersect", -4.060443010546419)],+                               n = 30}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = -0.6286086594223742, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martin Luther King's Day", -2.5649493574615367),+                                    ("day", -1.1786549963416462), ("Sunday", -2.5649493574615367),+                                    ("Chinese New Year", -2.159484249353372),+                                    ("Thanksgiving Day", -2.5649493574615367),+                                    ("Easter Sunday", -2.5649493574615367),+                                    ("hour", -2.5649493574615367), ("Tuesday", -2.5649493574615367),+                                    ("week-end", -2.5649493574615367)],+                               n = 8},+                   koData =+                     ClassData{prior = -0.7621400520468967,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Monday", -2.4849066497880004), ("day", -2.0794415416798357),+                                    ("Sunday", -2.4849066497880004), ("hour", -1.3862943611198906),+                                    ("week-end", -1.3862943611198906)],+                               n = 7}}),+       ("March",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 19},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<named-month>|<named-day> <day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("Octoberordinal (digits)", -2.120263536200091),+                                    ("Thursdayordinal (digits)", -2.5257286443082556),+                                    ("day", -2.120263536200091),+                                    ("Augustordinal (digits)", -2.5257286443082556),+                                    ("Marchordinals (first..twentieth,thirtieth,...)",+                                     -2.120263536200091),+                                    ("Tuesdayordinal (digits)", -2.5257286443082556),+                                    ("month", -1.2729656758128873),+                                    ("Marchordinal (digits)", -2.5257286443082556)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>ordinal (digits)",+                                     -1.8718021769015913),+                                    ("Augustordinal (digits)", -1.8718021769015913),+                                    ("month", -1.466337068793427)],+                               n = 2}}),+       ("Clean Monday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Easter Sunday",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("Christmas",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("mm.dd.yyyy",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Isra and Mi'raj",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> after|before|from <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("a <unit-of-duration>now", -2.833213344056216),+                                    ("a <unit-of-duration>Christmas", -2.833213344056216),+                                    ("dayday", -2.833213344056216),+                                    ("<integer> <unit-of-duration>today", -2.833213344056216),+                                    ("daysecond", -2.833213344056216),+                                    ("a <unit-of-duration>right now", -2.833213344056216),+                                    ("minutenograin", -2.833213344056216),+                                    ("<integer> <unit-of-duration>Christmas", -2.833213344056216),+                                    ("<integer> <unit-of-duration>Easter Sunday",+                                     -2.833213344056216),+                                    ("secondnograin", -2.833213344056216),+                                    ("yearday", -2.1400661634962708),+                                    ("daynograin", -2.833213344056216),+                                    ("<integer> <unit-of-duration>now", -2.4277482359480516)],+                               n = 8},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.5649493574615367),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -2.5649493574615367),+                                    ("monthnograin", -2.5649493574615367),+                                    ("dayday", -2.159484249353372),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -2.5649493574615367),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -2.5649493574615367),+                                    ("<integer> <unit-of-duration>now", -2.5649493574615367)],+                               n = 4}}),+       ("<day-of-month> (ordinal or number) of <month>",+        Classifier{okData =+                     ClassData{prior = -8.004270767353637e-2,+                               unseen = -3.5263605246161616,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -2.803360380906535),+                                    ("ordinals (first..twentieth,thirtieth,...)March",+                                     -2.803360380906535),+                                    ("ordinal (digits)this|last|next <cycle>", -2.1102132003465894),+                                    ("integer (numeric)this|last|next <cycle>",+                                     -2.3978952727983707),+                                    ("ordinal (digits)February", -2.803360380906535),+                                    ("integer (numeric)February", -2.3978952727983707),+                                    ("month", -0.9315582040049435),+                                    ("ordinal (digits)March", -2.803360380906535),+                                    ("integer (numeric)July", -2.803360380906535)],+                               n = 12},+                   koData =+                     ClassData{prior = -2.5649493574615367,+                               unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)February", -1.7047480922384253),+                                    ("month", -1.7047480922384253)],+                               n = 1}}),+       ("decimal number",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),+       ("Naraka Chaturdashi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("beginning of month",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 6},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("next <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods =+                                 HashMap.fromList+                                   [("Martin Luther King's Day", -2.70805020110221),+                                    ("Halloween", -2.70805020110221),+                                    ("Wednesday", -2.70805020110221),+                                    ("Boss's Day", -2.70805020110221),+                                    ("Monday", -2.70805020110221), ("day", -1.0986122886681098),+                                    ("Thanksgiving Day", -2.70805020110221),+                                    ("March", -2.70805020110221), ("month", -2.70805020110221),+                                    ("Tuesday", -2.0149030205422647)],+                               n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.3978952727983707,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> sharp|exactly",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.1400661634962708),+                                    ("time-of-day (latent)", -2.1400661634962708),+                                    ("hhmm (latent)", -2.1400661634962708),+                                    ("<time-of-day> am|pm", -2.1400661634962708),+                                    ("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),+                                    ("minute", -1.4469189829363254)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("in <named-month>|year",+        Classifier{okData =+                     ClassData{prior = -0.2719337154836418,+                               unseen = -3.6635616461296463,+                               likelihoods =+                                 HashMap.fromList+                                   [("<year> (bc|ad)", -1.845826690498331),+                                    ("October", -2.9444389791664407),+                                    ("year (latent)", -1.3350010667323402),+                                    ("year", -0.9295359586241757), ("March", -2.9444389791664407),+                                    ("month", -2.538973871058276)],+                               n = 16},+                   koData =+                     ClassData{prior = -1.4350845252893227, unseen = -2.833213344056216,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.6739764335716716),+                                    ("year (latent)", -1.3862943611198906),+                                    ("year", -1.3862943611198906), ("month", -1.6739764335716716)],+                               n = 5}}),+       ("Islamic New Year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("negative numbers",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -7.696104113612832e-2),+                                    ("integer (0..19)", -2.6026896854443837)],+                               n = 25}}),+       ("about|exactly <duration>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("half a <time-grain>", -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}}),+       ("half an hour (abbrev).",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               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.5596157879354228, unseen = -4.127134385045092,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -3.012261575505202),+                                    ("from|since|after <time>hh:mm", -2.501435951739211),+                                    ("minuteminute", -1.2776605201170952),+                                    ("hh:mmhh:mm", -1.9136492868370918),+                                    ("dayday", -3.012261575505202),+                                    ("hourhour", -3.012261575505202),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -3.012261575505202),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",+                                     -3.012261575505202),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -3.012261575505202)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.8472978603872037, unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("hourday", -3.2386784521643803),+                                    ("<named-month> <day-of-month> (non ordinal)July",+                                     -3.2386784521643803),+                                    ("daymonth", -2.833213344056216),+                                    ("<time-of-day> am|pmintersect", -3.2386784521643803),+                                    ("hh:mm<time-of-day> am|pm", -2.833213344056216),+                                    ("minuteminute", -1.9859154836690123),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("dayday", -3.2386784521643803),+                                    ("from|since|after <time><day-of-month> (ordinal or number) <named-month>",+                                     -2.833213344056216),+                                    ("hourhour", -2.5455312716044354),+                                    ("minutehour", -2.833213344056216),+                                    ("hh:mmintersect", -2.322387720290225),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -3.2386784521643803),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.2386784521643803),+                                    ("from|since|after <time>intersect", -2.833213344056216)],+                               n = 15}}),+       ("Tuesday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("New Year's Day",+        Classifier{okData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),+       ("fortnight",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> and an half hour",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Laylat al-Qadr",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Boghi",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("at the beginning|end of <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.2231435513142097,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("January", -1.3862943611198906),+                                    ("April", -1.3862943611198906), ("month", -0.8754687373538999)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.6094379124341003,+                               unseen = -1.9459101490553135,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.0986122886681098),+                                    ("month", -1.0986122886681098)],+                               n = 1}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -1.0296194171811581, unseen = -4.110873864173311,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>hh:mm", -2.4849066497880004),+                                    ("minuteminute", -1.529395204760564),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.4011973816621555),+                                    ("hh:mmhh:mm", -1.8971199848858813),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -2.70805020110221),+                                    ("hourhour", -1.8971199848858813),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -3.4011973816621555),+                                    ("<time-of-day> am|pm<time-of-day> am|pm", -2.70805020110221)],+                               n = 20},+                   koData =+                     ClassData{prior = -0.4418327522790392, unseen = -4.532599493153256,+                               likelihoods =+                                 HashMap.fromList+                                   [("about|exactly <time-of-day>time-of-day (latent)",+                                     -3.828641396489095),+                                    ("until <time>time-of-day (latent)", -2.575878427993727),+                                    ("hh:mmtime-of-day (latent)", -2.12389330425067),+                                    ("hh:mm<time-of-day> am|pm", -3.4231762883809305),+                                    ("from|since|after <time><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("<time-of-day> am|pmtime-of-day (latent)", -3.828641396489095),+                                    ("at <time-of-day><time-of-day> am|pm", -3.828641396489095),+                                    ("hourhour", -1.6314168191528755),+                                    ("from|since|after <time><integer> to|till|before <hour-of-day>",+                                     -3.828641396489095),+                                    ("hourminute", -3.828641396489095),+                                    ("minutehour", -1.5773495978825998),+                                    ("until <time><time-of-day> am|pm", -3.4231762883809305),+                                    ("about|exactly <time-of-day><time-of-day> am|pm",+                                     -3.828641396489095),+                                    ("from|since|after <time>time-of-day (latent)",+                                     -2.575878427993727),+                                    ("at <time-of-day>time-of-day (latent)", -3.4231762883809305),+                                    ("<integer> to|till|before <hour-of-day>time-of-day (latent)",+                                     -3.4231762883809305)],+                               n = 36}}),+       ("military spelled out numbers am|pm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)integer (20..90)", 0.0)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("winter",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("nth <time> after <time>",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",+                                     -0.916290731874155)],+                               n = 1},+                   koData =+                     ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",+                                     -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = -0.42121346507630353,+                               unseen = -3.951243718581427,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.5455312716044354),+                                    ("Marchinteger (numeric)", -2.833213344056216),+                                    ("Aprilinteger (numeric)", -3.2386784521643803),+                                    ("month", -0.8407831793660099),+                                    ("Februaryinteger (numeric)", -1.9859154836690123),+                                    ("Septemberinteger (numeric)", -2.833213344056216),+                                    ("Octoberinteger (numeric)", -2.833213344056216),+                                    ("Julyinteger (numeric)", -2.1400661634962708)],+                               n = 21},+                   koData =+                     ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -2.3353749158170367),+                                    ("Marchinteger (numeric)", -2.740840023925201),+                                    ("Aprilinteger (numeric)", -2.740840023925201),+                                    ("month", -0.9490805546971459),+                                    ("from|since|after <time>integer (numeric)",+                                     -2.3353749158170367),+                                    ("Julyinteger (numeric)", -1.6422277352570913)],+                               n = 11}}),+       ("Diwali",+        Classifier{okData =+                     ClassData{prior = -0.2876820724517809,+                               unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -1.3862943611198906,+                               unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),+       ("last night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("Thursday", -2.2512917986064953),+                                    ("Wednesday", -2.2512917986064953),+                                    ("Monday", -1.845826690498331), ("day", -0.8649974374866046),+                                    ("Tuesday", -1.55814461804655)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("ordinal (digits)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.784189633918261,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 42},+                   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.916290731874155, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("day (grain)October", -1.9924301646902063),+                                    ("daymonth", -1.4816045409242156),+                                    ("day (grain)intersect", -1.9924301646902063),+                                    ("weekmonth", -1.9924301646902063),+                                    ("week (grain)intersect", -2.3978952727983707),+                                    ("week (grain)September", -2.3978952727983707)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.5108256237659907, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -2.2335922215070942),+                                    ("day (grain)May", -2.2335922215070942),+                                    ("week (grain)year (latent)", -1.9459101490553135),+                                    ("weekmonth", -1.7227665977411035),+                                    ("week (grain)October", -2.2335922215070942),+                                    ("weekyear", -1.9459101490553135),+                                    ("week (grain)intersect", -2.2335922215070942)],+                               n = 9}}),+       ("Chhath",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Vasant Panchami",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(ordinal) <named-month> year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)April", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("the <ordinal> last <cycle> of <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..twentieth,thirtieth,...)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("daymonth", -2.1972245773362196),+                                    ("ordinal (digits)day (grain)May", -2.1972245773362196),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",+                                     -2.1972245773362196),+                                    ("weekmonth", -1.791759469228055),+                                    ("ordinal (digits)week (grain)year (latent)",+                                     -2.1972245773362196),+                                    ("weekyear", -1.791759469228055),+                                    ("ordinals (first..twentieth,thirtieth,...)week (grain)October",+                                     -2.1972245773362196)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Black Friday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("week-end",+        Classifier{okData =+                     ClassData{prior = -1.252762968495368, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -0.3364722366212129,+                               unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("Great Lent",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("Maundy Thursday",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("day (grain)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 29},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("right now",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("for <duration> from <time>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration><day-of-month> (ordinal)",+                                     -1.5040773967762742),+                                    ("dayday", -1.0986122886681098),+                                    ("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",+                                     -1.5040773967762742)],+                               n = 2},+                   koData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -1.252762968495368),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -1.252762968495368)],+                               n = 1}}),+       ("compose by multiplication",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList [("integer (0..19)powers of tens", 0.0)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("end of year",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 10},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("between <time> and <time>",+        Classifier{okData =+                     ClassData{prior = -1.0986122886681098,+                               unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -0.832909122935104),+                                    ("hh:mmhh:mm", -0.832909122935104)],+                               n = 9},+                   koData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.410986973710262),+                                    ("minuteminute", -1.410986973710262),+                                    ("minutehour", -1.410986973710262),+                                    ("hh:mmintersect", -1.410986973710262)],+                               n = 18}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.4657359027997265,+                               likelihoods =+                                 HashMap.fromList+                                   [("from|since|after <time>integer (numeric)integer (numeric)",+                                     -2.740840023925201),+                                    ("from|since|after <time>ordinal (digits)ordinal (digits)",+                                     -2.740840023925201),+                                    ("Julyinteger (numeric)integer (numeric)", -1.6422277352570913),+                                    ("Augustordinal (digits)integer (numeric)",+                                     -2.3353749158170367),+                                    ("from|since|after <time>ordinal (digits)integer (numeric)",+                                     -2.740840023925201),+                                    ("month", -0.8690378470236094),+                                    ("Augustordinal (digits)ordinal (digits)",+                                     -2.3353749158170367)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.0794415416798357,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("intersect by \",\", \"of\", \"from\" for year",+        Classifier{okData =+                     ClassData{prior = -0.11778303565638351,+                               unseen = -3.2188758248682006,+                               likelihoods =+                                 HashMap.fromList+                                   [("Black Fridaythis|last|next <cycle>", -2.4849066497880004),+                                    ("Martin Luther King's Daythis|last|next <cycle>",+                                     -2.0794415416798357),+                                    ("intersect by \",\", \"of\", \"from\", \"'s\"year (latent)",+                                     -2.4849066497880004),+                                    ("dayyear", -0.9808292530117262),+                                    ("Thanksgiving Daythis|last|next <cycle>", -2.4849066497880004),+                                    ("intersectyear (latent)", -2.4849066497880004),+                                    ("<named-month> <day-of-month> (non ordinal)year (latent)",+                                     -2.0794415416798357)],+                               n = 8},+                   koData =+                     ClassData{prior = -2.1972245773362196,+                               unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("Fridaythis|last|next <cycle>", -1.6094379124341003),+                                    ("dayyear", -1.6094379124341003)],+                               n = 1}}),+       ("part of days",+        Classifier{okData =+                     ClassData{prior = -6.899287148695143e-2,+                               unseen = -3.4011973816621555,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 28},+                   koData =+                     ClassData{prior = -2.70805020110221, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),        ("at the beginning|end of <week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.330733340286331,
+ Duckling/Ranking/Classifiers/NL_BE.hs view
@@ -0,0 +1,1834 @@+-- 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_BE (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers+  = HashMap.fromList+      [("Kerstmis",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time> timezone",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3978952727983707,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.6094379124341003),+                                    ("hh:mm", -1.2039728043259361), ("hour", -1.6094379124341003),+                                    ("minute", -1.2039728043259361)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("integer (numeric)",+        Classifier{okData =+                     ClassData{prior = -0.7090205297162354, unseen = -4.844187086458591,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 125},+                   koData =+                     ClassData{prior = -0.6775218626568645, unseen = -4.875197323201151,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 129}}),+       ("exactly <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.252762968495368),+                                    ("time-of-day (latent)", -1.252762968495368),+                                    ("hour", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<duration> hence|ago",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.55814461804655), ("day", -1.845826690498331),+                                    ("year", -2.2512917986064953),+                                    ("<integer> <unit-of-duration>", -0.8649974374866046),+                                    ("month", -2.2512917986064953)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("thursday",+        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 (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.15415067982725836,+                               unseen = -5.030437921392435,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clockmorning", -3.077970371790963),+                                    ("until <time-of-day>afternoon", -4.330733340286331),+                                    ("dayhour", -2.9444389791664407),+                                    ("todayevening", -4.330733340286331),+                                    ("on <date>evening", -3.925268232178167),+                                    ("thursdaymorning", -4.330733340286331),+                                    ("intersectevening", -2.384823191231018),+                                    ("tomorrowafternoon", -3.925268232178167),+                                    ("half to|till|before <integer> (hour-of-day)afternoon",+                                     -4.330733340286331),+                                    ("hourhour", -1.1737329191362178),+                                    ("<day-of-month> (non ordinal) <named-month>morning",+                                     -3.925268232178167),+                                    ("at <time-of-day>afternoon", -4.330733340286331),+                                    ("todayafternoon", -4.330733340286331),+                                    ("<time-of-day>  o'clockafternoon", -3.2321210516182215),+                                    ("<time-of-day>  o'clocknight", -4.330733340286331),+                                    ("until <time-of-day>morning", -3.925268232178167),+                                    ("minutehour", -2.9444389791664407),+                                    ("<time-of-day> am|pmmorning", -3.925268232178167),+                                    ("hh:mmmorning", -3.925268232178167),+                                    ("about <time-of-day>evening", -4.330733340286331),+                                    ("<time-of-day>  o'clockevening", -3.6375861597263857),+                                    ("<hour-of-day> <integer> (as relative minutes)afternoon",+                                     -3.925268232178167),+                                    ("intersectmorning", -3.077970371790963),+                                    ("about <time-of-day>afternoon", -4.330733340286331),+                                    ("hh:mmafternoon", -4.330733340286331),+                                    ("on <date>morning", -3.925268232178167),+                                    ("at <time-of-day>morning", -4.330733340286331)],+                               n = 60},+                   koData =+                     ClassData{prior = -1.9459101490553135, unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clockmorning", -3.258096538021482),+                                    ("yearhour", -3.258096538021482),+                                    ("intersectevening", -2.5649493574615367),+                                    ("monthhour", -2.8526314299133175),+                                    ("hourhour", -1.8718021769015913),+                                    ("year (latent)afternoon", -3.258096538021482),+                                    ("Februarymorning", -2.8526314299133175),+                                    ("<time-of-day>  o'clockevening", -3.258096538021482),+                                    ("time-of-day (latent)afternoon", -2.8526314299133175)],+                               n = 10}}),+       ("dd/mm",+        Classifier{okData =+                     ClassData{prior = -0.4307829160924542, unseen = -2.70805020110221,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 13},+                   koData =+                     ClassData{prior = -1.0498221244986778,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7}}),+       ("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}}),+       ("at <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.19237189264745613, unseen = -4.31748811353631,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.739115735742633),+                                    ("half to|till|before <integer> (hour-of-day)",+                                     -3.6109179126442243),+                                    ("about <time-of-day>", -2.6946271807700692),+                                    ("time-of-day (latent)", -1.906169820405799),+                                    ("hh:mm", -2.512305623976115), ("hour", -1.0082282271998406),+                                    ("minute", -2.2246235515243336),+                                    ("<hour-of-day> <integer> (as relative minutes)",+                                     -3.6109179126442243)],+                               n = 33},+                   koData =+                     ClassData{prior = -1.742969305058623, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -2.3978952727983707),+                                    ("time-of-day (latent)", -1.1451323043030026),+                                    ("hour", -1.0116009116784799)],+                               n = 7}}),+       ("absorption of , after named day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("wednesday", -2.2512917986064953),+                                    ("monday", -1.845826690498331), ("friday", -1.55814461804655),+                                    ("day", -0.8649974374866046), ("sunday", -2.2512917986064953)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               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}}),+       ("on <date>",+        Classifier{okData =+                     ClassData{prior = -0.19845093872383832,+                               unseen = -4.574710978503383,+                               likelihoods =+                                 HashMap.fromList+                                   [("thursday", -3.1780538303479458),+                                    ("<time> <part-of-day>", -2.9549102790337356),+                                    ("dd/mm", -2.9549102790337356),+                                    ("saturday", -3.871201010907891),+                                    ("intersect", -1.4733057381095205),+                                    ("<day-of-month>(ordinal) <named-month>", -3.871201010907891),+                                    ("friday", -3.871201010907891), ("day", -1.7311348474116202),+                                    ("hh:mm", -3.871201010907891),+                                    ("<day-of-month> (ordinal)", -3.1780538303479458),+                                    ("hour", -1.7311348474116202),+                                    ("<datetime> - <datetime> (interval)", -3.871201010907891),+                                    ("<day-of-month> (non ordinal) <named-month>",+                                     -3.871201010907891),+                                    ("minute", -2.2617630984737906)],+                               n = 41},+                   koData =+                     ClassData{prior = -1.7147984280919266,+                               unseen = -3.4965075614664802,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersect", -1.2685113254635072), ("day", -2.772588722239781),+                                    ("<day-of-month> (ordinal)", -2.772588722239781),+                                    ("hour", -2.367123614131617), ("minute", -1.5198257537444133)],+                               n = 9}}),+       ("integer (0..19)",+        Classifier{okData =+                     ClassData{prior = -5.5569851154810765e-2,+                               unseen = -3.6109179126442243,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 35},+                   koData =+                     ClassData{prior = -2.917770732084279, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),+       ("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}}),+       ("Halloween",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("between <datetime> and <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.6931471805599453,+                               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}}),+       ("October",+        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}}),+       ("month (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}}),+       ("on a named-day",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("thursday", -1.252762968495368),+                                    ("saturday", -1.9459101490553135),+                                    ("friday", -1.9459101490553135), ("day", -0.8472978603872037)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("yesterday/tomorrow 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}}),+       ("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}}),+       ("<time-of-day>  o'clock",+        Classifier{okData =+                     ClassData{prior = -0.14107859825990549,+                               unseen = -4.955827057601261,+                               likelihoods =+                                 HashMap.fromList+                                   [("exactly <time-of-day>", -4.255612709818223),+                                    ("at <time-of-day>", -2.3838105329166317),+                                    ("about <time-of-day>", -2.8693183486983322),+                                    ("time-of-day (latent)", -1.259880436264232),+                                    ("quarter after|past <integer> (hour-of-day)",+                                     -4.255612709818223),+                                    ("until <time-of-day>", -3.339321977944068),+                                    ("hour", -0.7591051483517427), ("minute", -4.255612709818223),+                                    ("after <time-of-day>", -3.8501476017100584)],+                               n = 66},+                   koData =+                     ClassData{prior = -2.0281482472922856,+                               unseen = -3.4011973816621555,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -2.6741486494265287),+                                    ("time-of-day (latent)", -1.0647107369924282),+                                    ("hour", -0.9694005571881036)],+                               n = 10}}),+       ("<integer> + '\"",+        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)", -0.40546510810816444),+                                    ("integer (0..19)", -1.0986122886681098)],+                               n = 4}}),+       ("July",+        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 = -1.9661128563728327,+                               unseen = -2.1972245773362196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 7},+                   koData =+                     ClassData{prior = -0.15082288973458366,+                               unseen = -3.8066624897703196,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 43}}),+       ("<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}}),+       ("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}}),+       ("intersect",+        Classifier{okData =+                     ClassData{prior = -0.29944691403136736,+                               unseen = -6.180016653652572,+                               likelihoods =+                                 HashMap.fromList+                                   [("last <cycle>sunday", -5.484796933490655),+                                    ("Koningsdagyear", -5.484796933490655),+                                    ("hourday", -4.386184644822546),+                                    ("on a named-day<day-of-month> (non ordinal) <named-month>",+                                     -5.484796933490655),+                                    ("<day-of-month> (non ordinal) <named-month><time-of-day>  o'clock",+                                     -5.484796933490655),+                                    ("dayhour", -2.3493027175615055),+                                    ("daymonth", -4.5685062016165),+                                    ("next <cycle>friday", -5.484796933490655),+                                    ("monthyear", -3.8753590210565547),+                                    ("friday<day-of-month> (non ordinal) <named-month>",+                                     -5.079331825382491),+                                    ("yearhour", -5.484796933490655),+                                    ("intersect<time-of-day>  o'clock", -4.791649752930709),+                                    ("tuesdaythis <cycle>", -5.484796933490655),+                                    ("on a named-dayfrom <time-of-day> - <time-of-day> (interval)",+                                     -5.079331825382491),+                                    ("saturday<time-of-day>  o'clock", -5.484796933490655),+                                    ("absorption of , after named daydd/mm/yyyy",+                                     -5.079331825382491),+                                    ("<time-of-day> am|pmintersect", -5.484796933490655),+                                    ("intersect<time> <part-of-day>", -4.791649752930709),+                                    ("Marchyear", -5.484796933490655),+                                    ("saturdayat <time-of-day>", -5.079331825382491),+                                    ("saturday<time> <part-of-day>", -5.079331825382491),+                                    ("dd/mm<time-of-day>  o'clock", -5.484796933490655),+                                    ("on a named-dayat <time-of-day>", -4.791649752930709),+                                    ("today<time-of-day>  o'clock", -5.484796933490655),+                                    ("at <time-of-day>on a named-day", -5.484796933490655),+                                    ("on a named-daybetween <datetime> and <datetime> (interval)",+                                     -5.484796933490655),+                                    ("intersect by ','year", -5.484796933490655),+                                    ("on <date><time-of-day>  o'clock", -4.791649752930709),+                                    ("next <cycle>monday", -5.484796933490655),+                                    ("on a named-daybetween <time-of-day> and <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("exactly <time-of-day>tomorrow", -5.484796933490655),+                                    ("on a named-day<time> <part-of-day>", -5.079331825382491),+                                    ("monthhour", -4.5685062016165),+                                    ("on <date>between <datetime> and <datetime> (interval)",+                                     -5.484796933490655),+                                    ("last <day-of-week> of <time>year", -5.484796933490655),+                                    ("on a named-day<time-of-day>  o'clock", -5.484796933490655),+                                    ("next <cycle>March", -5.484796933490655),+                                    ("todayat <time-of-day>", -4.791649752930709),+                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("on <date>at <time-of-day>", -4.791649752930709),+                                    ("thursday<time> timezone", -5.079331825382491),+                                    ("on <date>about <time-of-day>", -4.791649752930709),+                                    ("dayday", -3.1822118404966093),+                                    ("on <date><time> <part-of-day>", -4.5685062016165),+                                    ("dd/mmabout <time-of-day>", -5.079331825382491),+                                    ("<day-of-month> (ordinal)intersect", -5.484796933490655),+                                    ("hourhour", -4.386184644822546),+                                    ("saturday<day-of-month> (non ordinal) <named-month>",+                                     -5.484796933490655),+                                    ("thursdayat <time-of-day>", -5.484796933490655),+                                    ("today/tomorrow/yesterday afternoon<hour-of-day> <integer> (as relative minutes)",+                                     -5.079331825382491),+                                    ("intersect<day-of-month> (non ordinal) <named-month>",+                                     -4.386184644822546),+                                    ("dayyear", -3.405355391810819),+                                    ("tuesdayafter <duration>", -5.484796933490655),+                                    ("tomorrow<time-of-day>  o'clock", -5.484796933490655),+                                    ("<time-of-day>  o'clocktomorrow", -4.791649752930709),+                                    ("<day-of-month> (non ordinal) <named-month>intersect",+                                     -5.484796933490655),+                                    ("thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("thursdaybetween <datetime> and <datetime> (interval)",+                                     -5.484796933490655),+                                    ("<day-of-month>(ordinal) <named-month>year",+                                     -5.484796933490655),+                                    ("<day-of-month> (ordinal)tuesday", -5.484796933490655),+                                    ("hourminute", -4.791649752930709),+                                    ("thursdayhh:mm", -5.484796933490655),+                                    ("this <cycle>wednesday", -5.484796933490655),+                                    ("absorption of , after named day<named-month> <day-of-month> (non ordinal)",+                                     -5.484796933490655),+                                    ("<day-of-month> (non ordinal) <named-month><time> <part-of-day>",+                                     -5.079331825382491),+                                    ("on <date><day-of-month> (non ordinal) <named-month>",+                                     -5.484796933490655),+                                    ("Aprilabout <time-of-day>", -5.484796933490655),+                                    ("thursdayfrom <datetime> - <datetime> (interval)",+                                     -5.484796933490655),+                                    ("<day-of-month> (ordinal)February", -5.484796933490655),+                                    ("thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.791649752930709),+                                    ("absorption of , after named day<day-of-month> (non ordinal) <named-month>",+                                     -4.5685062016165),+                                    ("today/tomorrow/yesterday evening<time-of-day>  o'clock",+                                     -5.484796933490655),+                                    ("fridayintersect", -4.791649752930709),+                                    ("on <date><time-of-day> - <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("on <date><datetime> - <datetime> (interval)",+                                     -5.484796933490655),+                                    ("this <cycle>monday", -5.484796933490655),+                                    ("April<time-of-day>  o'clock", -5.484796933490655),+                                    ("next <cycle>wednesday", -5.484796933490655),+                                    ("hh:mmintersect", -5.079331825382491),+                                    ("thursday<datetime> - <datetime> (interval)",+                                     -5.079331825382491),+                                    ("<day-of-month> (ordinal)July", -5.484796933490655),+                                    ("thursday<time-of-day> - <time-of-day> (interval)",+                                     -5.079331825382491),+                                    ("yearmonth", -5.484796933490655),+                                    ("at <time-of-day>intersect", -5.079331825382491),+                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",+                                     -5.079331825382491),+                                    ("<time> <part-of-day>from <time-of-day> - <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("dayminute", -2.7767467323884447),+                                    ("<time> <part-of-day>from <datetime> - <datetime> (interval)",+                                     -5.484796933490655),+                                    ("intersectyear", -4.791649752930709),+                                    ("<time-of-day> am|pmsaturday", -5.484796933490655),+                                    ("<ordinal> <cycle> of <time>year", -5.484796933490655),+                                    ("minuteday", -3.2875723561544357),+                                    ("absorption of , after named dayintersect",+                                     -5.484796933490655),+                                    ("Julyyear", -5.484796933490655),+                                    ("year<time-of-day>  o'clock", -5.484796933490655),+                                    ("Octoberyear", -4.386184644822546),+                                    ("hh:mmon <date>", -5.079331825382491),+                                    ("today/tomorrow/yesterday afternoonat <time-of-day>",+                                     -5.484796933490655),+                                    ("dd/mmyear", -5.484796933490655),+                                    ("tuesdayin <duration>", -5.484796933490655),+                                    ("Septemberyear", -5.079331825382491),+                                    ("at <time-of-day>on <date>", -5.079331825382491),+                                    ("absorption of , after named daydd/mm", -5.079331825382491),+                                    ("intersectintersect", -5.484796933490655),+                                    ("hh:mmon a named-day", -5.484796933490655),+                                    ("weekday", -4.098502572370764),+                                    ("dayweek", -4.791649752930709),+                                    ("weekyear", -5.079331825382491),+                                    ("on <date>February", -5.484796933490655),+                                    ("Kerstmisyear", -5.484796933490655),+                                    ("<month> dd-dd (interval)year", -5.484796933490655),+                                    ("tomorrowat <time-of-day>", -5.079331825382491),+                                    ("next <cycle>tuesday", -5.484796933490655),+                                    ("monday<day-of-month> (non ordinal) <named-month>",+                                     -5.484796933490655),+                                    ("at <time-of-day>tomorrow", -5.484796933490655),+                                    ("monday<named-month> <day-of-month> (non ordinal)",+                                     -5.484796933490655),+                                    ("<day-of-month> (non ordinal) <named-month>about <time-of-day>",+                                     -5.484796933490655),+                                    ("on a named-day<time-of-day> - <time-of-day> (interval)",+                                     -5.484796933490655),+                                    ("today/tomorrow/yesterday eveningat <time-of-day>",+                                     -5.079331825382491),+                                    ("last <cycle> of <time>year", -5.079331825382491),+                                    ("on a named-day<datetime> - <datetime> (interval)",+                                     -5.484796933490655),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -4.5685062016165),+                                    ("April<time> <part-of-day>", -5.079331825382491)],+                               n = 169},+                   koData =+                     ClassData{prior = -1.3518081850487211, unseen = -5.572154032177765,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -4.875197323201151),+                                    ("dayhour", -3.488902962081261),+                                    ("on a named-dayafter <time-of-day>", -4.875197323201151),+                                    ("July<day-of-month> (non ordinal) <named-month>",+                                     -4.875197323201151),+                                    ("daymonth", -3.9589065913269965),+                                    ("monthday", -4.4697322150929875),+                                    ("monthyear", -3.776585034533042),+                                    ("yearhour", -4.875197323201151),+                                    ("intersect<time-of-day>  o'clock", -4.875197323201151),+                                    ("on a named-dayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.4697322150929875),+                                    ("<day-of-month> (ordinal)wednesday", -4.4697322150929875),+                                    ("Julyintersect", -4.875197323201151),+                                    ("thursdayafter <time-of-day>", -4.875197323201151),+                                    ("intersect<time> <part-of-day>", -4.875197323201151),+                                    ("Marchyear", -4.875197323201151),+                                    ("<day-of-month> (ordinal)year", -4.875197323201151),+                                    ("on a named-dayat <time-of-day>", -4.875197323201151),+                                    ("on a named-daybetween <datetime> and <datetime> (interval)",+                                     -4.875197323201151),+                                    ("tuesdayafter <time-of-day>", -4.875197323201151),+                                    ("on a named-daybetween <time-of-day> and <time-of-day> (interval)",+                                     -4.875197323201151),+                                    ("monthhour", -3.9589065913269965),+                                    ("on <date>between <datetime> and <datetime> (interval)",+                                     -4.875197323201151),+                                    ("todayat <time-of-day>", -4.875197323201151),+                                    ("on <date>between <time-of-day> and <time-of-day> (interval)",+                                     -4.875197323201151),+                                    ("on <date>at <time-of-day>", -4.875197323201151),+                                    ("on <date>about <time-of-day>", -4.875197323201151),+                                    ("dayday", -3.776585034533042),+                                    ("hourhour", -4.182050142641207),+                                    ("thursdayat <time-of-day>", -4.875197323201151),+                                    ("dayyear", -4.182050142641207),+                                    ("thursdaybetween <time-of-day> and <time-of-day> (interval)",+                                     -4.875197323201151),+                                    ("thursdaybetween <datetime> and <datetime> (interval)",+                                     -4.875197323201151),+                                    ("<day-of-month> (ordinal)tuesday", -4.4697322150929875),+                                    ("thursdayhh:mm", -4.4697322150929875),+                                    ("Aprilabout <time-of-day>", -4.875197323201151),+                                    ("thursdayfrom <datetime> - <datetime> (interval)",+                                     -4.875197323201151),+                                    ("Aprilyear", -4.875197323201151),+                                    ("thursdayfrom <time-of-day> - <time-of-day> (interval)",+                                     -4.182050142641207),+                                    ("mondayFebruary", -4.875197323201151),+                                    ("on <date><time-of-day> - <time-of-day> (interval)",+                                     -4.875197323201151),+                                    ("yearuntil <time-of-day>", -4.4697322150929875),+                                    ("thursday<time-of-day> - <time-of-day> (interval)",+                                     -4.4697322150929875),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -4.875197323201151),+                                    ("August<day-of-month> (non ordinal) <named-month>",+                                     -4.875197323201151),+                                    ("on <date>from <time-of-day> - <time-of-day> (interval)",+                                     -4.4697322150929875),+                                    ("dayminute", -2.3902906734131513),+                                    ("thursday<part-of-day> of <time>", -4.875197323201151),+                                    ("Julyyear", -4.4697322150929875),+                                    ("Octoberyear", -4.875197323201151),+                                    ("today/tomorrow/yesterday afternoonat <time-of-day>",+                                     -4.4697322150929875),+                                    ("year<time> <part-of-day>", -4.875197323201151),+                                    ("today/tomorrow/yesterday afternoon<time-of-day>  o'clock",+                                     -4.875197323201151),+                                    ("yearday", -4.4697322150929875),+                                    ("absorption of , after named dayFebruary", -4.875197323201151),+                                    ("<day-of-month> (non ordinal) <named-month>about <time-of-day>",+                                     -4.875197323201151),+                                    ("after <time-of-day>year", -4.875197323201151),+                                    ("on a named-day<time-of-day> - <time-of-day> (interval)",+                                     -4.875197323201151),+                                    ("on <date>after <time-of-day>", -4.875197323201151),+                                    ("<day-of-month> (non ordinal) <named-month>year",+                                     -4.875197323201151)],+                               n = 59}}),+       ("<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}}),+       ("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 = -0.40546510810816444,+                               unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("dd/mm/yyyydd/mm", -2.2512917986064953),+                                    ("minuteminute", -2.2512917986064953),+                                    ("time-of-day (latent)time-of-day (latent)",+                                     -2.2512917986064953),+                                    ("hh:mmhh:mm", -2.2512917986064953),+                                    ("dayday", -1.845826690498331),+                                    ("dd/mm/yyyydd/mm/yyyy", -2.2512917986064953),+                                    ("hourhour", -2.2512917986064953)],+                               n = 4},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("dayhour", -2.0149030205422647),+                                    ("hh:mmtime-of-day (latent)", -2.0149030205422647),+                                    ("minutehour", -2.0149030205422647),+                                    ("dd/mm/yyyytime-of-day (latent)", -2.0149030205422647)],+                               n = 2}}),+       ("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.0, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.466337068793427),+                                    ("month (grain)", -2.5649493574615367),+                                    ("year (grain)", -2.159484249353372),+                                    ("week (grain)", -1.466337068793427),+                                    ("quarter", -2.5649493574615367), ("year", -2.159484249353372),+                                    ("month", -2.5649493574615367),+                                    ("quarter (grain)", -2.5649493574615367)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.1972245773362196,+                               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}}),+       ("yyyy-mm-dd",+        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}}),+       ("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}}),+       ("couple",+        Classifier{okData =+                     ClassData{prior = 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.3025850929940455,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 8},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("<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}}),+       ("today/tomorrow/yesterday 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}}),+       ("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}}),+       ("monday",+        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}}),+       ("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)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}}),+       ("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}}),+       ("today/tomorrow/yesterday evening",+        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}}),+       ("week (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}}),+       ("<part-of-day> of <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+                                   [("hourhour", -0.6931471805599453),+                                    ("morningtime-of-day (latent)", -0.6931471805599453)],+                               n = 1}}),+       ("Vaderdag",+        Classifier{okData =+                     ClassData{prior = 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}}),+       ("number,number uur",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("this <part-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("afternoon", -1.252762968495368),+                                    ("hour", -0.8472978603872037), ("evening", -1.252762968495368)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month>(ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -1.252762968495368),+                                    ("ordinal (digits)February", -1.252762968495368),+                                    ("month", -0.8472978603872037)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               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 = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -9.53101798043249e-2),+                                    ("fractional number", -2.3978952727983707)],+                               n = 20}}),+       ("Nieuwjaarsdag",+        Classifier{okData =+                     ClassData{prior = 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.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}}),+       ("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}}),+       ("half to|till|before <integer> (hour-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("half an hour",+        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}}),+       ("fractional number",+        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}}),+       ("afternoon",+        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}}),+       ("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.0, unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -1.4816045409242156),+                                    ("year (grain)", -2.3978952727983707),+                                    ("week (grain)", -1.4816045409242156),+                                    ("day", -2.3978952727983707), ("quarter", -2.3978952727983707),+                                    ("year", -2.3978952727983707),+                                    ("quarter (grain)", -2.3978952727983707),+                                    ("day (grain)", -2.3978952727983707)],+                               n = 7},+                   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}}),+       ("night",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("sunday",+        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}}),+       ("about <time-of-day>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.58351893845611,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time-of-day>  o'clock", -1.4759065198095778),+                                    ("time-of-day (latent)", -1.4759065198095778),+                                    ("quarter after|past <integer> (hour-of-day)",+                                     -2.8622008809294686),+                                    ("hour", -0.8472978603872037), ("minute", -2.8622008809294686)],+                               n = 15},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("time-of-day (latent)",+        Classifier{okData =+                     ClassData{prior = -0.3925617032722565, unseen = -4.02535169073515,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.24613306953890846),+                                    ("integer (0..19)", -1.6094379124341003)],+                               n = 52},+                   koData =+                     ClassData{prior = -1.1249295969854831, unseen = -3.367295829986474,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)", -0.2411620568168881),+                                    ("integer (0..19)", -1.9459101490553135),+                                    ("couple", -2.639057329615259)],+                               n = 25}}),+       ("year",+        Classifier{okData =+                     ClassData{prior = -0.19105523676270922,+                               unseen = -3.044522437723423,+                               likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],+                               n = 19},+                   koData =+                     ClassData{prior = -1.749199854809259, 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),+                                    ("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 = -1.207415148516909, unseen = -4.406719247264253,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.315007612992603),+                                    ("integer (0..19)year (grain)", -3.295836866004329),+                                    ("integer (numeric)day (grain)", -2.7850112422383386),+                                    ("couplehour (grain)", -3.7013019741124937),+                                    ("integer (0..19)second (grain) ", -3.7013019741124937),+                                    ("integer (0..19)hour (grain)", -3.0081547935525483),+                                    ("second", -3.7013019741124937),+                                    ("integer (numeric)year (grain)", -3.7013019741124937),+                                    ("day", -2.7850112422383386), ("year", -3.0081547935525483),+                                    ("integer (numeric)week (grain)", -3.295836866004329),+                                    ("integer (0..19)month (grain)", -3.7013019741124937),+                                    ("hour", -2.6026896854443837), ("month", -3.7013019741124937),+                                    ("integer (numeric)minute (grain)", -2.4485390056171257),+                                    ("integer (0..19)minute (grain)", -3.295836866004329),+                                    ("minute", -2.1972245773362196),+                                    ("integer (numeric)hour (grain)", -3.7013019741124937),+                                    ("integer (0..19)week (grain)", -2.6026896854443837)],+                               n = 29},+                   koData =+                     ClassData{prior = -0.3552032733272762, unseen = -5.075173815233827,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.6826098411003407),+                                    ("integer (0..19)year (grain)", -3.970291913552122),+                                    ("integer (numeric)day (grain)", -3.6826098411003407),+                                    ("integer (0..19)second (grain) ", -4.375757021660286),+                                    ("integer (0..19)hour (grain)", -2.871679624884012),+                                    ("second", -3.6826098411003407),+                                    ("integer (numeric)second (grain) ", -3.970291913552122),+                                    ("integer (numeric)year (grain)", -3.970291913552122),+                                    ("day", -3.2771447329921766), ("year", -3.459466289786131),+                                    ("integer (numeric)week (grain)", -3.970291913552122),+                                    ("integer (0..19)month (grain)", -3.970291913552122),+                                    ("hour", -1.2402628057311365), ("month", -3.459466289786131),+                                    ("integer (numeric)minute (grain)", -3.970291913552122),+                                    ("integer (0..19)minute (grain)", -3.970291913552122),+                                    ("integer (numeric)month (grain)", -3.970291913552122),+                                    ("minute", -3.459466289786131),+                                    ("coupleday (grain)", -4.375757021660286),+                                    ("integer (numeric)hour (grain)", -1.4313180424938456),+                                    ("integer (0..19)day (grain)", -4.375757021660286),+                                    ("integer (0..19)week (grain)", -4.375757021660286)],+                               n = 68}}),+       ("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 = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("time-of-day (latent)", -1.7047480922384253),+                                    ("hh:mm", -1.7047480922384253),+                                    ("until <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}}),+       ("<duration> after <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("yearday", -0.6931471805599453),+                                    ("<integer> <unit-of-duration>Kerstmis", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("today/tomorrow/yesterday 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}}),+       ("hh:mm",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.6888794541139363,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 38},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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 = -2.1972245773362196,+                               likelihoods =+                                 HashMap.fromList+                                   [("minuteminute", -1.3862943611198906),+                                    ("<integer> <unit-of-duration>time-of-day (latent)",+                                     -1.3862943611198906),+                                    ("minutehour", -1.3862943611198906),+                                    ("<integer> <unit-of-duration>half to|till|before <integer> (hour-of-day)",+                                     -1.3862943611198906)],+                               n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("quarter of an hour",+        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}}),+       ("intersect by ','",+        Classifier{okData =+                     ClassData{prior = -8.701137698962981e-2,+                               unseen = -3.5553480614894135,+                               likelihoods =+                                 HashMap.fromList+                                   [("wednesday<day-of-month> (non ordinal) <named-month>",+                                     -2.833213344056216),+                                    ("friday<day-of-month> (non ordinal) <named-month>",+                                     -2.833213344056216),+                                    ("dayday", -1.128465251817791), ("dayyear", -2.833213344056216),+                                    ("fridaydd/mm", -2.4277482359480516),+                                    ("fridaydd/mm/yyyy", -2.4277482359480516),+                                    ("fridayintersect", -2.833213344056216),+                                    ("sunday<named-month> <day-of-month> (non ordinal)",+                                     -2.833213344056216),+                                    ("monday<day-of-month> (non ordinal) <named-month>",+                                     -2.4277482359480516),+                                    ("<named-month> <day-of-month> (non ordinal)year",+                                     -2.833213344056216)],+                               n = 11},+                   koData =+                     ClassData{prior = -2.4849066497880004, unseen = -2.70805020110221,+                               likelihoods =+                                 HashMap.fromList+                                   [("daymonth", -1.9459101490553135),+                                    ("sundayFebruary", -1.9459101490553135)],+                               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}}),+       ("last <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -0.8109302162163288), ("sunday", -1.5040773967762742),+                                    ("tuesday", -1.0986122886681098)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("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}}),+       ("<day-of-month> (ordinal)",+        Classifier{okData =+                     ClassData{prior = -1.2809338454620642,+                               unseen = -2.0794415416798357,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)", -0.8472978603872037),+                                    ("ordinal (digits)", -0.5596157879354228)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.325422400434628, unseen = -2.772588722239781,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinals (first..19th)", -0.6286086594223742),+                                    ("ordinal (digits)", -0.7621400520468967)],+                               n = 13}}),+       ("Valentijnsdag",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("until <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.40546510810816444,+                               unseen = -3.7376696182833684,+                               likelihoods =+                                 HashMap.fromList+                                   [("<time> <part-of-day>", -2.327277705584417),+                                    ("<time-of-day>  o'clock", -2.1041341542702074),+                                    ("time-of-day (latent)", -1.9218125974762528),+                                    ("<time-of-day> am|pm", -3.0204248861443626),+                                    ("EOM|End of month", -3.0204248861443626),+                                    ("hour", -1.074514737089049), ("month", -3.0204248861443626)],+                               n = 14},+                   koData =+                     ClassData{prior = -1.0986122886681098, unseen = -3.332204510175204,+                               likelihoods =+                                 HashMap.fromList+                                   [("dd/mm", -2.6026896854443837),+                                    ("dd/mm/yyyy", -2.6026896854443837),+                                    ("half to|till|before <integer> (hour-of-day)",+                                     -2.1972245773362196),+                                    ("day", -2.1972245773362196), ("hh:mm", -1.9095425048844386),+                                    ("minute", -1.5040773967762742)],+                               n = 7}}),+       ("after <duration>",+        Classifier{okData =+                     ClassData{prior = -0.10536051565782628,+                               unseen = -3.258096538021482,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.120263536200091), ("second", -2.5257286443082556),+                                    ("day", -2.5257286443082556),+                                    ("<integer> <unit-of-duration>", -1.0216512475319814),+                                    ("hour", -1.8325814637483102), ("minute", -2.120263536200091),+                                    ("<integer> kwartier", -2.5257286443082556)],+                               n = 9},+                   koData =+                     ClassData{prior = -2.3025850929940455,+                               unseen = -2.3025850929940455,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.5040773967762742),+                                    ("hour", -1.5040773967762742)],+                               n = 1}}),+       ("evening",+        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}}),+       ("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}}),+       ("<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.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("wednesday", -1.8718021769015913),+                                    ("monday", -1.466337068793427), ("day", -1.1786549963416462),+                                    ("hour", -1.8718021769015913),+                                    ("week-end", -1.8718021769015913)],+                               n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("last <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}}),+       ("Sinterklaas",+        Classifier{okData =+                     ClassData{prior = 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.828641396489095,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -3.1135153092103742),+                                    ("integer (0..19)year (grain)", -3.1135153092103742),+                                    ("integer (numeric)day (grain)", -3.1135153092103742),+                                    ("integer (0..19)second (grain) ", -3.1135153092103742),+                                    ("second", -3.1135153092103742),+                                    ("integer (numeric)year (grain)", -3.1135153092103742),+                                    ("day", -2.4203681286504293), ("year", -2.70805020110221),+                                    ("integer (numeric)week (grain)", -3.1135153092103742),+                                    ("integer (0..19)month (grain)", -3.1135153092103742),+                                    ("hour", -2.70805020110221), ("month", -2.70805020110221),+                                    ("integer (numeric)minute (grain)", -3.1135153092103742),+                                    ("integer (0..19)minute (grain)", -3.1135153092103742),+                                    ("integer (numeric)month (grain)", -3.1135153092103742),+                                    ("minute", -2.70805020110221),+                                    ("coupleday (grain)", -3.1135153092103742),+                                    ("integer (numeric)hour (grain)", -2.70805020110221),+                                    ("integer (0..19)day (grain)", -3.1135153092103742)],+                               n = 13},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.995732273553991,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("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}}),+       ("about|exactly <duration>",+        Classifier{okData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -0.6931471805599453),+                                    ("hour", -0.6931471805599453)],+                               n = 1}}),+       ("Koningsdag",+        Classifier{okData =+                     ClassData{prior = 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.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0},+                   koData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("half to|till|before <integer> (hour-of-day)",+                                     -1.7346010553881064),+                                    ("time-of-day (latent)", -1.4469189829363254),+                                    ("hh:mm", -2.1400661634962708), ("hour", -1.4469189829363254),+                                    ("minute", -1.4469189829363254)],+                               n = 6}}),+       ("in <duration>",+        Classifier{okData =+                     ClassData{prior = -4.652001563489282e-2,+                               unseen = -3.970291913552122,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5649493574615367), ("second", -3.258096538021482),+                                    ("number,number uur", -3.258096538021482),+                                    ("day", -2.8526314299133175), ("year", -3.258096538021482),+                                    ("<integer> <unit-of-duration>", -1.006804739414987),+                                    ("hour", -2.159484249353372),+                                    ("<integer> and an half hour", -3.258096538021482),+                                    ("minute", -1.6486586255873816),+                                    ("<integer> kwartier", -3.258096538021482)],+                               n = 21},+                   koData =+                     ClassData{prior = -3.0910424533583156,+                               unseen = -2.5649493574615367,+                               likelihoods =+                                 HashMap.fromList+                                   [("<integer> <unit-of-duration>", -1.791759469228055),+                                    ("hour", -1.791759469228055)],+                               n = 1}}),+       ("<datetime> - <datetime> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.2076393647782445,+                               unseen = -3.6375861597263857,+                               likelihoods =+                                 HashMap.fromList+                                   [("intersecthh:mm", -2.001480000210124),+                                    ("on <date>hh:mm", -2.917770732084279),+                                    ("at <time-of-day>hh:mm", -2.917770732084279),+                                    ("minuteminute", -1.213022639845854),+                                    ("hh:mmhh:mm", -2.001480000210124),+                                    ("dayday", -2.2246235515243336),+                                    ("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",+                                     -2.512305623976115),+                                    ("dd/mmdd/mm", -2.917770732084279)],+                               n = 13},+                   koData =+                     ClassData{prior = -1.6739764335716716, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("<named-month> <day-of-month> (non ordinal)July",+                                     -2.1400661634962708),+                                    ("daymonth", -1.7346010553881064),+                                    ("minuteminute", -2.1400661634962708),+                                    ("hh:mmhh:mm", -2.1400661634962708),+                                    ("<named-month> <day-of-month> (non ordinal)August",+                                     -2.1400661634962708)],+                               n = 3}}),+       ("<integer> and an half hour",+        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}}),+       ("relative minutes to|till|before|after <integer> (time-of-day)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -1.2992829841302609),+                                    ("integer (numeric)half to|till|before <integer> (hour-of-day)",+                                     -1.7047480922384253),+                                    ("integer (numeric)time-of-day (latent)", -1.7047480922384253),+                                    ("integer (20..90)time-of-day (latent)", -1.7047480922384253),+                                    ("minute", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<time-of-day> - <time-of-day> (interval)",+        Classifier{okData =+                     ClassData{prior = -0.9808292530117262,+                               unseen = -2.9444389791664407,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>hh:mm", -2.1972245773362196),+                                    ("minuteminute", -0.9444616088408514),+                                    ("hh:mmhh:mm", -1.0986122886681098)],+                               n = 6},+                   koData =+                     ClassData{prior = -0.4700036292457356, unseen = -3.295836866004329,+                               likelihoods =+                                 HashMap.fromList+                                   [("hh:mmtime-of-day (latent)", -1.1786549963416462),+                                    ("minuteminute", -2.159484249353372),+                                    ("hh:mmhh:mm", -2.159484249353372),+                                    ("minutehour", -1.0608719606852628),+                                    ("at <time-of-day>time-of-day (latent)", -2.5649493574615367)],+                               n = 10}}),+       ("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.713572066704308,+                               likelihoods =+                                 HashMap.fromList+                                   [("week", -2.5902671654458267),+                                    ("integer (0..19)year (grain)", -2.995732273553991),+                                    ("integer (numeric)day (grain)", -2.5902671654458267),+                                    ("second", -2.5902671654458267),+                                    ("integer (numeric)second (grain) ", -2.5902671654458267),+                                    ("integer (numeric)year (grain)", -2.995732273553991),+                                    ("day", -2.5902671654458267), ("year", -2.5902671654458267),+                                    ("integer (numeric)week (grain)", -2.995732273553991),+                                    ("integer (0..19)month (grain)", -2.995732273553991),+                                    ("month", -2.5902671654458267),+                                    ("integer (numeric)minute (grain)", -2.995732273553991),+                                    ("integer (0..19)minute (grain)", -2.995732273553991),+                                    ("integer (numeric)month (grain)", -2.995732273553991),+                                    ("minute", -2.5902671654458267),+                                    ("integer (0..19)week (grain)", -2.995732273553991)],+                               n = 12},+                   koData =+                     ClassData{prior = -infinity, unseen = -2.833213344056216,+                               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+                                   [("dayday", -0.916290731874155),+                                    ("ordinals (first..19th)tuesdayKerstmis", -0.916290731874155)],+                               n = 1}}),+       ("<named-month> <day-of-month> (non ordinal)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -3.1780538303479458,+                               likelihoods =+                                 HashMap.fromList+                                   [("Augustinteger (numeric)", -1.749199854809259),+                                    ("Aprilinteger (numeric)", -2.4423470353692043),+                                    ("month", -0.832909122935104),+                                    ("Februaryinteger (numeric)", -1.749199854809259),+                                    ("Julyinteger (numeric)", -2.03688192726104)],+                               n = 9},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<day-of-month> (non ordinal) <named-month>",+        Classifier{okData =+                     ClassData{prior = -0.3448404862917295,+                               unseen = -3.7612001156935624,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)September", -2.639057329615259),+                                    ("integer (numeric)April", -2.639057329615259),+                                    ("integer (numeric)August", -3.044522437723423),+                                    ("integer (numeric)February", -1.6582280766035324),+                                    ("month", -0.8472978603872037),+                                    ("integer (numeric)July", -2.639057329615259),+                                    ("integer (numeric)March", -2.3513752571634776)],+                               n = 17},+                   koData =+                     ClassData{prior = -1.2321436812926323,+                               unseen = -3.1354942159291497,+                               likelihoods =+                                 HashMap.fromList+                                   [("integer (numeric)August", -2.3978952727983707),+                                    ("month", -1.0116009116784799),+                                    ("integer (numeric)October", -2.3978952727983707),+                                    ("integer (numeric)July", -1.2992829841302609)],+                               n = 7}}),+       ("this|next <day-of-week>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("wednesday", -1.8718021769015913),+                                    ("monday", -0.9555114450274363), ("day", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               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.8109302162163288, unseen = -1.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -0.587786664902119, unseen = -1.9459101490553135,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),+       ("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+                                   [("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 = -1.6094379124341003,+                               likelihoods =+                                 HashMap.fromList+                                   [("ordinal (digits)July", -0.6931471805599453),+                                    ("month", -0.6931471805599453)],+                               n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("morning",+        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}}),+       ("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}}),+       ("Oudjaar",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("after <time-of-day>",+        Classifier{okData =+                     ClassData{prior = -0.587786664902119, unseen = -2.995732273553991,+                               likelihoods =+                                 HashMap.fromList+                                   [("at <time-of-day>", -1.845826690498331),+                                    ("<time-of-day>  o'clock", -1.845826690498331),+                                    ("time-of-day (latent)", -2.2512917986064953),+                                    ("hour", -1.1526795099383855)],+                               n = 5},+                   koData =+                     ClassData{prior = -0.8109302162163288, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("Kerstmis", -1.7346010553881064),+                                    ("intersect", -2.1400661634962708),+                                    ("day", -1.4469189829363254), ("hh:mm", -2.1400661634962708),+                                    ("minute", -2.1400661634962708)],+                               n = 4}}),+       ("day (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}}),+       ("Moederdag",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.0986122886681098,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 1},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<month> dd-dd (interval)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.639057329615259,+                               likelihoods =+                                 HashMap.fromList+                                   [("October", -1.8718021769015913), ("July", -0.9555114450274363),+                                    ("month", -0.7731898882334817)],+                               n = 5},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("summer",+        Classifier{okData =+                     ClassData{prior = 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> (as relative minutes)",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.890371757896165,+                               likelihoods =+                                 HashMap.fromList+                                   [("hour", -0.7537718023763802),+                                    ("at <time-of-day>integer (numeric)", -2.1400661634962708),+                                    ("<time-of-day>  o'clockinteger (numeric)",+                                     -0.8873031950009028)],+                               n = 7},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [], n = 0}}),+       ("<integer> kwartier",+        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}}),+       ("this <time>",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -2.4849066497880004,+                               likelihoods =+                                 HashMap.fromList+                                   [("day", -1.2992829841302609), ("hour", -1.7047480922384253),+                                    ("winter", -1.7047480922384253),+                                    ("week-end", -1.7047480922384253),+                                    ("summer", -1.7047480922384253)],+                               n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                               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}}),+       ("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.791759469228055,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}})]
+ Duckling/Ranking/Classifiers/NL_NL.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_NL (classifiers) where+import Data.String+import Prelude+import qualified Data.HashMap.Strict as HashMap+import Duckling.Ranking.Types++classifiers :: Classifiers+classifiers = HashMap.fromList []
Duckling/Ranking/Classifiers/ZH_CN.hs view
@@ -54,6 +54,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22269\38469\28040\36153\32773\26435\30410\26085",+        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}}),+       ("\24314\20891\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),        ("today",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -146,12 +160,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\20803\26086",+        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",         Classifier{okData =                      ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.367295829986474),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -3.367295829986474),                                     ("year (numeric with year symbol)<named-month> <day-of-month>",                                      -1.7578579175523736),                                     ("dayday", -1.6094379124341003),@@ -169,7 +191,8 @@                      ClassData{prior = -1.215022640512521, unseen = -4.276666119016055,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.065455299705096),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -2.065455299705096),                                     ("dayhour", -2.653241964607215),                                     ("daymonth", -2.1832383353614793),                                     ("year (numeric with year symbol)February", -3.164067588373206),@@ -254,8 +277,8 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("evening|night",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     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}}),@@ -342,13 +365,6 @@                      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,@@ -364,6 +380,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\24858\20154\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 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,@@ -393,6 +416,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\28595\38376\22238\24402\32426\24565\26085",+        Classifier{okData =+                     ClassData{prior = 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 <day-of-week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -3.1780538303479458,@@ -474,17 +504,18 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<dim time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.248495242049359,+                     ClassData{prior = 0.0, unseen = -4.31748811353631,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -0.7375989431307791),-                                    ("national dayevening|night", -3.1354942159291497),-                                    ("<named-month> <day-of-month>morning", -1.1895840668738362),-                                    ("children's dayafternoon", -3.1354942159291497),-                                    ("Mondaymorning", -2.03688192726104)],-                               n = 32},+                                   [("dayhour", -0.7487170317147561),+                                    ("national dayevening|night", -3.20545280453606),+                                    ("<named-month> <day-of-month>morning", -1.2595426554807467),+                                    ("\24773\20154\33410evening|night", -3.20545280453606),+                                    ("\20799\31461\33410afternoon", -3.20545280453606),+                                    ("Mondaymorning", -2.10684051586795)],+                               n = 34},                    koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,                                likelihoods = HashMap.fromList [], n = 0}}),        ("<part-of-day> <dim time>",         Classifier{okData =@@ -560,6 +591,13 @@                                    [("<integer> (latent time-of-day)", -0.916290731874155),                                     ("hour", -0.916290731874155)],                                n = 3}}),+       ("number suffix: \19975",+        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}}),        ("relative minutes after|past <integer> (hour-of-day)",         Classifier{okData =                      ClassData{prior = -0.6931471805599453,@@ -581,13 +619,6 @@                                      -1.3862943611198906),                                     ("hour", -0.7801585575495751)],                                n = 10}}),-       ("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.2231435513142097, unseen = -4.110873864173311,@@ -636,6 +667,13 @@                                     ("hour", -2.2617630984737906), ("month", -2.772588722239781),                                     ("minute", -2.772588722239781)],                                n = 20}}),+       ("\22307\35806\33410",+        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 <time>",         Classifier{okData =                      ClassData{prior = -1.2286654169163076,@@ -667,6 +705,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22919\22899\33410",+        Classifier{okData =+                     ClassData{prior = 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 = -1.6486586255873816, unseen = -2.890371757896165,@@ -705,20 +750,6 @@                                    [("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.61512051684126,@@ -743,20 +774,27 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.833213344056216,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("Tuesday",+       ("\19975\22307\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("children's day",+       ("\20799\31461\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                     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}}),+       ("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}}),        ("<named-month> <day-of-month>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -5.231108616854587,@@ -781,14 +819,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.3978952727983707,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\21171\21160\33410",+        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..10)",         Classifier{okData =-                     ClassData{prior = -0.38372512147175847,-                               unseen = -5.236441962829949,+                     ClassData{prior = -0.4090429294560484, unseen = -5.236441962829949,                                likelihoods = HashMap.fromList [("", 0.0)], n = 186},                    koData =-                     ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 87}}),+                     ClassData{prior = -1.0914948208992459, unseen = -4.564348191467836,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 94}}),        ("last n <cycle>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.605170185988091,@@ -871,24 +915,17 @@                    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",+       ("<number>\20010/\20491",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("<number>\20010/\20491",+       ("\24773\20154\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},+                     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}}),
Duckling/Ranking/Classifiers/ZH_HK.hs view
@@ -54,6 +54,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22269\38469\28040\36153\32773\26435\30410\26085",+        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}}),+       ("\24314\20891\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),        ("today",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -146,12 +160,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\20803\26086",+        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",         Classifier{okData =                      ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.367295829986474),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -3.367295829986474),                                     ("year (numeric with year symbol)<named-month> <day-of-month>",                                      -1.7578579175523736),                                     ("dayday", -1.6094379124341003),@@ -169,7 +191,8 @@                      ClassData{prior = -1.215022640512521, unseen = -4.276666119016055,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.065455299705096),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -2.065455299705096),                                     ("dayhour", -2.653241964607215),                                     ("daymonth", -2.1832383353614793),                                     ("year (numeric with year symbol)February", -3.164067588373206),@@ -254,8 +277,8 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("evening|night",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     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}}),@@ -342,13 +365,6 @@                      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,@@ -364,6 +380,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\24858\20154\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 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,@@ -393,6 +416,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\28595\38376\22238\24402\32426\24565\26085",+        Classifier{okData =+                     ClassData{prior = 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 <day-of-week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -3.1780538303479458,@@ -474,17 +504,18 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<dim time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.248495242049359,+                     ClassData{prior = 0.0, unseen = -4.31748811353631,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -0.7375989431307791),-                                    ("national dayevening|night", -3.1354942159291497),-                                    ("<named-month> <day-of-month>morning", -1.1895840668738362),-                                    ("children's dayafternoon", -3.1354942159291497),-                                    ("Mondaymorning", -2.03688192726104)],-                               n = 32},+                                   [("dayhour", -0.7487170317147561),+                                    ("national dayevening|night", -3.20545280453606),+                                    ("<named-month> <day-of-month>morning", -1.2595426554807467),+                                    ("\24773\20154\33410evening|night", -3.20545280453606),+                                    ("\20799\31461\33410afternoon", -3.20545280453606),+                                    ("Mondaymorning", -2.10684051586795)],+                               n = 34},                    koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,                                likelihoods = HashMap.fromList [], n = 0}}),        ("<part-of-day> <dim time>",         Classifier{okData =@@ -560,6 +591,13 @@                                    [("<integer> (latent time-of-day)", -0.916290731874155),                                     ("hour", -0.916290731874155)],                                n = 3}}),+       ("number suffix: \19975",+        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}}),        ("relative minutes after|past <integer> (hour-of-day)",         Classifier{okData =                      ClassData{prior = -0.6931471805599453,@@ -581,13 +619,6 @@                                      -1.3862943611198906),                                     ("hour", -0.7801585575495751)],                                n = 10}}),-       ("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.2231435513142097, unseen = -4.110873864173311,@@ -636,6 +667,13 @@                                     ("hour", -2.2617630984737906), ("month", -2.772588722239781),                                     ("minute", -2.772588722239781)],                                n = 20}}),+       ("\22307\35806\33410",+        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 <time>",         Classifier{okData =                      ClassData{prior = -1.2286654169163076,@@ -667,6 +705,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22919\22899\33410",+        Classifier{okData =+                     ClassData{prior = 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 = -1.6486586255873816, unseen = -2.890371757896165,@@ -705,20 +750,6 @@                                    [("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.61512051684126,@@ -743,20 +774,27 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.833213344056216,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("Tuesday",+       ("\19975\22307\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("children's day",+       ("\20799\31461\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                     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}}),+       ("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}}),        ("<named-month> <day-of-month>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -5.231108616854587,@@ -781,14 +819,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.3978952727983707,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\21171\21160\33410",+        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..10)",         Classifier{okData =-                     ClassData{prior = -0.38372512147175847,-                               unseen = -5.236441962829949,+                     ClassData{prior = -0.4090429294560484, unseen = -5.236441962829949,                                likelihoods = HashMap.fromList [("", 0.0)], n = 186},                    koData =-                     ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 87}}),+                     ClassData{prior = -1.0914948208992459, unseen = -4.564348191467836,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 94}}),        ("last n <cycle>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.605170185988091,@@ -871,24 +915,17 @@                    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",+       ("<number>\20010/\20491",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("<number>\20010/\20491",+       ("\24773\20154\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},+                     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}}),
Duckling/Ranking/Classifiers/ZH_MO.hs view
@@ -54,6 +54,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22269\38469\28040\36153\32773\26435\30410\26085",+        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}}),+       ("\24314\20891\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),        ("today",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -146,12 +160,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\20803\26086",+        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",         Classifier{okData =                      ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.367295829986474),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -3.367295829986474),                                     ("year (numeric with year symbol)<named-month> <day-of-month>",                                      -1.7578579175523736),                                     ("dayday", -1.6094379124341003),@@ -169,7 +191,8 @@                      ClassData{prior = -1.215022640512521, unseen = -4.276666119016055,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.065455299705096),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -2.065455299705096),                                     ("dayhour", -2.653241964607215),                                     ("daymonth", -2.1832383353614793),                                     ("year (numeric with year symbol)February", -3.164067588373206),@@ -254,8 +277,8 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("evening|night",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     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}}),@@ -342,13 +365,6 @@                      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,@@ -364,6 +380,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\24858\20154\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 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,@@ -393,6 +416,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\28595\38376\22238\24402\32426\24565\26085",+        Classifier{okData =+                     ClassData{prior = 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 <day-of-week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -3.1780538303479458,@@ -474,17 +504,18 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<dim time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.248495242049359,+                     ClassData{prior = 0.0, unseen = -4.31748811353631,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -0.7375989431307791),-                                    ("national dayevening|night", -3.1354942159291497),-                                    ("<named-month> <day-of-month>morning", -1.1895840668738362),-                                    ("children's dayafternoon", -3.1354942159291497),-                                    ("Mondaymorning", -2.03688192726104)],-                               n = 32},+                                   [("dayhour", -0.7487170317147561),+                                    ("national dayevening|night", -3.20545280453606),+                                    ("<named-month> <day-of-month>morning", -1.2595426554807467),+                                    ("\24773\20154\33410evening|night", -3.20545280453606),+                                    ("\20799\31461\33410afternoon", -3.20545280453606),+                                    ("Mondaymorning", -2.10684051586795)],+                               n = 34},                    koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,                                likelihoods = HashMap.fromList [], n = 0}}),        ("<part-of-day> <dim time>",         Classifier{okData =@@ -560,6 +591,13 @@                                    [("<integer> (latent time-of-day)", -0.916290731874155),                                     ("hour", -0.916290731874155)],                                n = 3}}),+       ("number suffix: \19975",+        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}}),        ("relative minutes after|past <integer> (hour-of-day)",         Classifier{okData =                      ClassData{prior = -0.6931471805599453,@@ -581,13 +619,6 @@                                      -1.3862943611198906),                                     ("hour", -0.7801585575495751)],                                n = 10}}),-       ("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.2231435513142097, unseen = -4.110873864173311,@@ -636,6 +667,13 @@                                     ("hour", -2.2617630984737906), ("month", -2.772588722239781),                                     ("minute", -2.772588722239781)],                                n = 20}}),+       ("\22307\35806\33410",+        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 <time>",         Classifier{okData =                      ClassData{prior = -1.2286654169163076,@@ -667,6 +705,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22919\22899\33410",+        Classifier{okData =+                     ClassData{prior = 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 = -1.6486586255873816, unseen = -2.890371757896165,@@ -705,20 +750,6 @@                                    [("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.61512051684126,@@ -743,20 +774,27 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.833213344056216,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("Tuesday",+       ("\19975\22307\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("children's day",+       ("\20799\31461\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                     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}}),+       ("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}}),        ("<named-month> <day-of-month>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -5.231108616854587,@@ -781,14 +819,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.3978952727983707,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\21171\21160\33410",+        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..10)",         Classifier{okData =-                     ClassData{prior = -0.38372512147175847,-                               unseen = -5.236441962829949,+                     ClassData{prior = -0.4090429294560484, unseen = -5.236441962829949,                                likelihoods = HashMap.fromList [("", 0.0)], n = 186},                    koData =-                     ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 87}}),+                     ClassData{prior = -1.0914948208992459, unseen = -4.564348191467836,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 94}}),        ("last n <cycle>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.605170185988091,@@ -871,24 +915,17 @@                    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",+       ("<number>\20010/\20491",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("<number>\20010/\20491",+       ("\24773\20154\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},+                     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}}),
Duckling/Ranking/Classifiers/ZH_TW.hs view
@@ -54,6 +54,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22269\38469\28040\36153\32773\26435\30410\26085",+        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}}),+       ("\24314\20891\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),        ("today",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -146,12 +160,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\20803\26086",+        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",         Classifier{okData =                      ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.367295829986474),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -3.367295829986474),                                     ("year (numeric with year symbol)<named-month> <day-of-month>",                                      -1.7578579175523736),                                     ("dayday", -1.6094379124341003),@@ -169,7 +191,8 @@                      ClassData{prior = -1.215022640512521, unseen = -4.276666119016055,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.065455299705096),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -2.065455299705096),                                     ("dayhour", -2.653241964607215),                                     ("daymonth", -2.1832383353614793),                                     ("year (numeric with year symbol)February", -3.164067588373206),@@ -254,8 +277,8 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("evening|night",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     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}}),@@ -342,13 +365,6 @@                      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,@@ -364,6 +380,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\24858\20154\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 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,@@ -393,6 +416,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\28595\38376\22238\24402\32426\24565\26085",+        Classifier{okData =+                     ClassData{prior = 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 <day-of-week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -3.1780538303479458,@@ -474,17 +504,18 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<dim time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.248495242049359,+                     ClassData{prior = 0.0, unseen = -4.31748811353631,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -0.7375989431307791),-                                    ("national dayevening|night", -3.1354942159291497),-                                    ("<named-month> <day-of-month>morning", -1.1895840668738362),-                                    ("children's dayafternoon", -3.1354942159291497),-                                    ("Mondaymorning", -2.03688192726104)],-                               n = 32},+                                   [("dayhour", -0.7487170317147561),+                                    ("national dayevening|night", -3.20545280453606),+                                    ("<named-month> <day-of-month>morning", -1.2595426554807467),+                                    ("\24773\20154\33410evening|night", -3.20545280453606),+                                    ("\20799\31461\33410afternoon", -3.20545280453606),+                                    ("Mondaymorning", -2.10684051586795)],+                               n = 34},                    koData =-                     ClassData{prior = -infinity, unseen = -1.791759469228055,+                     ClassData{prior = -infinity, unseen = -1.9459101490553135,                                likelihoods = HashMap.fromList [], n = 0}}),        ("<part-of-day> <dim time>",         Classifier{okData =@@ -560,6 +591,13 @@                                    [("<integer> (latent time-of-day)", -0.916290731874155),                                     ("hour", -0.916290731874155)],                                n = 3}}),+       ("number suffix: \19975",+        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}}),        ("relative minutes after|past <integer> (hour-of-day)",         Classifier{okData =                      ClassData{prior = -0.6931471805599453,@@ -581,13 +619,6 @@                                      -1.3862943611198906),                                     ("hour", -0.7801585575495751)],                                n = 10}}),-       ("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.2231435513142097, unseen = -4.110873864173311,@@ -636,6 +667,13 @@                                     ("hour", -2.2617630984737906), ("month", -2.772588722239781),                                     ("minute", -2.772588722239781)],                                n = 20}}),+       ("\22307\35806\33410",+        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 <time>",         Classifier{okData =                      ClassData{prior = -1.2286654169163076,@@ -667,6 +705,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22919\22899\33410",+        Classifier{okData =+                     ClassData{prior = 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 = -1.6486586255873816, unseen = -2.890371757896165,@@ -705,20 +750,6 @@                                    [("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.61512051684126,@@ -743,20 +774,27 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.833213344056216,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("Tuesday",+       ("\19975\22307\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("children's day",+       ("\20799\31461\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                     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}}),+       ("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}}),        ("<named-month> <day-of-month>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -5.231108616854587,@@ -781,14 +819,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.3978952727983707,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\21171\21160\33410",+        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..10)",         Classifier{okData =-                     ClassData{prior = -0.38372512147175847,-                               unseen = -5.236441962829949,+                     ClassData{prior = -0.4090429294560484, unseen = -5.236441962829949,                                likelihoods = HashMap.fromList [("", 0.0)], n = 186},                    koData =-                     ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 87}}),+                     ClassData{prior = -1.0914948208992459, unseen = -4.564348191467836,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 94}}),        ("last n <cycle>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.605170185988091,@@ -871,24 +915,17 @@                    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",+       ("<number>\20010/\20491",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("<number>\20010/\20491",+       ("\24773\20154\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},+                     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}}),
Duckling/Ranking/Classifiers/ZH_XX.hs view
@@ -54,6 +54,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22269\38469\28040\36153\32773\26435\30410\26085",+        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}}),+       ("\24314\20891\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.6094379124341003,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 3},+                   koData =+                     ClassData{prior = -infinity, unseen = -0.6931471805599453,+                               likelihoods = HashMap.fromList [], n = 0}}),        ("today",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -1.3862943611198906,@@ -139,12 +153,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\20803\26086",+        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",         Classifier{okData =                      ClassData{prior = -0.3519764231571781, unseen = -4.983606621708336,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -3.367295829986474),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -3.367295829986474),                                     ("year (numeric with year symbol)<named-month> <day-of-month>",                                      -1.7578579175523736),                                     ("dayday", -1.6094379124341003),@@ -162,7 +184,8 @@                      ClassData{prior = -1.215022640512521, unseen = -4.276666119016055,                                likelihoods =                                  HashMap.fromList-                                   [("children's day<part-of-day> <dim time>", -2.065455299705096),+                                   [("\20799\31461\33410<part-of-day> <dim time>",+                                     -2.065455299705096),                                     ("dayhour", -2.653241964607215),                                     ("daymonth", -2.1832383353614793),                                     ("year (numeric with year symbol)February", -3.164067588373206),@@ -245,6 +268,13 @@                    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,@@ -328,13 +358,6 @@                      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,@@ -350,6 +373,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\24858\20154\33410",+        Classifier{okData =+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 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,@@ -379,6 +409,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\28595\38376\22238\24402\32426\24565\26085",+        Classifier{okData =+                     ClassData{prior = 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 <day-of-week>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -3.1780538303479458,@@ -460,16 +497,17 @@                                likelihoods = HashMap.fromList [], n = 0}}),        ("<dim time> <part-of-day>",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -4.174387269895637,+                     ClassData{prior = 0.0, unseen = -4.248495242049359,                                likelihoods =                                  HashMap.fromList-                                   [("dayhour", -0.7248958788745256),-                                    ("<named-month> <day-of-month>morning", -1.114360645636249),-                                    ("children's dayafternoon", -3.0602707946915624),-                                    ("Mondaymorning", -1.9616585060234524)],-                               n = 30},+                                   [("dayhour", -0.7375989431307791),+                                    ("<named-month> <day-of-month>morning", -1.1895840668738362),+                                    ("\24773\20154\33410evening|night", -3.1354942159291497),+                                    ("\20799\31461\33410afternoon", -3.1354942159291497),+                                    ("Mondaymorning", -2.03688192726104)],+                               n = 32},                    koData =-                     ClassData{prior = -infinity, unseen = -1.6094379124341003,+                     ClassData{prior = -infinity, unseen = -1.791759469228055,                                likelihoods = HashMap.fromList [], n = 0}}),        ("<part-of-day> <dim time>",         Classifier{okData =@@ -545,6 +583,13 @@                                    [("<integer> (latent time-of-day)", -0.916290731874155),                                     ("hour", -0.916290731874155)],                                n = 3}}),+       ("number suffix: \19975",+        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}}),        ("relative minutes after|past <integer> (hour-of-day)",         Classifier{okData =                      ClassData{prior = -0.6931471805599453,@@ -566,13 +611,6 @@                                      -1.3862943611198906),                                     ("hour", -0.7801585575495751)],                                n = 10}}),-       ("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.2231435513142097, unseen = -4.110873864173311,@@ -621,6 +659,13 @@                                     ("hour", -2.2617630984737906), ("month", -2.772588722239781),                                     ("minute", -2.772588722239781)],                                n = 20}}),+       ("\22307\35806\33410",+        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 <time>",         Classifier{okData =                      ClassData{prior = -1.2286654169163076,@@ -652,6 +697,13 @@                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\22919\22899\33410",+        Classifier{okData =+                     ClassData{prior = 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 = -1.6486586255873816, unseen = -2.890371757896165,@@ -690,20 +742,6 @@                                    [("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.61512051684126,@@ -728,20 +766,27 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.833213344056216,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("Tuesday",+       ("\19975\22307\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.295836866004329,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 25},+                     ClassData{prior = 0.0, unseen = -1.3862943611198906,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("children's day",+       ("\20799\31461\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.791759469228055,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 4},+                     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}}),+       ("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}}),        ("<named-month> <day-of-month>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -5.231108616854587,@@ -766,14 +811,20 @@                    koData =                      ClassData{prior = -infinity, unseen = -2.3978952727983707,                                likelihoods = HashMap.fromList [], n = 0}}),+       ("\21171\21160\33410",+        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..10)",         Classifier{okData =-                     ClassData{prior = -0.38372512147175847,-                               unseen = -5.236441962829949,+                     ClassData{prior = -0.4090429294560484, unseen = -5.236441962829949,                                likelihoods = HashMap.fromList [("", 0.0)], n = 186},                    koData =-                     ClassData{prior = -1.143563676530376, unseen = -4.48863636973214,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 87}}),+                     ClassData{prior = -1.0914948208992459, unseen = -4.564348191467836,+                               likelihoods = HashMap.fromList [("", 0.0)], n = 94}}),        ("last n <cycle>",         Classifier{okData =                      ClassData{prior = 0.0, unseen = -4.605170185988091,@@ -856,24 +907,17 @@                    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",+       ("<number>\20010/\20491",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -1.3862943611198906,-                               likelihoods = HashMap.fromList [("", 0.0)], n = 2},+                     ClassData{prior = 0.0, unseen = -3.4339872044851463,+                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},                    koData =                      ClassData{prior = -infinity, unseen = -0.6931471805599453,                                likelihoods = HashMap.fromList [], n = 0}}),-       ("<number>\20010/\20491",+       ("\24773\20154\33410",         Classifier{okData =-                     ClassData{prior = 0.0, unseen = -3.4339872044851463,-                               likelihoods = HashMap.fromList [("integer (0..10)", 0.0)], n = 29},+                     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}}),
+ Duckling/Region.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 DeriveAnyClass #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoRebindableSyntax #-}++module Duckling.Region+  ( Region(..)+  ) where++import Data.Hashable+import GHC.Generics+import Prelude+import TextShow (TextShow)+import qualified TextShow as TS++-- | ISO 3166-1 alpha-2 Country code (includes regions and territories).+-- See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2+data Region+  = AU+  | BE+  | BZ+  | CA+  | CN+  | GB+  | HK+  | IE+  | IN+  | JM+  | MO+  | NL+  | NZ+  | PH+  | TT+  | TW+  | US+  | ZA+  deriving (Bounded, Enum, Eq, Generic, Hashable, Ord, Read, Show)++instance TextShow Region where+  showb = TS.fromString . show
Duckling/Rules/EN.hs view
@@ -21,6 +21,18 @@ import Duckling.Locale import Duckling.Types import qualified Duckling.AmountOfMoney.EN.Rules as AmountOfMoney+import qualified Duckling.AmountOfMoney.EN.AU.Rules as AmountOfMoneyAU+import qualified Duckling.AmountOfMoney.EN.BZ.Rules as AmountOfMoneyBZ+import qualified Duckling.AmountOfMoney.EN.CA.Rules as AmountOfMoneyCA+import qualified Duckling.AmountOfMoney.EN.GB.Rules as AmountOfMoneyGB+import qualified Duckling.AmountOfMoney.EN.IE.Rules as AmountOfMoneyIE+import qualified Duckling.AmountOfMoney.EN.IN.Rules as AmountOfMoneyIN+import qualified Duckling.AmountOfMoney.EN.JM.Rules as AmountOfMoneyJM+import qualified Duckling.AmountOfMoney.EN.NZ.Rules as AmountOfMoneyNZ+import qualified Duckling.AmountOfMoney.EN.PH.Rules as AmountOfMoneyPH+import qualified Duckling.AmountOfMoney.EN.TT.Rules as AmountOfMoneyTT+import qualified Duckling.AmountOfMoney.EN.US.Rules as AmountOfMoneyUS+import qualified Duckling.AmountOfMoney.EN.ZA.Rules as AmountOfMoneyZA import qualified Duckling.Distance.EN.Rules as Distance import qualified Duckling.Duration.EN.Rules as Duration import qualified Duckling.Email.EN.Rules as Email@@ -49,6 +61,18 @@ defaultRules dim             = langRules dim  localeRules :: Region -> Some Dimension -> [Rule]+localeRules AU (This AmountOfMoney) = AmountOfMoneyAU.rules+localeRules BZ (This AmountOfMoney) = AmountOfMoneyBZ.rules+localeRules CA (This AmountOfMoney) = AmountOfMoneyCA.rules+localeRules GB (This AmountOfMoney) = AmountOfMoneyGB.rules+localeRules IE (This AmountOfMoney) = AmountOfMoneyIE.rules+localeRules IN (This AmountOfMoney) = AmountOfMoneyIN.rules+localeRules JM (This AmountOfMoney) = AmountOfMoneyJM.rules+localeRules NZ (This AmountOfMoney) = AmountOfMoneyNZ.rules+localeRules PH (This AmountOfMoney) = AmountOfMoneyPH.rules+localeRules TT (This AmountOfMoney) = AmountOfMoneyTT.rules+localeRules US (This AmountOfMoney) = AmountOfMoneyUS.rules+localeRules ZA (This AmountOfMoney) = AmountOfMoneyZA.rules localeRules AU (This Time) = TimeAU.rules localeRules BZ (This Time) = TimeBZ.rules localeRules CA (This Time) = TimeCA.rules
Duckling/Rules/HI.hs view
@@ -19,6 +19,8 @@ import Duckling.Types import qualified Duckling.Numeral.HI.Rules as Numeral import qualified Duckling.Ordinal.HI.Rules as Ordinal+import qualified Duckling.Duration.HI.Rules as Duration+import qualified Duckling.TimeGrain.HI.Rules as TimeGrain  defaultRules :: Some Dimension -> [Rule] defaultRules = langRules@@ -30,7 +32,7 @@ langRules :: Some Dimension -> [Rule] langRules (This AmountOfMoney) = [] langRules (This Distance) = []-langRules (This Duration) = []+langRules (This Duration) = Duration.rules langRules (This Numeral) = Numeral.rules langRules (This Email) = [] langRules (This Ordinal) = Ordinal.rules@@ -39,7 +41,7 @@ langRules (This RegexMatch) = [] langRules (This Temperature) = [] langRules (This Time) = []-langRules (This TimeGrain) = []+langRules (This TimeGrain) = TimeGrain.rules langRules (This Url) = [] langRules (This Volume) = [] langRules (This (CustomDimension dim)) = dimLangRules HI dim
Duckling/Rules/NL.hs view
@@ -8,13 +8,14 @@  {-# LANGUAGE GADTs #-} - module Duckling.Rules.NL   ( defaultRules   , langRules   , localeRules   ) where +import Prelude+ import Duckling.Dimensions.Types import Duckling.Locale import Duckling.Types@@ -24,14 +25,18 @@ import qualified Duckling.Numeral.NL.Rules as Numeral import qualified Duckling.Ordinal.NL.Rules as Ordinal import qualified Duckling.Time.NL.Rules as Time+import qualified Duckling.Time.NL.BE.Rules as TimeBE+import qualified Duckling.Time.NL.NL.Rules as TimeNL import qualified Duckling.TimeGrain.NL.Rules as TimeGrain import qualified Duckling.Volume.NL.Rules as Volume  defaultRules :: Some Dimension -> [Rule]-defaultRules = langRules+defaultRules dim@(This Time) = TimeNL.rulesBackwardCompatible ++ langRules dim+defaultRules dim = langRules dim  localeRules :: Region -> Some Dimension -> [Rule] localeRules region (This (CustomDimension dim)) = dimLocaleRules region dim+localeRules BE (This Time) = TimeBE.rules localeRules _ _ = []  langRules :: Some Dimension -> [Rule]
Duckling/Rules/ZH.hs view
@@ -22,6 +22,7 @@ import qualified Duckling.Distance.ZH.Rules as Distance import qualified Duckling.Numeral.ZH.Rules as Numeral import qualified Duckling.Ordinal.ZH.Rules as Ordinal+import qualified Duckling.Quantity.ZH.Rules as Quantity 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@@ -49,7 +50,7 @@ langRules (This Numeral) = Numeral.rules langRules (This Ordinal) = Ordinal.rules langRules (This PhoneNumber) = []-langRules (This Quantity) = []+langRules (This Quantity) = Quantity.rules langRules (This RegexMatch) = [] langRules (This Temperature) = Temperature.rules langRules (This Time) = Time.rules
Duckling/Temperature/AR/Corpus.hs view
@@ -25,23 +25,23 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37° سلزيوس"              , "37 ° سلزيوس"              , "37 درجة سلزيوس"              , "سبع وثلاثون سلزيوس"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70° فهرنهايت"              , "70 درجة فهرنهايت"              , "سبعون فهرنهايت"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 درجة"              , "45 درجه مئوية"              ]-  , examples (TemperatureValue Degree (-2))+  , examples (simple Degree (-2))              [ "-2°"              , "- 2 درجة"              , "درجتين تحت الصفر"
Duckling/Temperature/AR/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.AR.Rules@@ -27,10 +28,10 @@ ruleTemperatureDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(درج([ةه]|ات)( مئوي[ةه])?)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -42,20 +43,17 @@   , pattern =     [ regex "درجت(ين|ان)"     ]-  , prod = \_ -> Just . Token Temperature $ TemperatureData-      { TTemperature.unit = Nothing-      , TTemperature.value = 2-      }+  , prod = \_ -> Just . Token Temperature $ valueOnly 2   }  ruleTemperatureCelsius :: Rule ruleTemperatureCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(درج([ةه]|ات) )?سي?لي?[سز]ي?وس"     ]-  , prod = \tokens -> case tokens of+  , prod = \case     (Token Temperature td:_) -> Just . Token Temperature $       withUnit TTemperature.Celsius td     _ -> Nothing@@ -65,10 +63,10 @@ ruleTemperatureFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(درج([ةه]|ات) )?ف(ا|ي)?هرنها?يت"     ]-  , prod = \tokens -> case tokens of+  , prod = \case     (Token Temperature td:_) -> Just . Token Temperature $       withUnit TTemperature.Fahrenheit td     _ -> Nothing@@ -78,15 +76,15 @@ ruleTemperatureBelowZero = Rule   { name = "<temp> below zero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "تحت الصفر"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData {TTemperature.value = v}:+  , prod = \case+      (Token Temperature td@TemperatureData {TTemperature.value = Just v}:        _) -> case TTemperature.unit td of         Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-          td {TTemperature.value = - v}-        _ -> Just . Token Temperature $ td {TTemperature.value = - v}+          td {TTemperature.value = Just (- v)}+        _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/EN/Corpus.hs view
@@ -23,7 +23,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 degrees Celsius"@@ -31,21 +31,42 @@              , "37 degrees Celsius"              , "thirty seven celsius"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 degrees F"              , "seventy Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 degrees"              , "45 deg."              ]-  , examples (TemperatureValue Degree (-2))+  , examples (simple Degree (-2))              [ "-2°"              , "- 2 degrees"              , "2 degrees below zero"              , "2 below zero"+             ]+  , examples (between Degree (30, 40))+             [ "between 30 and 40 degrees"+             , "from 30 degrees to 40 degrees"+             ]+  , examples (between Celsius (30, 40))+             [ "between 30 and 40 celsius"+             , "from 30 celsius and 40 celsius"+             , "between 30 and 40 degrees celsius"+             , "from 30 degrees celsius to 40 degrees celsius"+             , "30-40 degrees celsius"+             ]+    , examples (above Degree 40)+             [ "over 40 degrees"+             , "at least 40 degrees"+             , "more than 40 degrees"+             ]+    , examples (under Degree 40)+             [ "under 40 degrees"+             , "less than 40 degrees"+             , "lower than 40 degrees"              ]   ]
Duckling/Temperature/EN/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.EN.Rules@@ -19,7 +20,7 @@  import Duckling.Dimensions.Types import Duckling.Temperature.Helpers-import Duckling.Temperature.Types (TemperatureData(..))+import Duckling.Temperature.Types (TemperatureData(..), unitsAreCompatible) import Duckling.Types import qualified Duckling.Temperature.Types as TTemperature @@ -27,10 +28,10 @@ ruleTemperatureDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(deg(ree?)?s?\\.?)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -40,10 +41,10 @@ ruleTemperatureCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "c(el[cs]?(ius)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -53,10 +54,10 @@ ruleTemperatureFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?rh?eh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing@@ -66,22 +67,96 @@ ruleTemperatureBelowZero = Rule   { name = "<temp> below zero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "below zero"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData {TTemperature.value = v}:+  , prod = \case+      (Token Temperature td@TemperatureData {TTemperature.value = Just v}:        _) -> case TTemperature.unit td of         Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-          td {TTemperature.value = - v}-        _ -> Just . Token Temperature $ td {TTemperature.value = - v}+          td {TTemperature.value = Just (- v)}+        _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } +ruleIntervalBetween :: Rule+ruleIntervalBetween = Rule+  { name = "between|from <temp> and|to <temp>"+  , pattern =+    [ regex "between|from"+    , Predicate isSimpleTemperature+    , regex "to|and"+    , Predicate isSimpleTemperature+    ]+  , prod = \case+      (_:+       Token Temperature TemperatureData+        {TTemperature.unit = u1 , TTemperature.value = Just from}:+       _:+       Token Temperature TemperatureData+        {TTemperature.unit = Just u2, TTemperature.value = Just to}:+       _) | from < to && unitsAreCompatible u1 u2 ->+        Just . Token Temperature . withInterval (from, to) $ unitOnly u2+      _ -> Nothing+  }++ruleIntervalDash :: Rule+ruleIntervalDash = Rule+  { name = "<temp> - <temp>"+  , pattern =+    [ Predicate isSimpleTemperature+    , regex "-"+    , Predicate isSimpleTemperature+    ]+  , prod = \case+      (Token Temperature TemperatureData+        {TTemperature.unit = u1, TTemperature.value = Just from}:+       _:+       Token Temperature TemperatureData+        {TTemperature.unit = Just u2, TTemperature.value = Just to}:+       _) | from < to && unitsAreCompatible u1 u2 ->+        Just . Token Temperature . withInterval (from, to) $ unitOnly u2+      _ -> Nothing+  }++ruleIntervalMax :: Rule+ruleIntervalMax = Rule+  { name = "under/less/lower/no more than <temp>"+  , pattern =+    [ regex "under|(less|lower|not? more) than"+    , Predicate isSimpleTemperature+    ]+  , prod = \case+      (_:+       Token Temperature TemperatureData{TTemperature.value = Just to,+                                         TTemperature.unit = Just u}:+       _) -> Just . Token Temperature . withMax to $ unitOnly u+      _ -> Nothing+  }++ruleIntervalMin :: Rule+ruleIntervalMin = Rule+  { name = "over/above/at least/more than <temp>"+  , pattern =+    [ regex "over|above|at least|more than"+    , Predicate isSimpleTemperature+    ]+  , prod = \case+      (_:+       Token Temperature TemperatureData{TTemperature.value = Just from,+                                         TTemperature.unit = Just u}:+       _) -> Just . Token Temperature . withMin from $ unitOnly u+      _ -> Nothing+  }+ rules :: [Rule] rules =   [ ruleTemperatureDegrees   , ruleTemperatureCelsius   , ruleTemperatureFahrenheit   , ruleTemperatureBelowZero+  , ruleIntervalBetween+  , ruleIntervalDash+  , ruleIntervalMin+  , ruleIntervalMax   ]
Duckling/Temperature/ES/Corpus.hs view
@@ -24,7 +24,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 grados Celsius"@@ -33,17 +33,17 @@              , "37 centígrados"              , "37 grados centígrados"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 grados F"              , "setenta Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 grados"              ]-  , examples (TemperatureValue Degree (-10))+  , examples (simple Degree (-10))              [ "-10°"              , "- diez grados"              , "10 bajo cero"
Duckling/Temperature/ES/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.ES.Rules@@ -25,10 +26,10 @@ ruleLatentTempTemp = Rule   { name = "<latent temp> temp"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(grados?)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -38,10 +39,10 @@ ruleTempCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(cent(i|í)grados?|c(el[cs]?(ius)?)?\\.?)"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -51,10 +52,10 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?reh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing@@ -64,15 +65,15 @@ ruleLatentTempTempBajoCero = Rule   { name = "<latent temp> temp bajo cero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "bajo cero"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/FR/Corpus.hs view
@@ -24,7 +24,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 degres Celsius"@@ -33,18 +33,18 @@              , "37 degré C"              , "trente sept celsius"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 degrès F"              , "soixante-dix Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 degrés"              , "45 deg."              ]-  , examples (TemperatureValue Degree (-10))+  , examples (simple Degree (-10))              [ "-10°"              , "- 10 degres"              , "10 degres en dessous de zero"
Duckling/Temperature/FR/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.FR.Rules@@ -25,10 +26,10 @@ ruleLatentTempDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(deg(r(é|e|è))?s?\\.?)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -38,10 +39,10 @@ ruleTempCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "c(el[cs]?(ius)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -51,10 +52,10 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?reh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing@@ -64,15 +65,15 @@ ruleLatentTempEnDessousDeZero = Rule   { name = "<latent temp> en dessous de zero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "en dessous de (0|z(é|e)ro)"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/GA/Corpus.hs view
@@ -24,23 +24,23 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 céimeanna Celsius"              , "37 céimeanna C"              , "37 céimeanna ceinteagrád"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 céimeanna F"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 céimeanna"              ]-  , examples (TemperatureValue Degree (-10))+  , examples (simple Degree (-10))              [ "-10°"              , "- 10 céimeanna"              , "10 céimeanna faoi bhun náid"
Duckling/Temperature/GA/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.GA.Rules@@ -25,10 +26,10 @@ ruleLatentTempCim = Rule   { name = "<latent temp> céim"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "g?ch?(é|e)im(e(anna)?)?|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -38,10 +39,10 @@ ruleTempCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "ceinteagr(á|a)d|c(el[cs]?(ius)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -51,10 +52,10 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?reh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing@@ -64,15 +65,15 @@ ruleLatentTempFaoiBhunNid = Rule   { name = "<latent temp> faoi bhun náid"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "faoi bhun (0|n(a|á)id)"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/HR/Corpus.hs view
@@ -23,7 +23,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celzija"              , "37 stupnjeva Celzija"@@ -31,13 +31,13 @@              , "37 stupnjeva Celzija"              , "trideset sedam celzija"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 stupnjeva F"              , "sedamdeset Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 stupnjeva"              , "45 deg."
Duckling/Temperature/HR/Rules.hs view
@@ -24,7 +24,7 @@ ruleLatentTempStupnjevi = Rule   { name = "<latent temp> stupnjevi"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "deg\\.?|stupa?nj((ev)?a)?|°"     ]   , prod = \tokens -> case tokens of@@ -37,7 +37,7 @@ ruleTempCelzij = Rule   { name = "<temp> Celzij"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "c(elz?(ija?)?)?\\.?"     ]   , prod = \tokens -> case tokens of@@ -50,7 +50,7 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?rh?eh?n(h?eit)?)?\\.?"     ]   , prod = \tokens -> case tokens of
Duckling/Temperature/Helpers.hs view
@@ -8,10 +8,17 @@  {-# LANGUAGE GADTs #-} - module Duckling.Temperature.Helpers   ( isLatent+  , isValueOnly+  , isSimpleTemperature   , withUnit+  , withInterval+  , withValue+  , valueOnly+  , unitOnly+  , withMin+  , withMax   ) where  import Data.Maybe@@ -30,8 +37,65 @@   True isLatent _ = False +isValueOnly :: Bool -> Predicate+isValueOnly allowDegree (Token Temperature TemperatureData+                         { TTemperature.unit = u, TTemperature.value = Just _+                         , TTemperature.minValue = Nothing+                         , TTemperature.maxValue = Nothing})+      = isNothing u || (allowDegree && u == Just TTemperature.Degree)+isValueOnly _ _ = False++isSimpleTemperature :: Predicate+isSimpleTemperature (Token Temperature TemperatureData+                      {TTemperature.value = Just _}) = True+isSimpleTemperature _ = False+ -- ----------------------------------------------------------------- -- Production  withUnit :: TTemperature.TemperatureUnit -> TemperatureData -> TemperatureData withUnit u td = td {TTemperature.unit = Just u}++withInterval :: (Int, Int) -> TemperatureData -> TemperatureData+withInterval (from, to) td = td+  { TTemperature.value = Nothing+  , TTemperature.minValue = Just from+  , TTemperature.maxValue = Just to+  }++withValue :: Int -> TemperatureData -> TemperatureData+withValue v td = td+  { TTemperature.value = Just v+  , TTemperature.minValue = Nothing+  , TTemperature.maxValue = Nothing+  }++valueOnly :: Int -> TemperatureData+valueOnly v = TemperatureData+  { TTemperature.unit = Nothing+  , TTemperature.value = Just v+  , TTemperature.minValue = Nothing+  , TTemperature.maxValue = Nothing+  }++unitOnly :: TTemperature.TemperatureUnit -> TemperatureData+unitOnly u = TemperatureData+  { TTemperature.unit = Just u+  , TTemperature.value = Nothing+  , TTemperature.minValue = Nothing+  , TTemperature.maxValue = Nothing+  }++withMax :: Int -> TemperatureData -> TemperatureData+withMax v td = td+  { TTemperature.value = Nothing+  , TTemperature.minValue = Nothing+  , TTemperature.maxValue = Just v+  }++withMin :: Int -> TemperatureData -> TemperatureData+withMin v td = td+  { TTemperature.value = Nothing+  , TTemperature.minValue = Just v+  , TTemperature.maxValue = Nothing+  }
Duckling/Temperature/IT/Corpus.hs view
@@ -23,7 +23,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 ° centigradi"@@ -32,21 +32,21 @@              , "trentasette celsius"              , "trentasette gradi centigradi"              ]-  , examples (TemperatureValue Celsius 1)+  , examples (simple Celsius 1)              [ "1 grado centigrado"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 gradi F"              , "70 gradi Fahreneit"              , "settanta Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 gradi"              ]-  , examples (TemperatureValue Degree 1)+  , examples (simple Degree 1)              [ "1 grado"              ]   ]
Duckling/Temperature/IT/Rules.hs view
@@ -24,7 +24,7 @@ ruleLatentTempDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(grad[io]?\\.?)|°"     ]   , prod = \tokens -> case tokens of@@ -37,7 +37,7 @@ ruleTempCelcius = Rule   { name = "<temp> Celcius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(c((el[cs]?(ius)?)|(entigrad[io]))?\\.?)"     ]   , prod = \tokens -> case tokens of@@ -50,7 +50,7 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?rh?eh?n(h?eit)?)?\\.?"     ]   , prod = \tokens -> case tokens of
Duckling/Temperature/JA/Corpus.hs view
@@ -24,17 +24,17 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "摂氏37°"              , "摂氏37度"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "華氏70°"              , "華氏70度"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45度"              ]
Duckling/Temperature/JA/Rules.hs view
@@ -24,7 +24,7 @@ ruleLatentTempDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "度|°"     ]   , prod = \tokens -> case tokens of@@ -37,7 +37,7 @@ ruleTempCelcius = Rule   { name = "<temp> Celcius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "摂氏(°|度)|(°)C"     ]   , prod = \tokens -> case tokens of@@ -51,7 +51,7 @@   { name = "Celcius <temp>"   , pattern =     [ regex "摂氏"-    , dimension Temperature+    , Predicate $ isValueOnly True     , regex "度|°"     ]   , prod = \tokens -> case tokens of@@ -64,7 +64,7 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "華氏(°|度)|(°)F"     ]   , prod = \tokens -> case tokens of@@ -78,7 +78,7 @@   { name = "Fahrenheit <temp>"   , pattern =     [ regex "華氏"-    , dimension Temperature+    , Predicate $ isValueOnly True     , regex "度|°"     ]   , prod = \tokens -> case tokens of
Duckling/Temperature/KO/Corpus.hs view
@@ -24,17 +24,17 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "섭씨37°"              , "섭씨37도"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "화씨70°"              , "화씨70도"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45도"              ]
Duckling/Temperature/KO/Rules.hs view
@@ -24,7 +24,7 @@ ruleLatentTempDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ Predicate isLatent+    [ Predicate $ isValueOnly False     , regex "도|°"     ]   , prod = \tokens -> case tokens of@@ -38,7 +38,7 @@   { name = "섭씨 <temp>"   , pattern =     [ regex "섭씨"-    , dimension Temperature+    , Predicate $ isValueOnly True     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $@@ -50,7 +50,7 @@ ruleTempC = Rule   { name = "<temp> °C"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "c"     ]   , prod = \tokens -> case tokens of@@ -64,7 +64,7 @@   { name = "화씨 <temp>"   , pattern =     [ regex "화씨"-    , dimension Temperature+    , Predicate $ isValueOnly True     ]   , prod = \tokens -> case tokens of       (_:Token Temperature td:_) -> Just . Token Temperature $@@ -76,7 +76,7 @@ ruleTempF = Rule   { name = "<temp> °F"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f"     ]   , prod = \tokens -> case tokens of
Duckling/Temperature/PT/Corpus.hs view
@@ -24,7 +24,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 graus Celsius"@@ -33,17 +33,17 @@              , "37 centígrados"              , "37 graus centigrados"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 graus F"              , "setenta Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 graus"              ]-  , examples (TemperatureValue Degree (-10))+  , examples (simple Degree (-10))              [ "-10°"              , "- dez graus"              , "10 abaixo de zero"
Duckling/Temperature/PT/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.PT.Rules@@ -25,10 +26,10 @@ ruleLatentTempTemp = Rule   { name = "<latent temp> temp"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "(graus?)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -38,10 +39,10 @@ ruleTempCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(cent(i|í)grados?|c(el[cs]?(ius)?)?\\.?)"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -51,10 +52,10 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ah?reh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing@@ -64,15 +65,15 @@ ruleLatentTempTempAbaixoDeZero = Rule   { name = "<latent temp> temp abaixo de zero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "((graus?)|°)?( abaixo (de)? zero)"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/RO/Corpus.hs view
@@ -9,10 +9,11 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.RO.Corpus-  ( corpus ) where+  ( corpus+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Locale import Duckling.Resolve@@ -24,22 +25,25 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° celsius"              , "37 grade Celsius"              , "treizeci si sapte celsius"              , "37 grade Celsius"+             , "37 de grade de Celsius"              , "treizeci si sapte celsius"+             , "treizeci si sapte de celsius"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenheit"              , "70 grade F"              , "saptezeci Fahrenheit"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 grade"+             , "45 de grade"              ]   ]
Duckling/Temperature/RO/Rules.hs view
@@ -7,27 +7,29 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.RO.Rules-  ( rules ) where+  ( rules+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Dimensions.Types import Duckling.Temperature.Helpers-import qualified Duckling.Temperature.Types as TTemperature import Duckling.Types+import qualified Duckling.Temperature.Types as TTemperature  ruleLatentTempGrade :: Rule ruleLatentTempGrade = Rule   { name = "<latent temp> grade"   , pattern =-    [ dimension Temperature-    , regex "(grade)|°"+    [ Predicate $ isValueOnly False+    , regex "(de )?(grade)|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Degree td       _ -> Nothing@@ -37,10 +39,10 @@ ruleTempCelcius = Rule   { name = "<temp> Celcius"   , pattern =-    [ dimension Temperature-    , regex "c(el[cs]?(ius)?)?\\.?"+    [ Predicate $ isValueOnly True+    , regex "(de )?c(el[cs]?(ius)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Celsius td       _ -> Nothing@@ -50,10 +52,10 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature-    , regex "f(ah?rh?eh?n(h?eit)?)?\\.?"+    [ Predicate $ isValueOnly True+    , regex "(de )?f(ah?rh?eh?n(h?eit)?)?\\.?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Temperature td:_) -> Just . Token Temperature $         withUnit TTemperature.Fahrenheit td       _ -> Nothing
Duckling/Temperature/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.Rules@@ -17,10 +18,11 @@ import Prelude  import Duckling.Dimensions.Types-import qualified Duckling.Numeral.Types as TNumeral+import Duckling.Temperature.Helpers import Duckling.Temperature.Types (TemperatureData (..))-import qualified Duckling.Temperature.Types as TTemperature import Duckling.Types+import qualified Duckling.Numeral.Types as TNumeral+import qualified Duckling.Temperature.Types as TTemperature  ruleNumeralAsTemp :: Rule ruleNumeralAsTemp = Rule@@ -28,12 +30,9 @@   , pattern =     [ dimension Numeral     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Numeral nd:_) ->-        Just . Token Temperature $ TemperatureData-          { TTemperature.unit = Nothing-          , TTemperature.value = floor $ TNumeral.value nd-          }+        Just . Token Temperature $ valueOnly $ floor $ TNumeral.value nd       _ -> Nothing   } 
Duckling/Temperature/TR/Corpus.hs view
@@ -23,7 +23,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "37 ° santigrat"              , "37 derece C"@@ -31,7 +31,7 @@              , "37 derece santigrat"              , "otuz yedi santigrat"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "70 ° Fahrenhayt"              , "70 ° Fahrenayt"@@ -40,12 +40,12 @@              , "70 F"              , "yetmiş fahrenayt"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45 derece"              , "kırk beş derece"              ]-  , examples (TemperatureValue Degree (-2))+  , examples (simple Degree (-2))              [ "-2°"              , "- 2 derece"              , "sıfırın altında 2°"
Duckling/Temperature/TR/Rules.hs view
@@ -7,6 +7,7 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Temperature.TR.Rules@@ -26,10 +27,10 @@ ruleTemperatureDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "derece|°"     ]-  , prod = \tokens -> case tokens of+  , prod = \case     (Token Temperature td:_) -> Just . Token Temperature $       withUnit TTemperature.Degree td     _ -> Nothing@@ -39,10 +40,10 @@ ruleTemperatureCelsius = Rule   { name = "<temp> Celsius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "c|santigrat"     ]-  , prod = \tokens -> case tokens of+  , prod = \case     (Token Temperature td:_) -> Just . Token Temperature $       withUnit TTemperature.Celsius td     _ -> Nothing@@ -52,10 +53,10 @@ ruleTemperatureFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "f(ahrenh?ayt)?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case     (Token Temperature td:_) -> Just . Token Temperature $       withUnit TTemperature.Fahrenheit td     _ -> Nothing@@ -66,14 +67,14 @@   { name = "below zero <temp>"   , pattern =     [ regex "s\305f\305r\305n alt\305nda"-    , dimension Temperature+    , Predicate $ isValueOnly True     ]-  , prod = \tokens -> case tokens of-      (_:Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (_:Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } @@ -81,15 +82,15 @@ ruleTemperatureBelowZeroReverse = Rule   { name = "<temp> below zero"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "s\305f\305r\305n alt\305nda"     ]-  , prod = \tokens -> case tokens of-      (Token Temperature td@TemperatureData{TTemperature.value = v}:_) ->+  , prod = \case+      (Token Temperature td@TemperatureData{TTemperature.value = Just v}:_) ->         case TTemperature.unit td of           Nothing -> Just . Token Temperature . withUnit TTemperature.Degree $-            td {TTemperature.value = - v}-          _ -> Just . Token Temperature $ td {TTemperature.value = - v}+            td {TTemperature.value = Just (- v)}+          _ -> Just . Token Temperature $ td {TTemperature.value = Just (- v)}       _ -> Nothing   } 
Duckling/Temperature/Types.hs view
@@ -19,9 +19,10 @@ import Data.Aeson import Data.Hashable import Data.Text (Text)-import qualified Data.Text as Text import GHC.Generics import Prelude+import qualified Data.HashMap.Strict as H+import qualified Data.Text as Text  import Duckling.Resolve (Resolve(..)) @@ -33,24 +34,86 @@   toJSON = String . Text.toLower . Text.pack . show  data TemperatureData = TemperatureData-  { unit :: Maybe TemperatureUnit-  , value :: Int+  { unit     :: Maybe TemperatureUnit+  , value    :: Maybe Int+  , minValue :: Maybe Int+  , maxValue :: Maybe Int   } deriving (Eq, Generic, Hashable, Show, Ord, NFData)  instance Resolve TemperatureData where   type ResolvedValue TemperatureData = TemperatureValue   resolve _ _ TemperatureData {unit = Nothing} = Nothing-  resolve _ _ TemperatureData {unit = Just unit, value} =-    Just (TemperatureValue {vUnit = unit, vValue = value}, False)+  resolve _ _ TemperatureData {unit = Just unit, value = Just value} =+    Just (simple unit value, False)+  resolve _ _ TemperatureData {unit = Just unit, minValue = Just from+                              , maxValue = Just to} =+    Just (between unit (from, to), False)+  resolve _ _ TemperatureData {unit = Just unit, minValue = Just from} =+    Just (above unit from, False)+  resolve _ _ TemperatureData {unit = Just unit, maxValue = Just to} =+    Just (under unit to, False)+  resolve _ _ _ = Nothing -data TemperatureValue = TemperatureValue+data IntervalDirection = Above | Under+  deriving (Eq, Generic, Hashable, Ord, Show, NFData)++data SingleValue = SingleValue   { vUnit :: TemperatureUnit   , vValue :: Int-  } deriving (Eq, Show)+  }+  deriving (Eq, Show) +instance ToJSON SingleValue where+  toJSON (SingleValue unit value) = object+    [ "value" .= value+    , "unit"  .= unit+    ]++data TemperatureValue+  = SimpleValue SingleValue+  | IntervalValue (SingleValue, SingleValue)+  | OpenIntervalValue (SingleValue, IntervalDirection)+  deriving (Show, Eq)+ instance ToJSON TemperatureValue where-  toJSON (TemperatureValue unit value) = object-    [ "type" .= ("value" :: Text)-    , "value" .= value-    , "unit" .= unit+  toJSON (SimpleValue value) = case toJSON value of+    Object o -> Object $ H.insert "type" (toJSON ("value" :: Text)) o+    _        -> Object H.empty+  toJSON (IntervalValue (from, to)) = object+    [ "type" .= ("interval" :: Text)+    , "from" .= toJSON from+    , "to"   .= toJSON to     ]+  toJSON (OpenIntervalValue (from, Above)) = object+    [ "type" .= ("interval" :: Text)+    , "from" .= toJSON from+    ]+  toJSON (OpenIntervalValue (to, Under)) = object+    [ "type" .= ("interval" :: Text)+    , "to"   .= toJSON to+    ]++-- -----------------------------------------------------------------+-- Value helpers++simple :: TemperatureUnit -> Int -> TemperatureValue+simple u v = SimpleValue $ single u v++between :: TemperatureUnit -> (Int, Int) -> TemperatureValue+between u (from, to) = IntervalValue (single u from, single u to)++above :: TemperatureUnit -> Int -> TemperatureValue+above = openInterval Above++under :: TemperatureUnit -> Int -> TemperatureValue+under = openInterval Under++openInterval :: IntervalDirection -> TemperatureUnit -> Int -> TemperatureValue+openInterval direction u v = OpenIntervalValue (single u v, direction)++single :: TemperatureUnit -> Int -> SingleValue+single u v = SingleValue {vUnit = u, vValue = v}++unitsAreCompatible :: Maybe TemperatureUnit -> TemperatureUnit -> Bool+unitsAreCompatible (Just u1) u2 = u1 == u2+unitsAreCompatible Nothing _ = True
Duckling/Temperature/ZH/Corpus.hs view
@@ -24,7 +24,7 @@  allExamples :: [Example] allExamples = concat-  [ examples (TemperatureValue Celsius 37)+  [ examples (simple Celsius 37)              [ "37°C"              , "摄氏37°"              , "攝氏37°"@@ -35,7 +35,7 @@              , "37摄氏度"              , "37攝氏度"              ]-  , examples (TemperatureValue Fahrenheit 70)+  , examples (simple Fahrenheit 70)              [ "70°F"              , "华氏70°"              , "華氏70°"@@ -46,7 +46,7 @@              , "70华氏度"              , "70華氏度"              ]-  , examples (TemperatureValue Degree 45)+  , examples (simple Degree 45)              [ "45°"              , "45度"              ]
Duckling/Temperature/ZH/Rules.hs view
@@ -24,7 +24,7 @@ ruleLatentTempDegrees = Rule   { name = "<latent temp> degrees"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly False     , regex "度|°"     ]   , prod = \tokens -> case tokens of@@ -37,7 +37,7 @@ ruleTempCelcius = Rule   { name = "<temp> Celcius"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(摄|攝)氏(°|度)|(°)C"     ]   , prod = \tokens -> case tokens of@@ -51,7 +51,7 @@   { name = "Celcius <temp>"   , pattern =     [ regex "(摄|攝)氏"-    , dimension Temperature+    , Predicate $ isValueOnly True     , regex "度|°"     ]   , prod = \tokens -> case tokens of@@ -64,7 +64,7 @@ ruleTempFahrenheit = Rule   { name = "<temp> Fahrenheit"   , pattern =-    [ dimension Temperature+    [ Predicate $ isValueOnly True     , regex "(华|華)氏(°|度)|(°)F"     ]   , prod = \tokens -> case tokens of@@ -78,7 +78,7 @@   { name = "Fahrenheit <temp>"   , pattern =     [ regex "(华|華)氏"-    , dimension Temperature+    , Predicate $ isValueOnly True     , regex "度|°"     ]   , prod = \tokens -> case tokens of
Duckling/Time/Computed.hs view
@@ -7,9 +7,10 @@  module Duckling.Time.Computed   ( chanukah, chineseNewYear, dhanteras, easterSunday, eidalAdha, eidalFitr-  , lagBaOmer, mawlid, muharram, navaratri, orthodoxEaster, passover, rajab-  , rakshaBandhan, ramadan, roshHashana, thaiPongal, thiruOnam, tishaBAv-  , tuBishvat, vasantPanchami, yomHaatzmaut+  , globalYouthServiceDay, lagBaOmer, mawlid, muharram, navaratri+  , orthodoxEaster, passover, rajab, rakshaBandhan, ramadan, roshHashana+  , thaiPongal, thiruOnam, tishaBAv, tuBishvat, vasantPanchami, vesak+  , yomHaatzmaut   ) where  import Data.Maybe@@ -1568,4 +1569,56 @@   , (2028, 1, 31)   , (2029, 1, 19)   , (2030, 2, 7)+  ]++globalYouthServiceDay :: TimeData+globalYouthServiceDay = computedDays globalYouthServiceDay'++globalYouthServiceDay' :: [TimeObject]+globalYouthServiceDay' = mapMaybe toTimeObjectM+  [ (2012, 4, 20)+  , (2013, 4, 26)+  , (2014, 4, 11)+  , (2015, 4, 17)+  , (2016, 4, 15)+  , (2017, 4, 21)+  , (2018, 4, 20)+  ]++vesak :: TimeData+vesak = computedDays vesak'++vesak' :: [TimeObject]+vesak' = mapMaybe toTimeObjectM+  [ (2000, 5, 18)+  , (2001, 5, 7)+  , (2002, 5, 26)+  , (2003, 5, 15)+  , (2004, 5, 4)+  , (2005, 5, 23)+  , (2006, 5, 12)+  , (2007, 5, 31)+  , (2008, 5, 19)+  , (2009, 5, 8)+  , (2010, 5, 27)+  , (2011, 5, 17)+  , (2012, 5, 5)+  , (2013, 5, 24)+  , (2014, 5, 14)+  , (2015, 5, 3)+  , (2016, 5, 21)+  , (2017, 5, 10)+  , (2018, 5, 29)+  , (2019, 5, 18)+  , (2020, 5, 7)+  , (2021, 5, 26)+  , (2022, 5, 15)+  , (2023, 5, 5)+  , (2024, 5, 23)+  , (2025, 5, 12)+  , (2026, 5, 31)+  , (2027, 5, 20)+  , (2028, 5, 8)+  , (2029, 5, 27)+  , (2030, 5, 17)   ]
Duckling/Time/DA/Corpus.hs view
@@ -42,12 +42,11 @@              ]   , examples (datetime (2013, 2, 18, 0, 0, 0) Day)              [ "mandag"-             , "man."              , "på mandag"              ]   , examples (datetime (2013, 2, 18, 0, 0, 0) Day)              [ "Mandag den 18. februar"-             , "Man, 18 februar"+             , "Mandag, 18 februar"              ]   , examples (datetime (2013, 2, 19, 0, 0, 0) Day)              [ "tirsdag"@@ -144,7 +143,6 @@              ]   , examples (datetime (2013, 2, 18, 0, 0, 0) Day)              [ "Mandag, Feb 18"-             , "Man, februar 18"              ]   , examples (datetime (2013, 2, 11, 0, 0, 0) Week)              [ "denne uge"
Duckling/Time/DA/Rules.hs view
@@ -11,7 +11,8 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Time.DA.Rules-  ( rules ) where+  ( rules+  ) where  import Data.Text (Text) import Prelude@@ -30,13 +31,14 @@  ruleDaysOfWeek :: [Rule] ruleDaysOfWeek = mkRuleDaysOfWeek-  [ ( "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\\.?" )+  -- 'man' is a common Danish word ('you'), leading to false positives+  [ ( "Monday"   , "mandag"            )+  , ( "Tuesday"  , "tirsdag|tirs?\\.?" )+  , ( "Wednesday", "onsdag|ons\\.?"    )+  , ( "Thursday" , "torsdag|tors?\\.?" )+  , ( "Friday"   , "fredag|fre\\.?"    )+  , ( "Saturday" , "lørdag|lør\\.?"    )+  , ( "Sunday"   , "søndag|søn\\.?"    )   ]  ruleMonths :: [Rule]
Duckling/Time/DE/Rules.hs view
@@ -1291,19 +1291,6 @@       _ -> Nothing   } -ruleTimeofdayAmpm :: Rule-ruleTimeofdayAmpm = Rule-  { name = "<time-of-day> am|pm"-  , pattern =-    [ Predicate isATimeOfDay-    , regex "([ap])\\.?m\\.?(?:[\\s'\"-_{}\\[\\]()]|$)"-    ]-  , prod = \tokens -> case tokens of-      (Token Time td:Token RegexMatch (GroupMatch (ap:_)):_) ->-        tt $ timeOfDayAMPM (Text.toLower ap == "a") td-      _ -> Nothing-  }- ruleHalfIntegerGermanStyleHourofday :: Rule ruleHalfIntegerGermanStyleHourofday = Rule   { name = "half <integer> (german style hour-of-day)"@@ -1712,7 +1699,6 @@   , ruleTimeAfterNext   , ruleTimeBeforeLast   , ruleTimePartofday-  , ruleTimeofdayAmpm   , ruleTimeofdayApproximately   , ruleTimeofdayLatent   , ruleTimeofdayOclock
Duckling/Time/EN/AU/Corpus.hs view
@@ -104,4 +104,16 @@   , examples (datetimeHoliday (2019, 5, 27, 0, 0, 0) Day "Reconciliation Day")              [ "reconciliation day 2019"              ]+  , examples (datetimeIntervalHoliday ((2013, 8, 9, 0, 0, 0), (2013, 8, 19, 0, 0, 0)) Day "Royal Queensland Show")+             [ "ekka"+             , "royal national agricultural show"+             ]+  , examples (datetimeHoliday (2018, 8, 15, 0, 0, 0) Day "Royal Queensland Show Day")+             [ "ekka day 2018"+             , "RNA Show Day 2018"+             , "Royal Queensland Show Day in five years"+             ]+  , examples (datetimeHoliday (2013, 5, 3, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "admin day"+             ]   ]
Duckling/Time/EN/AU/Rules.hs view
@@ -88,7 +88,7 @@   -- Fixed day/week/month, year over year   , ( "Adelaide Cup", "adelaide cup", nthDOWOfMonth 2 1 3 )   , ( "Administrative Professionals' Day"-    , "(admin(istrative professionals'?)|secretaries'?) day"+    , "(administrative professional|secretarie|admin)('?s'?)? day"     , nthDOWOfMonth 1 5 5 )   , ( "Canberra Day", "canberra day", nthDOWOfMonth 2 1 3 )   , ( "Eight Hours Day", "eight hours day", nthDOWOfMonth 2 1 3 )@@ -128,6 +128,29 @@   , ( "Royal Hobart Regatta", "royal hobart regatta"     , let end = nthDOWOfMonth 2 1 2       in interval TTime.Open (cycleNthAfter False TG.Day (- 2) end) end )++  -- Other+  -- Wednesday of the Royal Queensland Show+  -- Starts on the first Friday of August if it's not before August 5th+  -- Otherwise on the second Friday of August+  , ( "Royal Queensland Show Day"+    , "(royal (national agricultural|queensland)|rna) show day|ekka day"+    , let tentative = nthDOWOfMonth 1 5 8+          alternative = nthDOWOfMonth 2 5 8+      in do+        forbidden <- interval TTime.Open (monthDay 8 1) (monthDay 8 4)+        start <- intersectWithReplacement forbidden tentative alternative+        return $ cycleNthAfter False TG.Day 5 start )+  -- Starts on the first Friday of August if it's not before August 5th+  -- Otherwise on the second Friday of August+  , ( "Royal Queensland Show"+    , "ekka|(royal (national agricultural|queensland)|rna) show"+    , let tentative = nthDOWOfMonth 1 5 8+          alternative = nthDOWOfMonth 2 5 8+      in do+        forbidden <- interval TTime.Open (monthDay 8 1) (monthDay 8 4)+        start <- intersectWithReplacement forbidden tentative alternative+        interval TTime.Open start $ cycleNthAfter False TG.Day 9 start )   ]  ruleComputedHolidays :: [Rule]
Duckling/Time/EN/CA/Corpus.hs view
@@ -143,4 +143,11 @@              [ "Groundhog day"              , "groundhogs day"              ]+  , examples (datetimeHoliday (2010, 4, 21, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "administrative professionals' day 2010"+             ]+  , examples (datetimeHoliday (2019, 4, 24, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "admin day 2019"+             , "secretaries day in six years"+             ]   ]
Duckling/Time/EN/CA/Rules.hs view
@@ -23,6 +23,7 @@ import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG  -- 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).@@ -122,6 +123,14 @@   -- Closest Monday to June 24th   , ( "Discovery Day", "discovery\\s+day"     , predNthClosest 0 (dayOfWeek 1) (monthDay 6 24) )++  -- Wednesday of the last full week of April, where a full week starts on+  -- Sunday and ends on Saturday.+  , ( "Administrative Professionals' Day"+    , "(administrative professional|secretarie|admin)('?s'?)? day"+    , cycleNthAfter False TG.Day (-3) $+        predNthAfter (-1) (dayOfWeek 6) (monthDay 5 1)+    )   ]  rules :: [Rule]
Duckling/Time/EN/Corpus.hs view
@@ -102,6 +102,9 @@       , "at 650-650-6500"       , "two sixty a m"       , "Pay ABC 2000"+      , "4a"+      , "4a."+      , "A4 A5"       ]  latentCorpus :: Corpus@@ -114,7 +117,11 @@                  ]       , examples (datetime (2013, 2, 12, 7, 0, 0) Hour)                  [ "7"+                 , "7a"                  ]+      , examples (datetime (2013, 2, 12, 19, 0, 0) Hour)+                 [ "7p"+                 ]       --, examples (datetime (1954, 1, 1, 0, 0, 0) Year)       --           [ "1954"       --           ]@@ -331,6 +338,17 @@              [ "next year"              , "next yr"              ]+  , examples (datetime (2014, 1, 1, 0, 0, 0) Year)+             [ "in 2014 A.D.",+               "in 2014 AD"+             ]+  , examples (datetime (-2014, 1, 1, 0, 0, 0) Year)+             [ "in 2014 B.C.",+               "in 2014 BC"+             ]+  , examples (datetime (14, 1, 1, 0, 0, 0) Year)+             [ "in 14 a.d."+             ]   , examples (datetime (2013, 2, 10, 0, 0, 0) Day)              [ "last sunday"              , "sunday from last week"@@ -386,6 +404,19 @@   , examples (datetime (2014, 10, 6, 0, 0, 0) Week)              [ "first week of october 2014"              ]+  , examples (datetime (2018, 12, 10, 0, 0, 0) Week)+             [ "third last week of 2018"+             , "the third last week of 2018"+             , "the 3rd last week of 2018"+             ]+  , examples (datetime (2018, 10, 15, 0, 0, 0) Week)+             [ "2nd last week of October 2018"+             , "the second last week of October 2018"+             ]+  , examples (datetime (2013, 5, 27, 0, 0, 0) Day)+             [ "fifth last day of May"+             , "the 5th last day of May"+             ]   , examples (datetime (2013, 10, 7, 0, 0, 0) Week)              [ "the week of october 6th"              ]@@ -439,6 +470,8 @@              , "3ish pm"              , "3pm approximately"              , "at about 3pm"+             , "at 3p"+             , "at 3p."              ]   , examples (datetime (2013, 2, 12, 15, 15, 0) Minute)              [ "at 15 past 3pm"@@ -592,6 +625,10 @@              , "one week ago"              , "1 week ago"              ]+  , examples (datetime (2013, 1, 31, 0, 0, 0) Day)+             [ "2 thursdays back"+             , "2 thursdays ago"+             ]   , examples (datetime (2013, 1, 22, 0, 0, 0) Day)              [ "three weeks ago"              ]@@ -628,6 +665,8 @@              ]   , examples (datetimeInterval ((2013, 12, 18, 0, 0, 0), (2013, 12, 29, 0, 0, 0)) Day)              [ "for 10 days from 18th Dec"+             , "from 18th Dec for 10 days"+             , "18th Dec for 10 days"              ]   , examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)              [ "this Summer"@@ -1005,6 +1044,14 @@              , "from 2 pm"              , "since 2pm"              ]+  , examples (datetimeOpenInterval After (2014, 1, 1, 0, 0, 0) Year)+             [ "anytime after 2014"+             , "since 2014"+             ]+  , examples (datetimeOpenInterval Before (2014, 1, 1, 0, 0, 0) Year)+             [ "sometimes before 2014"+             , "through 2014"+             ]   , examples (datetimeOpenInterval After (2013, 2, 17, 4, 0, 0) Hour)              [ "after 5 days"              ]@@ -1247,9 +1294,13 @@              ]   , examples (datetimeIntervalHoliday ((2018, 9, 9, 0, 0, 0), (2018, 9, 12, 0, 0, 0)) Day "Rosh Hashanah")              [ "rosh hashanah 2018"+             , "rosh hashana 2018"+             , "rosh hashanna 2018"              ]   , examples (datetimeIntervalHoliday ((2018, 12, 2, 0, 0, 0), (2018, 12, 10, 0, 0, 0)) Day "Hanukkah")              [ "Chanukah 2018"+             , "hanukah 2018"+             , "hannukkah 2018"              ]   , examples (datetimeIntervalHoliday ((2018, 3, 30, 0, 0, 0), (2018, 4, 8, 0, 0, 0)) Day "Passover")              [ "passover 2018"@@ -1383,5 +1434,21 @@              [ "holi 2019"              , "dhulandi 2019"              , "phagwah 2019"+             ]+  , examples (datetimeIntervalHoliday ((2013, 4, 26, 0, 0, 0), (2013, 4, 29, 0, 0, 0)) Day "Global Youth Service Day")+             [ "GYSD 2013"+             , "global youth service day"+             ]+  , examples (datetimeHoliday (2013, 5, 24, 0, 0, 0) Day "Vesak")+             [ "vesak"+             , "vaisakha"+             , "Buddha day"+             , "Buddha Purnima"+             ]+  , examples (datetimeIntervalHoliday ((2013, 3, 23, 20, 30, 0), (2013, 3, 23, 21, 31, 0)) Minute "Earth Hour")+             [ "earth hour"+             ]+  , examples (datetimeIntervalHoliday ((2016, 3, 19, 20, 30, 0), (2016, 3, 19, 21, 31, 0)) Minute "Earth Hour")+             [ "earth hour 2016"              ]   ]
Duckling/Time/EN/NZ/Corpus.hs view
@@ -92,4 +92,7 @@              [ "labour day of last year"              , "Labour Day 2012"              ]+  , examples (datetimeHoliday (2013, 4, 17, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "admin day"+             ]   ]
Duckling/Time/EN/NZ/Rules.hs view
@@ -80,7 +80,7 @@    -- Fixed day/week/month, year over year   , ( "Administrative Professionals' Day"-    , "(admin(istrative professionals'?)|secretaries'?) day"+    , "(administrative professional|secretarie|admin)('?s'?)? day"     , nthDOWOfMonth 3 3 4 )   , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 1 7 9 )   , ( "Labour Day", "labour day", nthDOWOfMonth 4 1 10 )
Duckling/Time/EN/Rules.hs view
@@ -24,7 +24,7 @@ import Duckling.Dimensions.Types import Duckling.Duration.Helpers (duration) import Duckling.Duration.Types (DurationData (..))-import Duckling.Numeral.Helpers (parseInt)+import Duckling.Numeral.Helpers (isNatural, parseInt) import Duckling.Numeral.Types (NumeralData (..)) import Duckling.Ordinal.Types (OrdinalData (..)) import Duckling.Regex.Types@@ -57,7 +57,7 @@   , pattern =     [ Predicate isNotLatent     , regex "of|from|for|'s|,"-    , Predicate $ or . sequence [isNotLatent, isGrainOfTime TG.Year]+    , Predicate isNotLatent     ]   , prod = \tokens -> case tokens of       (Token Time td1:_:Token Time td2:_) ->@@ -65,6 +65,20 @@       _ -> Nothing   } +ruleIntersectYear :: Rule+ruleIntersectYear = Rule+  { name = "intersect by \",\", \"of\", \"from\" for year"+  , pattern =+    [ Predicate isNotLatent+    , regex "of|from|,"+    , Predicate $ isGrainOfTime TG.Year+    ]+  , prod = \tokens -> case tokens of+      (Token Time td1:_:Token Time td2:_) ->+        Token Time . notLatent <$> intersect td1 td2+      _ -> Nothing+  }+ ruleAbsorbOnTime :: Rule ruleAbsorbOnTime = Rule   { name = "on <date>"@@ -324,6 +338,20 @@       _ -> Nothing   } +ruleYearADBC :: Rule+ruleYearADBC = Rule+  { name = "<year> (bc|ad)"+  , pattern =+    [ Predicate $ isIntegerBetween (-10000) 10000+    , regex "(a\\.?d\\.?|b\\.?c\\.?)"+    ]+  , prod = \case+    (token:Token RegexMatch (GroupMatch (ab:_)):_) -> do+      y <- getIntValue token+      tt . yearADBC $ if Text.head (Text.toLower ab) == 'b' then -y else y+    _ -> Nothing+  }+ ruleDOMLatent :: Rule ruleDOMLatent = Rule   { name = "<day-of-month> (ordinal)"@@ -574,9 +602,12 @@   { name = "<time-of-day> am|pm"   , pattern =     [ Predicate isATimeOfDay-    , regex "(in the )?([ap])(\\s|\\.)?m?\\.?"+    , regex "(in the )?([ap])(\\s|\\.)?(m?)\\.?"     ]   , prod = \tokens -> case tokens of+      (Token Time td@TimeData {TTime.latent = True}:+       Token RegexMatch (GroupMatch (_:ap:_:"":_)):_) ->+        tt . mkLatent $ timeOfDayAMPM (Text.toLower ap == "a") td       (Token Time td:Token RegexMatch (GroupMatch (_:ap:_)):_) ->         tt $ timeOfDayAMPM (Text.toLower ap == "a") td       _ -> Nothing@@ -1162,39 +1193,39 @@       _ -> Nothing   } -ruleIntervalUntilTOD :: Rule-ruleIntervalUntilTOD = Rule-  { name = "until <time-of-day>"+ruleIntervalUntilTime :: Rule+ruleIntervalUntilTime = Rule+  { name = "until <time>"   , pattern =     [ regex "(anytime |sometimes? )?(before|(un)?til(l)?|through|up to)"     , dimension Time     ]   , prod = \tokens -> case tokens of-      (_:Token Time td:_) -> tt $ withDirection TTime.Before td+      (_:Token Time td:_) -> tt . withDirection TTime.Before $ notLatent td       _ -> Nothing   } -ruleIntervalAfterFromSinceTOD :: Rule-ruleIntervalAfterFromSinceTOD = Rule-  { name = "from|since|after <time-of-day>"+ruleIntervalAfterFromSinceTime :: Rule+ruleIntervalAfterFromSinceTime = Rule+  { name = "from|since|after <time>"   , pattern =     [ regex "from|since|(anytime |sometimes? )?after"     , dimension Time     ]   , prod = \tokens -> case tokens of-      (_:Token Time td:_) -> tt $ withDirection TTime.After td+      (_:Token Time td:_) -> tt . withDirection TTime.After $ notLatent td       _ -> Nothing   }  ruleDaysOfWeek :: [Rule] ruleDaysOfWeek = mkRuleDaysOfWeek-  [ ( "Monday"   , "monday|mon\\.?"         )-  , ( "Tuesday"  , "tuesday|tues?\\.?"      )-  , ( "Wednesday", "wed?nesday|wed\\.?"     )-  , ( "Thursday" , "thursday|thu(rs?)?\\.?" )-  , ( "Friday"   , "friday|fri\\.?"         )-  , ( "Saturday" , "saturday|sat\\.?"       )-  , ( "Sunday"   , "sunday|sun\\.?"         )+  [ ( "Monday"   , "mondays?|mon\\.?"         )+  , ( "Tuesday"  , "tuesdays?|tues?\\.?"      )+  , ( "Wednesday", "wed?nesdays?|wed\\.?"     )+  , ( "Thursday" , "thursdays?|thu(rs?)?\\.?" )+  , ( "Friday"   , "fridays?|fri\\.?"         )+  , ( "Saturday" , "saturdays?|sat\\.?"       )+  , ( "Sunday"   , "sundays?|sun\\.?"         )   ]  ruleMonths :: [Rule]@@ -1553,6 +1584,10 @@   , ( "World Philosophy Day", "world philosophy day", nthDOWOfMonth 3 4 11 )   , ( "World Religion Day", "world religion day", nthDOWOfMonth 3 7 1 )   , ( "World Sight Day", "world sight day", nthDOWOfMonth 2 4 10 )++  -- Other+  , ( "Boss's Day", "boss'?s?( day)?"+    , predNthClosest 0 weekday (monthDay 10 16) )   ]  ruleComputedHolidays :: [Rule]@@ -1662,6 +1697,8 @@     , cycleNthAfter False TG.Day 9 navaratri )   -- 15th day of Shevat   , ( "Tu BiShvat", "tu b[i']shvat", tuBishvat )+  -- day of the full moon in May in the Gregorian calendar+  , ( "Vesak", "v(e|ai)sak(ha)?|buddha (day|purnima)", vesak )   , ( "Yom Ha'atzmaut", "yom ha'?atzmaut", yomHaatzmaut )   , ( "Yom HaShoah"     , "yom hashoah|yom hazikaron lashoah ve-lag'vurah|holocaust (remembrance )?day"@@ -1669,19 +1706,19 @@   , ( "Yom Kippur", "yom\\s+kippur", cycleNthAfter False TG.Day 9 roshHashana )   , ( "Whit Monday", "(pentecost|whit)\\s+monday|monday of the holy spirit"     , cycleNthAfter False TG.Day 50 easterSunday )--  -- Other-  , ( "Boss's Day", "boss'?s?( day)?"-    , predNthClosest 0 weekday (monthDay 10 16) )   ]  ruleComputedHolidays' :: [Rule] ruleComputedHolidays' = mkRuleHolidays'-  [ ( "Great Lent", "great\\s+(fast|lent)"+  [ ( "Global Youth Service Day", "global youth service day|gysd"+    , let start = globalYouthServiceDay+          end = cycleNthAfter False TG.Day 2 globalYouthServiceDay+        in interval TTime.Open start end )+  , ( "Great Lent", "great\\s+(fast|lent)"     , let start = cycleNthAfter False TG.Day (-48) orthodoxEaster           end = cycleNthAfter False TG.Day (-9) orthodoxEaster         in interval TTime.Open start end )-  , ( "Hanukkah", "c?hanukk?ah"+  , ( "Hanukkah", "c?hann?ukk?ah"     , let start = chanukah           end = cycleNthAfter False TG.Day 7 chanukah         in interval TTime.Open start end )@@ -1701,7 +1738,7 @@     , let start = ramadan           end = cycleNthAfter False TG.Day (-1) eidalFitr         in interval TTime.Open start end )-  , ( "Rosh Hashanah", "rosh hashanah|yom teruah"+  , ( "Rosh Hashanah", "rosh hashann?ah?|yom teruah"     , let start = roshHashana           end = cycleNthAfter False TG.Day 2 roshHashana         in interval TTime.Open start end )@@ -1713,6 +1750,18 @@     , let start = cycleNthAfter False TG.Day 14 roshHashana           end = cycleNthAfter False TG.Day 22 roshHashana         in interval TTime.Open start end )++  -- Other+  -- Last Saturday of March unless it falls on Holy Saturday+  -- In which case it's the Saturday before+  , ( "Earth Hour", "earth hour"+    , let holySaturday = cycleNthAfter False TG.Day (-1) easterSunday+          tentative = predLastOf (dayOfWeek 6) (month 3)+          alternative = cycleNthAfter False TG.Day (-7) tentative+        in do+          day <- intersectWithReplacement holySaturday tentative alternative+          start <- intersect day $ hourMinute True 20 30+          interval TTime.Closed start $ cycleNthAfter False TG.Minute 60 start )   ]  ruleCycleThisLastNext :: Rule@@ -1804,6 +1853,23 @@       _ -> Nothing   } +ruleCycleLastOrdinalOfTime :: Rule+ruleCycleLastOrdinalOfTime = Rule+  { name = "<ordinal> last <cycle> of <time>"+  , pattern =+    [ dimension Ordinal+    , regex "last"+    , dimension TimeGrain+    , regex "of|in|from"+    , dimension Time+    ]+  , prod = \tokens -> case tokens of+      (token:_:Token TimeGrain grain:_:Token Time td:_) -> do+        n <- getIntValue token+        tt . cycleNthAfter True grain (-n) . cycleNthAfter True (timeGrain td) 1 $ td+      _ -> Nothing+  }+ ruleCycleTheOrdinalOfTime :: Rule ruleCycleTheOrdinalOfTime = Rule   { name = "the <ordinal> <cycle> of <time>"@@ -1821,6 +1887,24 @@       _ -> Nothing   } +ruleCycleTheLastOrdinalOfTime :: Rule+ruleCycleTheLastOrdinalOfTime = Rule+  { name = "the <ordinal> last <cycle> of <time>"+  , pattern =+    [ regex "the"+    , dimension Ordinal+    , regex "last"+    , dimension TimeGrain+    , regex "of|in|from"+    , dimension Time+    ]+  , prod = \tokens -> case tokens of+      (_:token:_:Token TimeGrain grain:_:Token Time td:_) -> do+        n <- getIntValue token+        tt . cycleNthAfter True grain (-n) . cycleNthAfter True (timeGrain td) 1 $ td+      _ -> Nothing+  }+ ruleCycleTheOfTime :: Rule ruleCycleTheOfTime = Rule   { name = "the <cycle> of <time>"@@ -1952,6 +2036,20 @@       _ -> Nothing   } +ruleNDOWago :: Rule+ruleNDOWago = Rule+  { name = "<integer> <named-day> ago|back"+  , pattern =+    [ Predicate isNatural+    , Predicate isADayOfWeek+    , regex "ago|back"+    ]+  , prod = \tokens -> case tokens of+      (Token Numeral NumeralData{TNumeral.value = v}:Token Time td:_) ->+        tt $ predNth (- (floor v)) False td+      _ -> Nothing+  }+ ruleDurationHenceAgo :: Rule ruleDurationHenceAgo = Rule   { name = "<duration> hence|ago"@@ -2046,6 +2144,35 @@       _ -> Nothing } +ruleIntervalTimeForDuration :: Rule+ruleIntervalTimeForDuration = Rule+  { name = "<time> for <duration>"+  , pattern =+    [ Predicate isNotLatent+    , regex "for"+    , dimension Duration+    ]+  , prod = \tokens -> case tokens of+      (Token Time td1:_:Token Duration dd:_) ->+        Token Time <$> interval TTime.Open td1 (durationAfter dd td1)+      _ -> Nothing+}++ruleIntervalFromTimeForDuration :: Rule+ruleIntervalFromTimeForDuration = Rule+  { name = "from <time> for <duration>"+  , pattern =+    [ regex "(from|starting|beginning|after|starting from)"+    , Predicate isNotLatent+    , regex "for"+    , dimension Duration+    ]+  , prod = \tokens -> case tokens of+      (_:Token Time td1:_:Token Duration dd:_) ->+        Token Time <$> interval TTime.Open td1 (durationAfter dd td1)+      _ -> Nothing+}+ ruleTimezone :: Rule ruleTimezone = Rule   { name = "<time> timezone"@@ -2064,6 +2191,7 @@ rules =   [ ruleIntersect   , ruleIntersectOf+  , ruleIntersectYear   , ruleAbsorbOnTime   , ruleAbsorbOnADOW   , ruleAbsorbInMonthYear@@ -2082,6 +2210,7 @@   , ruleNthTimeAfterTime   , ruleTheNthTimeAfterTime   , ruleYearLatent+  , ruleYearADBC   , ruleTheDOMNumeral   , ruleTheDOMOrdinal   , ruleDOMLatent@@ -2138,14 +2267,16 @@   , ruleIntervalTODBetween   , ruleIntervalBy   , ruleIntervalByTheEndOf-  , ruleIntervalUntilTOD-  , ruleIntervalAfterFromSinceTOD+  , ruleIntervalUntilTime+  , ruleIntervalAfterFromSinceTime   , ruleCycleTheAfterBeforeTime   , ruleCycleThisLastNext   , ruleDOMOfTimeMonth   , ruleCycleAfterBeforeTime   , ruleCycleOrdinalOfTime+  , ruleCycleLastOrdinalOfTime   , ruleCycleTheOrdinalOfTime+  , ruleCycleTheLastOrdinalOfTime   , ruleCycleTheOfTime   , ruleCycleOrdinalAfterTime   , ruleCycleTheOrdinalAfterTime@@ -2154,11 +2285,14 @@   , ruleCycleOrdinalQuarterYear   , ruleDurationInWithinAfter   , ruleDurationLastNext+  , ruleNDOWago   , ruleDurationHenceAgo   , ruleDayDurationHenceAgo   , ruleDayInDuration   , ruleDurationAfterBeforeTime   , ruleIntervalForDurationFrom+  , ruleIntervalFromTimeForDuration+  , ruleIntervalTimeForDuration   , ruleInNumeral   , ruleTimezone   , rulePartOfMonth
Duckling/Time/EN/US/Corpus.hs view
@@ -141,4 +141,56 @@              [ "Groundhog day"              , "groundhogs day"              ]+  , examples (datetimeHoliday (2011, 4, 15, 0, 0, 0) Day "Emancipation Day")+             [ "emancipation day 2011"+             ]+  , examples (datetimeHoliday (2012, 4, 16, 0, 0, 0) Day "Emancipation Day")+             [ "emancipation day 2012"+             ]+  , examples (datetimeHoliday (2017, 4, 17, 0, 0, 0) Day "Emancipation Day")+             [ "emancipation day 2017"+             ]+  , examples (datetimeHoliday (2011, 4, 18, 0, 0, 0) Day "Tax Day")+             [ "tax day 2011"+             , "tax day two years ago"+             ]+  , examples (datetimeHoliday (2012, 4, 17, 0, 0, 0) Day "Tax Day")+             [ "tax day 2012"+             , "tax day last year"+             ]+  , examples (datetimeHoliday (2013, 4, 15, 0, 0, 0) Day "Tax Day")+             [ "next tax day"+             , "tax day 2013"+             ]+  , examples (datetimeHoliday (2017, 4, 18, 0, 0, 0) Day "Tax Day")+             [ "tax day 2017"+             , "tax day in 4 years"+             ]+  , examples (datetimeHoliday (2013, 4, 10, 0, 0, 0) Day "Siblings Day")+             [ "siblings day"+             , "national sibling day"+             ]+  , examples (datetimeHoliday (2016, 4, 27, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "administrative professionals' day 2016"+             , "administrative professionals day 2016"+             , "administrative professional day 2016"+             , "administrative professional's day of 2016"+             , "secretaries' day 2016"+             , "admins day 2016"+             ]+  , examples (datetimeHoliday (2010, 4, 21, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "administrative professionals' day 2010"+             ]+  , examples (datetimeHoliday (2019, 4, 24, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "administrative professionals' day 2019"+             ]+  , examples (datetimeIntervalHoliday ((2013, 4, 26, 0, 0, 0), (2013, 4, 29, 0, 0, 0)) Day "Global Youth Service Day")+             [ "national youth service day"+             ]+  , examples (datetimeIntervalHoliday ((2018, 5, 20, 0, 0, 0), (2018, 5, 27, 0, 0, 0)) Day "Emergency Medical Services Week")+             [ "ems week 2018"+             ]+  , examples (datetimeHoliday (2018, 5, 23, 0, 0, 0) Day "Emergency Medical Services for Children Day")+             [ "emsc day 2018"+             ]   ]
Duckling/Time/EN/US/Rules.hs view
@@ -21,6 +21,7 @@ import Duckling.Dimensions.Types import Duckling.Numeral.Helpers (parseInt) import Duckling.Regex.Types+import Duckling.Time.Computed import Duckling.Time.Helpers import Duckling.Time.Types (TimeData (..)) import Duckling.Types@@ -98,7 +99,6 @@   , ( "D-Day", "d\\-day", monthDay 6 6 )   , ( "Day After Christmas Day", "day after christmas day", monthDay 12 26 )   , ( "Elizabeth Peratrovich Day", "elizabeth peratrovich day", monthDay 2 16 )-  , ( "Emancipation Day", "emancipation day", monthDay 4 16 )   , ( "Evacuation Day", "evacuation day", monthDay 3 17 )   , ( "Father Damien Day", "father damien day", monthDay 4 15 )   , ( "Feast of Our Lady of Guadalupe", "feast of our lady of guadalupe", monthDay 12 12 )@@ -142,6 +142,7 @@   , ( "San Jacinto Day", "san jacinto day", monthDay 4 21 )   , ( "Self-Injury Awareness Day", "self\\-injury awareness day", monthDay 3 1 )   , ( "Senior Citizens Day", "senior citizens day", monthDay 8 21 )+  , ( "Siblings Day", "(national )?sibling'?s?'? day", monthDay 4 10 )   , ( "St Nicholas' Day", "st\\.? nicholas'? day", monthDay 12 6 )   , ( "St. David's Day", "st\\.? david'?s day", monthDay 3 1 )   , ( "Statehood Day", "statehood day", monthDay 6 1 )@@ -230,14 +231,54 @@     , "(george )?washington'?s? (birth)?day|president'?s?'? day|daisy gatson bates'? day"     , nthDOWOfMonth 3 1 2     )++  -- Wednesday of the last full week of April, where a full week starts on+  -- Sunday and ends on Saturday.+  , ( "Administrative Professionals' Day"+    , "(administrative professional|secretarie|admin)('?s'?)? day"+    , cycleNthAfter False TG.Day (-3) $+        predNthAfter (-1) (dayOfWeek 6) (monthDay 5 1) )+  -- Wednesday of the 3rd full week in May, starting on a Sunday+  , ( "Emergency Medical Services for Children Day"+    , "(national )?(emsc|emergency medical services for children) day"+    , cycleNthAfter False TG.Day 3 $ predNthAfter 2 (dayOfWeek 7) (monthDay 5 1)+    )++  -- Other+  , ( "Emancipation Day", "emancipation day"+    , predNthClosest 0 weekday $ monthDay 4 16 )   ]  rulePeriodicHolidays' :: [Rule] rulePeriodicHolidays' = mkRuleHolidays'   -- Fixed dates, year over year   [ ( "Kwanzaa", "kwanzaa", interval TTime.Open (monthDay 12 26) (monthDay 1 1) )++  -- 3rd full week in May, starting on a Sunday+  , ( "Emergency Medical Services Week"+    , "(national )?(ems|emergency medical services) week"+    , let start = predNthAfter 2 (dayOfWeek 7) (monthDay 5 1)+          end = cycleNthAfter False TG.Day 6 start+      in interval TTime.Open start end )++  -- Other+  -- First weekday on or after April 15 if different than Emancipation Day+  -- Otherwise, first weekday following Emancipation Day+  , ( "Tax Day", "tax day"+    , let emancipationDay = predNthClosest 0 weekday $ monthDay 4 16+          tentative = predNthAfter 0 weekday $ monthDay 4 15+          alternative = predNthAfter 1 weekday emancipationDay+      in intersectWithReplacement emancipationDay tentative alternative )   ] +ruleComputedHolidays' :: [Rule]+ruleComputedHolidays' = mkRuleHolidays'+  [ ( "Global Youth Service Day", "national youth service day"+    , let start = globalYouthServiceDay+          end = cycleNthAfter False TG.Day 2 globalYouthServiceDay+        in interval TTime.Open start end )+  ]+ rulesBackwardCompatible :: [Rule] rulesBackwardCompatible =   [ ruleMMDD@@ -250,3 +291,4 @@ rules = rulesBackwardCompatible   ++ rulePeriodicHolidays   ++ rulePeriodicHolidays'+  ++ ruleComputedHolidays'
Duckling/Time/EN/ZA/Corpus.hs view
@@ -97,4 +97,7 @@              [ "heroes' day"              , "kruger day"              ]+  , examples (datetimeHoliday (2013, 9, 4, 0, 0, 0) Day "Administrative Professionals' Day")+             [ "admin day"+             ]   ]
Duckling/Time/EN/ZA/Rules.hs view
@@ -82,6 +82,9 @@   , ( "Workers' Day", "workers'? day", monthDay 5 1 )    -- Fixed day/week/month, year over year+  , ( "Administrative Professionals' Day"+    , "(administrative professional|secretarie|admin)('?s'?)? day"+    , nthDOWOfMonth 1 3 9 )   , ( "Father's Day", "father'?s?'? day", nthDOWOfMonth 3 7 6 )   , ( "Mother's Day", "mother'?s?'? day", nthDOWOfMonth 2 7 5 )   , ( "Thanksgiving Day", "thanks?giving( day)?", nthDOWOfMonth 4 4 11 )
Duckling/Time/Helpers.hs view
@@ -24,7 +24,7 @@   , month, monthDay, notLatent, now, nthDOWOfMonth, partOfDay, predLastOf   , predNth, predNthAfter, predNthClosest, season, second, timeOfDayAMPM   , weekday, weekend, withDirection, year, yearMonthDay, tt, durationIntervalAgo-  , inDurationInterval+  , inDurationInterval, intersectWithReplacement, yearADBC     -- Other   , getIntValue, timeComputed   -- Rule constructors@@ -32,6 +32,7 @@   , mkRuleSeasons, mkRuleHolidays, mkRuleHolidays'   ) where +import Control.Applicative ((<|>)) import Data.Maybe import Data.Ord (comparing) import Data.Text (Text)@@ -58,6 +59,7 @@   , mkYearPredicate   , mkIntersectPredicate   , mkTimeIntervalsPredicate+  , mkReplaceIntersectPredicate   , runPredicate   , AMPM(..)   )@@ -114,7 +116,6 @@ timeMonth :: Int -> TTime.Predicate timeMonth n = mkMonthPredicate n --- | Converts 2-digits to a year between 1950 and 2050 timeYear :: Int -> TTime.Predicate timeYear n = mkYearPredicate n @@ -226,6 +227,11 @@ timeCompose :: TTime.Predicate -> TTime.Predicate -> TTime.Predicate timeCompose pred1 pred2 = mkIntersectPredicate pred1 pred2 +timeComposeWithReplacement+  :: TTime.Predicate -> TTime.Predicate -> TTime.Predicate -> TTime.Predicate+timeComposeWithReplacement pred1 pred2 pred3 =+  mkReplaceIntersectPredicate pred1 pred2 pred3+ addDuration :: DurationData -> TTime.TimeObject -> TTime.TimeObject addDuration (DurationData n g) t = TTime.timePlus t g $ toInteger n @@ -350,27 +356,33 @@       | TTime.isEmptyPredicate pred -> Nothing     res -> Just res +intersectWithReplacement :: TimeData -> TimeData -> TimeData -> Maybe TimeData+intersectWithReplacement+  (TimeData pred1 _ g1 _ _ _ _ h1)+  (TimeData pred2 _ g2 _ _ _ _ h2)+  (TimeData pred3 _ g3 _ _ _ _ h3)+  | g1 == g2 && g2 == g3 = Just $ TTime.timedata'+    { TTime.timePred = timeComposeWithReplacement pred1 pred2 pred3+    , TTime.timeGrain = g1+    , TTime.direction = Nothing+    , TTime.holiday = h1 <|> h2 <|> h3+    }+  | otherwise = Nothing+ intersect' :: (TimeData, TimeData) -> TimeData intersect' (TimeData pred1 _ g1 _ _ d1 _ h1, TimeData pred2 _ g2 _ _ d2 _ h2)   | g1 < g2 = TTime.timedata'     { TTime.timePred = timeCompose pred1 pred2     , TTime.timeGrain = g1-    , TTime.direction = dir-    , TTime.holiday = hol+    , TTime.direction = d1 <|> d2+    , TTime.holiday = h1 <|> h2     }   | otherwise = TTime.timedata'     { TTime.timePred = timeCompose pred2 pred1     , TTime.timeGrain = g2-    , TTime.direction = dir-    , TTime.holiday = hol+    , TTime.direction = d1 <|> d2+    , TTime.holiday = h1 <|> h2     }-  where-    dir = case catMaybes [d1, d2] of-      [] -> Nothing-      (x:_) -> Just x-    hol = case catMaybes [h1, h2] of-      [] -> Nothing-      (h:_) -> Just h  now :: TimeData now = td {TTime.timeGrain = TG.NoGrain}@@ -404,8 +416,15 @@ month n = form TTime.Month {TTime.month = n} $ TTime.timedata'   {TTime.timePred = timeMonth n, TTime.timeGrain = TG.Month} +-- | Converts 2-digits to a year between 1950 and 2050 year :: Int -> TimeData-year n = TTime.timedata' {TTime.timePred = timeYear n, TTime.timeGrain = TG.Year}+year n = TTime.timedata'{TTime.timePred = timeYear y, TTime.timeGrain = TG.Year}+  where+    y = if n <= 99 then mod (n + 50) 100 + 2000 - 50 else n++yearADBC :: Int -> TimeData+yearADBC n =+  TTime.timedata'{TTime.timePred = timeYear n, TTime.timeGrain = TG.Year}  yearMonthDay :: Int -> Int -> Int -> TimeData yearMonthDay y m d = intersect' (intersect' (year y, month m), dayOfMonth d)
+ Duckling/Time/NL/BE/Corpus.hs view
@@ -0,0 +1,27 @@+-- 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.NL.BE.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++allExamples :: [Example]+allExamples = concat+  [ examples (datetimeHoliday (2013, 12, 6, 0, 0, 0) Day "Sinterklaas")+             [ "Sinterklaas"+             ]+  ]
+ Duckling/Time/NL/BE/Rules.hs view
@@ -0,0 +1,26 @@+-- 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.NL.BE.Rules+  ( rules+  ) where++import Duckling.Time.Helpers+import Duckling.Types++ruleHolidays :: [Rule]+ruleHolidays = mkRuleHolidays+  [ ( "Sinterklaas", "sinterklaas", monthDay 12 6 )+  ]++rules :: [Rule]+rules = ruleHolidays
Duckling/Time/NL/Corpus.hs view
@@ -10,6 +10,7 @@  module Duckling.Time.NL.Corpus   ( corpus+  , defaultCorpus   , negativeCorpus   ) where @@ -29,6 +30,17 @@ corpus :: Corpus corpus = (context, testOptions, allExamples) +defaultCorpus :: Corpus+defaultCorpus = (context, testOptions, allExamples ++ custom)+  where+    custom = concat+      [ examples (datetimeHoliday (2013, 12, 5, 0, 0, 0) Day "Sinterklaas")+                 [ "Sinterklaas"+                 , "Pakjesavond"+                 , "Sinterklaasavond"+                 ]+      ]+ negativeCorpus :: NegativeCorpus negativeCorpus = (context, testOptions, examples)   where@@ -449,11 +461,6 @@              ]   , examples (datetimeHoliday (2013, 11, 1, 0, 0, 0) Day "Allerheiligen")              [ "Allerheiligen"-             ]-  , examples (datetimeHoliday (2013, 12, 5, 0, 0, 0) Day "Sinterklaas")-             [ "Sinterklaas"-             , "Pakjesavond"-             , "Sinterklaasavond"              ]   , examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)              [ "vanavond"
+ Duckling/Time/NL/NL/Rules.hs view
@@ -0,0 +1,23 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++{-# LANGUAGE GADTs #-}+{-# LANGUAGE NoRebindableSyntax #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.Time.NL.NL.Rules+  ( rulesBackwardCompatible+  ) where++import Duckling.Time.Helpers+import Duckling.Types++rulesBackwardCompatible :: [Rule]+rulesBackwardCompatible = mkRuleHolidays+  [ ( "Sinterklaas", "sinterklaas(avond)?|pakjesavond", monthDay 12 5 )+  ]
Duckling/Time/NL/Rules.hs view
@@ -81,30 +81,17 @@  ruleHolidays :: [Rule] ruleHolidays = mkRuleHolidays-  [ ( "Nieuwjaarsdag"      , "nieuwjaars?(dag)?"-    , monthDay  1  1 )-  , ( "Valentijnsdag"     , "valentijns?(dag)?"-    , monthDay  2 14 )-  , ( "Halloween"       , "hall?oween?"-    , monthDay 10 31 )-  , ( "Koningsdag"      , "konings?dag"-    , monthDay  4 27 )-  , ( "Allerheiligen"       , "allerheiligen?|aller heiligen?"-    , monthDay 11  1 )-  , ( "Sinterklaas"         , "sinterklaas(avond)?|pakjesavond"-    , monthDay 12  5 )-  , ( "Kerstavond"       , "kerstavond"-    , monthDay 12 24 )-  , ( "Tweede Kerstdag", "tweede kerstdag"-    , monthDay 12 26 )-  , ( "Kerstmis"           , "kerstmis|(eerste )?kerstdag|kerst"-    , monthDay 12 25 )-  , ( "Oudjaar"      , "oudjaar|oudejaars?avond"-    , monthDay 12 31 )-  , ( "Moederdag"        , "moederdag"-    , nthDOWOfMonth 2 7 5 )-  , ( "Vaderdag"        , "vaderdag"-    , nthDOWOfMonth 3 7 6 )+  [ ( "Nieuwjaarsdag", "nieuwjaars?(dag)?", monthDay  1  1 )+  , ( "Valentijnsdag", "valentijns?(dag)?", monthDay  2 14 )+  , ( "Halloween", "hall?oween?", monthDay 10 31 )+  , ( "Koningsdag", "konings?dag", monthDay  4 27 )+  , ( "Allerheiligen", "allerheiligen?|aller heiligen?", monthDay 11  1 )+  , ( "Kerstavond", "kerstavond", monthDay 12 24 )+  , ( "Tweede Kerstdag", "tweede kerstdag", monthDay 12 26 )+  , ( "Kerstmis", "kerstmis|(eerste )?kerstdag|kerst", monthDay 12 25 )+  , ( "Oudjaar", "oudjaar|oudejaars?avond", monthDay 12 31 )+  , ( "Moederdag", "moederdag", nthDOWOfMonth 2 7 5 )+  , ( "Vaderdag", "vaderdag", nthDOWOfMonth 3 7 6 )   ]  ruleRelativeMinutesToOrAfterIntegerPartOfDay :: Rule
Duckling/Time/Types.hs view
@@ -16,9 +16,7 @@  module Duckling.Time.Types where -import Control.Arrow ((***)) import Control.DeepSeq-import Control.Monad (join) import Data.Aeson import Data.Foldable (find) import Data.Hashable@@ -237,6 +235,7 @@     }   | IntersectPredicate Predicate Predicate   | TimeIntervalsPredicate TimeIntervalType Predicate Predicate+  | ReplaceIntersectPredicate Predicate Predicate Predicate   deriving Show  {-# ANN runPredicate ("HLint: ignore Use foldr1OrError" :: String) #-}@@ -265,6 +264,8 @@   runIntersectPredicate pred1 pred2 runPredicate (TimeIntervalsPredicate ty pred1 pred2) =   runTimeIntervalsPredicate ty pred1 pred2+runPredicate (ReplaceIntersectPredicate pred1 pred2 pred3) =+  runReplaceIntersectPredicate pred1 pred2 pred3  -- Don't use outside this module, use a smart constructor emptyTimeDatePredicate :: Predicate@@ -332,6 +333,10 @@     | otherwise = Nothing mkIntersectPredicate pred1 pred2 = IntersectPredicate pred1 pred2 +mkReplaceIntersectPredicate :: Predicate -> Predicate -> Predicate -> Predicate+mkReplaceIntersectPredicate pred1 pred2 pred3 =+  ReplaceIntersectPredicate pred1 pred2 pred3+ mkTimeIntervalsPredicate   :: TimeIntervalType -> Predicate -> Predicate -> Predicate mkTimeIntervalsPredicate _ a@EmptyPredicate{} _ = a@@ -541,7 +546,6 @@         then rounded         else timePlus rounded TG.Year 1 --- | Converts 2-digits to a year between 1950 and 2050 runYearPredicate :: Int -> SeriesPredicate runYearPredicate n = series   where@@ -552,13 +556,48 @@     where       Time.UTCTime day _ = start t       (tyear, _, _) = Time.toGregorian day-      year = toInteger $ if n <= 99 then mod (n + 50) 100 + 2000 - 50 else n+      year = toInteger n       y = timePlus (timeRound t TG.Year) TG.Year $ year - tyear  -- Limits how deep into lists of segments to look safeMax :: Int safeMax = 10 +runReplaceIntersectPredicate+  :: Predicate -> Predicate -> Predicate -> SeriesPredicate+runReplaceIntersectPredicate pred1 pred2 pred3 = runComposeWithReplacement+  (runPredicate pred1) (runPredicate pred2) (runPredicate pred3)++-- If pred1 intersects with pred2, returns pred3 otherwise pred2+-- Caveat: only works if all predicates are aligned (e.g. once a year)+runComposeWithReplacement+  :: SeriesPredicate -> SeriesPredicate -> SeriesPredicate -> SeriesPredicate+runComposeWithReplacement pred1 pred2 pred3 = series+  where+  series nowTime context = (backward, forward)+    where+    (past1, future1) = pred1 nowTime context+    (past2, future2) = pred2 nowTime context+    (past3, future3) = pred3 nowTime context++    computeSerie :: [[TimeObject]] -> [TimeObject]+    computeSerie [tokens1,tokens2,tokens3] =+      zipWith3 (\token1 token2 token3 -> case timeIntersect token1 token2 of+        Just _ -> token3+        Nothing -> token2+      ) tokens1 tokens2 tokens3+    computeSerie _ = []++    backwardBounded =+      takeWhile (\t -> timeStartsBeforeTheEndOf (minTime context) t)+      . take safeMax+    forwardBounded =+      takeWhile (\t -> timeStartsBeforeTheEndOf t (maxTime context))+      . take safeMax++    backward = computeSerie $ map backwardBounded [past1, past2, past3]+    forward = computeSerie $ map forwardBounded [future1, future2, future3]+ runIntersectPredicate :: Predicate -> Predicate -> SeriesPredicate runIntersectPredicate pred1 pred2 =   runCompose (runPredicate pred1) (runPredicate pred2)@@ -676,7 +715,7 @@ timezoneOffset (Time.TimeZone t _ _) = Text.concat [sign, hh, ":", mm]   where     (sign, t') = if t < 0 then ("-", negate t) else ("+", t)-    (hh, mm) = join (***) (pad 2) $ divMod t' 60+    (hh, mm) = both (pad 2) $ divMod t' 60  -- | Return a RFC3339 formatted time, e.g. "2013-02-12T04:30:00.000-02:00". -- | Backward-compatible with Duckling: fraction of second is milli and padded.
Duckling/Time/ZH/Corpus.hs view
@@ -461,39 +461,65 @@              , "今晚8點"              , "今晚八點"              ]-  , examples (datetime (2014, 1, 1, 0, 0, 0) Day)+  , examples (datetimeHoliday (2014, 1, 1, 0, 0, 0) Day "元旦")              [ "元旦"              , "元旦节"              , "元旦節"-             ]-  , examples (datetime (2013, 2, 14, 0, 0, 0) Day)-             [ "情人节"-             , "情人節"+             , "阳历新年"              ]-  , examples (datetime (2013, 3, 8, 0, 0, 0) Day)+  , examples (datetimeHoliday (2013, 3, 8, 0, 0, 0) Day "妇女节")              [ "妇女节"              , "婦女節"              ]-  , examples (datetime (2013, 5, 1, 0, 0, 0) Day)+  , examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "劳动节")              [ "劳动节"              , "勞動節"+             , "五一国际劳动节"              ]-  , examples (datetime (2013, 6, 1, 0, 0, 0) Day)+  , examples (datetimeHoliday (2013, 6, 1, 0, 0, 0) Day "儿童节")              [ "儿童节"              , "兒童節"+             , "国际儿童节"              ]-  , examples (datetime (2013, 8, 1, 0, 0, 0) Day)+  , examples (datetimeHoliday (2013, 8, 1, 0, 0, 0) Day "建军节")              [ "建军节"+             , "八一建軍節"              , "建軍節"              ]-  , examples (datetime (2013, 12, 25, 0, 0, 0) Day)+  , examples (datetimeHoliday (2013, 12, 25, 0, 0, 0) Day "圣诞节")              [ "圣诞"              , "聖誕"              , "圣诞节"              , "聖誕節"              ]-  , examples (datetime (2013, 6, 1, 15, 15, 0) Minute)+  , examples (datetimeHoliday (2013, 4, 1, 0, 0, 0) Day "愚人节")+             [ "愚人节"+             , "愚人節"+             ]+  , examples (datetimeHoliday (2013, 10, 31, 0, 0, 0) Day "万圣节")+             [ "万圣节"+             , "萬聖節"+             ]+  , examples (datetimeHoliday (2013, 12, 20, 0, 0, 0) Day "澳门回归纪念日")+             [ "澳门回归纪念日"+             , "澳門回歸紀念日"+             ]+  , examples (datetimeHoliday (2013, 2, 14, 0, 0, 0) Day "情人节")+             [ "情人节"+             , "情人節"+             , "圣瓦伦丁节"+             ]+  , examples (datetimeHoliday (2013, 3, 15, 0, 0, 0) Day "国际消费者权益日")+             [ "国际消费者权益日"+             , "国际消費者權益日"+             , "三一五"+             ]+  , examples (datetimeHoliday (2013, 6, 1, 15, 15, 0) Minute "儿童节")              [ "儿童节下午三点十五"              , "兒童節下午三點十五"+             ]+  , examples (datetimeIntervalHoliday ((2013, 2, 14, 18, 0, 0), (2013, 2, 15, 0, 0, 0)) Hour "情人节")+             [ "情人节晚上"+             , "情人節晚上"              ]   ]
Duckling/Time/ZH/Rules.hs view
@@ -207,15 +207,6 @@       _ -> Nothing   } -ruleValentinesDay :: Rule-ruleValentinesDay = Rule-  { name = "valentine's day"-  , pattern =-    [ regex "情人(节|節)"-    ]-  , prod = \_ -> tt $ monthDay 2 14-  }- ruleHhmmTimeofday :: Rule ruleHhmmTimeofday = Rule   { name = "hh:mm (time-of-day)"@@ -258,15 +249,6 @@       _ -> Nothing   } -ruleNewYearsDay :: Rule-ruleNewYearsDay = Rule-  { name = "new year's day"-  , pattern =-    [ regex "元旦(节|節)?"-    ]-  , prod = \_ -> tt $ monthDay 1 1-  }- ruleLastTime :: Rule ruleLastTime = Rule   { name = "last <time>"@@ -372,15 +354,6 @@   , prod = \_ -> tt . cycleNth TG.Day $ - 2   } -ruleLaborDay :: Rule-ruleLaborDay = Rule-  { name = "labor day"-  , pattern =-    [ regex "劳动节|勞動節"-    ]-  , prod = \_ -> tt $ monthDay 5 1-  }- ruleNextCycle :: Rule ruleNextCycle = Rule   { name = "next <cycle>"@@ -740,15 +713,6 @@   , prod = \_ -> tt . cycleNth TG.Day $ - 1   } -ruleChristmas :: Rule-ruleChristmas = Rule-  { name = "christmas"-  , pattern =-    [ regex "(圣诞|聖誕)(节|節)?"-    ]-  , prod = \_ -> tt $ monthDay 12 25-  }- ruleLastNight :: Rule ruleLastNight = Rule   { name = "last night"@@ -774,15 +738,6 @@       _ -> Nothing   } -ruleArmysDay :: Rule-ruleArmysDay = Rule-  { name = "army's day"-  , pattern =-    [ regex "建(军节|軍節)"-    ]-  , prod = \_ -> tt $ monthDay 8 1-  }- ruleNamedmonthDayofmonth :: Rule ruleNamedmonthDayofmonth = Rule   { name = "<named-month> <day-of-month>"@@ -847,15 +802,6 @@       Token Time . partOfDay <$> intersect td1 td2   } -ruleChildrensDay :: Rule-ruleChildrensDay = Rule-  { name = "children's day"-  , pattern =-    [ regex "(儿|兒)童(节|節)"-    ]-  , prod = \_ -> tt $ monthDay 6 1-  }- ruleThisYear :: Rule ruleThisYear = Rule   { name = "this year"@@ -877,15 +823,6 @@       _ -> Nothing   } -ruleWomensDay :: Rule-ruleWomensDay = Rule-  { name = "women's day"-  , pattern =-    [ regex "(妇|婦)女(节|節)"-    ]-  , prod = \_ -> tt $ monthDay 3 8-  }- ruleEveningnight :: Rule ruleEveningnight = Rule   { name = "evening|night"@@ -977,13 +914,70 @@   , ( "December", "十二月(份)?" )   ] +rulePeriodicHolidays :: [Rule]+rulePeriodicHolidays = mkRuleHolidays+  -- Fixed dates, year over year+  [ ( "中国共产党的生日", "中(国共产党诞|國共產黨誕)生日|(党|黨)的生日", monthDay 7 1 )+  , ( "愚人节", "愚人(节|節)", monthDay 4 1 )+  , ( "建军节", "(中国人民解放(军|軍)|八一)?建(军节|軍節)", monthDay 8 1 )+  , ( "植树节", "中(国植树节|國植樹節)", monthDay 3 12 )+  , ( "五四青年节", "(中(国|國))?(五四|54)?青年(节|節)", monthDay 5 4 )+  , ( "圣诞节", "(圣诞|聖誕)(节|節)?", monthDay 12 25 )+  , ( "平安夜", "(平安|聖誕)夜", monthDay 12 24 )+  , ( "哥伦布日", "哥(伦|倫)布日", monthDay 10 12 )+  , ( "双十一", "(双|雙)(十一|11)", monthDay 11 11 )+  , ( "万圣节", "万圣节|萬聖節", monthDay 10 31 )+  , ( "香港回归纪念日", "香港回(归纪|歸紀)念日", monthDay 7 1 )+  , ( "人权日", "人(权|權)日", monthDay 12 10 )+  , ( "美国独立日", "(美国)?(独|獨)立日", monthDay 7 4 )+  , ( "儿童节", "(国际|國際)?(六一|61)?(儿|兒)童(节|節)", monthDay 6 1 )+  , ( "国际慈善日", "(国际|國際)慈善日", monthDay 9 5 )+  , ( "国际瑜伽日", "(国际|國際)瑜伽日", monthDay 6 21 )+  , ( "国际爵士日", "(国际|國際)爵士日", monthDay 4 30 )+  , ( "国际奥林匹克日", "(国际|國際)奥林匹克日", monthDay 6 23 )+  , ( "妇女节", "(国际劳动|國際勞動|三八)?(妇|婦)女(节|節)", monthDay 3 8 )+  , ( "劳动节", "(五一|51)?(国际|國際)?(劳动|勞動)(节|節)", monthDay 5 1 )+  , ( "国际青年节", "(国际|國際)青年(节|節)", monthDay 8 12 )+  , ( "澳门回归纪念日", "澳(门|門)回(归纪|歸紀)念日", monthDay 12 20 )+  , ( "全国爱牙日", "全(国爱|國愛)牙日", monthDay 9 20 )+  , ( "全国爱耳日", "全(国爱|國愛)耳日", monthDay 3 3 )+  , ( "全国爱眼日", "全(国爱|國愛)眼日", monthDay 6 6 )+  , ( "南京大屠杀纪念日", "南京大屠(杀纪|殺紀)念日", monthDay 12 13 )+  , ( "辛亥革命纪念日", "辛亥革命(纪|紀)念日", monthDay 10 10 )+  , ( "元旦", "元旦(节|節)?|((公|(阳|陽))(历|曆))?新年", monthDay 1 1 )+  , ( "新年夜", "新年夜", monthDay 12 31 )+  , ( "情人节", "(情人|(圣瓦伦丁|聖瓦倫丁))(节|節)", monthDay 2 14 )+  , ( "清明节", "清明(节|節)", monthDay 4 5 )+  , ( "光棍节", "光棍(节|節)", monthDay 11 11 )+  , ( "圣帕特里克节", "圣帕特里克节|聖帕特裏克節", monthDay 3 17 )+  , ( "教师节", "(中(国|國))?教师(节|節)", monthDay 9 10 )+  , ( "退伍军人节", "(退伍(军|軍)人|老兵)(节|節)", monthDay 11 11 )+  , ( "白色情人节", "白色情人(节|節)", monthDay 3 14 )+  , ( "世界艾滋病日", "世界艾滋病日", monthDay 12 1 )+  , ( "世界献血日", "世界(献|獻)血日", monthDay 6 14 )+  , ( "世界癌症日", "世界癌(症|癥)日", monthDay 2 4 )+  , ( "国际消费者权益日", "(国际|世界)?(消费者权益|消費者權益)日|三一五", monthDay 3 15 )+  , ( "世界糖尿病日", "世界糖尿病日", monthDay 11 14 )+  , ( "世界环境日", "世界(环|環)境日", monthDay 6 5 )+  , ( "世界粮食日", "世界((粮|糧)食|食物)日", monthDay 10 16 )+  , ( "世界心脏日", "世界心(脏|臟)日", monthDay 9 29 )+  , ( "世界海洋日", "世界海洋日", monthDay 6 8 )+  , ( "世界诗歌日", "世界(诗|詩)歌日", monthDay 3 21 )+  , ( "世界人口日", "世界人口日", monthDay 7 11 )+  , ( "世界难民日", "世界(难|難)民日", monthDay 6 20 )+  , ( "世界教师日", "世界教师日", monthDay 10 5 )+  , ( "世界旅游日", "世界旅游日", monthDay 9 27 )++  -- Fixed day/week/month, year over year+  , ( "父亲节", "父(亲节|親節)", nthDOWOfMonth 3 7 6 )+  , ( "马丁路德金日", "(马|馬)丁路德金((纪|紀)念)?日", nthDOWOfMonth 3 1 1)+  , ( "母亲节", "母(亲节|親節)", nthDOWOfMonth 2 7 5 )+  ]+ rules :: [Rule] rules =   [ ruleAbsorptionOfAfterNamedDay   , ruleAfternoon-  , ruleArmysDay-  , ruleChildrensDay-  , ruleChristmas   , ruleDimTimePartofday   , ruleDurationAgo   , ruleDurationFromNow@@ -995,7 +989,6 @@   , ruleIntegerLatentTimeofday   , ruleIntersect   , ruleIntersectBy-  , ruleLaborDay   , ruleLastCycle   , ruleLastNCycle   , ruleNCycleLast@@ -1008,7 +1001,6 @@   , ruleMonthNumericWithMonthSymbol   , ruleMorning   , ruleNamedmonthDayofmonth-  , ruleNewYearsDay   , ruleNextCycle   , ruleNextNCycle   , ruleNCycleNext@@ -1046,9 +1038,7 @@   , ruleTomorrow   , ruleTomorrowNight   , ruleTonight-  , ruleValentinesDay   , ruleWeekend-  , ruleWomensDay   , ruleYearNumericWithYearSymbol   , ruleYesterday   , ruleYyyymmdd@@ -1056,3 +1046,4 @@   ]   ++ ruleDaysOfWeek   ++ ruleMonths+  ++ rulePeriodicHolidays
+ Duckling/TimeGrain/HI/Rules.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 GADTs #-}+{-# LANGUAGE OverloadedStrings #-}++module Duckling.TimeGrain.HI.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)", "सेकंड", 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]+rules = map go grains+  where+    go (name, regexPattern, grain) = Rule+      { name = name+      , pattern = [regex regexPattern]+      , prod = \_ -> Just $ Token TimeGrain grain+      }
Duckling/TimeGrain/RO/Rules.hs view
@@ -10,15 +10,16 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.TimeGrain.RO.Rules-  ( rules ) where+  ( rules+  ) where +import Data.String import Data.Text (Text) import Prelude-import Data.String  import Duckling.Dimensions.Types-import qualified Duckling.TimeGrain.Types as TG import Duckling.Types+import qualified Duckling.TimeGrain.Types as TG  grains :: [(Text, String, TG.Grain)] grains = [ ("secunde (grain)", "sec(und(a|e|ă))?", TG.Second)
Duckling/Volume/RO/Corpus.hs view
@@ -9,7 +9,8 @@ {-# LANGUAGE OverloadedStrings #-}  module Duckling.Volume.RO.Corpus-  ( corpus ) where+  ( corpus+  ) where  import Data.String import Prelude@@ -26,8 +27,10 @@ allExamples = concat   [ examples (VolumeValue Millilitre 250)              [ "250 mililitri"+             , "250 de mililitri"              , "250ml"              , "250 ml"+             , "250 de ml"              ]   , examples (VolumeValue Litre 2)              [ "2 litri"@@ -44,5 +47,8 @@   , examples (VolumeValue Litre 0.5)              [ "jumatate de litru"              , "jumătate de litru"+             ]+  , examples (VolumeValue Gallon 20)+             [ "douazeci de galoane"              ]   ]
Duckling/Volume/RO/Rules.hs view
@@ -7,13 +7,15 @@   {-# LANGUAGE GADTs #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}  module Duckling.Volume.RO.Rules-  ( rules ) where+  ( rules+  ) where -import Prelude import Data.String+import Prelude  import Duckling.Dimensions.Types import Duckling.Types@@ -25,9 +27,9 @@   { name = "<latent vol> ml"   , pattern =     [ dimension Volume-    , regex "m(ililitr[ui]|l)"+    , regex "(de )?m(ililitr[ui]|l)"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Volume vd:_) ->         Just . Token Volume $ withUnit TVolume.Millilitre vd       _ -> Nothing@@ -38,9 +40,9 @@   { name = "<vol> hectoliters"   , pattern =     [ dimension Volume-    , regex "hectolitr[ui]"+    , regex "(de )?hectolitr[ui]"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Volume vd:_) ->         Just . Token Volume $ withUnit TVolume.Hectolitre vd       _ -> Nothing@@ -51,9 +53,9 @@   { name = "<vol> liters"   , pattern =     [ dimension Volume-    , regex "l(itr[ui])?"+    , regex "(de )?l(itr[ui])?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Volume vd:_) ->         Just . Token Volume $ withUnit TVolume.Litre vd       _ -> Nothing@@ -65,7 +67,7 @@   , pattern =     [ regex "jum(a|ă)tate de litr[ui]"     ]-  , prod = \_ -> Just . Token Volume . withUnit TVolume.Litre $ volume 0.5+  , prod = const . Just . Token Volume . withUnit TVolume.Litre $ volume 0.5   }  ruleLatentVolGalon :: Rule@@ -73,9 +75,9 @@   { name = "<latent vol> galon"   , pattern =     [ dimension Volume-    , regex "gal(oane|on)?"+    , regex "(de )?gal(oane|on)?"     ]-  , prod = \tokens -> case tokens of+  , prod = \case       (Token Volume vd:_) ->         Just . Token Volume $ withUnit TVolume.Gallon vd       _ -> Nothing
README.md view
@@ -57,6 +57,8 @@ | `Url` | "https://api.wit.ai/message?q=hi" | `{"value":"https://api.wit.ai/message?q=hi","domain":"api.wit.ai"}` | `Volume` | "4 gallons" | `{"value":4,"type":"value","unit":"gallon"}` +[Custom dimensions](https://github.com/facebook/duckling/blob/master/exe/CustomDimensionExample.hs) are also supported.+ ## Extending Duckling To regenerate the classifiers and run the test suite: ```@@ -66,10 +68,11 @@ It's important to regenerate the classifiers after updating the code and before running the test suite. -To extend Duckling's support for a dimension in a given language, typically 2+To extend Duckling's support for a dimension in a given language, typically 3 files need to be updated:-* `Duckling/<dimension>/<language>/Rules.hs`-* `Duckling/<dimension>/<language>/Corpus.hs`+* `Duckling/<Dimension>/<Lang>/Rules.hs`+* `Duckling/<Dimension>/<Lang>/Corpus.hs`+* `Duckling/Dimensions/<Lang>.hs` (if not already present in `Duckling/Dimensions/Common.hs`)  To add a new language: * Make sure that the language code used follows the [ISO-639-1 standard](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
duckling.cabal view
@@ -1,10 +1,10 @@ name:                duckling-version:             0.1.6.0+version:             0.1.6.1 synopsis:            A Haskell library for parsing text into structured data. description:   Duckling is a library for parsing text into structured data.-homepage:            https://github.com/facebookincubator/duckling#readme-bug-reports:         https://github.com/facebookincubator/duckling/issues+homepage:            https://github.com/facebook/duckling#readme+bug-reports:         https://github.com/facebook/duckling/issues license:             OtherLicense license-files:       LICENSE,PATENTS author:              Facebook, Inc.@@ -31,6 +31,7 @@                      , Duckling.Engine                      , Duckling.Engine.Regex                      , Duckling.Locale+                     , Duckling.Region                      , Duckling.Resolve                      , Duckling.Types                      , Duckling.Types.Document@@ -107,6 +108,8 @@                      , Duckling.Ranking.Classifiers.MY_XX                      , Duckling.Ranking.Classifiers.NB_XX                      , Duckling.Ranking.Classifiers.NE_XX+                     , Duckling.Ranking.Classifiers.NL_BE+                     , Duckling.Ranking.Classifiers.NL_NL                      , Duckling.Ranking.Classifiers.NL_XX                      , Duckling.Ranking.Classifiers.PL_XX                      , Duckling.Ranking.Classifiers.PT_XX@@ -166,8 +169,32 @@                      -- AmountOfMoney                      , Duckling.AmountOfMoney.AR.Corpus                      , Duckling.AmountOfMoney.AR.Rules+                     , Duckling.AmountOfMoney.EN.AU.Corpus+                     , Duckling.AmountOfMoney.EN.AU.Rules+                     , Duckling.AmountOfMoney.EN.BZ.Corpus+                     , Duckling.AmountOfMoney.EN.BZ.Rules+                     , Duckling.AmountOfMoney.EN.CA.Corpus+                     , Duckling.AmountOfMoney.EN.CA.Rules                      , Duckling.AmountOfMoney.EN.Corpus+                     , Duckling.AmountOfMoney.EN.GB.Corpus+                     , Duckling.AmountOfMoney.EN.GB.Rules+                     , Duckling.AmountOfMoney.EN.IE.Corpus+                     , Duckling.AmountOfMoney.EN.IE.Rules+                     , Duckling.AmountOfMoney.EN.IN.Corpus+                     , Duckling.AmountOfMoney.EN.IN.Rules+                     , Duckling.AmountOfMoney.EN.JM.Corpus+                     , Duckling.AmountOfMoney.EN.JM.Rules+                     , Duckling.AmountOfMoney.EN.NZ.Corpus+                     , Duckling.AmountOfMoney.EN.NZ.Rules+                     , Duckling.AmountOfMoney.EN.PH.Corpus+                     , Duckling.AmountOfMoney.EN.PH.Rules                      , Duckling.AmountOfMoney.EN.Rules+                     , Duckling.AmountOfMoney.EN.TT.Corpus+                     , Duckling.AmountOfMoney.EN.TT.Rules+                     , Duckling.AmountOfMoney.EN.US.Corpus+                     , Duckling.AmountOfMoney.EN.US.Rules+                     , Duckling.AmountOfMoney.EN.ZA.Corpus+                     , Duckling.AmountOfMoney.EN.ZA.Rules                      , Duckling.AmountOfMoney.BG.Corpus                      , Duckling.AmountOfMoney.BG.Rules                      , Duckling.AmountOfMoney.ES.Corpus@@ -253,6 +280,8 @@                      , Duckling.Duration.GA.Corpus                      , Duckling.Duration.GA.Rules                      , Duckling.Duration.HE.Rules+                     , Duckling.Duration.HI.Corpus+                     , Duckling.Duration.HI.Rules                      , Duckling.Duration.HR.Rules                      , Duckling.Duration.HU.Corpus                      , Duckling.Duration.HU.Rules@@ -450,6 +479,8 @@                      , Duckling.Quantity.RO.Rules                      , Duckling.Quantity.RU.Corpus                      , Duckling.Quantity.RU.Rules+                     , Duckling.Quantity.ZH.Corpus+                     , Duckling.Quantity.ZH.Rules                      , Duckling.Quantity.Helpers                      , Duckling.Quantity.Types @@ -542,6 +573,9 @@                      , Duckling.Time.NB.Rules                      , Duckling.Time.NL.Corpus                      , Duckling.Time.NL.Rules+                     , Duckling.Time.NL.BE.Corpus+                     , Duckling.Time.NL.BE.Rules+                     , Duckling.Time.NL.NL.Rules                      , Duckling.Time.PL.Corpus                      , Duckling.Time.PL.Rules                      , Duckling.Time.PT.Corpus@@ -580,6 +614,7 @@                      , Duckling.TimeGrain.FR.Rules                      , Duckling.TimeGrain.GA.Rules                      , Duckling.TimeGrain.HE.Rules+                     , Duckling.TimeGrain.HI.Rules                      , Duckling.TimeGrain.HR.Rules                      , Duckling.TimeGrain.HU.Rules                      , Duckling.TimeGrain.IT.Rules@@ -721,6 +756,7 @@                      , Duckling.Duration.FR.Tests                      , Duckling.Duration.GA.Tests                      , Duckling.Duration.HU.Tests+                     , Duckling.Duration.HI.Tests                      , Duckling.Duration.JA.Tests                      , Duckling.Duration.KO.Tests                      , Duckling.Duration.NB.Tests@@ -822,6 +858,7 @@                      , Duckling.Quantity.PT.Tests                      , Duckling.Quantity.RO.Tests                      , Duckling.Quantity.RU.Tests+                     , Duckling.Quantity.ZH.Tests                      , Duckling.Quantity.Tests                       -- Temperature@@ -883,14 +920,14 @@                      , Duckling.Volume.TR.Tests                      , Duckling.Volume.Tests -  ghc-options:         -threaded -rtsopts -with-rtsopts=-N+  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wincomplete-patterns   default-language:    Haskell2010   default-extensions:  OverloadedStrings  executable duckling-regen-exe   main-is:             RegenMain.hs   hs-source-dirs:      exe-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N+  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wincomplete-patterns   other-modules:       Duckling.Ranking.Train                      , Duckling.Ranking.Generate   build-depends:       duckling@@ -980,4 +1017,4 @@  source-repository head   type:     git-  location: https://github.com/facebookincubator/duckling+  location: https://github.com/facebook/duckling
exe/Duckling/Ranking/Generate.hs view
@@ -45,6 +45,7 @@ import qualified Duckling.Time.KO.Corpus as KOTime import qualified Duckling.Time.NB.Corpus as NBTime import qualified Duckling.Time.NL.Corpus as NLTime+import qualified Duckling.Time.NL.BE.Corpus as NL_BETime import qualified Duckling.Time.PL.Corpus as PLTime import qualified Duckling.Time.PT.Corpus as PTTime import qualified Duckling.Time.RO.Corpus as ROTime@@ -157,6 +158,7 @@ -- | For backward compatibility. getDefaultCorpusForLang :: Lang -> Corpus getDefaultCorpusForLang EN = ENTime.defaultCorpus+getDefaultCorpusForLang NL = NLTime.defaultCorpus getDefaultCorpusForLang lang = getCorpusForLang lang  getCorpusForLang :: Lang -> Corpus@@ -199,6 +201,7 @@ getExamplesForLocale EN CA = EN_CATime.allExamples getExamplesForLocale EN GB = EN_GBTime.allExamples getExamplesForLocale EN US = EN_USTime.allExamples+getExamplesForLocale NL BE = NL_BETime.allExamples getExamplesForLocale ZH CN = ZH_CNTime.allExamples getExamplesForLocale ZH HK = ZH_HKTime.allExamples getExamplesForLocale ZH MO = ZH_MOTime.allExamples
tests/Duckling/AmountOfMoney/EN/Tests.hs view
@@ -17,17 +17,122 @@  import Duckling.AmountOfMoney.EN.Corpus import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Testing.Asserts-import Duckling.Testing.Types (testContext, testOptions)+import Duckling.Testing.Types (testContext, testOptions, withLocale) import Duckling.Types (Range(..))+import qualified Duckling.AmountOfMoney.EN.AU.Corpus as AU+import qualified Duckling.AmountOfMoney.EN.BZ.Corpus as BZ+import qualified Duckling.AmountOfMoney.EN.CA.Corpus as CA+import qualified Duckling.AmountOfMoney.EN.GB.Corpus as GB+import qualified Duckling.AmountOfMoney.EN.IE.Corpus as GIE+import qualified Duckling.AmountOfMoney.EN.IN.Corpus as IN+import qualified Duckling.AmountOfMoney.EN.IE.Corpus as IE+import qualified Duckling.AmountOfMoney.EN.JM.Corpus as JM+import qualified Duckling.AmountOfMoney.EN.NZ.Corpus as NZ+import qualified Duckling.AmountOfMoney.EN.PH.Corpus as PH+import qualified Duckling.AmountOfMoney.EN.TT.Corpus as TT+import qualified Duckling.AmountOfMoney.EN.US.Corpus as US+import qualified Duckling.AmountOfMoney.EN.ZA.Corpus as ZA  tests :: TestTree tests = testGroup "EN Tests"   [ makeCorpusTest [This AmountOfMoney] corpus   , makeNegativeCorpusTest [This AmountOfMoney] negativeCorpus+  , localeTests   , intersectTests   , rangeTests   ]++localeTests :: TestTree+localeTests = testGroup "Locale Tests"+  [ testGroup "EN_AU Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeAU AU.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeAU AU.negativeExamples+    ]+   , testGroup "EN_BZ Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeBZ BZ.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeBZ BZ.negativeExamples+    ]+   , testGroup "EN_CA Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeCA CA.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeCA CA.negativeExamples+    ]+   , testGroup "EN_GB Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeGB GB.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeGB GB.negativeExamples+    ]+   , testGroup "EN_IE Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeIE IE.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeIE IE.negativeExamples+    ]+   , testGroup "EN_IN Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeIN IN.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeIN IN.negativeExamples+    ]+   , testGroup "EN_JM Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeJM JM.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeJM JM.negativeExamples+    ]+   , testGroup "EN_NZ Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeNZ NZ.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeNZ NZ.negativeExamples+    ]+   , testGroup "EN_PH Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localePH PH.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localePH PH.negativeExamples+    ]+    , testGroup "EN_TT Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeTT TT.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeTT TT.negativeExamples+    ]+    , testGroup "EN_US Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeUS US.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeUS US.negativeExamples+    ]+    , testGroup "EN_ZA Tests"+    [ makeCorpusTest [This AmountOfMoney]+      $ withLocale corpus localeZA ZA.allExamples+    , makeNegativeCorpusTest [This AmountOfMoney]+      $ withLocale negativeCorpus localeZA ZA.negativeExamples+    ]+  ]+  where+    localeAU = makeLocale EN $ Just AU+    localeBZ = makeLocale EN $ Just BZ+    localeCA = makeLocale EN $ Just CA+    localeGB = makeLocale EN $ Just GB+    localeIE = makeLocale EN $ Just IE+    localeIN = makeLocale EN $ Just IN+    localeJM = makeLocale EN $ Just JM+    localeNZ = makeLocale EN $ Just NZ+    localePH = makeLocale EN $ Just PH+    localeTT = makeLocale EN $ Just TT+    localeUS = makeLocale EN $ Just US+    localeZA = makeLocale EN $ Just ZA+  intersectTests :: TestTree intersectTests = testCase "Intersect Test" $
tests/Duckling/AmountOfMoney/RO/Tests.hs view
@@ -7,17 +7,19 @@   module Duckling.AmountOfMoney.RO.Tests-  ( tests ) where+  ( tests+  ) where -import Prelude import Data.String+import Prelude import Test.Tasty +import Duckling.AmountOfMoney.RO.Corpus import Duckling.Dimensions.Types import Duckling.Testing.Asserts-import Duckling.AmountOfMoney.RO.Corpus  tests :: TestTree tests = testGroup "RO Tests"   [ makeCorpusTest [This AmountOfMoney] corpus+  , makeNegativeCorpusTest [This AmountOfMoney] negativeCorpus   ]
+ tests/Duckling/Duration/HI/Tests.hs view
@@ -0,0 +1,24 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Duration.HI.Tests+  ( tests+  ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Duration.HI.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "HI Tests"+  [ makeCorpusTest [This Duration] corpus+  ]
tests/Duckling/Duration/Tests.hs view
@@ -20,6 +20,7 @@ import qualified Duckling.Duration.EN.Tests as EN import qualified Duckling.Duration.FR.Tests as FR import qualified Duckling.Duration.GA.Tests as GA+import qualified Duckling.Duration.HI.Tests as HI import qualified Duckling.Duration.HU.Tests as HU import qualified Duckling.Duration.JA.Tests as JA import qualified Duckling.Duration.KO.Tests as KO@@ -41,6 +42,7 @@   , EN.tests   , FR.tests   , GA.tests+  , HI.tests   , HU.tests   , JA.tests   , KO.tests
tests/Duckling/Quantity/Tests.hs view
@@ -22,6 +22,7 @@ import qualified Duckling.Quantity.PT.Tests as PT import qualified Duckling.Quantity.RO.Tests as RO import qualified Duckling.Quantity.RU.Tests as RU+import qualified Duckling.Quantity.ZH.Tests as ZH  tests :: TestTree tests = testGroup "Quantity Tests"@@ -33,4 +34,5 @@   , PT.tests   , RO.tests   , RU.tests+  , ZH.tests   ]
+ tests/Duckling/Quantity/ZH/Tests.hs view
@@ -0,0 +1,23 @@+-- Copyright (c) 2016-present, Facebook, Inc.+-- All rights reserved.+--+-- This source code is licensed under the BSD-style license found in the+-- LICENSE file in the root directory of this source tree. An additional grant+-- of patent rights can be found in the PATENTS file in the same directory.+++module Duckling.Quantity.ZH.Tests+  ( tests ) where++import Data.String+import Prelude+import Test.Tasty++import Duckling.Dimensions.Types+import Duckling.Quantity.ZH.Corpus+import Duckling.Testing.Asserts++tests :: TestTree+tests = testGroup "ZH Tests"+  [ makeCorpusTest [This Quantity] corpus+  ]
tests/Duckling/Temperature/EN/Tests.hs view
@@ -13,12 +13,25 @@ import Prelude import Data.String import Test.Tasty+import Test.Tasty.HUnit  import Duckling.Dimensions.Types import Duckling.Temperature.EN.Corpus import Duckling.Testing.Asserts+import Duckling.Testing.Types (testContext, testOptions)+import Duckling.Types (Range(..))  tests :: TestTree tests = testGroup "EN Tests"   [ makeCorpusTest [This Temperature] corpus+  , rangeTests   ]++rangeTests :: TestTree+rangeTests = testCase "Range Test" $+  mapM_ (analyzedRangeTest testContext testOptions+          . withTargets [This Temperature]) xs+  where+    xs = [ ("between 40 and 30 degrees", Range 15 25 )+         , ("30 degrees degrees", Range 0 10 )+         ]
tests/Duckling/Time/DE/Tests.hs view
@@ -12,13 +12,27 @@ import Data.String import Prelude import Test.Tasty+import Test.Tasty.HUnit  import Duckling.Dimensions.Types+import Duckling.Locale+import Duckling.Resolve import Duckling.Testing.Asserts+import Duckling.Testing.Types (testContext, testOptions) import Duckling.Time.DE.Corpus+import Duckling.Types (Range(..))  tests :: TestTree tests = testGroup "DE Tests"   [ makeCorpusTest [This Time] corpus   , makeNegativeCorpusTest [This Time] negativeCorpus+  , rangeTests   ]++rangeTests :: TestTree+rangeTests = testCase "Range Test" $+  mapM_ (analyzedRangeTest (testContext{locale = makeLocale DE Nothing})+         testOptions . withTargets [This Time]) xs+  where+    xs = [ ("Wir treffen uns am 17 Uhr am KiLa.", Range 16 25)+         ]
tests/Duckling/Time/EN/Tests.hs view
@@ -174,4 +174,6 @@          , ("this this week", Range 5 14) -- ruleThisTime too eager          , ("one ninety nine a m", Range 11 19) -- ruleMilitarySpelledOutAMPM2          , ("thirteen fifty nine a m", Range 15 23) -- ruleMilitarySpelledOutAMPM+         , ("table Wednesday for 30 people", Range 6 15)+           -- do not parse "for 30" as year intersect          ]
tests/Duckling/Time/NL/Tests.hs view
@@ -7,18 +7,33 @@   module Duckling.Time.NL.Tests-  ( tests ) where+  ( tests+  ) where  import Data.String import Prelude import Test.Tasty  import Duckling.Dimensions.Types+import Duckling.Locale import Duckling.Testing.Asserts+import Duckling.Testing.Types import Duckling.Time.NL.Corpus+import qualified Duckling.Time.NL.BE.Corpus as BE  tests :: TestTree tests = testGroup "NL Tests"   [ makeCorpusTest [This Time] corpus   , makeNegativeCorpusTest [This Time] negativeCorpus+  , localeTests   ]++localeTests :: TestTree+localeTests = testGroup "Locale Tests"+  [ testGroup "NL_BE Tests"+    [ makeCorpusTest [This Time] $ withLocale corpus localeBE BE.allExamples+    , makeNegativeCorpusTest [This Time] $ withLocale negativeCorpus localeBE []+    ]+  ]+  where+    localeBE = makeLocale NL $ Just BE