Quantcast
Channel: AFPy's Planet
Viewing all articles
Browse latest Browse all 3409

[hautefeuille] Data-mining social en Python

$
0
0

Introduction

De nombreux professionnels de l’informatique utilisent l’aggrégation RSS/Atom pour réaliser leur veille technologique. En Python, la bibliothèque Feedparser est largement utlisée à cet effet pour parser les données de type XML des flux RSS/Atom.

Je vous propose à travers cette article d’ajouter à votre veille, les données provenant de réseaux sociaux.

J’utilise ici l’excellente bibliothèque scientifique Pattern disponible à cette url : http://www.clips.ua.ac.be/pages/pattern. Et plus particulièrement le module pattern.web.

L’exercice est formalisé autour de l’écriture d’une classe simple permettant d’exploiter les résultats. La classe est directement testable sous Python 2.

Code de la classe Marmelade

Code:

# -*- coding: utf-8 -*-

"""
Created on Sun Dec  2 16:26:06 2012

@author: Julien Hautefeuille

pip install pattern

"""

from pattern.web import cache
from pattern.web import plaintext
from pattern.web import Twitter
from pattern.web import Facebook


#######################################
# Social media data mining
#######################################


class Marmelade(object):
    """
    SEO finder
    """
    def __init__(self, lang):
        self.engine_twitter = Twitter(license=None,
                                      throttle=0.5,
                                      language=lang)
        self.engine_facebook = Facebook(license=None,
                                        throttle=1.0,
                                        language=lang)

    def twitter(self, word):
        """
        Find Twitter data
        """
        return [(u"twitter",
                  plaintext(elem.description),
                  plaintext(elem.author),
                  plaintext(elem.date),
                  plaintext(elem.url))
        for elem in self.engine_twitter.search(word, cached=True,
                                   timeout=30)]

    def facebook(self, word):
        """
        Find Facebook data
        """
        return [(u"facebook",
                  plaintext(elem.description),
                  plaintext(elem.author),
                  plaintext(elem.date),
                  plaintext(elem.url))
        for elem in self.engine_facebook.search(word, cached=True,
                                                timeout=30)]


if __name__ == '__main__':
    cache.clear() # clear Pattern search cache
    M = Marmelade('fr')
    for item in M.twitter("python"):
        print item

Remarques

La commande cache.clear() permet de vider le cache des recherches précédentes effectuées.


Viewing all articles
Browse latest Browse all 3409

Trending Articles