2013-08-01 24 views
9

Próbuję pracować z pakietem tm w R, i mieć plik CSV z opiniami klientów, z których każda linia jest innym wystąpieniem opinii. Chcę zaimportować całą zawartość tej opinii do korpusu, ale chcę, aby każda linia była innym dokumentem w korpusie, aby móc porównać opinie w Matrix DocTerms. W moim zbiorze danych znajduje się ponad 10 000 wierszy.Dokumenty wyszukiwania tekstu R z pliku CSV (jeden wiersz na doc)

Początkowo robiłem co następuje:

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

To tworzy korpus z 1 dokumentu oraz> 10000 wierszy i chcę> 10000 dokumenty z 1 rzędzie każdy.

Wyobrażam sobie, że mogę mieć ponad 10.000 oddzielnych dokumentów CSV lub TXT w folderze i utworzyć z tego korpus ... ale myślę, że jest o wiele prostsza odpowiedź, czytając każdą linię jako oddzielny dokument .

Odpowiedz

17

Oto pełna workflow, aby uzyskać to, co chcesz:

# 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) 

W obiekcie dtm każdy wiersz będzie doc lub linia oryginalnego pliku CSV. Każda kolumna będzie słowem.

0

Można użyć obiektu TermDocumentMatrix() na obiekcie fdbk i uzyskać terminową macierz dokumentów, w której każdy wiersz reprezentuje opinie klientów.