2017-03-08 21:33:55 +03:00
|
|
|
-- 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 #-}
|
Locales support
Summary:
* Locales support for the library, following `<Lang>_<Region>` with ISO 639-1 code for `<Lang>` and ISO 3166-1 alpha-2 code for `<Region>` (#33)
* `Locale` opaque type (composite of `Lang` and `Region`) with `makeLocale` smart constructor to only allow valid `(Lang, Region)` combinations
* API: `Context`'s `lang` parameter has been replaced by `locale`, with optional `Region` and backward compatibility.
* `Rules/<Lang>.hs` exposes
- `langRules`: cross-locale rules for `<Lang>`, from `<Dimension>/<Lang>/Rules.hs`
- `localeRules`: locale-specific rules, from `<Dimension>/<Lang>/<Region>/Rules.hs`
- `defaultRules`: `langRules` + specific rules from select locales to ensure backward-compatibility
* Corpus, tests & classifiers
- 1 classifier per locale, with default classifier (`<Lang>_XX`) when no locale provided (backward-compatible)
- Default classifiers are built on existing corpus
- Locale classifiers are built on
- `<Dimension>/<Lang>/Corpus.hs` exposes a common `corpus` to all locales of `<Lang>`
- `<Dimension>/<Lang>/<Region>/Corpus.hs` exposes `allExamples`: a list of examples specific to the locale (following `<Dimension>/<Lang>/<Region>/Rules.hs`).
- Locale classifiers use the language corpus extended with the locale examples as training set.
- Locale examples need to use the same `Context` (i.e. reference time) as the language corpus.
- For backward compatibility, `<Dimension>/<Lang>/Corpus.hs` can expose also `defaultCorpus`, which is `corpus` augmented with specific examples. This is controlled by `getDefaultCorpusForLang` in `Duckling.Ranking.Generate`.
- Tests run against each classifier to make sure runtime works as expected.
* MM/DD (en_US) vs DD/MM (en_GB) example to illustrate
Reviewed By: JonCoens, blandinw
Differential Revision: D6038096
fbshipit-source-id: f29c28d
2017-10-13 18:15:32 +03:00
|
|
|
module Duckling.Ranking.Classifiers.EN_XX (classifiers) where
|
|
|
|
import Data.String
|
2017-03-08 21:33:55 +03:00
|
|
|
import Prelude
|
|
|
|
import qualified Data.HashMap.Strict as HashMap
|
Locales support
Summary:
* Locales support for the library, following `<Lang>_<Region>` with ISO 639-1 code for `<Lang>` and ISO 3166-1 alpha-2 code for `<Region>` (#33)
* `Locale` opaque type (composite of `Lang` and `Region`) with `makeLocale` smart constructor to only allow valid `(Lang, Region)` combinations
* API: `Context`'s `lang` parameter has been replaced by `locale`, with optional `Region` and backward compatibility.
* `Rules/<Lang>.hs` exposes
- `langRules`: cross-locale rules for `<Lang>`, from `<Dimension>/<Lang>/Rules.hs`
- `localeRules`: locale-specific rules, from `<Dimension>/<Lang>/<Region>/Rules.hs`
- `defaultRules`: `langRules` + specific rules from select locales to ensure backward-compatibility
* Corpus, tests & classifiers
- 1 classifier per locale, with default classifier (`<Lang>_XX`) when no locale provided (backward-compatible)
- Default classifiers are built on existing corpus
- Locale classifiers are built on
- `<Dimension>/<Lang>/Corpus.hs` exposes a common `corpus` to all locales of `<Lang>`
- `<Dimension>/<Lang>/<Region>/Corpus.hs` exposes `allExamples`: a list of examples specific to the locale (following `<Dimension>/<Lang>/<Region>/Rules.hs`).
- Locale classifiers use the language corpus extended with the locale examples as training set.
- Locale examples need to use the same `Context` (i.e. reference time) as the language corpus.
- For backward compatibility, `<Dimension>/<Lang>/Corpus.hs` can expose also `defaultCorpus`, which is `corpus` augmented with specific examples. This is controlled by `getDefaultCorpusForLang` in `Duckling.Ranking.Generate`.
- Tests run against each classifier to make sure runtime works as expected.
* MM/DD (en_US) vs DD/MM (en_GB) example to illustrate
Reviewed By: JonCoens, blandinw
Differential Revision: D6038096
fbshipit-source-id: f29c28d
2017-10-13 18:15:32 +03:00
|
|
|
import Duckling.Ranking.Types
|
2017-03-08 21:33:55 +03:00
|
|
|
|
|
|
|
classifiers :: Classifiers
|
|
|
|
classifiers
|
|
|
|
= HashMap.fromList
|
|
|
|
[("<integer> to|till|before <hour-of-day>",
|
|
|
|
Classifier{okData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -2.0794415416798357, unseen = -1.791759469228055,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)noon|midnight|EOD|end of day",
|
|
|
|
-0.916290731874155),
|
|
|
|
("hour", -0.916290731874155)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -0.13353139262452263,
|
|
|
|
unseen = -2.890371757896165,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-17 00:06:45 +03:00
|
|
|
[("hour", -0.7537718023763802),
|
|
|
|
("integer (numeric)time-of-day (latent)", -0.7537718023763802)],
|
|
|
|
n = 7}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time> timezone",
|
|
|
|
Classifier{okData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.4657359027997265,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-02 01:22:27 +03:00
|
|
|
[("at <time-of-day>", -1.824549292051046),
|
|
|
|
("<time-of-day> am|pm", -1.6422277352570913),
|
|
|
|
("hh:mm", -1.824549292051046), ("hour", -1.1314021114911006),
|
|
|
|
("minute", -1.824549292051046)],
|
|
|
|
n = 13},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("Thursday",
|
|
|
|
Classifier{okData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.258096538021482,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 24},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("integer (numeric)",
|
|
|
|
Classifier{okData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -0.7593290874412465,
|
|
|
|
unseen = -5.2574953720277815,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 190},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -0.6310747519175676, unseen = -5.384495062789089,
|
2018-03-02 01:22:27 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 216}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<duration> hence|ago",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -3.784189633918261,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("week", -1.563975538357343), ("day", -1.8152899666382492),
|
|
|
|
("year", -2.662587827025453),
|
|
|
|
("<integer> <unit-of-duration>", -1.0531499145913523),
|
|
|
|
("a <unit-of-duration>", -2.662587827025453),
|
|
|
|
("month", -2.662587827025453),
|
|
|
|
("fortnight", -2.662587827025453)],
|
|
|
|
n = 18},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("noon|midnight|EOD|end of day",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 5},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("quarter to|till|before <hour-of-day>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("noon|midnight|EOD|end of day", -0.6931471805599453),
|
|
|
|
("hour", -0.6931471805599453)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("Father's Day",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<cycle> after|before <time>",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("day (grain)tomorrow", -1.6739764335716716),
|
|
|
|
("dayday", -1.1631508098056809),
|
|
|
|
("day (grain)yesterday", -1.6739764335716716)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 4},
|
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.6931471805599453, unseen = -2.833213344056216,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Martin Luther King's Day",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.1972245773362196,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("integer (20..90)",
|
|
|
|
Classifier{okData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),
|
2018-03-13 20:06:40 +03:00
|
|
|
("intersect 2 numbers",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.3862943611198906,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("compose by multiplicationinteger (0..19)",
|
|
|
|
-0.40546510810816444)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.3862943611198906,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("powers of tensinteger (0..19)", -0.40546510810816444)],
|
|
|
|
n = 1}}),
|
2017-07-20 21:04:13 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("integer after|past <hour-of-day>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.3025850929940455,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("hour", -0.8109302162163288),
|
|
|
|
("integer (numeric)time-of-day (latent)", -1.0986122886681098),
|
|
|
|
("integer (20..90)time-of-day (latent)", -1.5040773967762742)],
|
|
|
|
n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<day-of-month> (ordinal or number) <named-month>",
|
|
|
|
Classifier{okData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -1.3862943611198906, unseen = -2.890371757896165,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-17 00:06:45 +03:00
|
|
|
[("ordinal (digits)December", -2.1400661634962708),
|
|
|
|
("ordinal (digits)February", -2.1400661634962708),
|
|
|
|
("integer (numeric)April", -2.1400661634962708),
|
|
|
|
("month", -1.4469189829363254)],
|
2017-07-26 21:30:18 +03:00
|
|
|
n = 3},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -0.2876820724517809,
|
|
|
|
unseen = -3.4011973816621555,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-17 00:06:45 +03:00
|
|
|
[("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time> <part-of-day>",
|
|
|
|
Classifier{okData =
|
2017-06-09 19:21:03 +03:00
|
|
|
ClassData{prior = -9.844007281325252e-2,
|
|
|
|
unseen = -4.430816798843313,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("<day-of-month> (ordinal)in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
|
|
|
("dayhour", -1.5284688499004333),
|
|
|
|
("Mondayearly morning", -3.3202283191284883),
|
|
|
|
("time-of-day (latent)tonight", -3.3202283191284883),
|
|
|
|
("hourhour", -2.339399066116762),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> o'clockin|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
|
|
|
("todaypart of days", -3.7256934272366524),
|
|
|
|
("minutehour", -2.627081138568543),
|
2017-03-08 21:33:55 +03:00
|
|
|
("at <time-of-day>in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.3202283191284883),
|
|
|
|
("time-of-day (latent)this <part-of-day>", -3.7256934272366524),
|
|
|
|
("Mondayin|during the <part-of-day>", -3.7256934272366524),
|
|
|
|
("intersectpart of days", -3.7256934272366524),
|
|
|
|
("intersectin|during the <part-of-day>", -3.7256934272366524),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
2017-03-08 21:33:55 +03:00
|
|
|
("the <day-of-month> (ordinal)in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
|
|
|
("tomorrowpart of days", -2.339399066116762),
|
|
|
|
("hh:mmin|during the <part-of-day>", -3.0325462466767075),
|
2017-03-08 21:33:55 +03:00
|
|
|
("time-of-day (latent)in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
2017-03-08 21:33:55 +03:00
|
|
|
("hhmm (latent)in|during the <part-of-day>",
|
2017-06-09 19:21:03 +03:00
|
|
|
-3.7256934272366524),
|
|
|
|
("yesterdaypart of days", -3.7256934272366524),
|
|
|
|
("Mondaypart of days", -3.7256934272366524)],
|
|
|
|
n = 29},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-06-09 19:21:03 +03:00
|
|
|
ClassData{prior = -2.367123614131617, unseen = -3.4657359027997265,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("yearhour", -2.740840023925201),
|
|
|
|
("monthhour", -2.740840023925201),
|
|
|
|
("hourhour", -2.740840023925201),
|
2017-03-08 21:33:55 +03:00
|
|
|
("past year (latent)in|during the <part-of-day>",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.740840023925201),
|
|
|
|
("Februaryin|during the <part-of-day>", -2.740840023925201),
|
2017-03-08 21:33:55 +03:00
|
|
|
("time-of-day (latent)in|during the <part-of-day>",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.740840023925201)],
|
2017-03-08 21:33:55 +03:00
|
|
|
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 =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -1.4271163556401458,
|
2017-06-22 13:39:45 +03:00
|
|
|
unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = -0.2744368457017603, unseen = -3.044522437723423,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 19}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("at <time-of-day>",
|
|
|
|
Classifier{okData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -9.381875521765486e-2,
|
|
|
|
unseen = -4.90527477843843,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-02 01:22:27 +03:00
|
|
|
[("<time> timezone", -3.7992275112828016),
|
|
|
|
("noon|midnight|EOD|end of day", -3.7992275112828016),
|
|
|
|
("integer after|past <hour-of-day>", -3.7992275112828016),
|
|
|
|
("half after|past <hour-of-day>", -4.204692619390966),
|
|
|
|
("time-of-day (latent)", -1.7197859696029658),
|
|
|
|
("hhmm (latent)", -3.5115454388310208),
|
|
|
|
("<time-of-day> am|pm", -1.8067973465925955),
|
|
|
|
("hh:mm", -3.288401887516811),
|
|
|
|
("about|exactly <time-of-day>", -3.7992275112828016),
|
|
|
|
("hour", -1.0911773101805915),
|
|
|
|
("<time-of-day> sharp|exactly", -4.204692619390966),
|
|
|
|
("minute", -2.0074680420547466)],
|
|
|
|
n = 61},
|
2017-10-06 21:39:11 +03:00
|
|
|
koData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -2.412933150162911, unseen = -3.2188758248682006,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-02 01:22:27 +03:00
|
|
|
[("time-of-day (latent)", -1.2321436812926323),
|
|
|
|
("hour", -1.2321436812926323)],
|
2017-04-06 20:50:34 +03:00
|
|
|
n = 6}}),
|
2017-07-26 21:30:18 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("tonight",
|
|
|
|
Classifier{okData =
|
2018-03-26 21:15:12 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-12-15 21:06:16 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.1670540846631662, unseen = -4.007333185232471,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("Thursday", -1.791759469228055), ("mm/dd", -3.295836866004329),
|
|
|
|
("absorption of , after named day", -2.890371757896165),
|
|
|
|
("intersect", -2.890371757896165),
|
|
|
|
("Saturday", -2.6026896854443837),
|
|
|
|
("Friday", -3.295836866004329), ("day", -0.8979415932059586),
|
|
|
|
("the <day-of-month> (ordinal)", -2.890371757896165),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.6026896854443837),
|
|
|
|
("hour", -3.295836866004329)],
|
|
|
|
n = 22},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -1.8718021769015913,
|
|
|
|
unseen = -2.9444389791664407,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("intersect", -1.791759469228055), ("day", -1.2809338454620642),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"",
|
2017-03-14 14:50:10 +03:00
|
|
|
-1.791759469228055)],
|
|
|
|
n = 4}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("integer (0..19)",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.12516314295400605,
|
|
|
|
unseen = -3.8501476017100584,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 45},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -2.1400661634962708,
|
2018-03-07 03:54:44 +03:00
|
|
|
unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("between <time-of-day> and <time-of-day> (interval)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -2.3978952727983707,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("minuteminute", -0.916290731874155),
|
|
|
|
("hh:mmhh:mm", -0.916290731874155)],
|
|
|
|
n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -2.3978952727983707,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("hh:mmtime-of-day (latent)", -0.916290731874155),
|
|
|
|
("minutehour", -0.916290731874155)],
|
|
|
|
n = 3}}),
|
|
|
|
("Halloween",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-06-27 22:21:14 +03:00
|
|
|
("from <month> dd-dd (interval)",
|
|
|
|
Classifier{okData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.3978952727983707,
|
2017-06-27 22:21:14 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-15 20:04:51 +03:00
|
|
|
[("Julyinteger (numeric)integer (numeric)", -1.6094379124341003),
|
|
|
|
("Augustordinal (digits)integer (numeric)",
|
|
|
|
-1.6094379124341003),
|
|
|
|
("month", -0.916290731874155),
|
|
|
|
("Augustordinal (digits)ordinal (digits)",
|
|
|
|
-1.6094379124341003)],
|
|
|
|
n = 3},
|
2017-06-27 22:21:14 +03:00
|
|
|
koData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.6094379124341003,
|
2017-06-27 22:21:14 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("October",
|
|
|
|
Classifier{okData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.890371757896165,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 16},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2018-01-05 23:03:42 +03:00
|
|
|
("from|since|after <time-of-day>",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -1.5198257537444133, unseen = -4.04305126783455,
|
2018-01-05 23:03:42 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("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)],
|
2018-01-05 23:03:42 +03:00
|
|
|
n = 14},
|
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.24686007793152578,
|
|
|
|
unseen = -4.859812404361672,
|
2018-01-05 23:03:42 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("<integer> to|till|before <hour-of-day>", -3.7534179752515073),
|
|
|
|
("week", -4.1588830833596715),
|
2018-01-05 23:03:42 +03:00
|
|
|
("<day-of-month> (ordinal or number) <named-month>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.1588830833596715),
|
|
|
|
("today", -4.1588830833596715),
|
|
|
|
("intersect", -2.772588722239781),
|
|
|
|
("second", -4.1588830833596715), ("now", -3.4657359027997265),
|
|
|
|
("tomorrow", -3.7534179752515073),
|
|
|
|
("this|last|next <cycle>", -4.1588830833596715),
|
|
|
|
("day", -1.9616585060234524),
|
|
|
|
("time-of-day (latent)", -4.1588830833596715),
|
|
|
|
("<time-of-day> am|pm", -3.7534179752515073),
|
|
|
|
("nograin", -3.4657359027997265),
|
2018-01-05 23:03:42 +03:00
|
|
|
("<named-month>|<named-day> <day-of-month> (ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.1588830833596715),
|
|
|
|
("Easter Sunday", -4.1588830833596715),
|
|
|
|
("Christmas", -3.4657359027997265),
|
|
|
|
("hour", -2.906120114864304),
|
|
|
|
("<datetime> - <datetime> (interval)", -2.772588722239781),
|
2018-01-05 23:03:42 +03:00
|
|
|
("<time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-2.4541349911212467),
|
2018-01-05 23:03:42 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-3.7534179752515073),
|
|
|
|
("minute", -1.7165360479904674),
|
|
|
|
("right now", -4.1588830833596715),
|
|
|
|
("<month> dd-dd (interval)", -3.4657359027997265),
|
|
|
|
("dd-dd <month> (interval)", -3.7534179752515073)],
|
|
|
|
n = 50}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("month (grain)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.3978952727983707,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 9},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<integer> more <unit-of-duration>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)minute (grain)", -0.6931471805599453),
|
|
|
|
("minute", -0.6931471805599453)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<time-of-day> o'clock",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.1972245773362196,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("time-of-day (latent)", -0.6931471805599453),
|
|
|
|
("hour", -0.6931471805599453)],
|
|
|
|
n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("in|within|after <duration>",
|
|
|
|
Classifier{okData =
|
2017-06-27 17:13:55 +03:00
|
|
|
ClassData{prior = -4.652001563489282e-2,
|
|
|
|
unseen = -4.61512051684126,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-06-27 17:13:55 +03:00
|
|
|
[("week", -3.2188758248682006),
|
|
|
|
("<integer> more <unit-of-duration>", -3.912023005428146),
|
|
|
|
("three-quarters of an hour", -2.995732273553991),
|
|
|
|
("<integer> + '\"", -3.2188758248682006),
|
|
|
|
("number.number hours", -3.912023005428146),
|
|
|
|
("second", -3.506557897319982), ("day", -3.2188758248682006),
|
|
|
|
("half an hour", -2.995732273553991),
|
|
|
|
("<integer> <unit-of-duration>", -1.6094379124341003),
|
|
|
|
("a <unit-of-duration>", -2.995732273553991),
|
|
|
|
("quarter of an hour", -2.995732273553991),
|
|
|
|
("hour", -2.5257286443082556),
|
|
|
|
("about|exactly <duration>", -3.912023005428146),
|
|
|
|
("<integer> and an half hour", -3.912023005428146),
|
|
|
|
("minute", -1.2729656758128873)],
|
|
|
|
n = 42},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -3.0910424533583156, unseen = -3.044522437723423,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("quarter", -1.8971199848858813),
|
|
|
|
("<integer> <unit-of-duration>", -2.3025850929940455),
|
|
|
|
("a <unit-of-duration>", -2.3025850929940455)],
|
|
|
|
n = 2}}),
|
2018-03-22 21:30:29 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("three-quarters of an hour",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("Wednesday",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.3025850929940455,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("half after|past <hour-of-day>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("time-of-day (latent)", -0.6931471805599453),
|
|
|
|
("hour", -0.6931471805599453)],
|
|
|
|
n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<integer> + '\"",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],
|
|
|
|
n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("half <integer> (UK style hour-of-day)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("time-of-day (latent)", -0.6931471805599453),
|
|
|
|
("hour", -0.6931471805599453)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("July",
|
|
|
|
Classifier{okData =
|
2017-08-12 11:52:48 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.833213344056216,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("hour (grain)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -0.8209805520698302,
|
|
|
|
unseen = -2.5649493574615367,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 11},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -0.579818495252942, unseen = -2.772588722239781,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 14}}),
|
|
|
|
("<ordinal> quarter",
|
|
|
|
Classifier{okData =
|
2017-03-13 21:38:34 +03:00
|
|
|
ClassData{prior = -0.4700036292457356, unseen = -2.639057329615259,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-13 21:38:34 +03:00
|
|
|
[("ordinal (digits)quarter (grain)", -1.1786549963416462),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)quarter (grain)",
|
2017-03-13 21:38:34 +03:00
|
|
|
-1.466337068793427),
|
|
|
|
("quarter", -0.7731898882334817)],
|
|
|
|
n = 5},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-13 21:38:34 +03:00
|
|
|
ClassData{prior = -0.9808292530117262,
|
|
|
|
unseen = -2.3025850929940455,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("ordinal (digits)quarter (grain)", -0.8109302162163288),
|
|
|
|
("quarter", -0.8109302162163288)],
|
|
|
|
n = 3}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("one twenty two",
|
|
|
|
Classifier{okData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.4989911661189879,
|
|
|
|
unseen = -6.3080984415095305,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("<datetime> - <datetime> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.360365137892702),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> - <time-of-day> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.360365137892702),
|
|
|
|
("hourday", -3.908380014149645),
|
|
|
|
("dayhour", -2.7799147623318543),
|
|
|
|
("daymonth", -4.919980925828125),
|
|
|
|
("monthday", -5.207662998279906),
|
|
|
|
("monthyear", -4.00369019395397),
|
|
|
|
("Tuesdaythe <day-of-month> (ordinal)", -5.6131281063880705),
|
|
|
|
("Easter Sundayyear", -4.919980925828125),
|
|
|
|
("Christmasyear", -5.6131281063880705),
|
2017-08-12 11:52:48 +03:00
|
|
|
("from <datetime> - <datetime> (interval)July",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("houryear", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("this|next <day-of-week>hh(:mm) - <time-of-day> am|pm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.919980925828125),
|
|
|
|
("<time-of-day> am|pmintersect", -4.360365137892702),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"year",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("Marchyear", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month>|<named-day> <day-of-month> (ordinal)year",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
|
|
|
("intersect<time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("Thursdayhh(:mm) - <time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("monthhour", -5.207662998279906),
|
|
|
|
("last <day-of-week> of <time>year", -5.6131281063880705),
|
|
|
|
("todayat <time-of-day>", -5.6131281063880705),
|
|
|
|
("Thursday<time> timezone", -3.908380014149645),
|
2018-03-07 03:54:44 +03:00
|
|
|
("this <time>hh(:mm) - <time-of-day> am|pm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("dayday", -3.5982250858458054),
|
|
|
|
("Thanksgiving Dayyear", -4.5145158177199605),
|
|
|
|
("<time> <part-of-day>at <time-of-day>", -5.6131281063880705),
|
|
|
|
("Tuesdayin <named-month>", -5.6131281063880705),
|
|
|
|
("mm/ddat <time-of-day>", -5.6131281063880705),
|
|
|
|
("tonightat <time-of-day>", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> am|pmabsorption of , after named day",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.919980925828125),
|
|
|
|
("today<time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("Februarythe <day-of-month> (ordinal)", -5.207662998279906),
|
|
|
|
("at <time-of-day><time> <part-of-day>", -5.6131281063880705),
|
|
|
|
("mm/dd<time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("hourhour", -4.360365137892702),
|
|
|
|
("<time-of-day> am|pmon <date>", -3.5982250858458054),
|
|
|
|
("Wednesdaythis|last|next <cycle>", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect<named-month> <day-of-month> (non ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.109050709611796),
|
|
|
|
("dayyear", -3.0481787489265337),
|
|
|
|
("last weekend of <named-month>year", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> o'clockin|during the <part-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("Thursdayat <time-of-day>", -5.207662998279906),
|
|
|
|
("<time-of-day> am|pmtomorrow", -4.919980925828125),
|
|
|
|
("minutehour", -4.696837374513915),
|
|
|
|
("Mother's Dayyear", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("at <time-of-day>in|during the <part-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
2017-03-08 21:33:55 +03:00
|
|
|
("absorption of , after named day<named-month> <day-of-month> (non ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-3.908380014149645),
|
|
|
|
("for <duration> from <time>December", -5.6131281063880705),
|
|
|
|
("tomorrow<time-of-day> sharp|exactly", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursdayfrom <datetime> - <datetime> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.696837374513915),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("on <date><named-month> <day-of-month> (non ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursdayfrom <time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.696837374513915),
|
|
|
|
("Mondayin|during the <part-of-day>", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("tomorrowfrom <time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
|
|
|
("intersectin|during the <part-of-day>", -5.6131281063880705),
|
2018-01-05 23:03:42 +03:00
|
|
|
("Thursday<datetime> - <datetime> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.696837374513915),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<day-of-month> (ordinal or number) of <named-month>in|during the <part-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
2018-01-05 23:03:42 +03:00
|
|
|
("Thursday<time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.360365137892702),
|
2017-03-08 21:33:55 +03:00
|
|
|
("from <time-of-day> - <time-of-day> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.919980925828125),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.696837374513915),
|
|
|
|
("at <time-of-day>intersect", -5.207662998279906),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> - <time-of-day> (interval)tomorrow",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("dayminute", -2.9389794569615417),
|
2017-03-08 21:33:55 +03:00
|
|
|
("from <datetime> - <datetime> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<datetime> - <datetime> (interval)tomorrow",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
|
|
|
("<ordinal> <cycle> of <time>year", -5.6131281063880705),
|
|
|
|
("minuteday", -2.147392203588344),
|
2018-03-07 03:54:44 +03:00
|
|
|
("absorption of , after named dayintersect",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("Octoberyear", -4.360365137892702),
|
2017-03-08 21:33:55 +03:00
|
|
|
("the <day-of-month> (ordinal)in|during the <part-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("at <time-of-day>absorption of , after named day",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<day-of-month> (ordinal or number) <named-month>year",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("year<time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("Septemberyear", -5.207662998279906),
|
|
|
|
("at <time-of-day>on <date>", -4.5145158177199605),
|
2017-03-08 21:33:55 +03:00
|
|
|
("between <time-of-day> and <time-of-day> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.919980925828125),
|
|
|
|
("Halloweenyear", -5.6131281063880705),
|
|
|
|
("dayweek", -5.6131281063880705),
|
|
|
|
("Thursday<time-of-day> am|pm", -5.6131281063880705),
|
|
|
|
("weekyear", -5.207662998279906),
|
|
|
|
("hh:mmin|during the <part-of-day>", -4.919980925828125),
|
|
|
|
("Father's Dayyear", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<cycle> after|before <time><time-of-day> am|pm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.207662998279906),
|
|
|
|
("February<time> <part-of-day>", -5.6131281063880705),
|
|
|
|
("Martin Luther King's Dayyear", -5.207662998279906),
|
|
|
|
("tomorrowat <time-of-day>", -4.919980925828125),
|
|
|
|
("between <time> and <time>on <date>", -4.919980925828125),
|
|
|
|
("Thursdayfrom|since|after <time-of-day>", -4.919980925828125),
|
|
|
|
("at <time-of-day>tomorrow", -5.207662998279906),
|
|
|
|
("tomorrow<time-of-day> am|pm", -5.6131281063880705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("in|during the <part-of-day>at <time-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("Labor Dayyear", -5.6131281063880705),
|
|
|
|
("Februaryintersect", -5.6131281063880705),
|
|
|
|
("last <cycle> of <time>year", -4.919980925828125),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)year",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.6131281063880705),
|
|
|
|
("yearminute", -5.6131281063880705),
|
|
|
|
("Black Fridayyear", -5.207662998279906)],
|
|
|
|
n = 204},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.9343092373768334, unseen = -6.003887067106539,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("in <named-month>year", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> - <time-of-day> (interval)on <date>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("hourday", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)July",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("dayhour", -2.9103724246028344),
|
|
|
|
("daymonth", -3.228826155721369),
|
|
|
|
("monthday", -4.9028025892930405),
|
|
|
|
("monthyear", -4.61512051684126),
|
|
|
|
("intersecthh:mm", -5.308267697401205),
|
|
|
|
("Easter Sundayyear", -5.308267697401205),
|
2017-08-12 11:52:48 +03:00
|
|
|
("from <datetime> - <datetime> (interval)July",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("houryear", -5.308267697401205),
|
2017-08-12 11:52:48 +03:00
|
|
|
("from <time-of-day> - <time-of-day> (interval)July",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("until <time-of-day><time-of-day> am|pm", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> am|pmintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.61512051684126),
|
|
|
|
("<time-of-day> am|pmintersect", -4.055504728905837),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"year",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.39197696552705),
|
|
|
|
("from|since|after <time-of-day>on <date>", -4.39197696552705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("July<day-of-month> (ordinal or number) <named-month>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("absorption of , after named dayJuly", -4.9028025892930405),
|
|
|
|
("monthhour", -5.308267697401205),
|
|
|
|
("hourmonth", -4.61512051684126),
|
|
|
|
("todayat <time-of-day>", -5.308267697401205),
|
|
|
|
("from|since|after <time-of-day>July", -5.308267697401205),
|
|
|
|
("dayday", -4.9028025892930405),
|
|
|
|
("mm/ddat <time-of-day>", -4.9028025892930405),
|
|
|
|
("<time-of-day> am|pmon <date>", -4.055504728905837),
|
|
|
|
("dayyear", -3.698829784967104),
|
|
|
|
("Thursdaymm/dd", -5.308267697401205),
|
|
|
|
("Sundayyear", -4.9028025892930405),
|
|
|
|
("Thursdayat <time-of-day>", -4.055504728905837),
|
2017-08-17 00:06:45 +03:00
|
|
|
("<integer> to|till|before <hour-of-day>September",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("monthminute", -5.308267697401205),
|
|
|
|
("<time-of-day> am|pmtomorrow", -5.308267697401205),
|
|
|
|
("Thursdayhh:mm", -4.39197696552705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("August<day-of-month> (ordinal or number) <named-month>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("Fridayyear", -4.9028025892930405),
|
|
|
|
("minutemonth", -3.5165082281731497),
|
|
|
|
("Sundayfrom|since|after <time-of-day>", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursdayfrom <datetime> - <datetime> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.9028025892930405),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursdayfrom <time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.9028025892930405),
|
|
|
|
("Aprilyear", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("mm/dd<time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.9028025892930405),
|
2017-03-08 21:33:55 +03:00
|
|
|
("tomorrowfrom <time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
2017-07-26 21:30:18 +03:00
|
|
|
("<duration> after|before|from <time>December",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("yesterday<time-of-day> am|pm", -5.308267697401205),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.39197696552705),
|
2018-01-05 23:03:42 +03:00
|
|
|
("Thursday<time-of-day> - <time-of-day> (interval)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-4.9028025892930405),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)August",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("until <time-of-day>on <date>", -4.61512051684126),
|
|
|
|
("at <time-of-day>intersect", -4.9028025892930405),
|
2017-03-08 21:33:55 +03:00
|
|
|
("at <time-of-day>intersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("dayminute", -2.7825390530929495),
|
|
|
|
("intersectSeptember", -3.804190300624931),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("absorption of , after named dayintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("minuteday", -2.3904969653169257),
|
2017-03-14 14:50:10 +03:00
|
|
|
("absorption of , after named dayintersect",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("Februaryin|during the <part-of-day>", -5.308267697401205),
|
|
|
|
("week-endin <named-month>", -5.308267697401205),
|
|
|
|
("Octoberyear", -5.308267697401205),
|
|
|
|
("from|since|after <time-of-day>year", -5.308267697401205),
|
|
|
|
("yearhh:mm", -5.308267697401205),
|
|
|
|
("hh:mmon <date>", -3.804190300624931),
|
2018-01-05 23:03:42 +03:00
|
|
|
("from|since|after <time-of-day><time-of-day> am|pm",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("absorption of , after named daySeptember", -4.39197696552705),
|
|
|
|
("on <date>September", -4.9028025892930405),
|
|
|
|
("at <time-of-day>on <date>", -4.9028025892930405),
|
|
|
|
("dayweek", -5.308267697401205),
|
|
|
|
("Thursday<time-of-day> am|pm", -4.9028025892930405),
|
|
|
|
("absorption of , after named dayFebruary", -4.39197696552705),
|
2017-03-08 21:33:55 +03:00
|
|
|
("July<integer> to|till|before <hour-of-day>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("tomorrowat <time-of-day>", -5.308267697401205),
|
2017-08-12 11:52:48 +03:00
|
|
|
("<integer> to|till|before <hour-of-day>July",
|
2018-03-13 20:06:40 +03:00
|
|
|
-5.308267697401205),
|
|
|
|
("Thursdayfrom|since|after <time-of-day>", -3.698829784967104),
|
|
|
|
("tomorrow<time-of-day> am|pm", -5.308267697401205),
|
|
|
|
("Tuesdayfrom|since|after <time-of-day>", -5.308267697401205),
|
|
|
|
("yearminute", -5.308267697401205)],
|
|
|
|
n = 132}}),
|
2018-03-07 03:54:44 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-12-15 21:06:16 +03:00
|
|
|
ClassData{prior = -1.0986122886681098,
|
|
|
|
unseen = -2.4849066497880004,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-12-15 21:06:16 +03:00
|
|
|
[("integer (numeric)", -0.3184537311185346),
|
|
|
|
("integer (0..19)", -1.2992829841302609)],
|
|
|
|
n = 9},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-12-15 21:06:16 +03:00
|
|
|
ClassData{prior = -0.40546510810816444,
|
|
|
|
unseen = -3.044522437723423,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-12-15 21:06:16 +03:00
|
|
|
[("integer (numeric)", -0.16251892949777494),
|
|
|
|
("integer (0..19)", -1.8971199848858813)],
|
|
|
|
n = 18}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<ordinal> <cycle> of <time>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.772588722239781,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("daymonth", -2.0149030205422647),
|
|
|
|
("quarteryear", -2.0149030205422647),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)day (grain)October",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.0149030205422647),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)week (grain)intersect",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.0149030205422647),
|
|
|
|
("weekmonth", -1.6094379124341003),
|
|
|
|
("ordinal (digits)quarter (grain)year", -2.0149030205422647),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)week (grain)October",
|
2017-03-14 14:50:10 +03:00
|
|
|
-2.0149030205422647)],
|
|
|
|
n = 4},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -2.0794415416798357,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("year (grain)",
|
|
|
|
Classifier{okData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.0910424533583156,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("from <datetime> - <datetime> (interval)",
|
|
|
|
Classifier{okData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = -1.0116009116784799,
|
|
|
|
unseen = -3.6375861597263857,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-15 20:04:51 +03:00
|
|
|
[("minuteminute", -2.001480000210124),
|
2017-08-12 11:52:48 +03:00
|
|
|
("<day-of-month> (ordinal)<day-of-month> (ordinal)",
|
2017-08-15 20:04:51 +03:00
|
|
|
-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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = -0.45198512374305727,
|
|
|
|
unseen = -3.912023005428146,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-15 20:04:51 +03:00
|
|
|
[("hourday", -3.1986731175506815),
|
|
|
|
("dayhour", -2.793208009442517),
|
2017-08-12 11:52:48 +03:00
|
|
|
("<day-of-month> (ordinal)time-of-day (latent)",
|
2017-08-15 20:04:51 +03:00
|
|
|
-3.1986731175506815),
|
|
|
|
("hh:mmtime-of-day (latent)", -2.2823823856765264),
|
|
|
|
("minuteminute", -2.793208009442517),
|
2017-08-12 11:52:48 +03:00
|
|
|
("time-of-day (latent)time-of-day (latent)",
|
2017-08-15 20:04:51 +03:00
|
|
|
-2.793208009442517),
|
|
|
|
("dayday", -3.1986731175506815),
|
|
|
|
("hourhour", -2.505525936990736),
|
|
|
|
("dayyear", -3.1986731175506815),
|
|
|
|
("<named-month>|<named-day> <day-of-month> (ordinal)past year (latent)",
|
|
|
|
-3.1986731175506815),
|
|
|
|
("minutehour", -2.2823823856765264),
|
|
|
|
("hh:mmintersect", -2.793208009442517),
|
2017-08-12 11:52:48 +03:00
|
|
|
("<day-of-month> (ordinal)<day-of-month> (ordinal or number) <named-month>",
|
2017-08-15 20:04:51 +03:00
|
|
|
-3.1986731175506815),
|
2017-08-12 11:52:48 +03:00
|
|
|
("time-of-day (latent)<time-of-day> am|pm",
|
2017-08-15 20:04:51 +03:00
|
|
|
-3.1986731175506815),
|
2017-08-12 11:52:48 +03:00
|
|
|
("time-of-day (latent)<day-of-month> (ordinal or number) <named-month>",
|
2017-08-15 20:04:51 +03:00
|
|
|
-3.1986731175506815),
|
2017-06-27 22:21:14 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)time-of-day (latent)",
|
2017-08-15 20:04:51 +03:00
|
|
|
-3.1986731175506815)],
|
|
|
|
n = 14}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Saturday",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("the <cycle> of <time>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.890371757896165,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("week (grain)<named-month>|<named-day> <day-of-month> (ordinal)",
|
|
|
|
-1.7346010553881064),
|
|
|
|
("weekmonth", -1.7346010553881064),
|
|
|
|
("week (grain)October", -1.7346010553881064),
|
|
|
|
("week (grain)<named-month> <day-of-month> (non ordinal)",
|
|
|
|
-1.7346010553881064),
|
|
|
|
("weekday", -1.2237754316221157)],
|
|
|
|
n = 6},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("number.number hours",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("from <time-of-day> - <time-of-day> (interval)",
|
|
|
|
Classifier{okData =
|
2017-08-12 11:52:48 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
2017-03-08 21:33:55 +03:00
|
|
|
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 =
|
2017-08-12 11:52:48 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -3.4339872044851463,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-08-12 11:52:48 +03:00
|
|
|
[("hh:mmtime-of-day (latent)", -1.6094379124341003),
|
2017-03-08 21:33:55 +03:00
|
|
|
("time-of-day (latent)time-of-day (latent)",
|
2017-08-12 11:52:48 +03:00
|
|
|
-2.0149030205422647),
|
|
|
|
("hourhour", -1.791759469228055),
|
|
|
|
("minutehour", -1.6094379124341003),
|
|
|
|
("time-of-day (latent)<time-of-day> am|pm", -2.70805020110221)],
|
|
|
|
n = 9}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("integer 21..99",
|
|
|
|
Classifier{okData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
2017-11-14 23:01:46 +03:00
|
|
|
HashMap.fromList
|
2018-03-07 03:54:44 +03:00
|
|
|
[("integer (numeric)integer (numeric)", -0.6931471805599453),
|
|
|
|
("integer (20..90)integer (0..19)", -0.6931471805599453)],
|
|
|
|
n = 4}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("yyyy-mm-dd",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("mm/dd/yyyy",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 5},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("Monday",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -8.004270767353637e-2,
|
|
|
|
unseen = -2.639057329615259,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 12},
|
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -2.5649493574615367,
|
|
|
|
unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("yesterday",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<ordinal> quarter <year>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("quarteryear", -0.6931471805599453),
|
|
|
|
("ordinal (digits)quarter (grain)year", -0.6931471805599453)],
|
|
|
|
n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("hh:mm:ss",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<hour-of-day> <integer>",
|
|
|
|
Classifier{okData =
|
2017-10-06 21:39:11 +03:00
|
|
|
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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-10-06 21:39:11 +03:00
|
|
|
ClassData{prior = -1.0986122886681098,
|
|
|
|
unseen = -1.9459101490553135,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("about|exactly <time-of-day>integer (numeric)",
|
2017-10-06 21:39:11 +03:00
|
|
|
-1.0986122886681098),
|
|
|
|
("hour", -1.0986122886681098)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 1}}),
|
|
|
|
("nth <time> of <time>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.4700036292457356, unseen = -2.833213344056216,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-13 21:38:34 +03:00
|
|
|
[("daymonth", -0.9808292530117262),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",
|
2017-03-13 21:38:34 +03:00
|
|
|
-2.0794415416798357),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)Wednesdayintersect",
|
2017-03-14 14:50:10 +03:00
|
|
|
-1.6739764335716716),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)TuesdayOctober",
|
2017-03-14 14:50:10 +03:00
|
|
|
-1.6739764335716716)],
|
|
|
|
n = 5},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.9808292530117262,
|
|
|
|
unseen = -2.5649493574615367,
|
2017-03-13 21:38:34 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("daymonth", -1.0986122886681098),
|
2017-03-13 21:38:34 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)TuesdaySeptember",
|
2017-03-14 14:50:10 +03:00
|
|
|
-1.791759469228055),
|
2017-03-13 21:38:34 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)WednesdayOctober",
|
2017-03-14 14:50:10 +03:00
|
|
|
-1.3862943611198906)],
|
2017-03-13 21:38:34 +03:00
|
|
|
n = 3}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 5},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("end of month",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("week (grain)",
|
|
|
|
Classifier{okData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -4.0821994520255166e-2,
|
|
|
|
unseen = -4.304065093204169,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 72},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -3.2188758248682006,
|
2017-06-23 16:50:04 +03:00
|
|
|
unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<part-of-day> of <time>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.3978952727983707,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("part of daysintersect by \",\", \"of\", \"from\", \"'s\"",
|
|
|
|
-1.6094379124341003),
|
|
|
|
("hourday", -0.916290731874155),
|
|
|
|
("part of daysthe <day-of-month> (ordinal)",
|
|
|
|
-1.6094379124341003),
|
|
|
|
("part of daysthe <day-of-month> (number)",
|
|
|
|
-1.6094379124341003)],
|
|
|
|
n = 3},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("past year (latent)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0},
|
|
|
|
koData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],
|
2017-08-15 20:04:51 +03:00
|
|
|
n = 2}}),
|
2017-11-14 23:01:46 +03:00
|
|
|
("six thirty six a.m.",
|
|
|
|
Classifier{okData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
2017-11-14 23:01:46 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-07 03:54:44 +03:00
|
|
|
[("integer (numeric)", -1.252762968495368),
|
|
|
|
("one twenty two", -0.8472978603872037),
|
|
|
|
("one eleven", -1.252762968495368)],
|
2017-11-14 23:01:46 +03:00
|
|
|
n = 4},
|
|
|
|
koData =
|
2018-03-07 03:54:44 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("now",
|
|
|
|
Classifier{okData =
|
2017-07-26 21:30:14 +03:00
|
|
|
ClassData{prior = -0.15415067982725836,
|
|
|
|
unseen = -2.0794415416798357,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
|
|
|
koData =
|
2017-07-26 21:30:14 +03:00
|
|
|
ClassData{prior = -1.9459101490553135,
|
|
|
|
unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<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}}),
|
2018-03-13 20:06:40 +03:00
|
|
|
("powers of tens",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Friday",
|
|
|
|
Classifier{okData =
|
2017-08-01 18:46:26 +03:00
|
|
|
ClassData{prior = -0.3677247801253174,
|
|
|
|
unseen = -2.3978952727983707,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 9},
|
|
|
|
koData =
|
2017-08-01 18:46:26 +03:00
|
|
|
ClassData{prior = -1.1786549963416462, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-06-09 19:21:03 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 17},
|
2017-03-08 21:33:55 +03:00
|
|
|
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 =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -8.223809823697212e-2,
|
|
|
|
unseen = -5.017279836814924,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-22 21:30:29 +03:00
|
|
|
[("week", -1.040343380544134),
|
|
|
|
("month (grain)", -3.624340932976365),
|
|
|
|
("year (grain)", -2.5257286443082556),
|
|
|
|
("week (grain)", -1.040343380544134),
|
|
|
|
("quarter", -3.4011973816621555), ("year", -2.5257286443082556),
|
|
|
|
("month", -3.624340932976365),
|
|
|
|
("quarter (grain)", -3.4011973816621555)],
|
|
|
|
n = 70},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -2.538973871058276, unseen = -3.1354942159291497,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-06-23 16:50:04 +03:00
|
|
|
[("week", -1.4816045409242156),
|
|
|
|
("week (grain)", -1.4816045409242156),
|
|
|
|
("day", -1.9924301646902063),
|
|
|
|
("day (grain)", -1.9924301646902063)],
|
|
|
|
n = 6}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Mother's Day",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("New Year's Eve",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("the <ordinal> <cycle> of <time>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("quarteryear", -0.6931471805599453),
|
|
|
|
("ordinal (digits)quarter (grain)year", -0.6931471805599453)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("by <time>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("noon|midnight|EOD|end of day", -2.1972245773362196),
|
|
|
|
("end of month", -2.1972245773362196),
|
|
|
|
("time-of-day (latent)", -2.1972245773362196),
|
|
|
|
("<time-of-day> am|pm", -2.1972245773362196),
|
|
|
|
("hh:mm", -2.1972245773362196), ("hour", -1.791759469228055),
|
|
|
|
("month", -2.1972245773362196), ("minute", -1.791759469228055)],
|
|
|
|
n = 5},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -2.1972245773362196,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("half an hour",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 5},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("the <day-of-month> (ordinal)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -0.2006706954621511,
|
|
|
|
unseen = -2.4849066497880004,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("ordinals (first..twentieth,thirtieth,...)",
|
|
|
|
-1.7047480922384253),
|
|
|
|
("ordinal (digits)", -0.2006706954621511)],
|
|
|
|
n = 9},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -1.7047480922384253,
|
|
|
|
unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList [("ordinal (digits)", -0.2876820724517809)],
|
|
|
|
n = 2}}),
|
2017-06-23 16:50:04 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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}}),
|
2017-05-10 16:51:58 +03:00
|
|
|
("fractional number",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0},
|
|
|
|
koData =
|
2017-07-20 21:04:13 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 17}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Sunday",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.11778303565638351,
|
|
|
|
unseen = -2.3025850929940455,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
|
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -2.1972245773362196,
|
|
|
|
unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-06-27 17:13:55 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.833213344056216,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("the <ordinal> quarter",
|
|
|
|
Classifier{okData =
|
2017-03-13 21:38:34 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.6094379124341003,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("ordinal (digits)quarter (grain)", -0.6931471805599453),
|
|
|
|
("quarter", -0.6931471805599453)],
|
2017-03-13 21:38:34 +03:00
|
|
|
n = 1},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-13 21:38:34 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("ordinal (digits)quarter (grain)", -0.6931471805599453),
|
|
|
|
("quarter", -0.6931471805599453)],
|
|
|
|
n = 1}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("time-of-day (latent)",
|
|
|
|
Classifier{okData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -0.5315058290035293,
|
|
|
|
unseen = -4.2626798770413155,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-02 01:22:27 +03:00
|
|
|
[("integer (numeric)", -0.12136085700426748),
|
|
|
|
("integer (0..19)", -2.3025850929940455)],
|
|
|
|
n = 67},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -0.8860508466844369,
|
2018-01-05 23:03:42 +03:00
|
|
|
unseen = -3.9318256327243257,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
2017-11-14 23:01:46 +03:00
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)", -0.10536051565782628),
|
|
|
|
("integer (0..19)", -2.8134107167600364),
|
|
|
|
("integer 21..99", -3.2188758248682006)],
|
|
|
|
n = 47}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("year",
|
|
|
|
Classifier{okData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -0.25671984684781396,
|
|
|
|
unseen = -3.828641396489095,
|
2018-03-13 20:06:40 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-22 21:30:29 +03:00
|
|
|
[("integer (numeric)", -9.309042306601198e-2),
|
|
|
|
("intersect 2 numbers", -3.1135153092103742)],
|
|
|
|
n = 41},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -1.4853852637641216, unseen = -2.833213344056216,
|
2018-03-13 20:06:40 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)", -0.4700036292457356),
|
|
|
|
("intersect 2 numbers", -2.0794415416798357),
|
|
|
|
("powers of tens", -2.0794415416798357),
|
|
|
|
("compose by multiplication", -2.0794415416798357)],
|
|
|
|
n = 12}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("last <day-of-week> of <time>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.3978952727983707,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("daymonth", -0.916290731874155),
|
|
|
|
("SundayMarch", -1.6094379124341003),
|
|
|
|
("MondayMarch", -1.6094379124341003),
|
|
|
|
("Sundayintersect", -1.6094379124341003)],
|
|
|
|
n = 3},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.6094379124341003,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<integer> <unit-of-duration>",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -0.14595391262307983,
|
|
|
|
unseen = -5.099866427824199,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("week", -2.4546928711915035),
|
|
|
|
("integer (0..19)year (grain)", -3.3019907315787074),
|
|
|
|
("integer (numeric)day (grain)", -2.6958549280083917),
|
|
|
|
("integer (0..19)second (grain) ", -3.7074558396868715),
|
|
|
|
("integer (0..19)hour (grain)", -3.0143086591269266),
|
|
|
|
("second", -3.3019907315787074),
|
|
|
|
("integer (numeric)second (grain) ", -3.9951379121386528),
|
|
|
|
("integer (numeric)year (grain)", -3.7074558396868715),
|
|
|
|
("day", -2.3856999997045523), ("year", -2.8965256234705428),
|
|
|
|
("integer (numeric)week (grain)", -3.0143086591269266),
|
|
|
|
("integer (0..19)month (grain)", -3.484312288372662),
|
|
|
|
("hour", -2.608843551018762), ("month", -3.147840051751449),
|
|
|
|
("integer (numeric)minute (grain)", -3.147840051751449),
|
|
|
|
("integer (0..19)minute (grain)", -3.0143086591269266),
|
|
|
|
("integer (numeric)month (grain)", -3.9951379121386528),
|
|
|
|
("minute", -2.4546928711915035),
|
|
|
|
("integer (numeric)hour (grain)", -3.484312288372662),
|
|
|
|
("integer (0..19)day (grain)", -3.484312288372662),
|
|
|
|
("integer (0..19)week (grain)", -3.147840051751449)],
|
|
|
|
n = 70},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -1.9965538818740682, unseen = -3.828641396489095,
|
2017-12-15 21:06:16 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("quarter", -3.1135153092103742), ("hour", -1.4087672169719492),
|
|
|
|
("integer (numeric)hour (grain)", -1.4087672169719492),
|
|
|
|
("integer (0..19)quarter (grain)", -3.1135153092103742)],
|
|
|
|
n = 11}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -0.2929871246814741,
|
|
|
|
unseen = -5.3230099791384085,
|
2018-01-05 23:03:42 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-02 01:22:27 +03:00
|
|
|
[("integer after|past <hour-of-day>", -3.9318256327243257),
|
|
|
|
("at <time-of-day>", -2.2270775404859005),
|
|
|
|
("from|since|after <time-of-day>", -3.708682081410116),
|
|
|
|
("<time-of-day> o'clock", -4.219507705176107),
|
|
|
|
("half after|past <hour-of-day>", -4.219507705176107),
|
|
|
|
("time-of-day (latent)", -1.7346010553881064),
|
|
|
|
("hhmm (latent)", -4.624972813284271),
|
|
|
|
("hh:mm", -2.2735975561207935),
|
|
|
|
("quarter after|past <hour-of-day>", -4.624972813284271),
|
|
|
|
("about|exactly <time-of-day>", -4.624972813284271),
|
|
|
|
("until <time-of-day>", -3.9318256327243257),
|
|
|
|
("hour", -1.2237754316221157),
|
|
|
|
("<time-of-day> sharp|exactly", -4.624972813284271),
|
|
|
|
("minute", -1.7346010553881064)],
|
|
|
|
n = 94},
|
2018-01-05 23:03:42 +03:00
|
|
|
koData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -1.3705460041517514, unseen = -4.394449154672439,
|
2018-01-05 23:03:42 +03:00
|
|
|
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}}),
|
2017-08-12 11:52:48 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thanksgiving Day",
|
|
|
|
Classifier{okData =
|
2017-08-01 18:46:26 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.5649493574615367,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 11},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-06-16 21:46:04 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("a <unit-of-duration>",
|
|
|
|
Classifier{okData =
|
2017-07-26 21:30:14 +03:00
|
|
|
ClassData{prior = -0.5753641449035618,
|
|
|
|
unseen = -3.4965075614664802,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-07-26 21:30:14 +03:00
|
|
|
[("week", -2.0794415416798357),
|
|
|
|
("year (grain)", -2.772588722239781),
|
|
|
|
("second", -2.772588722239781),
|
|
|
|
("week (grain)", -2.0794415416798357),
|
|
|
|
("day", -2.0794415416798357),
|
|
|
|
("minute (grain)", -2.772588722239781),
|
|
|
|
("year", -2.772588722239781),
|
|
|
|
("second (grain) ", -2.772588722239781),
|
|
|
|
("minute", -2.772588722239781),
|
|
|
|
("day (grain)", -2.0794415416798357)],
|
|
|
|
n = 9},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-07-26 21:30:14 +03:00
|
|
|
ClassData{prior = -0.8266785731844679, unseen = -3.367295829986474,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("hour (grain)", -1.7227665977411035),
|
|
|
|
("quarter", -1.9459101490553135), ("hour", -1.7227665977411035),
|
|
|
|
("quarter (grain)", -1.9459101490553135)],
|
|
|
|
n = 7}}),
|
2018-03-22 21:30:29 +03:00
|
|
|
("at the beginning|end of <year>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("year", 0.0)], n = 4},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("hh:mm",
|
|
|
|
Classifier{okData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -6.782259633876106e-2,
|
|
|
|
unseen = -4.07753744390572,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 57},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-02 01:22:27 +03:00
|
|
|
ClassData{prior = -2.7245795030534206, unseen = -1.791759469228055,
|
2018-01-20 06:00:37 +03:00
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("quarter of an hour",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.791759469228055,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 4},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("second (grain) ",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("ordinals (first..twentieth,thirtieth,...)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -6.899287148695143e-2,
|
|
|
|
unseen = -2.772588722239781,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -2.70805020110221, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
|
|
|
|
("quarter after|past <hour-of-day>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("time-of-day (latent)", -0.6931471805599453),
|
|
|
|
("hour", -0.6931471805599453)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("the <cycle> after|before <time>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("day (grain)tomorrow", -1.252762968495368),
|
|
|
|
("dayday", -0.8472978603872037),
|
|
|
|
("day (grain)yesterday", -1.252762968495368)],
|
|
|
|
n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("about|exactly <time-of-day>",
|
|
|
|
Classifier{okData =
|
2018-03-22 21:30:29 +03:00
|
|
|
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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-22 21:30:29 +03:00
|
|
|
ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-06-22 13:39:45 +03:00
|
|
|
[("mm/dd", -2.0794415416798357), ("day", -2.0794415416798357),
|
|
|
|
("time-of-day (latent)", -2.0794415416798357),
|
|
|
|
("hour", -2.0794415416798357)],
|
|
|
|
n = 2}}),
|
2018-03-17 03:08:10 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"",
|
|
|
|
Classifier{okData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -0.48835276791393206,
|
|
|
|
unseen = -5.153291594497779,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("Wednesday<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("dayhour", -3.2015843277581397),
|
|
|
|
("daymonth", -3.2015843277581397),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)Friday",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("Friday<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-3.7612001156935624),
|
|
|
|
("Wednesdayintersect", -4.454347296253507),
|
|
|
|
("Labor Daythis|last|next <cycle>", -4.454347296253507),
|
|
|
|
("Black Fridaythis|last|next <cycle>", -4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"year",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("<part-of-day> of <time>February", -4.454347296253507),
|
|
|
|
("Saturday<time-of-day> am|pm", -4.454347296253507),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Martin Luther King's Daythis|last|next <cycle>",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("on <date><time-of-day> am|pm", -4.454347296253507),
|
|
|
|
("hourmonth", -4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"intersect",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("dayday", -2.5825451193519164),
|
|
|
|
("the <day-of-month> (ordinal)February", -4.048882188145344),
|
|
|
|
("WednesdayOctober", -4.454347296253507),
|
|
|
|
("Wednesdaythis|last|next <cycle>", -4.048882188145344),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-3.5380565643793527),
|
|
|
|
("dayyear", -2.9502698994772336),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("Saturday<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)intersect",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("Thursdayhh:mm", -4.048882188145344),
|
|
|
|
("Thanksgiving Daythis|last|next <cycle>", -4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("on <date><named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.048882188145344),
|
|
|
|
("TuesdayOctober", -4.454347296253507),
|
|
|
|
("the <day-of-month> (ordinal)March", -4.454347296253507),
|
|
|
|
("Mondaythis|last|next <cycle>", -4.454347296253507),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.048882188145344),
|
|
|
|
("Fridayintersect", -4.454347296253507),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursday<datetime> - <datetime> (interval)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-3.7612001156935624),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursday<time-of-day> - <time-of-day> (interval)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-3.5380565643793527),
|
|
|
|
("Tuesdaythis|last|next <cycle>", -4.454347296253507),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Sunday<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.454347296253507),
|
|
|
|
("dayminute", -2.662587827025453),
|
|
|
|
("intersectyear", -4.454347296253507),
|
|
|
|
("minuteday", -3.5380565643793527),
|
|
|
|
("this|last|next <cycle>Sunday", -4.454347296253507),
|
|
|
|
("Sundaythis|last|next <cycle>", -4.454347296253507),
|
|
|
|
("intersectintersect", -4.454347296253507),
|
|
|
|
("weekday", -4.454347296253507),
|
|
|
|
("dayweek", -3.355735007585398),
|
|
|
|
("Thursday<time-of-day> am|pm", -4.454347296253507),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Monday<named-month> <day-of-month> (non ordinal)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.048882188145344),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)year",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.048882188145344)],
|
|
|
|
n = 54},
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
koData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -0.9509762898620451, unseen = -4.890349128221754,
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-17 03:08:10 +03:00
|
|
|
[("week-endJuly", -4.189654742026425),
|
|
|
|
("week-endOctober", -3.4965075614664802),
|
|
|
|
("daymonth", -1.9924301646902063),
|
|
|
|
("TuesdaySeptember", -4.189654742026425),
|
|
|
|
("Wednesdayintersect", -4.189654742026425),
|
|
|
|
("hourmonth", -3.0910424533583156),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"intersect",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.189654742026425),
|
|
|
|
("Fridaythis|last|next <cycle>", -4.189654742026425),
|
|
|
|
("SundayFebruary", -4.189654742026425),
|
|
|
|
("WednesdayOctober", -4.189654742026425),
|
|
|
|
("week-endintersect", -4.189654742026425),
|
|
|
|
("dayyear", -4.189654742026425),
|
|
|
|
("FridayJuly", -3.784189633918261),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)intersect",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.189654742026425),
|
|
|
|
("FridaySeptember", -4.189654742026425),
|
|
|
|
("WednesdayFebruary", -4.189654742026425),
|
|
|
|
("minutemonth", -3.2733640101522705),
|
|
|
|
("SundayMarch", -4.189654742026425),
|
Optimize simple time predicates
Summary:
This is the next step for:
https://fb.facebook.com/groups/527352907463243/permalink/600056483526218/
This:
* changes the time language to be able to track contradictions (`EmptyPredicate`)
* changes the time language to be able to collect non-contradicting pieces, like month and hour and unify them
* provides an efficient way to convert those pieces into (past,future) time series
* adds AMPM predicate runner - there's a bit of overlap with is12H, but it basically works
* changes a test case that was wrong before
* regenerates classifiers, I'm not sure why they changed exactly
Before:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(15.50 secs, 6,171,188,928 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(110.82 secs, 44,031,569,512 bytes)
```
After:
```
res <- H.io $ let sentence = "10am thurs 4.30 thurs 12pm sat" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(1.24 secs, 703,020,912 bytes)
res <- H.io $ let sentence = "I have 9 am 12 pm 1 pm 2pm 4 pm 3 pm on Saturday" in (debugTokens sentence $ analyze sentence (testContext {lang = EN}) HashSet.empty)
(9.51 secs, 5,891,109,592 bytes)
```
Reviewed By: JonCoens
Differential Revision: D4676812
fbshipit-source-id: 9810203
2017-03-14 02:49:47 +03:00
|
|
|
("Fridayintersect by \",\", \"of\", \"from\", \"'s\"",
|
2018-03-17 03:08:10 +03:00
|
|
|
-4.189654742026425),
|
|
|
|
("MondayFebruary", -3.784189633918261),
|
|
|
|
("Fridayintersect", -4.189654742026425),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Thursday<time-of-day> - <time-of-day> (interval)",
|
2018-03-17 03:08:10 +03:00
|
|
|
-3.784189633918261),
|
|
|
|
("dayminute", -2.803360380906535),
|
|
|
|
("SaturdaySeptember", -4.189654742026425),
|
|
|
|
("intersectSeptember", -3.2733640101522705),
|
|
|
|
("MondayMarch", -4.189654742026425),
|
|
|
|
("on <date>September", -3.784189633918261),
|
|
|
|
("intersectintersect", -4.189654742026425),
|
|
|
|
("Tuesdayintersect", -4.189654742026425),
|
|
|
|
("Sundayintersect", -4.189654742026425)],
|
2017-08-01 18:46:26 +03:00
|
|
|
n = 34}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("last <time>",
|
|
|
|
Classifier{okData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -3.2188758248682006,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-17 03:08:10 +03:00
|
|
|
[("Father's Day", -2.4849066497880004),
|
|
|
|
("Martin Luther King's Day", -2.4849066497880004),
|
|
|
|
("Mother's Day", -2.4849066497880004),
|
|
|
|
("day", -1.2321436812926323), ("Sunday", -2.4849066497880004),
|
|
|
|
("Thanksgiving Day", -2.4849066497880004),
|
|
|
|
("hour", -2.4849066497880004), ("Tuesday", -2.4849066497880004),
|
|
|
|
("week-end", -2.4849066497880004)],
|
|
|
|
n = 7},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -3.2188758248682006,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-17 03:08:10 +03:00
|
|
|
[("Monday", -2.4849066497880004), ("day", -2.0794415416798357),
|
|
|
|
("Sunday", -2.4849066497880004), ("hour", -1.3862943611198906),
|
|
|
|
("week-end", -1.3862943611198906)],
|
2017-10-31 22:22:22 +03:00
|
|
|
n = 7}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("March",
|
|
|
|
Classifier{okData =
|
2017-06-16 21:46:04 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 17},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<named-month>|<named-day> <day-of-month> (ordinal)",
|
|
|
|
Classifier{okData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -0.2231435513142097, unseen = -3.258096538021482,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("Octoberordinal (digits)", -2.120263536200091),
|
|
|
|
("Thursdayordinal (digits)", -2.5257286443082556),
|
|
|
|
("day", -2.120263536200091),
|
|
|
|
("Augustordinal (digits)", -2.5257286443082556),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Marchordinals (first..twentieth,thirtieth,...)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-2.120263536200091),
|
|
|
|
("Tuesdayordinal (digits)", -2.5257286443082556),
|
|
|
|
("month", -1.2729656758128873),
|
|
|
|
("Marchordinal (digits)", -2.5257286443082556)],
|
2017-08-15 20:04:51 +03:00
|
|
|
n = 8},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -1.6094379124341003, unseen = -2.639057329615259,
|
2017-08-15 20:04:51 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("from|since|after <time-of-day>ordinal (digits)",
|
|
|
|
-1.8718021769015913),
|
|
|
|
("Augustordinal (digits)", -1.8718021769015913),
|
|
|
|
("month", -1.466337068793427)],
|
|
|
|
n = 2}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Labor Day weekend",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<day-of-month> (ordinal)",
|
|
|
|
Classifier{okData =
|
2017-08-15 20:04:51 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [("ordinal (digits)", 0.0)], n = 5},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2018-03-13 20:06:40 +03:00
|
|
|
("Easter Sunday",
|
|
|
|
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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Christmas",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("until <time-of-day>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.9808292530117262, unseen = -3.044522437723423,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("time-of-day (latent)", -2.3025850929940455),
|
|
|
|
("<time-of-day> am|pm", -1.6094379124341003),
|
|
|
|
("hh:mm", -1.8971199848858813), ("hour", -1.8971199848858813),
|
|
|
|
("minute", -1.3862943611198906)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 6},
|
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.4700036292457356, unseen = -3.367295829986474,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("intersect", -1.7227665977411035),
|
|
|
|
("yesterday", -2.2335922215070942),
|
|
|
|
("day", -2.2335922215070942), ("hh:mm", -1.7227665977411035),
|
|
|
|
("hour", -2.639057329615259), ("minute", -1.252762968495368)],
|
|
|
|
n = 10}}),
|
2018-01-20 06:00:37 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<duration> after|before|from <time>",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = -1.2992829841302609,
|
|
|
|
unseen = -3.1780538303479458,
|
2017-07-26 21:30:18 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-13 20:06:40 +03:00
|
|
|
[("dayhour", -2.4423470353692043),
|
2017-07-26 21:30:18 +03:00
|
|
|
("<integer> <unit-of-duration><day-of-month> (ordinal)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-2.4423470353692043),
|
|
|
|
("dayday", -2.03688192726104),
|
2017-07-26 21:30:18 +03:00
|
|
|
("<integer> <unit-of-duration>time-of-day (latent)",
|
2018-03-13 20:06:40 +03:00
|
|
|
-2.4423470353692043),
|
2017-07-26 21:30:18 +03:00
|
|
|
("<integer> <unit-of-duration><day-of-month> (ordinal or number) <named-month>",
|
2018-03-13 20:06:40 +03:00
|
|
|
-2.4423470353692043)],
|
2017-07-26 21:30:18 +03:00
|
|
|
n = 3}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("decimal number",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0},
|
|
|
|
koData =
|
2018-01-20 06:00:37 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -1.6094379124341003,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 3}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("next <time>",
|
|
|
|
Classifier{okData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.4339872044851463,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-17 03:08:10 +03:00
|
|
|
[("Martin Luther King's Day", -2.70805020110221),
|
|
|
|
("Halloween", -2.70805020110221),
|
|
|
|
("Wednesday", -2.70805020110221), ("Monday", -2.70805020110221),
|
|
|
|
("Mother's Day", -2.70805020110221),
|
2017-03-08 21:33:55 +03:00
|
|
|
("day", -1.0986122886681098),
|
2018-03-17 03:08:10 +03:00
|
|
|
("Thanksgiving Day", -2.70805020110221),
|
|
|
|
("March", -2.70805020110221), ("month", -2.70805020110221),
|
|
|
|
("Tuesday", -2.0149030205422647)],
|
|
|
|
n = 10},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -2.3978952727983707,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<time-of-day> sharp|exactly",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.890371757896165,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("at <time-of-day>", -2.1400661634962708),
|
|
|
|
("time-of-day (latent)", -2.1400661634962708),
|
|
|
|
("hhmm (latent)", -2.1400661634962708),
|
|
|
|
("<time-of-day> am|pm", -2.1400661634962708),
|
|
|
|
("hh:mm", -2.1400661634962708), ("hour", -1.7346010553881064),
|
|
|
|
("minute", -1.4469189829363254)],
|
|
|
|
n = 5},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("negative numbers",
|
|
|
|
Classifier{okData =
|
2017-11-14 23:01:46 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.0986122886681098,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0},
|
|
|
|
koData =
|
2017-11-14 23:01:46 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.332204510175204,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)", -7.696104113612832e-2),
|
|
|
|
("integer (0..19)", -2.6026896854443837)],
|
|
|
|
n = 25}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -0.3794896217049037, unseen = -4.304065093204169,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("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),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)<named-month> <day-of-month> (non ordinal)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.1918471524802814),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"hh:mm",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.1918471524802814),
|
2017-03-08 21:33:55 +03:00
|
|
|
("intersect by \",\", \"of\", \"from\", \"'s\"<time-of-day> am|pm",
|
2018-01-05 23:03:42 +03:00
|
|
|
-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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -1.1526795099383855, unseen = -3.828641396489095,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("<named-month> <day-of-month> (non ordinal)July",
|
2018-01-05 23:03:42 +03:00
|
|
|
-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),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<named-month> <day-of-month> (non ordinal)August",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.1135153092103742),
|
2017-03-08 21:33:55 +03:00
|
|
|
("about|exactly <time-of-day><time-of-day> am|pm",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.1135153092103742)],
|
|
|
|
n = 12}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("Tuesday",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.639057329615259,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 12},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("New Year's Day",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2}}),
|
|
|
|
("fortnight",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("<integer> and an half hour",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("integer (numeric)", 0.0)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("in <named-month>",
|
|
|
|
Classifier{okData =
|
2017-06-23 16:50:04 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
2017-03-08 21:33:55 +03:00
|
|
|
unseen = -2.0794415416798357,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("October", -1.252762968495368), ("March", -1.252762968495368),
|
|
|
|
("month", -0.8472978603872037)],
|
|
|
|
n = 2},
|
|
|
|
koData =
|
2017-06-23 16:50:04 +03:00
|
|
|
ClassData{prior = -0.6931471805599453,
|
|
|
|
unseen = -2.0794415416798357,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-06-23 16:50:04 +03:00
|
|
|
[("October", -0.8472978603872037),
|
|
|
|
("month", -0.8472978603872037)],
|
|
|
|
n = 2}}),
|
2018-03-22 21:30:29 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> - <time-of-day> (interval)",
|
|
|
|
Classifier{okData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -0.7375989431307791, unseen = -4.110873864173311,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -0.6505875661411494, unseen = -4.174387269895637,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("about|exactly <time-of-day>time-of-day (latent)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.4657359027997265),
|
|
|
|
("hh:mmtime-of-day (latent)", -1.7609878105613013),
|
|
|
|
("hh:mm<time-of-day> am|pm", -3.0602707946915624),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<time-of-day> am|pmtime-of-day (latent)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.4657359027997265),
|
|
|
|
("at <time-of-day><time-of-day> am|pm", -3.4657359027997265),
|
|
|
|
("hourhour", -2.2129729343043585),
|
|
|
|
("minutehour", -1.2144441041932315),
|
2017-03-08 21:33:55 +03:00
|
|
|
("about|exactly <time-of-day><time-of-day> am|pm",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.4657359027997265),
|
|
|
|
("from|since|after <time-of-day>time-of-day (latent)",
|
|
|
|
-2.5494451709255714),
|
|
|
|
("at <time-of-day>time-of-day (latent)", -3.0602707946915624),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<integer> to|till|before <hour-of-day>time-of-day (latent)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-3.0602707946915624)],
|
|
|
|
n = 24}}),
|
2017-11-14 23:01:46 +03:00
|
|
|
("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}}),
|
2018-03-12 19:36:16 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("nth <time> after <time>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("dayday", -0.916290731874155),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)Tuesdayintersect",
|
2017-03-14 14:50:10 +03:00
|
|
|
-0.916290731874155)],
|
|
|
|
n = 1},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.6931471805599453, unseen = -1.791759469228055,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("dayday", -0.916290731874155),
|
2017-03-08 21:33:55 +03:00
|
|
|
("ordinals (first..twentieth,thirtieth,...)TuesdayChristmas",
|
2017-03-14 14:50:10 +03:00
|
|
|
-0.916290731874155)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 1}}),
|
|
|
|
("<named-month> <day-of-month> (non ordinal)",
|
|
|
|
Classifier{okData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -0.42121346507630353,
|
|
|
|
unseen = -3.951243718581427,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("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)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 21},
|
|
|
|
koData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -1.067840630001356, unseen = -3.4657359027997265,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.5553480614894135,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 33},
|
2017-03-08 21:33:55 +03:00
|
|
|
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 =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -1.9459101490553135,
|
2017-03-08 21:33:55 +03:00
|
|
|
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}}),
|
2018-03-12 19:36:16 +03:00
|
|
|
("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}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("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 =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -1.3862943611198906,
|
2017-03-08 21:33:55 +03:00
|
|
|
unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
2018-03-17 03:08:10 +03:00
|
|
|
ClassData{prior = -0.2876820724517809,
|
|
|
|
unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("day (grain)",
|
|
|
|
Classifier{okData =
|
2018-03-13 20:06:40 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.258096538021482,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 24},
|
2017-07-26 21:30:14 +03:00
|
|
|
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},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-07-26 21:30:18 +03:00
|
|
|
("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}}),
|
2018-03-13 20:06:40 +03:00
|
|
|
("compose by multiplication",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.0986122886681098,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList [("integer (0..19)powers of tens", 0.0)],
|
|
|
|
n = 1},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("between <time> and <time>",
|
|
|
|
Classifier{okData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -1.0986122886681098,
|
|
|
|
unseen = -2.4849066497880004,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("minuteminute", -1.0116009116784799),
|
|
|
|
("hh:mmhh:mm", -1.0116009116784799)],
|
2017-03-08 21:33:55 +03:00
|
|
|
n = 3},
|
|
|
|
koData =
|
2017-03-14 14:50:10 +03:00
|
|
|
ClassData{prior = -0.40546510810816444,
|
|
|
|
unseen = -2.890371757896165,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2017-03-14 14:50:10 +03:00
|
|
|
[("hh:mmtime-of-day (latent)", -1.4469189829363254),
|
|
|
|
("minuteminute", -1.4469189829363254),
|
|
|
|
("minutehour", -1.4469189829363254),
|
|
|
|
("hh:mmintersect", -1.4469189829363254)],
|
|
|
|
n = 6}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("<month> dd-dd (interval)",
|
|
|
|
Classifier{okData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.4657359027997265,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-01-05 23:03:42 +03:00
|
|
|
[("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),
|
2017-08-15 20:04:51 +03:00
|
|
|
("Augustordinal (digits)integer (numeric)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-2.3353749158170367),
|
|
|
|
("month", -0.8690378470236094),
|
2017-08-15 20:04:51 +03:00
|
|
|
("Augustordinal (digits)ordinal (digits)",
|
2018-01-05 23:03:42 +03:00
|
|
|
-2.3353749158170367)],
|
|
|
|
n = 12},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-01-05 23:03:42 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -2.0794415416798357,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
|
|
|
("part of days",
|
|
|
|
Classifier{okData =
|
2017-06-09 19:21:03 +03:00
|
|
|
ClassData{prior = -4.0821994520255166e-2,
|
|
|
|
unseen = -3.258096538021482,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 24},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2017-06-09 19:21:03 +03:00
|
|
|
ClassData{prior = -3.2188758248682006,
|
2017-03-08 21:33:55 +03:00
|
|
|
unseen = -1.0986122886681098,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
|
2018-03-22 21:30:29 +03:00
|
|
|
("at the beginning|end of <week>",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -4.330733340286331,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("week", -0.706570200892086),
|
|
|
|
("this|last|next <cycle>", -0.8209805520698302),
|
|
|
|
("about|exactly <time-of-day>", -2.70805020110221)],
|
|
|
|
n = 36},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2018-03-12 19:36:16 +03:00
|
|
|
("summer",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -1.3862943611198906,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 2},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-08-17 00:06:45 +03:00
|
|
|
("dd-dd <month> (interval)",
|
|
|
|
Classifier{okData =
|
|
|
|
ClassData{prior = 0.0, unseen = -2.9444389791664407,
|
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
|
|
|
[("integer (numeric)integer (numeric)September",
|
|
|
|
-1.791759469228055),
|
|
|
|
("ordinal (digits)ordinal (digits)July", -2.1972245773362196),
|
|
|
|
("ordinal (digits)ordinal (digits)October",
|
|
|
|
-2.1972245773362196),
|
|
|
|
("integer (numeric)integer (numeric)July", -2.1972245773362196),
|
|
|
|
("month", -0.9444616088408514),
|
|
|
|
("ordinal (digits)ordinal (digits)August",
|
|
|
|
-2.1972245773362196)],
|
|
|
|
n = 6},
|
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -1.9459101490553135,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("this <time>",
|
|
|
|
Classifier{okData =
|
2018-03-12 19:36:16 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -3.258096538021482,
|
2017-03-08 21:33:55 +03:00
|
|
|
likelihoods =
|
|
|
|
HashMap.fromList
|
2018-03-12 19:36:16 +03:00
|
|
|
[("Thursday", -2.5257286443082556),
|
|
|
|
("Martin Luther King's Day", -2.5257286443082556),
|
|
|
|
("Monday", -2.5257286443082556), ("day", -1.1394342831883648),
|
|
|
|
("Thanksgiving Day", -2.5257286443082556),
|
|
|
|
("hour", -2.5257286443082556), ("winter", -2.5257286443082556),
|
|
|
|
("week-end", -2.5257286443082556),
|
|
|
|
("summer", -2.120263536200091)],
|
2017-10-31 22:22:22 +03:00
|
|
|
n = 8},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
2018-03-12 19:36:16 +03:00
|
|
|
ClassData{prior = -infinity, unseen = -2.3025850929940455,
|
2017-10-31 22:22:22 +03:00
|
|
|
likelihoods = HashMap.fromList [], n = 0}}),
|
2017-03-08 21:33:55 +03:00
|
|
|
("August",
|
|
|
|
Classifier{okData =
|
2017-08-17 00:06:45 +03:00
|
|
|
ClassData{prior = 0.0, unseen = -2.0794415416798357,
|
|
|
|
likelihoods = HashMap.fromList [("", 0.0)], n = 6},
|
2017-03-08 21:33:55 +03:00
|
|
|
koData =
|
|
|
|
ClassData{prior = -infinity, unseen = -0.6931471805599453,
|
|
|
|
likelihoods = HashMap.fromList [], n = 0}})]
|