본문 바로가기
R

[R.아르] TermDocumentMatrix를 표로 전환하는 과정에서 에러가 날 때

by LightBlogger 2017. 11. 1.

TermDocumentMatrix 에서 각 Term 들의 빈도수 합을 구하기 위해 표로 전환해야 할 필요가 있다.


tdm <- TermDocumentMatrix(text)

x <- as.matrix(tdm)


대략 위와 같은 코드인데 이때 as.matrix 함수에서 다음과 같은 에러가 나기도 한다.


Error: cannot allocate vector of size 9.0 Gb


TermDocumentMatrix 의 크기가 너무 커서 matrix로 전환할 수 없다고 한다.


이럴 땐 slam 패키지의 row_sums 함수가 도움이 된다. row_sums 는 TermDocumentMatrix를 Matrix로 전환하지 않고도 바로 각 Term의 합을 구해준다.


install.packages("slam")

library(slam)

tdm <- TermDocumentMatrix(text)

Encoding(tdm$dimnames$Terms) = 'UTF-8'

x <- as.data.frame(row_sums(tdm, na.rm=T))


이와 같이 row_sums 함수를 사용하면 바로 데이터프레임으로 결과를 얻을 수 있다.





반응형

댓글