데이터 분석 방법
단어 빈도수 분석
예시 )
The Largest Vocabulary in hip hop
-
셰익스피어의 어휘와 미국 유명 힙합 가수들의 랩을 한 DB에 넣고 얼마나 많은 어휘를 사용했는지 비교
-
꽤 많은 가수들이 셰익스피어보다 많은 어휘를 사용하고, 모비딕 보다는 적은 어휘를 사용한다는 것을 알아냄
-
동부 출신 래퍼가 서부 출신 래퍼보다 많은 어휘를 사용한다는 것을 알아냄
텍스트 마이닝의 시작
- 텍스트 전처리
-
언어의 오류, 이모티콘, url, 빈칸 등 불필요한 요소 제거
-
R은 통계 분석을 위한 프로그램으로, 아래와 같은 기능이 있음
텍스트 전처리 과정 R의 기능
-
연산
-
백터 생성
-
백터 : 하나 이상의 값으로 구성된 데이터 구조. 일련의 숫자, 문자 도는 논리 값으로 이루어진 것
-
백터 만들기 : 일련의 숙자, 정수, 문자, 불린
c(1,3,5)
각 요소 1 3 5를 백터로 결합1:5
1 부터 5 까지의 정수 1 2 3 4 5seq(1, 5, by=2)
1부터 5까지 2씩 증가하는 정수(by=2는 parameter) -> 1,3,5rep(1:5, times=2)
1부터 5까지 2번 반복 (times = parameter) -> 1 2 3 4 5 1 2 3 4 5rep(1:5, each=2)
1부터 5까지 2번씩 찍기 -> 1 1 2 2 3 3 4 4 5 5 -
-
객체에 할당
a <- 10
a에 10을 할당b <- "text"
b에 문자 text를 할당fruits <- c("apple", "mango", "apple")
문자열로 이루어진 벡터 할당 -
함수
sort(fruits)
알파벳 순으로 정렬하여 값 반환 -> apple, apple, mangotable(fruits)
객체를 구성하는 값의 개수를 반환 -> apple2, mango1unique(fruits)
객체를 구성하는 값들의 고유값 -> apple, mangoprint(fruits)
문자열 데이터는 문자 백터가 될 수 있다. -> “apple” “apple” “mango”paste(fruits, collapse=",")
문자열을 하나로 합쳐서 보여줌 -> apple,apple,mango -
문자의 처리
주로 문자열을 특정 단위로 쪼개는 작업이 많이 사용됨
문단 -> 문장 -> 단어
strsplit
문자열을 기준에 따라 쪼갬.collapse
에서 빈칸 기준으로 나누기 힘들었던 부분이 보완됨 -
텍스트 분석
nchar("big data")
문자열의 문자수를 계산해주는 명령 -> 8 (공백, 기호 포함)strsplit
문장을 단어 단위로 쪼개기 위해 사용하는 함수sent1_split <- strsplit(sent1, split=" ")
-> sent1_split은 sent1에서 분할된 단어의 백터 목록을 list객체로 변환해 출력snet1_split은 list이기 때문에 결과값을 백터로 출력하려면
sent1_split[[1]]
같은 형식으로 첫번째 백터를 출력할 수 있음sent1_split[[1][5]]
같은 형식으로 첫번째 백터에서 5번째 요소를 출력할 수 있음
paste
문자열의 결과값들을 어떤 기준에 의해 다시 합칠 때 사용하는 함수sent2 <- paste(sent1_split[[1]], collapse=" ")
단어 요소들이 공백으로 구분된 문장으로 결합
tolower()
,toupper()
모든 문자를 소문자로, 대문자로 변환 (R에서는 대소문자 구분 확실)?
도움말 참고?strsplit
strsplit에 대한 도움말 볼 수 있음help.search("split")
,help(pachage = "stringr")
같이 help를 사용할 수도 있음
참고자료