web-dev-qa-db-fra.com

R, tm-erreur de transformation supprime les documents

Je veux créer un réseau basé sur le poids des mots clés à partir du texte. Ensuite, j'ai eu une erreur lors de l'exécution des codes liés à tm_map:

library (tm)
library(NLP)
lirary (openNLP)

text = c('.......')
corp <- Corpus(VectorSource(text))
corp <- tm_map(corp, stripWhitespace)

Warning message:
In tm_map.SimpleCorpus(corp, stripWhitespace) :
transformation drops documents

corp <- tm_map(corp, tolower)

Warning message:
In tm_map.SimpleCorpus(corp, tolower) : transformation drops documents

Les codes fonctionnaient il y a 2 mois, maintenant j'essaye de nouvelles données et ça ne marche plus. N'importe qui s'il vous plaît me montre où je me trompais. Je vous remercie. J'ai même essayé avec la commande ci-dessous, mais cela ne fonctionne pas non plus.

corp <- tm_map(corp, content_transformer(stripWhitespace))
7
Julie

Le code devrait toujours fonctionner. Vous obtenez un avertissement, pas une erreur. Cet avertissement n'apparaît que lorsque vous avez un corpus basé sur une VectorSource en combinaison lorsque vous utilisez Corpus au lieu de VCorpus.

La raison en est qu'il y a une vérification dans le code sous-jacent pour voir si le nombre de noms du contenu du corpus correspond à la longueur du contenu du corpus. Avec la lecture du texte en tant que vecteur, il n'y a pas de nom de document et cet avertissement apparaît. Et ce n'est qu'un avertissement, aucun document n'a été déposé.

Voir la différence entre les 2 exemples

library(tm)

text <- c("this is my text with some other text and some more")

# warning based on Corpus and Vectorsource
text_corpus <- Corpus(VectorSource(text))

# warning appears running following line
tm_map(text_corpus, content_transformer(tolower))
<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 1
Warning message:
In tm_map.SimpleCorpus(text_corpus, content_transformer(tolower)) :
  transformation drops documents

# Using VCorpus
text_corpus <- VCorpus(VectorSource(text))

# warning doesn't appear
tm_map(text_corpus, content_transformer(tolower))
<<VCorpus>>
Metadata:  corpus specific: 0, document level (indexed): 0
Content:  documents: 1
tm_map(text_corpus, content_transformer(tolower))
9
phiver