Difference between revisions of "Talk:Automatically trimming a monodix"

From Apertium
Jump to navigation Jump to search
(Created page with '==Implementing automatic trimming in lttoolbox== The simplest method seems to be to first create the analyser in the normal way, then loop through all its states (see transducer.…')
 
Line 11: Line 11:
 
for s, next_b in bidix.transitions[current_b]:
 
for s, next_b in bidix.transitions[current_b]:
 
if s==symbol:
 
if s==symbol:
trim(next_a, next_b, seentag)
+
trim(next_a, next_b)
 
found = true
 
found = true
  +
if seen tags:
  +
found = true
   
 
if !found && !current_b.isFinal():
 
if !found && !current_b.isFinal():
Line 24: Line 26:
   
 
Trimming while reading the XML file might have lower memory usage, but seems like more work, since pardefs are read before we get to an "initial" state.
 
Trimming while reading the XML file might have lower memory usage, but seems like more work, since pardefs are read before we get to an "initial" state.
  +
  +
  +
https://github.com/unhammer/lttoolbox/branches has some experiments

Revision as of 14:31, 9 February 2013

Implementing automatic trimming in lttoolbox

The simplest method seems to be to first create the analyser in the normal way, then loop through all its states (see transducer.cc:Transducer::closure for a loop example), trying to do the same steps in parallel with the compiled bidix:

trim(current_a, current_b):

  for symbol, next_a in analyser.transitions[current_a]:

    found = false

    for s, next_b in bidix.transitions[current_b]:
      if s==symbol:
         trim(next_a, next_b)
         found = true
    if seen tags: 
      found = true

    if !found && !current_b.isFinal():
      delete symbol from analyser.transitions[current_a]

    // else: all transitions from this point on will just be carried over unchanged by bidix

trim(analyser.initial, bidix.initial)


Trimming while reading the XML file might have lower memory usage, but seems like more work, since pardefs are read before we get to an "initial" state.


https://github.com/unhammer/lttoolbox/branches has some experiments