在输入列中对 dfm 进行预处理,而无需创建 dfm

问题描述

有这样的数据框

handleSubmit (values) {
let form_data = new FormData();
form_data.append('title',values.title);

for (let i=0; i<=this.state.Lab.length-1; i++) {
    form_data.append('Label',this.state.Lab[i]);
}

axios({
    method: "post",url: "/API/Create_item",data: form_data,headers: { "Content-Type": "multipart/form-data" },})
}

可以使用dfm的构造进行文本分析预处理

dataf <- data.frame(id = c(1,2,3,4),text = c("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s","Content here,content here',making it look like readable English. Many desktop publishing packages and web page editors Now","There are many variations of passages of Lorem Ipsum available,but the majority have suffered alteration in some form,by injected humour","a Latin professor at Hampden-Sydney College in Virginia,looked up one of the more obscure Latin words,consectetur,from a Lorem Ipsum",""))

是否有任何替代选项可以去除停用词停用词(source = "smart"),制作词干并在文本列中修剪 min_docfreq = 3,min_termfreq = 5 而无需创建 dfm?

解决方法

我将根据问题和评论回答这个问题,因为您似乎需要一个 dgCMatrix 类来完成您想要做的事情。 (这是 textmineR::CreateDtm() 返回的内容。)幸运的是,quanteda dfm 已经是一种特殊类型的 dgCMatrix。所以它可能会按原样工作,但如果您愿意,它也很容易转换 - 只需使用 as()

library("quanteda")
## Package version: 3.0.0
## Unicode version: 10.0
## ICU version: 61.1
## Parallel computing: 12 of 12 threads used.
## See https://quanteda.io for tutorials and examples.
data(nih_sample,package = "textmineR")

dfmat <- nih_sample %>%
  corpus(text_field = "ABSTRACT_TEXT",docid_field = "APPLICATION_ID") %>%
  tokens() %>%
  tokens_ngrams(n = 1:2) %>%
  dfm()
dtm2 <- as(dfmat,"dgCMatrix")

现在,dtm2 的作用应该与博客文章中的 dtm 相同。 (特征/列的顺序不同,但对于将输入到主题模型的矩阵来说,这应该无关紧要。)而且:这是一个更清晰的过程。

在此处随意插入额外的 tokens() 选项或 dfm_trim() 等,根据需要从 quanteda 中获取。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...