시작하기무료로 시작하기

문장에 대한 어간 추출과 어간 복원

이번 연습 문제에서는 다음 문장을 문서로 사용해 보겠습니다:

"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."

이 문장에는 이전 연습에서 봤던 "complicate"의 세 가지 형태가 모두 들어 있습니다. 다른 점은, 이 문장에 stemDocument()를 호출해도 어떤 단어도 어간 추출되지 않은 채 그대로 반환된다는 점입니다. 콘솔에서 직접 시도해 보세요. 문장부호도 꼭 포함해야 합니다.

이유는 stemDocument()가 전체 문장을 하나의 단어로 처리하기 때문입니다. 즉, 우리 문서는 길이가 n(문서의 단어 수)이 아니라 길이 1인 문자 벡터입니다. 이 문제를 해결하려면 먼저 몇 가지 연습 문제에서 배운 removePunctuation() 함수로 문장부호를 제거합니다. 그런 다음 길이 1의 문자 벡터를 strsplit()으로 길이 n으로 나누고, unlist()를 적용한 뒤에 어간을 추출하고 다시 복원합니다.

헷갈리셨다면 걱정하지 마세요. 단계별로 함께 진행해 보겠습니다!

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

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

강의 보기

연습 안내

문서 text_data와 복원 딕셔너리 comp_dict가 작업 공간에 로드되어 있습니다.

  • removePunctuation()을 사용해 text_data의 문장부호를 제거하고, 결과를 rm_punc에 할당하세요.
  • rm_punc에 대해 strsplit()을 호출하고, split 인수는 " "로 설정하세요. 이를 unlist() 안에 중첩해 호출하고, 결과를 n_char_vec에 할당하세요.
  • stemDocument()를 다시 사용해 n_char_vec에 어간 추출을 수행하고, 결과를 stem_doc에 할당하세요.
  • stemCompletion()을 사용해 어간이 추출된 문서를 다시 복원하고, 기준 코퍼스로 comp_dict를 사용해 complete_doc을 만드세요.

stem_doccomplete_doc이 예상한 결과인가요?

실습형 인터랙티브 연습

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

# Remove punctuation: rm_punc
rm_punc <- ____

# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))

# Perform word stemming: stem_doc
stem_doc <- ___

# Print stem_doc
stem_doc

# Re-complete stemmed document: complete_doc
complete_doc <- ___

# Print complete_doc
complete_doc
코드 편집 및 실행