본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 데이터 전처리하기: 텍스트 데이터 처리

by 포탈메이커 2023. 7. 16.

파이썬으로 데이터 전처리하기: 텍스트 데이터 처리

텍스트 데이터는 다양한 형태로 제공되는데, 이를 파이썬을 사용하여 전처리할 수 있다. 텍스트 데이터를 전처리하는 과정은 모델 학습에 매우 중요하며, 데이터의 품질을 향상시키고 모델 성능을 향상시키는 데 도움을 준다.

1. 텍스트 데이터 불러오기

파이썬에서 텍스트 데이터를 처리하기 위해 먼저 데이터를 불러와야 한다. 일반적으로 텍스트 데이터는 텍스트 파일 또는 데이터베이스에 저장되어 있는 형태로 제공된다. 다음은 텍스트 파일을 불러오는 예시이다.

python filename = "data.txt" with open(filename, 'r') as f: data = f.read()

위 코드에서는 data.txt 파일을 읽기 모드('r')로 열어서 f 변수에 저장하고, f.read() 메서드를 사용하여 파일 내용을 읽어와 data 변수에 저장한다.

2. 특수 문자 제거하기

텍스트 데이터를 전처리하는 과정에서 가장 일반적으로 하는 작업은 특수 문자 제거이다. 특수 문자는 모델 학습에 불필요한 정보를 제공할 수 있으며, 모델 성능을 저하시킬 수도 있다.

```python import re

cleaned_data = re.sub(r'\W', ' ', data) ```

위 코드에서는 re.sub() 메서드를 사용하여 정규 표현식을 이용해 특수 문자(\W)를 공백(' ')으로 대체한다.

3. 대소문자 통일하기

텍스트 데이터의 대소문자는 의미가 없고, 동일한 단어로 처리되어야 한다. 따라서 대소문자를 통일하는 전처리 작업이 필요하다.

python cleaned_data = cleaned_data.lower()

위 코드에서는 lower() 메서드를 사용하여 텍스트 데이터의 모든 문자를 소문자로 변환한다.

4. 토큰화하기

텍스트 데이터는 단어의 집합이며, 각각의 단어를 분리하여 처리해야 한다. 이를 토큰화라고 한다. 파이썬의 내장 모듈인 nltk를 사용하여 텍스트 데이터를 토큰화할 수 있다.

```python import nltk from nltk.tokenize import word_tokenize

tokens = wordtokenize(cleaneddata) ```

위 코드에서는 word_tokenize() 함수를 사용하여 텍스트 데이터를 단어 단위로 분리하고, tokens 변수에 저장한다.

5. 불용어 제거하기

불용어란 모델 학습에 큰 영향을 주지 않는 단어들을 말한다. 예를 들어 'a', 'the', 'is'와 같은 단어는 모델 학습에 큰 도움이 되지 않으며, 오히려 모델의 복잡성을 증가시킬 수 있다. 따라서 불용어를 제거하는 것이 좋다.

```python from nltk.corpus import stopwords

stopwords = set(stopwords.words('english')) filteredtokens = [word for word in tokens if word not in stop_words] ```

위 코드에서는 stopwords.words('english')를 사용하여 영어 불용어를 가져온 후, filtered_tokens 리스트에 불용어를 제거한 토큰을 저장한다.

6. 어간 추출하기

텍스트 데이터에서 단어의 어간을 추출하는 작업은 모델 학습에 도움을 줄 수 있다. 어간 추출은 단어를 원형으로 변환하는 작업이다. 파이썬의 nltk 패키지를 사용하여 어간 추출을 할 수 있다.

```python from nltk.stem import PorterStemmer

stemmer = PorterStemmer() stemmedtokens = [stemmer.stem(word) for word in filteredtokens] ```

위 코드에서는 PorterStemmer 클래스를 사용하여 어간을 추출한 후, stemmed_tokens 리스트에 저장한다.

결론

파이썬을 사용하여 텍스트 데이터를 전처리하면 모델 학습에 매우 유용한 텍스트 데이터로 변환할 수 있다. 특수 문자 제거, 대소문자 통일, 토큰화, 불용어 제거, 어간 추출과 같은 전처리 작업은 모델의 성능을 높일 수 있는 중요한 단계이다. 데이터 전처리를 통해 텍스트 데이터의 품질을 향상시킨 후 모델을 학습시켜 정확하고 유의미한 결과를 얻을 수 있다.