R

μˆ˜μ—…μžλ£Œμ •λ¦¬ : ν…μŠ€νŠΈ λ§ˆμ΄λ‹

래리래리 2019. 5. 30. 10:48

ν…μŠ€νŠΈ λ§ˆμ΄λ‹

문자둜 된 λ°μ΄ν„°μ—μ„œ κ°€μΉ˜μžˆλŠ” 정보λ₯Ό μ–»λŠ” 뢄석 기법 >> 'ν…μŠ€νŠΈ λ§ˆμ΄λ‹'

ν…μŠ€νŠΈ λ§ˆμ΄λ‹μ„ ν• λ•Œ κ°€μž₯ λ¨Όμ €ν•˜λŠ” μž‘μ—…μ€ 'ν˜•νƒœμ†Œ 뢄석'이닀.

 

ν•œκΈ€ μžμ—°μ–΄ 뢄석 νŒ¨ν‚€μ§€ KoNLP λ₯Ό μ΄μš©ν•˜μ—¬ ν˜•νƒœμ†Œ 뢄석을 ν•  μˆ˜μžˆλ‹€.

 

Rstudio μ—μ„œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œλ‹€

install.packages("rJava")

install.packages("memoise")

install.packages("KoNLP")

 

library(KoNLP)

library(dplyr)

 

*사전 μ„€μ •ν•˜κΈ°

KoNLPμ—μ„œ μ§€μ›ν•˜λŠ” 사전은 98λ§Œμ—¬κ°œμ˜ λ‹¨μ–΄λ‘œ κ΅¬μ„±λ˜μ–΄μžˆλ‹€.

λ”°λΌμ„œ useNIADic()λ₯Ό μž…λ ₯ν•΄μ„œ μ„€μ •ν•œλ‹€.

 

*특수문자 μ œκ±°ν•˜κΈ°

λ¬Έμž₯에 이λͺ¨ν‹°μ½˜μ΄λ‚˜ νŠΉμˆ˜λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ 있으면 였λ₯˜κ°€ λ°œμƒν•œλ‹€.

stringr의 str_replace_all()을 μ΄μš©ν•˜μ—¬ νŠΉμˆ˜λΆ„μžλ₯Ό 빈칸으둜 μˆ˜μ •ν•œλ‹€

 

install.packages("stringr")

library(stringr)

 

txt <- str_replace_all(txt," "||w", " ")

||wλŠ” 특수문자λ₯Ό μ˜λ―Έν•˜λŠ” 'μ •κ·œ ν‘œν˜„μ‹'이닀.

 

*λͺ…사 μΆ”μΆœν•˜κΈ°

KoNLP의 extractNoun()을 μ΄μš©ν•˜λ©΄ λ¬Έμž₯μ—μ„œ λͺ…사λ₯Ό μΆ”μΆœν•  수 μžˆλ‹€.

 

 

 

μ›Œλ“œ ν΄λΌμš°λ“œ

 

μ›Œλ“œ ν΄λΌμš°λ“œλž€ λ‹¨μ–΄μ˜ λΉˆλ„λ₯Ό ꡬλ₯΄ λͺ¨μ–‘μœΌλ‘œ ν‘œν˜„ν•œ κ·Έλž˜ν”„μ΄λ‹€.

 

wordcloudνŒ¨ν‚€μ§€λ₯Ό μ΄μš©ν•΄μ„œ μ›Œλ“œ ν΄λΌμš°λ“œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€.

install.packages("wordcloud")

library(wordcloud)

library(RColorBrewer)

 

ex)

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) # 색상λͺ©λ‘

 

좜λ ₯된 μ›Œλ“œ ν΄λΌμš°λ“œλŠ” 많이 μ‚¬μš©λœ 단어일 수둝 크고 κ°€μš΄λ° 배치되며 덜 μ‚¬μš©λœ

단어 일수둝 λ°”κΉ₯μͺ½μ— μž‘μ— ν‘œν˜„λœλ‹€.