Decimal point is either "." or ",", determined by whether "ponto" or "vírgula" is spoken.
e.g. menos um vírgula dois seis -> decimal { negative: "true" integer_part: "1" morphosyntactic_features: "," fractional_part: "26" }
e.g. menos um ponto dois seis -> decimal { negative: "true" integer_part: "1" morphosyntactic_features: "." fractional_part: "26" }
This decimal rule assumes that decimals can be pronounced as:
(a cardinal) + ('vírgula' or 'ponto') plus (any sequence of cardinals <1000, including 'zero')
Also writes large numbers in shortened form, e.g.
e.g. um vírgula dois seis milhões -> decimal { negative: "false" integer_part: "1" morphosyntactic_features: "," fractional_part: "26" quantity: "milhões" }
e.g. dois milhões -> decimal { negative: "false" integer_part: "2" quantity: "milhões" }
e.g. mil oitcentos e vinte e quatro milhões -> decimal { negative: "false" integer_part: "1824" quantity: "milhões" }
Args:
cardinal: CardinalFst
"""
def__init__(self,cardinal:GraphFst):
super().__init__(name="decimal",kind="classify")
# number after decimal point can be any series of cardinals <1000, including 'zero'