PLDAC-Extraction de termes
extractionTerme.py
index

Programme pour l'extraction de termes.
À appeler avec un fichier de configurations en argument (voir informations ci-dessous)

Commande pour lancer le script: python extractionTerme.py fichier_config.cfg

 
Required Librairies
        
spacy (need python 64 bits)
nltk

 
Package Contents
        
config
classeur
document
extracteur
indexeur
parserCorpus
extractionTerme (MAIN)

 
Options
        CORPUSPATH : str
Fixer le chemin d'accès au corpus dont on souhaite extraire les termes.
Le chemin peut être absolu ou relatif par rapport à l'endroit où la commande est executée.
Si c'est un fichier qui contient tout le corpus, les documents dans le corpus doivent être séparés par une ligne contenant uniquement
la chaîne suivante : ##END##
S'il n'y a qu'un document on peut ne pas mettre la chaîne de fin.

        OUTPUTPATH : str
Fixer le nom (chemin d'accès) au fichier de sortie.
Le chemin peut être absolu ou relatif par rapport à l'endroit où la commande est executée.

        STEM : True, False
Si True, permet de réduire les termes à leur racine la plus neutre (sans féminin, pluriel, ...).
Cela permet de regrouper les termes d'une même racine et de les compter ensembles lors du traitement statistique.
ex: chevaux, cheval -> cheva
Lors de la construction du fichier de résultat, les stems sont reconstruits en leur origine la plus fréquente.
ex: cheva: {chevaux: 10, cheval:32} -> cheval
Globalement, il faut utiliser cette option, à moins que le genre et/ou le nombre soient importants
Si False, laisse les mots tels quels.

        METHODEEXTRACTION : NGRAMMES, POSTAG
Si NGRAMMES, on va regarder tous les Ngrammes présents dans le document.
Un Ngramme est extrait seulement s'il est entouré de mots vides (stopwords) ou de ponctuation.
Cela correspond à une façon 'naïve' d'extraire les termes, cette option est adaptée dans les cas où les documents ne sont pas biens construits (les phrases ne sont pas bien structurées en français).

Si POSTAG, on va regarder tous les Ngrammes présents dans le document qui sont des racines de Ngrammes, c'est à dire qui ont du sens syntaxiquement parlant car ils forment des groupes nominaux.
Cette option est à privilégier lorsque les documents sont biens construits (les phrases sont bien structurées en français).
Utilisation de la bibliothèque spacy.

        LONGUEURMIN : int
Fixer la longueur minimale des termes (des Ngrammes) à analyser, en nombre de mots réels.

        LONGUEURMAX : int
Fixer la longueur maximale des termes (des Ngrammes) à analyser, en nombre de mots réels.

        SEUILNBOCCMIN : int
Fixer le seuil minimal des occurences des termes (des Ngrammes) à analyser.
Si = 0, tous les termes sont pris en compte.
Conseil d'utilisation: si il y beaucoup de termes extraits, cela pourrait être utile pour réduire la liste.

        FORMULEAGREGATION : MAX, SUM, MEAN
Correspond à la façon dont les scores des termes par document sont agrégés entre eux pour tout le corpus.
Ce paramètre est utile seulement si le coprus possède plus d'un document.

Si MAX, un terme aura un score élevé s'il a un score élevé dans au moins un document. (on attribue à un terme son score le plus élevé parmi tous les documents).
Si SUM, plus un terme aura un score élevé dans de nombreux documents, plus il aura un score élevé.
Si MEAN, on regarde l'importance du terme dans tous les documents, donc son score est pénalisé s'il y a des documents où il n'apparaît pas.

        METHODESCORING : FREQUENCE, TFIDF_STANDARD, TFIDF_LOG, OKAPI
Cette option attribue un score aux termes.
Tous les scores sont normalisés par document puis regroupés selon l'agrégation choisie (option FORMULEAGREGATION).

Si FREQUENCE, on va utiliser un simple comptage des occurences des termes.

Le score du TFIDF augmente avec la fréquence du terme et diminue si le terme est présent dans beaucoup de documents du corpus de référence.
Si TFIDF_STANDARD, on va utiliser la formule tf*idf.
Si TFIDF_LOG, on va utiliser la formule (1+log(tf))*idf.
    On utilise le log par rapport au standard lorsqu'on veut que la fréquence des termes aie moins d'importance

Si OKAPI, on attribue le score okapi aux termes. le score okapi prend en compte la longueur du document par rapport à la longueur moyenne,
plus le document est grand, plus le score du terme diminue.
Le score Okapi augmente avec la fréquence du terme et diminue si le terme est présent dans beaucoup de documents du corpus de référence.
Ce score a du sens s'il y a plusieurs documents dans le corpus (et non un seul).


        CVALUE : True, False
La C-Value pénalise les termes qui sont inclus dans d'autres termes (ex: si on retrouve un unigramme dans un bigramme, le score de l'unigramme baisse)
Si True, on fait la moyenne harmonique du score C-Value et du score de la METHODESCORING (ci-dessus)
N'a de sens que si METHODESCORING = TFIDF_STANDARD | TFIDF_LOG | OKAPI
Le but de cette option sera de faire remonter les termes non-imbriqués.