공지사항 HOME > 정보광장 > 공지사항
 
한글 DTM 패키지
관리자 18-06-14 22:42 126
   makeDTM.zip (9.6K) [3] DATE : 2018-06-14 22:42:43
BK 21의 지원으로 Document Term Matrix를 만드는 패키지를 만들어 배포합니다.

tm 패키지는 다음과 같은 문제가 있습니다.
- Corpus라는 타입을 거쳐야 사용할 수 있다
- 사용자 인터페이스가 자주 바뀐다.
- 한글의 경우 띄어쓰기에 따른 컬럼 분리가 잘 되지 않는다.

이에 makeDTM이라는 패키지를 만들어 사용하기 쉽고, 한글 처리를 잘 할 수 있도록 했습니다.
주요 특징은 다음과 같습니다.

- 데이터프레임을 바로 읽어들여 DTM을 만든다.
- keyword를 지정하여 필요한 컬럼만을 만들 수 있다. (미지정시 모든 단어 선택)

makeDTM() 패키지의 설치 및 사용 과정은 다음과 같습니다.

1. R에서 한글을 잘 사용하기 위해서는 기본적으로 Tools --> Global Options --> Code --> Saving --> Default text encoding를 UTF-8로 합니다. (비정형 데이터 처리의 일반 사항)

2. devtools를 이용하여 깃헙에서 다운로드 받습니다.
library(devtools)
install_github("caitechKHU/makeDTM")

# 만약 잘 설치가 안 되면 첨부된 파일을 다운로드 받고, R 패키지 경로에 직접 설치합니다.
# R 패키지 경로는 .libPaths() 로 알 수 있고, 첫 번째 나오는 경로에 압축을 풀어넣으면 됩니다.

3. 데이터프레임을 본문 내용이 들어가는 "TEXT" 컬럼과 분류가 들어가는 "LABEL" 컬럼을 갖도록 구성합니다. 다른 컬럼이 더 있는 것은 문제되지 않습니다. 
단어별 컬럼 구분은 띄어쓰기 단위로 됩니다.

4. 위의 데이터프레임을 불러옵니다.
stringsAsFactors = FALSE  옵션은 안 해도 됩니다.
docs <- read.csv("sample.csv")     

5. 키워드를 설정합니다. 
키워드를 지정하지 않으면 전체 단어가 키워드가 됩니다.
keyword <- c("엑셀을", "컴퓨터가", "일기를", "다시", "오늘은")

6. DTM을 만듭니다.
LABEL = TRUE 옵션을 사용하면 data.frame으로 나옵니다. 이 옵션을 사용하지 않으면 matrix로 나옵니다.
weight로는 "tf" 와 "tfidf" 를 사용할 수 있습니다.
library(makeDTM)
mydtm <- makeDTM(docs, key=keyword, LABEL = TRUE, weight = "tfidf")

class(mydtm)     
mydtm

컬럼 구분은 띄어쓰기 단위이므로, TEXT 컬럼에 대하여는 형태소 분석을 수행한 뒤 makeDTM()하는 것을 추천합니다. 

핵심 과정을 요약하면 다음의 두 단계입니다.
1) keyword <- c("엑셀을", "컴퓨터가", "일기를", "다시", "오늘은")
2) mydtm <- makeDTM(docs, key=keyword, LABEL = TRUE, weight = "tfidf")


                               * * *
아래에 몇 가지 다른 사용 예를 보입니다.
# 키워드를 아규먼트에 직접 넣기
mydtm <- makeDTM(docs, key=c("엑셀을", "컴퓨터가", "일기를", "다시", "오늘은"), LABEL = TRUE, weight = "tfidf") 

# weight 를 기본값(tf)으로 하기
mydtm <- makeDTM(docs, key=keyword, LABEL = TRUE) 

# 모든 것을 기본값으로 하기(keyword 전체 단어, LABEL 없음, weight=tf)
mydtm <- makeDTM(docs) 


*** 이 프로그램은 경희대학교 경영대학의 BK21 프로그램 (데이터과학에 기반한 경영전문 연구인력 양성팀)의 지원을 받았습니다 ***