Как найти частоту документа в R? - PullRequest
0 голосов
/ 20 апреля 2019

Мне нужна помощь в решении этой проблемы для создания программы на R, которая находит: -Минимальное количество документов, обрабатываемых индексатором, равно 4. -Выберите все термины из каждого документа, чтобы построить матрицу, содержащую частоту в каждом документе (в печатном виде).-печать каждый термин и его DF (частота документа)

Я пытался ввести файлы с помощью цикла for и функции, но не сработал, и я не знаю, как решить эту проблему

analyze <- function(filename) {
    # Plots the average, min, and max inflammation over time.
    # Input is character string of a csv file.
    dat <- read.csv(file = filename, header = FALSE)
    avg_day_inflammation <- apply(dat, 2, mean)
    plot(avg_day_inflammation)
    max_day_inflammation <- apply(dat, 2, max)
    plot(max_day_inflammation)
    min_day_inflammation <- apply(dat, 2, min)
    plot(min_day_inflammation)
  }

  analyze("E://FCI-H//level 3 - Second Semester//Information Retrival//Section//assignment//assignment3//1.csv")

этот код показывает мне ошибку, но я надеюсь решить эту проблему, открыв более 5 файлов и объединив их, затем составить матрицу и найти частоту документа

1 Ответ

0 голосов
/ 27 апреля 2019

это решение моей проблемы

library(tm)

mypath = "E://FCI-H//level 3 - Second Semester//Information Retrival//Section//assignment//assignment3" setwd(mypath)


txt_files_ls = list.files(path=mypath, pattern="*.txt")  txt_files_df <- lapply(txt_files_ls, function(x) {read.table(file = x, header = F, sep ="/")})

combined_df <- do.call("rbind", lapply(txt_files_df, as.data.frame))

names(combined_df) <- "text" myCorpus <- Corpus(VectorSource(combined_df$text))

tdm <- TermDocumentMatrix(myCorpus,control = list(removePunctuation = TRUE, stopwords = TRUE)) dtm <- DocumentTermMatrix(myCorpus, control = list(weighting = function(x) weightTfIdf(x, normalize = FALSE), stopwords = TRUE))

inspect(tdm) inspect(dtm)
...