mirror of
https://github.com/facebook/duckling.git
synced 2024-09-11 21:27:13 +03:00
Time/HU: extend dates (#462)
Summary: Extend Hungarian dates with new cases Pull Request resolved: https://github.com/facebook/duckling/pull/462 Differential Revision: D25573636 Pulled By: chessai fbshipit-source-id: 251698cf9f5126162ad4fbf1489dcbc4c12541ed
This commit is contained in:
parent
57dab83ad3
commit
0354f27ef4
@ -16,7 +16,6 @@ import Prelude
|
|||||||
import Duckling.Locale
|
import Duckling.Locale
|
||||||
import Duckling.Resolve
|
import Duckling.Resolve
|
||||||
import Duckling.Time.Corpus
|
import Duckling.Time.Corpus
|
||||||
import Duckling.Time.Types hiding (Month)
|
|
||||||
import Duckling.TimeGrain.Types hiding (add)
|
import Duckling.TimeGrain.Types hiding (add)
|
||||||
import Duckling.Testing.Types hiding (examples)
|
import Duckling.Testing.Types hiding (examples)
|
||||||
|
|
||||||
@ -28,62 +27,258 @@ allExamples = concat
|
|||||||
[ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
|
[ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
|
||||||
[ "most"
|
[ "most"
|
||||||
, "épp most"
|
, "épp most"
|
||||||
|
, "azonnal"
|
||||||
|
, "mostani"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
|
||||||
[ "ma"
|
[ "ma"
|
||||||
|
, "máma"
|
||||||
|
, "Mai nap"
|
||||||
|
, "Mai napot"
|
||||||
|
, "mai napon"
|
||||||
|
, "mai"
|
||||||
|
, "mait"
|
||||||
|
, "mai napi"
|
||||||
|
, "mai napit"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||||
[ "holnap"
|
[ "holnap"
|
||||||
|
, "holnapi"
|
||||||
|
, "holnapit"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
||||||
[ "holnapután"
|
[ "holnapután"
|
||||||
|
, "holnaputáni"
|
||||||
|
, "holnaputánit"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
|
||||||
[ "tegnap"
|
[ "tegnap"
|
||||||
|
, "tegnapi"
|
||||||
|
, "tegnapit"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
|
||||||
[ "tegnapelőtt"
|
[ "tegnapelőtt"
|
||||||
|
, "tegnapelőtti"
|
||||||
|
, "tegnapelőttit"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
||||||
[ "hónap vége"
|
[ "hónap vége"
|
||||||
, "a hónap vége"
|
, "a hónap vége"
|
||||||
|
, "hó vége"
|
||||||
|
, "hó végi"
|
||||||
|
, "hó végit"
|
||||||
|
, "hó végén"
|
||||||
]
|
]
|
||||||
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
|
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
|
||||||
[ "év vége"
|
[ "év vége"
|
||||||
, "az év vége"
|
, "az év vége"
|
||||||
|
, "év végi"
|
||||||
|
, "év végit"
|
||||||
|
, "év végén"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
|
||||||
[ "hétfő"
|
[ "hétfő"
|
||||||
, "hét"
|
, "hétfőn"
|
||||||
|
, "hétfőt"
|
||||||
|
, "hétfői"
|
||||||
|
, "hétfőit"
|
||||||
, "hét."
|
, "hét."
|
||||||
|
, "hét"
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
|
||||||
[ "kedd"
|
[ "kedd"
|
||||||
|
, "kedden"
|
||||||
|
, "keddet"
|
||||||
|
, "keddi"
|
||||||
|
, "keddit"
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
|
||||||
|
[ "szerda"
|
||||||
|
, "szerdán"
|
||||||
|
, "szerdát"
|
||||||
|
, "szerdai"
|
||||||
|
, "szerdait"
|
||||||
|
, "szer"
|
||||||
|
, "szer."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
|
||||||
|
[ "csütörtök"
|
||||||
|
, "csütörtökön"
|
||||||
|
, "csütörtököt"
|
||||||
|
, "csütörtöki"
|
||||||
|
, "csütörtökit"
|
||||||
|
, "csüt"
|
||||||
|
, "csüt."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
|
||||||
|
[ "péntek"
|
||||||
|
, "pénteken"
|
||||||
|
, "pénteket"
|
||||||
|
, "pénteki"
|
||||||
|
, "péntekit"
|
||||||
|
, "pén"
|
||||||
|
, "pén."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 2, 16, 0, 0, 0) Day)
|
||||||
|
[ "szombat"
|
||||||
|
, "szombaton"
|
||||||
|
, "szombatot"
|
||||||
|
, "szombati"
|
||||||
|
, "szombatit"
|
||||||
|
, "szom"
|
||||||
|
, "szom."
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 2, 17, 0, 0, 0) Day)
|
, examples (datetime (2013, 2, 17, 0, 0, 0) Day)
|
||||||
[ "vasárnap"
|
[ "vasárnap"
|
||||||
|
, "vasárnapot"
|
||||||
|
, "vasárnapi"
|
||||||
|
, "vasárnapit"
|
||||||
, "vas"
|
, "vas"
|
||||||
, "vas."
|
, "vas."
|
||||||
]
|
]
|
||||||
, examples (datetime (2014, 1, 1, 0, 0, 0) Month)
|
, examples (datetime (2014, 1, 1, 0, 0, 0) Month)
|
||||||
[ "január"
|
[ "január"
|
||||||
|
, "januárban"
|
||||||
|
, "januári"
|
||||||
|
, "januárit"
|
||||||
, "jan"
|
, "jan"
|
||||||
, "jan."
|
, "jan."
|
||||||
]
|
]
|
||||||
|
, examples (datetime (2013, 2, 1, 0, 0, 0) Month)
|
||||||
|
[ "február"
|
||||||
|
, "februárban"
|
||||||
|
, "februári"
|
||||||
|
, "februárit"
|
||||||
|
, "feb"
|
||||||
|
, "feb."
|
||||||
|
]
|
||||||
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
||||||
[ "március"
|
[ "március"
|
||||||
|
, "márciusban"
|
||||||
|
, "márciusi"
|
||||||
|
, "márciusit"
|
||||||
, "már"
|
, "már"
|
||||||
, "már."
|
, "már."
|
||||||
, "márc"
|
, "márc"
|
||||||
, "márc"
|
, "márc."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 4, 1, 0, 0, 0) Month)
|
||||||
|
[ "április"
|
||||||
|
, "áprilisban"
|
||||||
|
, "áprilisi"
|
||||||
|
, "áprilisit"
|
||||||
|
, "ápr"
|
||||||
|
, "ápr."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 5, 1, 0, 0, 0) Month)
|
||||||
|
[ "május"
|
||||||
|
, "májusban"
|
||||||
|
, "májusi"
|
||||||
|
, "májusit"
|
||||||
|
, "máj"
|
||||||
|
, "máj."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 6, 1, 0, 0, 0) Month)
|
||||||
|
[ "június"
|
||||||
|
, "júniusban"
|
||||||
|
, "júniusi"
|
||||||
|
, "júniusit"
|
||||||
|
, "jún"
|
||||||
|
, "jún."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 7, 1, 0, 0, 0) Month)
|
||||||
|
[ "július"
|
||||||
|
, "júliusban"
|
||||||
|
, "júliusi"
|
||||||
|
, "júliusit"
|
||||||
|
, "júl"
|
||||||
|
, "júl."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 8, 1, 0, 0, 0) Month)
|
||||||
|
[ "augusztus"
|
||||||
|
, "augusztusban"
|
||||||
|
, "augusztusi"
|
||||||
|
, "augusztusit"
|
||||||
|
, "aug"
|
||||||
|
, "aug."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 9, 1, 0, 0, 0) Month)
|
||||||
|
[ "szeptember"
|
||||||
|
, "szeptemberben"
|
||||||
|
, "szeptemberi"
|
||||||
|
, "szeptemberit"
|
||||||
|
, "szep"
|
||||||
|
, "szep."
|
||||||
|
, "szept"
|
||||||
|
, "szept."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 10, 1, 0, 0, 0) Month)
|
||||||
|
[ "október"
|
||||||
|
, "októberben"
|
||||||
|
, "októberi"
|
||||||
|
, "októberit"
|
||||||
|
, "okt"
|
||||||
|
, "okt."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 11, 1, 0, 0, 0) Month)
|
||||||
|
[ "november"
|
||||||
|
, "novemberben"
|
||||||
|
, "novemberi"
|
||||||
|
, "novemberit"
|
||||||
|
, "nov"
|
||||||
|
, "nov."
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 12, 1, 0, 0, 0) Month)
|
||||||
|
[ "december"
|
||||||
|
, "decemberben"
|
||||||
|
, "decemberi"
|
||||||
|
, "decemberit"
|
||||||
|
, "dec"
|
||||||
|
, "dec."
|
||||||
]
|
]
|
||||||
, examples (datetime (2013, 3, 15, 0, 0, 0) Day)
|
, examples (datetime (2013, 3, 15, 0, 0, 0) Day)
|
||||||
[ "március 15"
|
[ "március 15"
|
||||||
|
, "március 15."
|
||||||
, "már 15"
|
, "már 15"
|
||||||
, "már. 15"
|
, "már. 15"
|
||||||
, "márc 15"
|
, "márc 15"
|
||||||
, "márc. 15"
|
, "márc. 15"
|
||||||
]
|
]
|
||||||
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Day)
|
||||||
|
[ "március 1-én"
|
||||||
|
, "március 1-jén"
|
||||||
|
, "március 1-je"
|
||||||
|
, "március 1-jei"
|
||||||
|
, "március 1-i"
|
||||||
|
, "március 1én"
|
||||||
|
, "március 1je"
|
||||||
|
, "március 1jei"
|
||||||
|
, "március 1i"
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 3, 2, 0, 0, 0) Day)
|
||||||
|
[ "március 2-án"
|
||||||
|
, "március 2-ai"
|
||||||
|
, "március 2-a"
|
||||||
|
, "március 2án"
|
||||||
|
, "március 2ai"
|
||||||
|
, "március 2a"
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 3, 4, 0, 0, 0) Day)
|
||||||
|
[ "március 4-e"
|
||||||
|
, "március 4e"
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 3, 7, 0, 0, 0) Day)
|
||||||
|
[ "március 7-ei"
|
||||||
|
, "március 7ei"
|
||||||
|
]
|
||||||
|
, examples (datetime (2013, 3, 15, 0, 0, 0) Day)
|
||||||
|
[ "március 15-én"
|
||||||
|
, "március 15-ei"
|
||||||
|
, "március 15-i"
|
||||||
|
, "március 15én"
|
||||||
|
, "március 15e"
|
||||||
|
, "március 15ei"
|
||||||
|
]
|
||||||
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
|
||||||
[ "következő hónap"
|
[ "következő hónap"
|
||||||
, "jövő hónap"
|
, "jövő hónap"
|
||||||
@ -150,6 +345,20 @@ allExamples = concat
|
|||||||
, examples (datetimeInterval ((2013, 2, 12, 6, 0, 0), (2013, 2, 12, 10, 0, 0)) Hour)
|
, examples (datetimeInterval ((2013, 2, 12, 6, 0, 0), (2013, 2, 12, 10, 0, 0)) Hour)
|
||||||
[ "ma reggel"
|
[ "ma reggel"
|
||||||
, "reggel"
|
, "reggel"
|
||||||
|
, "ma reggeli"
|
||||||
|
, "reggeli"
|
||||||
|
, "ma reggelit"
|
||||||
|
, "reggelit"
|
||||||
|
]
|
||||||
|
, examples (datetimeInterval ((2013, 2, 12, 8, 0, 0), (2013, 2, 12, 12, 0, 0)) Hour)
|
||||||
|
[ "délelőtt"
|
||||||
|
, "délelőtti"
|
||||||
|
, "délelőttit"
|
||||||
|
]
|
||||||
|
, examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 13, 0, 0)) Hour)
|
||||||
|
[ "délben"
|
||||||
|
, "déli"
|
||||||
|
, "délit"
|
||||||
]
|
]
|
||||||
, examples (datetimeInterval ((2013, 2, 13, 8, 0, 0), (2013, 2, 13, 12, 0, 0)) Hour)
|
, examples (datetimeInterval ((2013, 2, 13, 8, 0, 0), (2013, 2, 13, 12, 0, 0)) Hour)
|
||||||
[ "holnap délelőtt"
|
[ "holnap délelőtt"
|
||||||
@ -160,16 +369,43 @@ allExamples = concat
|
|||||||
, examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 18, 0, 0)) Hour)
|
, examples (datetimeInterval ((2013, 2, 12, 12, 0, 0), (2013, 2, 12, 18, 0, 0)) Hour)
|
||||||
[ "ma délután"
|
[ "ma délután"
|
||||||
, "délután"
|
, "délután"
|
||||||
|
, "délutáni"
|
||||||
|
, "délutánit"
|
||||||
]
|
]
|
||||||
, examples (datetimeInterval ((2013, 2, 12, 16, 0, 0), (2013, 2, 12, 20, 0, 0)) Hour)
|
, examples (datetimeInterval ((2013, 2, 12, 16, 0, 0), (2013, 2, 12, 20, 0, 0)) Hour)
|
||||||
[ "ma este"
|
[ "ma este"
|
||||||
, "este"
|
, "este"
|
||||||
|
, "esti"
|
||||||
|
, "estit"
|
||||||
]
|
]
|
||||||
, examples (datetimeInterval ((2013, 2, 12, 20, 0, 0), (2013, 2, 12, 23, 0, 0)) Hour)
|
, examples (datetimeInterval ((2013, 2, 12, 20, 0, 0), (2013, 2, 12, 23, 0, 0)) Hour)
|
||||||
[ "ma éjszaka"
|
[ "ma éjszaka"
|
||||||
, "éjszaka"
|
, "éjszaka"
|
||||||
|
, "éjszakai"
|
||||||
|
, "éjszakait"
|
||||||
]
|
]
|
||||||
, examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
|
, examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
|
||||||
[ "nyár"
|
[ "nyár"
|
||||||
|
, "nyári"
|
||||||
|
, "nyárit"
|
||||||
|
, "nyáron"
|
||||||
|
]
|
||||||
|
, examples (datetimeInterval ((2013, 9, 23, 0, 0, 0), (2013, 12, 22, 0, 0, 0)) Day)
|
||||||
|
[ "ősz"
|
||||||
|
, "őszi"
|
||||||
|
, "őszit"
|
||||||
|
, "ősszel"
|
||||||
|
]
|
||||||
|
, examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)
|
||||||
|
[ "tél"
|
||||||
|
, "téli"
|
||||||
|
, "télit"
|
||||||
|
, "télen"
|
||||||
|
]
|
||||||
|
, examples (datetimeInterval ((2013, 3, 20, 0, 0, 0), (2013, 6, 22, 0, 0, 0)) Day)
|
||||||
|
[ "tavasz"
|
||||||
|
, "tavaszi"
|
||||||
|
, "tavaszit"
|
||||||
|
, "tavasszal"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@ -13,8 +13,6 @@ module Duckling.Time.HU.Rules
|
|||||||
( rules ) where
|
( rules ) where
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.String
|
|
||||||
import Data.Text (Text)
|
|
||||||
import Prelude
|
import Prelude
|
||||||
import qualified Data.Text as Text
|
import qualified Data.Text as Text
|
||||||
|
|
||||||
@ -41,41 +39,41 @@ ruleIntersect = Rule
|
|||||||
|
|
||||||
ruleInstants :: [Rule]
|
ruleInstants :: [Rule]
|
||||||
ruleInstants = mkRuleInstants
|
ruleInstants = mkRuleInstants
|
||||||
[ ("right now", TG.Second, 0 , "((\x00E9pp )?most)|azonnal" )
|
[ ("right now", TG.Second, 0 , "mostani(t)?|((\x00E9pp )?most)|azonnal" )
|
||||||
, ("today", TG.Day, 0 , "ma" )
|
, ("today", TG.Day, 0 , "m(á|a)(i( nap(o(t|n)|it?)?|t)?|ma)?" )
|
||||||
, ("tomorrow", TG.Day, 1 , "holnap" )
|
, ("tomorrow", TG.Day, 1 , "holnap(i(t)?)?" )
|
||||||
, ("day after tomorrow", TG.Day, 2 , "holnaput\x00E1n" )
|
, ("day after tomorrow", TG.Day, 2 , "holnaput\x00E1n(i(t)?)?" )
|
||||||
, ("yesterday", TG.Day, -1, "tegnap" )
|
, ("yesterday", TG.Day, -1, "tegnap(i(t)?)?" )
|
||||||
, ("day before yesterday", TG.Day, -2, "tegnapel\x0151tt" )
|
, ("day before yesterday", TG.Day, -2, "tegnapel\x0151tt(i(t)?)?" )
|
||||||
, ("end of month", TG.Month, 1 , "(a )?h\x00F3nap v\x00E9ge" )
|
, ("end of month", TG.Month, 1 , "(a )?h\x00F3nap v\x00E9ge|h\x00F3 v\x00E9g(e|i(t)?|\x00E9n)" )
|
||||||
, ("end of year", TG.Year, 1 , "(az )?\x00E9v v\x00E9ge" )
|
, ("end of year", TG.Year, 1 , "(az )?\x00E9v v\x00E9g(e|i(t)?|\x00E9n)" )
|
||||||
]
|
]
|
||||||
|
|
||||||
ruleDaysOfWeek :: [Rule]
|
ruleDaysOfWeek :: [Rule]
|
||||||
ruleDaysOfWeek = mkRuleDaysOfWeek
|
ruleDaysOfWeek = mkRuleDaysOfWeek
|
||||||
[ ( "Monday" , "h\x00E9tf\x0151|h\x00E9t\\.?" )
|
[ ( "Monday" , "h\x00E9tf\x0151(n|t|i(t)?)?|h\x00E9t\\.?" )
|
||||||
, ( "Tuesday" , "kedd" )
|
, ( "Tuesday" , "kedd(en|et|i(t)?)?" )
|
||||||
, ( "Wednesday", "szerda|szer\\.?" )
|
, ( "Wednesday", "szerda(i(t)?)?|szerdá(n|t)|szer\\.?" )
|
||||||
, ( "Thursday" , "cs\x00FCt\x00F6rt\x00F6k|cs\x00FCt\\.?" )
|
, ( "Thursday" , "cs\x00FCt\x00F6rt\x00F6k(\x00F6(n|t)|i(t)?)?|cs\x00FCt\\.?" )
|
||||||
, ( "Friday" , "p\x00E9ntek|p\x00E9n\\.?" )
|
, ( "Friday" , "p\x00E9ntek(e(n|t)|i(t)?)?|p\x00E9n\\.?" )
|
||||||
, ( "Saturday" , "szombat|szom\\.?" )
|
, ( "Saturday" , "szombat(o(n|t)|i(t)?)?|szom\\.?" )
|
||||||
, ( "Sunday" , "vas\x00E1rnap|vas\\.?" )
|
, ( "Sunday" , "vas\x00E1rnap(ot|i(t)?)?|vas\\.?" )
|
||||||
]
|
]
|
||||||
|
|
||||||
ruleMonths :: [Rule]
|
ruleMonths :: [Rule]
|
||||||
ruleMonths = mkRuleMonths
|
ruleMonths = mkRuleMonths
|
||||||
[ ( "January" , "janu\x00E1r|jan\\.?" )
|
[ ( "January" , "janu\x00E1r(ban|i(t)?)?|jan\\.?" )
|
||||||
, ( "February" , "febru\x00E1r|febr?\\.?" )
|
, ( "February" , "febru\x00E1r(ban|i(t)?)?|febr?\\.?" )
|
||||||
, ( "March" , "m\x00E1rcius|m\x00E1rc?\\.?" )
|
, ( "March" , "m\x00E1rcius(ban|i(t)?)?|m\x00E1rc?\\.?" )
|
||||||
, ( "April" , "\x00E1prilis|\x00E1pr\\.?" )
|
, ( "April" , "\x00E1prilis(ban|i(t)?)?|\x00E1pr\\.?" )
|
||||||
, ( "May" , "m\x00E1jus|m\x00E1j\\.?" )
|
, ( "May" , "m\x00E1jus(ban|i(t)?)?|m\x00E1j\\.?" )
|
||||||
, ( "June" , "j\x00FAnius|j\x00FAn\\.?" )
|
, ( "June" , "j\x00FAnius(ban|i(t)?)?|j\x00FAn\\.?" )
|
||||||
, ( "July" , "j\x00FAlius|j\x00FAl\\.?" )
|
, ( "July" , "j\x00FAlius(ban|i(t)?)?|j\x00FAl\\.?" )
|
||||||
, ( "August" , "augusztus|aug\\.?" )
|
, ( "August" , "augusztus(ban|i(t)?)?|aug\\.?" )
|
||||||
, ( "September", "szeptember|szept?\\.?" )
|
, ( "September", "szeptember(ben|i(t)?)?|szept?\\.?" )
|
||||||
, ( "October" , "okt\x00F3ber|okt\\.?" )
|
, ( "October" , "október(ben|i(t)?)?|okt\\.?" )
|
||||||
, ( "November" , "november|nov\\.?" )
|
, ( "November" , "november(ben|i(t)?)?|nov\\.?" )
|
||||||
, ( "December" , "december|dec\\.?" )
|
, ( "December" , "december(ben|i(t)?)?|dec\\.?" )
|
||||||
]
|
]
|
||||||
|
|
||||||
ruleMonthDOMNumeral :: Rule
|
ruleMonthDOMNumeral :: Rule
|
||||||
@ -90,6 +88,31 @@ ruleMonthDOMNumeral = Rule
|
|||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ruleMonthDOMNumeralSuffix :: Rule
|
||||||
|
ruleMonthDOMNumeralSuffix = Rule
|
||||||
|
{ name = "<named-month> <day-of-month> (non ordinal)"
|
||||||
|
, pattern =
|
||||||
|
[ Predicate isAMonth
|
||||||
|
, Predicate isDOMInteger
|
||||||
|
, regex "(-?(jei|jén|án|én|ai|ei|je|ji|a|e|i))"
|
||||||
|
]
|
||||||
|
, prod = \tokens -> case tokens of
|
||||||
|
(Token Time td:token:_) -> Token Time <$> intersectDOM td token
|
||||||
|
_ -> Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
ruleMonthDOMOrdinal :: Rule
|
||||||
|
ruleMonthDOMOrdinal = Rule
|
||||||
|
{ name = "<named-month> <day-of-month> (ordinal)"
|
||||||
|
, pattern =
|
||||||
|
[ Predicate isAMonth
|
||||||
|
, Predicate isDOMOrdinal
|
||||||
|
]
|
||||||
|
, prod = \tokens -> case tokens of
|
||||||
|
(Token Time td:token:_) -> Token Time <$> intersectDOM td token
|
||||||
|
_ -> Nothing
|
||||||
|
}
|
||||||
|
|
||||||
ruleCycleThisLastNext :: Rule
|
ruleCycleThisLastNext :: Rule
|
||||||
ruleCycleThisLastNext = Rule
|
ruleCycleThisLastNext = Rule
|
||||||
{ name = "this|last|next <cycle>"
|
{ name = "this|last|next <cycle>"
|
||||||
@ -220,17 +243,27 @@ rulePartOfDays :: Rule
|
|||||||
rulePartOfDays = Rule
|
rulePartOfDays = Rule
|
||||||
{ name = "part of days"
|
{ name = "part of days"
|
||||||
, pattern =
|
, pattern =
|
||||||
[ regex "(reggel|d\x00E9lel\x0151tt|d\x00E9lben|d\x00E9lut\x00E1n|este|\x00E9jszaka)"
|
[ regex "(reggel(i(t)?)?|d\x00E9lel\x0151tt(i(t)?)?|d\x00E9lben|d\x00E9li(t)?|d\x00E9lut\x00E1n(i(t)?)?|est(e|i(t)?)|\x00E9jszaka(i(t)?)?)"
|
||||||
]
|
]
|
||||||
, prod = \tokens -> case tokens of
|
, prod = \tokens -> case tokens of
|
||||||
(Token RegexMatch (GroupMatch (match:_)):_) -> do
|
(Token RegexMatch (GroupMatch (match:_)):_) -> do
|
||||||
let (start, end) = case Text.toLower match of
|
let (start, end) = case Text.toLower match of
|
||||||
"reggel" -> (hour False 6, hour False 10)
|
"reggel" -> (hour False 6, hour False 10)
|
||||||
"d\x00E9lel\x0151tt" -> (hour False 08, hour False 12)
|
"reggeli" -> (hour False 6, hour False 10)
|
||||||
"d\x00E9lben" -> (hour False 12, hour False 13)
|
"reggelit" -> (hour False 6, hour False 10)
|
||||||
"d\x00E9lut\x00E1n" -> (hour False 12, hour False 18)
|
"d\x00E9lel\x0151tt" -> (hour False 08, hour False 12)
|
||||||
"este" -> (hour False 16, hour False 20)
|
"d\x00E9lel\x0151tti" -> (hour False 08, hour False 12)
|
||||||
_ -> (hour False 20, hour False 23)
|
"d\x00E9lel\x0151ttit" -> (hour False 08, hour False 12)
|
||||||
|
"d\x00E9lben" -> (hour False 12, hour False 13)
|
||||||
|
"d\x00E9li" -> (hour False 12, hour False 13)
|
||||||
|
"d\x00E9lit" -> (hour False 12, hour False 13)
|
||||||
|
"d\x00E9lut\x00E1n" -> (hour False 12, hour False 18)
|
||||||
|
"d\x00E9lut\x00E1ni" -> (hour False 12, hour False 18)
|
||||||
|
"d\x00E9lut\x00E1nit" -> (hour False 12, hour False 18)
|
||||||
|
"este" -> (hour False 16, hour False 20)
|
||||||
|
"esti" -> (hour False 16, hour False 20)
|
||||||
|
"estit" -> (hour False 16, hour False 20)
|
||||||
|
_ -> (hour False 20, hour False 23)
|
||||||
td <- interval TTime.Open start end
|
td <- interval TTime.Open start end
|
||||||
tt . partOfDay $ td
|
tt . partOfDay $ td
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
@ -253,21 +286,45 @@ ruleSeasons :: Rule
|
|||||||
ruleSeasons = Rule
|
ruleSeasons = Rule
|
||||||
{ name = "seasons"
|
{ name = "seasons"
|
||||||
, pattern =
|
, pattern =
|
||||||
[ regex "(ny\x00E1r|\x0151sz|t\x00E9l|tavasz)"
|
[ regex "(ny\x00E1r(i(t)?|on)?|\x0151sz(i(t)?)?|\x0151sszel|t\x00E9l(i(t)?|en)?|tavasz(i(t)?)?|tavasszal)"
|
||||||
]
|
]
|
||||||
, prod = \tokens -> case tokens of
|
, prod = \tokens -> case tokens of
|
||||||
(Token RegexMatch (GroupMatch (match:_)):_) -> do
|
(Token RegexMatch (GroupMatch (match:_)):_) -> do
|
||||||
start <- case Text.toLower match of
|
start <- case Text.toLower match of
|
||||||
"ny\x00E1r" -> Just $ monthDay 6 21
|
"ny\x00E1r" -> Just $ monthDay 6 21
|
||||||
"\x0151sz" -> Just $ monthDay 9 23
|
"ny\x00E1ri" -> Just $ monthDay 6 21
|
||||||
"t\x00E9l" -> Just $ monthDay 12 21
|
"ny\x00E1rit" -> Just $ monthDay 6 21
|
||||||
"tavasz" -> Just $ monthDay 3 20
|
"ny\x00E1ron" -> Just $ monthDay 6 21
|
||||||
|
"\x0151sz" -> Just $ monthDay 9 23
|
||||||
|
"\x0151szi" -> Just $ monthDay 9 23
|
||||||
|
"\x0151szit" -> Just $ monthDay 9 23
|
||||||
|
"\x0151sszel" -> Just $ monthDay 9 23
|
||||||
|
"t\x00E9l" -> Just $ monthDay 12 21
|
||||||
|
"t\x00E9li" -> Just $ monthDay 12 21
|
||||||
|
"t\x00E9lit" -> Just $ monthDay 12 21
|
||||||
|
"t\x00E9len" -> Just $ monthDay 12 21
|
||||||
|
"tavasz" -> Just $ monthDay 3 20
|
||||||
|
"tavaszi" -> Just $ monthDay 3 20
|
||||||
|
"tavaszit" -> Just $ monthDay 3 20
|
||||||
|
"tavasszal" -> Just $ monthDay 3 20
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
end <- case Text.toLower match of
|
end <- case Text.toLower match of
|
||||||
"ny\x00E1r" -> Just $ monthDay 9 23
|
"ny\x00E1r" -> Just $ monthDay 9 23
|
||||||
"\x0151sz" -> Just $ monthDay 12 21
|
"ny\x00E1ri" -> Just $ monthDay 9 23
|
||||||
"t\x00E9l" -> Just $ monthDay 3 20
|
"ny\x00E1rit" -> Just $ monthDay 9 23
|
||||||
"tavasz" -> Just $ monthDay 6 21
|
"ny\x00E1ron" -> Just $ monthDay 9 23
|
||||||
|
"\x0151sz" -> Just $ monthDay 12 21
|
||||||
|
"\x0151szi" -> Just $ monthDay 12 21
|
||||||
|
"\x0151szit" -> Just $ monthDay 12 21
|
||||||
|
"\x0151sszel" -> Just $ monthDay 12 21
|
||||||
|
"t\x00E9l" -> Just $ monthDay 3 20
|
||||||
|
"t\x00E9li" -> Just $ monthDay 3 20
|
||||||
|
"t\x00E9lit" -> Just $ monthDay 3 20
|
||||||
|
"t\x00E9len" -> Just $ monthDay 3 20
|
||||||
|
"tavasz" -> Just $ monthDay 6 21
|
||||||
|
"tavaszi" -> Just $ monthDay 6 21
|
||||||
|
"tavaszit" -> Just $ monthDay 6 21
|
||||||
|
"tavasszal" -> Just $ monthDay 6 21
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
Token Time <$> interval TTime.Open start end
|
Token Time <$> interval TTime.Open start end
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
@ -278,6 +335,8 @@ rules :: [Rule]
|
|||||||
rules =
|
rules =
|
||||||
[ ruleIntersect
|
[ ruleIntersect
|
||||||
, ruleMonthDOMNumeral
|
, ruleMonthDOMNumeral
|
||||||
|
, ruleMonthDOMNumeralSuffix
|
||||||
|
, ruleMonthDOMOrdinal
|
||||||
, ruleCycleThisLastNext
|
, ruleCycleThisLastNext
|
||||||
, ruleNextDOW
|
, ruleNextDOW
|
||||||
, ruleHHMM
|
, ruleHHMM
|
||||||
|
@ -8,7 +8,6 @@ module Duckling.Time.HU.Tests
|
|||||||
( tests ) where
|
( tests ) where
|
||||||
|
|
||||||
import Data.String
|
import Data.String
|
||||||
import Prelude
|
|
||||||
import Test.Tasty
|
import Test.Tasty
|
||||||
|
|
||||||
import Duckling.Dimensions.Types
|
import Duckling.Dimensions.Types
|
||||||
|
Loading…
Reference in New Issue
Block a user