mirror of
https://github.com/facebook/duckling.git
synced 2024-10-26 21:59:44 +03:00
Extend distance rules
Summary: Add rules: - one meter and <dist> - <dist> meters and <dist> Reviewed By: girifb Differential Revision: D26191350 Pulled By: chessai fbshipit-source-id: 52c85c94647e98fba866c24d3386eea988f7f58c
This commit is contained in:
parent
776b1ec64d
commit
b6da3929ce
@ -68,4 +68,14 @@ allExamples = concat
|
||||
, "1英里"
|
||||
, "一英裏"
|
||||
]
|
||||
, examples (simple Metre 1.9)
|
||||
[ "1.9 m"
|
||||
, "1.9米"
|
||||
, "米九"
|
||||
]
|
||||
, examples (simple Metre 3.9)
|
||||
[ "3.9 m"
|
||||
, "3.9米"
|
||||
, "三米九"
|
||||
]
|
||||
]
|
||||
|
@ -17,7 +17,8 @@ import Prelude
|
||||
|
||||
import Duckling.Dimensions.Types
|
||||
import Duckling.Distance.Helpers
|
||||
import Duckling.Numeral.Types (NumeralData (..))
|
||||
import Duckling.Numeral.Helpers
|
||||
import Duckling.Numeral.Types
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Distance.Types as TDistance
|
||||
import qualified Duckling.Numeral.Types as TNumeral
|
||||
@ -116,6 +117,34 @@ ruleDistMiles = Rule
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistOneMeterAnd :: Rule
|
||||
ruleDistOneMeterAnd = Rule
|
||||
{ name = "one meter and <dist>"
|
||||
, pattern =
|
||||
[ regex "米"
|
||||
, Predicate isPositive
|
||||
]
|
||||
, prod = \case
|
||||
(_:Token Numeral NumeralData{TNumeral.value = v}:_) ->
|
||||
Just . Token Distance $ withUnit TDistance.Metre (distance (1 + v/10))
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
ruleDistMetersAnd :: Rule
|
||||
ruleDistMetersAnd = Rule
|
||||
{ name = "<dist> meters and <dist>"
|
||||
, pattern =
|
||||
[ Predicate isPositive
|
||||
, regex "米"
|
||||
, Predicate isPositive
|
||||
]
|
||||
, prod = \case
|
||||
(Token Numeral NumeralData{TNumeral.value = v1}:_:
|
||||
Token Numeral NumeralData{TNumeral.value = v2}:_) ->
|
||||
Just . Token Distance $ withUnit TDistance.Metre (distance (v1 + v2/10))
|
||||
_ -> Nothing
|
||||
}
|
||||
|
||||
rules :: [Rule]
|
||||
rules =
|
||||
[ ruleDistCentimeters
|
||||
@ -125,4 +154,6 @@ rules =
|
||||
, ruleDistKm
|
||||
, ruleDistMeters
|
||||
, ruleDistMiles
|
||||
, ruleDistOneMeterAnd
|
||||
, ruleDistMetersAnd
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user