Detection du "sujet" d'un article

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Detection du "sujet" d'un article

Re: Detection du "sujet" d'un article

par Calimero » 30 sept. 2009, 19:06

ça marche aussi sous windows, normalement l'éxécutable se situe dans le même dossier que ton installation de php.

Re: Detection du "sujet" d'un article

par paro » 30 sept. 2009, 18:20

Cette commande marche aussi sous windows? Dans php.exe?

Re: Detection du "sujet" d'un article

par Calimero » 30 sept. 2009, 16:11

L'installation des extensions pecl se fait en ligne de commande.

Code : Tout sélectionner

pecl install xxxxxxx

Re: Detection du "sujet" d'un article

par paro » 30 sept. 2009, 14:20

La fonction fait partie de PECL, une série de modules à installer séparément.
Je sais pas si c'est moi qui ne cherche pas bien, mais en tout cas, j'arrive pas à trouver le dll approprié.
Tout ce que j'arrive à trouver c'est le fichier source en C... est-on est obligé de le compiler soi-même?

C'est ici : http://pecl.php.net/package/stats

Re: Detection du "sujet" d'un article

par Berzemus » 22 sept. 2009, 09:39

La fonction fait partie de PECL, une série de modules à installer séparément.

En ce qui concerne la fonction postée, j'ai pas trop vu de quelle inspiration elle était, ni de quel algo il s'agissait.

Quant à la signification des résultats, tout dépend de l'algo utilisé. Tu ne saura vraiment distinguer un résultat positif d'un négatif qu'après avoir fait quelques dizaines de comparaisons. C'est toute la science des statistiques que de produire une formule adaptée ^-^

Re: Detection du "sujet" d'un article

par paro » 21 sept. 2009, 22:32

Bon, j'ai commencé déjà à tester mon code, et les résultats ne sont pas très concluants...

Pour 2 articles (de journal) qui parlent du même sujet, j'obtient un coefficient de Pearson de -0,75. Pour deux articles qui ne parlent pas de la même chose : -0,93.
J'ai ensuite effectué des tests plus simples avec les deux phrases : "je suis bob" et "je suis john et bob" et je suis remonté à -0,40. Mais je reste dans le négatif...

J'ai utilisé les fonctions que quelqu'un a posté en commentaire sur : http://be2.php.net/stats_stat_correlation.
La fonction stats_stat_correlation n'était pas reconnue par ma version de PHP apparement.

Re: Detection du "sujet" d'un article

par Berzemus » 21 sept. 2009, 17:18

Le plus simple est de constituer toi-même ton dictionnaire, au fur et à mesure des données (a chaque nouveau texte, il est d'abord analysé à la recherche de nouveaux mots à ajouter au dico, sans parler des mots conjugués).

Ensuite, le vecteur ne doit utiliser que les mots présents dans les deux textes à comparer, par simple souci d'économie de temps de calcul.

Et a chaque nouveau texte, il faudra le comparer à tous les autres déjà présents, ce qui implique un temps de calcul conséquent après quelques centaines.

Alors il y à deux approches, soit il faut générer un clef qui permet une comparaison rapide avec d'autres clefs existantes (d'une façon ou d'une autre), ou alors il faut précalculer les différences entre les textes, et les stocker.

Re: Detection du "sujet" d'un article

par Sékiltoyai » 21 sept. 2009, 17:14

Gourmand mais possible.
Après, là encore, ce n'est pas indispensable d'avoir un dico, mais ce serait plus simple (mais moins puissant) avec en effet.

Re: Detection du "sujet" d'un article

par paro » 21 sept. 2009, 16:45

J'étais gentiment en train de coder ca quand j'ai eu une petite idée.

Si je voulais étendre mon script à la comparaison globale de textes, c'est à dire non plus deux textes entre eux, mais un texte comparé à une multitude de textes, je pourrais stocker tous les mots du dictionnaire français dans une table, tester chacun d'eux dans le texte puis créer une très longue clé (du style [1,0,1,0,1,1,1,1,0,1,0, [...], 0, 0]) que je stockerai elle même avec l'article.

Ensuite, à chaque ajout d'article, il suffirait de tester la nouvelle clé avec toutes les autres clés déjà présentes dans la base afin de détecter les similitudes.

Qu'en pensez-vous? Ca vous semble réalisable?

Re: Detection du "sujet" d'un article

par paro » 20 sept. 2009, 20:36

Ah d'accord! C'est vrai, c'est pas bête.

Je vais essayer de coder ça en PHP, voir un peu ce que ca donne en pratique. N'hésitez pas, si vous avez des conseils ou des suppléments d'information!

Re: Detection du "sujet" d'un article

par Sékiltoyai » 20 sept. 2009, 19:20

Je disais cela en réponse à ta question :
Comment vectorise-t-on les deux textes?
La méthode que je te donne te permet d'avoir la liste des mots présents dans les deux textes. Tu peux te servir de cette liste (et de cette association mot <-> nombre) pour construire les deux vecteurs sans avoir besoin d'un dico.

Re: Detection du "sujet" d'un article

par paro » 20 sept. 2009, 19:14

Mais, Sékiltoyai, je ne comprend plus. Tu indiques qu'il faut attribuer un nombre à chaque mot present.

Or, Berzemus, indique qu'il faut uniquement creer deux tableaux, comme ceci :
Phrase 1 : [1, 1, 1, 1, 1, 1, 0, 0]
Phrase 2: [1, 1, 0, 0, 1, 0, 1, 1]
Or, selon la methode de Berzemus, ces deux tableaux n'attribuent non pas un nombre à chaque mot présent, mais simplement un booléen qui indique si le mot est présent ou non... je suis perdu.

Re: Detection du "sujet" d'un article

par Sékiltoyai » 20 sept. 2009, 19:06

Tu peux faire la liste des mots, ou des radicaux (mais pour cela il faut avoir un dico ou des traitements spéciaux) présents dans les deux textes, et ensuite tu attribues un nombre à chacun.

Re: Detection du "sujet" d'un article

par paro » 20 sept. 2009, 17:11

Très bien, merci Berzemus, cette fois-ci je comprend beaucoup mieux le côté théorique du calcul.

Si j'ai bien suivi, on commence par "vectoriser" les deux textes, puis on compare les deux vecteurs avec la formule de Pearson ( notamment grâce à la fonction déjà incluse dans php).

Seulement, il reste une zone d'ombre dans mon esprit:
Comment vectorise-t-on les deux textes?
Cela induit-il qu'il faut avoir stocké quelque part l'ensemble des mots du dictionnaire français, et ensuite tester leur présence ou non dans chacun des textes?
(Si c'est le cas, ca risque effectivement d'être long...)

Re: Detection du "sujet" d'un article

par Sékiltoyai » 18 sept. 2009, 16:19

Et sinon, on peut calculer la distance (on parle pas ici de distance géométrique ou euclidienne, mais d'une distance plus abstraite) entre deux mots avec la fonction levenshtein() de php, qui compte le nombre de permutations de lettres qu'il faut pour partir d'un mot pour arriver à un autre.
Bah, sur ce point, à part pour repérer des fautes d'orthographes et proposer une correction (comme l'exemple de la fonction), je ne pense pas que c'ait une utilité réelle dans ce cas. On aura juste la différence orthographique entre deux mots, mais rien de très exploitable.

J'ai pensé aux vecteurs. J'ai hésité à en parler, je ne savais pas que la méthode de pearson se basait dessus.