무회blog

R함수 basic006 : 문장을 벡터로 변환하기 ,벡터(vector) 를 코퍼스(말뭉치)에 넣기 , 코퍼스(말뭉치)로 바이그램, 트라이그램 추출하기 ,dtm,tdm 만들기 본문

Python/R

R함수 basic006 : 문장을 벡터로 변환하기 ,벡터(vector) 를 코퍼스(말뭉치)에 넣기 , 코퍼스(말뭉치)로 바이그램, 트라이그램 추출하기 ,dtm,tdm 만들기

최무회 2020. 6. 4. 14:34
# install.packages("installr")
# install.packages('RmecabKo') # C++ 기반으로 함,
# install.packages("ggplot2")
# install.packages("readxl")
# install.packages("dplyr")
# install.packages("rJava")
# install.packages("tm")
install.packages("RWeka")
## testData is mpg

library(installr)
library(ggplot2)  # mpg
library(readxl)
library(dplyr)
library(rJava)
library(tm)
library(stringr)
library(RWeka)
## R함수 basic006 :  문장을 벡터로 변환하기 ,벡터(vector) 를 코퍼스(말뭉치)에 넣기  , 코퍼스(말뭉치)로 바이그램, 트라이그램 추출하기  

tests <- "The United States comprises fifty states. In the United States, each state has its own laws. However, federal law overrides state law in the United States."

bigramTokenizer <- function(x) NGramTokenizer(x,Weka_control(min=2, max=3))                  # 바이그램 =2, 트라이그램 =3 (min=2 or min = 3)
mytext <- c("The United States comprises fifty states.","In the United States, each state has its own laws.","federal law overrides state law in the United States.")
typeof(mytext)

mytemp <- VCorpus(VectorSource(mytext))                                                       #  말뭉치 만들기 , 코퍼스에 문장 벡터 3개 넣기 
ngram.tdm <- TermDocumentMatrix(mytemp,control = list(tokenize=bigramTokenizer))              # tdm 구성하기 
bigramlist <- apply(ngram.tdm[,],1,sum)
sort(bigramlist, decreasing = T)[1:10]                                                               # 빈도수가 높은 바이그램부터 살피기 





# ---------------------------
# 말뭉치를 dtm 으로 구성하기 , DocumentTermMatrix()
# dtm.e <- DocumentTermMatrix(mytemp)                                                            # dtm 으로 구성하기
# dtm.e$dimnames



Comments