➊ split으로 문자열을 분리해 토큰 형태로 생성한다.
➋ 불용어 목록을 리스트로 만든다.
➌ 문서의 토큰이 불용어에 해당되지 않는 것을 리스트로 반환한다.
➍ 불용어를 제거했다면 다시 문장 하나로 합쳐 준다.
def remove_stopwords(text): tokens = text.split(' ') ————➊ stops = ['합니다', '하는', '할', '하고', '한다', '그리고', '입니다', '그 ', ' 등', '이런', ' 것 ', ' 및 ',' 제 ', ' 더 '] ————➋ meaningful_words = [w for w in tokens if not w in stops] ————➌ return ' '.join(meaningful_words) ————➍
불용어 선정이 모두 끝나면 map() 메서드로 위에서 만든 함수를 일괄 적용해 준다.
df["title"] = df["title"].map(remove_stopwords)
map() 메서드는 각 원소에 함수를 적용해, 새로운 Series 객체를 반환한다. 여기서는 remove_stopwords로 지정된 단어를 "title" 열의 각 원소에 적용해, 결과를 반환한 후 df["title"]에 대입했다.