R语言利用SVM对IMDB电影评论数据集进行情感分析的代码
时间: 2024-02-16 19:02:40 浏览: 221
以下是使用R语言中的e1071包对IMDB电影评论数据集进行SVM情感分析的代码示例:
```R
# 导入IMDB电影评论数据集
library(datasets)
data(imdb)
head(imdb)
# 数据预处理
library(tm)
corpus <- Corpus(VectorSource(imdb$text))
corpus <- tm_map(corpus, tolower) # 转换为小写
corpus <- tm_map(corpus, removeNumbers) # 去除数字
corpus <- tm_map(corpus, removePunctuation) # 去除标点符号
corpus <- tm_map(corpus, removeWords, stopwords("english")) # 去除停用词
corpus <- tm_map(corpus, stemDocument) # 词干化处理
# 特征提取
dtm <- DocumentTermMatrix(corpus)
dtm <- removeSparseTerms(dtm, 0.99) # 去除稀疏项
y <- imdb$sentiment
# 模型训练
library(e1071)
svm_model <- svm(x = dtm, y = y, kernel = "linear", cost = 1)
# 模型预测
new_text <- c("This movie is really bad", "I love this movie so much")
new_corpus <- Corpus(VectorSource(new_text))
new_corpus <- tm_map(new_corpus, tolower)
new_corpus <- tm_map(new_corpus, removeNumbers)
new_corpus <- tm_map(new_corpus, removePunctuation)
new_corpus <- tm_map(new_corpus, removeWords, stopwords("english"))
new_corpus <- tm_map(new_corpus, stemDocument)
new_dtm <- DocumentTermMatrix(new_corpus, control = list(dictionary = Terms(dtm)))
new_dtm <- as.matrix(new_dtm)
predict(svm_model, new_dtm)
```
这段代码中,首先导入IMDB电影评论数据集,并进行数据预处理和特征提取,得到文本数据的数值型表示。然后使用svm函数进行模型训练,并使用预处理后的测试数据进行情感分析预测。最终输出预测结果,其中1表示正面情感,0表示负面情感。
阅读全文