Documents Structurés & Projet Encadré


Accueil Mots EXERCICE TEI EXERCICE 13 EXERCICE 14 EXERCICE 16 BAO 1 BAO 2 BAO 3


EXERCICE 13:Extraction dans les Fils RSS du Monde

Fichiers de travail : rubrique « A la Une » 2017 étiquetée avec treetagger

1.Partie : XSLT

Enoncé 1:Construire une feuille de styles pour afficher les contenus étiquetés avec TreeTagger

3208.XML 13_1_1.xsl
Enoncé 2: Construire des feuilles de style pour extraire (au format TXT) au moins 3 patrons morphosyntaxiques (de longueurs différentes) sur les mêmes fichiers

3208_13_1_2.xml 13_1_2.xsl
Enoncé 3: Construire une feuille de styles pour afficher les contenus étiquetés avec TreeTagger en mettant au jour un patron morphosyntaxique. Ci-dessous le patron NOM ADJ :

3208_13_1_3.xml 13_1_3.xsl

1.Partie : XQuery (via BASEX)

Enoncé 1:Construire une requête pour extraire les contenus textuels des titres

Code XQuery: { for $title in doc("echantillon.xml")//item/title let $a := string-join($title//element/data[3], " ") return {$a} }

xquery_1_1.xml

Enoncé 2:Construire une requête pour extraire les contenus textuels des descriptions

Code XQuery: for $item in collection("echantillon.xml")//item/description let $index := string-join($item//element/data[3], " ") return {$index}

Résultat

Enoncé 3:Construire une requête pour extraire les contenus textuels des titres ET des descriptions

Code XQuery: for $document in doc("echantillon.xml") for $item in $document//item let $titre:={$item//data[3]/text()} let $description:={$item/description//data[3]/text()} return {$titre,$description}

Résultat

Enoncé 4:Construire une requête pour extraire les patrons morpho-syntaxiques NOM ADJ

Code XQuery: {for $art in doc("echantillon.xml")//article for $a in $art/element let $b := $a/following-sibling::element[1] where $a/data[1] = "NOM" and $b/data[1] = "ADJ" return {$a/data[3]/text()," ",$b/data[3]/text()}}

Résultat

Enoncé 5:Construire une requête pour extraire les patrons morpho-syntaxiques NOM PRP NOM

Code XQuery: {for $article in doc("3208-2017.xml")//article for $element in $article/element let $nextElement := $element/following-sibling::element[1] let $nextElement2 := $element/following-sibling::element[2] where $element/data[1] = "NOM" and $nextElement/data[1] = "ADJ" and $nextElement2/data[1] = "NOM" return {$element/data[3]/text()," ",$nextElement/data[3]/text()," ",$nextElement2/data[3]/text()}}

Résultat
2.Partie : XSLT
Enoncé 1: Construire une feuille de styles pour afficher les contenus étiquetés des « titres » uniquement

2.Partie : XSLT

Enoncé 1: Construire une feuille de styles pour afficher les contenus étiquetés des « titres » uniquement

XML XSLT
Enoncé 2:Peut-on envisager de construire une feuille de styles pour afficher chaque « titre » en regard de sa « description » : par exemple un tableau avec 2 colonnes, à gauche les titres et à droite les descriptions (un alignement en somme) ? si cela n’est pas possible directement, quel est l’alignement minimal que l’on peut mettre en oeuvre ? Construire cet alignement minimal…

XML XSLT
Enoncé 3: Construire des feuilles de style pour extraire (au format TXT) au moins 3 patrons morphosyntaxiques (de longueurs différentes) sur les « titres » uniquement puis sur les « descriptions » uniquement

XML XSLT
Enoncé 4: Construire une feuille de styles pour afficher les contenus étiquetés en mettant au jour un patron morphosyntaxique sur les « titres » uniquement puis sur les « descriptions » uniquement

XML XSLT
Enoncé 5: Construire une feuille de styles pour extraire (au format TXT) les items en relation de dépendance syntaxique de type OBJ (les classer et les compter). Essayer de tenir compte de la différence titre/description

XML XSLT
Enoncé 5: Construire une feuille de styles pour extraire (au format TXT) les items en relation de dépendance syntaxique de type OBJ (les classer et les compter). Essayer de tenir compte de la différence titre/description

XML XSLT
2.Partie : XQuery (via BASEX)
Enoncé 1: Construire une requête pour compter le nombre de titres, le nombre de descriptions.
Code XQuery: { for $a in collection(talis_3208.xml)/basetalismane let $titre := count($a/file/titre) let $b := count($a/file/description) return ({$titre}, {$b}) }

XML Résultat
Enoncé 2: Construire une requête pour extraire les contenus textuels des « titres »
Code XQuery: { for $corpus in collection(talis_3208.xml)/basetalismane/file/titre let $a := string-join($corpus/p/item/a[2]/text(), " ") return ({$a}) }

Résultat
Enoncé 3: Construire une requête pour extraire les contenus textuels des « descriptions »
Code XQuery: { for $corpus in collection(talis_3208.xml)//description let $a := string-join($corpus/p/item/a[2]/text(), " ") return ({$a}) }

Résultat
Enoncé 4: Construire une requête pour extraire les contenus textuels des titres ET des descriptions
Code XQuery: {for $item in collection("echantillon.xml")//item let $titre := string-join($item//titre/article/element/data[3]/text()," ") let $description := string-join($item//description/article/element/data[3]/text(), " ") return ({$titre},{$description} , "")}

Résultat
Enoncé 5: Construire une requête pour extraire au moins 3 patrons morpho-syntaxiques (de longueurs différentes)

Code Patron 1 : for $p in collection("3246LT")//p for $id1 in $p/item let $id2 := $id1/following-sibling::item[1] where $id1/a[4]="ADJ" and $id2/a[4]="NC" return string-join(($id1/a[2], $id2/a[2]), " " )

Code Patron 2 : for $p in collection("3246LT")//p for $id1 in $p/item let $id2 := $id1/following-sibling::item[1] let $id3 := $id1/following-sibling::item[2] where $id1/a[4]="V" and $id2/a[4][contains(text(),"DET")] and $id3/a[4]="NC" return string-join(($id1/a[2], $id2/a[2], $id3/a[2]), " " )

Code Patron 3 : for $p in collection("3246LT")//p for $id1 in $p/item let $id2 := $id1/following-sibling::item[1] let $id3 := $id1/following-sibling::item[2] let $id4 := $id1/following-sibling::item[3] where $id1/a[4]="NC" and $id2/a[4][contains(text(),"P")] and $id3/a[4]="NC" and $id4/a[4][contains(text(),"P")] return string-join(($id1/a[2], $id2/a[2], $id3/a[2], $id4/a[2]), " " )

Patron 1 Patron 2 Patron 3
Enoncé 6: Construire une requête pour extraire les items portant une relation de dépendance syntaxique de type OBJ

Code Patron 3 : for $corpus in collection("talismane_3208.xml")//item let $a := $corpus/a[2]/text() where $corpus/a[8]="obj" return $a

Résultat
Enoncé 7:Construire une requête pour extraire les items en relation de dépendance syntaxique de type SUB (on affichera les formes ou les lemmes connectés par cette relation)

Code: {for $doc in collection("talismane_3208")//p where $doc//a[contains(text(), 'sub')] let $id := $doc/item[a="sub"] let $sub := $id/a[2]/text() let $rel := $id/a[7]/text() let $token2 := $doc/item[a[1]= $rel] let $gouv := $token2/a[2]/text() return {$gouv} - {$sub}}<:corpus>

Résultat