본문 바로가기
R 주제/텍스트마이닝

[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ② 불필요한 기호 제거

by 만다린망고 2020. 12. 4.
반응형

[R 텍스트마이닝] 

영화 어바웃타임 대본 단어 빈도분석 ② 불필요한 기호 제거


지난 글에서 어바웃타임 대본의 빈도분석을 했었는데요. 불필요한 기호들이 있었습니다. 하이픈, 콤마, 쉼표, 물음표 등입니다. 오늘은 불필요한 기호를 제거한 뒤에 다시 빈도분석을 해봅시다. text파일을 불러온 부분부터 이어가봅시다.


library(stringr)

library(dplyr)


#텍스트 불러오기


raw=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/abouttime/abouttime.txt")


> head(raw,5)

 [1] ""                                                                            

 [2] "- I always knew we were a fairly odd family."                                

 [3] "- First there was me."                                                       

 [4] "- Too tall. Too skinny. Too orange."                                         

 [5] "- My mum was lovely, but not like other mums."                           


하이픈,콤마,쉼표,물음표 등을 제거해봅시다. 아래와 같은 코드를 사용합니다. 


raw2=raw %>% gsub(pattern=".",replacement="",fixed=TRUE) %>% 

              gsub(pattern="-",replacement="",fixed=TRUE) %>%

              gsub(pattern="?",replacement="",fixed=TRUE) %>%

              gsub(pattern=",",replacement="",fixed=TRUE)


gsub 함수를 사용하였습니다. "모두찾아바꾸기" 라고 생각하시면 됩니다. fixed 를 TRUE로 한 이용한 이유는 FALSE로 할 경우 콤마 등을 정규표현식으로 인식하기 때문입니다. 잘 삭제됐는지 확인해봅시다. 


> head(raw2,5)

[1] ""                                          

[2] " I always knew we were a fairly odd family"

[3] " First there was me"                       

[4] " Too tall Too skinny Too orange"           

[5] " My mum was lovely but not like other mums"


이제 단어단위로 쪼개고 빈도를 계산합시다. 


#단어 단위로 쪼개기

word = strsplit(raw2 ,split=" ") %>% unlist()


#빈도 계산하기

word_table=table(word) %>% sort(decreasing=TRUE) 

word_df=word_table %>% as.data.frame()


> head(word_df,10)

   word Freq

1       1833

2   you  314

3     I  284

4   the  259

5     a  229

6    to  183

7    of  150

8    it  136

9   and  110

10   is   98


한가지 문제가 있습니다. "" 이라는 문자열이 존재하는 것입니다. 하이픈을 없앨 때, 문장 앞에 한칸이 띄워지게 됐기 때문입니다. 다음시간에 제거해봅시다. 


<오늘 코드 모아보기>


library(stringr)

library(dplyr)


#텍스트 불러오기

raw=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/abouttime/abouttime.txt")


#불필요 기호 제거하기

raw2=raw %>% gsub(pattern=".",replacement="",fixed=TRUE) %>% 

              gsub(pattern="-",replacement="",fixed=TRUE) %>%

              gsub(pattern="?",replacement="",fixed=TRUE) %>%

              gsub(pattern=",",replacement="",fixed=TRUE)


#단어 단위로 쪼개기

word = strsplit(raw2 ,split=" ") %>% unlist()


#빈도 계산하기

word_table=table(word) %>% sort(decreasing=TRUE) 

word_df=word_table %>% as.data.frame()


반응형

댓글