Gensim - Documents & Corpus

Ici, nous allons découvrir les concepts de base de Gensim, avec un accent principal sur les documents et le corpus.

Concepts de base de Gensim

Voici les principaux concepts et termes nécessaires pour comprendre et utiliser Gensim -

  • Document - ZIl fait référence à un texte.

  • Corpus - Il fait référence à une collection de documents.

  • Vector - La représentation mathématique d'un document est appelée vecteur.

  • Model - Il fait référence à un algorithme utilisé pour transformer des vecteurs d'une représentation à une autre.

Qu'est-ce qu'un document?

Comme discuté, il fait référence à un texte. Si nous allons dans les détails, il s'agit d'un objet du type séquence de texte qui est connu sous le nom de‘str’ dans Python 3. Par exemple, dans Gensim, un document peut être n'importe quoi tel que -

  • Tweet court de 140 caractères
  • Paragraphe unique, c.-à-d. Résumé d'article ou de mémoire
  • Article de presse
  • Book
  • Novel
  • Theses

Séquence de texte

Un type de séquence de texte est communément appelé ‘str’ en Python 3. Comme on sait qu'en Python, les données textuelles sont gérées avec des chaînes ou plus spécifiquement ‘str’objets. Les chaînes sont essentiellement des séquences immuables de points de code Unicode et peuvent être écrites de la manière suivante -

  • Single quotes - Par exemple, ‘Hi! How are you?’. Cela nous permet également d'incorporer des guillemets doubles. Par exemple,‘Hi! “How” are you?’

  • Double quotes - Par exemple, "Hi! How are you?". Cela nous permet également d'intégrer des guillemets simples. Par exemple,"Hi! 'How' are you?"

  • Triple quotes - Il peut avoir trois guillemets simples comme, '''Hi! How are you?'''. ou trois guillemets comme,"""Hi! 'How' are you?"""

Tous les espaces seront inclus dans la chaîne littérale.

Exemple

Voici un exemple de document dans Gensim -

Document = “Tutorialspoint.com is the biggest online tutorials library and it’s all free also”

Qu'est-ce que Corpus?

Un corpus peut être défini comme l'ensemble vaste et structuré de textes lisibles par machine produits dans un cadre de communication naturel. Dans Gensim, une collection d'objets document est appelée corpus. Le pluriel de corpus estcorpora.

Rôle du Corpus dans Gensim

Un corpus dans Gensim remplit les deux rôles suivants -

Sert d'entrée pour la formation d'un modèle

Le tout premier et important rôle qu'un corpus joue dans Gensim est celui de la formation d'un modèle. Afin d'initialiser les paramètres internes du modèle, pendant l'entraînement, le modèle recherche des thèmes et des sujets communs dans le corpus d'entraînement. Comme discuté ci-dessus, Gensim se concentre sur les modèles non supervisés, par conséquent, il ne nécessite aucune intervention humaine.

Sert d'extraction de sujets

Une fois le modèle entraîné, il peut être utilisé pour extraire des sujets des nouveaux documents. Ici, les nouveaux documents sont ceux qui ne sont pas utilisés dans la phase de formation.

Exemple

Le corpus peut inclure tous les tweets d'une personne en particulier, la liste de tous les articles d'un journal ou tous les documents de recherche sur un sujet particulier, etc.

Collecte de Corpus

Voici un exemple de petit corpus qui contient 5 documents. Ici, chaque document est une chaîne composée d'une seule phrase.

t_corpus = [
   "A survey of user opinion of computer system response time",
   "Relation of user perceived response time to error measurement",
   "The generation of random binary unordered trees",
   "The intersection graph of paths in trees",
   "Graph minors IV Widths of trees and well quasi ordering",
]

Prétraitement du corpus de collecte

Une fois que nous avons collecté le corpus, quelques étapes de prétraitement doivent être prises pour garder le corpus simple. Nous pouvons simplement supprimer certains mots anglais couramment utilisés comme «the». Nous pouvons également supprimer des mots qui n'apparaissent qu'une seule fois dans le corpus.

Par exemple, le script Python suivant est utilisé pour mettre en minuscules chaque document, le diviser par un espace blanc et filtrer les mots vides -

Exemple

import pprint
t_corpus = [
   "A survey of user opinion of computer system response time", 
   "Relation of user perceived response time to error measurement", 
   "The generation of random binary unordered trees", 
   "The intersection graph of paths in trees", 
   "Graph minors IV Widths of trees and well quasi ordering",
]
stoplist = set('for a of the and to in'.split(' '))
processed_corpus = [[word for word in document.lower().split() if word not in stoplist]
   for document in t_corpus]
	
pprint.pprint(processed_corpus)
]

Production

[['survey', 'user', 'opinion', 'computer', 'system', 'response', 'time'],
['relation', 'user', 'perceived', 'response', 'time', 'error', 'measurement'],
['generation', 'random', 'binary', 'unordered', 'trees'],
['intersection', 'graph', 'paths', 'trees'],
['graph', 'minors', 'iv', 'widths', 'trees', 'well', 'quasi', 'ordering']]

Prétraitement efficace

Gensim fournit également une fonction pour un prétraitement plus efficace du corpus. Dans ce type de prétraitement, nous pouvons convertir un document en une liste de jetons minuscules. Nous pouvons également ignorer les jetons qui sont trop courts ou trop longs. Une telle fonction estgensim.utils.simple_preprocess(doc, deacc=False, min_len=2, max_len=15).

gensim.utils.simple_preprocess() fucntion

Gensim fournit cette fonction pour convertir un document en une liste de jetons minuscules et aussi pour ignorer les jetons trop courts ou trop longs. Il a les paramètres suivants -

doc (str)

Il fait référence au document d'entrée sur lequel le prétraitement doit être appliqué.

deacc (booléen, facultatif)

Ce paramètre est utilisé pour supprimer les marques d'accentuation des jetons. Il utilisedeaccent() pour faire ça.

min_len (int, facultatif)

À l'aide de ce paramètre, nous pouvons définir la longueur minimale d'un jeton. Les jetons plus courts que la longueur définie seront supprimés.

max_len (int, facultatif)

Avec l'aide de ce paramètre, nous pouvons définir la longueur maximale d'un jeton. Les jetons plus longs que la longueur définie seront supprimés.

La sortie de cette fonction serait les jetons extraits du document d'entrée.