(: on s'intéresse au patron morphosyntaxique : NOM ADJ ADJ :) (: dans le fichier de sortie TreeTagger XML : chaque phrase est dans une balise ou chaque token est dans une balise une balise contient 3 balises la 1ere balise contient l'étiquette morpho-syntaxique du token (son POS) la 2eme balise contient le lemme du token la 3eme balise contient la forme du token (son texte) :) for $element in collection("sortiesBAO2/BAO2_sortieXML_TreeTagger_3214.xml")//element where $element[contains(data[1]/text(),'NOM')][following-sibling::element[1][contains(data[1]/text(),'ADJ')]][following-sibling::element[2][contains(data[1]/text(),'ADJ')]] (: on récupère dans des variables la forme de chaque token du patron :) let $forme1:=$element/data[3]/text() let $forme2:=$element/following-sibling::element[1]/data[3]/text() let $forme3:=$element/following-sibling::element[2]/data[3]/text() (: on concatène les éléments avec des espaces et on stocke la liste de toutes les séquences dans la variable $res :) let $res:= string-join(($forme1, $forme2, $forme3)," ") (: on regroupe les séquences :) group by $grp:=$res (: on compte le nombre d'occurrences de chaque séquence et on les trie par ordre décroissant :) order by count($res) descending (: on concatène la séquence + une tabulation + le nombre d'occurrences et on affiche le tout :) return string-join(($grp,count($res))," ")