install.packages("twitteR")
install.packages("stringr")
install.packages("ROAuth")
install.packages("igraph")
install.packages("tm")
library(twitteR)
library(stringr)
library(ROAuth)
library(igraph)
library(tm)
ls()
rm(list=ls())
#트위터 접속
a = "4OGxbiGE8Z3tXWA9pSRsks7SC"
b = "izX15KJgzuWsi1XdgklrsQRqVz9qTVZWYdwE7z8JkV27psaE4Y"
c = "71181251-KSVuiSbLgF6IGsoePsZhqCI7kXvoLEo83Swgtxqam"
d = "trXrZaUrLldIQs7WyRH4MtCQnGEcKZxHtP93RR4ZKLjpf"
setup_twitter_oauth(a, b, c, d)
find_t <- searchTwitter("#love", n=500, lang="en")
df <- do.call("rbind", lapply(find_t, as.data.frame))
head(df$text)
class(df)
str(df)
#중간 결과 저장
write.csv(df$text, "find_t_Data.txt")
write.csv(df$text, "find_t_Data.csv")
#데이터 분석을 위해 말뭉치형으로 변환
myCorpus <- Corpus(VectorSource(df$text))
myCorpus = tm_map(myCorpus, content_transformer(tolower))
myCorpus = tm_map(myCorpus, removeNumbers)
myCorpus = tm_map(myCorpus, removeWords, stopwords('english'))
myCorpus = tm_map(myCorpus, removePunctuation)
myCorpus = tm_map(myCorpus, stripWhitespace)
#myCorpus <- tm_map(myCorpus,PlainTextDocument)
TDM <- TermDocumentMatrix(myCorpus, control=list(wordLengths=c(2,Inf)))
#TDM <- TermDocumentMatrix(myCorpus,control = list(minWordLength = 1))
class(TDM)
#그래프를 그리기 위한 데이터 조치
mydata.dtm <- removeSparseTerms(TDM, sparse=0.95)
mydata.df <- as.matrix(mydata.dtm)
mydata.df[mydata.df>=1] <- 1
mydata.df2 <- mydata.df %*% t(mydata.df)
#데이터 시각화
library(igraph)
find.g <- graph.adjacency(mydata.df2, weighted=TRUE, mode="undirected")
class(find.g)
#단순 네트워크 작성 일단 실습은 여기까지
g <- simplify(find.g)
class(g)
str(g)
plot(g)
#네트워크 차수와 가중치 를 고려한 네트워크
V(g)$label <- V(g)$name
V(g)$degree <- degree(g)
V(g)$label.cex <- 2*(V(g)$degree / max(V(g)$degree))
V(g)$size <- 15*(V(g)$degree / max(V(g)$degree))
E(g)$width <- 4*(E(g)$weight / max(E(g)$weight))
condition <- V(g)[degree<10]
#네트워크에서 특정한 정점을 지우기 위한 함수
g1<-delete.vertices(g,condition)
class(g1)
head(sort(degree(g1),decreasing=T))
plot(g1)
'인공지능 > R' 카테고리의 다른 글
R - 내장 함수 (0) | 2021.06.10 |
---|---|
R - 마크다운 (0) | 2021.06.10 |
R - open api (0) | 2021.06.10 |
R - 감성분석 (0) | 2021.06.09 |
R - 통계적 가설검정 (0) | 2021.06.09 |