Tf-idf avec gensim

Introduction au traitement du langage naturel en Python

Katharine Jarmul

Founder, kjamistan

Qu'est‑ce que le tf‑idf ?

  • Fréquence des termes – fréquence inverse des documents
  • Sert à repérer les mots les plus importants de chaque document
  • Un corpus peut contenir des mots communs au‑delà des mots vides
  • Il faut alors réduire leur poids
  • Exemple en astronomie : « Sky »
  • Évite que les mots très fréquents deviennent des mots‑clés
  • Maintient un poids élevé pour les mots fréquents propres au document
Introduction au traitement du langage naturel en Python

Formule du tf‑idf

$$w_{i,j} = tf_{i,j} * \log (\frac{N}{df_i})$$

$$w_{i,j} = \textnormal p \textnormal o \textnormal i \textnormal d \space \textnormal t \textnormal f \textnormal - \textnormal i \textnormal d \textnormal f \space \textnormal p \textnormal o \textnormal u \textnormal r \space \textnormal l \textnormal e \space \textnormal s \textnormal y \textnormal m \textnormal è \textnormal m \textnormal e \space i \space \textnormal d \textnormal a \textnormal n \textnormal s \space \textnormal l \textnormal e \space \textnormal d \textnormal o \textnormal c \textnormal u \textnormal m \textnormal e \textnormal n \textnormal t \space j $$

$$tf_{i,j} = \textnormal n \textnormal o \textnormal m \textnormal b \textnormal r \textnormal e \space \textnormal d \textnormal ' \textnormal o \textnormal c \textnormal c \textnormal u \textnormal r \textnormal r \textnormal e \textnormal n \textnormal c \textnormal e \textnormal s \space \textnormal d \textnormal u \space \textnormal s \textnormal y \textnormal m \textnormal è \textnormal m \textnormal e \space i \space \textnormal d \textnormal a \textnormal n \textnormal s \space \textnormal l \textnormal e \space \textnormal d \textnormal o \textnormal c \textnormal u \textnormal m \textnormal e \textnormal n \textnormal t \space j $$

$$df_i = \textnormal n \textnormal o \textnormal m \textnormal b \textnormal r \textnormal e \space \textnormal d \textnormal e \space \textnormal d \textnormal o \textnormal c \textnormal u \textnormal m \textnormal e \textnormal n \textnormal t \textnormal s \space \textnormal q \textnormal u \textnormal i \space \textnormal c \textnormal o \textnormal n \textnormal t \textnormal i \textnormal e \textnormal n \textnormal n \textnormal e \textnormal n \textnormal t \space \textnormal l \textnormal e \space \textnormal s \textnormal y \textnormal m \textnormal è \textnormal m \textnormal e \space i $$

$$N = \textnormal n \textnormal o \textnormal m \textnormal b \textnormal r \textnormal e \space \textnormal t \textnormal o \textnormal t \textnormal a \textnormal l \space \textnormal d \textnormal e \space \textnormal d \textnormal o \textnormal c \textnormal u \textnormal m \textnormal e \textnormal n \textnormal t \textnormal s$$

Introduction au traitement du langage naturel en Python

Tf-idf avec gensim

from gensim.models.tfidfmodel import TfidfModel

tfidf = TfidfModel(corpus)
tfidf[corpus[1]]
[(0, 0.1746298276735174),
 (1, 0.1746298276735174),
 (9, 0.29853166221463673),
 (10, 0.7716931521027908),
...
]
Introduction au traitement du langage naturel en Python

Passons à la pratique !

Introduction au traitement du langage naturel en Python

Preparing Video For Download...