2016-04-14 5 views
0

Я пытаюсь реализовать quanteda на моем корпусе в R, но я получаю:Реализация N-граммы в моем корпусе, Quanteda Ошибка

Error in data.frame(texts = x, row.names = names(x), check.rows = TRUE, : 
    duplicate row.names: character(0) 

У меня нет большого опыта работы с этим. Вот загрузки набора данных: https://www.dropbox.com/s/ho5tm8lyv06jgxi/TwitterSelfDriveShrink.csv?dl=0

Вот код:

tweets = read.csv("TwitterSelfDriveShrink.csv", stringsAsFactors=FALSE) 
corpus = Corpus(VectorSource(tweets$Tweet)) 
corpus = tm_map(corpus, tolower) 
corpus = tm_map(corpus, PlainTextDocument) 
corpus <- tm_map(corpus, removePunctuation) 
corpus = tm_map(corpus, removeWords, c(stopwords("english"))) 
corpus = tm_map(corpus, stemDocument) 

quanteda.corpus <- corpus(corpus) 
+0

Если вы предоставите воспроизводимый пример, вы мгновенно увеличите количество возможных ответчиков. Кроме того, как только он получит ответ, это принесет пользу только вам. Обобщая проблему, вы помогаете будущему вы и другие по очереди. –

+0

Обновлено с помощью ссылки для скачивания, надеюсь, это может помочь. – gamelanguage

+1

@gamelanguage, получил ту же ошибку, используя tm как в вашем подходе, но вам не нужны tm, просто кванда и строкиAsFactors = FALSE. – Chris

ответ

1

Обработка, что вы делаете с тм готовит объект для тм и quanteda не знает, что делать с это ... quanteda делает все эти шаги сами, help («dfm»), как видно из опций.

Если попробовать следующий вы можете двигаться вперед:

DFM (твиты $ Tweet, многословный = TRUE, TOLOWER = TRUE, removeNumbers = TRUE, removePunct = TRUE, removeTwitter = TRUE, язык = «английский », ignoredFeatures = игнорируемые слова ("английский"), стволовые = TRUE)

Создание DFM из символов вектора ... ... lowercasing ... tokenizing ... индексирование документы: 6,943 документов ... функции индексирования: 15,164 вида функций ... снято 161 функции, из 174 функций (glob) функции ... функции стриминга (английский), обрезанные 2175 варианты возможностей ... создано 6943 x 12828 редкий dfm ... полный. Истекшее время: 0.756 секунд. НТН

1

Нет необходимости начинать с тм пакета, или даже использовать read.csv() вообще - это то, что quanteda компаньон пакет READTEXT для.

Так читать в данных, вы можете отправить объект, созданный readtext::readtext() прямо в конструктор мозолистого:

myCorpus <- corpus(readtext("~/Downloads/TwitterSelfDriveShrink.csv", text_field = "Tweet")) 
summary(myCorpus, 5) 
## Corpus consisting of 6943 documents, showing 5 documents. 
## 
## Text Types Tokens Sentences Sentiment Sentiment_Confidence 
## text1 19  21   1   2    0.7579 
## text2 18  20   2   2    0.8775 
## text3 23  24   1  -1    0.6805 
## text5 17  19   2   0    1.0000 
## text4 18  19   1  -1    0.8820 
## 
## Source: /Users/kbenoit/Dropbox/GitHub/quanteda/* on x86_64 by kbenoit 
## Created: Thu Apr 14 09:22:11 2016 
## Notes: 

Оттуда, вы можете выполнять все предварительной обработки стеблей непосредственно в dfm() вызова , включая выбор nграмм:

# just unigrams 
dfm1 <- dfm(myCorpus, stem = TRUE, remove = stopwords("english")) 
## Creating a dfm from a corpus ... 
## ... lowercasing 
## ... tokenizing 
## ... indexing documents: 6,943 documents 
## ... indexing features: 15,577 feature types 
## ... removed 161 features, from 174 supplied (glob) feature types 
## ... stemming features (English), trimmed 2174 feature variants 
## ... created a 6943 x 13242 sparse dfm 
## ... complete. 
## Elapsed time: 0.662 seconds. 

# just bigrams 
dfm2 <- dfm(myCorpus, stem = TRUE, remove = stopwords("english"), ngrams = 2) 
## Creating a dfm from a corpus ... 
## ... lowercasing 
## ... tokenizing 
## ... indexing documents: 6,943 documents 
## ... indexing features: 52,433 feature types 
## ... removed 24,002 features, from 174 supplied (glob) feature types 
## ... stemming features (English), trimmed 572 feature variants 
## ... created a 6943 x 27859 sparse dfm 
## ... complete. 
## Elapsed time: 1.419 seconds.