자연어 처리 설치
사전환경 만들기
오라클(https://www.oracle.com/index.html) 로그인 후
JAVA SE 설치
설치해준다.
설치 후
환경변수 셋팅을 위해
C:\Program Files\Java\jdk1.8.0_251\bin를 복사한후
에 들어간다.
7시방향의 윈도우 오른쪽 클릭-> 시스템-> 고급 시스템 설정 -> 환경변수 -> 시스템 변수 Path 변수-> 편집-> 새로만들기 -> C:\Program Files\Java\jdk1.8.0_251\bin 붙여넣기
이후 cmd 들어가서
java
javac
를 검색후 잘 작동하는지 확인
R 실행 후
# 1. R 설치하기(가급적 관리자 권한으로 설치)
# cran.r-project.org/bin/windows/base/?
# 2. rtools40 설치하기(c:/Rtools에 설치)
# https://cran.r-project.org/bin/windows/Rtools/index.html
# 3. java, rJava 설치하기
install.packages("multilinguer")
library(multilinguer)
install_jdk()
# 4. 의존성 패키지 설치하기
install.packages(c("hash", "tau", "Sejong", "RSQLite", "devtools", "bit", "rex", "lazyeval", "htmlwidgets", "crosstalk", "promises", "later", "sessioninfo", "xopen", "bit64", "blob", "DBI", "memoise", "plogr", "covr", "DT", "rcmdcheck", "rversions"), type = "binary")
# 5. github 버전 설치하기
install.packages("remotes")
# 6. KoNLP 설치하기(64bit에서만 동작)
remotes::install_github('haven-jeon/KoNLP', upgrade = "never", INSTALL_opts=c("--no-multiarch"))
txt <- readLines("hiphop.txt")
txt
head(txt)
library(stringr)
# 특수문자 제거
# \는 W까지 써줘야 함
txt <- str_replace_all(txt,"\\W", " ")
## 가장 많이 사용된 단어 알아보기
extractNoun("대한민국의 영토는 한반도와 그 부속도서로 한다")
# 가사에서 명사추출
nouns <- extractNoun(txt)
# 추출한 명사 list를 문자열 벡터로 변환, 단어별 빈도표 생성
wordcount <- table(unlist(nouns))
## 자주 사용된 단어 빈도표 만들기
# 데이터 프레임으로 변환
df_word <- as.data.frame(wordcount, stringsAsFactors = FALSE)
df_word
library(dplyr)
# 변수명 수정
df_word <- rename(df_word,
word = Var1,
freq = Freq)
# 두 글자 이상 단어 추출
df_word <- filter(df_word, nchar(word)>=2)
top_20 <- df_word %>%
arrange(desc(freq)) %>%
head(20)
top_20
# 워드클라우드 표현
# 패키지 설치
install.packages("wordcloud")
# 패키지 로드
library(wordcloud)
library(RColorBrewer)
pal <- brewer.pal(8,"Dark2") # Dark2 색상 목록에서 8개 색상 추출
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(8,"Blues")[5:9] # Dark2 색상 목록에서 8개 색상 추출
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) # 색깔 목록
국정원 계정 트윗 데이터 활용하여 텍스트 분석
# 변수명 변경
twitter <- rename(twitter,
no = 번호,
id = 계정이름,
date = 작성일,
tw = 내용)
# 특수문자 제거
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
# 두 글자 이상 단어만 추출
df_word <- filter(df_word, nchar(word) >= 2)
# 상위 20 개 추출
top20 <- df_word %>%
arrange(desc(freq)) %>%
head(20)
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)
'경기도 인공지능 개발 과정 > R' 카테고리의 다른 글
R 지도시각화 (0) | 2022.04.25 |
---|---|
R 비정형 데이터 분석 (0) | 2022.04.25 |
R 야구 데이터 분석 (0) | 2022.04.19 |
R 서울시 역세권 아파트 가격 분석 (0) | 2022.04.19 |
R ggplot2 (0) | 2022.04.17 |