You are on page 1of 16

Universit De Bretagne Du Sud Ecole Nationale Suprieure D'ingnieurs De Bretagne-Sud

Architecture des Systmes de recherche d'information (ENSIBS3-ARI)

Projet :RSS-Intelligence
Rapport Final

Ralis par Adnane AL ECHCHEIKH EL ALOUI

Encadr par Pierre-Franois Marteau

Anne Universitaire 2012/2013


1|Page

Sommaire
1. 2. 3. 4. 5. 6. 7. 8. Introduction ..................................................................................................................................................................................................................... 3 Analyse de Flux RSS : ........................................................................................................................................................................................................ 4 Un crawler/reader de flux RSS .......................................................................................................................................................................................... 5 Stockage des donnes ...................................................................................................................................................................................................... 6 Un module danalyse des flux ........................................................................................................................................................................................... 8 L'indexation des flux RSS .................................................................................................................................................................................................. 9 Module moteur de recherche......................................................................................................................................................................................... 13 Index ............................................................................................................................................................................................................................ 16

2|Page

1. Introduction
Lobjectif du projet est de raliser un systme de veille sur internet qui exploite des flux RSS et intgrer les tapes suivantes :
Un crawler/reader de flux RSS qui exploite et collecte les flux RSS distance sur Internet. Un module danalyse des flux qui contient des fonctions de : o Stemmer (la racinisation des mots) . o L'anti-dictionnaire : utilis pour supprimer les mots vides . L'indexation des flux RSS rcupres consiste extraire les mots considrs comme significatifs du corpus explorer. Les mots extraits sont enregistrs dans une base de donnes sous format dun dictionnaire inverse ce qui permet de retrouver rapidement les mots . La recherche en utilisant une technique qui permet de pondrer une mesure de cosinus en utilisant un indice de notorit des flux. Schma global

3|Page

2. Analyse de Flux RSS :


Un flux RSS est un flux dinformation qui sappuie sur un format de donnes bas sur XML qui contiendra les mtadonnes <channel> qui contient une liste
des items, et chaque item se compose de plusieurs lments <title> <description> <link>...

Traduction UML

4|Page

3. Un crawler/reader de flux RSS


Dans cette tape on va sappuyer sur la librairie ROME 1.0 * (ROME est un ensemble Utilitaires de flux RSS et Atom pour Java qui est open source) pour lire le flux RSS .

On utilisant Interface SyndEntry on peut traiter les entres de SyndFeedImpl RSS , par exemple pour rcuprer la description :

la librairie ROME 1.0 https://rometools.jira.com/wiki/display/ROME/ROME+1.0+Release

5|Page

4. Stockage des donnes


Puisque lajout de nouvelles Flux RSS est une opration frquente, une structure type fichier de log peut tre avantageuse , mais pour viter le parcoure de fichier log chaque mise jour ,on va passer par un hashtable (pointage rapide et la gestion des doublons ).

Cette tape consiste stocker localement les dpches RSS dans des fichiers LOG et lindexation incrmentale des lments RSS ,et chaque stockage on vrifie que le dpche nexiste pas dans fichier log via lutilisation dun hashtable . le but cest dacclrer la mise jour. Ce fichier log fichier_log.log contient tous les informations (<title> <description> <link>...) pour chaque lment de flux RSS et aussi un identificateur unique pour pointer rapidement sur les dpches demand et aussi pour viter les redoublants. identificateur unique est calculer par une fonction de hachage MD5 .,qui gnre une cl en se basant sur les informations (<title> <description> <link>...) 6|Page

Traduction UML

La fonction ecrireFichier() de la class Writer_log permet de stocker localement les dpches RSS dans des fichiers LOG Format de fichier log :

7|Page

5. Un module danalyse des flux


Un module danalyse des flux qui contient des fonctions de : Stemmer (la racinisation des mots) . Il cherche rassembler les diffrentes variantes flexionnelle et drivationnelle dun mot autour dun stemmer.

La fonction Stemmerx() pend en paramtre une liste de mots et retourne une liste de mots stemm L'anti-dictionnaire : utilis pour supprimer les mots vides . La fonction nostopwords_sentence() enlve tous les mots vides

la liste des stopwords est stocke dans un hashtable ,ce qui permet la vrification rapide des mots.

8|Page

6. L'indexation des flux RSS


Pour le modle dindexation on a choisi une reprsentation vectorielle listes inverse car il permet une recherche rapide sur les termes mais aussi pour chaque terme, on obtient une liste denregistrement contenant un PID, frquence des termes et les positions des termes dans le document. La premire tape consiste stocker la liste des mots dans un dictionnaire et pour chaque item une adresse unique qui point vers la liste inverse, cette liste est prsente sous format dune table de kyotocabinet de deux champs le did et une liste des items srialis

9|Page

Le dictionnaire cest un hashtable qui contient tous les mots avec un identifiant et sa frquence et son adresse dans la liste inverse, ces trois dernier sont prsenter sous format dun objet Info_mots

A la fin de chaque mise jour le dictionnaire est srialis dans le fichier dictionnaire_mots.ser avec la methode

Ce qui permet de garde le contenu du dictionnaire la fin de lexcution dindexation. Traduction UML dictionnaire liste inverse

10 | P a g e

La liste inverse va tre stocke sous la base de donnes KyotoCabinet , KyotoCabinet est rapide et capable de grer un haut niveau de concurrence , La table de KyotoCabinet caskets.kch contient deux lignes de type string donc il est ncessaire de srialiser les listes des items Cette srialisation est basee sur un mcanisme binaire la librairie Base64Coder * Donc pour chaque did (PID) il y a une liste de items et chaque items contient Un id_item ,id_flux, nombre_occurence ,Arraylist_position et ladresse dans le fichier log . Fonction pour stocker dans la base KyotoCabinet

Fonction pour lire dans la base KyotoCabinet

* Base64Coder - un open-source Base64 codeur / dcodeur: http://www.source-code.biz/base64coder/java/ 11 | P a g e

Fonction pour convertir un objet a un string en utilisant ByteArray

12 | P a g e

7. Module moteur de recherche


La recherche et la classification est ralis via le modle vectoriel, cest une mthode algbrique de reprsentation d'un document. La similarit cosinus (ou mesure cosinus) permet de calculer la similarit entre deux vecteurs dimensions en dterminant l'angle entre eux. Donc cette tape du projet consiste limplmentation de ce modle vectoriel en calculant la similarit.

i 1 Pour valuer l'importance d'un terme contenu dans une dpche on calcule Le TF-IDF

d d sim(d j , d k ) j k d j dk

w w w
n i 1 i, j n 2 i, j

i ,k

wi2,k i 1

f(i,j) = freq(i,j) / max(freq(l,j)) cest le nombre doccurance de i dans j diviser sur le max nombre doccurance dans j i : un terme , j :un dpche. idf(i) = log (N/ni) cest lelog du nombre total des dpches diviser sur le nombre dpches contient le terme i

wij = f(i,j) * log(N/ni)

13 | P a g e

Pour les termes de la requte on va utiliser la suggestion du cours (page 244)

wiq = (0.5 + [0.5 * freq(i,q) / max(freq(l,q)]) * log(N/ni)

Pour calculer la similarit des dpches il est important de fusionner les listes inverses des termes dune requte

Ma liste fusionne est sous le format suivant

14 | P a g e

Calcule de la similarit en parcourant ma liste fusionne

sim(d j , d k )

i 1

wi , j wi ,k

w2 i 1 i , j

i 1

wi2,k

15 | P a g e

8. Index Traduction UML

16 | P a g e

You might also like