<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.apertium.org/w/index.php?action=history&amp;feed=atom&amp;title=Dictionnaire_morphologique</id>
	<title>Dictionnaire morphologique - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.apertium.org/w/index.php?action=history&amp;feed=atom&amp;title=Dictionnaire_morphologique"/>
	<link rel="alternate" type="text/html" href="https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;action=history"/>
	<updated>2026-05-05T17:42:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=50452&amp;oldid=prev</id>
		<title>Bech at 12:07, 7 October 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=50452&amp;oldid=prev"/>
		<updated>2014-10-07T12:07:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:07, 7 October 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;[[Morphological &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dictionaries&lt;/del&gt;|In English]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;[[Morphological &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dictionary&lt;/ins&gt;|In English]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;Cette page a pour but de décrire comment et pourquoi les &#039;&#039;&#039;dictionnaires morphologiques&#039;&#039;&#039; travaillent dans Apertium de la manière dont ils le font. Les descriptions seront présentées, avec des exemples de code. On espère que ça aidera les gens à comprendre comment les dictionnaires travaillent sans avoir besoin de parcourir des pages d&#039;équations. Les dictionnaires morphologiques dans Apertium (ou plus précisément [[lttoolbox]]) sont basés sur la technologie des transducteurs à états finis, de cette manière ils peuvent aussi être appelés &#039;&#039;transducteurs lexicaux&#039;&#039;. La tâche d&#039;un dictionnaire morphologique est de modéliser les règles qui régissent la structure interne des mots dans une langue.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;Cette page a pour but de décrire comment et pourquoi les &#039;&#039;&#039;dictionnaires morphologiques&#039;&#039;&#039; travaillent dans Apertium de la manière dont ils le font. Les descriptions seront présentées, avec des exemples de code. On espère que ça aidera les gens à comprendre comment les dictionnaires travaillent sans avoir besoin de parcourir des pages d&#039;équations. Les dictionnaires morphologiques dans Apertium (ou plus précisément [[lttoolbox]]) sont basés sur la technologie des transducteurs à états finis, de cette manière ils peuvent aussi être appelés &#039;&#039;transducteurs lexicaux&#039;&#039;. La tâche d&#039;un dictionnaire morphologique est de modéliser les règles qui régissent la structure interne des mots dans une langue.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bech</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=50404&amp;oldid=prev</id>
		<title>Bech: Lien page anglaise</title>
		<link rel="alternate" type="text/html" href="https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=50404&amp;oldid=prev"/>
		<updated>2014-10-06T12:09:50Z</updated>

		<summary type="html">&lt;p&gt;Lien page anglaise&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:09, 6 October 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;[[Morphological dictionaries|In English]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;Cette page a pour but de décrire comment et pourquoi les &#039;&#039;&#039;dictionnaires morphologiques&#039;&#039;&#039; travaillent dans Apertium de la manière dont ils le font. Les descriptions seront présentées, avec des exemples de code. On espère que ça aidera les gens à comprendre comment les dictionnaires travaillent sans avoir besoin de parcourir des pages d&#039;équations. Les dictionnaires morphologiques dans Apertium (ou plus précisément [[lttoolbox]]) sont basés sur la technologie des transducteurs à états finis, de cette manière ils peuvent aussi être appelés &#039;&#039;transducteurs lexicaux&#039;&#039;. La tâche d&#039;un dictionnaire morphologique est de modéliser les règles qui régissent la structure interne des mots dans une langue.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;Cette page a pour but de décrire comment et pourquoi les &#039;&#039;&#039;dictionnaires morphologiques&#039;&#039;&#039; travaillent dans Apertium de la manière dont ils le font. Les descriptions seront présentées, avec des exemples de code. On espère que ça aidera les gens à comprendre comment les dictionnaires travaillent sans avoir besoin de parcourir des pages d&#039;équations. Les dictionnaires morphologiques dans Apertium (ou plus précisément [[lttoolbox]]) sont basés sur la technologie des transducteurs à états finis, de cette manière ils peuvent aussi être appelés &#039;&#039;transducteurs lexicaux&#039;&#039;. La tâche d&#039;un dictionnaire morphologique est de modéliser les règles qui régissent la structure interne des mots dans une langue.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bech</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=29936&amp;oldid=prev</id>
		<title>Bech: /* Déterminisme */ augmenter la largeur du graphe d&#039;états</title>
		<link rel="alternate" type="text/html" href="https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=29936&amp;oldid=prev"/>
		<updated>2011-12-10T21:59:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Déterminisme: &lt;/span&gt; augmenter la largeur du graphe d&amp;#039;états&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 21:59, 10 December 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 111:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 111:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;==== Déterminisme ====&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;==== Déterminisme ====&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;[[Image:Finite-state transducer wound wounds.svg|thumb|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;125px&lt;/del&gt;|right|Un transducteur à états finis non déterministe pour trois chaînes : wound, wound, wounds.]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;[[Image:Finite-state transducer wound wounds.svg|thumb|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;200px&lt;/ins&gt;|right|Un transducteur à états finis non déterministe pour trois chaînes : wound, wound, wounds.]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;Le transducteur du dessus est &#039;&#039;&#039;déterministe&#039;&#039;&#039;, ce qui veut dire que pour chaque état et symbole d&#039;entrée donnés il peut seulement passer à un autre état, ou accepter. Au contraire, un transducteur &#039;&#039;&#039;non déterministe&#039;&#039;&#039; (comme à droite) est l&#039;un de ceux pour lesquels à partir d&#039;un état et un symbole d&#039;entrée donnés on peut se ramifier vers plusieurs états. C&#039;est à dire qu&#039;il peut prendre simultanément plus d&#039;un chemin à travers le transducteur. Notez que le transducteur ci-dessus, se ramifie de manière déterministe, après avoir consommé la chaîne &quot;beer&quot;, il peut aussi bien aller vers &amp;lt;code&amp;gt;(s:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; si le prochain symbole d&#039;entrée est &#039;s&#039;, ou vers &amp;lt;code&amp;gt;(θ:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; dans l&#039;autre cas.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;Le transducteur du dessus est &#039;&#039;&#039;déterministe&#039;&#039;&#039;, ce qui veut dire que pour chaque état et symbole d&#039;entrée donnés il peut seulement passer à un autre état, ou accepter. Au contraire, un transducteur &#039;&#039;&#039;non déterministe&#039;&#039;&#039; (comme à droite) est l&#039;un de ceux pour lesquels à partir d&#039;un état et un symbole d&#039;entrée donnés on peut se ramifier vers plusieurs états. C&#039;est à dire qu&#039;il peut prendre simultanément plus d&#039;un chemin à travers le transducteur. Notez que le transducteur ci-dessus, se ramifie de manière déterministe, après avoir consommé la chaîne &quot;beer&quot;, il peut aussi bien aller vers &amp;lt;code&amp;gt;(s:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; si le prochain symbole d&#039;entrée est &#039;s&#039;, ou vers &amp;lt;code&amp;gt;(θ:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; dans l&#039;autre cas.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bech</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=29935&amp;oldid=prev</id>
		<title>Bech: Création page</title>
		<link rel="alternate" type="text/html" href="https://wiki.apertium.org/w/index.php?title=Dictionnaire_morphologique&amp;diff=29935&amp;oldid=prev"/>
		<updated>2011-12-10T21:57:15Z</updated>

		<summary type="html">&lt;p&gt;Création page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Cette page a pour but de décrire comment et pourquoi les &amp;#039;&amp;#039;&amp;#039;dictionnaires morphologiques&amp;#039;&amp;#039;&amp;#039; travaillent dans Apertium de la manière dont ils le font. Les descriptions seront présentées, avec des exemples de code. On espère que ça aidera les gens à comprendre comment les dictionnaires travaillent sans avoir besoin de parcourir des pages d&amp;#039;équations. Les dictionnaires morphologiques dans Apertium (ou plus précisément [[lttoolbox]]) sont basés sur la technologie des transducteurs à états finis, de cette manière ils peuvent aussi être appelés &amp;#039;&amp;#039;transducteurs lexicaux&amp;#039;&amp;#039;. La tâche d&amp;#039;un dictionnaire morphologique est de modéliser les règles qui régissent la structure interne des mots dans une langue.&lt;br /&gt;
&lt;br /&gt;
Par exemple, les francophones se rendent compte que les mots &amp;quot;chien&amp;quot; et &amp;quot;chiens&amp;quot; sont liés, et que &amp;quot;chiens&amp;quot; est à &amp;quot;chien&amp;quot; ce que &amp;quot;chats&amp;quot; est à &amp;quot;chat&amp;quot;. Les règles comprises par le locuteur reflètent des modèles spécifiques et des régularités dans la manière dont les mots sont formés depuis les plus petites unités et comment ces plus petites unités interagissent.&lt;br /&gt;
&lt;br /&gt;
Les transducteurs à états finis ne sont pas la seule manière de modéliser ces règles, il est également possible d&amp;#039;écrire les règles en langage script comme Perl ou Python, ou comme un lexer(?) (exemples dans l&amp;#039;analyseur morphologique Buckwalter pour l&amp;#039;arabe ou IceMorphy pour l&amp;#039;islandais). Il y a cependant un certain nombre de désavantages à cette méthode :&lt;br /&gt;
&lt;br /&gt;
* Les analyseurs créés ne sont pas réversibles, c&amp;#039;est à dire que vous ne pouvez pas utiliser le même modèle pour analyser &amp;#039;&amp;#039;et&amp;#039;&amp;#039; générer.&lt;br /&gt;
* Comme le contenu des règles peut être aussi bien impératif que déclaratif, les programmes peuvent être plus compliqués à comprendre et à éditer par des non-experts.&lt;br /&gt;
&lt;br /&gt;
Au contraire, les transducteurs à états finis sont :&lt;br /&gt;
* réversibles: la même description peut être utilisée pour l&amp;#039;analyse et pour la génération;&lt;br /&gt;
* déclaratifs, en ce sens qu&amp;#039;une &amp;#039;&amp;#039;description&amp;#039;&amp;#039; de règles morphologiques est écrite séparément de l&amp;#039;algorithme qui les traite.&lt;br /&gt;
&lt;br /&gt;
Notez que les analyseurs peuvent aussi être décrits comme des essais(?) décorés, ou des accepteurs à états finis (par exemple [[hunmorph]]), cela peut être déclaratif, mais non réversible (par exemple inutilisable pour la génération).&lt;br /&gt;
[[Image:Finite-state acceptor beer.svg|right|thumb|125px|Un accepteur à états finis pour la chaîne &amp;quot;beer&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
== Automate à états finis ==&lt;br /&gt;
&lt;br /&gt;
Pour commencer il est utile de définir ce qu&amp;#039;est un automate à états finis, et comment les deux types principaux diffèrent. Ce ne sera pas une description exhaustive, juste un aperçu afin que la différence puisse être distinguée pour l&amp;#039;objet de cet article. Pour commencer, quelque terminologie, si vous êtes familier avec les graphes (comme en structure de données) cela pourrait aider. Un automate à états finis peut être visualisé comme un graphe, avec les noeuds représentant les &amp;#039;&amp;#039;&amp;#039;états&amp;#039;&amp;#039;&amp;#039;, et les arcs représentant les &amp;#039;&amp;#039;&amp;#039;transitions&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
=== Accepteurs ===&lt;br /&gt;
&lt;br /&gt;
Un accepteur à états finis (ou &amp;#039;&amp;#039;&amp;#039;recogniser&amp;#039;&amp;#039;&amp;#039;), comme vu dans l&amp;#039;image à droite, est un automate qui accepte ou rejette des chaînes en entrée. Donc, en prenant l&amp;#039;exemple de droite, on peut voir que l&amp;#039;automate a :&lt;br /&gt;
&lt;br /&gt;
* un certain nombre de &amp;#039;&amp;#039;&amp;#039;caractères d&amp;#039;entrée&amp;#039;&amp;#039;&amp;#039; possibles, ou un &amp;#039;&amp;#039;&amp;#039;alphabet&amp;#039;&amp;#039;&amp;#039; (les caractères &amp;#039;b&amp;#039;, &amp;#039;e&amp;#039; et &amp;#039;r&amp;#039;), sont notés &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
* un &amp;#039;&amp;#039;&amp;#039;état de départ&amp;#039;&amp;#039;&amp;#039;, dans les définitions formelles c&amp;#039;est habituellement marqué &amp;lt;math&amp;gt;s_0&amp;lt;/math&amp;gt;&lt;br /&gt;
* un certain nombre d&amp;#039;&amp;#039;&amp;#039;&amp;#039;états intermédiaires&amp;#039;&amp;#039;&amp;#039;, souvent notés &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;&lt;br /&gt;
* deux &amp;#039;&amp;#039;&amp;#039;états finaux&amp;#039;&amp;#039;&amp;#039;, notés &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;&lt;br /&gt;
* un certain nombre de &amp;#039;&amp;#039;&amp;#039;transitions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons émuler cela grossièrement dans un langage de programmation comme Python afin de se faire une idée du comportement de ces automates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 1em;border: 1px dashed #2f6fab;color: black;background-color: #f9f9f9;line-height: 1.1em; font-size: 85%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
states = [&amp;#039;b&amp;#039;, &amp;#039;e&amp;#039;, &amp;#039;e&amp;#039;, &amp;#039;r&amp;#039;]; # Initialiser les états&lt;br /&gt;
current_state = 0;             # Initialiser l&amp;#039;états courant comme état de départ&lt;br /&gt;
&lt;br /&gt;
c = sys.stdin.read(1);&lt;br /&gt;
&lt;br /&gt;
while c:                       # Boucle d&amp;#039;entrée&lt;br /&gt;
        if current_state == len(states): # Si on a atteint un état final&lt;br /&gt;
                sys.stdout.write(&amp;#039;Yes&amp;#039;);&lt;br /&gt;
                sys.exit(0);&lt;br /&gt;
        elif c == states[current_state]: # Si l&amp;#039;entrée correspond à la valeur de l&amp;#039;état courant&lt;br /&gt;
                current_state += 1;&lt;br /&gt;
        else:                            # Si l&amp;#039;entrée ne correspond pas à l&amp;#039;état courant et on n&amp;#039;est pas à l&amp;#039;état final&lt;br /&gt;
                sys.stdout.write(&amp;#039;No&amp;#039;);&lt;br /&gt;
                sys.exit(1);&lt;br /&gt;
&lt;br /&gt;
        c = sys.stdin.read(1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
Lorsque l&amp;#039;entrée &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt; est &amp;quot;beer&amp;quot;, la sortie est {{sc|yes}}, sinon la sortie est {{sc|no}},&lt;br /&gt;
[[Image:Finite-state acceptor be ast r.svg|thumb|125px|right|Cet accepteur à états finis va accepter chaque chaîne définie par l&amp;#039;expression régulière &amp;lt;code&amp;gt;be*r&amp;lt;/code&amp;gt;, c&amp;#039;est à dire br, ber, beer, beeer, beeeer, ...]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo &amp;quot;beer&amp;quot; | python fsa.py&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
$ echo &amp;quot;bee&amp;quot; | python fsa.py&lt;br /&gt;
No&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il est utile de noter qu&amp;#039;un accepteur à états finis peut accepter toute chaîne qui peut être définie par une expression régulière. Par exemple, si on veut accepter l&amp;#039;expression &amp;lt;code&amp;gt;bee*r&amp;lt;/code&amp;gt;, qu&amp;#039;on peut écrire aussi &amp;lt;code&amp;gt;be+r&amp;lt;/code&amp;gt; c&amp;#039;est à dire un &amp;quot;b&amp;quot; suivi d&amp;#039;un ou plusieurs&amp;quot;e&amp;quot; suivi par un &amp;quot;r&amp;quot; (ex: ber, beer, beeer, ...), on pourrait le faire avec un accepteur à états finis. Les accepteurs à états finis peuvent être utilisés dans des applications comme des correcteurs orthographiques, lorsqu&amp;#039;une tâche de base consiste à vérifier si un mot existe ou pas dans une liste de mots. Utiliser un accepteur est plus efficace que la liste équivalente pour les raisons qui vont être décrites plus loin.&lt;br /&gt;
&lt;br /&gt;
{{comment|:à compléter ici}}&lt;br /&gt;
&lt;br /&gt;
=== Transducteurs ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Finite-state transducer beer.svg|thumb|right|125px|Un transducteur à états finis pour les chaînes &amp;quot;beer&amp;quot; et &amp;quot;beers&amp;quot;, la sortie est le &amp;#039;&amp;#039;lemme&amp;#039;&amp;#039; du mot, &amp;quot;beer&amp;quot;, la &amp;#039;&amp;#039;partie de discours&amp;#039;&amp;#039;, &amp;lt;code&amp;gt;&amp;lt;n&amp;gt;&amp;lt;/code&amp;gt; pour &amp;quot;nom&amp;quot; et ensuite le nombre, soit singulier (&amp;lt;code&amp;gt;&amp;lt;sg&amp;gt;&amp;lt;/code&amp;gt;) soit pluriel (&amp;lt;code&amp;gt;&amp;lt;pl&amp;gt;&amp;lt;/code&amp;gt;).]]&lt;br /&gt;
Bien que les accepteurs soient utiles, pour l&amp;#039;analyse morphologique nous avons besoin de quelque-chose qui va nous donner une sortie pour une entrée donnée. Par exemple, à partir de la [[forme de surface]] d&amp;#039;un mot, il nous donnera la [[forme lexicale]] (analyse) ou à partir de la forme lexicale il nous donnera la forme de surface (génération). Pour cela, on a besoin d&amp;#039;un &amp;#039;&amp;#039;&amp;#039;transducteur&amp;#039;&amp;#039;&amp;#039;. Un transducteur est très semblable à un accepteur, avec comme principale différence qu&amp;#039;au lieu de consommer un caractère d&amp;#039;entrée à chaque transition, chaque transition consomme un caractère et génère un caractère. Donc au lieu d&amp;#039;avoir un symbole sur chaque arc, on a un tuple, entrée et sortie (voir le diagramme de droite).&lt;br /&gt;
&lt;br /&gt;
Le diagramme de droite montre un transducteur à états finis&amp;lt;ref&amp;gt;En particulier c&amp;#039;est un &amp;quot;transducteur de lettres&amp;quot;, qui à chaque transition est modélisé comme entre deux lettres dans l&amp;#039;alphabet&amp;lt;/ref&amp;gt; pour les chaînes &amp;quot;beer&amp;quot; et &amp;quot;beers&amp;quot;, ce transducteur a :&lt;br /&gt;
&lt;br /&gt;
* un &amp;#039;&amp;#039;&amp;#039;alphabet d&amp;#039;entrée&amp;#039;&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; (les caractères &amp;#039;b&amp;#039;, &amp;#039;e&amp;#039;, &amp;#039;r&amp;#039; et &amp;#039;s&amp;#039;)&lt;br /&gt;
* un &amp;#039;&amp;#039;&amp;#039;alphabet de sortie&amp;#039;&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; (les caractères &amp;#039;b&amp;#039;, &amp;#039;e&amp;#039;, &amp;#039;r&amp;#039; et les symboles multi-caractères &amp;lt;code&amp;gt;&amp;lt;n&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;sg&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;pl&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
* un &amp;#039;&amp;#039;&amp;#039;état de départ&amp;#039;&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;s_0&amp;lt;/math&amp;gt;&lt;br /&gt;
* un certain nombre d&amp;#039;&amp;#039;&amp;#039;&amp;#039;états intermédiaires&amp;#039;&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;&lt;br /&gt;
* un ensemble d&amp;#039;&amp;#039;&amp;#039;&amp;#039;états finaux&amp;#039;&amp;#039;&amp;#039;, &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;&lt;br /&gt;
* un certain nombre de &amp;#039;&amp;#039;&amp;#039;transitions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Notez que dans le diagramme, les états &amp;quot;non acceptés&amp;quot; ({{sc|no}}) ont été laissés de coté.&lt;br /&gt;
&lt;br /&gt;
De nouveau, on peut émuler ce transducteur avec un peu de code Python : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 1em;border: 1px dashed #2f6fab;color: black;background-color: #f9f9f9;line-height: 1.1em; font-size: 85%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
transitions = {(0,&amp;#039;b&amp;#039;):1, (1,&amp;#039;e&amp;#039;):2, (2,&amp;#039;e&amp;#039;):3, (3,&amp;#039;r&amp;#039;):4, (4,&amp;#039;&amp;#039;):5, (4,&amp;#039;s&amp;#039;):6, (5,&amp;#039;&amp;#039;):7, (6,&amp;#039;&amp;#039;):7};&lt;br /&gt;
states = {0:&amp;#039;b&amp;#039;, 1:&amp;#039;e&amp;#039;, 2:&amp;#039;e&amp;#039;, 3:&amp;#039;r&amp;#039;, 4:&amp;#039;&amp;lt;n&amp;gt;&amp;#039;, 5:&amp;#039;&amp;lt;sg&amp;gt;&amp;#039;, 6:&amp;#039;&amp;lt;pl&amp;gt;&amp;#039;, 7:&amp;#039;&amp;#039;};&lt;br /&gt;
&lt;br /&gt;
current_state = 0; # État de départ&lt;br /&gt;
&lt;br /&gt;
def step(state, symbol): # L&amp;#039;état courant et le symbole d&amp;#039;entrée&lt;br /&gt;
        sys.stdout.write(states[state]); # Écrire le symbole de sortie de la transition&lt;br /&gt;
        return transitions[(state, symbol)]; # Retourner l&amp;#039;état suivant&lt;br /&gt;
&lt;br /&gt;
c = sys.stdin.read(1);&lt;br /&gt;
while states[current_state] != &amp;#039;&amp;#039;: # Tant qu&amp;#039;on n&amp;#039;est pas dans l&amp;#039;état final&lt;br /&gt;
        current_state = step(current_state, c); # Passer à l&amp;#039;état suivant&lt;br /&gt;
&lt;br /&gt;
        c = sys.stdin.read(1).replace(&amp;#039;\n&amp;#039;, &amp;#039;&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo &amp;quot;beer&amp;quot; | python fst.py &lt;br /&gt;
beer&amp;lt;n&amp;gt;&amp;lt;sg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$ echo &amp;quot;beers&amp;quot; | python fst.py &lt;br /&gt;
beer&amp;lt;n&amp;gt;&amp;lt;pl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Déterminisme ====&lt;br /&gt;
&lt;br /&gt;
[[Image:Finite-state transducer wound wounds.svg|thumb|125px|right|Un transducteur à états finis non déterministe pour trois chaînes : wound, wound, wounds.]]&lt;br /&gt;
Le transducteur du dessus est &amp;#039;&amp;#039;&amp;#039;déterministe&amp;#039;&amp;#039;&amp;#039;, ce qui veut dire que pour chaque état et symbole d&amp;#039;entrée donnés il peut seulement passer à un autre état, ou accepter. Au contraire, un transducteur &amp;#039;&amp;#039;&amp;#039;non déterministe&amp;#039;&amp;#039;&amp;#039; (comme à droite) est l&amp;#039;un de ceux pour lesquels à partir d&amp;#039;un état et un symbole d&amp;#039;entrée donnés on peut se ramifier vers plusieurs états. C&amp;#039;est à dire qu&amp;#039;il peut prendre simultanément plus d&amp;#039;un chemin à travers le transducteur. Notez que le transducteur ci-dessus, se ramifie de manière déterministe, après avoir consommé la chaîne &amp;quot;beer&amp;quot;, il peut aussi bien aller vers &amp;lt;code&amp;gt;(s:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; si le prochain symbole d&amp;#039;entrée est &amp;#039;s&amp;#039;, ou vers &amp;lt;code&amp;gt;(θ:&amp;lt;n&amp;gt;)&amp;lt;/code&amp;gt; dans l&amp;#039;autre cas.&lt;br /&gt;
&lt;br /&gt;
Un transducteur à états finis non déterministe est modélisée comme :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;avantage des transducteurs non déterministes sur les transducteurs déterministes est qu&amp;#039;ils nous permettent de saisir l&amp;#039;ambiguïté inhérente à un langage humain. Par exemple le mot &amp;quot;wound&amp;quot; en anglais peut être un nom &amp;quot;I have a wound&amp;quot; (j&amp;#039;ai une blessure), un verbe &amp;quot;He wound the clock&amp;quot; (traduction ?), &amp;quot;He wounded me&amp;quot; (il m&amp;#039;a blessé) ou &amp;quot;The clock was wound&amp;quot; (traduction ?). Les codes qui suivent implémentent le transducteurs de droite, pour les parties qui suivent d&amp;#039;un dictionnaire :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	&amp;lt;e&amp;gt;&amp;lt;p&amp;gt;&amp;lt;l&amp;gt;wound&amp;lt;/l&amp;gt;&amp;lt;r&amp;gt;wound&amp;lt;s n=&amp;quot;n&amp;quot;/&amp;gt;&amp;lt;s n=&amp;quot;sg&amp;quot;/&amp;gt;&amp;lt;/r&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/e&amp;gt;&lt;br /&gt;
	&amp;lt;e&amp;gt;&amp;lt;p&amp;gt;&amp;lt;l&amp;gt;wounds&amp;lt;/l&amp;gt;&amp;lt;r&amp;gt;wound&amp;lt;s n=&amp;quot;n&amp;quot;/&amp;gt;&amp;lt;s n=&amp;quot;pl&amp;quot;/&amp;gt;&amp;lt;/r&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/e&amp;gt;&lt;br /&gt;
	&amp;lt;e&amp;gt;&amp;lt;p&amp;gt;&amp;lt;l&amp;gt;wound&amp;lt;/l&amp;gt;&amp;lt;r&amp;gt;wind&amp;lt;s n=&amp;quot;vblex&amp;quot;/&amp;gt;&amp;lt;s n=&amp;quot;pp&amp;quot;/&amp;gt;&amp;lt;/r&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/e&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 1em;border: 1px dashed #2f6fab;color: black;background-color: #f9f9f9;line-height: 1.1em; font-size: 85%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
states = set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]);&lt;br /&gt;
&lt;br /&gt;
transitions = {&lt;br /&gt;
        (0,&amp;#039;w&amp;#039;):[(&amp;#039;w&amp;#039;,1)],&lt;br /&gt;
        (1,&amp;#039;o&amp;#039;):[(&amp;#039;i&amp;#039;,2), (&amp;#039;o&amp;#039;,3)],&lt;br /&gt;
        (2,&amp;#039;u&amp;#039;):[(&amp;#039;&amp;#039;,4)], (4,&amp;#039;n&amp;#039;):[(&amp;#039;n&amp;#039;,5)], (5,&amp;#039;d&amp;#039;):[(&amp;#039;d&amp;#039;,6)], (6,&amp;#039;&amp;#039;):[(&amp;#039;&amp;lt;vblex&amp;gt;&amp;#039;,7)], (7,&amp;#039;&amp;#039;):[(&amp;#039;&amp;lt;pp&amp;gt;&amp;#039;,8)],&lt;br /&gt;
        (3,&amp;#039;u&amp;#039;):[(&amp;#039;u&amp;#039;,9)], (9,&amp;#039;n&amp;#039;):[(&amp;#039;n&amp;#039;,10)], (10,&amp;#039;d&amp;#039;):[(&amp;#039;d&amp;#039;,11)], &lt;br /&gt;
&lt;br /&gt;
        (11,&amp;#039;&amp;#039;):[(&amp;#039;&amp;lt;n&amp;gt;&amp;#039;,12)], &lt;br /&gt;
        (11,&amp;#039;s&amp;#039;):[(&amp;#039;&amp;lt;n&amp;gt;&amp;#039;,13)],&lt;br /&gt;
&lt;br /&gt;
        (12,&amp;#039;&amp;#039;):[(&amp;#039;&amp;lt;sg&amp;gt;&amp;#039;,8)],&lt;br /&gt;
        (13,&amp;#039;&amp;#039;):[(&amp;#039;&amp;lt;pl&amp;gt;&amp;#039;,8)]&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
initial_state = 0;&lt;br /&gt;
accepting_states = set([8]);&lt;br /&gt;
current_states = set([initial_state]); # Ensemble contenant l&amp;#039;ensemble des états courants&lt;br /&gt;
state_output_pairs = {};               # Une structure pour contenir la liste des &amp;quot;paires de sortie d&amp;#039;états vivants&amp;quot; &lt;br /&gt;
state_output_pairs[0] = set([(&amp;#039;&amp;#039;, 0)]); &lt;br /&gt;
accepting_output_pairs = set();        # L&amp;#039;ensemble des paires de sortie d&amp;#039;états acceptées&lt;br /&gt;
&lt;br /&gt;
input = c = sys.stdin.read(1);&lt;br /&gt;
&lt;br /&gt;
def closure(S, reached_states):        # Calculer la fermeture epsilon (?) après l&amp;#039;état S&lt;br /&gt;
        global state_output_pairs;&lt;br /&gt;
&lt;br /&gt;
        if S not in state_output_pairs:&lt;br /&gt;
                state_output_pairs[S] = set();&lt;br /&gt;
&lt;br /&gt;
        if (S, &amp;#039;&amp;#039;) in transitions:&lt;br /&gt;
                for state in transitions[(S, &amp;#039;&amp;#039;)]:&lt;br /&gt;
                        reached_states.add(state[1]);&lt;br /&gt;
&lt;br /&gt;
                        if state[1] not in state_output_pairs:&lt;br /&gt;
                                state_output_pairs[state[1]] = set();&lt;br /&gt;
&lt;br /&gt;
                        for pair in state_output_pairs[S]:&lt;br /&gt;
                                state_output_pairs[state[1]].add((pair[0] + state[0], state[1]));&lt;br /&gt;
&lt;br /&gt;
                        closure(state[1], reached_states);&lt;br /&gt;
&lt;br /&gt;
        return reached_states;&lt;br /&gt;
&lt;br /&gt;
def step(S, c):                        # Step the transducer&lt;br /&gt;
        global accepting_states, state_output_pairs;&lt;br /&gt;
        reached_states = set();&lt;br /&gt;
&lt;br /&gt;
        if S in accepting_states:&lt;br /&gt;
                return set([S]);&lt;br /&gt;
&lt;br /&gt;
        if (S, c) in transitions: &lt;br /&gt;
                for state in transitions[(S, c)]:&lt;br /&gt;
                        closure(state[1], reached_states);&lt;br /&gt;
                        reached_states.add(state[1]);&lt;br /&gt;
&lt;br /&gt;
                        if state[1] not in state_output_pairs:&lt;br /&gt;
                                state_output_pairs[state[1]] = set();&lt;br /&gt;
&lt;br /&gt;
                        for pair in state_output_pairs[S]:&lt;br /&gt;
                                state_output_pairs[state[1]].add((pair[0] + state[0], state[1]));&lt;br /&gt;
&lt;br /&gt;
                        closure(state[1], reached_states);&lt;br /&gt;
&lt;br /&gt;
        return reached_states;&lt;br /&gt;
&lt;br /&gt;
while c != &amp;#039;&amp;#039;:                        # Boucle jusqu&amp;#039;à ce qu&amp;#039;il ne reste plus d&amp;#039;entrée&lt;br /&gt;
        reached_states = set();&lt;br /&gt;
&lt;br /&gt;
        for state in current_states:&lt;br /&gt;
                if state not in state_output_pairs:&lt;br /&gt;
                        state_output_pairs[state] = set();&lt;br /&gt;
                reached_states |= step(state, c);&lt;br /&gt;
                del state_output_pairs[state];&lt;br /&gt;
&lt;br /&gt;
        current_states = reached_states;&lt;br /&gt;
&lt;br /&gt;
        c = sys.stdin.read(1).replace(&amp;#039;\n&amp;#039;,&amp;#039;&amp;#039;);&lt;br /&gt;
        input += c;&lt;br /&gt;
&lt;br /&gt;
print(&amp;#039;^&amp;#039; + &amp;#039;/&amp;#039;.join([input] + [analysis[0] for analysis in state_output_pairs[8]]) + &amp;#039;$&amp;#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo &amp;quot;wound&amp;quot; | python nfst.py &lt;br /&gt;
^wound/wind&amp;lt;vblex&amp;gt;&amp;lt;pp&amp;gt;/wound&amp;lt;n&amp;gt;&amp;lt;sg&amp;gt;$&lt;br /&gt;
&lt;br /&gt;
$ echo &amp;quot;wounds&amp;quot; | python nfst.py &lt;br /&gt;
^wounds/wound&amp;lt;n&amp;gt;&amp;lt;pl&amp;gt;$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un bel exercice pourrait être d&amp;#039;étendre les structures état/transition pour ajouter les analyses manquantes.&lt;br /&gt;
&lt;br /&gt;
=== Déterminisation ===&lt;br /&gt;
&lt;br /&gt;
=== Minimisation ===&lt;br /&gt;
&lt;br /&gt;
=== Transducteurs subséquentiels ===&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-transducteurs subséquentiels ===&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Finite-state transducer -s.svg|thumb|right|125px|Un transducteur pour paradigme du pluriel régulier &amp;#039;&amp;#039;-s&amp;#039;&amp;#039; en anglais, français, ... Les transducteurs générés depuis des paradigmes peuvent être réutilisés.]]&lt;br /&gt;
&lt;br /&gt;
=== Paradigmes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 1em;border: 1px dashed #2f6fab;color: black;background-color: #f9f9f9;line-height: 1.1em; font-size: 85%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;pardef n=&amp;quot;-s&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;e&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
        &amp;lt;l/&amp;gt;&lt;br /&gt;
        &amp;lt;r&amp;gt;&amp;lt;s n=&amp;quot;n&amp;quot;/&amp;gt;&amp;lt;s n=&amp;quot;sg&amp;quot;/&amp;gt;&amp;lt;/r&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/e&amp;gt;  &lt;br /&gt;
    &amp;lt;e&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
        &amp;lt;l&amp;gt;s&amp;lt;/l&amp;gt;&lt;br /&gt;
        &amp;lt;r&amp;gt;&amp;lt;s n=&amp;quot;n&amp;quot;/&amp;gt;&amp;lt;s n=&amp;quot;pl&amp;quot;/&amp;gt;&amp;lt;/r&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/e&amp;gt;&lt;br /&gt;
  &amp;lt;/pardef&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sections ===&lt;br /&gt;
&lt;br /&gt;
;Standard&lt;br /&gt;
&lt;br /&gt;
;Inconditional section&lt;br /&gt;
&lt;br /&gt;
Voir aussi : [[Section inconditionnelle]]&lt;br /&gt;
&lt;br /&gt;
;Postblank&lt;br /&gt;
&lt;br /&gt;
;Preblank&lt;br /&gt;
&lt;br /&gt;
=== Entrées ===&lt;br /&gt;
&lt;br /&gt;
== Comportement ==&lt;br /&gt;
&lt;br /&gt;
* Déterminisme&lt;br /&gt;
* Minimisation&lt;br /&gt;
* Tokenisation&lt;br /&gt;
&lt;br /&gt;
== Terminologie ==&lt;br /&gt;
&lt;br /&gt;
* chaîne&lt;br /&gt;
* alphabet&lt;br /&gt;
* symbole&lt;br /&gt;
* chaîne vide&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Bases sur les dictionnaires unilingues]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lectures complémentaires ==&lt;br /&gt;
&lt;br /&gt;
* Ortiz-Rojas, S., Forcada, M. L., and Ramírez-Sánchez, G. (2005) &amp;quot;Construcción y minimizacion eﬁciente de transductores de letras a partir de diccionarios con paradigmas&amp;quot;. &amp;#039;&amp;#039;Procesamiento del Lenguaje Natural&amp;#039;&amp;#039;, 35, 51–57. [http://www.sepln.org/revistaSEPLN/revista/35/07.pdf PDF]&lt;br /&gt;
* A. Garrido-Alenda, M.L. Forcada, (2002) &amp;quot;Comparing nondeterministic and quasideterministic transducteurs à états finis built from dictionnaires morphologiques&amp;quot;, Procesamiento del Lenguaje Natural, (XVIII Congreso de la Sociedad Española de Procesamiento del Lenguaje Natural, Valladolid, Spain, 11-13.09.2002) [http://www.sepln.org/revistaSEPLN/revista/29/29-Pag73.pdf PDF]&lt;br /&gt;
* R.C. Carrasco, M.L. Forcada, (2002) &amp;quot;Incremental construction and maintenance of minimal finite-state automata&amp;quot;, Computational Linguistics, 28:2, 207-216 [http://www.dlsi.ua.es/~mlf/docum/carrasco02j.pdf PDF]&lt;br /&gt;
* Alicia Garrido-Alenda, Mikel L. Forcada, Rafael C. Carrasco,  (2002) &amp;quot;Incremental construction and maintenance of morphological analysers based on augmented letter transducers&amp;quot;, in Proceedings of TMI 2002 (Theoretical and Methodological Issues in Machine Translation, Keihanna/Kyoto, Japan, March 2002), p. 53-62 [http://www.dlsi.ua.es/~mlf/docum/garrido02p.pdf PDF]&lt;br /&gt;
* J. Daciuk, S. Mihov, B. W. Watson, R. E. Watson (2000). &amp;quot;Incremental construction of minimal acyclic finite-state automata&amp;quot;, in Computational Linguistics, 26(1):3-16. [http://www.eti.pg.gda.pl/~jandac/incr_fst.ps.gz PS]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Theoretical background]]&lt;br /&gt;
[[Category:Documentation en français]]&lt;/div&gt;</summary>
		<author><name>Bech</name></author>
		
	</entry>
</feed>