n-gram 토큰화 및 n-gram 토큰화 집계.

get_ngrams(
  x,
  n = 2L,
  token = c("noun", "noun2", "word"),
  type = c("raw", "table"),
  user_dic = NULL
)

Arguments

x

character. n-gram 토큰화에 사용할 document.

n

integer. n-gram 토큰화에서의 n. 기본값은 2.

token

character. n-gram 토큰화에서 토큰의 종류. "noun", "noun2", "word" 에서 선택. 기본값은 "noun"로 일반명사, "noun2"는 명사, "word"는 단어를 의미함.

type

character. 반환하는 결과물의 종류. "raw"는 토큰화된 n-gram 자체를 반환하며, "table"은 토큰화된 n-gram 집계 정보를 반환.

user_dic

mecab-ko 형태소 분석기의 사용자 정의 사전 파일. 기본값은 NULL로 사용자 사전파일을 지정하지 않음.

Value

n-gram 토큰화된 character 벡터, 혹은 n-gram 집계 정보를 담은 데이터 프레임

n-gram 집계 정보

n-gram 집계 정보를 담은 데이터 프레임 변수는 다음과 같음.:

  • ngrams : n-gram 토큰. character.

  • freq : n-gram 토큰의 도수. integer.

  • prop : n-gram 토큰의 상대도수. numeric.

Examples

# \donttest{
str <- "신혼부부나 주말부부는 놀이공원 자유이용권을 즐겨 구매합니다."

# bi-gram
get_ngrams(str)
#> [1] "신혼 부부" "부부 주말" "주말 부부" "부부 놀이" "놀이 공원" "공원 자유"
#> [7] "자유 이용" "이용 구매"

# tri-gram
get_ngrams(str, n = 3)
#> [1] "신혼 부부 주말" "부부 주말 부부" "주말 부부 놀이" "부부 놀이 공원"
#> [5] "놀이 공원 자유" "공원 자유 이용" "자유 이용 구매"

# 워드(띄어쓰기) 기반 토큰화
get_ngrams(str, token = "word")
#> Error: argument 'str' must be a non-empty vector of strings

# 집계정보
get_ngrams(str, type = "table")
#>       ngrams freq  prop
#> 1 부부 놀이     1 0.125
#> 2 신혼 부부     1 0.125
#> 3 주말 부부     1 0.125
#> 4 부부 주말     1 0.125
#> 5 놀이 공원     1 0.125
#> 6 이용 구매     1 0.125
#> 7 공원 자유     1 0.125
#> 8 자유 이용     1 0.125

# 사용자 정의 사전 사용
dic_path <- system.file("dic", package = "bitNLP")
dic_file <- glue::glue("{dic_path}/buzz_dic.dic")
get_ngrams(str, user_dic = dic_file)
#> [1] "신혼부부 주말부부" "주말부부 놀이"     "놀이 공원"        
#> [4] "공원 자유이용권"   "자유이용권 구매"  

# }