2015-09-02 1 views
0

J'essaie d'implémenter un programme de classification de texte dans R qui classe le texte d'entrée (args) en 3 classes différentes. J'ai testé avec succès l'exemple de programme en divisant les données d'entrée en données d'apprentissage et de test.Comment créer une carte de mots pour un texte personnalisé pour la classification de texte dans R?

Je voudrais maintenant construire quelque chose qui me permettrait de classer le texte fait sur commande. Mes données d'entrée a la structure suivante:

Donc, si j'entre un texte personnalisé: « jeux études à temps », je voudrais obtenir une matrice qui ressemble à ce qui suit:

S'il vous plaît dites-moi quelle est la meilleure façon de faire la même chose.

Répondre

0

Cela ressemble beaucoup à l'application d'un "dictionnaire" au texte suivant la segmentation de ce texte. Ce que vous avez comme résultat matriciel dans votre question, cependant, n'utilise pas les catégories dans les données d'entrée. Voici donc deux solutions: une pour produire la matrice que vous voulez et deux pour produire une matrice qui compte le texte d'entrée en fonction du nombre de catégories auxquelles vos données d'entrée mappent le texte.

Il utilise le paquet de quanteda R.

require(quanteda) 
mymap <- dictionary(list(school = c("time", "games", "studies"), 
         college = c("time", "games"), 
         office = c("work"))) 
dfm("games studies time", verbose = FALSE) 
## Document-feature matrix of: 1 document, 3 features. 
## 1 x 3 sparse Matrix of class "dfmSparse" 
##  features 
## docs games studies time 
## text1  1  1 1 
dfm("games studies time", dictionary = mymap, verbose = FALSE) 
## Document-feature matrix of: 1 document, 3 features. 
## 1 x 3 sparse Matrix of class "dfmSparse" 
##  features 
## docs school college office 
## text1  3  2  0