8768 sujets

Développement web côté serveur, CMS

Bonsoir,
je travaille sur une petite appli web située actuellement http://labo.hebergratuit.net/MFRB. Le but du jeu est de rapprocher les réponses des visiteurs d'un corpus de textes existants. Il me semble que PHP a une fonction qui détecte la similarité de sens de deux textes. Qu'en pensez vous ?

Pour ceux qui ont suivi mon questionnement sur les expressions régulières permettant de détecter les balises XML, j'ai écrit en JS la fonction suivante :
String.prototype._tag=function(){ return this.replace(/<[^>]*>/g,vide); }
. Elle semble détaguer normalement.

Merci, d'avance, de vos contributions.
Modérateur
Bonsoir Dagobert,

Je ne comprends pas bien ta question. Peux-tu être plus explicite ?
Bonjour, niuxe, et merci de t'intéresser.

J'ai commencé à chercher, et j'ai trouvé que PHP a les fonctions similar_text, et levenshtein. Je suis en train de voir si elles peuvent faire ce dont j'ai besoin : trouver de quel modèle se rapproche le plus les réponses des visiteurs.
Bonsoir,

le chantier est http://labo.hebergratuit.net/MFRB

Voici le moteur de comparaison que j'ai écrit :
<?php 

error_reporting( E_ALL ) ; include "mfrb.prologue" ; 

// nettoyer les solutions
include "Solutions/.solchargeur" ;
foreach( $solutions as $file => $modele ) 
{
$modele = array_slice( $modele, 2 ) ;
foreach( $modele as $no => $data ) 
$propres[$file][$no] = str_optimiser( $data ) ;
}

// noter les solutions
$separateur = "<article" ; 
foreach( $menuables as $pacle => $_ )
{
$articles = explode( $separateur, $_POST[$pacle] ) ;
$artnombre = count( $articles ) ;
foreach( $articles as $artno => $article ) if( $artno ) 
{
$ponderateur = $artnombre - $artno ; 
foreach( $solutions as $file => $modele ) 
{
$poids = 0 ; 
$diviseur = 0 ;
$modele = array_slice( $modele, 2 ) ;
foreach( $modele as $no => $_ ) 
{
$diviseur += $ponderateur ;
similar_text( str_optimiser( $separateur.$article ), $propres[$file][$no], $percent ) ; 
$poids += $percent * $ponderateur ; 
}
$notes[$file] = $poids / $diviseur ;
}
}
}

// former les réponses
arsort( $notes ) ;
$notes = array_slice( $notes, 0, $resulnombre ) ;
foreach( $notes as $file => $note ) 
{ 
$lignes = array() ;
$auteur = is_string( $solutions[$file][0] ) ? nommer( $solutions[$file][0] ) : 
nommer( $solutions[$file][0][0] ).spacer( ESPER ).nommer( $solutions[$file][0][1] ) ;
 
$lignes["h3"] = tag( number_format( $note, 1, CM, DOT ), "note" ).PC
.STIS.tag( $auteur, "auteur" )
.VI.tag( $solutions[$file][1], "rusnom" ) ;

foreach( $menuables as $pacle => $_ ) 
if( $pacle != "resultat" ) $lignes[] = tag( $pages[$pacle], "h4" ).tag( $solutions[$file][$pacle2sono[$pacle]], "div" ) ;
$html[] = array2html( $lignes, "article" ) ;
}
echo tag( $html ) ;
 
?>

Des commentaires ?

Pour détaguer en JS, j'ai amélioré la fonction :
String.prototype._tag=function(){ return this.replace(/<[^>]*>/g,space).replace(/\s+/g,space); }

Des commentaires ?