StemDocument R интеллектуальный анализ текста

Мои данные представляют собой текстовый файл и выглядят следующим образом:
слова number_doc
обзор 1
клиент 1
магазин 1
маржа 1
цена 2
акции 2
экономика 2

Номера документов отсортированы (от наименьшего к наибольшему). Теперь я хочу для каждого документа все слова, относящиеся к документу. Теперь они стоят в столбце, но мне нужны все слова в textDocument (из пакета tm, потому что это необходимо для некоторых функций в этом пакете). Я сделал это следующим образом:

 data <- read.table("poging.txt", header = TRUE)
 data

 doc <- c()
 #I paste all the words from a document together:
 doc[1] <- paste(data[1:4,1], collapse = ' ')
 doc[2] <- paste(data[1:4,1], collapse = ' ')

 #Make a data.frame of it
 doc_df <- data.frame(docs = doc, row.names = 1:2)

 #Install package
 install.packages("tm")
 library(tm)

 #Make a Dataframesource of it so that each row is seen as a document
 ds <- DataframeSource(doc_df)
 inspect(VCorpus(ds))

 #Now I want to stem for example document number 1
 stemDocument(ds[[1]])

Но если использовать ds[[1]] в качестве аргумента, это не сработает. Он не может найти документ №1. Может ли кто-нибудь мне помочь?

В примерах пакета tm используются данные crude. Я хочу, чтобы мои данные были в том же формате, что и в crude.

Silke


person Anita    schedule 26.09.2014    source источник
comment
Создайте воспроизводимый пример с образцом ввода и желаемым результатом. Если мы сможем скопировать / вставить код в R, чтобы воссоздать проблему, вам будет легче помочь.   -  person MrFlick    schedule 27.09.2014
comment
Я сделал более простой случай с двумя документами, но проблема все та же. Надеюсь, ты сможешь мне помочь!   -  person Anita    schedule 27.09.2014
comment
Но мы по-прежнему не можем запустить код, потому что он требует poging.txt. Чтобы быть полезным, он должен быть содержательным, минимально воспроизводимым примером.   -  person MrFlick    schedule 28.09.2014
comment
Я сделал текстовый файл данных в верхней части моего вопроса. Вы можете скопировать и вставить его.   -  person Anita    schedule 28.09.2014


Ответы (1)


stemDocument() предназначен для использования с TextDocument, а не с DataSource. Вы хотите использовать DataSource для создания корпуса, а затем вы можете извлекать документы оттуда.

ds <- DataframeSource(doc_df)
corpus <- VCorpus(ds)
stemDocument(corpus[[1]])

Обратите внимание, что stemDocument вернет новый документ и не будет постоянно обновлять корпус. Поэтому, если вы хотите что-то сделать с выводом, обязательно сохраните его где-нибудь.

person MrFlick    schedule 28.09.2014