Tokenisation

La tokenisation consiste à découper un texte en token, le plus souvent des mots. Le notebook utilise un extrait d'un article du monde.

Tokenizer

nltk

La librairie la plus connue pour faire du traitement du langage naturel est nltk (ou Natural Language Toolkit).

gensim

La documentation de la librairie nltk est assez longue et ce n'est pas la plus simple d'accès. gensim est une autre option plus récente.

spacy

Un dernier module a vu le jour spacy. On suit l'exemple présenté dans spacy-101. Il faut télécharger un paquet de ressource depuis spacy-models. Note : sous Windows, il faut faudra ruser et installer le module fr_core_news_sm vous même (et bidouiller le fichier setup.py).

On voit que la tokenisation des apostrophes est différente et qu'on a plus d'information sur chaque token.

Supprimer les stopwords

nltk

Le module nltk fournit une liste de stopwords. Il suffit de supprimer tous les mots dans cette liste.

gensim

spacy

Encore plus simple avec spacy où chaque token contient l'information souhaitée.

Autres modules

Il existe une quantité de modules différentes. Lorsque les sources sont connues et très utilisées comme wikipedia.

n-grams

Petit intermède : après un découpage en mots, on ne considère plus l'ordre avec une approche bag-of-words. Si l'information contenu par l'ordre des mots s'avère importante, il faut considérer un découpage en couple de mots (bi-grammes), triplets de mots (3-grammes)...

Versions utilisées pour ce notebook

spacy s'est montré quelque peu fantasques cette année avec quelques erreurs notamment celle-ci : ValueError: cymem.cymem.Pool has the wrong size, try recompiling. Voici les versions utilisées...