open:텍스트-마이닝

snippet.shell
# 패키지 설치
install.packages("rJava")
install.packages("memoise")
install.packages("KoNLP")
 
# 패키지 로드
library(KoNLP)
library(dplyr)
 
useNIADic()
 
# 데이터 불러오기
setwd('C:/Users/Playdata/weekend_R/쉽게 배우는 R 데이터 분석')
txt <- readLines('./data/hiphop.txt')
head(txt)
 
install.packages('stringr')
library(stringr)
 
txt <- str_replace_all(txt, '\\W', ' ')
 
extractNoun('대한민국의 영토는 한반도와 그 부소도서로 한다')
 
R.Version()
R.version
R.version.string
version
 
# 가사에서 명사 추출
nouns <- extractNoun(txt)
# 추출한 명사 list를 문자열 벡터로 변환, 단어별 빈도표 생성
wordcount <- table(unlist(nouns))
 
# 데이터 프레임으로 변환
df_word <- as.data.frame(wordcount, stringasFactors = F)
head(df_word)
 
# 변수명 수정
df_word <- rename(df_word, word = Var1, freq = Freq)
head(df_word)
 
# ?nchar
 
# 두 글자 이상 단어 추출
df_word <- filter(df_word, nchar(word) >= 2)
#as.character(df$col1)
df_word <- filter(df_word, nchar(as.character(df_word$word)) >= 2)
head(df_word)
 
top_20 <- df_word %>%
  arrange(desc(freq)) %>%
  head(20)
top_20
 
# 패키지 설치
install.packages('wordcloud')
 
# 패키지 로드
library(wordcloud)
library(RColorBrewer)
 
# Dark2 색상 목록에서 8개 색상 추출
pal <- brewer.pal(8, 'Dark2')
set.seed(1234)
 
wordcloud(words = df_word$word, 
          freq = df_word$freq,
          min.freq = 2 ,
          max.words = 200,
          random.order = F,
          rot.per = .1,
          scale = c(4, 0.3),
          colors = pal          )
 
pal <- brewer.pal(9, 'Blues')[5:9]
set.seed(1234)
 
wordcloud(words = df_word$word, 
          freq = df_word$freq,
          min.freq = 2 ,
          max.words = 200,
          random.order = F,
          rot.per = .1,
          scale = c(4, 0.3),
          colors = pal)
 
# 10-2 국정원 트윗 텍스트 마이닝
 
# 데이터 로드
twitter <- read.csv('./data/twitter.csv',
                    header = T,
                    stringsAsFactors = F,
                    fileEncoding = 'UTF-8')
head(twitter)
 
# 변수명 수정
twitter <- rename(twitter,
                  no = 번호,
                  id = 계정이름,
                  date = 작성일,
                  tw = 내용)
head(twitter)
 
# 특수문자 제거
twitter$tw <- str_replace_all(twitter$tw, '\\W', ' ')
head(twitter$tw)
 
# 단어 빈도표 만들기
# 트윗에서 명사추출
nouns <- extractNoun(twitter$tw)
# 추출한 명사 list를 문자열 벡터로 변환, 단어별 빈도표 생성
wordcount <- table(unlist(nouns))
# 데이터 프레임으로 변환
df_word <- as.data.frame(wordcount, stringsAsFactors = F)
# 변수명 수정
df_word <- rename(df_word, 
                  word = Var1,
                  freq = Freq)
# 두 글자 이상 단어만 추출
df_word <- filter(df_word, nchar(df_word$word) >= 2)
View(df_word)
 
top20 <- df_word %>%
  arrange(desc(freq)) %>%
  head(20)
 
top20
 
library(ggplot2)
 
# 빈도 순서 변수 생성
order <- arrange(top20, freq)$word
 
ggplot(data=top20, aes(x=word, y=freq)) +
  ylim(0, 2500) +
  geom_col() +
  coord_flip() +
  scale_x_discrete(limit = order) +       # 빈도순 막대 정렬
  geom_text(aes(label=freq), hjust=-0.3)  # 빈도 표
 
pal <- brewer.pal(8, 'Dark2')
set.seed(1234)
 
wordcloud(words = df_word$word,
          freq=df_word$freq,
          min.freq = 10,
          max.words = 200,
          random.order = F,
          rot.per =.1,
          scale = c(6, 0.2),
          colors = pal)
 
pal <- brewer.pal(9, 'Blues')[5:9]
set.seed(1234)
 
wordcloud(words = df_word$word,
          freq=df_word$freq,
          min.freq = 10,
          max.words = 200,
          random.order = F,
          rot.per = .1,
          scale = c(6, 0.2),
          colors = pal)

  • open/텍스트-마이닝.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1