본문 바로가기

R

[R] 텍스트 마이닝

텍스트 전처리 과정

1. 토큰화(Tokenization) : 텍스트를 정해진 단위로 나누는 작업
- 단어 : 빈칸을 기준으로 나눈다.
- 형태소 : 의미를 가지는 최소 단위, 품사를 기준으로 나누는 작업
- 글자 : 한글자 기준으로 나누는 작업
- 초성(자음),중성(모음),종성(자음)

2. 불용어 처리(stopword)
: 의미없는 단어를 제거하는 작업(주관적)

3. 의미없는 특수문자, 숫자 제거(주관적)

4. 대소문자 통일(주로 소문자로 통일)
변경하지 않을 특수문자, 대소문자, 숫자는
Trump -> Trump_unique 로 변경 후 
전체 문자 변경
Trump_unique -> Trump 다시 원위치

5. 어근 추출
: 단어 표현에 대한 통일 작업을 해야한다.
예) 놀아요, 놀아, 놀고 싶어요, 놀다 왔어요 -> 놀다.
- Lemmatization : 사전적으로 표현
- Stemming : 알고리즘을 통해서 기계적으로 변환, 신조어, 은어

6. 텍스트 인코딩 : 텍스트를 벡터로 표현
- Bag of word, tf-idf

KONLP


1. JAVA_HOME 위치확인

Sys.getenv('JAVA_HOME')

 

2. rJava 설치

install.packages('rJava')
library(rJava)

 

3. konlp 프로그램과 관련있는 프로그램을 설치

install.packages(c('stringr', 'hash', 'tau', 'Sejong', 'RSQLite', 'devtools'), type = "binary")
install.packages('remotes')

 

4. konlp 설치

remotes::install_github('haven-jeon/KoNLP', upgrade = "never",
                        INSTALL_opts=c("--no-multiarch"))

 

library(KoNLP)
useSejongDic()
useNIADic()

text <- 'R은 오픈소스로 통계, 기계학습, 금융, 생물정보학, 그래픽스에 이르는 다양한 통계 패키지를 
갖추는 좋은 프로그램이다.'

 

명사추출

extractNoun(text)

 

품사태깅

SimplePos09(text)
SimplePos22(text)

[문제204] SimplePos22(text) 품사 태깅의 보통명사만 추출해주세요.

x <- SimplePos22(text)
library(stringr)
str_replace_all(unlist(str_extract_all(x,'[가-힣]+/NC')),'/NC','')

unlist(str_match_all(x,'[가-힣]+/NC'))
as.vector(na.omit(str_match(x,'[가-힣]+/NC')))


[문제205] review$tagging 열을 생성해서 감상평의 품사 태깅정보가 입력되도록 하세요.

View(review)

x <- SimplePos22(review$감상평)
paste(unlist(x[[1]]),collapse = ' ')

review$tagging  <- sapply(x, function(arg){paste(unlist(arg),collapse = ' ')})

+)review$tagging 내용중에 보통명사만 추출해서 새로운 열에 저장하기

str_replace_all(str_extract_all(review$tagging,'[가-힣]+/NC'),'/NC','') #오류
str_replace_all(str_extract_all(review$tagging,'[가-힣]+/NC')[[1]],'/NC','')
x <- str_extract_all(review$tagging,'[가-힣]+/NC')
review$nc <- sapply(x,function(arg){paste(str_replace_all(arg,'/NC',''),collapse = ' ')})

'R' 카테고리의 다른 글

[R] web scraping - css, xpath,JSON  (0) 2022.02.10
[R] 크롤링, 스크래핑  (0) 2022.02.09
[R] 문제풀이  (0) 2022.02.07
[R] stringr  (0) 2022.02.04
[R] grep, 정규표현식(Regular Expression)  (0) 2022.02.03
Recent Posts
Popular Posts
Recent Comments