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

  FORUM HardWare.fr
  Programmation
  PHP

  algo / moteur de recherche

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

algo / moteur de recherche

n°2034170
poopidoo
Posté le 05-11-2010 à 11:33:27  profilanswer
 

Bonjour,
 
Je souhaiterai pouvoir repérer les villes présentes dans un texte au moyen de ma base de villes (10000).
 
Que me conseilleriez-vous de faire ?
 
Pour le moment, j'éclate le texte en x mots et fais une recherche en base pour chaque mots .. c'est loin d'être optimal car cela necessite autant de requetes qu'il y a de mots.
 
Avez-vous une solution existante ? des plugins pour mongodb ? sphinx voire mysql ? Ou une idée d'algo intelligent ?
 
Merci bcp
 
 

mood
Publicité
Posté le 05-11-2010 à 11:33:27  profilanswer
 

n°2034217
rufo
Pas me confondre avec Lycos!
Posté le 05-11-2010 à 13:31:48  profilanswer
 

J'ai ouvert y'a qq temps le même genre de topic mais avec la problématique supplémentaire que je recherche un groupe d'un ou plusieurs mots (jusqu'à 4) dans une BD : http://forum.hardware.fr/hfr/Progr [...] 0753_1.htm
 
J'ai pas de solution pour l'instant...
 
Edit : après, faut voir la taille du texte par rapport au nb d'entrées dans la BD. En effet, si t'as un gros texte dont le nb de mots est > au nb d'entrées, t'as peut-être plutôt intérêt à regarder si une entrée de la BD est présente dans le texte ;) Moi, c'était pas le cas (environ 2700 entrées alors que la taille moyenne des textes dans lesquels je recherche tourne autour de 50 à 100 mots).


Message édité par rufo le 05-11-2010 à 13:35:33

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2034305
poopidoo
Posté le 05-11-2010 à 16:57:31  profilanswer
 

Merci rufo de ta réponse, je vais creuser et te tiens au courant de mes avancées..

n°2037374
poopidoo
Posté le 20-11-2010 à 18:26:10  profilanswer
 

rufo,
 
j'ai enquêté et fait qq experiences, j'ai trouvé finalement une solution assez simple plus ou moins bourrine mais qui beneficie d'excellentes perfs.
 
Je suis resté avec mongodb.
J'ai indexé le nom des villes sur _id
 
Je decoupe mon texte en x mots (je suis allé jusqu'a 10000) et j'ai fait un query multiple avec mongodb (cad une connexion qui balance plusieurs requetes) sur ma table de villes (1000000).
 
cela fonctionne, j'ai tout en 0.002 secondes sans IO de folies. :-)
 
Par contre, je suis pas sur que cela puisse être possible avec un sql de base, de type mysql.
 

n°2037650
rufo
Pas me confondre avec Lycos!
Posté le 22-11-2010 à 17:30:27  profilanswer
 

Ben ça revient à ce que j'ai fait :/ Mais moi, je suis sous MySql, alors les perfs sont plutôt autour de 0.5s à 5s (mais mon SGBD traite plus 1.3 millions de requêtes par jour donc pas mal d'accès simultanés)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2037794
grosbin
OR die;
Posté le 23-11-2010 à 13:54:30  profilanswer
 

sinon, en créant des fichiers de contenus ( avec pour nom l'id), en exécutant la commande grep ?
qui retournera l'id des fichiers dans lequel le mot aura été trouvé


---------------
Développeur Php Annecy
n°2037801
rufo
Pas me confondre avec Lycos!
Posté le 23-11-2010 à 14:43:10  profilanswer
 

Tu peux développer un peu plus ton algo svp?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2037803
flo850
moi je
Posté le 23-11-2010 à 14:51:18  profilanswer
 

la recherche dans un ficheir est largement plus lente que la recherche en base  
 
 
En général un moteur de recherche fonctionne de la manière suivante.
 
Lors de l'indexation :  
on extrait tous les mots du texte  
on enlève les mots inutile ( le, la, les ,...; )  
on extrait la racine des mots ( stemming) , pour virer les pluriels/singulier/conjuguaison
on stocke en base la correspondance entre un texte, ses mots et leurs positions . Eventuellement,on peut affiner l'analyse en stockant si le mot est dans un titre, une signature, ...
 
 
Lors de la recherche :  
on prends l'expression recherché, on applique le même stemming que lors de l'indexation et on compare le resultats avec la liste des mots en bases pour retrouver les textes
Le classement se fait en fonction du nombre d'occurence, de leur position , ....

n°2037843
rufo
Pas me confondre avec Lycos!
Posté le 23-11-2010 à 16:02:49  profilanswer
 

Pas stemming, mais lemnisation ;) Pour ça, si t'as pas une BD linguistique, t'es pas dans le caca :D...
 
Autre inconvénient de ton algo, il travaille que par mot et non groupe de mots :/ Or, perso, j'ai besoin de rechercher un groupe de mot dans une BD de connaissances, pas juste un mot.
 
L'algo que tu décris se rapproche pas mal de LSA (analyse sémantique latente). C'est plutôt utile pour comparer le degré de similitude entre 2 documents, donc effectivement adapté dans le cadre d'un moteur de recherche pour trouver les documents les plus pertinents. Mais ce n'est pas fait pour faire de l'enrichissement de contenu d'un document sur des mots ou groupes de mots dans un texte (cas de ce topic)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2037847
flo850
moi je
Posté le 23-11-2010 à 16:12:24  profilanswer
 

c'est un algo très simple, il est bien évidemment possible d'affiner ( la notion de proximité d'un groupe de mot se déduit assez simplement de la position dans le document )  
 
Tu peux indexer aussi les groupes de 2 3 et 4 mots ensembles


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  algo / moteur de recherche

 

Sujets relatifs
Recherche texte + modification dans un fichierRecherche developpeur application Iphone
exercice algo "code barre"Recherche de personne motivée pour un projet de jeux video
recherche de dateaide pour algo "somme des chiffres d'un nombre"
Recherche webmaster bénévoleRecherche de specialiste en streaming et encodage
Macro Word - Recherche Texte ayant un format définiInitiation SQL (recherche d'un "manuel")
Plus de sujets relatifs à : algo / moteur de recherche


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