-
[R] Do it R 텍스트마이닝_1데이터 분석/텍스트 분석 2022. 4. 11. 16:38
출처 :
Do it R 텍스트마이닝
텍스트 데이터의 전처리에 대해서 공부하였다.
개요
1. 원하는 문자를 제외하고 불필요한 문자를 제거
2. 처리한 문자열 벡터를 데이터 분석에 용이하도록 tibble 구조로 변경
3. 전처리한 데이터의 빈도를 보기 좋게 시각화
+ 폰트 변경
+ 파이프를 이용한 함수 연속 실행
데이터는 'Do it R 텍스트마이닝' 저자 김영우님의 github에 있는 speech_park.txt를 이용하였다.
출처 : github.com/yongwoos/Doit_textmining
사용하는 패키지
더보기library(stringr) library(dplyr) library(tidytext) library(ggplot2)
글자 제거, 대체
저는 한글과 숫자를 제외한 문자들을 모두 " ", 빈 공간으로 대체했습니다.
text_park <- str_replace_all(raw_park, '[^가-힣0-9]', ' ') %>% str_squish() %>% as_tibble() # str_replace_all 함수를 이용하여 [^가-힣0-9] 정규 표현식을 통해 가~힣, #0~9에 포함되는 문자를 제외한 모든 문자를 선택하였고 " ", 빈칸으로 대체합니다. # str_squish 함수를 이용하여 연속된 공백이 사용되어진 것을 하나만 남겨줍니다. # as_tibble 함수를 이용하여 문자열 벡터를 tibble구조로 변경합니다.
str_replace_all()
str_replace-all 함수는 string, pattern, replacement 파라미터를 지정해서 함수를 실행할 수 있습니다.
파라미터를 지정할 때 파라미터명을 생략하거나 입력하는 방법이 있는데
파라미터명을 생략할 경우 파라미터의 입력 순서를 통해 파라미터 적용되고,
+ 파라미터의 입력 순서 : string(적용할 문장), pattern(바꾸는 문자), replavement(대신 넣을 문자) 순서
파라미터명을 입력할 경우 파라미터의 입력 순서와 상관없이 적용됩니다.
txt <- "외모로!! 사람을 판단해서는 xyz 안된다!@#" # 파라미터명 입력 str_replace_all(string = txt, pattern = "[^가-힣]", replacement = " ") ## "외모로 사람을 판단해서는 안된다 " str_replace_all(replacement = " ", string = txt, pattern = "[^가-힣]") ## "외모로 사람을 판단해서는 안된다 " # 파라미터명 생략 str_replace_all(txt, "[^가-힣]", " ") ## "외모로 사람을 판단해서는 안된다 " str_replace_all("[^가-힣]", " ",txt) ## "[^가-힣]"
토큰화
토큰화란 말뭉치를 토큰 단위로 나누는 것을 의미한다. 토큰 단위로는 한 글자, 한 단어, 한 문장 등이 있다.
token_park <- text_park %>% unnest_tokens(input = value, output = word, token = 'words')
unnest_tokens()
input, output, token 파라미터를 입력하여야 한다. input은 토큰화 하고자 하는 tibble 데이터를 입력받는 파라미터이다. output은 출력될 데이터의 열 이름을 정하는 파라미터이다. token은 토큰화를 진행할 토큰 단위를 설정하는 파라미터이다.
정렬 및 선별
word_space <- token_park %>% count(word, sort = T) %>% # word_space['word']의 등장하는 단어의 수를 세고 순서대로 정렬 filter(str_count(word) > 1) %>% # # 2번 이상 사용된 것만 출력 head(20) # 위에서 부터 20개만 저장
시각화
font_add_google(name = "Gamja Flower", family = "gamjaflower") showtext_auto() ggplot(word_space, aes(x = reorder(word, n), y = n)) + geom_col() + coord_flip() + geom_text(aes(label = n), hjust = -0.3) + labs(title = "박근혜 대통령 출마 선언문 단어 빈도", x = NULL, y = NULL) + theme(title = element_text(size = 12), text = element_text(family = "gamjaflower")) # 폰트 적용
+ reorder 함수는 그래프에서 정렬이 필요할 경우 사용합니다.
+ coord_flip 함수는 그래프의 막대를 가로로 출력하는 함수입니다.
'데이터 분석 > 텍스트 분석' 카테고리의 다른 글
[R] Stringr 패키지 (0) 2022.04.16 [R] 텍스트 패턴 찾기, 위치 정보 수집, 수정 함수 (0) 2022.04.14 [R] sub(), gsub(), 정규 표현식 (0) 2022.04.08 [R]함수 paste(), paste0(), outer() 등 (0) 2022.04.02 [R] readr 패키지 (0) 2022.04.01