diff --git a/content/contenu_jsonl.html b/content/contenu_jsonl.html
new file mode 100644
index 0000000..732ad32
--- /dev/null
+++ b/content/contenu_jsonl.html
@@ -0,0 +1,101 @@
+[(#REM)
+ affichage en boucle DATA des premières et dernières lignes des fichiers JSONL stockés dans un répertoire corpus
+ on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
+
+]
+
Extraction des contenus d'un lot de fichiers JSONL
+Chargement des fichiers Jsonl après leur décompaction et récupération de "contenus significatifs"
+
Nombre de lignes configuré par le "pas" de l'itération dans les pages : ici #CONFIG{corpus_web/pas_corpus, 10} (1 = toutes les pages, 10 = 1 page sur 10...)
+
pour mémoire : 1 ligne du fichier JSONL = 1 page HTML du site aspiré/archivé
+
+
+
+
+ -
+ #SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}|mult{1000000}} [(#REM) trop gros = 100Mo ]
+ #SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
+
+ [(#FILE|basename)] ([(#FILE|basename|recup_site)] / [(#FILE|basename|recup_aspi)]): [(#GET{nb_lignes}) [(#GET{nb_lignes}|singulier_ou_pluriel{page,pages})]] ([(#SIZE|human_filesize)o])
+ [ (#SIZE|>{#GET{trop_gros}}|oui)
fichier trop gros pour traitement basique
]
+
+ [(#REM)
+ {liste #GET{liste_lignes}}
+ ]
+
+ [(#SET{num_ligne,[(#COMPTEUR_BOUCLE|=={1}|?{1,#GET{nb_lignes}})]})]
+
+
Page #VALEUR :
+
+ [(#SET{content,[(#FILE|affiche_ligne{#GET{num_ligne}}|json_decode{true})]})]
+
+
+ [(#CLE|=={htmlBytes}|oui)
+ [(#REM)
+ -
+
Title : [(#VALEUR|base64_decode|affiche_title)]
+
+ ]
+ -
+
[(#CLE)] = HTML de la page (clic pour visualiser)
+
+
+
+
+ -
+
Titres :
+ [(#VALEUR|base64_decode|recup_titres)]
+
+ ]
+ [(#CLE|=={extractionContent}|oui)
+
+ [(#CLE|in_array{#LISTE{boilerpipe:text, htmlmeta:head:title, htmlmeta:head:keywords, htmlmeta:head:description}}|oui)
+ -
+
[(#CLE|replace{htmlmeta:head:, meta }|replace{boilerpipe:, ''}|ucfirst)] :
+
+ [(#VALEUR|print|replace{
,§§}|replace{
,§§}|replace{<,<}|replace{>,>}|replace{§§,
}|replace{"\n",
})]
+
+
+ ]
+
+ ]
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/content/explo_jsonl.html b/content/explo_jsonl.html
index d602457..9d1f0f0 100644
--- a/content/explo_jsonl.html
+++ b/content/explo_jsonl.html
@@ -3,8 +3,9 @@
on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
]
-Contenus d'un lot de fichiers JSONL
-Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de toutes leurs lignes
+
Exploration des contenus d'un lot de fichiers JSONL
+Chargement des fichiers Jsonl après leur décompaction et affichage du contenu des lignes
+
Nombre de lignes configuré par le "pas" de l'itération dans les pages : ici #CONFIG{corpus_web/pas_corpus, 10} (1 = toutes les pages, 10 = 1 page sur 10...)
pour mémoire : 1 ligne du fichier JSONL = 1 page HTML du site aspiré/archivé
@@ -20,7 +21,7 @@
[(#REM)
{liste #GET{liste_lignes}}
]
-
+
[(#SET{num_ligne,[(#COMPTEUR_BOUCLE|=={1}|?{1,#GET{nb_lignes}})]})]
Page #VALEUR :
@@ -45,7 +46,7 @@
Titraille :
-
+
]
[(#CLE|=={htmlBytes}|non)
diff --git a/content/synthese_jsonl.html b/content/synthese_jsonl.html
new file mode 100644
index 0000000..a4dea99
--- /dev/null
+++ b/content/synthese_jsonl.html
@@ -0,0 +1,54 @@
+[(#REM)
+ affichage en boucle DATA des premières et dernières lignes des fichiers JSONL stockés dans un répertoire corpus
+ on fait tout un tas de traitements en fonction du type de donnée par champ pour essayer d'afficher qq chose de "lisible par un humain"
+
+]
+Synthèse des contenus extraits d'un lot de fichiers JSONL
+Chargement des fichiers Jsonl après leur décompaction et récupération de "contenus significatifs" puis mise en tableau pour filtrages/tris/extractions CSV
+
Nombre de lignes configuré par le "pas" de l'itération dans les pages : ici #CONFIG{corpus_web/pas_corpus, 10} (1 = toutes les pages, 10 = 1 page sur 10...)
+
pour mémoire : 1 ligne du fichier JSONL = 1 page HTML du site aspiré/archivé
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/corpus_web_fonctions.php b/corpus_web_fonctions.php
index 3d2a385..de2b8d3 100644
--- a/corpus_web_fonctions.php
+++ b/corpus_web_fonctions.php
@@ -145,7 +145,6 @@ function affiche_titraille($html) {
$titraille[] = ''.$m[2].'';
}
}
-
}
return join("\r\n", $titraille);
@@ -165,4 +164,31 @@ function human_filesize($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
+}
+
+function recup_titres($html) {
+ // regexp : class="(titre|field-content)
+ // class="(titre|field-content)">(<[^>]*>)?([^<>]*)
+ $titres = [];
+ $html = str_replace(['',''], '', $html);
+ preg_match_all('/class="(titre|field-content|nodeTitle nobreak)">(<[^>]*>)?([^<>]*)/si', $html, $match, PREG_SET_ORDER);
+ if ($match) {
+ foreach($match as $m) {
+ if ($m[3] !== '') {
+ $titres[] = $m[3];
+ }
+ }
+ }
+
+ return count($titres) ? "" : '';
+}
+
+function recup_site($nom_fichier_jsonl) {
+ return explode('_', $nom_fichier_jsonl)[0];
+}
+
+function recup_aspi($nom_fichier_jsonl) {
+ $T = explode('_', $nom_fichier_jsonl)[1];
+ $T = explode('-', $T);
+ return $T[0].'-'.$T[1].'-'.$T[2];
}
\ No newline at end of file
diff --git a/formulaires/configurer_corpus_web.html b/formulaires/configurer_corpus_web.html
index 94c4e20..1307e6c 100644
--- a/formulaires/configurer_corpus_web.html
+++ b/formulaires/configurer_corpus_web.html
@@ -13,6 +13,7 @@
#SAISIE{input, repertoire_apercu, label=repertoire_apercu, explication=nom du répertoire des fichiers JSONL pour l'aperçu (dans tmp/) }
#SAISIE{input, repertoire_corpus, label=repertoire_corpus, explication=nom du répertoire des fichiers JSONL pour le corpus (dans tmp/) }
+ #SAISIE{input, pas_corpus, label=pas_corpus, explication=pour le corpus "pas" de l'itération dans les pages
(1 = toutes les pages, 10 = 1 page sur 10) }
#SAISIE{input, taille_max, label=taille_max, explication=taille maximum des fichiers à traiter (en Mo) }
diff --git a/json_affiche_corpus.json.html b/json_affiche_corpus.json.html
new file mode 100644
index 0000000..06f97e4
--- /dev/null
+++ b/json_affiche_corpus.json.html
@@ -0,0 +1,77 @@
+#HTTP_HEADER{Content-Type: application/json; charset=#CHARSET}
+[(#ENV{id}|setenv{id_jsonl})]
+[{
+ "header":{
+ "id": "id jsonl",
+ "site": "Site",
+ "date_aspi": "Date archive",
+ "num_page": "Numéro page",
+ "title": "Meta title",
+ "desc": "Meta description",
+ "keywords": "Meta keywords",
+ "titres": "titres",
+ "text": "Texte"
+ },
+ "filtreCol" : {
+ "site" : "select",
+ "date_aspi": "select",
+ "num_page": "input",
+ "title": "input",
+ "desc": "input",
+ "keywords": "input",
+ "titres": "input",
+ "text": "input"
+ },
+ "classes":{
+ }
+} #SET{id_jsonl,1}
+
+ [(#SET{site,#FILE|basename|recup_site})] [(#SET{date_aspi,#FILE|basename|recup_aspi})]
+ #SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}|mult{1000000}}
+ #SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
+
+ [(#SET{num_ligne,[(#COMPTEUR_BOUCLE|=={1}|?{1,#GET{nb_lignes}})]})]
+ [(#SET{content,[(#FILE|affiche_ligne{#GET{num_ligne}}|json_decode{true})]})]
+ #SET{num_page,Page #VALEUR} #SET{title,''} #SET{keywords,''} #SET{description,''} #SET{titres,''}
+
+ [(#CLE|=={extractionContent}|oui)
+
+ [(#CLE|=={boilerpipe:text}|oui) [(#SET{text, text: [(#VALEUR|print|replace{
,§§}|replace{
,§§}|replace{<,<}|replace{>,>}|replace{§§,
}|replace{"\n",
})]})] ]
+ [(#CLE|=={htmlmeta:head:title}|oui) [(#SET{title, title: [(#VALEUR|print|replace{
,§§}|replace{
,§§}|replace{<,<}|replace{>,>}|replace{§§,
}|replace{"\n",
})]})] ]
+ [(#CLE|=={htmlmeta:head:keywords}|oui) [(#SET{keywords, keywords: [(#VALEUR|print|replace{
,§§}|replace{
,§§}|replace{<,<}|replace{>,>}|replace{§§,
}|replace{"\n",
})]})] ]
+ [(#CLE|=={htmlmeta:head:description}|oui) [(#SET{description, desc: [(#VALEUR|print|replace{
,§§}|replace{
,§§}|replace{<,<}|replace{>,>}|replace{§§,
}|replace{"\n",
})]})] ]
+
+ ][(#CLE|=={htmlBytes}|oui)
+ [(#SET{titres, [(#VALEUR|base64_decode|recup_titres)]})]
+ ]
+
+ ,{
+ "html": {
+ "id": [(#GET{id_jsonl})],
+ "site" : [(#GET{site}|json_encode)],
+ "date_aspi": [(#GET{date_aspi}|json_encode)],
+ "num_page": [(#GET{num_page}|json_encode)],
+ "title": [(#GET{title}|json_encode)],
+ "desc": [(#GET{description}|json_encode)],
+ "keywords": [(#GET{keywords}|json_encode)],
+ "titres": [(#GET{titres}|json_encode)],
+ "text": [(#GET{text}|json_encode)]
+ },
+ "classes": {
+ "titre":"transcription"
+ },
+ "search": {
+ "id": [(#GET{id_jsonl})],
+ "site" : [(#GET{site}|json_encode)],
+ "date_aspi": [(#GET{date_aspi}|json_encode)],
+ "num_page": [(#GET{num_page}|json_encode)],
+ "title": [(#GET{title}|json_encode)],
+ "desc": [(#GET{description}|json_encode)],
+ "keywords": [(#GET{keywords}|json_encode)],
+ "titres": [(#GET{titres}|json_encode)],
+ "text": [(#GET{text}|json_encode)]
+ }
+ } [(#SET{id_jsonl, #GET{id_jsonl}|plus{1}})]
+
+
+]