findAssocs в одном документе

У меня только один документ (подборка опросов). Я хочу связать слова в одном документе с findAssocs. Пока что все примеры, которые я видел, представляют собой комбинацию нескольких документов.

inspect(myDtm)
A term-document matrix (864 terms, 1 documents)

Non-/sparse entries: 864/0 (what is this for?)
Sparsity           : 0% (what is this for? what does it mean if its 0%)
Maximal term length: 20 
Weighting          : term frequency (tf)

мои данные выглядят так

unwanted               1
upgrade                3
valid                  1

это мой код, и я в конечном итоге с результатами = числовой (0)

findAssocs(myDtm, "salary", 0.5)
numeric(0)

пожалуйста помоги.

3 ответа

Разреженность измеряет процент элементов (ср. Ячеек) в матрице, равных нулю. Когда редкость высока, у вас есть много терминов, которые встречаются только в одном или нескольких документах. У вас есть только один документ в вашем примере, поэтому все термины должны встречаться в этом документе. Вообще говоря, более низкая степень разреженности более полезна для исследования сходства документов (если это то, что вы делаете... это не ясно из вашего вопроса).

Короткий ответ: ваш вопрос уже был задан и получен ответ: вам нужно иметь более одного документа в вашем DTM, чтобы рассчитать ассоциации терминов с использованием findAssocs,

Вы должны будете включить воспроизводимый пример, если вам нужна более конкретная помощь с findAssocs, Попробуйте использовать "сырой" набор данных, который поставляется с tm пакет и эксперимент с findAssocs чтобы увидеть, что происходит, когда вы меняете параметры. Проверьте tm [документация] ( http://cran.r-/ project.org/web/packages/tm/vignettes/tm.pdf), чтобы узнать больше о том, как использовать встроенные данные.

Вот пример использования встроенных данных, попробуйте сами:

require(tm)
data(crude)
dtm <- DocumentTermMatrix(crude)

# one doc in dtm, doesn't work...
dtm1 <- dtm[1,]
findAssocs(dtm1, "oil", 0.01)

# ten docs, does work
dtm10 <- dtm[1:10,]
findAssocs(dtm10, "oil", 0.01)

Вы можете использовать findAssocs, добавив ваши данные следующим образом

data <- data.frame(text=txt, stringsAsFactors=FALSE)

tdm <- TermDocumentMatrix(Corpus(DataframeSource(data)))

В основном импортируйте ваши данные в "Источник", ваш "Источник" в "Корпус", а затем сделайте TDM из своего "Корпуса".

Я на пару лет опоздал. Но я столкнулся с той же проблемой недавно. Это потому, что ваша матрица терминов-документов (TDM) состоит только из одного документа. Скорее, ваш тдм должен состоять из нескольких документов. Если вы используете paste() чтобы извлечь текст из фрейма данных, вы не должны использовать paste(data$text, collapse = " "), но paste(data$text)прежде чем превратить его в TDM.

Но если вы представите воспроизводимый пример, может быть, мы можем помочь.

Другие вопросы по тегам