diff --git a/content/mouline_corpus.html b/content/mouline_corpus.html
index 75ee3fd..f6e3541 100644
--- a/content/mouline_corpus.html
+++ b/content/mouline_corpus.html
@@ -1,7 +1,8 @@
-
Traitement basique pour échantillonnage
+Traitement fichiers JSONL
+Chargement des fichiers Jsonl après leur décompaction et affichage du contenu de leur 1ère et denière ligne
-
+
-
#SET{liste_lignes,#LISTE{1}} #SET{trop_gros,#CONFIG{corpus_web/taille_max}} [(#REM) trop gros = 100Mo ]
#SET{nb_lignes, #FILE|nombre_ligne} [(#GET{nb_lignes}|!={1}|oui) #SET{liste_lignes,#LISTE{1,#GET{nb_lignes}}}]
diff --git a/content/mouline_videos.html b/content/mouline_videos.html
new file mode 100644
index 0000000..c9356e5
--- /dev/null
+++ b/content/mouline_videos.html
@@ -0,0 +1,95 @@
+[(#REM)
+ moulinette de finalisation du remplissage de la table spip_corpus_videos en 3 temps :
+ - remplissage du champ transcription_readable_content par le contenu du fichier TXT
+ - remplissage du champ transcription_detailed_content par les mots clés (filtrés) du fichier XML
+ - création d'un titres si absent
+
+ On part d'une table remplie par un import CSV
+
+]
+
Traitement CSV des vidéos : TXT
+Intégration des contenus textuels des vidéos dans la table spip_corpus_videos
+
+
+
+ -
+
+ [(#TITLE|sinon{#DESCRIPTION|couper{60}})]
+ Fichier txt : #TRANSCRIPTION_READABLE_FILE
+
+ [(#TRANSCRIPTION_READABLE_FILE|integre_txt{#ID_CORPUS_VIDEO}|couper{150})
]
+
+
+ Tous les contenus TXT sont récupérés
+ /B_txt>
+
+
+
+Traitement CSV des vidéos : XML
+Intégration des contenus XML des vidéos dans la table spip_corpus_videos
+
+
+ [(#REM) ]
+ -
+
+ [(#TITLE|sinon{#DESCRIPTION|couper{60}})]
+ Fichier XML : #TRANSCRIPTION_DETAILED_FILE
+
+ [(#TRANSCRIPTION_DETAILED_FILE|integre_xml{#ID_CORPUS_VIDEO}|couper{150})
]
+
+
+ Tous les contenus XML sont récupérés
+ /B_xml>
+
+
+
+Traitement CSV des vidéos : titres
+Création d'un titre à partir de la description si absent
+
+
+
+ -
+
+ Titre créé :
+ [
(#REM) DESCRIPTION|couper{100})]
+ [
(#ID_CORPUS_VIDEO|cree_titre{100})
]
+
+
+
+
+ Tous les titres manquants sont créés
+ /B_titre>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/corpus_web_fonctions.php b/corpus_web_fonctions.php
index c0515a1..66db591 100644
--- a/corpus_web_fonctions.php
+++ b/corpus_web_fonctions.php
@@ -13,6 +13,90 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
+function cree_titre($id_video) {
+ if ($id_video != intval($id_video)) {
+ return false;
+ }
+ $res = sql_allfetsel('title,description', 'spip_corpus_videos', 'id_corpus_video ='.$id_video);
+ $titre = $res[0]['title'];
+ $description = $res[0]['description'];
+
+ if ($titre == '' AND $description != '') {
+ $set = ['title' => couper($description, 100)];
+ sql_updateq('spip_corpus_videos', $set, 'id_corpus_video='.$id_video);
+ }
+
+ return couper($description, 100);
+}
+
+function integre_xml($fichier, $id_video) {
+ $stop_words = explode(',', lire_config('corpus_web/stop_words'));
+
+ $chemin = _DIR_TMP.lire_config('corpus_web/repertoire_transcriptions').'/'.$fichier;
+ if ($id_video != intval($id_video)) {
+ return 'erreur : absence d\'id_video ou format incorrect ('.$id_video.')';
+ }
+
+ if (!file_exists($chemin) OR $id_video != intval($id_video)) {
+ $content = 'fichier XML absent';
+ }
+ else {
+ $content = file_get_contents($chemin);
+ preg_match_all('/]*> ([^<]*) /i', $content, $matches, PREG_PATTERN_ORDER);
+ $content = array_unique($matches[1]);
+ $content = array_diff($content, $stop_words);
+ $content = join(',', $content);
+ }
+ if ($content == '') {
+ $content = 'fichier XML vide';
+ }
+
+ $set = ['transcription_detailed_content'=> $content];
+ sql_updateq('spip_corpus_videos', $set, 'id_corpus_video='.$id_video);
+ if (sql_error()) {
+ return sql_error();
+ }
+ $retour = sql_getfetsel('transcription_detailed_content','spip_corpus_videos' , 'id_corpus_video='.$id_video);
+ return $retour;
+}
+
+function integre_txt($fichier, $id_video) {
+ $chemin = _DIR_TMP.lire_config('corpus_web/repertoire_transcriptions').'/'.$fichier;
+ if ($id_video != intval($id_video)) {
+ return 'erreur : absence d\'id_video ou format incorrect ('.$id_video.')';
+ }
+
+ if (!file_exists($chemin) OR $id_video != intval($id_video)) {
+ $content = 'fichier de transcription absent';
+ }
+ else {
+ $content = nettoyer_timecodes(file_get_contents($chemin));
+ }
+ if ($content == '') {
+ $content = 'fichier de transcription vide';
+ }
+
+ $set = ['transcription_readable_content'=> $content];
+ sql_updateq('spip_corpus_videos', $set, 'id_corpus_video='.$id_video);
+ if (sql_error()) {
+ return sql_error();
+ }
+ $retour = sql_getfetsel('transcription_readable_content','spip_corpus_videos' , 'id_corpus_video='.$id_video);
+ return $retour;
+}
+
+function nettoyer_timecodes($content) {
+ $content = preg_replace('/\[\d{2}:\d{2}:\d{2} - \d{2}:\d{2}:\d{2}\] /i',' ',$content);
+ $content = preg_replace('/\n\n/', '§', $content);
+ $content = preg_replace('/\n/', '', $content);
+ $content = preg_replace('/§/', "\n\n", $content);
+ return $content;
+}
+
+function nettoyer_balises($content) {
+ $content = preg_replace('/<[a-zA-Z0-9\/=\'" ?:.]*>/i', " ", $content);
+ return $content;
+}
function nombre_ligne($fichier) {
if (!file_exists($fichier)) {
diff --git a/corpus_web_options.php b/corpus_web_options.php
index 467cd30..742e00d 100644
--- a/corpus_web_options.php
+++ b/corpus_web_options.php
@@ -12,3 +12,16 @@
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
+
+
+if (!isset($GLOBALS['z_blocs'])){
+ $GLOBALS['z_blocs'] = array(
+ 'content',
+ 'aside',
+ 'extra',
+ 'head',
+ 'head_js',
+ 'header',
+ 'footer',
+ 'breadcrumb');
+}
diff --git a/formulaires/configurer_corpus_web.html b/formulaires/configurer_corpus_web.html
index 40dc631..65f117e 100644
--- a/formulaires/configurer_corpus_web.html
+++ b/formulaires/configurer_corpus_web.html
@@ -1,6 +1,6 @@
diff --git a/stocks/stop_words_french.csv b/stocks/stop_words_french.csv
new file mode 100644
index 0000000..09f513d
--- /dev/null
+++ b/stocks/stop_words_french.csv
@@ -0,0 +1 @@
+a,à,â,abord,afin,ah,ai,aie,ainsi,allaient,allo,allô,allons,après,assez,attendu,au,aucun,aucune,aujourd,aujourd'hui,auquel,aura,auront,aussi,autre,autres,aux,auxquelles,auxquels,avaient,avais,avait,avant,avec,avoir,ayant,b,bah,beaucoup,bien,bigre,boum,bravo,brrr,c,ça,car,ce,ceci,cela,celle,celle-ci,celle-là,celles,celles-ci,celles-là,celui,celui-ci,celui-là,cent,cependant,certain,certaine,certaines,certains,certes,ces,cet,cette,ceux,ceux-ci,ceux-là,chacun,chaque,cher,chère,chères,chers,chez,chiche,chut,ci,cinq,cinquantaine,cinquante,cinquantième,cinquième,clac,clic,combien,comme,comment,compris,concernant,contre,couic,crac,d,da,dans,de,debout,dedans,dehors,delà,depuis,derrière,des,dès,désormais,desquelles,desquels,dessous,dessus,deux,deuxième,deuxièmement,devant,devers,devra,différent,différente,différentes,différents,dire,divers,diverse,diverses,dix,dix-huit,dixième,dix-neuf,dix-sept,doit,doivent,donc,dont,douze,douzième,dring,du,duquel,durant,e,effet,eh,elle,elle-même,elles,elles-mêmes,en,encore,entre,envers,environ,es,ès,est,et,etant,étaient,étais,était,étant,etc,été,etre,être,eu,euh,eux,eux-mêmes,excepté,f,façon,fais,faisaient,faisant,fait,feront,fi,flac,floc,font,g,gens,h,ha,hé,hein,hélas,hem,hep,hi,ho,holà,hop,hormis,hors,hou,houp,hue,hui,huit,huitième,hum,hurrah,i,il,ils,importe,j,je,jusqu,jusque,k,l,la,là,laquelle,las,le,lequel,les,lès,lesquelles,lesquels,leur,leurs,longtemps,lorsque,lui,lui-même,m,ma,maint,mais,malgré,me,même,mêmes,merci,mes,mien,mienne,miennes,miens,mille,mince,moi,moi-même,moins,mon,moyennant,n,na,ne,néanmoins,neuf,neuvième,ni,nombreuses,nombreux,non,nos,notre,nôtre,nôtres,nous,nous-mêmes,nul,o,o|,ô,oh,ohé,olé,ollé,on,ont,onze,onzième,ore,ou,où,ouf,ouias,oust,ouste,outre,p,paf,pan,par,parmi,partant,particulier,particulière,particulièrement,pas,passé,pendant,personne,peu,peut,peuvent,peux,pff,pfft,pfut,pif,plein,plouf,plus,plusieurs,plutôt,pouah,pour,pourquoi,premier,première,premièrement,près,proche,psitt,puisque,q,qu,quand,quant,quanta,quant-à-soi,quarante,quatorze,quatre,quatre-vingt,quatrième,quatrièmement,que,quel,quelconque,quelle,quelles,quelque,quelques,quelqu'un,quels,qui,quiconque,quinze,quoi,quoique,r,revoici,revoilà,rien,s,sa,sacrebleu,sans,sapristi,sauf,se,seize,selon,sept,septième,sera,seront,ses,si,sien,sienne,siennes,siens,sinon,six,sixième,soi,soi-même,soit,soixante,son,sont,sous,stop,suis,suivant,sur,surtout,t,ta,tac,tant,te,té,tel,telle,tellement,telles,tels,tenant,tes,tic,tien,tienne,tiennes,tiens,toc,toi,toi-même,ton,touchant,toujours,tous,tout,toute,toutes,treize,trente,très,trois,troisième,troisièmement,trop,tsoin,tsouin,tu,u,un,une,unes,uns,v,va,vais,vas,vé,vers,via,vif,vifs,vingt,vivat,vive,vives,vlan,voici,voilà,vont,vos,votre,vôtre,vôtres,vous,vous-mêmes,vu,w,x,y,z,zut,alors,aucuns,bon,devrait,dos,droite,début,essai,faites,fois,force,haut,ici,juste,maintenant,mine,mot,nommés,nouveaux,parce,parole,personnes,pièce,plupart,seulement,soyez,sujet,tandis,valeur,voie,voient,état,étions