Text Data
텍스트 데이터는 일반적으로 단어, 문장 또는 자유 흐름 텍스트의 단락을 나타낼 수 있는 문서로 구성된다. 텍스트 데이터의 고유한 비정형화 (정연하게 포맷된 데이터 열이 없음)와 노이즈가 많은 특성으로 인해 머신러닝 방법이 원시 텍스트 데이터에 직접 작용하는 것이 더 어렵다. 비정형 데이터의 텍스트 데이터 속 정보를 합리적이고 효율적으로 축약하여 숫자, 즉 정형 데이터로 변환하는 것이 하나의 목적이다.
Text Mining
텍스트 분석과 유사한 텍스트 데이터 마이닝이라고도 하는 텍스트 마이닝은 텍스트에서 고품질 정보를 추출하는 프로세스이다. 여기에는 "다른 문서 자원에서 정보를 자동으로 추출하여 이전에 알려지지 않은 새로운 정보를 컴퓨터가 발견하는 것"이 포함된다. 어떤 방식으로 텍스트 속의 유의미한 패턴을 포착하여 효과적으로 축약하는지의 문제이다. 머신러닝, 통계학에 대한 배경 지식, 자연어 처리 기술 (Natural Language Processing ; NLP)에 대한 배경 지식 필요하다.
Text Preprocessing
1. 토큰화 (tokenization) 2. 정제 및 정규화(cleaning and normalization) 3. 불용어 처리 (stopword) 4. 어간 (stemming) 및 표제어 (lemmatization) 추출 5. 정규 표현식을 이용한 전처리 (regular expression) |
토큰화 (Tokenization)
언어학의 음운론, 형태론에 해당하는 단계로써 텍스트를 단어나 형태소 등의 단위로 쪼개는 작업이다.
어떤 기준으로 토큰화를 수행할 것인가?
|
정제 및 정규화 (Cleaning and Normalization)
텍스트 데이터에 있는 노이즈 (noise)를 제거하는 작업으로써 “하나의 단어가 하나의 표현이 되도록” 텍스트를 전처리하는 과정을 의미하며, 분류에 따라 뒤에 설명할 불용어 처리를 이 단계에 포함시키는 연구자들도 있다.
|
불용어 처리 (Removing Stopwords)
관사, 전치사 등 텍스트 의미 분석에 큰 의미가 없는 단어를 제거하는 과정이다. Document-Term matrix를 구성할 때 불필요한 리소스 낭비를 줄이는 목적이 있다. 토픽 모형에서는 단어의 동시 출현 정보를 기반으로 문서의 토픽 구조를 추정하게 되는데, 이때 의미적으로 불필요한 단어들이 방해가 될 수 있으므로 충분히 제거하는 것이 좋다. 어떤 단어들을 불용어로써 제거하는지에 따라 텍스트 마이닝의 최종 결과가 영향을 받을 수 있다. 따라서, 특정 단어가 연구 주제와 데이터 분석에 있어 정말로 아무런 의미를 가지지 않는 단어인지 신중하게 판단할 필요가 있다. Python 패키지에서 기본 불용어 세트를 제공하며, 연구자가 필요에 따라 불용어를 추가할 수 있다.
어간 (Stemming) 및 표제어 (Lemmatization) 추출
단어의 의미를 담고 있는 핵심 부분을 추출하는 과정이다. 같은 어간으로부터 파생된 단어의 경우, 단어의 표기가 달라도 의미는 거의 같을것이다. 단어의 수를 줄여 불필요한 리소스 낭비를 방지하는 한편, 굳이 구분할 이유가 없는 거의 같은 의미의 단어를 다른 벡터 등으로 할당하는 것 또한 방지할 수 있다.
형태소 (morpheme)는 단어의 의미를 담은 가장 작은 단위를 말하며, 어간 추출 또는 표제어 추출에서 단어를 형태소 단위로 추출한다.
어간 추출
|
표제어 추출 |
|
|
정규 표현식 (Regular Expression)
문자의 공통된 패턴을 이용해 텍스트 데이터를 정제할 정규적인 규칙을 부여한다.
규칙 | 설명 |
\\ | backslash |
\d
|
모든 숫자 (digits) |
\D | 숫자를 제외한 모든 문자, [^0-9]와 동일한 의미 |
\s | 모든 공백 (space), [ \t\n\r\f\v]와 동일한 의미 |
\S | 공백을 제외한 모든 문자, [^ \t\n\r\f\v]와 동일한 의미 |
\w | 문자 또는 숫자, [a-zA-Z0-9]와 동일한 의미 |
\W | 문자 또는 숫자가 아닌 문자, [^a-zA-Z0-9]와 동일한 의미 |
'Data-driven Methodology > DS (Data Science)' 카테고리의 다른 글
[Data Science] Text Preprocessing (0) | 2022.09.29 |
---|---|
[Data Science] Text Data (2) (0) | 2022.09.29 |
[Data Science] 회귀 모델 (0) | 2022.09.29 |
[Data Science] 빅 데이터 (Big Data) (0) | 2022.09.28 |
[Data Science] 의사결정 트리 (Decision Tree) (3) (0) | 2022.09.27 |