context.cotrie(file)

Generate a "cotrie" automaton from a finite series, given as a file of (weighted) words.

Postconditions:

  • Result.is_codeterministic()

See also:

Examples

In [1]:
import vcsn
:0: FutureWarning: IPython widgets are experimental and may change in the future.

Words (finite language)

In [2]:
%%file words
hello
world
hell
word
Overwriting words
In [3]:
vcsn.B.cotrie('words')
Out[3]:
%3 I5 5 5 I5->5 I10 10 10 I10->10 I14 14 14 I14->14 I17 17 17 I17->17 F0 0 0 0->F0 1 1 1->0 o 2 2 2->1 l 3 3 3->2 l 4 4 4->3 e 5->4 h 6 6 6->0 d 7 7 7->6 l 8 8 8->7 r 9 9 9->8 o 10->9 w 11 11 11->0 l 12 12 12->11 l 13 13 13->12 e 14->13 h 15 15 15->6 r 16 16 16->15 o 17->16 w

Weighted words (finite series)

In [4]:
%%file numbers
one
<2>two
<3>three
<4>four
<1/2>half
Overwriting numbers
In [5]:
vcsn.Q.cotrie('numbers')
Out[5]:
%3 I3 3 3 I3->3 I6 6 6 I6->6 ⟨2⟩ I10 10 10 I10->10 ⟨3⟩ I14 14 14 I14->14 ⟨4⟩ I18 18 18 I18->18 ⟨1/2⟩ F0 0 0 0->F0 1 1 1->0 e 2 2 2->1 n 3->2 o 4 4 4->0 o 5 5 5->4 w 6->5 t 7 7 7->1 e 8 8 8->7 r 9 9 9->8 h 10->9 t 11 11 11->0 r 12 12 12->11 u 13 13 13->12 o 14->13 f 15 15 15->0 f 16 16 16->15 l 17 17 17->16 a 18->17 h

Tuples of words

In [6]:
%%file translator
<1>one|un
<2>two|deux
<3>three|trois
<4>four|quatre
<14>forteen|quatorze
<40>forty|quarante
Overwriting translator
In [8]:
vcsn.context('lat<law_char, law_char>, q').cotrie('translator')
Out[8]:
%3 I3 3 3 I3->3 I7 7 7 I7->7 ⟨2⟩ I12 12 12 I12->12 ⟨3⟩ I18 18 18 I18->18 ⟨4⟩ I26 26 26 I26->26 ⟨14⟩ I34 34 34 I34->34 ⟨40⟩ F0 0 0 0->F0 1 1 1->0 e|n 2 2 2->1 n|u 3->2 o|ε 4 4 4->0 o|x 5 5 5->4 w|u 6 6 6->5 t|e 7->6 ε|d 8 8 8->0 e|s 9 9 9->8 e|i 10 10 10->9 r|o 11 11 11->10 h|r 12->11 t|t 13 13 13->0 r|e 14 14 14->13 u|r 15 15 15->14 o|t 16 16 16->15 f|a 17 17 17->16 ε|u 18->17 ε|q 19 19 19->0 n|e 20 20 20->19 e|z 21 21 21->20 e|r 22 22 22->21 t|o 23 23 23->22 r|t 24 24 24->23 o|a 25 25 25->24 f|u 26->25 ε|q 27 27 27->0 y|e 28 28 28->27 t|t 29 29 29->28 r|n 30 30 30->29 o|a 31 31 31->30 f|r 32 32 32->31 ε|a 33 33 33->32 ε|u 34->33 ε|q