Tengo un corpus con más de 5000 archivos de texto. Me gustaría obtener individuales recuentos de palabras para cada archivo después de la ejecución de pre-procesamiento de cada uno (de inflexión a la baja, la eliminación de stopwords, etc). Yo no he tenido suerte con la cantidad de palabras para el individuo archivos de texto. Cualquier ayuda se agradece.

library(tm)
revs<-Corpus(DirSource("data/")) 
revs<-tm_map(revs,tolower) 
revs<-tm_map(revs,removeWords, stopwords("english")) 
revs<-tm_map(revs,removePunctuation) 
revs<-tm_map(revs,removeNumbers) 
revs<-tm_map(revs,stripWhitespace) 
dtm<-DocumentTermMatrix(revs) 
Por favor, añada reproducible conjunto de datos. Esto se espera que cuando haces una pregunta.
la votación para cerrar sin un mínimo ejemplo de trabajo

OriginalEl autor torentino | 2014-10-22

4 Comentarios

  1. 10

    Como Tyler notas, tu pregunta está incompleta sin un reproducible ejemplo. Aquí es cómo hacer que un reproducible ejemplo para este tipo de pregunta – a utilizar los datos que viene incorporada en el paquete:

    library("tm") # version 0.6, you seem to be using an older version
    data(crude)
    revs <- tm_map(crude, content_transformer(tolower)) 
    revs <- tm_map(revs, removeWords, stopwords("english")) 
    revs <- tm_map(revs, removePunctuation) 
    revs <- tm_map(revs, removeNumbers) 
    revs <- tm_map(revs, stripWhitespace) 
    dtm <- DocumentTermMatrix(revs)

    Y aquí es cómo conseguir un número de palabras por documento, cada fila de la dtm es un documento, por lo que simplemente la suma de las columnas de una fila y usted tiene el número de palabras del documento:

    # Word count per document
    rowSums(as.matrix(dtm))

    OriginalEl autor Ben

  2. 4

    También puede hacer esto en el quanteda paquete que he desarrollado con Pablo Nulty. Es fácil crear su propio corpus mediante el quanteda herramientas para este propósito, pero también las importaciones tm VCorpus objetos directamente (como se muestra a continuación).

    Usted puede obtener el token de cuentas por documento mediante el summary() método para el corpus de tipo de objeto, o mediante la creación de un documento matriz de características de uso de dfm() y, a continuación, utilizando rowSums() en el documento resultante-característica de la matriz. dfm() por defecto se aplica los pasos de limpieza que usted necesita para aplicar por separado, utilice la tm paquete.

    data(crude, package="tm")
    mycorpus <- corpus(crude)
    summary(mycorpus)
    ## Corpus consisting of 20 documents.
    ## 
    ## Text Types Tokens Sentences
    ## reut-00001.xml    56     90         8
    ## reut-00002.xml   224    439        21
    ## reut-00004.xml    39     51         4
    ## reut-00005.xml    49     66         6
    ## reut-00006.xml    59     88         3
    ## reut-00007.xml   229    443        25
    ## reut-00008.xml   232    420        23
    ## reut-00009.xml    96    134         9
    ## reut-00010.xml   165    297        22
    ## reut-00011.xml   179    336        20
    ## reut-00012.xml   179    360        23
    ## reut-00013.xml    67     92         3
    ## reut-00014.xml    68    103         7
    ## reut-00015.xml    71     97         4
    ## reut-00016.xml    72    109         4
    ## reut-00018.xml    90    144         9
    ## reut-00019.xml   117    194        13
    ## reut-00021.xml    47     77        12
    ## reut-00022.xml   142    281        12
    ## reut-00023.xml    30     43         8
    ## 
    ## Source:  Converted from tm VCorpus 'crude'.
    ## Created: Sun May 31 18:24:07 2015.
    ## Notes:   .
    mydfm <- dfm(mycorpus)
    ## Creating a dfm from a corpus ...
    ## ... indexing 20 documents
    ## ... tokenizing texts, found 3,979 total tokens
    ## ... cleaning the tokens, 115 removed entirely
    ## ... summing tokens by document
    ## ... indexing 1,048 feature types
    ## ... building sparse matrix
    ## ... created a 20 x 1048 sparse dfm
    ## ... complete. Elapsed time: 0.039 seconds.
    rowSums(mydfm)
    ## reut-00001.xml reut-00002.xml reut-00004.xml reut-00005.xml reut-00006.xml reut-00007.xml 
    ##             90            439             51             66             88            443 
    ## reut-00008.xml reut-00009.xml reut-00010.xml reut-00011.xml reut-00012.xml reut-00013.xml 
    ##            420            134            297            336            360             92 
    ## reut-00014.xml reut-00015.xml reut-00016.xml reut-00018.xml reut-00019.xml reut-00021.xml 
    ##            103             97            109            144            194             77 
    ## reut-00022.xml reut-00023.xml 
    ##            281             43 

    Estoy feliz de ayudar con cualquier quantedapreguntas relacionadas con.

    OriginalEl autor Ken Benoit

  3. 0

    Su pregunta no especifica que sólo querían R-base de las soluciones, así que aquí es realmente una solución simple para contar tus palabras en archivos de texto: uso de la Gnu utilidad wc en una Terminal o línea de comandos, con -w para especificar palabras, por ejemplo,

    KB-iMac:~ kbenoit$ wc -w *.txt
           3 mytempfile.txt
           3 mytempfileAscii.txt
          14 tweet12.txt
          17 tweet12b.txt
          37 total

    Los números que se muestran son el recuento de palabras para este conjunto de ilustrativos archivos de texto.

    wc se incluye ya en OS X y Linux, y puede ser instalado para Windows desde la Rtools conjunto.

    OriginalEl autor Ken Benoit

  4. 0

    Usted puede tratar de hacer esto:

    for (m in 1:length(revs) {
    sum(nchar(as.character(revs[[m]])))
    }

    OriginalEl autor Rafa

Dejar respuesta

Please enter your comment!
Please enter your name here