Skip to content

AttReader

eaxelson edited this page Aug 29, 2017 · 18 revisions

class AttReader

A class for reading input in AT&T text format and converting it into transducer(s).

An example that reads AT&T input from file 'testfile.att' where epsilon is represented as "" and creates the corresponding transducers and prints them. If the input cannot be parsed, a message showing the invalid line in AT&T input is printed and reading is stopped.

with open('testfile.att', 'r') as f:
    try:
        r = hfst.AttReader(f, "<eps>")
        for tr in r:
            print(tr)
    except hfst.exceptions.NotValidAttFormatException as e:
        print(e.what())

__init__(self, f, epsilonstr=EPSILON)

Create an AttReader that reads input from file f where the epsilon is represented as epsilonstr.

  • f A python file.
  • epsilonstr How epsilon is represented in the file. By default, "@EPSILON_SYMBOL@" and "@0@" are both recognized.

read(self)

Read next transducer.

Read next transducer description in AT&T format and return a corresponding transducer.

Throws: hfst.exceptions.NotValidAttFormatException, hfst.exceptions.EndOfStreamException


next(self)

An iterator to the reader.

Needed for 'for ... in' statement:

for transducer in att_reader:
    print(transducer)

__iter__(self)

Return next element (for python version 2). Needed for 'for ... in' statement.

for transducer in att_reader:
    print(transducer)

Throws: StopIteration


next(self)

Return next element (for python version 3). Needed for 'for ... in' statement.

for transducer in att_reader:
    print(transducer)

Throws: StopIteration


read_prolog_transducer(f)

Read next transducer from prolog file pointed by f.

  • f A python file.

If the file contains several transducers, they must be separated by empty lines.