mirror of
https://github.com/facebook/duckling.git
synced 2024-09-11 21:27:13 +03:00
Distance for Croatian
Summary: Distance dimension for Croatian. Reviewed By: niteria Differential Revision: D4957067 fbshipit-source-id: 232ce30
This commit is contained in:
parent
35b9101c48
commit
0aa4aa56bb
@ -14,7 +14,8 @@ import Duckling.Dimensions.Types
|
||||
|
||||
allDimensions :: [Some Dimension]
|
||||
allDimensions =
|
||||
[ This Duration
|
||||
[ This Distance
|
||||
, This Duration
|
||||
, This Numeral
|
||||
, This Ordinal
|
||||
, This Time
|
||||
|
45
Duckling/Distance/HR/Corpus.hs
Normal file
45
Duckling/Distance/HR/Corpus.hs
Normal file
@ -0,0 +1,45 @@
|
||||
-- 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.Distance.HR.Corpus
|
||||
( corpus ) where
|
||||
|
||||
import Prelude
|
||||
import Data.String
|
||||
|
||||
import Duckling.Distance.Types
|
||||
import Duckling.Lang
|
||||
import Duckling.Resolve
|
||||
import Duckling.Testing.Types
|
||||
|
||||
corpus :: Corpus
|
||||
corpus = (testContext {lang = HR}, allExamples)
|
||||
|
||||
allExamples :: [Example]
|
||||
allExamples = concat
|
||||
[ examples (DistanceValue Kilometre 3)
|
||||
[ "3 kilometra"
|
||||
, "3 km"
|
||||
, "3km"
|
||||
, "3k"
|
||||
]
|
||||
, examples (DistanceValue Kilometre 3.0)
|
||||
[ "3,0 km"
|
||||
]
|
||||
, examples (DistanceValue Mile 8)
|
||||
[ "8 milja"
|
||||
]
|
||||
, examples (DistanceValue M 9)
|
||||
[ "9m"
|
||||
]
|
||||
, examples (DistanceValue Centimetre 2)
|
||||
[ "2cm"
|
||||
, "2 centimetra"
|
||||
]
|
||||
]
|
92
Duckling/Distance/HR/Rules.hs
Normal file
92
Duckling/Distance/HR/Rules.hs
Normal file
@ -0,0 +1,92 @@
|
||||
-- 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.Distance.HR.Rules
|
||||
( rules ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Distance.Helpers
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Distance.Types as TDistance
|
||||
|
||||
ruleLatentDistKm :: Rule
|
||||
ruleLatentDistKm = Rule
|
||||
{ name = "<latent dist> km"
|
||||
, pattern =
|
||||
[ dimension Distance
|
||||
, regex "k(ilo)?m?(eta?r)?a?"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Distance dd:_) ->
|
||||
Just . Token Distance $ withUnit TDistance.Kilometre dd
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistMetar :: Rule
|
||||
ruleDistMetar = Rule
|
||||
{ name = "<dist> metar"
|
||||
, pattern =
|
||||
[ dimension Distance
|
||||
, regex "metara?"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Distance dd:_) ->
|
||||
Just . Token Distance $ withUnit TDistance.Metre dd
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistCentimetar :: Rule
|
||||
ruleDistCentimetar = Rule
|
||||
{ name = "<dist> centimetar"
|
||||
, pattern =
|
||||
[ dimension Distance
|
||||
, regex "cm|centimeta?ra?"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Distance dd:_) ->
|
||||
Just . Token Distance $ withUnit TDistance.Centimetre dd
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistMilja :: Rule
|
||||
ruleDistMilja = Rule
|
||||
{ name = "<dist> milja"
|
||||
, pattern =
|
||||
[ dimension Distance
|
||||
, regex "milja"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Distance dd:_) -> Just . Token Distance $ withUnit TDistance.Mile dd
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistMAmbiguousMilesOrMeters :: Rule
|
||||
ruleDistMAmbiguousMilesOrMeters = Rule
|
||||
{ name = "<dist> m (ambiguous miles or meters)"
|
||||
, pattern =
|
||||
[ dimension Distance
|
||||
, regex "m"
|
||||
]
|
||||
, prod = \tokens -> case tokens of
|
||||
(Token Distance dd:_) -> Just . Token Distance $ withUnit TDistance.M dd
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
rules :: [Rule]
|
||||
rules =
|
||||
[ ruleDistCentimetar
|
||||
, ruleDistMAmbiguousMilesOrMeters
|
||||
, ruleDistMetar
|
||||
, ruleDistMilja
|
||||
, ruleLatentDistKm
|
||||
]
|
@ -16,6 +16,7 @@ module Duckling.Rules.HR
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Types
|
||||
import qualified Duckling.AmountOfMoney.HR.Rules as AmountOfMoney
|
||||
import qualified Duckling.Distance.HR.Rules as Distance
|
||||
import qualified Duckling.Duration.HR.Rules as Duration
|
||||
import qualified Duckling.Numeral.HR.Rules as Numeral
|
||||
import qualified Duckling.Ordinal.HR.Rules as Ordinal
|
||||
@ -23,7 +24,7 @@ import qualified Duckling.Time.HR.Rules as Time
|
||||
import qualified Duckling.TimeGrain.HR.Rules as TimeGrain
|
||||
|
||||
rules :: Some Dimension -> [Rule]
|
||||
rules (This Distance) = []
|
||||
rules (This Distance) = Distance.rules
|
||||
rules (This Duration) = Duration.rules
|
||||
rules (This Numeral) = Numeral.rules
|
||||
rules (This Email) = []
|
||||
|
@ -167,6 +167,8 @@ library
|
||||
, Duckling.Distance.FR.Rules
|
||||
, Duckling.Distance.GA.Corpus
|
||||
, Duckling.Distance.GA.Rules
|
||||
, Duckling.Distance.HR.Corpus
|
||||
, Duckling.Distance.HR.Rules
|
||||
, Duckling.Distance.KO.Corpus
|
||||
, Duckling.Distance.KO.Rules
|
||||
, Duckling.Distance.PT.Corpus
|
||||
@ -534,6 +536,7 @@ test-suite duckling-test
|
||||
, Duckling.Distance.ES.Tests
|
||||
, Duckling.Distance.FR.Tests
|
||||
, Duckling.Distance.GA.Tests
|
||||
, Duckling.Distance.HR.Tests
|
||||
, Duckling.Distance.KO.Tests
|
||||
, Duckling.Distance.NL.Tests
|
||||
, Duckling.Distance.PT.Tests
|
||||
|
22
tests/Duckling/Distance/HR/Tests.hs
Normal file
22
tests/Duckling/Distance/HR/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.Distance.HR.Tests
|
||||
( tests ) where
|
||||
|
||||
import Data.String
|
||||
import Prelude
|
||||
import Test.Tasty
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Distance.HR.Corpus
|
||||
import Duckling.Testing.Asserts
|
||||
|
||||
tests :: TestTree
|
||||
tests = testGroup "HR Tests"
|
||||
[ makeCorpusTest [This Distance] corpus
|
||||
]
|
@ -16,6 +16,7 @@ import qualified Duckling.Distance.EN.Tests as EN
|
||||
import qualified Duckling.Distance.ES.Tests as ES
|
||||
import qualified Duckling.Distance.FR.Tests as FR
|
||||
import qualified Duckling.Distance.GA.Tests as GA
|
||||
import qualified Duckling.Distance.HR.Tests as HR
|
||||
import qualified Duckling.Distance.KO.Tests as KO
|
||||
import qualified Duckling.Distance.NL.Tests as NL
|
||||
import qualified Duckling.Distance.PT.Tests as PT
|
||||
@ -27,6 +28,7 @@ tests = testGroup "Distance Tests"
|
||||
, ES.tests
|
||||
, FR.tests
|
||||
, GA.tests
|
||||
, HR.tests
|
||||
, KO.tests
|
||||
, NL.tests
|
||||
, PT.tests
|
||||
|
Loading…
Reference in New Issue
Block a user