Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2137 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Rechercher une chaine qui ressemble à une autre en SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rechercher une chaine qui ressemble à une autre en SQL

n°2294086
yrom
Posté le 27-12-2016 à 17:22:12  profilanswer
 

Bonjour je suis en train de créer une sorte d'encyclopédie avec des sujets sur plusieurs thèmes.
J'ai donc une barre de recherche ou j'entre la recherche et avec LIKE dans la requête ça fonctionne bien, sauf que LIKE s'applique dans le cas ou une partie de la chaine est dans la base.
Dans mon cas a moi si j'ai dans ma base un titre "Bienvenue à tous sur le forum" par exemple et que j'entre le mot forum ça fonctionne sauf que si j'entre "Bienvenue sur le forum" ça ne me donnera aucun résultat car cette chaine n'est pas une partie de la chaine de ma base.
Plus clairement je veux faire une recherche approximative (je pense que les moteurs de recherche fonctionnent comme ça)
Ma requête "select * from table where nom LIKE '%".$search."%' or description LIKE '%".$search."%' order by id desc";
Merci d'avance pour vos réponses !  :)


Message édité par yrom le 27-12-2016 à 17:22:49
mood
Publicité
Posté le 27-12-2016 à 17:22:12  profilanswer
 

n°2294087
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2016 à 17:48:18  profilanswer
 

J'ai fait un truc similaire : la détection de tickets d'incidents dont le contenu est proche/similaire à d'autres.
C'est basé sur l'algo LSA ( https://fr.wikipedia.org/wiki/Analy [...] ue_latente ) mais je me suis arrêté avant de faire la SVD. Donc j'ai juste une matrice de corrélation entre des tickets. Dans ton cas, il faudrait faire la même chose entres des titres de tes articles et la chaîne de recherche.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2294088
yrom
Posté le 27-12-2016 à 17:59:08  profilanswer
 

La tu m'as perdu :p
J'ai trouvé quelque chose qui à l'air de marcher c'est de décomposer la chaine en tableau et de faire une boucle qui ajoute des "or champ = 'valeur' " je sais pas si il y a plus optimisé, quelqu'un à mieux?
En fait j'ai oublié de dire que je travaille en PHP.

n°2294109
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2016 à 23:02:41  profilanswer
 

Mon algo LSA est aussi codée en PHP + Mysql. L'avantage de l'algo LSA, c'est qu'il n'est pas sensible à la conjugaison des verbes, au noms communs au pluriel ou féminin puisqu'il intègre une étape de lemmatisation. Moi, je l'ai faite via la BD Lexique.org : http://www.lexique.org/telLexique.php.
 
Après, y'a une étape de calcul du Tf-idf : https://fr.wikipedia.org/wiki/TF-IDF
 
Puis on calcule les covariances entre les documents, à partir de la matrice où, en ligne, tu as les termes, c'est-à-dire les mots lemnisés et en colonne, les documents (dans ton cas, les titres d'articles) ce qui permet d'avoir le taux de corrélation entre chaque document. A noter qu'on peut calculer les covariances entre les termes : dans ce cas, on a le taux de proximité entre des termes, ce qui peut être intéressant si on veut faire de la recherche étendue à partir d'un terme saisi par l'utilisateur et qu'on incorpore des termes proches à ce terme dans la recherche pour trouver plus de résultats ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Rechercher une chaine qui ressemble à une autre en SQL

 

Sujets relatifs
SQL Requete UnionSQL Server ou SQL Express ?
Probleme version de Wamp : SQL, PHP, et surtout de moirecupérer une chaine de texte d'un variable FOR
Sql server un champ avec 3 choix[SQL] Programme gratuit pour tester des requêtes SQL
[SQL Server / Cobol GCOS] Insert Varchar sans espaceCreer une chaîne de N "espaces"
[SQL] Question sur une requête[PHP] [débutant] strlen() et chaîne de caractères particulière
Plus de sujets relatifs à : Rechercher une chaine qui ressemble à une autre en SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR