AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

fst-compiler - En ligne dans le Cloud

Exécutez fst-compiler dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande fst-compiler qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


fst-compiler, fst-compiler-utf8 - Deux compilateurs pour les programmes SFST

SYNOPSIS


compilateur fst fichier-grammaire [ fichier de sortie ]
fst-compilateur-utf8 fichier-grammaire [ fichier de sortie ]

OPTIONS


-c Stockez le transducteur dans un format compact qui est utilisé par fst-infl2.

-l Stockez le transducteur au format lowmem.

-s Surface de commutation et couche d'analyse du transducteur. Vous devez utiliser ce commutateur dans
commander premier-infl (fst-infl2, fst-infl3) pour la génération plutôt que pour l'analyse.

DESCRIPTION


compilateur fst est un compilateur de programmes transducteurs à états finis. Il génère un minimum
transducteur à états finis qui peut être utilisé avec premier-mor, premier-infl, première impression, première comparaison,
fst-analyse, ainsi que fst-treillis. La représentation compacte du transducteur qui est générée avec
l'indicateur -c est pris en charge par fst-infl2, premier train, ainsi que premier match. La mémoire efficace
la représentation du transducteur générée avec l'indicateur -l n'est prise en charge que par premier-
infl3.

Le premier argument du programme est le nom d'un fichier qui contient le programme du transducteur.
Le langage de programmation est décrit ci-dessous. Le deuxième argument est le nom du fichier
auquel le transducteur résultant sera écrit sous forme binaire. Si un deuxième argument est
manquant, la sortie sera écrite dans sortie standard.

fst-compilateur-utf8 diffère de compilateur fst uniquement dans l'encodage des caractères. compilateur fst-
utf8 prend en charge l'encodage UTF8 des fichiers source alors que compilateur fst doit être utilisé pour
Codes de caractères à 8 bits comme latin1 qui sont une extension du code ASCII. Informations
concernant l'encodage est stocké dans les fichiers du transducteur et utilisé par les autres programmes SFST.

DOSSIER FORMATS


Un programme de transducteur consiste en une séquence (facultative) de alphabet ainsi que variable
définitions suivies d'un seul transducteur expression qui définit le résultat
transducteur.

Alphabet

Une définition alphabétique se compose du mot-clé ALPHABET suivi de = et d'un transducteur
expression par exemple

ALPHABET = [az]:[AZ]

Cette commande redéfinit l'alphabet comme l'ensemble des paires de symboles apparaissant sur le
transitions du transducteur. Occurrences d'opérateurs à deux niveaux, d'opérateurs de négation et
les périodes sans guillemets doivent toujours être précédées d'une définition alphabétique.

Variables

Il existe deux types différents de variables. Symbole set les variables sont entourés de hachage
signes (#) et prendre des séquences de symboles (voir ci-dessous) comme valeurs :

#UC# = AZ
#LC# = az

Transducteur les variables sont entourés de signes dollar et prennent les expressions de transducteur comme
valeurs:

$MAP$ = [az]:[AZ]+
$MAP$ = [#LC#] :[#UC#]+

Les variables dont le nom commence par le symbole `=' sont spéciales accord variables. Si un
variable d'accord apparaît plus d'une fois dans une expression de transducteur, elle aura toujours
la même valeur. Considérez le programme de transducteur suivant :

$=1$ = [abc]
$=1$ X $=1$

Le transducteur de résultat reconnaît les chaînes aXa, bXb et cXc. Seuls les transducteurs acycliques
(c'est-à-dire des transducteurs avec un ensemble fini de mappages de chaînes) peuvent être affectés à l'accord
variables.

Symboles

Un symbole est soit

- un seul caractère comme A s 5,

- un caractère entre guillemets comme \* ou \_,

- un symbole à plusieurs caractères comme ou (ce qui est toujours
entre crochets angulaires) ou

- une barre oblique inverse suivie d'un chiffre qui est le code numérique du
personnage désigné

- le symbole nul <>.

Séquence de symboles

Une séquence de symboles est une séquence de caractères, de symboles à plusieurs caractères et de caractères
plages, par exemple az \. .

plage de symboles

Une plage de symboles est soit

- un seul symbole

- une séquence de symboles entre crochets comme [A-Za-z] ou

- une séquence de symboles commençant par ^ et mis entre crochets comme [^A-Za-z]
(désignant le complément de [a-zA-Z]) ou

- le point (qui représente n'importe quel symbole de l'alphabet)

Expressions de transducteur

Une expression de transducteur (TE) est définie de manière récursive comme suit :

- Une paire de deux plages de symboles séparées par deux points est un TE.

[az]:[aZ]

- Une plage de symboles unique comme [az] est un TE.
C'est une forme courte pour [az]:[az].

- Deux séquences de symboles entre accolades et séparées par deux points sont
mangé. {a[bc]}:{def} est équivalent à a:db:e <>:f | a:dc:e <>:f.

- XY est un TE si X et Y sont des TE.
(Les espaces sont ignorés sauf s'ils sont cités.)

- (X) est un TE si X est un TE.

- X op est un TE est X est un TE et op est soit * (l'opérateur étoile de Kleene), +
(opérateur plus de Kleene), ou ? (opérateur d'optionnalité)

- op X est un TE est X est un TE et op est soit ! (opérateur de négation), ^
(opérateur d'extraction de la langue cible), _ (opérateur d'extraction de la langue source) ou ^_
(opérateur de commutation source et cible).

- X op Y est un TE est X et Y sont des TE et op est soit & (conjonction
opérateur), | (opérateur de disjonction), || (opérateur de composition), ou - (soustraction
opérateur)

- L x op y R est un TE si L et R sont des TE, x et y sont des plages de symboles et
op est soit => (restriction à deux niveaux), <= (coercition à deux niveaux), soit <=> (restriction à deux niveaux
restriction et coercition).

- X op L__R est un TE si X, L et R sont des TE et op est soit ^-> (vers le haut
remplacement), _-> (remplacement vers le bas), // (remplacement vers la gauche) ou \-> (remplacement vers la droite
remplacement). De plus, L et R doivent définir des automates (c'est-à-dire qui mappent leurs chaînes
sur eux-mêmes). Ces opérateurs correspondent aux opérateurs de remplacement de Karttunen. Si la
flèche est suivie d'un point d'interrogation (?), le remplacement devient facultatif.

- X << l est un TE si X est un TE, et l est soit de la forme
a ou la forme a:b où a et b sont des caractères ou des symboles uniques. Le résultat est un
transducteur où l a été librement inséré dans X. Le transducteur ab << c par exemple est
équivalent à c*ac*bc*.

- X op Y L1__R2, ... , LN__RN est un TE si X,Y, L1 à LN et R1
via RN sont des TE, et op est soit => (restriction générale), <= (coercition générale), ^=>
(restriction de surface générale), ^<= (coercition de surface générale), ^<=> (surface générale
restriction et coercition), _=> (restriction générale profonde), _<= (coercition générale profonde),
_<=> (restriction générale profonde et coercition). (Ces opérateurs ont été mis en place suite à
une suggestion d'Anssi Yli-Jyra.)

- "fname" est un TE. Le compilateur lit le fichier nommé fname et tourne
dans un transducteur de la forme ligne1|ligne2|ligne3|... où linex est la x-ième ligne de
le fichier. Tous les caractères autres que : et \ sont interprétés littéralement (c'est-à-dire pas comme
les opérateurs). Ce TE est généralement utilisé par exemple pour lire la liste de morphèmes à partir d'un fichier.

- " " est un TE. Le compilateur lit un transducteur pré-compilé à partir de
le fichier nommé fname. Cette

Autres fonctionnalités

Les commentaires commencent par le symbole % et s'étendent jusqu'à la fin de la ligne. Les blancs sont ignorés
sauf s'ils sont cités. Les expressions se terminent à la fin d'une ligne sauf si la fin de la ligne
est précédé d'une barre oblique inverse. La commande

#include "fname"

peut être utilisé pour insérer du code source à partir d'un fichier nommé fname. La commande

RE >> "fnom"

stocke l'expression régulière RE dans le fichier fname. La commande

#utiliser hopcroft

indique au compilateur d'utiliser désormais l'algorithme de minimisation Hopcroft, et

#l'utilisation par défaut

revient à l'algorithme de minimisation par défaut (Brzozowski). La commande

EXEMPLE


Voici un exemple de programme de transducteur simple. En supposant que le fichier "adj-stems"
contient les deux lignes

Easy
tard
big

ce transducteur analysera correctement les formes d'adjectifs faciles, plus faciles, plus faciles et tardives,
plus tard, et plus tard.

ALPHABET = [a-zA-Z] y:ie:<> :<>

$R$ = y<=>i ( :<> e)

$R2$ = e<=><> ( :<> e)

$R$ = $R$ & $R2$

$Stems$ = "adj-stems"

$S$ = $Tiges$ ( :<>| :{euh}| :{est})

$S$ || $R$

EXIT STATUT


compilateur fst renvoie 0 à moins qu'une erreur ne se produise.

Utiliser fst-compiler en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

  • 1
    Phaser
    Phaser
    Phaser est un open rapide, gratuit et amusant
    framework de jeu source HTML5 qui offre
    Rendu WebGL et Canvas à travers
    navigateurs Web de bureau et mobiles. Jeux
    peut être co...
    Télécharger Phaser
  • 2
    Moteur VASSAL
    Moteur VASSAL
    VASSAL est un moteur de jeu pour créer
    versions électroniques de la carte traditionnelle
    et jeux de cartes. Il fournit un soutien pour
    rendu et interaction des pièces de jeu,
    et...
    Télécharger le moteur VASSAL
  • 3
    OpenPDF - Fork d'iText
    OpenPDF - Fork d'iText
    OpenPDF est une bibliothèque Java pour créer
    et l'édition de fichiers PDF avec une licence LGPL et
    Licence open source MPL. OpenPDF est le
    LGPL/MPL open source successeur d'iText,
    un ...
    Télécharger OpenPDF - Fork d'iText
  • 4
    SAGA SIG
    SAGA SIG
    SAGA - Système d'automatisation
    Analyses géoscientifiques - est un
    Logiciel de système d'information (SIG) avec
    immenses capacités pour les géodonnées
    traitement et an...
    Télécharger le SIG SAGA
  • 5
    Boîte à outils pour Java/JTOOpen
    Boîte à outils pour Java/JTOOpen
    IBM Toolbox for Java / JTOpen est un
    bibliothèque de classes Java prenant en charge
    programmation client/serveur et internet
    modèles vers un système exécutant OS/400,
    i5/OS, ou...
    Télécharger Toolbox pour Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (ou D3 pour les documents pilotés par les données)
    est une bibliothèque JavaScript qui vous permet
    produire des données dynamiques et interactives
    visualisations dans les navigateurs Web. Avec D3
    toi...
    Télécharger D3.js
  • Plus "

Commandes Linux

Ad