由R中的uisng mlr包进行文本分类

时间:2018-01-17 12:51:04

标签: r random-forest multilabel-classification mlr

我需要训练一个可以对文本数据执行多标签多类分类的模型。

目前,我在R中使用mlr包。但不幸的是,由于我在训练模型之前得到的错误,我没有继续前进。

更具体地说,我被困在这个地方:

classify.task = makeMultilabelTask(id = "classif", data = termsDf, target =target)

并且,出现了此错误

  

makeMultilabelTask​​出错(id =" classif",data = termsDf,target = target):     断言'数据'失败:列必须根据R的变量命名约定命名,并且可能不包含特殊字符。

我用过这个例子: - Multi-label text classification using mlr package in R

以下是我目前使用的完整代码段

tm <- read.csv("translate_text_V02.csv", header = TRUE, 
               stringsAsFactors = FALSE, na.strings = c("", "NA")) 
process <- tm[, c("label", "text")]

    process <- na.omit(process)
    docs <- Corpus(VectorSource(process$text))
    clean_corpus <- function(corpus){
      corpus <- tm_map(corpus, removePunctuation)
      corpus <- tm_map(corpus, removeNumbers)
      corpus <- tm_map(corpus, content_transformer(tolower))
      corpus <- tm_map(corpus, removeWords, mystopwords)
      corpus <- tm_map(corpus, removeWords, stopwords("SMART"))
      corpus <- tm_map(corpus, removeWords, stopwords("german"))
      corpus <- tm_map(corpus, stripWhitespace)
      corpus <- tm_map(corpus, stemDocument, language = "english")
      return(corpus)
    }
    clean_corp <- clean_corpus(docs)
    terms <-DocumentTermMatrix(clean_corp)
    m <- as.matrix(terms)
    m <- cbind(m,process$label)
    termsDf <- as.data.frame(m)
    target <- unique(termsDf[,2628]) %>% as.character() %>% sort()
    classify.task = makeMultilabelTask(id = "classif", data = termsDf, target =target)

我在带有标签类的Document term matrix之后创建了数据框。但我之后如何进一步了解机器学习部分?

有关答案的问题: -

  1. 如何进一步创建DocumentTermMatrix?
  2. 如何在此特定数据集上应用随机森林算法?

0 个答案:

没有答案