Page 1 sur 2

Moteur de recherche / Traitement Automatique du Langage

Posté : 09 juil. 2009, 15:57
par pirquessa
Bonjour,

Souhaitant intégrer un petit moteur de recherche dans mon site, j'aimerais le rendre plus pertinent en utilisant le Traitement Automatique du Langage... (Pour la génération de mes mots cles)

Je ne trouve pas de bibliothèque proposant ce genre de services... En connaissez-vous ou dois-je me limiter à des traitements basiques fait avec mes petites mains ?

Merci à vous :)

Posté : 09 juil. 2009, 16:06
par Berzemus
Et quels méthodes compte tu exploiter ? Tu as fait un tour du côté de la recherche textuelle de MySQL ?

Posté : 09 juil. 2009, 22:52
par pirquessa
Alors ce que je veux faire c'est radicaliser des mots. Je m'explique. Sur mon site, beaucoup de pages auront des mots clés liées. Avant de sauvegarder ces mots, j'aimerais les traiter de facon à n'indexer qu'une racine commune pour des mots d'une meme famille. Le but est qu'une recherche sur "jeu", "jeux", "antijeu"... aboutisse sur un même résultat.

Le traitement automatique du langage permet des choses bien plus poussée (retirer la conjugaison, les accords, les pluriels) et j'aurais beaucoup aimé pouvoir profiter d'une classe faisant deja tout ca :)

Posté : 10 juil. 2009, 09:44
par Berzemus
Tu peux t'appuyer sur des moteurs de recherche open-source déjà existants, comme sphinx ou xapian, si ce qu'offre mysql ne suffit pas. Ou bien te lancer dans une étude approfondie des moteurs du fonctionnement d'un vrai moteur de recherche, et t'en concevoir un sur mesure.

Posté : 10 juil. 2009, 18:37
par pirquessa
Le but était de gagner du temps en évitant de tout me faire :( Bizare que je sois le premier à en avoir besoin quand même...

Posté : 10 juil. 2009, 20:05
par Sékiltoyai
Regarde si tu peux pas trouver un résultat d'une équipe de recherche qui aurait implémenté ça.

Posté : 10 juil. 2009, 20:13
par Berzemus
Le but était de gagner du temps en évitant de tout me faire :( Bizare que je sois le premier à en avoir besoin quand même...
Bah non, c'est existe, ce que tu décris c'est du "stemming". Le moteur de recherche fulltext interne de Mysql ne le fait pas

Il y à bien des plugins qui semblent le faire [1], mais bon.

Sphinx[2], qui est un moteur de recherche très lié à MySQL, inclut le stemming, mais seulement en russe et en anglais, ceci dit, il devrait y avoir moyen d'y ajouter le français, voir le trouver quelque part sur le net.

Ce que tu demandes existe, mais pas pas sur mesure, avec un peu d'huile de coude.



[1] http://www.mnogosearch.org/doc/msearch-udmstemmer.html
[2] http://en.wikipedia.org/wiki/Sphinx_(search_engine)

Posté : 10 juil. 2009, 21:28
par pirquessa
Tu as tout à fait cerné mon problème. Je vais faire plus de recherches sur stemming... Je ne trouvais plus le mot.

Merci :)

EDIT : Voilà peut être une piste : http://alx2002.free.fr/utilitarism/stem ... er_fr.html

Posté : 11 juil. 2009, 09:27
par Hywan
Hey :-),

L'implémentation de ce genre d'algorithme se fait très bien pour une langue donnée, sur une petite quantité de données. Mais dès qu'on passe à des recherches plus générales, ça devient éprouvant. Je te conseille donc d'utiliser des outils tout fait, car c'est bien plus complexe qu'il n'y paraît.

Posté : 11 juil. 2009, 10:56
par pirquessa
Ben ca c'est une implantation FR et EN qui a l'air de marcher ... Si tu en connais une mieux, je suis preneur :)

Posté : 11 juil. 2009, 12:14
par Hywan
Je ne parlais pas de l'algorithme que tu as trouvé. En revanche, je développerais ça au maximum côté serveur de base de données (car c'est fait pour ça après tout), plutôt que côté serveur applicatif (comprendre PHP). Performances obligent.

Re: Moteur de recherche / Traitement Automatique du Langage

Posté : 11 juil. 2009, 16:41
par FuZZyLine
Bonjour,
Souhaitant intégrer un petit moteur de recherche dans mon site, j'aimerais le rendre plus pertinent en utilisant le Traitement Automatique du Langage... (Pour la génération de mes mots cles)
Je ne trouve pas de bibliothèque proposant ce genre de services... En connaissez-vous ou dois-je me limiter à des traitements basiques fait avec mes petites mains ?
Merci à vous :)
Salut, je m'incruste un brin espérant te donner une info.

De mon côté je parlerai de "System expert" du temps de "logo" celui-ci en inté"grait un.
J'ai de suite pensé à ca lors de la lecture de ta demande. La gestion se fait un peu à la maniere
de dico et ce de façon très simple.

1) Mots choisis et associés
2) Mots ignorés
3) Mot inconnus - Mots que tu peux intégrer de façon automatique à l'1 des 2 groupes précédents

Je n'ai pas vraiment de réponse concrête mais je pense que ca peut être une piste.

Bon code @+ ;)

EDIT: http://fr.wikipedia.org/wiki/Syst%C3%A8me_expert

Posté : 11 juil. 2009, 19:21
par pirquessa
Je ne parlais pas de l'algorithme que tu as trouvé. En revanche, je développerais ça au maximum côté serveur de base de données (car c'est fait pour ça après tout), plutôt que côté serveur applicatif (comprendre PHP). Performances obligent.
En fait, je laisse mes membres proposer les mots cles associés à leur article/contenu... Cependant, pour obtenir plus de résultat lors d'une recherche j'ajoute parfois le titre de l'article ou d'autres mots clef et le tout est filtré par un système permettant de réduire le nombre de mots différents qui sont indexés. D'ou le traitement en php...

Posté : 12 juil. 2009, 10:25
par mojorisin
Bonjour,
si tu as le choix de la base de données utilisées alors choisi postgres qui, il me semble, permet cela en natif.
Voir http://docs.postgresqlfr.org/8.3/textse ... aries.html

ps: peux pas mettre en forme le lien, suis sur le mac de ma copine et je trouve rien sur le clavier :D

Posté : 12 juil. 2009, 12:36
par Sékiltoyai
ps: peux pas mettre en forme le lien, suis sur le mac de ma copine et je trouve rien sur le clavier :D
Mouhahahaha, tu es faible :D

Code : Tout sélectionner

[url]
et

Code : Tout sélectionner

[/url]
En plus tu as les boutons au dessus :)

Et même

Code : Tout sélectionner

@&é"'(§è!çà)-Ÿ´„”’[å»ÛÁØ]–ÆÅÊ‚™ŸªïŒ∏Ô¥Ω∑∆flÎÍË|Ó‰#≥›⁄¢√∫ı¿•\±<,;:=ù`^$#°_¨*%£?./+
(Le Mac est trop fort :) )