|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
J'ai fait un test, ca marche bien sauf quand j'ai un mot clé qui compose d'autres mots clé.
J'ai utilisé "ireplace" pour la casse. Voici mon test Code :
Citation:
J'ai donc essayé de mettre $keywords = array(" procede ", " le "); Mais ce n'est pas bon, car il peut y avoir des points, virgule etc.... mais pas de lettres par contre. Donc je pensais peut etre interdire autour les caracteres ascii des lettres et pas les exclamations et blancs. Avez vous une idée? Merci d'avance. |
|||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
As tu tenter la fonction tout simple str_replace ?
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
|
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() |
Tu fais un explode de ta chaine par le caractere espace :
tu boucles sur $data et remplaces tes occurences quand c'est necessaire Code :
|
||
|
|
00
|
|
|
#5 | |||
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Citation:
Par exemple "septieme art" sera décomposé en "septieme" puis "art" non? Car dans ma base de mot clés il y a aussi des expressions clés. |
|||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() |
Disons que la, les 2 mots seront bien en gras si "septieme" et "art" sont deux valeurs différentes du tableau $keywords, et c'est apparement le but, par contre, l'etat souligné va mettre 2 mots soulignés separement.
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : août 2006 Messages : 1 208 ![]() |
Après, il y a toujours la solution de faire le parsing à la main.
Tu parcours ton texte, à la premiere lettre, tu regardes si elle correspond à un mot (ou plusieurs) de ton tableau, si c'est le cas, tu poses un marqueur, et tu fais défiler en parallèle les lettres du mot de ton tableau et du texte. S'il y a différence, tu retourne au marqueur et tu testes avec le mot suivant du tableau (s'il y a lieu), si aucun mot dans le tableau ne correspond, tu recommence le parcours de ton texte à l'emplacement "marqueur". Dans la mesure où tu ne veux pas prendre les mots à l'interieur d'autres mots, tu itères jusqu'à tomber sur un caractère qui n'est pas une lettre (attention à la gestion des accents, ce sont bien des lettres), puis, à la premiere lettre suivant le caractère qui n'est pas une lettre, tu recommences la comparaison avec ton tableau. Dans le cas où tu arrives à finir un mot de ton tableau, tu sais quand débute le mot (tu as mis un marqueur), tu sais quand il finit (genre, tu es précisement dessus), tu n'as donc plus qu'a remplacer la chaine par la même en souligné, et voila. Ca te permet d'avoir "Septieme art" en un seul soulignement, mais c'est un peu plus galère à coder que les solutions d'au dessus. Mais en découpant bien en petites fonctions, ca doit pouvoir se faire relativement vite.
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
|
00
|
|
|
#8 | |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Citation:
je vais essayer ca, mais c'est pas gagner...lol Merci de ta réponse MAJ: si quelqu'un veut bien me donner un coup de main pour se parsing se serait cool...lol... je suis un peu perdu quand meme. |
|
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() ![]() Inscription : mars 2006 Messages : 1 989 ![]() |
Bonjour,
Il reste encore les fonctionnalités des expressions régulières Code :
|
||
|
|
00
|
|
|
#10 | |||
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Citation:
En plus ca régle également mon deuxième problème on dirait, pour les définitions des mots clés, je vais tester et je te tiens au courant. PS: qu'est ce que tu entends par "non gourmande"?
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
|||
|
|
00
|
|
|
#11 | |
|
Expert Confirmé
![]() ![]() Inscription : mars 2006 Messages : 1 989 ![]() |
Voir le tuto sur les expressions régulières :
http://g-rossolini.developpez.com/tu...ns-regulieres/ et plus précisément pour les modificateurs : http://g-rossolini.developpez.com/tu...e=page_2#LII-7 Citation:
|
|
|
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
J'ai tester avec mes defs de mots clés, mais j'ai encore un petit soucis.
Je le post si jamais tu vois quelques chose. Code :
Ca marche nikel, quand dans la définition il n'y a aucun mot clé présent dans la base. Mais si il y a un mot clé --> ben ca enchaine sur une def, et ca embrouille tous. En fait je ne veux pas détecter de mots clés, dans les defs des mots clés. Je ne sais pas si je suis assez clair, mais j'espere que tu auras une solution. Merci encore et je vais regarder tes liens
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Ca y est ca marche!!! j'ai trouvé.
Par contre encore une tite question. J'ai un soucis quand j'ai un mot qui peut former plusieurs mots clés. Par exemple, j'ai comme mots cles dans ma base: - marge - marge brut - marge net Si dans un texte j'ai " pour calculer la marge net...." il va me mettre en mots clés "marge" au lieu de "marge net". Sinon le reste nikel, tu m'as vachement aidé
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() ![]() Inscription : mars 2006 Messages : 1 989 ![]() |
Pour le problème des mots clés contenus dans d'autres, c'est plus difficile...
Tu pourrais commencer par remplacer marge (par exemple par <b>marge</b>) puis rechercher le remplacement de marge + brute ou nette (donc "<b>marge</b> brute"). Mais pour ça il faut séparer les mots clés non inclus des autres... |
|
|
00
|
|
|
#15 | |
![]() ![]() Inscription : août 2006 Messages : 1 208 ![]() |
Citation:
__________________
Rakken Oneira, un monde imaginaire d'Heroic Fantasy. Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/ |
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Bonne idée pour le tri, mais je ne trouves pas de requetes SQL correspondante, est ce que tu en connais une ou dois je le faire en php pour le "tri par nombre de caractere plus grand vers plus petit".
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() ![]() Inscription : mars 2006 Messages : 1 989 ![]() |
Si tu es sous MySQL, tu peux trier en utilisant la fonction CHAR_LENGTH...
|
|
|
00
|
|
|
#18 | |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
Citation:
Code :
$LaDefinition = preg_replace($regex, $NewKeywords, $row['texte']);
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
|
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : décembre 2005 Messages : 66 ![]() |
C'est bon j'ai réussi.
J'ai en fait crée deux tableau: un avec mot cles un avec expressions cle (avec les blancs) puis je remplace le texte avec les mots cles et ensuite je remplace le nouveau texte avec les expressions cles.
__________________
Mes créations de montages photos et vidéos sur mon blog: http://yanchasp.blogspot.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com