begin process at 2010 02 10 04:40:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > PARSER DES MOTS-CLÉS AVANT DE LANCER LA RECHERCHE

PARSER DES MOTS-CLÉS AVANT DE LANCER LA RECHERCHE


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :22/12/2003 Vu :4 479

Auteur : olid

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Pour un moteur de recherche, il fô nettoyer les mots-clés des internautes en supprimant les mots de moins de 3 lettres ou les expressions de coordination (mais où et donc or ni car ;o) pour garder que les mots pertinents.

Source

  • //Petit nettoyage
  • $motscles = strtolower(trim($motscles));
  • $motscles = str_replace(array(",","-",".",":",";","'")," ",$motscles);
  • $motscles = str_replace(" "," ",$motscles);
  • $motscles = str_replace(" "," ",$motscles);
  • //Decomposition des mots-cles mot à mot
  • $mots = explode(" ",$motscles);
  • $petitmots = array("une","les","aux","des","mais","ton","tes","son","ses","ces","est","donc","car");
  • //Boucle d'analyse de chaques mots
  • $nbmots = count($mots);
  • for ($i = 0; $i < $nbmots; $i++)
  • {
  • if (strlen($mots[$i]) < 3)
  • {
  • $mots[$i] = "";
  • }
  • else if (in_array($mots[$i],$petitmots))
  • {
  • $mots[$i] = "";
  • }
  • }
  • //Recolle les mots
  • $motscles = implode(" ",$mots);
//Petit nettoyage
	$motscles = strtolower(trim($motscles));
	$motscles = str_replace(array(",","-",".",":",";","'")," ",$motscles);
	$motscles = str_replace("   "," ",$motscles);
	$motscles = str_replace("  "," ",$motscles);
	
	//Decomposition des mots-cles mot à mot
	$mots = explode(" ",$motscles);
	
	$petitmots = array("une","les","aux","des","mais","ton","tes","son","ses","ces","est","donc","car");
	
	//Boucle d'analyse de chaques mots
	$nbmots = count($mots);
	for ($i = 0; $i < $nbmots; $i++)
		{
		if (strlen($mots[$i]) < 3)
			{
			$mots[$i] = "";
			}
		else if (in_array($mots[$i],$petitmots))
			{
			$mots[$i] = "";
			}
		}
		
	//Recolle les mots
	$motscles = implode(" ",$mots);

 Conclusion

NB: moà, zaime pô les ereg :o|


 Sources du même auteur

GÉNÉRER UN LOG AU FORMAT APACHE POUR FAIRE DES STATISTIQUES ...
RÉSUMER UN TEXTE SANS COUPER LES MOTS OU PHRASES
TEMPS ÉCOULÉ (DURÉE) ENTRE 2 DATES SOUS FORME LITTÉRAL NATUR...
RACCOURCIR INTELLIGEMMENT UNE URL POUR L'AFFICHAGE SUR UNE P...
AFFICHER UNE DATE-HEURE RÉCENTE DANS UN FORMAT NATUREL ET LI...

 Sources de la même categorie

Source avec Zip GÉNÉRER UN MOT DE PASS ALÉATOIRE par narkos2
UNICODE TO HTML ENTITIES par CrazyShooter
Source avec Zip DÉBUTANT : FONCTION POUR TRANSFORMER UN TEMPS EN SECONDES EN... par MonkeyIsBack
FONCTION QUI GÉNÈRE UN CODE GRÂCE À L'ORTOGRAPHE ET LA PRONO... par foofymany
Source avec Zip TRADUCTION DE FICHIERS DE LANGUE AVEC GOOGLE GTRANSLATE par madislak

Commentaires et avis

Commentaire de olid le 22/12/2003 13:18:34

Et comme zest bientot noyel, v'là comment rapidement construire la requete pour la recherche SQL à partir des mots-clés au-dessus :

$motsclestitre = str_replace(" ","%') AND (titre LIKE '%",$motscles);
$motsclestexte = str_replace(" ","%') AND (texte LIKE '%",$motscles);

$newsresult=mysql_query("SELECT * FROM news WHERE (((titre LIKE '%$motsclestitre%')) OR ((texte LIKE '%$motsclestexte%'))) ORDER BY date DESC");

NB: les doubles parathezes sont indispensables !!! ;op

Commentaire de bprod le 20/07/2004 17:37:00

juste ce qui me fallait, enfin plus ou moins mais c cool... merci, je vais tester ça tout de suite (niark,niark!)

Commentaire de olid le 21/07/2004 19:24:04

Explik ze que tu veux faire.... kurieux un kat :op

Commentaire de bprod le 22/07/2004 08:52:52

c'est que je fais un moteur de recherche ou tu peux choisir le type (soit "et" soit "ou" ) pour la recherche ds la baz donc tu m'a aider pour le parsing des mots clés sans les jonctions et tout et tout ...
Donc merci !

Commentaire de olid le 22/07/2004 19:37:52

Je te conseil la syntax Google...

les espaces equivaut à un OU sauf si un groupe de mots est dans des double quote "... Dans ce cas les espaces (dans les quotes) equivaut à ET.

Alors, tu fais un premier parsing via un explode des quotes "...Dans le tableau, les resultats pair seront avec ET et les impairs avec OU
Sauf le cas particulier quand la requete commence par une quote...Fô inverser ;op

Tout compris ? :o|

Commentaire de bprod le 23/07/2004 08:52:21

Bonne remarque constructive ,je m'y mettrai dés que j'aurais un peu de temps...
Le résultat sera en ligne (<url=www.vendeeconcept.com>vendeeconcept.com</url>) d'ici peu mais là j'ai des problème avec France télécom qui met trop lgt pour faire le chgmt de délégation...
Merci encore pour ton aide précieuse ;op

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales