mirror of
https://github.com/facebook/duckling.git
synced 2024-09-11 21:27:13 +03:00
Support Dutch dates and times
Summary: [Duckling][Time][NL] Support Dutch dates and times Reviewed By: patapizza Differential Revision: D6090294 fbshipit-source-id: 54b8729
This commit is contained in:
parent
3fa0988fcd
commit
1ade1935b2
@ -18,5 +18,6 @@ allDimensions =
|
||||
, This Duration
|
||||
, This Numeral
|
||||
, This Ordinal
|
||||
, This Time
|
||||
, This Volume
|
||||
]
|
||||
|
@ -55,9 +55,21 @@ allExamples = concat
|
||||
, "2 m"
|
||||
, "2'"
|
||||
]
|
||||
, examples (DurationData 45 Minute)
|
||||
[ "3 kwartier"
|
||||
]
|
||||
, examples (DurationData 1 Hour)
|
||||
[ "een uur"
|
||||
, "één uur"
|
||||
, "1 u"
|
||||
, "1 h"
|
||||
]
|
||||
, examples (DurationData 30 Day)
|
||||
[ "30 dagen"
|
||||
]
|
||||
, examples (DurationData 7 Day)
|
||||
[ "7 dagen"
|
||||
]
|
||||
, examples (DurationData 7 Week)
|
||||
[ "zeven weken"
|
||||
, "7 w"
|
||||
@ -68,7 +80,7 @@ allExamples = concat
|
||||
, "één maand"
|
||||
]
|
||||
, examples (DurationData 3 Quarter)
|
||||
[ "drie kwartier"
|
||||
[ "drie kwartalen"
|
||||
]
|
||||
, examples (DurationData 2 Year)
|
||||
[ "2 jaar"
|
||||
@ -76,8 +88,8 @@ allExamples = concat
|
||||
, "twee jaren"
|
||||
, "2 j"
|
||||
]
|
||||
, examples (DurationData 150 Minute)
|
||||
[ "twee en een half uur"
|
||||
, "2,5 uur"
|
||||
]
|
||||
, examples (DurationData 150 Minute)
|
||||
[ "twee en een half uur"
|
||||
, "2,5 uur"
|
||||
]
|
||||
]
|
||||
|
@ -29,10 +29,23 @@ import qualified Duckling.TimeGrain.Types as TG
|
||||
ruleDurationQuarterOfAnHour :: Rule
|
||||
ruleDurationQuarterOfAnHour = Rule
|
||||
{ name = "quarter of an hour"
|
||||
, pattern = [ regex "1/4\\s?uur"]
|
||||
, pattern = [ regex "1/4\\s?(h|u(ur)?)|kwartier"]
|
||||
, prod = \_ -> Just . Token Duration $ duration TG.Minute 15
|
||||
}
|
||||
|
||||
ruleDurationKwartier :: Rule
|
||||
ruleDurationKwartier = Rule
|
||||
{ name = "<integer> kwartier"
|
||||
, pattern =
|
||||
[ Predicate isNatural
|
||||
, regex "kwartier"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Numeral (NumeralData {TNumeral.value = v}):_) ->
|
||||
Just . Token Duration . duration TG.Minute $ 15 * floor v
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDurationHalfAnHour :: Rule
|
||||
ruleDurationHalfAnHour = Rule
|
||||
{ name = "half an hour"
|
||||
@ -105,6 +118,7 @@ ruleDurationPrecision = Rule
|
||||
rules :: [Rule]
|
||||
rules =
|
||||
[ ruleDurationQuarterOfAnHour
|
||||
, ruleDurationKwartier
|
||||
, ruleDurationHalfAnHour
|
||||
, ruleDurationThreeQuartersOfAnHour
|
||||
, ruleDurationDotNumeralHours
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -22,6 +22,7 @@ import qualified Duckling.Distance.NL.Rules as Distance
|
||||
import qualified Duckling.Duration.NL.Rules as Duration
|
||||
import qualified Duckling.Numeral.NL.Rules as Numeral
|
||||
import qualified Duckling.Ordinal.NL.Rules as Ordinal
|
||||
import qualified Duckling.Time.NL.Rules as Time
|
||||
import qualified Duckling.TimeGrain.NL.Rules as TimeGrain
|
||||
import qualified Duckling.Volume.NL.Rules as Volume
|
||||
|
||||
@ -42,7 +43,7 @@ langRules (This PhoneNumber) = []
|
||||
langRules (This Quantity) = []
|
||||
langRules (This RegexMatch) = []
|
||||
langRules (This Temperature) = []
|
||||
langRules (This Time) = []
|
||||
langRules (This Time) = Time.rules
|
||||
langRules (This TimeGrain) = TimeGrain.rules
|
||||
langRules (This Url) = []
|
||||
langRules (This Volume) = Volume.rules
|
||||
|
632
Duckling/Time/NL/Corpus.hs
Normal file
632
Duckling/Time/NL/Corpus.hs
Normal file
@ -0,0 +1,632 @@
|
||||
-- Copyright (c) 2016-present, Facebook, Inc.
|
||||
-- All rights reserved.
|
||||
--
|
||||
-- This source code is licensed under the BSD-style license found in the
|
||||
-- LICENSE file in the root directory of this source tree. An additional grant
|
||||
-- of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module Duckling.Time.NL.Corpus
|
||||
( corpus
|
||||
, negativeCorpus
|
||||
) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
|
||||
import Duckling.Locale
|
||||
import Duckling.Resolve
|
||||
import Duckling.Testing.Types hiding (examples)
|
||||
import Duckling.Time.Corpus
|
||||
import Duckling.Time.Types hiding (Month)
|
||||
import Duckling.TimeGrain.Types hiding (add)
|
||||
|
||||
corpus :: Corpus
|
||||
corpus = (testContext {locale = makeLocale NL Nothing}, allExamples)
|
||||
|
||||
negativeCorpus :: NegativeCorpus
|
||||
negativeCorpus = (testContext {locale = makeLocale NL Nothing}, examples)
|
||||
where
|
||||
examples =
|
||||
[ "een hotel"
|
||||
, "twee aanbiedingen"
|
||||
, "komende 5 agendapunten"
|
||||
]
|
||||
|
||||
allExamples :: [Example]
|
||||
allExamples = concat
|
||||
[ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
|
||||
[ "nu"
|
||||
, "direct"
|
||||
, "zojuist"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
||||
[ "vandaag"
|
||||
, "op deze dag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
||||
[ "gisteren"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||
[ "morgen"
|
||||
]
|
||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
||||
[ "maandag"
|
||||
, "ma."
|
||||
, "volgende week maandag"
|
||||
, "komende maandag"
|
||||
, "aanstaande maandag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
||||
[ "Maandag, 18 Feb"
|
||||
, "maandag, 18 februari"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
||||
[ "dinsdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
||||
[ "donderdag"
|
||||
, "do"
|
||||
, "do."
|
||||
]
|
||||
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
||||
[ "vrijdag"
|
||||
, "vr."
|
||||
]
|
||||
, examples (datetime (2013, 2, 16, 0, 0, 0) Day)
|
||||
[ "zaterdag"
|
||||
, "za."
|
||||
]
|
||||
, examples (datetime (2013, 2, 17, 0, 0, 0) Day)
|
||||
[ "zondag"
|
||||
, "zo."
|
||||
]
|
||||
, examples (datetime (2013, 3, 1, 0, 0, 0) Day)
|
||||
[ "1 maart"
|
||||
, "op de eerste"
|
||||
]
|
||||
, examples (datetime (2013, 3, 3, 0, 0, 0) Day)
|
||||
[ "3 maart"
|
||||
]
|
||||
, examples (datetime (2015, 3, 3, 0, 0, 0) Day)
|
||||
[ "3 maart 2015"
|
||||
]
|
||||
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
||||
[ "op de 15de"
|
||||
]
|
||||
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
||||
[ "15 februari"
|
||||
, "februari 15"
|
||||
, "op de 15de februari"
|
||||
, "15-2"
|
||||
, "op 15-2"
|
||||
]
|
||||
, examples (datetime (2013, 8, 8, 0, 0, 0) Day)
|
||||
[ "Aug 8"
|
||||
, "8 augustus"
|
||||
]
|
||||
, examples (datetime (2014, 10, 0, 0, 0, 0) Month)
|
||||
[ "Oktober 2014"
|
||||
]
|
||||
, examples (datetime (1974, 10, 31, 0, 0, 0) Day)
|
||||
[ "31.10.1974"
|
||||
, "31.10.74"
|
||||
, "31-10-1974"
|
||||
, "31-10-74"
|
||||
]
|
||||
, examples (datetime (2015, 4, 14, 0, 0, 0) Day)
|
||||
[ "14 april 2015"
|
||||
, "April 14, 2015"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
||||
[ "volgende week dinsdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 22, 0, 0, 0) Day)
|
||||
[ "volgende week vrijdag"
|
||||
]
|
||||
, examples (datetime (2013, 3, 0, 0, 0, 0) Month)
|
||||
[ "maart"
|
||||
]
|
||||
, examples (datetime (2014, 3, 0, 0, 0, 0) Month)
|
||||
[ "volgend jaar maart"
|
||||
]
|
||||
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
||||
[ "zondag, feb 10"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||
[ "woensdag, 13 februari"
|
||||
]
|
||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
||||
[ "Maandag feb 18"
|
||||
, "Maandag 18 februari"
|
||||
]
|
||||
, examples (datetime (2013, 2, 11, 0, 0, 0) Week)
|
||||
[ "Deze week"
|
||||
]
|
||||
, examples (datetime (2013, 2, 4, 0, 0, 0) Week)
|
||||
[ "vorige week"
|
||||
]
|
||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Week)
|
||||
[ "volgende week"
|
||||
]
|
||||
, examples (datetime (2013, 1, 0, 0, 0, 0) Month)
|
||||
[ "vorige maand"
|
||||
]
|
||||
, examples (datetime (2013, 3, 0, 0, 0, 0) Month)
|
||||
[ "volgende maand"
|
||||
]
|
||||
, examples (datetime (2013, 1, 1, 0, 0, 0) Quarter)
|
||||
[ "dit kwartaal"
|
||||
]
|
||||
, examples (datetime (2013, 4, 1, 0, 0, 0) Quarter)
|
||||
[ "volgende kwartaal"
|
||||
]
|
||||
, examples (datetime (2013, 7, 1, 0, 0, 0) Quarter)
|
||||
[ "derde kwartaal"
|
||||
]
|
||||
, examples (datetime (2018, 10, 1, 0, 0, 0) Quarter)
|
||||
[ "4de kwartaal 2018"
|
||||
]
|
||||
, examples (datetime (2012, 0, 0, 0, 0, 0) Year)
|
||||
[ "vorig jaar"
|
||||
]
|
||||
, examples (datetime (2013, 0, 0, 0, 0, 0) Year)
|
||||
[ "dit jaar"
|
||||
]
|
||||
, examples (datetime (2014, 0, 0, 0, 0, 0) Year)
|
||||
[ "volgend jaar"
|
||||
]
|
||||
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
||||
[ "afgelopen zondag"
|
||||
, "vorige week zondag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
|
||||
[ "vorige dinsdag"
|
||||
, "afgelopen dinsdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
||||
[ "dinsdag over een week"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||
[ "komende woensdag"
|
||||
, "woensdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 20, 0, 0, 0) Day)
|
||||
[ "volgende week woensdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
||||
[ "deze week maandag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
||||
[ "dinsdag deze week"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||
[ "deze week woensdag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
||||
[ "overmorgen"
|
||||
]
|
||||
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
||||
[ "eergisteren"
|
||||
]
|
||||
, examples (datetime (2013, 3, 25, 0, 0, 0) Day)
|
||||
[ "laatste maandag in maart"
|
||||
]
|
||||
, examples (datetime (2014, 3, 30, 0, 0, 0) Day)
|
||||
[ "laatste zondag van maart 2014"
|
||||
]
|
||||
, examples (datetime (2013, 10, 3, 0, 0, 0) Day)
|
||||
[ "derde dag in oktober"
|
||||
]
|
||||
, examples (datetime (2014, 10, 6, 0, 0, 0) Week)
|
||||
[ "eerste week in oktober 2014"
|
||||
]
|
||||
, examples (datetime (2015, 10, 31, 0, 0, 0) Day)
|
||||
[ "laatste dag van oktober 2015"
|
||||
]
|
||||
, examples (datetime (2014, 9, 22, 0, 0, 0) Week)
|
||||
[ "laatste week van september 2014"
|
||||
]
|
||||
, examples (datetime (2013, 10, 1, 0, 0, 0) Day)
|
||||
[ "eerste dinsdag in oktober"
|
||||
]
|
||||
, examples (datetime (2014, 9, 16, 0, 0, 0) Day)
|
||||
[ "derde dinsdag in september 2014"
|
||||
]
|
||||
, examples (datetime (2014, 10, 1, 0, 0, 0) Day)
|
||||
[ "eerste woensdag in oktober 2014"
|
||||
]
|
||||
, examples (datetime (2014, 10, 8, 0, 0, 0) Day)
|
||||
[ "tweede woensdag in oktober 2014"
|
||||
]
|
||||
, examples (datetime (2015, 1, 13, 0, 0, 0) Day)
|
||||
[ "derde dinsdag na kerst 2014"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 4, 0, 0) Hour)
|
||||
[ "4 uur in de morgen"
|
||||
, "4 uur in de nacht"
|
||||
, "4 uur in de ochtend"
|
||||
, "4 uur 's ochtends"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
|
||||
[ "3 uur"
|
||||
, "om drie uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 3, 18, 0) Minute)
|
||||
[ "3:18 in de ochtend"
|
||||
, "3:18 's morgens"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 3, 18, 0) Minute)
|
||||
[ "3:18"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
|
||||
[ "drie uur 's middags"
|
||||
, "15 uur"
|
||||
, "om drie uur"
|
||||
, "rond drie uur"
|
||||
, "rond 3 uur 's middags"
|
||||
, "om ongeveer drie uur"
|
||||
, "ca. 15h"
|
||||
, "om circa 15u"
|
||||
]
|
||||
, examples (datetime (2013, 4, 1, 18, 0, 0) Hour)
|
||||
[ "op 01-04 tegen 18 uur"
|
||||
, "op 1 april tegen zes uur 's avonds"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 17, 0, 0) Hour)
|
||||
[ "stipt om 17 uur morgen"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 14, 15, 0) Minute)
|
||||
[ "rond kwart over 2"
|
||||
, "kwart over twee uur"
|
||||
, "14 uur 15"
|
||||
, "15 over 14"
|
||||
, "2 uur 15 's middags"
|
||||
, "14:15"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 15, 20, 0) Minute)
|
||||
[ "15:20"
|
||||
, "10 voor half 4"
|
||||
, "10 minuten voor half 4"
|
||||
, "3 uur 20 's middags"
|
||||
, "twintig over 3"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 15, 30, 0) Minute)
|
||||
[ "om half vier"
|
||||
, "15:30"
|
||||
, "half vier 's middags"
|
||||
, "half 4"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 3, 30, 0) Minute)
|
||||
[ "3:30"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 11, 45, 0) Minute)
|
||||
[ "kwart voor 12"
|
||||
, "11:45"
|
||||
, "15 minuten voor 12"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 20, 0, 0) Hour)
|
||||
[ "8 uur 's avonds"
|
||||
, "vanavond om 8 uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 20, 0, 0) Minute)
|
||||
[ "vandaag om 20:00"
|
||||
]
|
||||
, examples (datetime (2013, 9, 20, 19, 30, 0) Minute)
|
||||
[ "om 19:30 op vr. 20 sept."
|
||||
]
|
||||
, examples (datetime (2013, 2, 16, 9, 0, 0) Hour)
|
||||
[ "op zaterdag om 9 uur 's morgens"
|
||||
]
|
||||
, examples (datetime (2014, 7, 18, 19, 0, 0) Hour)
|
||||
[ "Vrij. 18 juli 2014 7 uur 's avonds"
|
||||
]
|
||||
, examples (datetime (2014, 7, 18, 0, 0, 0) Day)
|
||||
[ "Vr, 18 Juli 2014"
|
||||
, "Vrijdag, 18-07-14"
|
||||
, "Vrijdag, 18/07/2014"
|
||||
, "18de juli 2014"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 4, 30, 1) Second)
|
||||
[ "over een seconde"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 4, 31, 0) Second)
|
||||
[ "in een minuut"
|
||||
, "over een minuut"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 4, 32, 0) Second)
|
||||
[ "in 2 minuten"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 5, 30, 0) Second)
|
||||
[ "in 60 minuten"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 5, 0, 0) Second)
|
||||
[ "in 30 minuten"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 7, 0, 0) Second)
|
||||
[ "in 2,5 uur"
|
||||
, "in twee en een half uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 5, 30, 0) Minute)
|
||||
[ "over een uur"
|
||||
, "in een uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 6, 30, 0) Minute)
|
||||
[ "over twee uur"
|
||||
, "in een paar uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 4, 30, 0) Minute)
|
||||
[ "over 24 uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||
[ "morgen"
|
||||
]
|
||||
, examples (datetime (2016, 2, 0, 0, 0, 0) Month)
|
||||
[ "in 3 jaar"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
|
||||
[ "in 7 dagen"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
||||
[ "in 1 week"
|
||||
, "over een week"
|
||||
]
|
||||
, examples (datetime (2013, 2, 5, 4, 0, 0) Hour)
|
||||
[ "7 dagen geleden"
|
||||
]
|
||||
, examples (datetime (2013, 1, 29, 4, 0, 0) Hour)
|
||||
[ "14 dagen geleden"
|
||||
]
|
||||
, examples (datetime (2013, 1, 29, 0, 0, 0) Day)
|
||||
[ "twee weken geleden"
|
||||
]
|
||||
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
|
||||
[ "een week geleden"
|
||||
]
|
||||
, examples (datetime (2013, 1, 22, 0, 0, 0) Day)
|
||||
[ "drie weken geleden"
|
||||
]
|
||||
, examples (datetime (2012, 11, 12, 0, 0, 0) Day)
|
||||
[ "drie maanden geleden"
|
||||
]
|
||||
, examples (datetime (2011, 2, 0, 0, 0, 0) Month)
|
||||
[ "twee jaar geleden"
|
||||
]
|
||||
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
|
||||
[ "over 7 dagen"
|
||||
]
|
||||
, examples (datetime (2013, 12, 25, 0, 0, 0) Day)
|
||||
[ "een jaar na kerst"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
|
||||
[ "deze zomer"
|
||||
]
|
||||
, examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)
|
||||
[ "deze winter"
|
||||
]
|
||||
, examples (datetime (2013, 12, 25, 0, 0, 0) Day)
|
||||
[ "kerst"
|
||||
, "kerstmis"
|
||||
]
|
||||
, examples (datetime (2013, 12, 31, 0, 0, 0) Day)
|
||||
[ "oudjaar"
|
||||
, "oudejaarsavond"
|
||||
]
|
||||
, examples (datetime (2014, 1, 1, 0, 0, 0) Day)
|
||||
[ "nieuwjaarsdag"
|
||||
, "nieuwjaar"
|
||||
]
|
||||
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
||||
[ "Valentijnsdag"
|
||||
]
|
||||
, examples (datetime (2013, 5, 12, 0, 0, 0) Day)
|
||||
[ "moederdag"
|
||||
, "tweede zondag in mei"
|
||||
]
|
||||
, examples (datetime (2013, 6, 16, 0, 0, 0) Day)
|
||||
[ "vaderdag"
|
||||
, "derde zondag in juni"
|
||||
]
|
||||
, examples (datetime (2017, 04, 27, 0, 0, 0) Day)
|
||||
[ "Koningsdag 2017"
|
||||
]
|
||||
, examples (datetime (2013, 10, 31, 0, 0, 0) Day)
|
||||
[ "Halloween"
|
||||
]
|
||||
, examples (datetime (2013, 11, 1, 0, 0, 0) Day)
|
||||
[ "Allerheiligen"
|
||||
]
|
||||
, examples (datetime (2013, 12, 5, 0, 0, 0) Day)
|
||||
[ "Sinterklaas"
|
||||
, "Pakjesavond"
|
||||
, "Sinterklaasavond"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)
|
||||
[ "vanavond"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour)
|
||||
[ "morgenavond"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 13, 12, 0, 0), (2013, 2, 13, 18, 0, 0)) Hour)
|
||||
[ "morgenmiddag"
|
||||
, "morgen 's middags"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)
|
||||
[ "gisteravond"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour)
|
||||
[ "dit weekend"
|
||||
, "komend weekend"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 15, 0, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour)
|
||||
[ "15 februari 's morgens"
|
||||
, "15 februari in de morgen"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 4, 29, 58), (2013, 2, 12, 4, 30, 0)) Second)
|
||||
[ "afgelopen 2 seconden"
|
||||
, "vorige 2 secondes"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 1), (2013, 2, 12, 4, 30, 4)) Second)
|
||||
[ "komende drie secondes"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 4, 28, 0), (2013, 2, 12, 4, 30, 0)) Minute)
|
||||
[ "afgelopen 2 minuten"
|
||||
, "afgelopen twee minuten"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 4, 31, 0), (2013, 2, 12, 4, 34, 0)) Minute)
|
||||
[ "komende 3 minuten"
|
||||
, "volgende drie minuten"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 5, 0, 0), (2013, 2, 12, 8, 0, 0)) Hour)
|
||||
[ "komende 3 uur"
|
||||
, "volgende 3 uur"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 10, 0, 0, 0), (2013, 2, 12, 0, 0, 0)) Day)
|
||||
[ "afgelopen 2 dagen"
|
||||
, "vorige 2 dagen"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 16, 0, 0, 0)) Day)
|
||||
[ "komende 3 dagen"
|
||||
, "komende drie dagen"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 13, 0, 0, 0), (2013, 2, 15, 0, 0, 0)) Day)
|
||||
[ "komende paar dagen"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week)
|
||||
[ "vorige 2 weken"
|
||||
, "afgelopen twee weken"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 3, 11, 0, 0, 0)) Week)
|
||||
[ "komende 3 weken"
|
||||
]
|
||||
, examples (datetimeInterval ((2012, 12, 0, 0, 0, 0), (2013, 2, 0, 0, 0, 0)) Month)
|
||||
[ "vorige 2 maanden"
|
||||
, "afgelopen twee maanden"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 3, 0, 0, 0, 0), (2013, 6, 0, 0, 0, 0)) Month)
|
||||
[ "komende 3 maanden"
|
||||
, "volgende drie maanden"
|
||||
]
|
||||
, examples (datetimeInterval ((2011, 0, 0, 0, 0, 0), (2013, 0, 0, 0, 0, 0)) Year)
|
||||
[ "vorige 2 jaren"
|
||||
, "afgelopen twee jaar"
|
||||
]
|
||||
, examples (datetimeInterval ((2014, 0, 0, 0, 0, 0), (2017, 0, 0, 0, 0, 0)) Year)
|
||||
[ "komende 3 jaren"
|
||||
, "volgende drie jaar"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 7, 13, 0, 0, 0), (2013, 7, 16, 0, 0, 0)) Day)
|
||||
[ "13 - 15 juli"
|
||||
, "13 t/m 15 juli"
|
||||
, "13 - 15 juli"
|
||||
, "juli 13 - juli 15"
|
||||
, "13 tot en met 15 juli"
|
||||
]
|
||||
, 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)
|
||||
[ "op donderdag om 9:30 - 11:00"
|
||||
, "op donderdag tussen 9:30 en 11:00"
|
||||
, "donderdag 9:30 - 11:00"
|
||||
, "op donderdag na 9:30 maar voor 11:00"
|
||||
, "donderdag van 9:30 tot 11:00"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 14, 9, 0, 0), (2013, 2, 14, 12, 0, 0)) Hour)
|
||||
[ "donderdag ochtend van 9 tot 11"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 11, 30, 0), (2013, 2, 12, 13, 31, 0)) Minute)
|
||||
[ "11:30-13:30"
|
||||
]
|
||||
, examples (datetime (2013, 9, 21, 1, 30, 0) Minute)
|
||||
[ "1:30 am Za. 21 sept"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 26, 0, 0, 0)) Second)
|
||||
[ "binnen 2 weken"
|
||||
]
|
||||
, examples (datetimeOpenInterval Before (2013, 2, 12, 14, 0, 0) Hour)
|
||||
[ "tot 2 uur 's middags"
|
||||
]
|
||||
, examples (datetimeOpenInterval Before (2013, 3, 1, 0, 0, 0) Month)
|
||||
[ "tot het einde van de maand"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 13, 0, 0) Minute)
|
||||
[ "16 uur CET"
|
||||
]
|
||||
, examples (datetime (2013, 2, 14, 6, 0, 0) Minute)
|
||||
[ "donderdag 8:00 GMT"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 14, 0, 0) Hour)
|
||||
[ "vandaag om 14 uur"
|
||||
, "om 2 uur"
|
||||
]
|
||||
, examples (datetime (2013, 2, 13, 15, 0, 0) Hour)
|
||||
[ "morgen om 15 uur"
|
||||
]
|
||||
, examples (datetimeOpenInterval After (2013, 2, 12, 14, 0, 0) Hour)
|
||||
[ "vanaf 14u"
|
||||
, "op zijn vroegst om 14 uur"
|
||||
, "twee uur op zijn vroegst"
|
||||
]
|
||||
, examples (datetimeOpenInterval Before (2013, 2, 12, 11, 0, 0) Hour)
|
||||
[ "tot 11 uur"
|
||||
, "tot 11h 's morgens"
|
||||
, "tot 11 am in de ochtend"
|
||||
, "op zijn laatst om 11 uur"
|
||||
, "11 uur op zijn laatst"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 18, 0, 0)) Hour)
|
||||
[ "vanmiddag"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 13, 30, 0) Minute)
|
||||
[ "om 13:30 in de middag"
|
||||
, "vanmiddag om 1 uur 30"
|
||||
, "13:30"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 4, 45, 0) Second)
|
||||
[ "in 15 minuten"
|
||||
, "over een kwartier"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 13, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour)
|
||||
[ "na de lunch"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 10, 30, 0) Minute)
|
||||
[ "10:30"
|
||||
]
|
||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
||||
[ "komende maandag"
|
||||
, "aanstaande maandag"
|
||||
]
|
||||
, examples (datetime (2013, 12, 10, 0, 0, 0) Day)
|
||||
[ "10-12"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 2, 12, 18, 30, 0), (2013, 2, 12, 19, 1, 0)) Minute)
|
||||
[ "18:30u - 19:00u"
|
||||
, "18:30h tot 19:00h"
|
||||
]
|
||||
, examples (datetimeInterval ((2013, 10, 14, 0, 0, 0), (2013, 10, 16, 0, 0, 0)) Day)
|
||||
[ "14/10 - 15/10"
|
||||
, "van 14/10/2013 tot 15/10/2013"
|
||||
]
|
||||
, examples (datetimeInterval ((2018, 10, 14, 0, 0, 0), (2018, 10, 16, 0, 0, 0)) Day)
|
||||
[ "14 t/m 15 oktober 2018"
|
||||
]
|
||||
, examples (datetime (2013, 10, 10, 0, 0, 0) Day)
|
||||
[ "op 10-10"
|
||||
, "op 10.10"
|
||||
, "10/10"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 10, 10, 0) Minute)
|
||||
[ "om 10:10"
|
||||
, "op 10:10"
|
||||
]
|
||||
, examples (datetime (2013, 2, 12, 17, 10, 0) Minute)
|
||||
[ "17h10"
|
||||
, "17u10"
|
||||
]
|
||||
]
|
1646
Duckling/Time/NL/Rules.hs
Normal file
1646
Duckling/Time/NL/Rules.hs
Normal file
File diff suppressed because it is too large
Load Diff
@ -22,11 +22,11 @@ import qualified Duckling.TimeGrain.Types as TG
|
||||
grains :: [(Text, String, TG.Grain)]
|
||||
grains = [ ("second (grain) " , "(seconde(n|s)?|sec|s)" , TG.Second)
|
||||
, ("minute (grain)" , "(minuut|minuten|min|m)", TG.Minute)
|
||||
, ("hour (grain)" , "(u|h|uur|uren)", TG.Hour)
|
||||
, ("day (grain)" , "(dagen|dag|d)", TG.Day)
|
||||
, ("hour (grain)" , "(uur|uren|u|h)", TG.Hour)
|
||||
, ("day (grain)" , "dagen|dag|d", TG.Day)
|
||||
, ("week (grain)" , "(weken|week|w)", TG.Week)
|
||||
, ("month (grain)" , "(maanden|maand|mnd)", TG.Month)
|
||||
, ("quarter (grain)" , "kwartier", TG.Quarter)
|
||||
, ("quarter (grain)" , "(kwartaal|kwartalen)", TG.Quarter)
|
||||
, ("year (grain)" , "(jaren|jaar|j)", TG.Year)
|
||||
]
|
||||
|
||||
|
@ -463,6 +463,8 @@ library
|
||||
, Duckling.Time.KO.Rules
|
||||
, Duckling.Time.NB.Corpus
|
||||
, Duckling.Time.NB.Rules
|
||||
, Duckling.Time.NL.Corpus
|
||||
, Duckling.Time.NL.Rules
|
||||
, Duckling.Time.PL.Corpus
|
||||
, Duckling.Time.PL.Rules
|
||||
, Duckling.Time.PT.Corpus
|
||||
@ -745,6 +747,7 @@ test-suite duckling-test
|
||||
, Duckling.Time.IT.Tests
|
||||
, Duckling.Time.KO.Tests
|
||||
, Duckling.Time.NB.Tests
|
||||
, Duckling.Time.NL.Tests
|
||||
, Duckling.Time.PL.Tests
|
||||
, Duckling.Time.PT.Tests
|
||||
, Duckling.Time.RO.Tests
|
||||
|
@ -42,6 +42,7 @@ import qualified Duckling.Time.HU.Corpus as HUTime
|
||||
import qualified Duckling.Time.IT.Corpus as ITTime
|
||||
import qualified Duckling.Time.KO.Corpus as KOTime
|
||||
import qualified Duckling.Time.NB.Corpus as NBTime
|
||||
import qualified Duckling.Time.NL.Corpus as NLTime
|
||||
import qualified Duckling.Time.PL.Corpus as PLTime
|
||||
import qualified Duckling.Time.PT.Corpus as PTTime
|
||||
import qualified Duckling.Time.RO.Corpus as ROTime
|
||||
@ -177,7 +178,7 @@ getCorpusForLang KA = (testContext, [])
|
||||
getCorpusForLang KO = KOTime.corpus
|
||||
getCorpusForLang MY = (testContext, [])
|
||||
getCorpusForLang NB = NBTime.corpus
|
||||
getCorpusForLang NL = (testContext, [])
|
||||
getCorpusForLang NL = NLTime.corpus
|
||||
getCorpusForLang PL = PLTime.corpus
|
||||
getCorpusForLang PT = PTTime.corpus
|
||||
getCorpusForLang RO = ROTime.corpus
|
||||
|
24
tests/Duckling/Time/NL/Tests.hs
Normal file
24
tests/Duckling/Time/NL/Tests.hs
Normal file
@ -0,0 +1,24 @@
|
||||
-- Copyright (c) 2016-present, Facebook, Inc.
|
||||
-- All rights reserved.
|
||||
--
|
||||
-- This source code is licensed under the BSD-style license found in the
|
||||
-- LICENSE file in the root directory of this source tree. An additional grant
|
||||
-- of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
|
||||
module Duckling.Time.NL.Tests
|
||||
( tests ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
import Test.Tasty
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Testing.Asserts
|
||||
import Duckling.Time.NL.Corpus
|
||||
|
||||
tests :: TestTree
|
||||
tests = testGroup "NL Tests"
|
||||
[ makeCorpusTest [This Time] corpus
|
||||
, makeNegativeCorpusTest [This Time] negativeCorpus
|
||||
]
|
@ -36,6 +36,7 @@ import qualified Duckling.Time.HU.Tests as HU
|
||||
import qualified Duckling.Time.IT.Tests as IT
|
||||
import qualified Duckling.Time.KO.Tests as KO
|
||||
import qualified Duckling.Time.NB.Tests as NB
|
||||
import qualified Duckling.Time.NL.Tests as NL
|
||||
import qualified Duckling.Time.PL.Tests as PL
|
||||
import qualified Duckling.Time.PT.Tests as PT
|
||||
import qualified Duckling.Time.RO.Tests as RO
|
||||
@ -57,6 +58,7 @@ tests = testGroup "Time Tests"
|
||||
, IT.tests
|
||||
, KO.tests
|
||||
, NB.tests
|
||||
, NL.tests
|
||||
, PL.tests
|
||||
, PT.tests
|
||||
, RO.tests
|
||||
|
Loading…
Reference in New Issue
Block a user