Gensim을 활용하여 텍스트 데이터 전처리 및 정제를 위한 어간 추출 방법 알아보기

텍스트 데이터의 전처리는 자연어 처리 작업에서 매우 중요한 단계입니다. 이 단계에서는 텍스트 데이터를 정제하고 의미 있는 정보를 추출하는 과정을 거치게 됩니다. 어간 추출은 텍스트 데이터의 단어들을 어간 형태로 바꾸어 통일성을 부여하는 방법 중 하나입니다. 이번 포스트에서는 Gensim 라이브러리를 활용하여 텍스트 데이터의 전처리와 어간 추출을 어떻게 수행하는지 알아보겠습니다.

Gensim이란?

Gensim은 Python에서 자연어 처리 작업을 수행하기 위해 주로 사용되는 오픈 소스 라이브러리입니다. Gensim을 사용하면 토픽 모델링, 문서 유사도 측정, 단어 임베딩 등 다양한 자연어 처리 작업을 수행할 수 있습니다.

텍스트 데이터 전처리

텍스트 데이터의 전처리는 필요한 경우 특수 문자 제거, 대소문자 통합, 불용어 제거 등의 단계를 포함합니다. Gensim에서는 SimplePreprocess 메서드를 사용하여 간단한 전처리를 수행할 수 있습니다. 다음은 예시 코드입니다.

from gensim.utils import simple_preprocess

# 텍스트 데이터 전처리
def preprocess_text(text):
    # 특수 문자 제거
    text = text.replace('\n', '')
    text = text.replace('\r', '')
    text = text.replace('\t', '')
    # 소문자 변환
    text = text.lower()
    # 단어 토큰화
    words = simple_preprocess(text)
    return words

# 텍스트 데이터 예시
text = "이 텍스트 데이터는 전처리를 위한 예시입니다."

# 전처리 수행
preprocessed_text = preprocess_text(text)

print(preprocessed_text)

위 코드에서는 preprocess_text 함수를 정의하여 전처리를 수행합니다. 특수 문자를 제거하고 소문자로 변환한 후 단어를 토큰화하여 반환합니다. 위 예시 코드에서는 다음과 같은 출력 결과를 얻을 수 있습니다.

['이', '텍스트', '데이터는', '전처리를', '위한', '예시입니다']

어간 추출

어간 추출은 단어의 기본 형태인 어간을 추출하는 과정입니다. 어간 추출은 단어의 다양한 활용 형태를 하나로 통일시켜 주어진 텍스트 데이터에서 의미가 같은 단어들을 하나로 취급할 수 있도록 도와줍니다. Gensim에서는 PorterStemmer를 사용하여 어간 추출을 수행할 수 있습니다. 다음은 예시 코드입니다.

from gensim.parsing.porter import PorterStemmer

# 어간 추출
def stem_words(words):
    stemmer = PorterStemmer()
    stemmed_words = []
    for word in words:
        stemmed_word = stemmer.stem(word)
        stemmed_words.append(stemmed_word)
    return stemmed_words

# 어간 추출 예시
words = ['walking', 'walked', 'walks', 'runner', 'running']

# 어간 추출 수행
stemmed_words = stem_words(words)

print(stemmed_words)

위 코드에서는 stem_words 함수를 정의하여 어간 추출을 수행합니다. PorterStemmer를 사용하여 단어의 어간을 추출한 후 반환합니다. 위 예시 코드에서는 다음과 같은 출력 결과를 얻을 수 있습니다.

['walk', 'walk', 'walk', 'runner', 'run']

결론

Gensim을 사용하여 텍스트 데이터의 전처리와 어간 추출을 수행할 수 있습니다. 전처리를 통해 텍스트 데이터를 정제하고 어간 추출을 통해 단어들을 어간 형태로 통일시킬 수 있습니다. 이러한 전처리와 어간 추출은 자연어 처리 작업에서의 성능을 향상시키는 데 도움이 됩니다.

참고 자료

#NaturalLanguageProcessing #Gensim