1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2017
    Messages : 8
    Points : 6
    Points
    6

    Par défaut Utilisation de Spark pour extraire des données

    Bonjour,

    Je suis entrain de réaliser un mini-projet avec le framework Spark

    L'idée est d'utiliser Spark pour extraire des données bien spécifiques à partir d'un document.

    Je suis débutante dans le domaine et j'aimerais bien avoir quelques recommandations d'algorithmes qui permettent de réaliser cette tâche. J'ai beaucoup cherché dans le net mais je n'ai pas trouvé ce que je cherche exactement.

    Est ce qu'il y a quelqu'un qui peut m'aider pour avoir quelques clarifications pour ce projet ?

    Tous mes remerciements.
    Cordialement.

  2. #2
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 343
    Points : 663
    Points
    663

    Par défaut

    Bonjour,

    L'idée est d'utiliser Spark pour extraire des données bien spécifiques à partir d'un document.
    Pouvez-vous préciser SVP le format de ce document ?

    Parce que pour moi, Spark est fait à la base pour traiter des données :

    - ligne à ligne en utilisant les RDD (Resilient Distributed Dataset)
    - tabulaires (en ligne et en colonne si vous préférez, comme les tables de bases de données ou les fichiers CSV) en utilisant les DataFrames

    Après il existe des extensions comme Spark SQL, ou bien des connecteurs pour s'interfacer avec un autre type de logiciel, comme par exemple des connecteurs pour se connecter à des bases de données NoSQL orientées documents JSON (come MongoDB par exemple).

    Merci

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2017
    Messages : 8
    Points : 6
    Points
    6

    Par défaut

    Bonjour,

    Je vous remercie pour votre réponse.
    L'idée est d'extraire des mots ou des phrase à partir du web (un site bien déterminé) qui doivent être liés sémantiquement à un mot donné comme input. Je ne suis pas certaine que c'est faisable avec Spark ou pas. Mais puisque Spark intègre des algorithmes de Machine Learning donc cela peut résoudre mon problème.
    Mon problème c'est que je n'arrive pas à trouver un algorithme dans le net pour réaliser cette tâche.

    Cordialement.

  4. #4
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 343
    Points : 663
    Points
    663

    Par défaut

    Je ne suis pas expert du tout, mais pour moi "extraire des mots ou des phrase à partir du web", cela existe déjà depuis belles lurettes.

    C'est une tâche faite par ce qu'on appelle des Crawlers, en français des collecteurs. Je crois que l'on parle d'ailleurs de Web Scraping. De plus vous n'avez qu'un site Web, ce qui va faciliter la tâche.

    En cherchant sur Internet, j'ai trouvé ce logiciel Open Source en python :

    https://scrapy.org/

    Par contre, par rapport au mot donné comme input, ce mot sert juste à filtrer les données extraites du site Web, ou bien il y a une véritable analyse sémantique derrière ?

    En tout cas, pour tout ce qui est analyse de texte, j'ai déjà entendu parler des librairies telles que NLTK ou encore SciKit Learn :

    http://scikit-learn.org/stable/

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2017
    Messages : 8
    Points : 6
    Points
    6

    Par défaut

    Je vous remercie pour votre aide, crawler sera une solution efficace pour cette tâche.

    Mais, je voudrai savoir après avoir réalisé le crawler c'est à dire l'extraction de la page web désirée, où elle va être stockée ? et est ce que je peux par la suite accéder à cette page et extraire les mots ou les phrase que j'en ai besoin ?

    le mot donné en input sert à determiner quels mots à sélectionner à partir de la page web: si un mot X (dans la page web) est lié sémantiquement au mot donné en input il sera alors extrait. Donc, cela peut être réalisé par une analyse sémantique ?

  6. #6
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 343
    Points : 663
    Points
    663

    Par défaut

    Mais, je voudrai savoir après avoir réalisé le crawler c'est à dire l'extraction de la page web désirée, où elle va être stockée ? et est ce que je peux par la suite accéder à cette page et extraire les mots ou les phrase que j'en ai besoin ?
    Je ne peux pas vous dire, je n'ai pas d'expérience sur le sujet. A mon avis, c'est le moment de tester. Pas besoin de Spark je pense. Ce qu'il vous faut, c'est un environnement en Python et aussi de télécharger un Crawler en Open Source.

    Je pense que vous allez récupérer votre page Web sous forme d'un fichier, fichier que vous pourrez traiter par la suite.


    le mot donné en input sert à determiner quels mots à sélectionner à partir de la page web: si un mot X (dans la page web) est lié sémantiquement au mot donné en input il sera alors extrait. Donc, cela peut être réalisé par une analyse sémantique ?
    Je sais qu'il y a des algorithmes d'analyse sémantique. Mais après je ne sais pas ce que vous voulez faire. Il faudrait nous donner un exemple concret.

    Par exemple, si je vous donne le mot Gourmandise en input, et que dans la page Web figurent les mots Bonbons, Gâteaux et Chocolat, ils seront extraits ou pas ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2017
    Messages : 8
    Points : 6
    Points
    6

    Par défaut

    Oui les mots "Bonbons, Gâteaux et Chocolat" seront extraits si on a le mot "Gourmandise" comme input.

    Si on prend un autre exemple: le mot en input est : "Education" et dans la page web on a les mots: { Lire, Animal , Apprendre, Livre, Jouer }.
    Alors, les mots qui doivent être extraits sont: "Lire, Apprendre, Livre". Tandis que les mots qui ne doivent pas être extraits sont: "Animal, Jouer".

  8. #8
    Membre éprouvé

    Homme Profil pro
    Data Scientist & Statisticien
    Inscrit en
    février 2009
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Data Scientist & Statisticien
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2009
    Messages : 411
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    2

    Par défaut

    Bonjour à tout les deux,

    Je réponds à deux points avec l'utilisation de Spark puis au traitement sémantique :

    1. Spark est utilisé essentiellement dans un domaine distribuer. Pour cela il faut savoir de quel ordre est ta volumétrie de donnée. Si elle nécessite plusieurs serveurs en parallèle pour un même calcul. D'autres outils permettent de faire le même type de calcul sans passer par un système distribuer qui peut être très complexe à mettre en place.
    2. Pour l'analyse sémantique, il faut définir la langue, mais aussi le type d'information recherché. Pour t'aiguiller tu peux regarder du côté de l'université de Standford avec CoreNLP par exemple. D'autres recherches peuvent être menées sur internet selon ton besoin.


    Au plaisir de te lire,

  9. #9
    Membre éprouvé

    Homme Profil pro
    Data Scientist & Statisticien
    Inscrit en
    février 2009
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Data Scientist & Statisticien
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2009
    Messages : 411
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    2

    Par défaut

    Je réponds à ton dernier message que je n'avais pas vu alors que je rédigeais le mien.

    Pour avoir des synonymes, le word2vec est un très bon outil (Algo). Sinon tu as la base wordnet qui doit faire cela aussi (Base).

    Au plaisir,

  10. #10
    Expert Oracle confirmé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2003
    Messages : 343
    Points : 663
    Points
    663

    Par défaut

    Bonjour,

    Spark est utilisé essentiellement dans un domaine distribuer. Pour cela il faut savoir de quel ordre est ta volumétrie de donnée. Si elle nécessite plusieurs serveurs en parallèle pour un même calcul. D'autres outils permettent de faire le même type de calcul sans passer par un système distribuer qui peut être très complexe à mettre en place.
    C'est juste : Spark a été conçu pour tourner sur un ensemble de serveurs.

    C'est donc un système distribué, qui offre aussi une console interactive, qui permet de faire en plus de l'In-Memory (à condition que les serveurs soient bien pourvus en RAM). et qui optimise aussi les temps de traitement car d'une part Spark travaille en Lazy Evaluation en mode interactif, et d'autre part Spark optimise le traitement des données sur les différents serveurs à l'aide d'un Scheduler de type DAG (Directed Acyclic Graph).

    Ca c'est pour la partie infrastructure.

    Maintenant, si l'on veut juste apprendre à manier Spark, et à développer sur Spark, on peut aussi le faire sur un simple PC, en standalone.

    Pas besoin d'un système distribué, il suffit juste d'installer Spark, sachant que Spark s'installe bien sur sur Linux, mais aussi sur Windows.

    Encore une fois, je dis cela pour information, et c'est juste pour apprendre, pas pour faire de la production.

  11. #11
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juin 2017
    Messages : 8
    Points : 6
    Points
    6

    Par défaut

    Bonjour,

    Je vous remercie tous les deux pour votre aide.

    1/ Pour la volumétrie utilisé, je suis dans le cadre de travailler avec un volume élevé de données ce qui m'a conduit d'une part à utiliser spark. En outre, spark supporte le calcul itératif et améliore le problème de rapidité et de ressources en utilisant le calcul en mémoire. Ainsi, il utilise le RDD: Resilient Distributed Dataset: qui permet de stocker les données en mémoire et fournit une tolérance aux fautes sans réplication. Spark est aussi facile à programmer puisqu'il peut être codé en java, python, scala..
    D'autre part, Spark intègre des algorithmes de Machine Learning. Donc, cela peut être une solution pour l'utiliser afin d'extraire les synonymes dans mon exemple.

    2/ Après une petite recherche à propos de word2vec que vous m'avez proposé, j'ai trouvé qu'on peut utilisé cet algorithme avec spark. Donc, word2vec: pour extraire les synonymes, spark: pour travailler avec un nombre élevé de données en temps réel.
    Ce lien fournit un exemple d'utilisation de word2vec avec spark:
    http://spark.apache.org/docs/latest/...xtraction.html

    3/ Pour l'installation de spark, je l'ai installé sur linux sur mon pc.
    Ce lien peut être utile pour ceux qui cherche à installer spark:
    http://cedric.cnam.fr/vertigo/Cours/...tallationspark

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/07/2015, 10h18
  2. [VBA-E] extraire des données à partir d'une autre feuille
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/01/2007, 13h26
  3. [GML] Scripts shell pour extraire des données d'Oracle
    Par diamonds dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 28/09/2006, 07h04
  4. Réponses: 3
    Dernier message: 05/05/2006, 11h41
  5. Utiliser un parser pour extraire des formules
    Par EpOnYmE187 dans le forum C++
    Réponses: 2
    Dernier message: 15/03/2005, 23h55

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