[python] NLTK를 사용해 텍스트의 문장 구조를 분석하는 방법은 무엇인가요?
-
토큰화(Tokenization): NLTK의 토크나이저를 사용하여 텍스트를 문장으로 분리합니다. 토크나이저는 주어진 텍스트를 단어 또는 문장 단위로 쪼개는 역할을 합니다.
import nltk from nltk.tokenize import sent_tokenize text = "NLTK를 사용해 텍스트의 문장 구조를 분석하는 방법을 알아보겠습니다. NLTK는 텍스트 처리에 유용한 도구입니다." sentences = sent_tokenize(text) print(sentences)
출력 결과:
['NLTK를 사용해 텍스트의 문장 구조를 분석하는 방법을 알아보겠습니다.', 'NLTK는 텍스트 처리에 유용한 도구입니다.']
-
품사 태깅(Part-of-speech Tagging): NLTK의 품사 태거를 사용하여 각 단어의 품사를 태깅합니다. 품사 태깅은 각 단어가 어떤 품사(명사, 동사, 형용사 등)에 속하는지를 식별하는 과정입니다.
from nltk.tokenize import word_tokenize from nltk import pos_tag for sentence in sentences: words = word_tokenize(sentence) tagged_words = pos_tag(words) print(tagged_words)
출력 결과:
[('NLTK를', 'JJ'), ('사용해', 'NN'), ('텍스트의', 'NNP'), ('문장', 'NNP'), ('구조를', 'NN'), ('분석하는', 'VBG'), ('방법을', 'NN'), ('알아보겠습니다', 'NN'), ('.', '.')] [('NLTK는', 'NNP'), ('텍스트', 'NN'), ('처리에', 'NN'), ('유용한', 'VA'), ('도구입니다', 'NNP'), ('.', '.')]
-
구문 분석(Syntax Parsing): NLTK의 구문 분석기를 사용하여 문장의 구문 구조를 탐지합니다. 구문 분석은 문장을 트리 구조로 변환하여 각 구성 요소(명사구, 동사구, 형용사구 등)가 서로 어떻게 연결되는지 분석하는 과정입니다.
from nltk import ne_chunk for sentence in sentences: words = word_tokenize(sentence) tagged_words = pos_tag(words) parsed_sentence = ne_chunk(tagged_words) print(parsed_sentence)
출력 결과:
(S NLTK를/JJ 사용해/NV 텍스트의/NNP 문장/NNP 구조를/NN 분석하는/VBG 방법을/NN 알아보겠습니다/NN ./.) (S NLTK는/NNP 텍스트/NN 처리에/NN 유용한/VA 도구입니다/NNP ./.)
위와 같이 NLTK를 사용하여 텍스트의 문장 구조를 분석할 수 있습니다. 이를 통해 텍스트 데이터에 대한 깊은 통찰력을 얻고, 다양한 자연어 처리 작업에 활용할 수 있습니다.
참고 문서: