---
name: "hfst-strings2fst"
section: "1"
platform: "linux"
package: "hfst"
version: "3.16.2-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/hfst-strings2fst"
---

# hfst-strings2fst(1)

\=Compile string pairs and pair-strings into transducer(s)

## NAME

hfst-strings2fst - =Compile string pairs and pair-strings into transducer(s)

## SYNOPSIS

**hfst-strings2fst** \[*OPTIONS*...\] \[*INFILE*\]

## DESCRIPTION

Compile string pairs and pair-strings into transducer(s)

### 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:

- **-i**, **--input**=*INFILE*

  Read input strings from INFILE

- **-o**, **--output**=*OUTFILE*

  Write output transducer to OUTFILE

### String and format options:

- **-f**, **--format**=*FMT*

  Write result in FMT format

- **-j**, **--disjunct-strings**

  Disjunct all strings instead of transforming each string into a separate transducer

- **--norm**

  Divide each weight by sum of all weights (with option **-j**)

- **--log**

  Take negative natural logarithm of each weight

- **--log10**

  Take negative 10-based logarithm of each weight

- **-p**, **--pairstrings**

  Input is in pairstring format

- **-S**, **--has-spaces**

  Input has spaces between symbols/symbol pairs

- **-e**, **--epsilon**=*EPS*

  Interpret string EPS as epsilon.

- **-m**, **--multichar-symbols**=*FILE*

  Strings that must be tokenized as one symbol.

If OUTFILE or INFILE is missing or -, standard streams will be used. FMT can be { foma, openfst-tropical, openfst-log, sfst, optimized-lookup-weighted, optimized-lookup-unweighted }. If EPS is not defined, the default representation of @0@ is used. Option **--norm** precedes option **--log**. The FILE of option **-m** lists all multichar-symbols, each symbol on its own line. Backslash '\\' may be used to escape ':', tab and itself. For any other symbol x '\\x' means x literally, i.e. is the same as 'x'. The weight of a string can be given after the string separated by a tabulator. The weight cannot be zero.

## EXAMPLES

- echo "cat:dog" \| hfst-strings2fst

  create cat:dog fst

- echo "c:da:ot:g" \| hfst-strings2fst -p

  same as pairstring

- echo "c:d a:o t:g" \| hfst-strings2fst -p -S

  same as pairstring with spaces

- echo "c a t:d o g" \| hfst-strings2fst -S

  same with spaces

## REPORTING BUGS

Report bugs to \<hfst-bugs@helsinki.fi\> or directly to our bug tracker at: \<https://github.com/hfst/hfst/issues\>

hfst-strings2fst home page: \<https://github.com/hfst/hfst/wiki/Strings2Fst\>\
 General help using HFST software: \<https://github.com/hfst/hfst/wiki\>

## COPYRIGHT

Copyright © 2017 University of Helsinki, License GPLv3: GNU GPL version 3 \<http://gnu.org/licenses/gpl.html\>\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
