web-dev-qa-db-fra.com

Qu'est-ce qu'un transducteur à états finis?

Quelqu'un peut-il me dire ce qu'est un transducteur à états finis?

J'ai lu l'article Wikipedia et je ne comprends rien.

41
user581734

Un transducteur à états finis (FST) est un automate à états finis (FSA, FA) qui produit une sortie ainsi qu'une entrée de lecture, ce qui signifie qu'il est utile pour l'analyse (alors qu'un FSA "nu" ne peut être utilisé que pour la reconnaissance, c'est-à-dire la correspondance de motifs ).

Un FST se compose d'un nombre fini d'états qui sont liés par des transitions étiquetées avec une paire d'entrée/sortie. Le FST démarre dans un état de démarrage désigné et passe à différents états en fonction de l'entrée, tout en produisant une sortie conformément à sa table de transition.

Les FST sont utiles en PNL et en reconnaissance vocale car ils ont des propriétés algébriques de Nice, notamment qu'ils peuvent être librement combinés (former une algèbre) sous composition, ce qui implémente la composition relationnelle sur des relations régulières (pensez à cela comme une composition de fonction non déterministe) tout en rester très compact. Les FST peuvent effectuer l'analyse syntaxique de langages normaux en chaînes en temps linéaire.

À titre d'exemple, j'ai une fois implémenté l'analyse morphologique en tant que groupe de FST. Mon FST principal pour les verbes transformerait un verbe régulier, disons "marchait", en "walk + PAST". J'ai également eu un FST pour le verbe "être", qui transformerait "est" en "être + PRÉSENT + 3ème" (3ème personne), et de même pour les autres verbes irréguliers. Tous les FST ont été combinés en un seul à l'aide d'un compilateur FST, qui a produit un seul FST qui était beaucoup plus petit que la somme de ses parties et fonctionnait très rapidement. Les FST peuvent être créés par une variété d'outils qui acceptent une syntaxe d'expression régulière étendue.

55
Fred Foo

Un transducteur à états finis est essentiellement un automate à états finis qui fonctionne sur deux (ou plus) bandes. La façon la plus courante de penser aux transducteurs est comme une sorte de `` machine de traduction ''. Ils lisent l'une des cassettes et écrivent sur l'autre. C'est, par exemple, un transducteur qui traduit as en bs:

enter image description here

a:b à l'arc signifie que dans cette transition, le transducteur lit a sur la première bande et écrit b sur la seconde.

Référence: Transducteurs à états finis

12
Sayat Satybald

En termes aussi simples que possible, je comprends qu'un FST est essentiellement une "chose" qui passe d'un état à l'autre en fonction d'une bande d'entrée et écrit sur une bande de sortie différente. Une bande est essentiellement un ensemble d'entrées comme des caractères dans une chaîne.

L'ensemble du FST est représenté par un ensemble d'états et de liens entre eux. Un lien est "activé" lorsque sa condition d'entrée est correcte et donne ensuite l'état suivant la bande ajustée.

Par exemple, supposons qu'un FST commence par la bande abc à l'état 1. Un lien vers l'état 2 correspond à a et le change en b. Cela serait activé, définissez la bande de sortie sur juste b et passez les bc restants à l'état 2. Comme vous pouvez le voir, chaque état n'est activé que s'il existe un lien vers celui-ci dont la condition d'entrée était correcte, passe l'entrée restante à l'état suivant et écrit sur une bande de sortie distincte. Chaque FST s'exécute une fois sur la bande et sort une fois sur une autre bande.

Pour mieux les comprendre lisez et regardez les diagrammes de cet article ( lien rompu d'origine ).

6