en_us_normalization.production.classify.MeasureFst

class en_us_normalization.production.classify.MeasureFst(decimal: Optional[DecimalFst] = None, fraction: Optional[FractionFst] = None)[source]

Finite state transducer for classifying measure, suppletive aware, i.e. 12kg -> 12 kilograms, but 1kg -> 1 kilogram. Inside of measure semiotic class there is decimal or fraction semiotic subclasses to specify the amount. Measure matches one of those and then measurement units from the data file: “measurements.tsv”.

Examples of input strings and transducer outputs:

  • -12kg -> measure { decimal { negative: “true” integer_part: “12” } units: “kilograms” }

  • 1kg -> measure { decimal { integer_part: “1” } units: “kilogram” }

  • 300,000 km/s -> measure { decimal { integer_part: “300000” } units: “kilometers per second” }

  • .5kg -> measure { decimal { fractional_part: “5” } units: “kilograms” }

__init__(decimal: Optional[DecimalFst] = None, fraction: Optional[FractionFst] = None)[source]

constructor of measure fst

Parameters
decimal: DecimalFst

fst with decimal numbers to reuse. Created from scratch if not provided.

fraction: FractionFst

fst with fractions to reuse as numbers. Created from scratch if not provided.