[python] NLTK를 사용해 어구 추출을 수행하는 방법은 무엇인가요?

NLTK(자연어 처리 툴킷)는 파이썬에서 자연어 처리 작업을 수행하는 데 사용되는 강력한 도구입니다. NLTK를 사용하면 문장에서 어구를 추출하는 것도 매우 간단합니다. 아래는 NLTK를 사용하여 어구 추출을 수행하는 예제 코드입니다.

먼저, NLTK를 설치해야 합니다. 파이썬 프로젝트에서 터미널 또는 명령 프롬프트를 열고 다음 명령을 실행하여 NLTK를 설치합니다.

pip install nltk

이제 아래의 코드를 사용하여 어구 추출을 수행할 수 있습니다.

import nltk

from nltk.tokenize import word_tokenize


def extract_phrases(text):
    tokens = word_tokenize(text)  # 문장을 단어로 토큰화합니다.
    tagged_tokens = nltk.pos_tag(tokens)  # 단어에 품사 태그를 부착합니다.

    grammar = "NounPhrase: {<DT>?<JJ>*<NN>}"  # 명사구 문법을 정의합니다.
    cp = nltk.RegexpParser(grammar)  # 정규 표현식 파서를 생성합니다.

    phrases = []
    tree = cp.parse(tagged_tokens)  # 구문 분석 트리를 생성합니다.
    for subtree in tree.subtrees(filter=lambda t: t.label() == 'NounPhrase'):
        phrases.append(' '.join(word for word, tag in subtree.leaves()))

    return phrases


# 텍스트 입력
text = "파이썬은 간단하고 강력한 프로그래밍 언어입니다."
phrases = extract_phrases(text)

print(phrases)

위의 코드에서 extract_phrases 함수는 주어진 텍스트에서 명사구를 추출합니다. 입력된 텍스트에서 문장을 단어로 토큰화한 후, 각 단어에 품사 태그를 부착합니다.

그다음, 정의한 명사구 문법을 사용하여 구문 분석 트리를 생성합니다. 이 트리에서 NounPhrase 라벨을 갖는 서브트리들을 찾아 모든 단어를 추출하고, 추출된 단어들을 공백으로 구분해 어구로 형성합니다.

마지막으로, 어구 리스트가 반환되며, 이를 출력합니다.

실행 결과는 다음과 같을 것입니다:

['파이썬', '간단하고 강력한 프로그래밍 언어']

이렇게 NLTK를 사용하여 어구 추출을 수행할 수 있습니다. 더 자세한 내용은 NLTK 공식 문서를 참조하십시오.