시작하기무료로 시작하기

n-그램 바꾸기

지금까지는 단어 하나만을 사용해 TDM과 DTM을 만들었습니다. 기본값은 유니그램이지만, 두 개 이상의 단어로 된 토큰에 집중할 수도 있어요. 이렇게 하면 유용한 구를 추출해 추가 인사이트를 얻거나, Machine Learning 알고리즘을 위한 예측 속성을 개선하는 데 도움이 됩니다.

아래 함수는 RWeka 패키지를 사용해 트라이그램(세 단어) 토큰을 만듭니다. minmax가 모두 3으로 설정되어 있어요.

tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 3, max = 3))
}

그런 다음 사용자 정의한 tokenizer() 함수를 추가 매개변수로 TermDocumentMatrix 또는 DocumentTermMatrix 함수에 전달할 수 있습니다:

tdm <- TermDocumentMatrix(
  corpus, 
  control = list(tokenize = tokenizer)
)

이 연습은 강의의 일부입니다

R로 배우는 Bag-of-Words 텍스트 마이닝

강의 보기

연습 안내

corpus가 샤르도네 트윗으로 이전과 같이 전처리되어 있습니다. 결과 객체 text_corp가 작업 공간에 준비되어 있어요.

  • 위와 같은 방식으로 2단어 바이그램을 생성하는 tokenizer 함수를 만드세요.
  • tokenizer() 함수를 사용하지 않고 text_corp에 대해 DocumentTermMatrix()를 호출해 unigram_dtm을 만드세요.
  • 방금 만든 tokenizer()를 사용해 text_corp에 대해 DocumentTermMatrix()를 호출하여 bigram_dtm을 만드세요.
  • unigram_dtmbigram_dtm을 확인하세요. 어떤 객체가 더 많은 용어를 갖고 있나요?

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Make tokenizer function 
___ <- function(x) {
  ___(___, ___(___, ___))
}

# Create unigram_dtm
___ <- ___(___)

# Create bigram_dtm
___ <- ___(
  ___,
  ___
)

# Print unigram_dtm
___

# Print bigram_dtm
___
코드 편집 및 실행