Time Dimension for TR locale (#584)

Summary:
Added time dimension for Turkish language

Pull Request resolved: https://github.com/facebook/duckling/pull/584

Differential Revision: D27235743

Pulled By: chessai

fbshipit-source-id: 7419ff7373d942530f0eb35939acb9970b918672
This commit is contained in:
Mustafa ALP 2021-04-06 10:18:56 -07:00 committed by Facebook GitHub Bot
parent 4c4d5ca725
commit 3157d2e553
11 changed files with 2987 additions and 16 deletions

View File

@ -18,5 +18,6 @@ allDimensions =
, Seal Numeral
, Seal Ordinal
, Seal Temperature
, Seal Time
, Seal Volume
]

View File

@ -4,8 +4,8 @@
-- This source code is licensed under the BSD-style license found in the
-- LICENSE file in the root directory of this source tree.
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
module Duckling.Duration.TR.Rules
@ -102,7 +102,7 @@ ruleDurationPrecision :: Rule
ruleDurationPrecision = Rule
{ name = "<duration> about|exactly"
, pattern =
[ regex "(gibi|civar\305nda|yaklaş\305k|tam( olarak)?)"
[ regex "(yaklaşık|tam(\\solarak)?)"
, dimension Duration
]
, prod = \tokens -> case tokens of
@ -110,6 +110,18 @@ ruleDurationPrecision = Rule
_ -> Nothing
}
ruleDurationPrecision2 :: Rule
ruleDurationPrecision2 = Rule
{ name = "<duration> about|exactly"
, pattern =
[ dimension Duration
, regex "gibi|civarında"
]
, prod = \case
(token:_:_) -> Just token
_ -> Nothing
}
rules :: [Rule]
rules =
[ ruleDurationQuarterOfAnHour
@ -119,5 +131,6 @@ rules =
, ruleDurationDotNumeralHours
, ruleDurationAndHalfHour
, ruleDurationPrecision
, ruleDurationPrecision2
, ruleNumeralQuotes
]

View File

@ -152,7 +152,7 @@ ruleNumeralSuffixesHalfsuffixText :: Rule
ruleNumeralSuffixesHalfsuffixText = Rule
{ name = "number suffixes (half-suffix text) (1..9)"
, pattern =
[ regex "((bir?|iki|üç|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"
[ regex "((bir?|iki|üçü?|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"
]
, prod = \tokens -> case tokens of
(Token RegexMatch (GroupMatch (match:_)):_) ->
@ -514,7 +514,7 @@ ruleInteger9 :: Rule
ruleInteger9 = Rule
{ name = "integer 11..19 21..29 31..39 41..49 51..59 61..69 71..79 81..89 91..99"
, pattern =
[ regex "((on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)(bir|bi|iki|üç|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"
[ regex "((on|yirmi|otuz|kırk|elli|atmış|altmış|yetmiş|seksen|doksan)(bir|bi|iki|üçü?|dört|beş|altı|yedi|sekiz|dokuz)(buçuk))"
]
, prod = \tokens -> case tokens of
(Token RegexMatch (GroupMatch (match:_)):_) ->
@ -542,6 +542,7 @@ oneToNineMap = HashMap.fromList
, ( "tek", 1)
, ( "iki", 2)
, ( "üç", 3)
, ( "üçü", 3)
, ( "dört", 4)
, ( "beş", 5)
, ( "altı", 6)
@ -554,7 +555,7 @@ ruleInteger :: Rule
ruleInteger = Rule
{ name = "integer (0..9)"
, pattern =
[ regex "(yok|hi(ç)|s(ı)f(ı)r|bir?|[ty]ek|iki|(ü)(ç)|d(ö)rt|be(ş)|alt(ı)|yedi|sekiz|dokuz)"
[ regex "(yok|hi(ç)|s(ı)f(ı)r|bir?|[ty]ek|iki|(ü)(ç)(ü)?|d(ö)rt|be(ş)|alt(ı)|yedi|sekiz|dokuz)"
]
, prod = \tokens -> case tokens of
(Token RegexMatch (GroupMatch (match:_)):_) ->

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@ import qualified Duckling.Duration.TR.Rules as Duration
import qualified Duckling.Numeral.TR.Rules as Numeral
import qualified Duckling.Ordinal.TR.Rules as Ordinal
import qualified Duckling.Temperature.TR.Rules as Temperature
import qualified Duckling.Time.TR.Rules as Time
import qualified Duckling.TimeGrain.TR.Rules as TimeGrain
import qualified Duckling.Volume.TR.Rules as Volume
import qualified Duckling.AmountOfMoney.TR.Rules as AmountOfMoney
@ -45,7 +46,7 @@ langRules (Seal PhoneNumber) = []
langRules (Seal Quantity) = []
langRules (Seal RegexMatch) = []
langRules (Seal Temperature) = Temperature.rules
langRules (Seal Time) = []
langRules (Seal Time) = Time.rules
langRules (Seal TimeGrain) = TimeGrain.rules
langRules (Seal Url) = []
langRules (Seal Volume) = Volume.rules

532
Duckling/Time/TR/Corpus.hs Normal file
View File

@ -0,0 +1,532 @@
-- 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.
{-# LANGUAGE OverloadedStrings #-}
module Duckling.Time.TR.Corpus
( corpus
) where
import Data.String
import Prelude
import Duckling.Locale
import Duckling.Resolve
import Duckling.Testing.Types hiding (examples)
import Duckling.Time.Corpus
import Duckling.TimeGrain.Types
( Grain(Minute, Hour, Year, Quarter, Week, Month, Day, Second) )
context :: Context
context = testContext {locale = makeLocale TR Nothing}
-- Tuesday Feb 12, 2013 at 4:30am is the "now" for the tests
corpus :: Corpus
corpus = (context, testOptions, allExamples)
allExamples :: [Example]
allExamples = concat
[ examples (datetime (2013, 2, 12, 4, 30, 0) Second)
[ "şimdi"
, "şu an"
]
, examples (datetime (2013, 2, 12, 0, 0, 0) Day)
[ "bugün"
]
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
[ "2014"
]
, examples (datetime (2013, 2, 11, 0, 0, 0) Day)
[ "dün"
]
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
[ "yarın"
]
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
[ "yarından sonraki"
, "yarından sonraki gün"
]
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
[ "ay sonu"
]
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
[ "yıl sonu"
]
, examples (datetime (2013, 2, 18, 0, 0, 0) Day)
[ "pazartesi"
, "bu pazartesi"
, "18 şubat pazartesi"
, "şubat 18 pazartesi"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "salı"
, "sal"
, "bu salı"
, "19 şubat salı"
]
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
[ "perşembe"
, "per"
]
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
[ "cuma"
, "cum"
]
, examples (datetime (2013, 2, 16, 0, 0, 0) Day)
[ "cumartesi"
, "cmt"
]
, examples (datetime (2013, 2, 17, 0, 0, 0) Day)
[ "pazar"
]
, examples (datetime (2013, 3, 3, 0, 0, 0) Day)
[ "martın üçü"
, "3 mart"
]
, examples (datetime (2013, 3, 15, 0, 0, 0) Day)
[ "martın ortası"
]
, examples (datetime (2013, 2, 13, 0, 0, 0) Day)
[ "şubatın ortası"
]
, examples (datetime (2015, 3, 3, 0, 0, 0) Day)
[ "mart 3 2015"
, "mart üç 2015"
, "3 mart 2015"
, "üç mart 2015"
, "3/3/2015"
, "2015-3-3"
, "2015-03-03"
]
, examples (datetime (2013, 8, 8, 0, 0, 0) Day)
[ "Ağu 8"
, "Ağustos 8"
]
, examples (datetime (2014, 7, 18, 0, 0, 0) Day)
[ "cuma temmuz 18"
, "temmuz 18 cuma"
, "18 temmuz cuma"
]
, examples (datetime (2014, 10, 1, 0, 0, 0) Month)
[ "Ekim 2014"
]
, examples (datetime (2015, 4, 14, 0, 0, 0) Day)
[ "14 nisan 2015"
, "nisan 14 2015"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "önümüzdeki salı"
, "sonraki salı"
]
, examples (datetime (2013, 2, 15, 0, 0, 0) Day)
[ "sonraki cuma"
]
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
[ "önümüzdeki mart"
, "sonraki mart"
, "sonraki ay"
, "önümüzdeki ay"
]
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
[ "önümüzdeki mart"
]
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
[ "pazar 10 şubat"
]
, examples (datetime (2013, 2, 11, 0, 0, 0) Week)
[ "bu hafta"
]
, examples (datetime (2013, 2, 18, 0, 0, 0) Week)
[ "önümüzdeki hafta"
]
, examples (datetime (2013, 2, 4, 0, 0, 0) Week)
[ "geçen hafta"
, "geçtiğimiz hafta"
, "önceki hafta"
]
, examples (datetime (2013, 2, 18, 0, 0, 0) Week)
[ "sonraki hafta"
, "gelecek hafta"
, "önümüzdeki hafta"
]
, examples (datetime (2013, 1, 1, 0, 0, 0) Month)
[ "geçen ay"
, "geçtiğimiz ay"
, "önceki ay"
]
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
[ "önümüzdeki ay"
, "sonraki ay"
, "gelecek ay"
]
, examples (datetime (2013, 1, 1, 0, 0, 0) Quarter)
[ "bu çeyrek yıl"
]
, examples (datetime (2013, 4, 1, 0, 0, 0) Quarter)
[ "sonraki çeyrek yıl"
]
, examples (datetime (2013, 7, 1, 0, 0, 0) Quarter)
[ "üçüncü çeyrek yıl"
]
, examples (datetime (2013, 10, 1, 0, 0, 0) Quarter)
[ "dördüncü çeyrek yıl"
]
, examples (datetime (2012, 1, 1, 0, 0, 0) Year)
[ "geçen yıl"
]
, examples (datetime (2013, 1, 1, 0, 0, 0) Year)
[ "bu yıl"
]
, examples (datetime (2014, 1, 1, 0, 0, 0) Year)
[ "sonraki yıl"
]
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
[ "geçen pazar"
, "geçen hafta pazar"
]
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
[ "geçen salı"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "önümüzdeki salı"
, "gelecek salı"
, "sonraki salı"
]
, examples (datetime (2013, 2, 20, 0, 0, 0) Day)
[ "gelecek hafta çarşamba"
]
, examples (datetime (2013, 2, 14, 0, 0, 0) Day)
[ "yarından sonraki gün"
]
, examples (datetime (2013, 2, 13, 17, 0, 0) Hour)
[ "sonraki gün saat 17"
]
, examples (datetime (2013, 2, 10, 0, 0, 0) Day)
[ "dün değil evvelsi gün"
, "dünden önceki gün"
, "öbürki gün"
, "öbürsü gün"
]
, examples (datetime (2013, 2, 10, 8, 0, 0) Hour)
[ "dünden önceki gün saat 8"
]
, examples (datetime (2013, 10, 1, 0, 0, 0) Day)
[ "ekimin birinci salı"
, "ekimin birinci salısı"
]
, examples (datetime (2014, 10, 1, 0, 0, 0) Day)
[ "ekim 2014 birinci çarşambası"
]
, examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
[ "saat 3"
]
, examples (datetime (2013, 2, 12, 10, 0, 0) Hour)
[ "sabah saat 10"
]
, examples (datetime (2013, 2, 13, 3, 18, 0) Minute)
[ "3:18"
, "03:18"
]
, examples (datetime (2013, 2, 12, 15, 0, 0) Hour)
[ "saat 15"
]
, examples (datetime (2013, 2, 12, 15, 0, 0) Minute)
[ "15:00"
]
, examples (datetime (2013, 2, 12, 15, 3, 0) Minute)
[ "saat 15:03"
, "15:03"
]
, examples (datetime (2013, 2, 12, 9, 59, 0) Minute)
[ "saat dokuz elli dokuz"
]
, examples (datetime (2013, 9, 20, 19, 30, 0) Minute)
[ "20 eylül cuma saat 19:30"
]
, examples (datetime (2013, 2, 16, 9, 0, 0) Hour)
[ "cumartesi saat 9"
, "cumartesi sabah saat 9"
]
, examples (datetime (2014, 7, 18, 19, 0, 0) Minute)
[ "18 temmuz 2014 cuma saat 19:00"
, "saat 19:00 18 temmuz 2014 cuma"
]
, examples (datetime (2013, 2, 12, 4, 30, 1) Second)
[ "bir saniye içinde"
, "bir saniye içerisinde"
, "1 saniye içerisinde"
, "1 saniye içinde"
]
, examples (datetime (2013, 2, 12, 4, 31, 0) Second)
[ "bir dakika içinde"
, "bir dakika içerisinde"
, "1 dakika içinde"
, "1 dakika içerisinde"
]
, examples (datetime (2013, 2, 12, 4, 32, 0) Second)
[ "2 dakika içinde"
]
, examples (datetime (2013, 2, 12, 5, 30, 0) Second)
[ "60 dakika içinde"
]
, examples (datetime (2013, 2, 12, 5, 30, 0) Minute)
[ "bir saat içinde"
]
, examples (datetime (2013, 2, 13, 4, 0, 0) Hour)
[ "bir gün sonra"
]
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
[ "7 gün içinde"
]
, examples (datetime (2017, 2, 1, 17, 0, 0) Hour)
[ "4 yıl sonra saat 17"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "1 hafta içinde"
, "1 hafta sonra"
]
, examples (datetime (2013, 2, 5, 4, 0, 0) Hour)
[ "7 gün önce"
]
, examples (datetime (2013, 1, 29, 4, 0, 0) Hour)
[ "14 gün önce"
, "iki hafta önce"
]
, examples (datetime (2013, 2, 5, 0, 0, 0) Day)
[ "bir hafta önce"
, "1 hafta önce"
]
, examples (datetime (2013, 1, 22, 0, 0, 0) Day)
[ "üç hafta önce"
]
, examples (datetime (2012, 11, 12, 0, 0, 0) Day)
[ "üç ay önce"
]
, examples (datetime (2011, 2, 1, 0, 0, 0) Month)
[ "iki yıl önce"
]
, examples (datetime (2013, 2, 19, 4, 0, 0) Hour)
[ "7 gün sonra"
]
, examples (datetime (2013, 2, 26, 4, 0, 0) Hour)
[ "14 gün sonra"
, "iki hafta sonra"
]
, examples (datetime (2013, 2, 19, 0, 0, 0) Day)
[ "bir hafta sonra"
, "1 hafta sonra"
]
, examples (datetime (2013, 3, 5, 0, 0, 0) Day)
[ "üç hafta sonra"
]
, examples (datetime (2013, 5, 12, 0, 0, 0) Day)
[ "üç ay sonra"
]
, examples (datetime (2015, 2, 1, 0, 0, 0) Month)
[ "iki yıl sonra"
]
, examples (datetime (2014, 1, 1, 0, 0, 0) Day)
[ "yılbaşından sonra bir yıl"
, "yılbaşından bir yıl sonra"
]
, examples (datetimeInterval ((2013, 12, 18, 0, 0, 0), (2013, 12, 29, 0, 0, 0)) Day)
[ "18 aralıktan itibaren 10 gün boyunca"
, "18 aralıktan itibaren 10 gün süresince"
]
, examples (datetime (2013, 2, 12, 16, 30, 0) Minute)
[ "saat 16'dan 30 dakika sonra"
]
, examples (datetimeInterval ((2013, 6, 21, 0, 0, 0), (2013, 9, 24, 0, 0, 0)) Day)
[ "bu yaz"
]
, examples (datetimeInterval ((2012, 12, 21, 0, 0, 0), (2013, 3, 21, 0, 0, 0)) Day)
[ "bu kış"
]
, examples (datetimeInterval ((2011, 12, 21, 0, 0, 0), (2012, 03, 21, 0, 0, 0)) Day)
[ "geçen kış"
, "önceki kış"
]
, examples (datetimeInterval ((2013, 3, 20, 0, 0, 0), (2013, 6, 22, 0, 0, 0)) Day)
[ "gelecek ilkbahar"
]
, examples (datetimeHoliday (2014, 1, 1, 0, 0, 0) Day "Yılbaşı")
[ "yılbaşı"
]
, examples (datetimeHoliday (2014, 1, 1, 18, 0, 0) Hour "Yılbaşı")
[ "yılbaşı saat 18"
]
, examples (datetimeInterval ((2013, 2, 12, 18, 0, 0), (2013, 2, 13, 0, 0, 0)) Hour)
[ "bu akşam"
]
, examples (datetimeInterval ((2013, 2, 8, 18, 0, 0), (2013, 2, 11, 0, 0, 0)) Hour)
[ "geçen hafta sonu"
]
, examples (datetimeInterval ((2013, 2, 13, 18, 0, 0), (2013, 2, 14, 0, 0, 0)) Hour)
[ "yarın akşam"
]
, examples (datetimeInterval ((2013, 2, 13, 12, 0, 0), (2013, 2, 13, 14, 0, 0)) Hour)
[ "yarın öğle yemeği"
]
, examples (datetimeInterval ((2013, 2, 11, 18, 0, 0), (2013, 2, 12, 0, 0, 0)) Hour)
[ "dün akşam"
]
, examples (datetimeInterval ((2013, 2, 15, 18, 0, 0), (2013, 2, 18, 0, 0, 0)) Hour)
[ "bu hafta sonu"
]
, examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 2, 18, 12, 0, 0)) Hour)
[ "pazartesi sabah"
]
, examples (datetimeInterval ((2013, 2, 15, 0, 0, 0), (2013, 2, 15, 12, 0, 0)) Hour)
[ "15 şubat sabahı"
]
, examples (datetimeInterval ((2013, 2, 12, 4, 29, 58), (2013, 2, 12, 4, 30, 0)) Second)
[ "son 2 saniye"
, "son iki saniye"
]
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 1), (2013, 2, 12, 4, 30, 4)) Second)
[ "sonraki 3 saniye"
, "sonraki üç saniye"
]
, examples (datetimeInterval ((2013, 2, 12, 4, 28, 0), (2013, 2, 12, 4, 30, 0)) Minute)
[ "son 2 dakika"
, "son iki dakika"
]
, examples (datetimeInterval ((2013, 2, 12, 3, 0, 0), (2013, 2, 12, 4, 0, 0)) Hour)
[ "son 1 saat"
, "son bir saat"
]
, examples (datetimeInterval ((2013, 2, 12, 5, 0, 0), (2013, 2, 12, 8, 0, 0)) Hour)
[ "sonraki 3 saat"
, "sonraki üç saat"
]
, examples (datetimeInterval ((2013, 2, 10, 0, 0, 0), (2013, 2, 12, 0, 0, 0)) Day)
[ "son iki gün"
, "son 2 gün"
]
, examples (datetimeInterval ((2013, 1, 28, 0, 0, 0), (2013, 2, 11, 0, 0, 0)) Week)
[ "geçtiğimiz iki hafta"
, "önceki iki hafta"
]
, examples (datetimeInterval ((2013, 2, 18, 0, 0, 0), (2013, 3, 11, 0, 0, 0)) Week)
[ "önümüzdeki üç hafta"
, "sonraki üç hafta"
]
, examples (datetimeInterval ((2012, 12, 1, 0, 0, 0), (2013, 2, 1, 0, 0, 0)) Month)
[ "son 2 ay"
, "son iki ay"
]
, examples (datetimeInterval ((2011, 1, 1, 0, 0, 0), (2013, 1, 1, 0, 0, 0)) Year)
[ "son 2 yıl"
, "son iki yıl"
]
, examples (datetimeInterval ((2014, 1, 1, 0, 0, 0), (2017, 1, 1, 0, 0, 0)) Year)
[ "önümüzdeki üç yıl"
, "önümüzdeki 3 yıl"
]
, examples (datetimeInterval ((2013, 8, 8, 0, 0, 0), (2013, 8, 13, 0, 0, 0)) Day)
[ "8 Ağu - 12 Ağu"
]
, 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)
[ "perşembe 9:30 - 11:00"
]
, examples (datetimeInterval ((2013, 2, 12, 15, 0, 0), (2013, 2, 12, 17, 0, 0)) Hour)
[ "saat 15-16"]
, examples (datetimeInterval ((2013, 2, 12, 15, 30, 0), (2013, 2, 12, 18, 1, 0)) Minute)
[ "saat 15:30 - 18"]
, examples (datetimeInterval ((2013, 2, 14, 9, 0, 0), (2013, 2, 14, 12, 0, 0)) Hour)
[ "perşembe saat 9-11"
]
, examples (datetimeInterval ((2013, 2, 12, 11, 30, 0), (2013, 2, 12, 13, 31, 0)) Minute)
[ "saat 11:30-13:30"
]
, examples (datetime (2013, 9, 21, 13, 30, 0) Minute)
[ "21 eylül cumartesi saat 13:30"
]
, examples (datetime (2013, 2, 26, 0, 0, 0) Day)
[ "2 hafta içinde"
]
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 2, 13, 0, 0, 0)) Second)
[ "gün sonuna kadar"
]
, examples (datetimeInterval ((2013, 2, 12, 4, 30, 0), (2013, 3, 1, 0, 0, 0)) Second)
[ "ay sonuna kadar"
]
, examples (datetime (2013, 3, 1, 0, 0, 0) Month)
[ "ay sonunda"
, "ay sonu"
]
, examples (datetime (2013, 2, 12, 10, 30, 0) Minute)
[ "saat 10:30 civarı"
, "10:30 civarı"
, "yaklaşık saat 10:30"
, "saat yaklaşık 10:30"
]
, examples (datetime (2013, 2, 12, 19, 30, 0) Minute)
[ "akşam saat 19:30"
]
, examples (datetime (2013, 2, 13, 15, 0, 0) Minute)
[ "yarın saat 15:00"
]
, examples (datetimeInterval ((2013, 2, 11, 0, 0, 0), (2013, 2, 17, 0, 0, 0)) Day)
[ "hafta boyunca"
]
, examples (datetimeHoliday (1950, 7, 16, 0, 0, 0) Day "Ramazan Bayramı")
[ "ramazan bayramı 1950"
, "1950 ramazan bayramı"
]
, examples (datetimeHoliday (1975, 10, 6, 0, 0, 0) Day "Ramazan Bayramı")
[ "1975 ramazan bayramı"
]
, examples (datetimeHoliday (1988, 5, 16, 0, 0, 0) Day "Ramazan Bayramı")
[ "1988 ramazan bayramı"
]
, examples (datetimeHoliday (2018, 6, 15, 0, 0, 0) Day "Ramazan Bayramı")
[ "2018 ramazan bayramı"
]
, examples (datetimeHoliday (2013, 8, 8, 0, 0, 0) Day "Ramazan Bayramı")
[ "2013 ramazan bayramı"
]
, examples (datetimeHoliday (2046, 8, 4, 0, 0, 0) Day "Ramazan Bayramı")
[ "2046 ramazan bayramı"
]
, examples (datetimeHoliday (2050, 6, 21, 0, 0, 0) Day "Ramazan Bayramı")
[ "2050 ramazan bayramı"
]
, examples (datetimeHoliday (2018, 8, 21, 0, 0, 0) Day "Kurban Bayramı")
[ "2018 kurban bayramı"
]
, examples (datetimeHoliday (1980, 10, 19, 0, 0, 0) Day "Kurban Bayramı")
[ "1980 kurban bayramı"
]
, examples (datetimeHoliday (1966, 4, 1, 0, 0, 0) Day "Kurban Bayramı")
[ "1966 kurban bayramı"
]
, examples (datetimeHoliday (1974, 1, 3, 0, 0, 0) Day "Kurban Bayramı")
[ "1974 kurban bayramı"
]
, examples (datetimeHoliday (2013, 4, 23, 0, 0, 0) Day "Ulusal Egemenlik ve Çocuk Bayramı")
[ "ulusal egemenlik ve çocuk bayramı"
, "çocuk bayramı"
]
, examples (datetimeHoliday (2013, 5, 1, 0, 0, 0) Day "Emek ve Dayanışma Günü")
[ "emek ve dayanışma günü"
]
, examples (datetimeHoliday (2013, 5, 19, 0, 0, 0) Day "Atatürkü Anma, Gençlik ve Spor Bayramı")
[ "gençlik ve spor bayramı"
, "gençlik bayramı"
, "spor bayramı"
]
, examples (datetimeHoliday (2013, 8, 30, 0, 0, 0) Day "Zafer Bayramı")
[ "zafer bayramı"
]
, examples (datetimeHoliday (2013, 10, 29, 0, 0, 0) Day "Cumhuriyet Bayramı")
[ "cumhuriyet bayramı"
]
]

1140
Duckling/Time/TR/Rules.hs Normal file

File diff suppressed because it is too large Load Diff

View File

@ -20,14 +20,14 @@ import Duckling.Types
import qualified Duckling.TimeGrain.Types as TG
grains :: [(Text, String, TG.Grain)]
grains = [ ("saniye (grain)", "sa?n(iye)?", TG.Second)
, ("dakika (grain)", "da?k(ika)?", TG.Minute)
, ("saat (grain)", "sa(at)?", TG.Hour)
, ("gün (grain)", "gün", TG.Day)
, ("hafta (grain)", "hafta", TG.Week)
, ("ay (grain)", "ay", TG.Month)
, ("çeyrek yıl (grain)", "\231eyrek y\305l", TG.Quarter)
, ("yıl (grain)", "y\305l", TG.Year)
grains = [ ("saniye (grain)", "sa?n(iye)?(nin)?", TG.Second)
, ("dakika (grain)", "da?k(ika)?(nın)?", TG.Minute)
, ("saat (grain)", "sa(at)?(in)?", TG.Hour)
, ("gün (grain)", "gün(ün)?", TG.Day)
, ("hafta (grain)", "hafta(nın)?", TG.Week)
, ("ay (grain)", "ay(ın)?", TG.Month)
, ("çeyrek yıl (grain)", "\231eyrek y\305l(ın)?", TG.Quarter)
, ("yıl (grain)", "y\305l(ın)?", TG.Year)
]
rules :: [Rule]

View File

@ -743,6 +743,8 @@ library
, Duckling.Time.RU.Rules
, Duckling.Time.SV.Corpus
, Duckling.Time.SV.Rules
, Duckling.Time.TR.Corpus
, Duckling.Time.TR.Rules
, Duckling.Time.UK.Corpus
, Duckling.Time.UK.Rules
, Duckling.Time.VI.Corpus

View File

@ -52,6 +52,7 @@ import qualified Duckling.Time.PT.Corpus as PTTime
import qualified Duckling.Time.RO.Corpus as ROTime
import qualified Duckling.Time.RU.Corpus as RUTime
import qualified Duckling.Time.SV.Corpus as SVTime
import qualified Duckling.Time.TR.Corpus as TRTime
import qualified Duckling.Time.UK.Corpus as UKTime
import qualified Duckling.Time.VI.Corpus as VITime
import qualified Duckling.Time.ZH.Corpus as ZHTime
@ -215,7 +216,7 @@ getCorpusForLang SW = (testContext, testOptions, [])
getCorpusForLang TA = (testContext, testOptions, [])
getCorpusForLang TE = (testContext, testOptions, [])
getCorpusForLang TH = (testContext, testOptions, [])
getCorpusForLang TR = (testContext, testOptions, [])
getCorpusForLang TR = TRTime.corpus
getCorpusForLang UK = UKTime.corpus
getCorpusForLang VI = VITime.corpus
getCorpusForLang ZH = ZHTime.corpus

View File

@ -0,0 +1,14 @@
module Duckling.Time.TR.Tests
( tests ) where
import Data.String
import Test.Tasty
import Duckling.Dimensions.Types
import Duckling.Testing.Asserts
import Duckling.Time.TR.Corpus
tests :: TestTree
tests = testGroup "TR Tests"
[ makeCorpusTest [Seal Time] corpus
]