한글, 영어, 중국어 텍스트 데이터 파일을 입력받아 형태소 분석 후 R tm package에서 사용할 수 있도록 해주는 패키지
- 한글은 은전한닢 형태소 분석기를 사용
- 영어, 중국어는 Stanford core NLP 사용
R 4.0.0 버전에서 사용가능하도록 업데이트 되었습니다.
형태소 분석기 패키지 다운 받을 수 있는 링크
- Linux/Mac 용 : http://bit.ly/NLP4kec_mac_1_4
- Windows 용 : http://bit.ly/NLP4kec_win_1_4
위에서 다운 받으신 파일을 가지고 패키지 인스톨을 하시면 됩니다.
(rJava패키지 사전에 인스톨 해야함 / JRE 1.8 이상이 요구됨)
직접설치
install.packages("다운받은 패키지 파일 경로", repos = NULL)
# 예시) install.packages("C:/Users/user/Desktop/class/NLP4kec_1.2.0.zip" , repos=NULL)
#또는 Rstudio에서 제공하는 패키지 인스톨 기능을 사용하세요.
or git clone 후 설치
#git에서 clone 하신 다음 설치도 가능
library(devtools)
install_local("해당 repo를 clone한 경로")
엑셀 또는 CSV로 정리된 텍스트 데이터의 경로와 몇가지 옵션을 입력받아 형태소 분석을 처리함.
분석 대상 파일은 반드시 컬럼명이 id, content로 구성된 파일이어야함 (sample.xlsx 참조)
- 파일(xlsx, csv)로 텍스트를 읽어서 형태소 분석 후 결과를 vector 형태로 가져오기
library(NLP4kec)
result = file_parser_r(path = "./sample.xlsx", language = "ko")
- character vector를 형태소 분석하여 vector 형태로 가져오기
library(NLP4kec)
sample_sentence = "카레닌에게 잠에서 깨어나는 순간은 순수한 행복이었다."
r_parser_r(sample_sentence, language = "ko")
- 형태소 분석 결과에서 동의어 처리하기
synonym_processing(parsedVector = parsedData, synonymDic = "동의어 사전 경로")
- 파일(xlsx, csv)로 텍스트를 읽어서 형태소 분석 후 결과를 csv형태로 저장하기
result = file_parser_file(path = "./sample.xlsx", language = "ko")
- 사용자 사전 적용해서 형태소 분석하기
result = file_parser_r(path = "./sample.xlsx", language = "ko", korDicPath = "dictionary 파일 경로")
- 한글에서 영어로된 단어도 같이 분석할 경우
result = file_parser_r(path = "./sample.xlsx", language = "ko", useEn = T)
- 영어 또는 중국어 분석하기
# 영어
result = file_parser_r(path = "./en_sample.xlsx", language = "en")
# 중국어
result = file_parser_r(path = "./zh_sample.xlsx", language = "zh")
library(tm)
library(NLP4kec)
#형태소 분석기 실행하기
parsedData = file_parser_r(path = "./sample.xlsx"
,language = "ko"
,korDicPath = "./dictionary.txt")
#단어간 스페이스 하나 더 추가하기
parsedData = gsub(" "," ",parsedData) #(윈도우에서 돌리는 경우에만 적용)
#Corpus 생성
corp = VCorpus(VectorSource(parsedData))
#특수문자 제거
corp = tm_map(corp, removePunctuation)
#Document Term Matrix 생성
dtm = DocumentTermMatrix(corp, control=list(removeNumbers=FALSE, wordLengths=c(2,Inf)))
#단어 양옆 스페이스 제거 및 한글자 단어 제외하기
colnames(dtmW) = trimws(colnames(dtmW)) #(윈도우에서 돌리는 경우에만 적용)
dtmW = dtmW[,nchar(colnames(dtmW)) > 1]
#연관 키워드 구하기
findAssocs(dtm, terms = "냉장고", corlimit = 0.2)