计算每个词的词频以及tf-idf值的R代码
时间: 2024-02-13 21:04:02 浏览: 22
以下是计算每个词的词频以及tf-idf值的R代码:
```R
# 导入必要的包
library(tm)
library(SnowballC)
library(RWeka)
library(data.table)
# 读取文本文件
doc <- readLines("text.txt")
# 创建语料库
corpus <- VCorpus(VectorSource(doc))
# 文本预处理
corpus <- tm_map(corpus, content_transformer(tolower)) # 转换为小写
corpus <- tm_map(corpus, removePunctuation) # 移除标点符号
corpus <- tm_map(corpus, removeNumbers) # 移除数字
corpus <- tm_map(corpus, removeWords, stopwords("english")) # 移除停用词
corpus <- tm_map(corpus, stemDocument) # 词干化
# 创建文档-词频矩阵
dtm <- DocumentTermMatrix(corpus)
# 计算词频
word_freq <- colSums(as.matrix(dtm))
# 创建term frequency-inverse document frequency (tf-idf)矩阵
tfidf <- weightTfIdf(dtm)
# 计算tf-idf值
tfidf_val <- apply(tfidf, 2, function(x) sum(x != 0))
# 将结果存储为数据框
results <- data.frame(word = names(word_freq), frequency = word_freq, tfidf = tfidf_val)
# 根据tf-idf值排序
results <- results[order(-results$tfidf), ]
```
请注意将`text.txt`替换为您要计算的文本文件的文件名。此代码将计算每个词的词频以及tf-idf值,并将结果存储为数据框,按tf-idf值排序。