Estoy tratando de hacer algo de raíz en R, pero parece que solo funciona en documentos individuales. Mi objetivo final es una matriz de documento de términos que muestra la frecuencia de cada término en el documento.R derivando una cadena/documento/corpus
He aquí un ejemplo:
require(RWeka)
require(tm)
require(Snowball)
worder1<- c("I am taking","these are the samples",
"He speaks differently","This is distilled","It was placed")
df1 <- data.frame(id=1:5, words=worder1)
> df1
id words
1 1 I am taking
2 2 these are the samples
3 3 He speaks differently
4 4 This is distilled
5 5 It was placed
Este método funciona para la parte derivada pero no la parte de la matriz término documento:
> corp1 <- Corpus(VectorSource(df1$words))
> inspect(corp1)
A corpus with 5 text documents
The metadata consists of 2 tag-value pairs and a data frame
Available tags are:
create_date creator
Available variables in the data frame are:
MetaID
[[1]]
I am taking
[[2]]
these are the samples
[[3]]
He speaks differently
[[4]]
This is distilled
[[5]]
It was placed
> corp1 <- tm_map(corp1, SnowballStemmer)
> inspect(corp1)
A corpus with 5 text documents
The metadata consists of 2 tag-value pairs and a data frame
Available tags are:
create_date creator
Available variables in the data frame are:
MetaID
[[1]]
[1] I am tak
[[2]]
[1] these are the sampl
[[3]]
[1] He speaks differ
[[4]]
[1] This is distil
[[5]]
[1] It was plac
> class(corp1)
[1] "VCorpus" "Corpus" "list"
> tdm1 <- TermDocumentMatrix(corp1)
Error in UseMethod("Content", x) :
no applicable method for 'Content' applied to an object of class "character"
Así que en vez intenté crear la matriz término documento primera pero esta vez las palabras no se derivan:
> corp1 <- Corpus(VectorSource(df1$words))
> tdm1 <- TermDocumentMatrix(corp1, control=list(stemDocument=TRUE))
> as.matrix(tdm1)
Docs
Terms 1 2 3 4 5
are 0 1 0 0 0
differently 0 0 1 0 0
distilled 0 0 0 1 0
placed 0 0 0 0 1
samples 0 1 0 0 0
speaks 0 0 1 0 0
taking 1 0 0 0 0
the 0 1 0 0 0
these 0 1 0 0 0
this 0 0 0 1 0
was 0 0 0 0 1
Aquí las palabras son obviamente no derivado.
¿Alguna sugerencia?
El tallo solo ha funcionado en la última palabra de sus documentos, ¿no? Porque '" habla "' no se ha detenido, mientras que creo que debería. Mi opinión es que la función de derivación en R tiene muchos problemas. Mis colegas y yo nunca hemos podido hacerlo funcionar. Ejecutamos un script de Python en su lugar ... – Pop
@AllenR .: Tienes razón. No me di cuenta de eso. Voy a echarle un vistazo a Python. Gracias. – screechOwl
No sé si has oído hablar del paquete ** nltk ** en Python que hace este tipo de cosas. – Pop