5

J'ai des doutes quant au calcul de la fréquence de document inverse (IDF) dans la catégorisation de documents. J'ai plus d'une catégorie avec plusieurs documents pour la formation. Je calculais IDF pour chaque terme dans un document en utilisant la formule suivante:Calcul de la fréquence de document inverse (IDF) pour la catégorisation de documents

IDF(t,D)=log(Total Number documents/Number of Document matching term); 

Mes questions sont les suivantes:

  1. Qu'est-ce que "Nombre total de documents numériques à Corpus" signifie? Si le document compte à partir d'une catégorie actuelle ou de toutes les catégories disponibles?
  2. Que signifie "Nombre de termes de correspondance de document"? Le terme "document de correspondance" peut-il être pris en compte dans une catégorie actuelle ou dans toutes les catégories disponibles?

Répondre

9

Total Number documents in Corpus est simplement la quantité de documents que vous avez dans votre corpus. Donc, si vous avez 20 documents, cette valeur est 20.

Number of Document matching term est le nombre de documents dans lequel le terme t se produit. Donc, si vous avez 20 documents au total et le terme t dans 15 se produit des documents alors la valeur pour Number of Documents matching term est 15.

La valeur de cet exemple serait donc IDF(t,D)=log(20/15) = 0.1249

Maintenant, si je ne me trompe pas, vous avez plusieurs catégories par document et vous voulez pouvoir classer de nouveaux documents avec une ou plusieurs de ces catégories. Une méthode pour ce faire serait de créer un document pour chaque catégorie. Chaque document de catégorie doit contenir tous les textes qui sont étiquetés avec cette catégorie. Vous pouvez ensuite exécuter tf*idf sur ces documents.

Une manière simple de catégoriser un nouveau document pourrait alors être obtenue en additionnant les valeurs de terme de la requête en utilisant les différentes valeurs de termes calculées pour chaque catégorie. La catégorie dont les valeurs de termes, utilisées pour calculer le produit, aboutissent au résultat le plus élevé, sera alors classée au 1er rang.

Une autre possibilité consiste à créer un vecteur pour la requête en utilisant le idf de chaque terme dans la requête. Tous les termes qui n'apparaissent pas dans la requête reçoivent la valeur 0. Le vecteur de requête peut ensuite être comparé pour la similarité à chaque vecteur de catégorie en utilisant par exemple cosine similarity.

Smoothing est également une technique utile pour traiter les mots dans une requête qui ne se produisent pas dans votre corpus.

Je suggère de lire sections 6.2 and 6.3 de "Introduction to Information Retrieval" par Christopher D. Manning, Prabhakar Raghavan et Hinrich Schütze.

+0

Merci ... J'ai eu une réponse. Mais pouvez-vous s'il vous plaît expliquer catégoriser le nouveau document peu élaboré? C'est comment obtenir la catégorie correspondante pour le nouveau document? Alors comment former le vecteur de fréquence pour que le nouveau document fasse l'appariement? .. –

+0

J'ai ajouté l'information à ma réponse. – Sicco

+0

Merci de votre aide .. –

-1

J'ai écrit un petit message décrivant la fréquence de document de fréquence inverse terme ici: http://bigdata.devcodenote.com/2015/04/tf-idf-term-frequency-inverse-document.html

Voici un extrait du message:

TF-IDF est la mesure la plus fondamentale largement utilisée dans la classification des documents . Essayons de définir ces termes:

La fréquence de terme est fondamentalement significative de la fréquence d'apparition d'un certain mot dans un document par rapport aux autres mots du document.D'autre part, la fréquence inverse du document est significative de l'occurrence du mot dans tous les documents pour une collection donnée (des documents que nous voulons classer dans différentes catégories).

Questions connexes