Amirouche  Boubekki avatar Amirouche Boubekki committed d3f7c7d

12:35

Comments (0)

Files changed (4)

bibliographie.rst

     
  5. **Enrichir un tweet avec wikipedia**
     
+ 6. **local search email de l'auteur de bulbflow**
  
+ 7. **Algorithme de type page rank dans la tablette***
 | Fonction               | Lot 1      | Lot 2    | Lot 3    | date de bascule |
 |                        |            |          |          |                 |
 +========================+============+==========+==========+=================+
-| Permettre de diffuse   | X          |          |          | 14 Août 2011    |
+| Permettre de diffuse   |     X      |          |          | 14 Août 2011    |
 | des articles et autre  |            |          |          |                 |
 | media sur le web       |            |          |          |                 |
 +------------------------+------------+----------+----------+-----------------+
-| Offrir les outils pour |            | X        |          |                 |
+| Offrir les outils pour |            |    X     |          |                 |
 | la gestion de la partie|            |          |          |                 |
 | rédaction              |            |          |          |                 |
 +------------------------+------------+----------+----------+-----------------+
-| Proposer des services  |  X         |          |          | 14 Août 2011    |
+| Proposer des services  |     X      |          |          | 14 Août 2011    |
 | communautaires         |            |          |          |                 |
 +------------------------+------------+----------+----------+-----------------+
-| Offrir les outils pour |  X         |          |          | 14 Août 2011    |
+| Offrir les outils pour |     X      |          |          | 14 Août 2011    |
 | la gestion de la partie|            |          |          |                 |
 | communautre            |            |          |          |                 |
 +------------------------+------------+----------+----------+-----------------+
-| La gestion des         |            |          | X        |     |
+| La gestion des         |            |          |    X     |                 |
 | abonnements            |            |          |          |                 |
 | la gestion de la partie|            |          |          |                 |
 | communautre            |            |          |          |                 |
 Glossaire
 =========
 
+A
+-
+
+Apprentissage automatique
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+L'apprentissage automatique (machine learning en anglais), un des champs d'étude 
+de l'intelligence artificielle, est la discipline scientifique concernée par le 
+développement, l'analyse et l'implémentation de méthodes automatisables qui 
+permettent à une machine (au sens large) d'évoluer grâce à un processus d'apprentissage, 
+et ainsi de remplir des tâches qu'il est difficile ou impossible de remplir par 
+des moyens algorithmiques plus classiques.
+
+Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/Apprentissage_automatique>`_.
+
+B
+-
+
 Bascule
--------
+^^^^^^^
 
 Une bascule vise à mettre en production une grande quantité code sur la plateforme.
 
+
+C
+-
+
 CDN
----
+^^^
 
 Un Content Delivery Network (CDN) est constitué d’ordinateurs reliés en réseau à 
 travers Internet et qui coopèrent afin de mettre à disposition du contenu ou des 
 
 Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/Content_Delivery_Network>`_.
 
+D
+-
+
+E
+-
+
+F
+-
+
+G
+-
+
 git
----
+^^^
 
 Git est un logiciel de gestion de versions décentralisée. C'est un logiciel libre
 créé par Linus Torvalds, le créateur du noyau Linux, et distribué sous la GNU GPL 
 
 Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/Git>`_.
 
+H
+-
+
+I
+-
+
+J
+-
+
+K
+-
+
+L
+-
+
+M
+-
+
+Machine Apprenante
+^^^^^^^^^^^^^^^^^^
+
+TODO
+
+Supervisé
+~~~~~~~~~
+
+TODO
+
+Non-supervisé
+~~~~~~~~~~~~~
+
+TODO
+
+Malédiction dimentionnelle
+==========================
+
+La malédiction dimentionnellle se réfère à l'ensemble des phénomènes qui apparaissent
+à haute dimension et qui n'apparaissent pas dans les dimensions bases tel que la base
+2 ou 3.
+
+Voir `l'article wikipedia anglais <http://en.wikipedia.org/wiki/Curse_of_dimensionality>`_
+
 mercurial
----------
+^^^^^^^^^
 
 Mercurial est un système de gestion de versions permettant en particulier la gestion
 de version décentralisée. Il est disponible sur la plupart des systèmes Unix et Windows.
 
 
 Méthode Agile
--------------
+^^^^^^^^^^^^^
 
 Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/M%C3%A9thode_agile>`_
 
+MongoDB
+^^^^^^^
+
+MongoDB  est une base de donnée sans-schema orienté documment écrit en C++.
+
+Voir `l'article wikipedia anglais <http://en.wikipedia.org/wiki/MongoDB>`_
+
+MySQL
+^^^^^
+
+MySQL est un système de gestion de base de données (SGBD). Selon le type d'application,
+sa licence est libre ou propriétaire. Il fait partie des logiciels de gestion de 
+base de données les plus utilisés au monde, autant par le grand public (applications 
+web principalement) que par des professionnels.
+
+Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/MySQL>`_
+
+N
+-
+
+Neo4j
+^^^^^
+
+Neo4j est un système de gestion de base de données NoSQL sous forme de graphe écrit
+en Java. 
+C'est un outils libre sous license AGPLv3 avec une version commerciale.
+
+Voir `l'article wikipedia anglais <http://en.wikipedia.org/wiki/Neo4j>`_
+
+NoSQL
+^^^^^
+
+« Not Only SQL » désigne une catégorie de logiciels de base de données apparue 
+en 2009 et qui, contrairement à la majorité des produits dans ce domaine, proposent 
+des alternatives au langage SQL et au modèle de données relationnel en vue d'améliorer 
+les bases de données dans une direction nécessitant une évolutivité horizontale.
+
+Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/NoSQL>`_
+
+O
+-
+
+OrientDB est une base de donnée open source NoSQL écrit en Java. Elle est orienté
+document mais les relations entre les documents sont gérer comme dans une base de
+donnée orienté graphe. OrientDB peut utiliser différent type de schema pour les 
+documents.
+
+Voir `l'article wikipedia anglais <http://en.wikipedia.org/wiki/OrientDB>`_
+
+
+P
+-
+
+PostgreSQL
+^^^^^^^^^^
+
+PostgreSQL est un système de gestion de base de données relationnelle et objet 
+(SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type 
+BSD.
+
+Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/PostgreSQL>`_
+
+Q
+-
+
+R
+-
+
+S
+-
+
 SSLL
-----
+^^^^
 
 Une société de services en logiciels libres (SSLL ou SS2L) est une société de
 services en ingénierie informatique (SS2I) spécialisée dans la réalisation de 
 
 Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/M%C3%A9thode_agile>`_
 
+T
+-
+
+U
+-
+
+V
+-
+
+W
+-
+
 WSGI
-----
+^^^^
 
 La Web Server Gateway Interface est une spécification qui définit une interface 
 entre des serveurs et des applications web pour le langage Python.
 
 Voir `l'article wikipedia complet <http://fr.wikipedia.org/wiki/Web_Server_Gateway_Interface>`_.
+
+X
+-
+
+Y
+-
+
+Z
+-
 
 Ce chapitre est partagé en trois parties, dans un premier temps je decrit la base
 de connaissance et son support, ensuite les différentes methodes qui permettrait 
-de faire de la recommandation sur cette base de donnée, pour finir par une conclusion 
+de faire de la recommandation sur cette base de donnée, pour finir par un bilan 
 sur le travail fait.
 
 
 Base de connaissances
 ---------------------
 
+Connaissances
+^^^^^^^^^^^^^
+
 Les messages sur twitter ne font que 140 caractère, difficille dans ce cas de realiser 
 une analyse semantique ou même statistique à l'aide d'un algorithme tel que LDA [1].
 
 Ceci ne résoud pas le problème de l'analyse sémantique des tweets. En effet avoir
 un grand nombre de donnée est une chose pouvoir les corellers en est une autre. 
 Pour nous aider dans se travail nous allons augmenter notre base
-de connaissance issue du web certaines facilement exploitable tel que wikipedia à travers
-`dbpedia <http://dbpedia.org/About>`_ autres données issues de site web spécialisé,
-tel que les forums.
+de connaissance issue du web certaines ressources facilement exploitable tel que 
+wikipedia à travers `dbpedia <http://dbpedia.org/About>`_ autres ressources 
+categoriser par de `dmoz <http://www.dmoz.org/>`_ ou `Yahoo <http://www.yahoo.fr>`_.
 L'idée est de permettre d'enrichir le tweet avec des documents que l'on sait similaires
 à l'aide d'une recherche full-text [5].
 
+Les données que nous allons devoir recuillir sont de natures différentes, elles 
+necessiteront un grand nombre de table et de connexion, d'autre part en tant que
+projet de recherche il est agreable de savoir que l'ajout d'attribut et de nouvelle
+connexion est facile. 
 
-Architecture
-------------
+Bases
+^^^^^
 
-Une analyse du besoin nous permet de distinguer trois modules:
+J'ai établit la matrice de comparaison des bases MySQL, PostgreSQL, Neo4j, OrientDB
+et MongoDB.
 
- - un graphe persistent qui va contenir les données connaissances
- 
- - un module de calcul sur les graphes de haut niveau qui fait des projections d'un 
-   sous-graphe vers des noeud d'un autre sous-graphe.
-   
- - les opérations de haut niveau pour implementer le besoin à savoir:
- 
-    - calculer de flux des tweet entrant pour un utilisateur
-    
-    - calcule de flux par catégorie
-    
-    - calculer de flux personnalisé
 
+OrientDB remplit le plus de conditions à priori car je n'ai pas reussit à determiner
+le niveau ACID de Neo4j.
 
-Implémentation
---------------
++------------------------+---------------------------+----------+----------+-----------------+
+|                        | MySQL, PostgreSQL         | Neo4j    | OrientDB |     MongoDB     |
+|                        |                           |          |          |                 |
++========================+===========================+==========+==========+=================+
+| Tuning et maintenance  |   oui                     |          |          |                 |
+| documenté              |                           |          |          |                 |
+|                        |                           |          |          |                 |
++------------------------+---------------------------+----------+----------+-----------------+
+| Schema-less            |                           |    oui   |   oui    |       oui       |
+|                        |                           |          |          |                 |
+|                        |                           |          |          |                 |
++------------------------+---------------------------+----------+----------+-----------------+
+| Nouvelles connexions   |                           |    oui   |   oui    |                 |
+| facile à créer         |                           |          |          |                 |
++------------------------+---------------------------+----------+----------+-----------------+
+| ACID                   |   oui                     |    X     |   oui    |    au niveau    |
+|                        |                           |          |          |     document    |
++------------------------+---------------------------+----------+----------+-----------------+
+| License                |   GPL                     |   AGPLv3 |  Apache  |   AGPLv3        |
+|                        |                           |          |          |                 |
++------------------------+---------------------------+----------+----------+-----------------+
 
-Les différents modules qui implemente le programme sont décrit dans la figure O.P.
-Le fonctionnement des différents modules sont explicités par la suite.
 
-  .. figure:: _static/rook_recsys_full.png
-    
-    XXX
+Système intelligent
+-------------------
 
-Haut-Niveau
-^^^^^^^^^^^
+Notre besoin est de regrouper par categorie les articles et de donner une note aux
+tweet entrant d'un utilisateur. C'est deux problèmes distincts mais qui peuvent se 
+recouper dans le cardre de la mise en place d'un système apprenant. 
 
-Alimentation
-~~~~~~~~~~~~
+Categorisation
+^^^^^^^^^^^^^^
 
-Alimentation de la base se fait en deux temps une premiere intégration rapide du
-graphe à la base de connaissance est suivit d'une ou plusieurs phase de consolidation
-des connaissances pour faciliter le calcule de proximité et le rendre de plus en plus
-proche de son contexte on crée des arretes pour representer les contributions de 
-l'environnement. 
+Il existe different méthode pour faire de la catégorisation.
 
-  .. figure:: _static/rook_alimentation.png
-    
-    XXX
+On peut utiliser des informations semantiques presentent des sites par regroupement
+thématique. Par exemple un blog qui a un lien depuis bitbucket a de
+forte chance d'être un blog technique. De plus un compte twitter qui est lié depuis un blog
+qui est lié depuis bitbucket a te forte chance d'avoir un contenu technique. De
+cette façon nous pouvons construire un système qui permettent de determiner une
+ou des categories pour chaque site en implementant un algorithme logique ou en 
+utilisant une machine apprenante supervisé.
 
-Module Graph
-~~~~~~~~~~~~
+Une machine apprenante supvervisé est un algorithme apprenant qui prend en entrée
+un document et des catégories. Elle associe les documents aux catégories et 
+permet de generer des descripteurs pour des documents nouveaux. 
 
-Le module Graph offre la persistence ainsi qu'un moteur de parcours du graphe qui
-permet d'abstraire les opérations de haut niveau appliqué sur le graphe par le
-de système apprenant et afin de rendre leurs implémentations plus rapide.
+Une méthode non-supervisé peut être utilisé de deux façons d'une part sur les tweets
+étendu à l'aide de [5] ou alors en prenant comme document l'ensemble des poids sur
+les arretes qui lit un noeud au reste du graphe.
 
+Le default des deux méthodes précédentes et qu'il est difficille de comprendre 
+pourquoi ce resultat a été donnée.
 
-  .. figure:: _static/rook_graph_module.png
-    
-    XXX
+Couplé à la méthode décrite dans [5] et en utilisant [6] il est possible d'implementer 
+un algorithme de type PageRank [7] qui génére des catégories comme réponse. Cette algorithme
+à le benefice de pouvoir être d'expliquer.
 
-Système Apprenant
-~~~~~~~~~~~~~~~~~
+Mur personnalisé
+^^^^^^^^^^^^^^^^
 
-Le système apprenant implemente l'API qui permet de faire les calculs de haut niveau
-sur le graphe spécialisé pour la recommandation d'algorithme, ceci est dépendant
-du type d'algorithme utilisé.
+L'implentation du mur personnalisé peut se faire à l'aide des mêmes methodes que celle
+utilisé précédemment. 
 
+Le point qui a retenu mon attention est celui de l'implementation
+de la machine apprenante qui resoudrai ce problème. Un très grand nombre de données
+peuvent être soumis à l'algorithme rendant son calcul non praticable, c'est la 
+malédiction dimentionnelle. L'optimisation présentit est la génération d'un graphe 
+de descripteurs pour chaque documents déjà present dans la base à l'aide du resultat
+de la catégorisation. Un document pour cette machine apprenante est le vecteur des
+contributions de chaque categories à un tweet. On peut reduire la dimension de l'espace
+de projection en fonction des ressources.
 
-  .. figure:: _static/rook_sa.png
-    
-    REFAIRE LE GRAPHE
+Bilan
+-----
 
-
-NoosphereRecommandationSystem
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Les fonctions de haut-niveau rendu disponible à l'application cliente sont exposé 
-dans la figurer E.T?:
-
-  .. figure:: _static/rook_recsys.png
-    
-    XXX
-
-
-Bas-Niveau
-^^^^^^^^^^
-
-Le langage python sera préféré pour toutes les qualités cités précédements.
-
-Module Graph
-~~~~~~~~~~~~
-
-Il existe plusieurs base de donnée spécialisé dans les graphes, il faut les tester
-et choisir une qui satisfasse le besoin. D'autre part il existe le framework
-`BulbFlow <http://bulbflow.com/>`_ qui permet s'abstraire de la base de donnée 
-utilisé. Bulbflow fourni un langage de haut-niveau pour faire des opérations sur
-les graphes.
-
-Système Apprenant
-~~~~~~~~~~~~~~~~~
-
-Il existent plusieurs bibliothèques traitant le problème des machines apprenantes
-disponible en Python. scikit.learn est la candidate idéale
-car elle implemente une partie de ses algorithmes en Cython. La contrainte principale
-étant que le système apprenant prenne en entrée des graphes.
-
-NoosphereRecommandationSystem
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Ce module correspond à du code glue entre le système apprenant et l'alimentation
-de la base Graph.
+TODO
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.