evoluty / tdle Goto Github PK
View Code? Open in Web Editor NEWPagerank for tdle assessment
Pagerank for tdle assessment
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)
Cela permettra à tout le monde de tester !
Prevoir des fichiers d'exemple pas trop lourd !
Faire des test fonctionnelles
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)
Directement dans le script map:
Comprendre qu'un fichier WARC détient une en-tête: (PART HEADER)
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)
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)
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 :
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
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)
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)
De manière indépendante dans un premier temps !
(Autres aspect à découvrir :p)
Premier mapreduce basé sur celui du wordcount
Deux fichier:
Avec le script de base d'un hadoop wordcount
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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.