문장에 대한 어간 추출과 어간 복원
이번 연습 문제에서는 다음 문장을 문서로 사용해 보겠습니다:
"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_doc과 complete_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