R 텍스트마이닝
창세기 단어구름(wordcloud) 만들기 (2) 전처리
지난 글에서 창세기 텍스트를 불러왔습니다.
gen=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/bible_example/genesis.txt",encoding="EUC-KR")
오늘은 텍스트를 단어 단위로 쪼개고, 불필요한 단어를 제거하도록 하겠습니다. 단어단위로 쪼개기 위해 stringr 패키지를
설치하겠습니다. 파이프 연산자 사용을 위해 dplyr 패키지도 설치합시다.
> install.packages("stringr")
> install.packages("dplyr")
설치한 패키지를 불러옵시다.
library(stringr)
library(dplyr)
1. 단어 단위로 쪼개기
strsplit 함수를 이용하여 단어 단위로 쪼개줍니다. split 옵션을 " " 으로 놓으면 됩니다. 공백을 의미합니다.
gen_word = strsplit(gen ,split=" ") %>% unlist()
strsplit 함수는 결과가 리스트형태로 입력됩니다. unlist 함수를 적용하여 벡터로 만들어줍니다. 결과는 아래와 같습니다.
> gen_word[1:5]
[1] "창1:1" "<천지" "창조>" "태초에" "하나님이"
2. 불필요한 단어 제거하기
장과 절에 해당되는 단어는 제거하겠습니다. 소제목 <>도 제거합시다. 먼저 해당 단어를 찾아야합니다. str_detect 함수를 이용하여 해당 단어가 있는 위치를 TRUE로 표시하고, which 함수로 그 위치를 찾습니다. or연산자 | 를 사용하였습니다.
rm_obj=which(str_detect(gen_word,":")|str_detect(gen_word,"<")|str_detect(gen_word,">"))
> rm_obj[1:5]
[1] 1 8 21 29 38
인덱싱을 이용하여 해당 위치의 원소들을 제거해줍니다.
gen_word_r1=gen_word[-rm_obj]
> gen_word_r1[1:10]
[1] "태초에" "하나님이" "천지를" "창조하시니라" "땅이" "혼돈하고" "공허하며"
[8] "흑암이" "깊음" "위에"
<코드 모아보기>
library(stringr)
library(dplyr)
#텍스트 불러오기
gen=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/bible_example/genesis.txt",encoding="EUC-KR")
#단어 단위로 쪼개기
gen_word = strsplit(gen ,split=" ") %>% unlist()
#불필요한 단어 찾아 위치 저장하기
rm_obj=which(str_detect(gen_word,":")|str_detect(gen_word,"<")|str_detect(gen_word,">"))
#불필요한 단어 제거하기
gen_word_r1=gen_word[-rm_obj]
'R 주제 > 텍스트마이닝' 카테고리의 다른 글
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ③ 빈 문자열 제거 (0) | 2020.12.07 |
---|---|
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ② 불필요한 기호 제거 (0) | 2020.12.04 |
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ① 빈도분석 일단 해보기 (0) | 2020.12.04 |
[R 텍스트마이닝] 창세기 단어구름(wordcloud) 만들기 (3) 단어구름 만들기 (0) | 2020.10.06 |
[R 텍스트마이닝] 창세기 단어구름(wordcloud) 만들기 (1) 개역개정 텍스트 불러오기 (0) | 2020.10.06 |
댓글