R:TM 包从单列中查找词频
R: TM package Finding Word Frequency from a Single Column
我最近一直在尝试使用 tm
包在 R 中的 data.frame
中的单个列中查找词频。虽然 data.frame
本身有许多基于数字和字符的列,但我只对一个纯文本列感兴趣。虽然清理文本本身没有问题,但当我尝试使用 findFreqTerms()
命令提取词频时,我收到以下错误:
Error: inherits(x, c("DocumentTermMatrix", "TermDocumentMatrix")) is not TRUE
我的意思是说我需要将我的数据转换为 DocumentTermMatrix
或 TermDocumentMatrix
,但是因为我只有一个列可以使用,所以我也也无法创建。错误如下:
> Test <- DocumentTermMatrix(Types)
Error in UseMethod("TermDocumentMatrix", x) :
no applicable method for 'TermDocumentMatrix' applied to an object of class "c('PlainTextDocument', 'TextDocument')"
有什么方法可以从单列中获取频率计数吗?我在下面粘贴了我的完整代码,并对我采取的每个步骤进行了解释。我很感激你们能给我的任何帮助。
> # extracting the single column I wish to analyse from the data frame
Types <-Expenses$Types
> # lower all cases
Types <- tolower(Types)
> # remove punctuation
Types <- removePunctuation(Types)
> # remove numbers
Types <- removeNumbers(Types)
> # attempting to find word frequency
findFreqTerms(Types)
Error: inherits(x, c("DocumentTermMatrix", "TermDocumentMatrix")) is not TRUE
你首先需要一个语料库和术语文档矩阵...
library(tm)
a <- c("hello man", "how's it going", "just fine")
a <- tolower(a)
a <- removePunctuation(a)
a <- removeNumbers(a)
myCorpus <- Corpus(VectorSource(a))
myTDM <- TermDocumentMatrix(myCorpus)
findFreqTerms(myTDM)
如果使用 qdap
包,您可以直接从文本变量中找到术语的频率:
library(qdap)
a <- c("hello man", "how's it going", "just fine", "really fine", "man o man!")
a <- tolower(a)
a <- removePunctuation(a)
a <- removeNumbers(a)
freq_terms(a) # there are several additional arguments
WORD FREQ
1 man 3
2 fine 2
3 going 1
4 hello 1
5 hows 1
6 it 1
7 just 1
8 o 1
9 really 1
我最近一直在尝试使用 tm
包在 R 中的 data.frame
中的单个列中查找词频。虽然 data.frame
本身有许多基于数字和字符的列,但我只对一个纯文本列感兴趣。虽然清理文本本身没有问题,但当我尝试使用 findFreqTerms()
命令提取词频时,我收到以下错误:
Error: inherits(x, c("DocumentTermMatrix", "TermDocumentMatrix")) is not TRUE
我的意思是说我需要将我的数据转换为 DocumentTermMatrix
或 TermDocumentMatrix
,但是因为我只有一个列可以使用,所以我也也无法创建。错误如下:
> Test <- DocumentTermMatrix(Types)
Error in UseMethod("TermDocumentMatrix", x) :
no applicable method for 'TermDocumentMatrix' applied to an object of class "c('PlainTextDocument', 'TextDocument')"
有什么方法可以从单列中获取频率计数吗?我在下面粘贴了我的完整代码,并对我采取的每个步骤进行了解释。我很感激你们能给我的任何帮助。
> # extracting the single column I wish to analyse from the data frame
Types <-Expenses$Types
> # lower all cases
Types <- tolower(Types)
> # remove punctuation
Types <- removePunctuation(Types)
> # remove numbers
Types <- removeNumbers(Types)
> # attempting to find word frequency
findFreqTerms(Types)
Error: inherits(x, c("DocumentTermMatrix", "TermDocumentMatrix")) is not TRUE
你首先需要一个语料库和术语文档矩阵...
library(tm)
a <- c("hello man", "how's it going", "just fine")
a <- tolower(a)
a <- removePunctuation(a)
a <- removeNumbers(a)
myCorpus <- Corpus(VectorSource(a))
myTDM <- TermDocumentMatrix(myCorpus)
findFreqTerms(myTDM)
如果使用 qdap
包,您可以直接从文本变量中找到术语的频率:
library(qdap)
a <- c("hello man", "how's it going", "just fine", "really fine", "man o man!")
a <- tolower(a)
a <- removePunctuation(a)
a <- removeNumbers(a)
freq_terms(a) # there are several additional arguments
WORD FREQ
1 man 3
2 fine 2
3 going 1
4 hello 1
5 hows 1
6 it 1
7 just 1
8 o 1
9 really 1