Etude du script python RAKE - Keyword Extractor

Transcription

Etude du script python RAKE - Keyword Extractor
Etude du script python RAKE Keyword Extractor
Mehdi Terdjimi
23 octobre 2013
1
Introduction
L’algorithme RAKE (Rapid Automatic Keyword Extraction) permet l’extraction de keywords dans un texte, par l’identification de suites de termes
délimitées par des stop-words. Les stop-words constituent une liste de mots
(indiquée en entrée) et sont propres à une langue. Un score est ensuite attribué aux groupes de termes isolés. Un tokenizer est nécessaire afin de diviser
le texte en phrases, puis les phrases en termes ou groupes de termes. Dans
cette étude, deux scripts ont été étudiés utilisant deux différents modes de
tokenization :
– Un premier utilisant des expressions régulières, disponible ici
– Un second utilisant la librairie NTLK, situé ici
2
Fonctionnement
RAKE est initialisé par une liste de stop-words. Il est ensuite lancé sur un
texte. La première étape consiste à tokenizer le texte afin d’en extraire une
liste de phrases. La seconde consiste à générer une liste de candidats pour
chaque phrase :
1. On remplace chaque stop-word détécté dans la phrase par un séparateur.
2. On tokenize la phrase pour obtenir une liste de mots regroupés
3. Pour chaque élément de la liste, on identifie les groupes de mots délimités
par séparateur et on les ajoute à une liste
4. On renvoie la liste (elle correspond aux candidats)
On calcule ensuite les scores pour chaque candidat :
1. Calcul du degré de chaque terme (nombre de caractères non numériques)
1
2. Calcul de la fréquence de chaque terme (nombre d’apparitions dans la
liste des candidats)
3. Calcul du word-score (degré fréquence) (score du terme) pour chaque
terme
4. Calcul du phrase-score pour le candidat (somme de tous les wordscores)
3
Etude
Pour les deux implémentations, le même jeu de données à été utilisé
(itération sur tout document ayant une longueur de caractères supérieur à
150). La complexité est donc la même pour les deux. En revanche, la tokenization est aborde deux méthodes différentes (regexp et NTLK). Une
comparaison des résultats est visible Fig.1 1
RegExp :
– Implémentation plus complexe
– Temps de calcul plus court
– Nombre de candidats moins imporant
NTLK :
– Implémentation plus simple
– Temps de calcul plus élevé
– Nombre de candidats plus imporant
4
Conclusion
Nous pouvons remarquer que pour les deux implémentations, nous avons
une pertinence de keywords équivalente. En revanche NTLK propose un
nombre plus important de candidats (voir les deux fichiers de résultats pour
plus de détails), ce qui permet une meilleur prise en compte du domaine et
donc un calcul plus précis sur les scores. Il sera donc préférable d’opter pour
cette implémentation.
2
Figure 1 – Résultats : RegExp Tokenization à gauche, NTLK à droite
3

Documents pareils