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.
Но если вы представите воспроизводимый пример, может быть, мы можем помочь.