실습 설명
등장 빈도와 단어의 길이를 입력받고, 입력받은 수 이하인 토큰을 정제하는 함수 clean_by_freq()와 clean_by_len()을 만들어 주세요.
● clean_by_freq()는 단어 토큰화된 코퍼스(tokenized_words)와 정제할 등장 빈도 기준(cut_off_count)을 파라미터로 받습니다.
● clean_by_len()은 단어 토큰화 된 코퍼스(tokenized_words)와 정제할 단어 길이 기준(cut_off_length)을 파라미터로 받습니다.
● 두 함수 모두 정제 후 남은 단어 토큰 리스트를 결과로 반환합니다.
● 실제로 만든 함수가 잘 동작하는지 확인하기 위한 실행 코드도 완성해 주세요. clean_by_freq()는 파라미터로 단어 토큰화 된 리스트와 cut_off_count 값으로 2를 넣어주시고, clean_by_len()은 파라미터로 clean_by_freq()의 결과와 cut_off_length 값 2를 추가해 주세요.
main_cleaning.py
import nltk
from nltk.tokenize import word_tokenize
from collections import Counter
from text import TEXT
nltk.download('punkt')
corpus = TEXT
tokenized_words = word_tokenize(corpus)
def clean_by_freq(tokenized_words, cut_off_count):
vocab = Counter(tokenized_words)
# 빈도수가 cut_off_count 이하인 단어를 제거하는 코드를 작성해 주세요
uncommon_words = [key for key, value in vocab.items() if value <= cut_off_count]
cleaned_words = [word for word in tokenized_words if word not in uncommon_words]
return cleaned_words
def clean_by_len(tokenized_words, cut_off_length):
cleaned_words = []
for word in tokenized_words:
# 길이가 cut_off_length 이하인 단어 제거하는 코드를 작성해주세요.
if len(word) > cut_off_length:
cleaned_words.append(word)
return cleaned_words
# 조건에 맞게 함수 호출
clean_by_freq = clean_by_freq(tokenized_words, 2)
cleaned_words = clean_by_len(clean_by_freq, 2)
cleaned_words
실행결과
출처 코드잇
'Data Analysis > Natural Language Processing(NLP)' 카테고리의 다른 글
불용어 제거 실습 (0) | 2023.06.08 |
---|---|
불용어(Stopwords) (0) | 2023.06.08 |
정제(Cleaning) (2) | 2023.06.06 |
단어 토큰화 실습 (0) | 2023.06.06 |
단어 토큰화(Word Tokenization) (0) | 2023.06.06 |