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

[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ④ 소문자로 통일하기

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

[R 텍스트마이닝] 

영화 어바웃타임 대본 단어 빈도분석 ④ 소문자로 통일하기


우리는 지난시간까지 어바웃타임의 자막을 단어단위로 나누어서 빈도분석을 했습니다. 몇가지 전처리를 했었는데, 아래와 같습니다. 


- raw 데이터에서 불필요 기호 제거

- 단어데이터에서 불필요 단어 제거


빈도 결과를 받아보고 나서, 한가지 작업이 더 필요하다는 것을 알았습니다. 바로 대소문자입니다. 예를들어 Happy와 happy 는 같은 단어임에도, 빈도분석에는 다른 단어로 인식된 것입니다. 


이 문제를 해결하기 위해 전체를 소문자로 바꾸는 코드르 추가하겠습니다. 아래와 같습니다. 빨간색으로 표시하였습니다. 



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= tolower(word)


#불필요한 단어 찾아 위치 저장하기

rm_obj=which(!str_detect(word,"."))


#불필요한 단어 제거하기 

word2=word[-rm_obj]


#빈도 계산하기

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

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



# 텍스트 파일 저장

write.table(word_df,file="abouttime_wordrank_final.txt",quote=FALSE)


단어 수를 알아봅시다.


> str(word_df)

'data.frame': 1787 obs. of  2 variables:

 $ word2: Factor w/ 1787 levels "you","i","the",..: 1 2 3 4 5 6 7 8 9 10 ...

 $ Freq : int  360 284 284 235 186 185 157 154 127 111 ...


단어 수가 2058단어에서 1787 단어로 감소한 것을 알 수 있습니다. 


txt파일은 아래와 같습니다. 


abouttime_wordrank_final.txt


반응형

댓글