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.
|
|
|
|
|
|
|
|
|
|
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
|
|
|
|
module Duckling.Time.EN.Corpus
|
|
|
|
( corpus
|
|
|
|
, negativeCorpus
|
|
|
|
) where
|
|
|
|
|
|
|
|
import Prelude
|
|
|
|
import Data.String
|
|
|
|
|
|
|
|
import Duckling.Time.Corpus
|
|
|
|
import Duckling.Time.Types hiding (Month)
|
|
|
|
import Duckling.TimeGrain.Types hiding (add)
|
|
|
|
import Duckling.Testing.Types hiding (examples)
|
|
|
|
|
|
|
|
corpus :: Corpus
|
|
|
|
corpus = (testContext, allExamples)
|
|
|
|
|
|
|
|
negativeCorpus :: NegativeCorpus
|
|
|
|
negativeCorpus = (testContext, examples)
|
|
|
|
where
|
|
|
|
examples =
|
|
|
|
[ "laughing out loud"
|
|
|
|
, "1 adult"
|
|
|
|
, "we are separated"
|
|
|
|
, "25"
|
|
|
|
, "this is the one"
|
|
|
|
, "in 61"
|
|
|
|
]
|
|
|
|
|
|
|
|
allExamples :: [Example]
|
|
|
|
allExamples = concat
|
|
|
|
[ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
|
|
|
|
[ "now"
|
|
|
|
, "right now"
|
|
|
|
, "just now"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
|
|
|
[ "today"
|
|
|
|
, "at this time"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
|
|
|
["yesterday"]
|
|
|
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
|
|
|
[ "tomorrow"
|
|
|
|
, "tomorrows"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
|
|
|
[ "monday"
|
|
|
|
, "mon."
|
|
|
|
, "this monday"
|
|
|
|
, "Monday, Feb 18"
|
|
|
|
, "Mon, February 18"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
|
|
|
[ "tuesday"
|
|
|
|
, "Tuesday the 19th"
|
|
|
|
, "Tuesday 19th"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 8, 15, 0, 0, 0) Day)
|
|
|
|
[ "Thu 15th"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
|
|
|
[ "thursday"
|
|
|
|
, "thu"
|
|
|
|
, "thu."
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
|
|
|
[ "friday"
|
|
|
|
, "fri"
|
|
|
|
, "fri."
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 16, 0, 0, 0) Day)
|
|
|
|
[ "saturday"
|
|
|
|
, "sat"
|
|
|
|
, "sat."
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 17, 0, 0, 0) Day)
|
|
|
|
[ "sunday"
|
|
|
|
, "sun"
|
|
|
|
, "sun."
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Day)
|
|
|
|
[ "the 1st of march"
|
|
|
|
, "first of march"
|
|
|
|
, "march first"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 3, 0, 0, 0) Day)
|
|
|
|
["march 3"]
|
|
|
|
, examples (datetime (2013, 3, 15, 0, 0, 0) Day)
|
|
|
|
["the ides of march"]
|
|
|
|
, examples (datetime (2015, 3, 3, 0, 0, 0) Day)
|
|
|
|
[ "march 3 2015"
|
|
|
|
, "march 3rd 2015"
|
|
|
|
, "march third 2015"
|
|
|
|
, "3/3/2015"
|
|
|
|
, "3/3/15"
|
|
|
|
, "2015-3-3"
|
|
|
|
, "2015-03-03"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
|
|
|
[ "on the 15th"
|
|
|
|
, "the 15th of february"
|
|
|
|
, "15 of february"
|
|
|
|
, "february the 15th"
|
|
|
|
, "february 15"
|
|
|
|
, "15th february"
|
|
|
|
, "2/15"
|
|
|
|
, "on 2/15"
|
|
|
|
, "February 15"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 8, 8, 0, 0, 0) Day)
|
|
|
|
["Aug 8"]
|
|
|
|
, examples (datetime (2014, 7, 18, 0, 0, 0) Day)
|
|
|
|
[ "Fri, Jul 18"
|
|
|
|
, "Jul 18, Fri"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 10, 1, 0, 0, 0) Month)
|
|
|
|
["October 2014"]
|
|
|
|
, examples (datetime (1974, 10, 31, 0, 0, 0) Day)
|
|
|
|
[ "10/31/1974"
|
|
|
|
, "10/31/74"
|
|
|
|
, "10-31-74"
|
|
|
|
]
|
|
|
|
, examples (datetime (2015, 4, 14, 0, 0, 0) Day)
|
|
|
|
[ "14april 2015"
|
|
|
|
, "April 14, 2015"
|
|
|
|
, "14th April 15"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
|
|
|
[ "next tuesday"
|
|
|
|
, "around next tuesday"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 22, 0, 0, 0) Day)
|
|
|
|
["friday after next"]
|
|
|
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
|
|
|
["next March"]
|
|
|
|
, examples (datetime (2014, 3, 1, 0, 0, 0) Month)
|
|
|
|
["March after next"]
|
|
|
|
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
|
|
|
["Sunday, Feb 10"]
|
|
|
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
|
|
|
["Wed, Feb13"]
|
|
|
|
, examples (datetime (2013, 2, 11, 0, 0, 0) Week)
|
|
|
|
[ "this week"
|
|
|
|
, "current week"
|
|
|
|
, "coming week"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 4, 0, 0, 0) Week)
|
|
|
|
[ "last week"
|
|
|
|
, "past week"
|
|
|
|
, "previous week"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 18, 0, 0, 0) Week)
|
|
|
|
[ "next week"
|
|
|
|
, "the following week"
|
|
|
|
, "around next week"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 1, 1, 0, 0, 0) Month)
|
|
|
|
["last month"]
|
|
|
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
|
|
|
["next month"]
|
|
|
|
, examples (datetime (2013, 1, 1, 0, 0, 0) Quarter)
|
|
|
|
[ "this quarter"
|
|
|
|
, "this qtr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 4, 1, 0, 0, 0) Quarter)
|
|
|
|
[ "next quarter"
|
|
|
|
, "next qtr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 7, 1, 0, 0, 0) Quarter)
|
|
|
|
[ "third quarter"
|
|
|
|
, "3rd quarter"
|
|
|
|
, "third qtr"
|
|
|
|
, "3rd qtr"
|
|
|
|
, "the 3rd qtr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2018, 10, 1, 0, 0, 0) Quarter)
|
|
|
|
[ "4th quarter 2018"
|
|
|
|
, "4th qtr 2018"
|
|
|
|
, "the 4th qtr of 2018"
|
|
|
|
]
|
|
|
|
, examples (datetime (2012, 1, 1, 0, 0, 0) Year)
|
|
|
|
[ "last year"
|
|
|
|
, "last yr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 1, 1, 0, 0, 0) Year)
|
|
|
|
[ "this year"
|
|
|
|
, "current year"
|
|
|
|
, "this yr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
|
|
|
|
[ "next year"
|
|
|
|
, "next yr"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
|
|
|
[ "last sunday"
|
|
|
|
, "sunday from last week"
|
|
|
|
, "last week's sunday"
|
|
|
|
]
|
|
|
|
, 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)
|
|
|
|
["next wednesday"]
|
|
|
|
, examples (datetime (2013, 2, 20, 0, 0, 0) Day)
|
|
|
|
[ "wednesday of next week"
|
|
|
|
, "wednesday next week"
|
|
|
|
, "wednesday after next"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 22, 0, 0, 0) Day)
|
|
|
|
["friday after next"]
|
|
|
|
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
|
|
|
["monday of this week"]
|
|
|
|
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
|
|
|
["tuesday of this week"]
|
|
|
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
|
|
|
["wednesday of this week"]
|
|
|
|
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
|
|
|
["the day after tomorrow"]
|
|
|
|
, examples (datetime (2013, 2, 14, 17, 0, 0) Hour)
|
|
|
|
[ "day after tomorrow 5pm"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
|
|
|
["the day before yesterday"]
|
|
|
|
, examples (datetime (2013, 2, 10, 8, 0, 0) Hour)
|
|
|
|
[ "day before yesterday 8am"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 25, 0, 0, 0) Day)
|
|
|
|
["last Monday of March"]
|
|
|
|
, examples (datetime (2014, 3, 30, 0, 0, 0) Day)
|
|
|
|
["last Sunday of March 2014"]
|
|
|
|
, examples (datetime (2013, 10, 3, 0, 0, 0) Day)
|
|
|
|
["third day of october"]
|
|
|
|
, examples (datetime (2014, 10, 6, 0, 0, 0) Week)
|
|
|
|
["first week of october 2014"]
|
|
|
|
, examples (datetime (2013, 10, 7, 0, 0, 0) Week)
|
|
|
|
["the week of october 6th"]
|
|
|
|
, examples (datetime (2013, 10, 7, 0, 0, 0) Week)
|
|
|
|
["the week of october 7th"]
|
|
|
|
, examples (datetime (2015, 10, 31, 0, 0, 0) Day)
|
|
|
|
[ "last day of october 2015"
|
|
|
|
, "last day in october 2015"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 9, 22, 0, 0, 0) Week)
|
|
|
|
["last week of september 2014"]
|
|
|
|
, examples (datetime (2013, 10, 1, 0, 0, 0) Day)
|
|
|
|
[ "first tuesday of october"
|
|
|
|
, "first tuesday in october"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 9, 16, 0, 0, 0) Day)
|
|
|
|
["third tuesday of september 2014"]
|
|
|
|
, examples (datetime (2014, 10, 1, 0, 0, 0) Day)
|
|
|
|
["first wednesday of october 2014"]
|
|
|
|
, examples (datetime (2014, 10, 8, 0, 0, 0) Day)
|
|
|
|
["second wednesday of october 2014"]
|
|
|
|
, examples (datetime (2015, 1, 13, 0, 0, 0) Day)
|
|
|
|
["third tuesday after christmas 2014"]
|
|
|
|
, examples (datetime (2013, 2, 13, 3, 0, 0) Hour)
|
|
|
|
[ "at 3am"
|
|
|
|
, "3 in the AM"
|
|
|
|
, "at 3 AM"
|
|
|
|
, "3 oclock am"
|
|
|
|
, "at three am"
|
|
|
|
]
|
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
|
|
|
, examples (datetime (2013, 2, 13, 3, 18, 0) Minute)
|
2017-03-08 21:33:55 +03:00
|
|
|
[ "3:18am"
|
|
|
|
, "3:18a"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
|
|
|
|
[ "at 3pm"
|
|
|
|
, "@ 3pm"
|
|
|
|
, "3PM"
|
|
|
|
, "3pm"
|
|
|
|
, "3 oclock pm"
|
|
|
|
, "3 o'clock in the afternoon"
|
|
|
|
, "3ish pm"
|
|
|
|
, "3pm approximately"
|
|
|
|
, "at about 3pm"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 15, 15, 0) Minute)
|
|
|
|
[ "at 15 past 3pm"
|
|
|
|
, "a quarter past 3pm"
|
|
|
|
, "3:15 in the afternoon"
|
|
|
|
, "15:15"
|
|
|
|
, "3:15pm"
|
|
|
|
, "3:15PM"
|
|
|
|
, "3:15p"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 15, 20, 0) Minute)
|
|
|
|
[ "at 20 past 3pm"
|
|
|
|
, "3:20 in the afternoon"
|
|
|
|
, "3:20 in afternoon"
|
|
|
|
, "twenty after 3pm"
|
|
|
|
, "3:20p"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 15, 30, 0) Minute)
|
|
|
|
[ "at half past three pm"
|
|
|
|
, "half past 3 pm"
|
|
|
|
, "15:30"
|
|
|
|
, "3:30pm"
|
|
|
|
, "3:30PM"
|
|
|
|
, "330 p.m."
|
|
|
|
, "3:30 p m"
|
|
|
|
, "3:30"
|
|
|
|
, "half three"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 15, 23, 24) Second)
|
|
|
|
["15:23:24"]
|
|
|
|
, examples (datetime (2013, 2, 12, 11, 45, 0) Minute)
|
|
|
|
[ "a quarter to noon"
|
|
|
|
, "11:45am"
|
|
|
|
, "15 to noon"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 20, 0, 0) Hour)
|
|
|
|
[ "8 tonight"
|
|
|
|
, "eight tonight"
|
|
|
|
, "8 this evening"
|
|
|
|
, "at 8 in the evening"
|
|
|
|
, "in the evening at eight"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 9, 20, 19, 30, 0) Minute)
|
|
|
|
["at 7:30 PM on Fri, Sep 20"]
|
|
|
|
, examples (datetime (2013, 2, 16, 9, 0, 0) Hour)
|
|
|
|
["at 9am on Saturday"]
|
|
|
|
, examples (datetime (2013, 2, 16, 9, 0, 0) Hour)
|
|
|
|
["on Saturday for 9am"]
|
|
|
|
, examples (datetime (2014, 7, 18, 19, 0, 0) Minute)
|
|
|
|
["Fri, Jul 18, 2014 07:00 PM"]
|
|
|
|
, examples (datetime (2013, 2, 12, 4, 30, 1) Second)
|
|
|
|
[ "in a sec"
|
|
|
|
, "one second from now"
|
|
|
|
, "in 1\""
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 4, 31, 0) Second)
|
|
|
|
[ "in a minute"
|
|
|
|
, "in one minute"
|
|
|
|
, "in 1'"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 4, 32, 0) Second)
|
|
|
|
[ "in 2 minutes"
|
|
|
|
, "in 2 more minutes"
|
|
|
|
, "2 minutes from now"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 5, 30, 0) Second)
|
|
|
|
["in 60 minutes"]
|
|
|
|
, examples (datetime (2013, 2, 12, 4, 45, 0) Second)
|
|
|
|
[ "in a quarter of an hour"
|
|
|
|
, "in 1/4h"
|
|
|
|
, "in 1/4 h"
|
|
|
|
, "in 1/4 hour"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 5, 0, 0) Second)
|
|
|
|
[ "in half an hour"
|
|
|
|
, "in 1/2h"
|
|
|
|
, "in 1/2 h"
|
|
|
|
, "in 1/2 hour"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 5, 15, 0) Second)
|
|
|
|
[ "in three-quarters of an hour"
|
|
|
|
, "in 3/4h"
|
|
|
|
, "in 3/4 h"
|
|
|
|
, "in 3/4 hour"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 7, 0, 0) Second)
|
|
|
|
[ "in 2.5 hours"
|
|
|
|
, "in 2 and an half hours"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 5, 30, 0) Minute)
|
|
|
|
[ "in one hour"
|
|
|
|
, "in 1h"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 6, 30, 0) Minute)
|
|
|
|
[ "in a couple hours"
|
|
|
|
, "in a couple of hours"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 7, 30, 0) Minute)
|
|
|
|
[ "in a few hours"
|
|
|
|
, "in few hours"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 13, 4, 30, 0) Minute)
|
|
|
|
["in 24 hours"]
|
|
|
|
, examples (datetime (2013, 2, 13, 4, 0, 0) Hour)
|
|
|
|
[ "in a day"
|
|
|
|
, "a day from now"
|
|
|
|
]
|
|
|
|
, examples (datetime (2016, 2, 1, 0, 0, 0) Month)
|
|
|
|
["3 years from today"]
|
|
|
|
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
|
|
|
|
["in 7 days"]
|
|
|
|
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
|
|
|
[ "in 1 week"
|
|
|
|
, "in a week"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 5, 0, 0) Second)
|
|
|
|
["in about half an hour"]
|
|
|
|
, examples (datetime (2013, 2, 5, 4, 0, 0) Hour)
|
|
|
|
["7 days ago"]
|
|
|
|
, examples (datetime (2013, 1, 29, 4, 0, 0) Hour)
|
|
|
|
[ "14 days Ago"
|
|
|
|
, "a fortnight ago"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
|
|
|
|
[ "a week ago"
|
|
|
|
, "one week ago"
|
|
|
|
, "1 week ago"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 1, 22, 0, 0, 0) Day)
|
|
|
|
["three weeks ago"]
|
|
|
|
, examples (datetime (2012, 11, 12, 0, 0, 0) Day)
|
|
|
|
["three months ago"]
|
|
|
|
, examples (datetime (2011, 2, 1, 0, 0, 0) Month)
|
|
|
|
["two years ago"]
|
|
|
|
, examples (datetime (1954, 1, 1, 0, 0, 0) Year)
|
|
|
|
["1954"]
|
|
|
|
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
|
|
|
|
["7 days hence"]
|
|
|
|
, examples (datetime (2013, 2, 26, 4, 0, 0) Hour)
|
|
|
|
[ "14 days hence"
|
|
|
|
, "a fortnight hence"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
|
|
|
[ "a week hence"
|
|
|
|
, "one week hence"
|
|
|
|
, "1 week hence"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 5, 0, 0, 0) Day)
|
|
|
|
["three weeks hence"]
|
|
|
|
, examples (datetime (2013, 5, 12, 0, 0, 0) Day)
|
|
|
|
["three months hence"]
|
|
|
|
, examples (datetime (2015, 2, 1, 0, 0, 0) Month)
|
|
|
|
["two years hence"]
|
|
|
|
, examples (datetime (2013, 12, 1, 0, 0, 0) Month)
|
|
|
|
[ "one year After christmas"
|
|
|
|
, "a year from Christmas"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
|
|
|
|
[ "this Summer"
|
|
|
|
, "current summer"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)
|
|
|
|
["this winter"]
|
|
|
|
, examples (datetime (2013, 12, 25, 0, 0, 0) Day)
|
|
|
|
[ "xmas"
|
|
|
|
, "christmas"
|
|
|
|
, "christmas day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 12, 31, 0, 0, 0) Day)
|
|
|
|
[ "new year's eve"
|
|
|
|
, "new years eve"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 1, 1, 0, 0, 0) Day)
|
|
|
|
[ "new year's day"
|
|
|
|
, "new years day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
|
|
|
[ "valentine's day"
|
|
|
|
, "valentine day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 5, 12, 0, 0, 0) Day)
|
|
|
|
[ "Mother's Day"
|
|
|
|
, "next mothers day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2012, 5, 13, 0, 0, 0) Day)
|
|
|
|
["last mothers day"]
|
|
|
|
, examples (datetime (2014, 5, 11, 0, 0, 0) Day)
|
|
|
|
["mothers day 2014"]
|
|
|
|
, examples (datetime (2013, 6, 16, 0, 0, 0) Day)
|
|
|
|
["Father's Day"]
|
|
|
|
, examples (datetime (2012, 6, 17, 0, 0, 0) Day)
|
|
|
|
["last fathers day"]
|
|
|
|
, examples (datetime (1996, 6, 16, 0, 0, 0) Day)
|
|
|
|
["fathers day 1996"]
|
|
|
|
, examples (datetime (2013, 5, 27, 0, 0, 0) Day)
|
|
|
|
[ "memorial day"
|
|
|
|
, "Next Memorial Day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2012, 5, 28, 0, 0, 0) Day)
|
|
|
|
[ "last memorial day"
|
|
|
|
, "memorial day of last year"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 5, 24, 18, 0, 0), (2013, 5, 28, 0, 0, 0)) Hour)
|
|
|
|
["memorial day week-end"]
|
|
|
|
, examples (datetime (2013, 7, 4, 0, 0, 0) Day)
|
|
|
|
[ "independence day"
|
|
|
|
, "4th of July"
|
|
|
|
, "4 of july"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 9, 2, 0, 0, 0) Day)
|
|
|
|
["labor day"]
|
|
|
|
, examples (datetime (2012, 9, 3, 0, 0, 0) Day)
|
|
|
|
[ "labor day of last year"
|
|
|
|
, "Labor Day 2012"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 8, 30, 18, 0, 0), (2013, 9, 3, 0, 0, 0)) Hour)
|
|
|
|
["labor day weekend"]
|
|
|
|
, examples (datetime (2013, 10, 31, 0, 0, 0) Day)
|
|
|
|
[ "halloween"
|
|
|
|
, "next halloween"
|
|
|
|
, "Halloween 2013"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 11, 28, 0, 0, 0) Day)
|
|
|
|
[ "thanksgiving day"
|
|
|
|
, "thanksgiving"
|
|
|
|
, "thanksgiving 2013"
|
|
|
|
, "this thanksgiving"
|
|
|
|
, "next thanksgiving day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2014, 11, 27, 0, 0, 0) Day)
|
|
|
|
[ "thanksgiving of next year"
|
|
|
|
, "thanksgiving 2014"
|
|
|
|
]
|
|
|
|
{- FIXME (jodent) Doesn't work in Duckling either. t13908315
|
|
|
|
, examples (datetime (2012, 11, 22, 0, 0, 0) Day)
|
|
|
|
[ "last thanksgiving"
|
|
|
|
, "thanksgiving day 2012"
|
|
|
|
]
|
|
|
|
, examples (datetime (2016, 11, 24, 0, 0, 0) Day)
|
|
|
|
["thanksgiving 2016"]-}
|
|
|
|
, examples (datetime (2014, 1, 20, 0, 0, 0) Day)
|
|
|
|
[ "MLK day"
|
|
|
|
, "next Martin Luther King day"
|
|
|
|
, "this MLK day"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 1, 21, 0, 0, 0) Day)
|
|
|
|
[ "last MLK day"
|
|
|
|
, "MLK day 2013"
|
|
|
|
]
|
|
|
|
, examples (datetime (2012, 1, 16, 0, 0, 0) Day)
|
|
|
|
[ "MLK day of last year"
|
|
|
|
, "MLK day 2012"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)
|
|
|
|
[ "this evening"
|
|
|
|
, "today evening"
|
|
|
|
, "tonight"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 8, 18, 0, 0), (2013, 2, 11, 0, 0, 0)) Hour)
|
|
|
|
["this past weekend"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour)
|
|
|
|
["tomorrow evening"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 12, 0, 0), (2013, 2, 13, 14, 0, 0)) Hour)
|
|
|
|
[ "tomorrow lunch"
|
|
|
|
, "tomorrow at lunch"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)
|
|
|
|
["yesterday evening"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour)
|
|
|
|
["this week-end"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 12, 0, 0)) Hour)
|
|
|
|
["monday mOrnIng"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 18, 4, 0, 0), (2013, 2, 18, 9, 0, 0)) Hour)
|
|
|
|
[ "monday early in the morning"
|
|
|
|
, "monday early morning"
|
|
|
|
, "monday in the early hours of the morning"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 15, 4, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour)
|
|
|
|
[ "february the 15th in the morning"
|
|
|
|
, "15 of february in the morning"
|
|
|
|
, "morning of the 15th of february"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 29, 58), (2013, 2, 12, 4, 30, 0)) Second)
|
|
|
|
[ "last 2 seconds"
|
|
|
|
, "last two seconds"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 1), (2013, 2, 12, 4, 30, 4)) Second)
|
|
|
|
[ "next 3 seconds"
|
|
|
|
, "next three seconds"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 28, 0), (2013, 2, 12, 4, 30, 0)) Minute)
|
|
|
|
[ "last 2 minutes"
|
|
|
|
, "last two minutes"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 31, 0), (2013, 2, 12, 4, 34, 0)) Minute)
|
|
|
|
[ "next 3 minutes"
|
|
|
|
, "next three minutes"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 3, 0, 0), (2013, 2, 12, 4, 0, 0)) Hour)
|
|
|
|
[ "last 1 hour"
|
|
|
|
, "last one hour"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 5, 0, 0), (2013, 2, 12, 8, 0, 0)) Hour)
|
|
|
|
[ "next 3 hours"
|
|
|
|
, "next three hours"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 10, 0, 0, 0), (2013, 2, 12, 0, 0, 0)) Day)
|
|
|
|
[ "last 2 days"
|
|
|
|
, "last two days"
|
|
|
|
, "past 2 days"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day)
|
|
|
|
[ "next 3 days"
|
|
|
|
, "next three days"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day)
|
|
|
|
["next few days"]
|
|
|
|
, examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week)
|
|
|
|
[ "last 2 weeks"
|
|
|
|
, "last two weeks"
|
|
|
|
, "past 2 weeks"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 3, 11, 0, 0, 0)) Week)
|
|
|
|
[ "next 3 weeks"
|
|
|
|
, "next three weeks"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2012, 12, 1, 0, 0, 0), (2013, 2, 1, 0, 0, 0)) Month)
|
|
|
|
[ "last 2 months"
|
|
|
|
, "last two months"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 3, 1, 0, 0, 0), (2013, 6, 1, 0, 0, 0)) Month)
|
|
|
|
[ "next 3 months"
|
|
|
|
, "next three months"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2011, 1, 1, 0, 0, 0), (2013, 1, 1, 0, 0, 0)) Year)
|
|
|
|
[ "last 2 years"
|
|
|
|
, "last two years"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2014, 1, 1, 0, 0, 0), (2017, 1, 1, 0, 0, 0)) Year)
|
|
|
|
[ "next 3 years"
|
|
|
|
, "next three years"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 7, 13, 0, 0, 0), (2013, 7, 16, 0, 0, 0)) Day)
|
|
|
|
[ "July 13-15"
|
|
|
|
, "July 13 to 15"
|
|
|
|
, "July 13 thru 15"
|
|
|
|
, "July 13 through 15"
|
|
|
|
, "July 13 - July 15"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 8, 8, 0, 0, 0), (2013, 8, 13, 0, 0, 0)) Day)
|
|
|
|
["Aug 8 - Aug 12"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 9, 30, 0), (2013, 2, 12, 11, 1, 0)) Minute)
|
|
|
|
["9:30 - 11:00"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 14, 9, 30, 0), (2013, 2, 14, 11, 1, 0)) Minute)
|
|
|
|
[ "from 9:30 - 11:00 on Thursday"
|
|
|
|
, "between 9:30 and 11:00 on thursday"
|
|
|
|
, "between 9:30 and 11:00 on thursday"
|
|
|
|
, "between 9:30 and 11:00 on thursday"
|
|
|
|
, "9:30 - 11:00 on Thursday"
|
|
|
|
, "later than 9:30 but before 11:00 on Thursday"
|
|
|
|
, "Thursday from 9:30 to 11:00"
|
|
|
|
, "from 9:30 untill 11:00 on thursday"
|
|
|
|
, "Thursday from 9:30 untill 11:00"
|
|
|
|
, "9:30 till 11:00 on Thursday"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 1, 0, 0), (2013, 2, 13, 2, 31, 0)) Minute)
|
|
|
|
[ "tomorrow in between 1-2:30 ish"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour)
|
|
|
|
[ "3-4pm"
|
|
|
|
, "from 3 to 4 in the PM"
|
|
|
|
, "around 3-4pm"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 15, 30, 0), (2013, 2, 12, 19, 0, 0)) Minute)
|
|
|
|
[ "3:30 to 6 PM"
|
|
|
|
, "3:30-6 p.m."
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 14, 0, 0)) Hour)
|
|
|
|
[ "8am - 1pm"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 14, 9, 0, 0), (2013, 2, 14, 12, 0, 0)) Hour)
|
|
|
|
[ "Thursday from 9a to 11a"
|
|
|
|
, "this Thu 9-11am"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 11, 30, 0), (2013, 2, 12, 13, 31, 0)) Minute)
|
|
|
|
["11:30-1:30"]
|
|
|
|
, examples (datetime (2013, 9, 21, 13, 30, 0) Minute)
|
|
|
|
["1:30 PM on Sat, Sep 21"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 26, 0, 0, 0)) Second)
|
|
|
|
["Within 2 weeks"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 12, 14, 0, 0)) Second)
|
|
|
|
["by 2:00pm"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 13, 0, 0, 0)) Second)
|
|
|
|
["by EOD"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 3, 1, 0, 0, 0)) Second)
|
|
|
|
["by EOM"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 4, 1, 0, 0, 0)) Second)
|
|
|
|
["by the end of next month"]
|
|
|
|
, examples (datetime (2013, 2, 12, 13, 0, 0) Minute)
|
|
|
|
[ "4pm CET"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 14, 6, 0, 0) Minute)
|
|
|
|
[ "Thursday 8:00 GMT"
|
|
|
|
, "Thu at 8 GMT"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 14, 0, 0) Hour)
|
|
|
|
[ "today at 2pm"
|
|
|
|
, "at 2pm"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 4, 25, 16, 0, 0) Minute)
|
|
|
|
["4/25 at 4:00pm"]
|
|
|
|
, examples (datetime (2013, 2, 13, 15, 0, 0) Hour)
|
|
|
|
[ "3pm tomorrow"
|
|
|
|
]
|
|
|
|
, examples (datetimeOpenInterval Before (2013, 2, 12, 14, 0, 0) Minute)
|
|
|
|
[ "until 2:00pm"
|
|
|
|
, "through 2:00pm"
|
|
|
|
]
|
|
|
|
, examples (datetimeOpenInterval After (2013, 2, 12, 14, 0, 0) Hour)
|
|
|
|
["after 2 pm"]
|
|
|
|
, examples (datetimeOpenInterval After (2013, 2, 17, 4, 0, 0) Hour)
|
|
|
|
["after 5 days"]
|
|
|
|
, examples (datetimeOpenInterval Before (2013, 2, 12, 11, 0, 0) Hour)
|
|
|
|
["before 11 am"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour)
|
|
|
|
["in the afternoon"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 19, 0, 0)) Hour)
|
|
|
|
[ "8am until 6"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 13, 30, 0) Minute)
|
|
|
|
[ "at 1:30pm"
|
|
|
|
, "1:30pm"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 4, 45, 0) Second)
|
|
|
|
[ "in 15 minutes"
|
|
|
|
, "in 15'"
|
|
|
|
, "in 15"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 13, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour)
|
|
|
|
["after lunch"]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 21, 0, 0)) Hour)
|
|
|
|
[ "after school"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 10, 30, 0) Minute)
|
|
|
|
[ "10:30"
|
|
|
|
, "approximately 1030"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 12, 4, 0, 0), (2013, 2, 12, 12, 0, 0)) Hour)
|
|
|
|
["this morning"]
|
|
|
|
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
|
|
|
["next monday"]
|
|
|
|
, examples (datetime (2013, 2, 12, 12, 0, 0) Hour)
|
|
|
|
[ "at 12pm"
|
|
|
|
, "at noon"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Hour)
|
|
|
|
[ "at 12am"
|
|
|
|
, "at midnight"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
|
|
|
[ "March"
|
|
|
|
, "in March"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 13, 17, 0, 0) Hour)
|
|
|
|
[ "tomorrow afternoon at 5"
|
|
|
|
, "at 5 tomorrow afternoon"
|
|
|
|
, "at 5pm tomorrow"
|
|
|
|
, "tomorrow at 5pm"
|
|
|
|
]
|
|
|
|
, examples (datetimeInterval ((2013, 2, 13, 13, 0, 0), (2013, 2, 13, 15, 0, 0)) Hour)
|
|
|
|
[ "1pm-2pm tomorrow"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Day)
|
|
|
|
[ "on the first"
|
|
|
|
, "the 1st"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 10, 30, 0) Minute)
|
|
|
|
[ "at 1030"
|
|
|
|
, "around 1030"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 19, 30, 0) Minute)
|
|
|
|
[ "at 730 in the evening"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 13, 1, 50, 0) Minute)
|
|
|
|
[ "tomorrow at 150ish"
|
|
|
|
]
|
|
|
|
, examples (datetime (2013, 2, 12, 23, 0, 0) Hour)
|
|
|
|
[ "tonight at 11"
|
|
|
|
]
|
2017-04-06 20:50:34 +03:00
|
|
|
, examples (datetime (2013, 2, 12, 4, 23, 0) Minute)
|
|
|
|
-- yes, the result is in the past, we may need to revisit
|
|
|
|
[ "at 4:23"
|
|
|
|
, "4:23am"
|
|
|
|
]
|
2017-03-08 21:33:55 +03:00
|
|
|
]
|