NLP
어간 추출(Stemming)과 표제어 추출(Lemmatization)
택스트 전처리의 목적은 말뭉치(Corpus)로부터 복잡성을 줄이는 것이다. 어간 추출(Stemming)과 표제어 추출(Lemmatization) 역시 말뭉치의 복잡성을 줄여주는 텍스트 정규화 기법이다. 어간 추출과 표제어 추출은 단어의 원형을 찾는것을 말한다. 예를들어 played, plays, playing으로부터 play를 찾는 것이다. 표제어 추출(Lemmatization) 표제어 추출은 단어들이 다른 형태를 가지더라도, 그 뿌리 단어를 찾아가서 단어의 개수를 줄일 수 있는지 판단한다. 예를 들어서 am, are, is는 서로 다른 스펠링이지만 그 뿌리 단어는 be라고 볼 수 있고, 이 단어들의 표제어는 be이다. 형태소는 두 가지 종류가 있다. 1) 어간(stem) : 단어의 의미를 담고 있는 단..
토큰화 Tokenization
말뭉치 또는 코퍼스(Corpus)는 자연언어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합이다. 주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업을 토큰화(tokenization)라고 부릅니다. 토큰의 단위가 상황에 따라 다르지만, 보통 의미있는 단위로 토큰을 정의합니다. 토큰화는 문장 형태의 데이터를 처리하기 위해 제일 처음 수행해야 하는 기본적인 작업이며, 주로 텍스트 전처리 과정에서 사용된다. 토큰화를 어떻게 하느냐에 따라 성능에 차이가 난다. 예를들어 "This is a pen" 이라는 말뭉치(Corpus)가 있을 때 토큰화를 하면 "this", "is", "a", "pen"으로 나뉜다. 한국어 문장을 예를 들면, "아버지가 방에 들어가신다" 를 토큰화..
불용어(Stop word) 제거
갖고 있는 데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰을 제거하는 작업이 필요하다. 불용어(Stop word)는 분석에 큰 의미가 없는 단어를 지칭한다. 큰 의미가 없다라는 것은 자주 등장하지만 분석을 하는 것에 있어서는 큰 도움이 되지 않는 단어들을 말한다. 예를 들면, I, my, me, over, 조사, 접미사 같은 단어들은 문장에서는 자주 등장하지만 실제 의미 분석을 하는데는 의미가 없는 경우가 있다. 이런 불용어는 텍스트에 빈번하게 나타나기 때문에 중요한 단어로 인지될 수 있다. 하지만 실질적으로는 중요한 단어가 아니므로 사전에 제거하는 과정을 거쳐야 한다. 불용어 확인하기 - NLTK 모듈 활용 import nltk nltk.download('stopwords..

형태소 분석기
한국어 문장을 분석하려면 𝒕𝒐𝒌𝒆𝒏𝒊𝒛𝒊𝒏𝒈작업을 제일 먼저 수행해야 한다. 이때 토큰 단위를 어떻게 정의하느냐에 따라 자연어 처리 성능에 영향을 준다. 일단 형태소(𝒎𝒐𝒓𝒑𝒉𝒆𝒎𝒆)를 토큰 단위로 사용하고자 한다. 형태소는 일정한 의미가 있는 가장 작은 말의 단위이다. 즉, 의미가 더 이상 쪼개지지 않는 단어를 의미한다. 형태소를 토큰 단위로 사용할 경우 단어와 품사 정보를 같이 활용할 수 있기 때문에 효과적이다. 영어의 경우 단어의 변화가 크지 않고, 띄어쓰기로 단어를 구분하기 때문에 공백을 기준으로 𝒕𝒐𝒌𝒆𝒏𝒊𝒛𝒊𝒏𝒈을 수행해도 큰 문제 없다. 하지만 한국어는 명사와 조사를 띄어 쓰지 않고, 용언에 따라 여러 가지 어미가 붙기 때문에 띄어쓰기만으로는 𝒕𝒐𝒌𝒆𝒏𝒊𝒛𝒊𝒏𝒈 할 수 없다. 따라서 한국어의..