Sous-sections

Exercice 3

Question 1

Reprendre le fichier opengrm vu dans un TP précédent pour l'extraction des nombres d'une chaîne (version ascii). Ecrire un code python qui réalise les mêmes opérations.

Vous pouvez pour cet exercice créer les deux machines alphabet et chiffre au moyen d'opengrm et utiliser le fichier ascii.syms pour créer une table de symboles.

export alphabet = Optimize["0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|
       "a"|"b"|"c"|"d"
       	 | "e"|"f"|"g"|"h"|"i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"
	 |"v"|"w"|"x"|"y"|"z" | " "];

export chiffre = Optimize["0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"];

export chiffre_id = Optimize[("0":"0")|("1":"1")|("2":"2")|("3":"3")|("4":"4")|("5":"5")|("6":"6")|("7":"7")|("8":"8")|("9":"9")];

export pas_chiffre = alphabet - chiffre;

pre_extract_chiffre = (alphabet : "")* (pas_chiffre:"") (chiffre_id+)
		(pas_chiffre:"")((alphabet : "")*);

export extract_chiffre = Optimize[pre_extract_chiffre];

export chaine_test_1 = " ab t 123 zaetrt 58 dsfghhj 589 dsqd";

export result = Optimize[Project[Compose[chaine_test_1,extract_chiffre,'right'],
	'output']];

Question 2

Ajoutez à votre code une fonction qui prend en paramètre une chaîne de caractères et renvoie une machine contenant les nombres extraits de cette chaîne.

Question 3

Essayez de vous passer complètement d'opengrm en créant alphabet et chiffre en python.

Question 4

Créez à présent la table de symboles en python, sans utiliser le fichier ascii.syms.



barthe 2018-01-31