J'ai un projet de classification de documents dans lequel j'obtiens le contenu du site, puis j'attribue l'une des nombreuses étiquettes au site Web en fonction du contenu.
J'ai découvert que tf-idf pouvait être très utile pour cela. Cependant, je ne savais pas exactement quand l' utiliser.
En supposant qu'un site Web concerné par un sujet spécifique en fasse mention à plusieurs reprises, c'était mon processus actuel:
- Récupérer le contenu du site, analyser le texte brut
- Normaliser et limiter le contenu
- Tokenize en unigrammes (peut-être aussi des bigrammes)
- Récupérer un décompte de chaque unigramme pour le document donné, filtrer les mots de faible longueur et de faible occurrence
- Former un classificateur tel que NaiveBayes sur l'ensemble résultant
Ma question est la suivante: où tf-idf se situerait-il ici ? Avant de normaliser / endiguer? Après la normalisation mais avant la tokenisation? Après la tokenisation?
Toute idée serait grandement apprécié.
Éditer:
En y regardant de plus près, je pense que j'ai peut-être rencontré un malentendu quant au fonctionnement de la TF-IDF. À l'étape 4 ci-dessus que je décris, devrais-je alimenter l' intégralité de mes données dans TF-IDF à la fois? Si, par exemple, mes données sont les suivantes:
[({tokenized_content_site1}, category_string_site1),
({tokenized_content_site2}, category_string_site2),
...
({tokenized_content_siten}, category_string_siten)}]
Ici, la structure la plus externe est une liste, contenant des tuples, contenant un dictionnaire (ou hashmap) et une chaîne.
Dois-je introduire l' intégralité de ces données dans le calculateur TF-IDF à la fois pour obtenir l'effet souhaité? Plus précisément, j'ai étudié le scikit-learn TfidfVectorizer pour ce faire, mais je ne suis pas certain de son utilisation, car les exemples sont assez rares.
({tokenized content}, category)
. Comme j'ai les sites Web de formation dans une base de données et déjà classés, ce n'est pas un problème. Les étiquettes que le classificateur pourra appliquer ne seront que celles qu'il a vues à partir de l'ensemble d'apprentissage annoté, n'est-ce pas?