IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Trouver les mots les plus répétés dans un champ


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut Trouver les mots les plus répétés dans un champ
    Bonjour à tous,

    J'ai un forum fait maison pour m'amuser et améliorer mes connaissances en php.
    Je voudrais, par une requête sql, en php, afficher sur une page les thèmes les plus en vogue : c'est-à-dire afficher les titres sensiblements similaires triés par similarité !

    Exemple :

    Titres des sujets :
    -------------------

    "ben laden est mort"
    "la mort de ben laden"
    "faire une confiture à la framboise"
    "faire une confiture à la fraise"
    "ben laden"
    "la confiture à la fraise est trop bonne"
    "Ben Laden est-il vraiment mort ?"
    Cela afficherait
    -------------------
    Thèmes les plus en vogue =

    1 - Ben laden
    "ben laden est mort"
    "la mort de ben laden"
    "ben laden"
    "Ben Laden est-il vraiment mort ?"

    2 - Confiture
    "faire une confiture à la framboise"
    "faire une confiture à la fraise"
    "la confiture à la fraise est trop bonne"

    3 - fraise
    "faire une confiture à la fraise"
    "la confiture à la fraise est trop bonne"
    En gros, je connaît à peu près les requêtes "match against" mais il faut définir une variable, or là il n'y a rien que je puisse définir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATCH (title,description) AGAINST ('ben laden' IN BOOLEAN MODE)
    retournerai tous les topics parlant de ben laden, mais comment savoir que ben laden est la combinaison de mots la plus présente dans la table mysql ?

    D'avance merci de votre aide !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Ca n'est pas un problème simple que tu peux résoudre à l'aide d'une requête, à mon avis.

    Je pense que tu devrais créer un fichier index qui référence pour chaque mot le nombre d'occurrence et l'adresse des posts qui contiennent ce mot.
    Et comme tu veux aussi gérer les genres (masculin/féminin), les types (singulier/pluriel) et les déclinaisons des termes (infinitifs conjugués etc...) pour avoir le meilleur index, je te conseille de regarder du coté du tree-tagger qui est capable de "lemmatiser" un terme.

    Enuite tu pourra lire de fichier index pour compter les occurrences et savoir comment construire tes "sujets les plus en vogues"

    En fin de compte ce que tu veux faire s'appelle IRI ce qui signifie Indexation et Recherche d'Information. C'est un sujet très intéressant et je te souhaite bon courage pour cela !

    Guillaume

Discussions similaires

  1. [2008R2] Comment trouver quelques sont les mots le plus souvent répétées
    Par bisou007 dans le forum Développement
    Réponses: 3
    Dernier message: 01/07/2013, 16h47
  2. [PHP 5.0] Rechercher les mots d'une phrase dans une table
    Par tutomania dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2009, 12h30
  3. Trouver le mot le plus long dans une chaîne
    Par bassoum dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 02/11/2008, 10h45
  4. Réponses: 6
    Dernier message: 19/10/2008, 07h56
  5. Récupérer seulement les mots de plus de 5 lettres
    Par Tee shot dans le forum Langage
    Réponses: 12
    Dernier message: 20/05/2007, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo