r - R 中的分类/预测

标签 r machine-learning nlp classification

我有一个包含 N 个文档的语料库,被分类为垃圾邮件/非垃圾邮件。我按照标准程序预处理 R( code here ) 中的数据。预处理以使用权重作为 tfidfDocumenTermMatrix 结束。

现在我想用我的模型对新文档进行分类。

如何计算单个新文档的相应DocumentVector(使用文档的tf和语料库的idfs) ?我想避免重新计算整个语料库的 DocumentTermMatrix

最佳答案

我过去也遇到过类似的问题,并且此功能未包含在 tm 包中。 Ingo Feinerer 建议构建一个函数来获取 DocumentVector。该函数需要使用语料库和新文档中先前构建的 tm 或 dtm。首先以与语料库相同的方式预处理新文档,并创建一个包含单词和 tf 的列表。您可以合并 tm/dtm 中的单词(例如 tdm$dimnames$Terms),方法是将新文档转换为具有与文档的 tf 值相同的语料库术语(简单合并)。然后按照标准方式将tf除以语料库的idf:

cs<-row_sums(tm>0)
 lnrs<-log2(nDocs(tm)/cs)
 tf*lnrs  # 

完成返回 DocumentVector。 然后,您可以在直接使用 SVM 进行预测时使用向量作为 data.frame。

关于r - R 中的分类/预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15956025/

相关文章:

r - 在 r 的列中用字符分隔字符串

python - scikit-learn 如何绘制 k 个均值文档簇?

android - 如何从android中的数字图像中获取单独的数字图像?

keras - biobert for keras 版本的 huggingface 变形金刚

R read.csv "More columns than column names"错误

r - 如何在 data.table 上使用 sep2 = ""

mysql - Perl(或 R,或 SQL): Count how often string appears across columns

python - 获取转换后逻辑回归最重要特征的名称

java - 如何使用 Java 查找非字母表

python - 返回给定短语的匹配列表