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