Subtract (minus) two transducers.


The help message:

Usage: hfst-subtract [OPTIONS...] [INFILE1 [INFILE2]]
Subtract (minus) two transducers

Common options:
  -h, --help             Print help message
  -V, --version          Print version info
  -v, --verbose          Print verbosely while processing
  -q, --quiet            Only print fatal erros and requested output
  -s, --silent           Alias of --quiet
Input/Output options:
  -1, --input1=INFILE1   Read first input transducer from INFILE1
  -2, --input2=INFILE2   Read second input transducer from INFILE2
  -C, --do-not-convert   Do not allow transducers to be converted into the same type
  -o, --output=OUTFILE   Write results to OUTFILE
Flag diacritics:
  -F, --harmonize-flags  Harmonize flag diacritics
  -H, --do-not-harmonize Do not harmonize

If OUTFILE, or either INFILE1 or INFILE2 is missing or -,
standard streams will be used.
INFILE1, INFILE2, or both, must be specified.
Format of result depends on format of INFILE1 and INFILE2;
both should have the same format.

The operation is applied pairwise for INFILE1 and INFILE2
that must have the same number of transducers.
If INFILE2 has only one transducer, the operation is applied for
each transducer in INFILE1 keeping the second transducer constant.

  hfst-subtract -o catdog.hfst cat.hfst dog.hfst  subtracts transducers

Report bugs to <hfst-bugs@helsinki.fi> or directly to our bug tracker at:


We create two transducers. One recognizes a set of animals and their corresponding diminutive forms. The other recognizes a set of plain animal words. Then we subtract the latter from the previous to get a transducer that recognizes a set of diminutive animal words. The commands below:

echo -e "cat\nkitten\ndog\npuppy" | hfst-strings2fst -j -f sfst > animals_diminutive.hfst
echo -e "cat\ndog\nmouse\nhorse\ncow" | hfst-strings2fst -j -f sfst > animals.hfst
hfst-subtract animals_diminutive.hfst animals.hfst | hfst-fst2strings 

will print to the standard output:


-- ErikAxelson - 09 Jul 2008