使用分类器和quanteda识别不同的关键词

我是量化文本分析的新手,正在尝试从朴素贝叶斯分类器的输出中提取与特定分类类别相关的关键词。我正在运行下面的示例(将电影评论分类为正面或负面)。我希望得到两个向量,每个向量包含与正面和负面类别相关的关键词。我是否应该关注summary()输出中的“估计特征分数”,如果是的话,如何解释这些分数?

require(quanteda)require(quanteda.textmodels)require(caret)corp_movies <- data_corpus_moviereviewssummary(corp_movies, 5)# 生成1500个不重复的数字set.seed(300)id_train <- sample(1:2000, 1500, replace = FALSE)head(id_train, 10)# 创建包含ID的文档变量corp_movies$id_numeric <- 1:ndoc(corp_movies)# 获取训练集dfmat_training <- corpus_subset(corp_movies, id_numeric %in% id_train) %>%  dfm(remove = stopwords("english"), stem = TRUE)# 获取测试集(不在id_train中的文档)dfmat_test <- corpus_subset(corp_movies, !id_numeric %in% id_train) %>%  dfm(remove = stopwords("english"), stem = TRUE)tmod_nb <- textmodel_nb(dfmat_training, dfmat_training$sentiment)summary(tmod_nb) 

回答:

如果你只想知道最负面和最正面的词,可以考虑对整个语料库创建的dfm进行分区,划分为正面和负面的评论,然后使用textstat_keyness()。这不会创建两个词向量,而是一个带有分数的单一词向量,表示与负面或正面类别的关联强度。

library("quanteda", warn.conflicts = FALSE)## 软件包版本: 2.1.1## 并行计算: 使用了12个线程中的2个。## 请访问 https://quanteda.io 查看教程和示例。data("data_corpus_moviereviews", package = "quanteda.textmodels")dfmat <- dfm(data_corpus_moviereviews,  remove = stopwords("english"), stem = TRUE,  groups = "sentiment")tstat <- textstat_keyness(dfmat, target = "pos")textplot_keyness(tstat)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注