mirror of
https://github.com/facebook/duckling.git
synced 2024-10-26 21:59:44 +03:00
IT: Temperature
Summary: Temperature dimension for Italian. Reviewed By: JonCoens Differential Revision: D4970338 fbshipit-source-id: 024802e
This commit is contained in:
parent
74936df848
commit
ab2c89df4f
@ -17,5 +17,6 @@ allDimensions =
|
||||
[ This Duration
|
||||
, This Numeral
|
||||
, This Ordinal
|
||||
, This Temperature
|
||||
, This Time
|
||||
]
|
||||
|
@ -18,6 +18,7 @@ import qualified Duckling.Duration.IT.Rules as Duration
|
||||
import qualified Duckling.Email.IT.Rules as Email
|
||||
import qualified Duckling.Numeral.IT.Rules as Numeral
|
||||
import qualified Duckling.Ordinal.IT.Rules as Ordinal
|
||||
import qualified Duckling.Temperature.IT.Rules as Temperature
|
||||
import qualified Duckling.Time.IT.Rules as Time
|
||||
import qualified Duckling.TimeGrain.IT.Rules as TimeGrain
|
||||
import Duckling.Types
|
||||
@ -32,7 +33,7 @@ rules (This Ordinal) = Ordinal.rules
|
||||
rules (This PhoneNumber) = []
|
||||
rules (This Quantity) = []
|
||||
rules (This RegexMatch) = []
|
||||
rules (This Temperature) = []
|
||||
rules (This Temperature) = Temperature.rules
|
||||
rules (This Time) = Time.rules
|
||||
rules (This TimeGrain) = TimeGrain.rules
|
||||
rules (This Url) = []
|
||||
|
52
Duckling/Temperature/IT/Corpus.hs
Normal file
52
Duckling/Temperature/IT/Corpus.hs
Normal file
@ -0,0 +1,52 @@
|
||||
-- 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.Temperature.IT.Corpus
|
||||
( corpus ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
|
||||
import Duckling.Lang
|
||||
import Duckling.Resolve
|
||||
import Duckling.Temperature.Types
|
||||
import Duckling.Testing.Types
|
||||
|
||||
corpus :: Corpus
|
||||
corpus = (testContext {lang = IT}, allExamples)
|
||||
|
||||
allExamples :: [Example]
|
||||
allExamples = concat
|
||||
[ examples (TemperatureValue Celsius 37)
|
||||
[ "37°C"
|
||||
, "37 ° celsius"
|
||||
, "37 ° centigradi"
|
||||
, "37 gradi Celsius"
|
||||
, "37 gradi Centigradi"
|
||||
, "trentasette celsius"
|
||||
, "trentasette gradi centigradi"
|
||||
]
|
||||
, examples (TemperatureValue Celsius 1)
|
||||
[ "1 grado centigrado"
|
||||
]
|
||||
, examples (TemperatureValue Fahrenheit 70)
|
||||
[ "70°F"
|
||||
, "70 ° Fahrenheit"
|
||||
, "70 gradi F"
|
||||
, "70 gradi Fahreneit"
|
||||
, "settanta Fahrenheit"
|
||||
]
|
||||
, examples (TemperatureValue Degree 45)
|
||||
[ "45°"
|
||||
, "45 gradi"
|
||||
]
|
||||
, examples (TemperatureValue Degree 1)
|
||||
[ "1 grado"
|
||||
]
|
||||
]
|
67
Duckling/Temperature/IT/Rules.hs
Normal file
67
Duckling/Temperature/IT/Rules.hs
Normal file
@ -0,0 +1,67 @@
|
||||
-- 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 GADTs #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
|
||||
module Duckling.Temperature.IT.Rules
|
||||
( rules ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Temperature.Helpers
|
||||
import Duckling.Temperature.Types (TemperatureData (..))
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Temperature.Types as TTemperature
|
||||
|
||||
ruleLatentTempDegrees :: Rule
|
||||
ruleLatentTempDegrees = Rule
|
||||
{ name = "<latent temp> degrees"
|
||||
, pattern =
|
||||
[ dimension Temperature
|
||||
, regex "(grad[io]?\\.?)|\x00b0"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Temperature td:_) -> Just . Token Temperature $
|
||||
withUnit TTemperature.Degree td
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleTempCelcius :: Rule
|
||||
ruleTempCelcius = Rule
|
||||
{ name = "<temp> Celcius"
|
||||
, pattern =
|
||||
[ dimension Temperature
|
||||
, regex "(c((el[cs]?(ius)?)|(entigrad[io]))?\\.?)"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Temperature td:_) -> Just . Token Temperature $
|
||||
withUnit TTemperature.Celsius td
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleTempFahrenheit :: Rule
|
||||
ruleTempFahrenheit = Rule
|
||||
{ name = "<temp> Fahrenheit"
|
||||
, pattern =
|
||||
[ dimension Temperature
|
||||
, regex "f(ah?rh?eh?n(h?eit)?)?\\.?"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Temperature td:_) -> Just . Token Temperature $
|
||||
withUnit TTemperature.Fahrenheit td
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
rules :: [Rule]
|
||||
rules =
|
||||
[ ruleLatentTempDegrees
|
||||
, ruleTempCelcius
|
||||
, ruleTempFahrenheit
|
||||
]
|
@ -367,6 +367,8 @@ library
|
||||
, Duckling.Temperature.GA.Rules
|
||||
, Duckling.Temperature.HR.Corpus
|
||||
, Duckling.Temperature.HR.Rules
|
||||
, Duckling.Temperature.IT.Corpus
|
||||
, Duckling.Temperature.IT.Rules
|
||||
, Duckling.Temperature.JA.Corpus
|
||||
, Duckling.Temperature.JA.Rules
|
||||
, Duckling.Temperature.KO.Corpus
|
||||
@ -646,6 +648,7 @@ test-suite duckling-test
|
||||
, Duckling.Temperature.FR.Tests
|
||||
, Duckling.Temperature.GA.Tests
|
||||
, Duckling.Temperature.HR.Tests
|
||||
, Duckling.Temperature.IT.Tests
|
||||
, Duckling.Temperature.JA.Tests
|
||||
, Duckling.Temperature.KO.Tests
|
||||
, Duckling.Temperature.PT.Tests
|
||||
|
22
tests/Duckling/Temperature/IT/Tests.hs
Normal file
22
tests/Duckling/Temperature/IT/Tests.hs
Normal file
@ -0,0 +1,22 @@
|
||||
-- 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.Temperature.IT.Tests
|
||||
( tests ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
import Test.Tasty
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Temperature.IT.Corpus
|
||||
import Duckling.Testing.Asserts
|
||||
|
||||
tests :: TestTree
|
||||
tests = testGroup "IT Tests"
|
||||
[ makeCorpusTest [This Temperature] corpus
|
||||
]
|
@ -17,6 +17,7 @@ import qualified Duckling.Temperature.ES.Tests as ES
|
||||
import qualified Duckling.Temperature.FR.Tests as FR
|
||||
import qualified Duckling.Temperature.GA.Tests as GA
|
||||
import qualified Duckling.Temperature.HR.Tests as HR
|
||||
import qualified Duckling.Temperature.IT.Tests as IT
|
||||
import qualified Duckling.Temperature.JA.Tests as JA
|
||||
import qualified Duckling.Temperature.KO.Tests as KO
|
||||
import qualified Duckling.Temperature.PT.Tests as PT
|
||||
@ -30,6 +31,7 @@ tests = testGroup "Temperature Tests"
|
||||
, FR.tests
|
||||
, GA.tests
|
||||
, HR.tests
|
||||
, IT.tests
|
||||
, JA.tests
|
||||
, KO.tests
|
||||
, PT.tests
|
||||
|
Loading…
Reference in New Issue
Block a user