Bonjour à tous !
J'ai une petite idée derrière la tête, mais je n'ai pas du tout idée de comment m'y prendre...
Voilà le truc : j'aimerais faire un programme qui compte le nombre d'apparitions de chacun des mots d'une page web (ou d'un fichier txt ou pdf si c'est plus faisable/simple) en vue d'inscrire les plus récurrents dans une base de données sql toute bête (#id/$mot/$nb) - mais ça, ça peut venir dans un deuxième temps, ce n'est pas encore trop long à faire à la main.
Si ça pouvait être fait en processing+php ce serait l'idéal, parce que je ne connais que ça. Mais je n'ai rien trouvé sur le net alors j'imagine que ce n'est pas faisable... Par contre j'ai trouvé quelque chose en java, est-ce qu'il est possible d'insérer du java dans processing (c'est la même base, non ?) ? (ceci dit j'ai rien compris aux propositions faites)
>> http://www.developpez.net/forums/d18381 … ce-string/
Enfin, comment "éliminer" les expressions courantes mais inintéressantes comme "le", "des", "parce que"... ?
Est-il possible d'utiliser une sorte de dictionnaire de mots interdits ?
Et la même chose avec des flux rss, ça appartient au domaine de la science fiction ?
J'ai l'impression d'être au pied d'une immense montagne...
edit : J'ai oublie de préciser où j'en étais : j'ai commencé avec processing ; j'ai réussi à "splitter" chaque mot d'un .txt. C'est pour la comparaison de chaque que je me triture la tête...
Dernière modification par galenskap (2010-10-27 13:30:43)
Hors ligne
Salut,
C'est possible de faire ça en php ou en processing, à partir d'un fichier texte ou d'une url. Rien d'insurmontable. Ca me paraît plus simple en php, surtout pour la connexion mysql
Pour php, tu peux t'y prendre comme ça (il y a surement plusieurs voies) :
- charger le contenu d'une page en utilisant CURL dans une chaine,
- splitter cette chaine en un tableau,
- parcourir ce tableau, et créer un tableau associatif (en ne gardant que les mots significatifs*) ou chaque mot (la clef) est associé à son nombre d'occurences (la valeur), c.a.d. pour chaque mot faire $mots["truc"] ++. A la fin de cette étape, tu auras un tableau du type
$mot["truc"] = 5
$mot["machin"] = 2
...
* pour cela il faut utiliser une table d'appauvrissement, c'est à dire un tableau qui contient tous les mots dont tu ne veux pas, et tester si le mot en cours appartient à cette table
Si tu cherches un exemple en processing : word cloud de Guy Yithzaki : http://www.openprocessing.org/visuals/?visualID=7042
Hors ligne
Salut,
tu connais la loi de Zipf ? : http://fr.wikipedia.org/wiki/Loi_de_Zipf
si non, ça peut t'intéresser.
bon courage,
++
Hors ligne
Merci emoc !
J'y suis presque, maintenant ! J'ai fait l'essai avec un article du monde.fr c'est pas tout clean mais ça fonctionne. Par contre, il garde quelques balises html (je n'arrive pas à m'en débarasser) et reste sensible à la casse...
Dernière étape à part ces quelques détails : l'enregistrement des plus grosses valeurs dans la base de données... Mais plus tard, là j'en peux plus
@22_ Non, je ne connaissais pas du tout la loi de Zipf... Les maths/probabilités c'est pas mon truc, mais d'un point de vue sociologique, c'est tout à fait intéressant, en effet... Merci !
Pour ceux que ça intéresse :
Hors ligne
Tu peux utiliser strip_tags pour enlever les balises, et strtolower pour passer toute ta chaine en minuscules avant la recherche par expressions régulières.
Hors ligne
Ah ah ah, super, ça roule tout seul !
Dernier petit problème : le "à" qui reste quoi que je fasse. Pas grave.
Je mets les sources à disposition pour qui veut (zip joint).
Un grand merci
Hors ligne
Pages: 1