- R package for bareun
- About bareun: https://bareun.ai/
install.packagas('devtools')
install.packages('curl')
install.packages('httr')
install.packages('rjson')
devtools::install_github("bareun-nlp/RBareun")
- tagger: Bareun 서버를 호출하여 문장(들)을 분석
- postag: 분석한 결과/문장의 음절, 태그 리스트 출력
- pos: 분석한 결과/문장을 음절/태그 문자열 리스트로 출력
- morphs: 분석한 결과/문장의 음절 리스트 출력
- nouns: 분석한 결과/문장의 명사 리스트 출력
- verbs: 분석한 결과/문장의 동사 리스트 출력
- as_json_string: 분석 결과를 JSON 문자열로 출력
- print_as_json: 분석 결과를 읽을 수 있는 JSON 화면 출력
- dict_list: 등록된 사용자 사전 목록
- get_dict: 사용자 사전 가져오기
- print_dict_all: 사용자 사전 내용 보기
- build_dict_set: 새로운 세트 만들기
- make_custom_dict: 사용자 사전 새로 만들고 등록
- remove_custom_dict: 사용자 사전(들) 삭제
- set_key: API-KEY 설정
- get_key: API-KEY 보기
- set_server: 서버 설정
- set_api: API-KEY, 서버 설정
- 패키지 사용 방법
- REST API를 사용해야 하는데, bareun 3.0 rc4 이후부터는 모든 설치본이 REST를 지원합니다.
library(bareun)
# apikey는 반드시 입력해야 합니다.
apikey <- "(발급받은 API키)"
server <- "(실행한 서버 이름이나 주소)"
# server에는 URL을 입력하는 것이 아닙니다. 서버의 이름이나 주소만 입력해야 합니다.
# 예) localhost에서 실행한 경우: server <- "localhost" 또는 server <- "127.0.0.1"
set_api(apikey, server)
- 형태소 분석
t <- tagger()
text <- "문장을 입력합니다.\n여러 문장을 넣습니다."
pos(t, text)
[[1]]
[1] "문장/NNG" "을/JKO" "입력하/VV" "ㅂ니다/EF" "./SF"
[[2]]
[1] "여러/MMN" "문장/NNG" "을/JKO" "넣/VV" "습니다/EF" "./SF"
- 1번째 문장의 4번째 형태소 출력
postag(t, text)[[1]][[4]]
$morpheme
[1] "ㅂ니다"
$tag
[1] "EF"
- 어절, 명사, 동사 출력
morphs(t)
[[1]]
[1] "문장" "을" "입력하" "ㅂ니다" "."
[[2]]
[1] "여러" "문장" "을" "넣" "습니다" "."
nouns(t)
[[1]]
[1] "문장"
[[2]]
[1] "문장"
verbs(t)
[[1]]
[1] "입력하"
[[2]]
[1] "넣"
- 만들기 & 등록하기
np <- c("청하", "트와이스", "티키타카", "TIKITAKA", "오마이걸")
cp <- c("자유여행", "방역당국", "코로나19", "주술부", "완전주의")
caret <- c("주어^역할", "주어^술어^구조", "하급^공무원")
vv <- c("카톡하다", "인스타하다")
va <- c("혜자스럽다", "창렬하다")
make_custom_dict(t, "sample", np, cp, caret, vv, va)
[1] "sample : 업데이트 성공"
- 사전 기능 테스트
문장 | 사전이 없을때 결과 | 사전이 적용된 결과 | 설명 |
---|---|---|---|
효정이는 오마이걸의 리덥니다 | [1,] "효정이" "NNP" [2,] "는" "JX" [3,] "오마이" "NNG" [4,] "걸" "NNG" [5,] "의" "JKG" [6,] "리더" "NNG" [7,] "이" "VCP" [8,] "ㅂ니다" "EF" |
[1,] "효정이" "NNP" [2,] "는" "JX" [3,] "오마이걸" "NNP" [4,] "의" "JKG" [5,] "리더" "NNG" [6,] "이" "VCP" [7,] "ㅂ니다" "EF" |
'오마이걸'이 고유명사(NNP)로 처리 |
자유여행으로 갈겁니다 | [1,] "자유" "NNG" [2,] "여행" "NNG" [3,] "으로" "JKB" [4,] "가" "VV" [5,] "ㄹ" "ETM" [6,] "거" "NNB" [7,] "이" "VCP" [8,] "ㅂ니다" "EF" |
[1,] "자유여행" "NNG" [2,] "으로" "JKB" [3,] "가" "VV" [4,] "ㄹ" "ETM" [5,] "거" "NNB" [6,] "이" "VCP" [7,] "ㅂ니다" "EF" |
'자유여행'이 복합명사로 한 단어처럼 처리 |
이따가 카톡해라 | [1,] "이따가" "MAG" [2,] "카톡" "NNP" [3,] "하" "VV" [4,] "아라" "EF" |
[1,] "이따가" "MAG" [2,] "카톡하" "VV" [3,] "아라" "EF" |
'카톡하다'가 '카톡(명사)+하'가 아니라 동사로 처리 |