Fixed the problem parsing "next <day-of-week>"

Summary:
If the current time is: 07/07/2020 (tuesday),
Current:
"next saturday" -> 07/11/2020
Expected:
"next saturday" -> 07/18/2020

According to
Quora (https://www.quora.com/When-is-this-Monday-and-next-Monday-Are-they-the-same#:~:text='Next%20Monday'%20is%20Monday%20of,the%20first%20Monday%20after%20today.),

the term "next saturday" means the first saturday in the week after current (this) week, regardless the current day of week.

Reviewed By: haoxuany

Differential Revision: D22420499

fbshipit-source-id: c2bd28b9fda78ff3cb0418a50c3b302be350b02d
This commit is contained in:
Bing Yuan 2020-07-15 14:41:49 -07:00 committed by Facebook GitHub Bot
parent 9c1ab0de69
commit 780bd0aac5
15 changed files with 462 additions and 386 deletions

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1629,11 +1629,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1820,11 +1820,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("yesterday",
@ -3408,25 +3408,30 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.784189633918261,
ClassData{prior = -0.13353139262452263,
unseen = -3.7612001156935624,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.374905754573672),
("Halloween", -3.068052935133617),
("Wednesday", -3.068052935133617),
("Boss's Day", -3.068052935133617),
("Memorial Day", -3.068052935133617),
("Monday", -3.068052935133617),
("Discovery Day", -3.068052935133617),
("Mother's Day", -3.068052935133617),
("day", -1.0531499145913523),
("Thanksgiving Day", -3.068052935133617),
("March", -3.068052935133617), ("month", -3.068052935133617),
("Tuesday", -2.374905754573672)],
n = 15},
[("Martin Luther King's Day", -2.3513752571634776),
("Halloween", -3.044522437723423),
("Boss's Day", -3.044522437723423),
("Memorial Day", -3.044522437723423),
("Monday", -2.639057329615259),
("Discovery Day", -3.044522437723423),
("Mother's Day", -3.044522437723423),
("day", -1.0986122886681098),
("Thanksgiving Day", -3.044522437723423),
("March", -3.044522437723423), ("month", -3.044522437723423),
("Tuesday", -2.639057329615259)],
n = 14},
koData =
ClassData{prior = -infinity, unseen = -2.639057329615259,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -2.0794415416798357,
unseen = -2.9444389791664407,
likelihoods =
HashMap.fromList
[("Wednesday", -2.1972245773362196),
("Saturday", -2.1972245773362196), ("day", -1.791759469228055)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3626,8 +3631,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3846,16 +3851,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1617,11 +1617,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1802,11 +1802,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3349,22 +3349,27 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.6375861597263857,
ClassData{prior = -0.15415067982725836,
unseen = -3.6109179126442243,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.2246235515243336),
("Halloween", -2.917770732084279),
("Wednesday", -2.917770732084279),
("Boss's Day", -2.917770732084279),
("Mothering Sunday", -2.917770732084279),
("Monday", -2.917770732084279), ("day", -1.0459685551826876),
("Thanksgiving Day", -2.917770732084279),
("March", -2.917770732084279), ("month", -2.917770732084279),
("Tuesday", -2.2246235515243336)],
n = 13},
[("Martin Luther King's Day", -2.1972245773362196),
("Halloween", -2.890371757896165),
("Boss's Day", -2.890371757896165),
("Mothering Sunday", -2.890371757896165),
("Monday", -2.4849066497880004), ("day", -1.0986122886681098),
("Thanksgiving Day", -2.890371757896165),
("March", -2.890371757896165), ("month", -2.890371757896165),
("Tuesday", -2.4849066497880004)],
n = 12},
koData =
ClassData{prior = -infinity, unseen = -2.4849066497880004,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.9459101490553135, unseen = -2.833213344056216,
likelihoods =
HashMap.fromList
[("Wednesday", -2.0794415416798357),
("Saturday", -2.0794415416798357),
("day", -1.6739764335716716)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3564,8 +3569,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3777,16 +3782,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1772,11 +1772,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("yesterday",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1690,11 +1690,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("Mini-Tuesday",
@ -1881,11 +1881,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.3364722366212129,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.322773392263051, unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.252762968495368, unseen = -2.3025850929940455,
ClassData{prior = -1.2878542883066382,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8}}),
("yesterday",
Classifier{okData =
@ -3558,26 +3558,29 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.8501476017100584,
ClassData{prior = -0.12516314295400605,
unseen = -3.828641396489095,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.4423470353692043),
("Halloween", -3.1354942159291497),
("Wednesday", -3.1354942159291497),
("Boss's Day", -3.1354942159291497),
("Memorial Day", -3.1354942159291497),
("Monday", -3.1354942159291497),
("Tax Day", -3.1354942159291497),
("Mother's Day", -3.1354942159291497),
("day", -1.0560526742493137),
("Thanksgiving Day", -3.1354942159291497),
("Super Tuesday", -3.1354942159291497),
("March", -3.1354942159291497), ("month", -3.1354942159291497),
("Tuesday", -2.4423470353692043)],
n = 16},
[("Martin Luther King's Day", -2.4203681286504293),
("Halloween", -3.1135153092103742),
("Boss's Day", -3.1135153092103742),
("Memorial Day", -3.1135153092103742),
("Monday", -2.70805020110221), ("Tax Day", -3.1135153092103742),
("Mother's Day", -3.1135153092103742),
("day", -1.0986122886681098),
("Thanksgiving Day", -3.1135153092103742),
("Super Tuesday", -3.1135153092103742),
("March", -3.1135153092103742), ("month", -3.1135153092103742),
("Tuesday", -2.70805020110221)],
n = 15},
koData =
ClassData{prior = -infinity, unseen = -2.70805020110221,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -2.1400661634962708, unseen = -2.995732273553991,
likelihoods =
HashMap.fromList
[("Wednesday", -2.2512917986064953),
("Saturday", -2.2512917986064953), ("day", -1.845826690498331)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3818,10 +3821,10 @@ classifiers
n = 85}}),
("Tuesday",
Classifier{okData =
ClassData{prior = -1.0531499145913523, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = -1.0986122886681098, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -0.4289956055183584,
ClassData{prior = -0.40546510810816444,
unseen = -3.4011973816621555,
likelihoods = HashMap.fromList [("", 0.0)], n = 28}}),
("New Year's Day",
@ -4052,16 +4055,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1607,11 +1607,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1785,11 +1785,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("yesterday",
@ -3327,21 +3327,26 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.5553480614894135,
ClassData{prior = -0.1670540846631662,
unseen = -3.5263605246161616,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.1400661634962708),
("Halloween", -2.833213344056216),
("Wednesday", -2.833213344056216),
("Boss's Day", -2.833213344056216),
("Monday", -2.833213344056216), ("day", -1.041453874828161),
("Thanksgiving Day", -2.833213344056216),
("March", -2.833213344056216), ("month", -2.833213344056216),
("Tuesday", -2.1400661634962708)],
n = 12},
[("Martin Luther King's Day", -2.1102132003465894),
("Halloween", -2.803360380906535),
("Boss's Day", -2.803360380906535),
("Monday", -2.3978952727983707), ("day", -1.0986122886681098),
("Thanksgiving Day", -2.803360380906535),
("March", -2.803360380906535), ("month", -2.803360380906535),
("Tuesday", -2.3978952727983707)],
n = 11},
koData =
ClassData{prior = -infinity, unseen = -2.3978952727983707,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.8718021769015913, unseen = -2.772588722239781,
likelihoods =
HashMap.fromList
[("Wednesday", -2.0149030205422647),
("Saturday", -2.0149030205422647),
("day", -1.6094379124341003)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3541,8 +3546,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3754,16 +3759,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -1594,11 +1594,11 @@ classifiers
n = 47}}),
("Saturday",
Classifier{okData =
ClassData{prior = -0.13353139262452263,
unseen = -2.1972245773362196,
likelihoods = HashMap.fromList [("", 0.0)], n = 7},
ClassData{prior = -0.11778303565638351,
unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [("", 0.0)], n = 8},
koData =
ClassData{prior = -2.0794415416798357,
ClassData{prior = -2.1972245773362196,
unseen = -1.0986122886681098,
likelihoods = HashMap.fromList [("", 0.0)], n = 1}}),
("the <cycle> of <time>",
@ -1765,11 +1765,11 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("Monday",
Classifier{okData =
ClassData{prior = -0.2231435513142097,
unseen = -3.0910424533583156,
likelihoods = HashMap.fromList [("", 0.0)], n = 20},
ClassData{prior = -0.21357410029805904,
unseen = -3.1354942159291497,
likelihoods = HashMap.fromList [("", 0.0)], n = 21},
koData =
ClassData{prior = -1.6094379124341003,
ClassData{prior = -1.6486586255873816,
unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [("", 0.0)], n = 5}}),
("dd/mm/yyyy",
@ -3278,20 +3278,24 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("next <time>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -3.4657359027997265,
ClassData{prior = -0.1823215567939546,
unseen = -3.4339872044851463,
likelihoods =
HashMap.fromList
[("Martin Luther King's Day", -2.0476928433652555),
("Halloween", -2.740840023925201),
("Wednesday", -2.740840023925201),
("Boss's Day", -2.740840023925201),
("Monday", -2.740840023925201), ("day", -1.0360919316867756),
("March", -2.740840023925201), ("month", -2.740840023925201),
("Tuesday", -2.0476928433652555)],
n = 11},
[("Martin Luther King's Day", -2.0149030205422647),
("Halloween", -2.70805020110221),
("Boss's Day", -2.70805020110221),
("Monday", -2.3025850929940455), ("day", -1.0986122886681098),
("March", -2.70805020110221), ("month", -2.70805020110221),
("Tuesday", -2.3025850929940455)],
n = 10},
koData =
ClassData{prior = -infinity, unseen = -2.3025850929940455,
likelihoods = HashMap.fromList [], n = 0}}),
ClassData{prior = -1.791759469228055, unseen = -2.70805020110221,
likelihoods =
HashMap.fromList
[("Wednesday", -1.9459101490553135),
("Saturday", -1.9459101490553135), ("day", -1.540445040947149)],
n = 2}}),
("<time-of-day> sharp|exactly",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.890371757896165,
@ -3491,8 +3495,8 @@ classifiers
n = 63}}),
("Tuesday",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.833213344056216,
likelihoods = HashMap.fromList [("", 0.0)], n = 15},
ClassData{prior = 0.0, unseen = -2.772588722239781,
likelihoods = HashMap.fromList [("", 0.0)], n = 14},
koData =
ClassData{prior = -infinity, unseen = -0.6931471805599453,
likelihoods = HashMap.fromList [], n = 0}}),
@ -3701,16 +3705,17 @@ classifiers
likelihoods = HashMap.fromList [], n = 0}}),
("this|next <day-of-week>",
Classifier{okData =
ClassData{prior = 0.0, unseen = -2.995732273553991,
ClassData{prior = 0.0, unseen = -3.1354942159291497,
likelihoods =
HashMap.fromList
[("Thursday", -2.2512917986064953),
("Wednesday", -2.2512917986064953),
("Monday", -1.845826690498331), ("day", -0.8649974374866046),
("Tuesday", -1.55814461804655)],
n = 7},
[("Thursday", -2.3978952727983707),
("Wednesday", -2.3978952727983707),
("Saturday", -2.3978952727983707),
("Monday", -1.7047480922384253), ("day", -0.8938178760220964),
("Tuesday", -1.9924301646902063)],
n = 8},
koData =
ClassData{prior = -infinity, unseen = -1.791759469228055,
ClassData{prior = -infinity, unseen = -1.9459101490553135,
likelihoods = HashMap.fromList [], n = 0}}),
("ordinal (digits)",
Classifier{okData =

View File

@ -402,10 +402,7 @@ allExamples = concat
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
[ "last tuesday"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "next tuesday"
]
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
, examples (datetime (2013, 2, 20, 0, 0, 0) Day)
[ "next wednesday"
]
, examples (datetime (2013, 2, 20, 0, 0, 0) Day)
@ -1920,4 +1917,8 @@ allExamples = concat
[
"second monday of last month"
]
, examples (datetime (2013, 2, 23, 0, 0, 0) Day)
[ "next saturday" ]
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
[ "next monday" ]
]

View File

@ -147,11 +147,19 @@ ruleNextDOW :: Rule
ruleNextDOW = Rule
{ name = "this|next <day-of-week>"
, pattern =
[ regex "this|next"
[ regex "(this|next)"
, Predicate isADayOfWeek
]
, prod = \tokens -> case tokens of
(_:Token Time td:_) -> tt $ predNth 0 True td
, prod = \case
(
Token RegexMatch (GroupMatch (match:_)):
Token Time dow:
_) -> do
td <- case Text.toLower match of
"this" -> Just $ predNth 0 True dow
"next" -> intersect dow $ cycleNth TG.Week 1
_ -> Nothing
tt td
_ -> Nothing
}