2017-07-11 6 views
1

Je suis nouveau à doc2vec et je souhaite classer un ensemble de textes en l'utilisant.Différence entre TaggedDocument et TaggedLineDocument dans gensim? et Comment travailler avec des fichiers dans un répertoire?

Je suis confus au sujet de TaggedDocument et TaggedLineDocument.

1) Quelle est la différence entre deux? Est-ce que TaggedLineDocument est une collection de TaggedDocuments?

2) Si j'ai un répertoire contenant tous les fichiers, Comment générer des vecteurs de caractéristiques pour eux? Devrais-je créer un nouveau fichier où chaque ligne contient du texte du fichier du répertoire?

+0

mieux poser deux questions distinctes et les lier si nécessaire. "Comment travailler avec des fichiers dans un répertoire?" ne dit pas ce que vous voulez accomplir. – vfclists

Répondre

0

TaggedDocument est une classe illustrative pour représenter des objets que Doc2Vec peut prendre comme exemples de texte. Vous n'avez pas besoin de l'utiliser - vous devez simplement fournir des objets qui ont une propriété words qui est une liste de jetons de chaîne, et une propriété tags qui est une liste de balises à associer au document. (C'est-à-dire, vous pouvez fournir vos exemples de texte sous la forme TaggedDocument.)

TaggedLineDocument est une classe utilitaire pour prendre un fichier qui a un document par ligne, dont le jeton Les mots sont déjà délimités par des espaces et transformés en une collection itérable de TaggedDocument s, où chaque document a pour seule étiquette son numéro de ligne entier. En tant que tel, c'est un exemple minimal de streaming de textes à Doc2Vec, pour le cas courant d'un seul fichier texte doc-par-ligne en entrée, et pas besoin de tags/ID personnalisés par-doc.

Si vos données sont dans d'autres formats, vous ne pouvez pas utiliser directement TaggedLineDocument, mais cela peut être un bon point de départ. Si vous êtes OK avec des balises simples numérotées de 0 au nombre de documents, vous pouvez transformer votre format en le fichier unique TaggedLineDocument attend. Alternativement, et surtout si vous avez besoin d'utiliser des balises personnalisées, vous écrivez votre propre classe qui transforme votre source de données - qu'il s'agisse d'un ensemble de fichiers ou d'une ressource réseau ou d'une base de données - en un objet itératif qui en émet un TaggedDocument -comme objet pour chaque exemple.