Module rustfst::semirings

source ·
Expand description

Provides a trait that shall be implemented for all weights stored inside a wFST.

Structs

Traits

A semiring (S, ⊕, ⊗, 0, 1) is said to be complete if for any index set I and any family (ai)i ∈ I of elements of S, ⊕(ai)i∈I is an element of S whose definition does not depend on the order of the terms in the ⊕-sum. Note that in a complete semiring all weighted transducers are regulated since all infinite sums are elements of S. For more information : https://cs.nyu.edu/~mohri/pub/hwa.pdf
For some operations, the weight set associated to a wFST must have the structure of a semiring. (S, +, *, 0, 1) is a semiring if (S, +, 0) is a commutative monoid with identity element 0, (S, *, 1) is a monoid with identity element 1, * distributes over +, 0 is an annihilator for *. Thus, a semiring is a ring that may lack negation. For more information : https://cs.nyu.edu/~mohri/pub/hwa.pdf
A complete semiring S is a starsemiring that is a semiring that can be augmented with an internal unary closure operation ∗ defined by a∗=⊕an (infinite sum) for any a ∈ S. Furthermore, associativity, commutativity, and distributivity apply to these infinite sums. For more information : https://cs.nyu.edu/~mohri/pub/hwa.pdf
A semiring is said to be divisible if all non-0 elements admit an inverse, that is if S-{0} is a group. (S, +, *, 0, 1) is said to be weakly divisible if for any x and y in S such that x + y != 0, there exists at least one z such that x = (x+y)*z. For more information : https://cs.nyu.edu/~mohri/pub/hwa.pdf