Code Monkey home page Code Monkey logo

tdle's People

Contributors

evoluty avatar moursemotte avatar obiwan1995 avatar sandros06 avatar zanaglio avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

obiwan1995

tdle's Issues

Connexion des résultats du reduce à la DB

Le reduce envois à priori les résultats dans la STDOUT mais il est possible de directement envoyé dans une DB ou de lire la STDOUT du reduce !

Il faut donc trouver une solution puis il faut comprendre comment connecter la data entre tout ce que produit le reduce et ce que concrètement la data signifie (j'entend par là qu'il ne faut pas stocker bêtement tout ce que renvoi le reduce mais il faut peut être l'organiser dans des tableaux de tableaux)

(D'autres aspects sont à découvrir) (à expliciter)

Interface de recherche

Indépendant de tous, faire le design et les quelques autres pages d'un moteur de recherche !

(Il n'y a peut être pas grand choses à faire mais il faut le faire)

Analyseur de document WARC

Directement dans le script map:
Comprendre qu'un fichier WARC détient une en-tête: (PART HEADER)

  • Il faut récupérer l'url et extraire la base_url
    Puis il contient un "content" de type HTML (brut) (PART CONTENT)
  • Il faut le stocker dans une variable (à voir si ce n'est pas trop lourd)
    (Pour plus tard utiliser une librairie d'HTML)

Il y a donc aucun résultat pour l'instant envoyé au script reduce! Car il faut parse l'html :)

Puis recommencer à chaque fois ! ( Dans un fichier WARC il y a beaucoup de de HEADER et CONTENT à la fois)

Extraire des fichiers warc.gz ?

A-t-on besoin d'extraire des fichiers warc.gz ?

Si oui : il faut trouver comment on peut faire ? et comment le mettre en place ?
Car normalement hadoop prend un fichier map un fichier reduce et 1 fichier qu'il envois au script map !

Si non : on doit trouver la solution pour télécharger directement le fichier extrait (peut être qu'il y a une API avec CommanCrawl)

Implémentation du script de map

Une fois #1 et #3 fait le map se décompose en deux partis importante:

1) MAP DU PAGERANK

  • Parsing du HEADER pour extraire l'url du site qu'on est entrain d'analyser

  • Parsing du CONTENT HTML avec BeautifulSoup :

    • On lit toutes les balises (la lib le fait très bien)
      -On reconstruit les liens :
      -Si il commence par un / ou directement par du texte, c’est qu’il s'agit d’un lien interne : on récupère la BASE_URL dans les headers WARC
      -Sinon, on conserve uniquement la BASE_URL dans le lien
  • Map : on renvoie un couple (URL, 1) (il faut peut être envoyé si possible (URL_HEADER,URL_CONTENT,1) car sinon on perd de l'information à discuter)

2) MAP DU WORDCOUNT

  • Parsing HTML avec BeautifulSoup : même principe que pour les liens sauf qu’on récupère uniquement le texte
  • Map-reduce pour associer une liste de documents a un mot :
  • Map : on lit mot par mot et on renvoie un triplet (URL_HEADER, mot, 1) pour pouvoir savoir dans quel site on l’a trouvé

Information extra
À voir pour la gestion des langues : soit on prend tout, soit on prend uniquement le français et l’anglais (comme l’a dit Stéphane sur Scoledge) -> simple aspect si le nom de domaine est .fr ou .com on accepte sinon non ! (voir les cas pour .gov .org etc)

Connexion de l'interface avec le DB

Une fois l'interface fait #9
Il faut connecter la base de donnée pour afficher les résultats si la DB a été implémenté et n'est pas vide !
Sinon essayer de prévoir avec des tableaux d'exemple comment les résultats peuvent être affiché juste en donnant un tableaux d'exemple !


Recherche

Elastic Search : on recherche le/les mot(s) entré(s) dans l’annuaire inversé stocké dans une base Mongo
On récupère la liste des sites où appairait le/les mot(s)
On applique le page rank pour ordonner les résultats (on peut le passer à elastic search il me semble)

Ajouter le premier mapreduce

Premier mapreduce basé sur celui du wordcount
Deux fichier:

  1. map.py
  2. reduce.py

Avec le script de base d'un hadoop wordcount

Implémentation de pagerank par une DB

A l'aide d'une DB (ou d'un exemple de résultat de DB si la DB n'a pas été implémenté) extraire les dépendances des site web (une url est connecté à d'autre url)

Appliquer l'algorithme de pagerank (matrice ou autre)
Produire le résultat du pagerank pour chaque url un certain pourcentage ou poids (à voir)
Envoyer dans la DB le résultat (ou juste un tableau de deux dimensions si DB n'a pas été implémenté)

(Le script du prof d'un pagerank est simple à comprendre et peut être utilisé comme base)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.