IT ์‚ฌ๋ฌผํ•จ ๐Ÿป ์ž์„ธํžˆ๋ณด๊ธฐ

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) # ์ƒ‰์ƒ๋ชฉ๋ก

 

์ถœ๋ ฅ๋œ ์›Œ๋“œ ํด๋ผ์šฐ๋“œ๋Š” ๋งŽ์ด ์‚ฌ์šฉ๋œ ๋‹จ์–ด์ผ ์ˆ˜๋ก ํฌ๊ณ  ๊ฐ€์šด๋ฐ ๋ฐฐ์น˜๋˜๋ฉฐ ๋œ ์‚ฌ์šฉ๋œ

๋‹จ์–ด ์ผ์ˆ˜๋ก ๋ฐ”๊นฅ์ชฝ์— ์ž‘์— ํ‘œํ˜„๋œ๋‹ค.