n-그램 바꾸기
지금까지는 단어 하나만을 사용해 TDM과 DTM을 만들었습니다. 기본값은 유니그램이지만, 두 개 이상의 단어로 된 토큰에 집중할 수도 있어요. 이렇게 하면 유용한 구를 추출해 추가 인사이트를 얻거나, Machine Learning 알고리즘을 위한 예측 속성을 개선하는 데 도움이 됩니다.
아래 함수는 RWeka 패키지를 사용해 트라이그램(세 단어) 토큰을 만듭니다. min과 max가 모두 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_dtm과bigram_dtm을 확인하세요. 어떤 객체가 더 많은 용어를 갖고 있나요?
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Make tokenizer function
___ <- function(x) {
___(___, ___(___, ___))
}
# Create unigram_dtm
___ <- ___(___)
# Create bigram_dtm
___ <- ___(
___,
___
)
# Print unigram_dtm
___
# Print bigram_dtm
___