使用R计算文本文件中单词的出现次数

Counting occurence of a word in a text file using R

我尝试创建一个 returns 文本文件中单词出现次数的函数。 为此,我创建了一个包含文本中所有单词的列表。 (a, c, c , d, e, f 都在示例词中)

[[1]]

 [1] a  

 [2] f 

 [3] e       

 [4] a 

[[2]] 

 [1] f 

 [2] f

 [3] e

我创建了一个 table 来存储每个单词的出现次数值

table(unlist(list))

  a b c d e

  3 3 2 1 1

我现在的问题是如何提取参数中单词出现的值。 该函数将具有此结构

GetOccurence <- function(word, table)
{
   return(occurence)
} 

任何想法请帮助我,在此先感谢

要回答有关您的功能的问题,您可以采用以下方法。

资料准备

为了复现性,我使用了公开的数据,稍微清洗了一下

library(tm)
data(acq)

# Basic cleaning
acq <- tm_map(acq, removePunctuation)  
acq <- tm_map(acq, removeNumbers)     
acq <- tm_map(acq, tolower)     
acq <- tm_map(acq, removeWords, stopwords("english"))  
acq <- tm_map(acq, stripWhitespace)   
acq <- tm_map(acq, PlainTextDocument) 

# Split list into words
wrds <- strsplit(paste(unlist(acq), collapse = " "), ' ')[[1]]
# Table
tblWrds <- table(wrds)

函数

GetOccurence <- function(word, table) {
    occurence <- as.data.frame(table)
    occurence <- occurence[grep(word, occurence[,1]), ]
    return(occurence)
}

已修改 (仅限完整单词)

这个函数将只匹配完整个词,下面的解决方案利用了this answer.

GetOccurence <- function(word, table) {
    occurence <- as.data.frame(table)
    word <- paste0("\b", word, "\b")
    occurence <- occurence[grep(word, occurence[,1]), ]
    return(occurence)
}