2013-08-01 19 views
9

Sto provando a lavorare con il pacchetto tm in R, e ho un file CSV di feedback dei clienti con ogni riga che è una diversa istanza di feedback. Voglio importare tutto il contenuto di questo feedback in un corpus ma voglio che ogni riga sia un documento diverso all'interno del corpus, in modo da poter confrontare il feedback in una matrice DocTerms. Ci sono oltre 10.000 righe nel mio set di dati.R documenti di estrazione testo dal file CSV (una riga per documento)

Originariamente ho fatto la seguente:

fdbk_corpus <-Corpus(VectorSource(fdbk), readerControl = list(language="eng"), sep="\t") 

Questo crea un corpus con 1 documenti e> 10.000 righe, e voglio> 10.000 documenti con 1 riga ciascuno.

Immagino di poter avere solo 10.000 documenti CSV o TXT separati all'interno di una cartella e creare un corpus da quello ... ma penso che ci sia una risposta molto più semplice di quella, leggendo ogni riga come documento separato .

risposta

17

Ecco un flusso di lavoro completo per ottenere ciò che si vuole:

# change this file location to suit your machine 
file_loc <- "C:\\Documents and Settings\\Administrator\\Desktop\\Book1.csv" 
# change TRUE to FALSE if you have no column headings in the CSV 
x <- read.csv(file_loc, header = TRUE) 
require(tm) 
corp <- Corpus(DataframeSource(x)) 
dtm <- DocumentTermMatrix(corp) 

Nell'oggetto dtm ogni riga sarà un documento, o di una riga del file CSV originale. Ogni colonna sarà una parola.

0

È possibile utilizzare TermDocumentMatrix() sull'oggetto fdbk e ottenere una matrice di documento di termine in cui ogni riga rappresenta un feedback del cliente.