part-of-speech tagger based on mecab-ko morphology analyzer
morpho_mecab.Rd
Mecab 형태소 분석기 기반 형태소분석/품사 태깅을 통한 토큰화
Usage
morpho_mecab(
x,
type = c("noun", "noun2", "verb", "adj", "morpheme"),
indiv = TRUE,
user_dic = NULL,
as_list = FALSE
)
Arguments
- x
character. 형태소 분석에 사용할 document.
- type
character. 형태소 분석의 결과 유형.모든 품사, 명사, 동사 및 형용사와 같은 토큰화 결과 유형을 지정. "morpheme", "noun", "noun2", "verb", "adj"중에서 선택. 기본값은 "noun"로 일반명사만 추출함.
- indiv
logical. 복수개의 문서일 때 개별 문서를 리스트로 반환할 지를 선택함. TRUE이면 개별 리스트로 반환하고, FALSE이면 하나의 문자 벡터로 반환함. 기본값은 TRUE
- user_dic
mecab-ko 형태소 분석기의 사용자 정의 사전 파일. 기본값은 NULL로 사용자 사전파일을 지정하지 않음. 시스템 사전인 "/usr/local/lib/mecab/dic/mecab-ko-dic"(Linux, Mac)를 보완하여 사용됨. 사용자 사전 파일은 mecab-dict-index 명령어로 생성되며, 확장자가 "dic"임.
- as_list
logical. 문서의 개수가 한 개일 때, 결과를 리스트로 반환할지의 여부를 선택함. TRUE일 경우에는 리스트 객체로, FALSE일 경우에는 문자 벡터로 결과를 반환함 tidytext 패키지와 함께 사용할 경우에는 TRUE를 사용하는 것이 좋음. 문서 개수가 1개인 경우, 즉 행(관측치)의 개수가 1개인 경우에 데이터프레임 연산에서의 오류를 방지하기 위한 목적의 인수임
Details
type 인수에 따라 토큰화되는 품사의 종류는 다음과 같다.:
"morpheme" : 모든 품사 토큰화
"noun" : 일반명사(NNG) 토큰화
"noun2" : 모든 명사 토큰화
"verb" : 동사 토큰화
"adj" : 형용사 토큰화
Mecab 형태소 분석기의 시스템 사전의 경로는 "/usr/local/lib/mecab/dic/mecab-ko-dic"이며, NIADic이 포팅되어 들어 있음. 그러나, "/usr/local/lib/mecab/dic/mecab-ko-dic2"에는 NIADic이 포함되어 있지 않음. 이것은 bitNLP 패키지에서는 참조하지 않음.
Examples
# \donttest{
## Mecab 형태소 분석
morpho_mecab("아버지가 방에 들어가신다.")
#> NNG NNG
#> "아버지" "방"
morpho_mecab("아버지가 방에 들어가신다.", type = "morpheme")
#> NNG JKS NNG JKB VV EP+EF SF
#> "아버지" "가" "방" "에" "들어가" "신다" "."
morpho_mecab("아버지가 방에 들어가신다.", type = "verb")
#> VV
#> "들어가"
dic_path <- system.file("dic", package = "bitNLP")
dic_file <- glue::glue("{dic_path}/buzz_dic.dic")
str <- "신혼부부나 주말부부는 놀이공원 자유이용권을 즐겨 구매합니다."
morpho_mecab(str)
#> NNG NNG NNG NNG NNG NNG NNG NNG NNG
#> "신혼" "부부" "주말" "부부" "놀이" "공원" "자유" "이용" "구매"
morpho_mecab(str, user_dic = dic_file)
#> NNG NNG NNG NNG NNG NNG
#> "신혼부부" "주말부부" "놀이" "공원" "자유이용권" "구매"
morpho_mecab(c("무궁화꽃이 피었습니다.", "나는 어제 올갱이국밥을 먹었다."))
#> [[1]]
#> NNG NNG
#> "무궁화" "꽃"
#>
#> [[2]]
#> NNG NNG
#> "올갱이" "국밥"
#>
morpho_mecab(c("무궁화꽃이 피었습니다.", "나는 어제 올갱이국밥을 먹었다."), indiv = FALSE)
#> NNG NNG NNG NNG
#> "무궁화" "꽃" "올갱이" "국밥"
# Using morpho_mecab with tidytext package
library(dplyr)
nho_noun_indiv <- president_speech %>%
filter(president %in% "노무현") %>%
filter(stringr::str_detect(category, "^외교")) %>%
tidytext::unnest_tokens(
out = "speech_noun",
input = "doc",
token = morpho_mecab
)
nho_noun_indiv
#> # A tibble: 44,316 × 7
#> id president category type title date speech_noun
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 우정
#> 2 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 해
#> 3 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 개막식
#> 4 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 축하
#> 5 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 행사
#> 6 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 축하
#> 7 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 참석
#> 8 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 모두
#> 9 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 환영
#> 10 DOC_0001 노무현 외교-통상 치사 "2005 한일 우정의 해 개막식 축사 "… 2005… 감사
#> # ℹ 44,306 more rows
# }