이제 뉴스 데이터로 돌아가, 다음 코드를 사용해 조사, 어미, 구두점을 제거하겠다.
okt_clean() 함수로 텍스트를 받아 품사를 태깅한 뒤 반복문(if)으로 조사, 어미, 구두점이 있는지를 확인하고 그 외 토큰을 리스트에 넣어 준다. 반복문이 종료되면 리스트 형태의 토큰을 문자열 함수인 join을 사용해 공백 문자로 연결해 준다.
형태소 분석기로 조사, 어미, 구두점을 제거해 주면 같은 단어이지만 다른 단어로 토큰화하는 것을 방지해 희소 행렬을 줄일 수 있다. stem=True를 통한 어간 추출도 형태소 전처리와 마찬가지로 희소 행렬을 줄여 준다. 전처리 함수를 구현해 모든 텍스트에 일괄 적용해 줄 수 있다.
okt.pos(text, stem=True)로 품사를 태깅한 뒤 태깅한 품사 중 조사, 어미, 구두점을 제거하고 다시 문장을 합쳐 준다. 이때 stem=True는 어간 추출 기능을 한다. 어간이란 활용어에서 변하지 않는 부분을 말한다(사전적 의미). 따라서 어간 추출은 어형이 변형된 단어에서 접사 등을 제거하고 그 단어의 어간을 분리하는 것이다. 예를 들어 ‘합니다’, ‘하는’, ‘할’, ‘하고’, ‘한다’를 어간 추출하면 원형인 ‘하-’가 된다(기본형: 하다). 이렇게 어간을 분리하면 같은 의미지만 변형해서 사용된 단어를 같은 단어로 인식하기 때문에 희소 행렬을 조금 줄일 수 있다.