[python] NLTK를 사용해 문서로부터 단락을 추출하는 방법은 무엇인가요?

먼저, 필요한 모듈을 임포트해야 합니다. 다음과 같이 nltk 모듈과 punkt 패키지를 임포트합니다.

import nltk
nltk.download('punkt')

다음으로, 문서를 로드하고 텍스트로 변환해야 합니다. 예를 들어, text_document라는 변수에 로드한 문서가 있다고 가정해보겠습니다.

text = text_document.read()

그 다음, 문장 토크나이저를 사용하여 문장 단위로 텍스트를 분할합니다. 문장 토크나이저는 마침표, 느낌표, 물음표 등의 구두점을 기준으로 문장을 나누는 역할을 합니다.

from nltk.tokenize import sent_tokenize

sentences = sent_tokenize(text)

이제, 분리된 문장들 중에서 단락을 추출할 방법을 선택해야 합니다. 단락들은 빈 줄로 구분되거나, 문장 구조나 단어의 흐름에 의해 나타날 수 있습니다. 예를 들어, 두 번째 방법을 선택한다면, 다음과 같이 단락들을 추출할 수 있습니다.

paragraphs = []
current_paragraph = []

for sentence in sentences:
    if sentence.strip():  # 비어있지 않은 문장인 경우
        current_paragraph.append(sentence)
    else:  # 빈 줄을 만나면 단락이 끝남
        if current_paragraph:  # 비어있지 않은 단락인 경우
            paragraphs.append(' '.join(current_paragraph))
            current_paragraph = []

# 마지막 단락을 추가
if current_paragraph:
    paragraphs.append(' '.join(current_paragraph))

이제 paragraphs 리스트에는 추출된 단락들이 포함되어 있습니다. 이를 활용하여 추가적인 분석이나 처리를 수행할 수 있습니다.

참고: 이 예제에서는 문장 토크나이저로 sent_tokenize 함수를 사용했지만, NLTK에는 다른 토크나이저도 제공됩니다. 해당 텍스트에 적절한 토크나이저를 선택하여 사용하면 됩니다.

이상으로, NLTK를 사용하여 문서로부터 단락을 추출하는 방법을 설명했습니다. 추가적인 정보는 NLTK 공식 문서를 참조하시기 바랍니다.