jeudi 10 avril 2014

Récupérer les flux Twitter

Aujourd'hui pour disposer de l'information la plus fraîche il est nécessaire d'utiliser Twitter. Les grandes entreprises, les décideurs, les experts, les journalistes utilisent ce média pour communiquer, il n'est plus nécessaire d'attendre la parution de la presse pour avoir à un instant t une idée des tendances sur divers sujets.

Le fait que Bloomberg, entreprise sérieuse, propose depuis un peu plus d'une année un outil d'analyse des sentiments des tweets à destination des traders souligne le fait que l'utilisation de ces outils va se généraliser dans d'autres domaines. (Détail de la plateforme de Bloomberg)

Dans cet article, je présenterai les deux façons de récupérer les flux provenant de twitter en utilisant la librairie tweepy sous Python.
J'utiliserai pour illustrer les derniers jours de la campagne municipale parisienne opposant Nathalie Kosciusko-Morizet et Anne Hidalgo.

mercredi 15 janvier 2014

Facebook Recruiting III - Keyword Extraction

http://www.kaggle.com/c/facebook-recruiting-iii-keyword-extraction

Plusieurs fois par an Facebook propose sur Kaggle un concours pour dénicher leur futur data scientist. Pour cette troisième édition, l'accent a été mis sur le textmining, au-delà de l'aspect statistique ou du machine learning, le défi principal est la capacité à manipuler de larges bases de données en ayant de fortes contraintes en mémoire vive.
À partir de 6 millions de questions issues de Stack Overflow (un site de discussion au sujet de la programmation) avec les variables suivantes : le titre, le détail de la question et les tags de la question il faut réussir à prédire pour 2 autres millions de questions les tags correspondants.

Le but est de maximiser la moyenne du score F1 :

F1 = 2[ p*r / (p+r) ]

Soit p, la précision c'est le rapport du nombre de vrais positifs sur l'ensemble des positifs prédits (vrais et faux positifs).

Soit r, le rappel c'est le rapport du nombre de vrais positifs sur l'ensemble des positifs réels non prédits (vrai positif et faux négatifs)

Résultat : le meilleur modèle a un score de 0.81350, mon modèle arrive à un score de 0.68622. En classement final, j'obtiens la 130e place sur un total de 367 participants. Mes contraintes en mémoire ont fait que j'ai du simplifier mon modèle initial. La modélisation a été réalisée entièrement sous Python.