파이썬 SpaCy를 활용하여 텍스트의 중복 문장 분석(Duplicate Sentence Analysis)

파이썬 SpaCy는 자연어 처리 작업을 쉽게 할 수 있도록 도와주는 강력한 라이브러리입니다. 이번 포스트에서는 SpaCy를 사용하여 텍스트에서 중복된 문장을 분석하는 방법에 대해 알아보겠습니다. 중복 문장 분석은 다양한 응용 분야에서 유용하게 사용될 수 있습니다. 예를 들어, 웹 크롤링을 통해 수집한 많은 문서에서 중복된 내용을 찾아내어 중복 데이터를 제거하는 작업이나, 자동 요약 시스템에서 중복된 문장을 제외하여 요약문을 생성하는 작업 등에 활용할 수 있습니다.

필요한 라이브러리 설치

중복 문장 분석을 위해 우선 SpaCy를 설치해야 합니다. 다음의 명령어를 사용하여 SpaCy를 설치해보세요.

pip install spacy

또한, SpaCy에서 제공하는 한국어 모델도 설치해야 합니다.

pip install spacy-transformers
python -m spacy download ko

중복 문장 분석하기

이제 중복 문장 분석에 필요한 준비가 모두 끝났습니다. 다음은 SpaCy를 사용하여 중복 문장을 분석하는 예제 코드입니다. 코드를 실행하기 전에 분석할 텍스트를 변수에 저장해야 합니다. 아래의 예제는 text라는 변수에 텍스트를 저장한 후, 중복 문장 분석을 수행합니다.

import spacy

# SpaCy 라이브러리의 한국어 모델을 로드합니다.
nlp = spacy.load("ko")

# 중복 문장을 분석할 텍스트를 변수에 저장합니다.
text = """
안녕하세요. 반갑습니다. 오늘 날씨가 좋네요.
안녕하세요. 내일은 비가 올 것 같아요. 오늘은 덥네요.
"""

# 문장 단위로 텍스트를 분리합니다.
doc = nlp(text)
sentences = list(doc.sents)

# 중복 문장을 찾아서 출력합니다.
duplicates = set()
for i in range(len(sentences)):
    for j in range(i + 1, len(sentences)):
        if sentences[i].text == sentences[j].text:
            duplicates.add(sentences[i].text)
            
print("중복 문장:")
for sentence in duplicates:
    print(sentence)

위의 코드를 실행하면 중복된 문장이 출력됩니다.

결론

파이썬 SpaCy를 사용하면 텍스트의 중복 문장을 간단히 분석할 수 있습니다. 이를 통해 중복된 내용을 제거하거나 요약문을 생성하는 등 다양한 응용이 가능합니다. SpaCy는 다양한 자연어 처리 작업에 활용할 수 있는 강력한 도구이므로, 앞으로의 자연어 처리 프로젝트에서도 많은 도움이 될 것입니다.

#NaturalLanguageProcessing #NLP