자연어처리 이해 기본¶
학습 목표¶
- 자연어 처리가 무엇인지 이해한다.
- 자연어 처리가 어디에 활용되는지 이해한다.
- 자연어 처리의 기본 용어를 이해한다.
- 간단한 샘플 코드를 통해 이해해 본다.
01. 자연어 처리(NLP)란 무엇인가?¶
- 자연어 처리(NLP)는 인간의 언어를 컴퓨터가 이해하고 처리할 수 있도록 하는 기술
- NLP는 텍스트와 음성 데이터를 분석하고, 이를 통해 의미를 추출하거나 새로운 텍스트를 생성하는 다양한 방법을 포함.
02. 자연어 처리가 어디에 활용될까?¶
- 챗봇: 고객 서비스에서 사용되는 자동 응답 시스템.
- 번역: 언어 간의 자동 번역 시스템.
- 음성 인식: 음성을 텍스트로 변환하는 기술.
- 감정 분석: 텍스트에서 감정을 추출하여 긍정적, 부정적 감정을 분석.
- 텍스트 요약: 긴 문서를 자동으로 요약.
03. 자연어 처리의 기본 용어를 이해¶
- 토큰화(Tokenization): 텍스트를 작은 단위로 분할.
- 형태소 분석(Morphological Analysis): 단어를 형태소로 분리하고 품사 태깅.
- 어간 추출(Stem Extraction): 단어의 기본 형태 추출.
- 품사 태깅(POS Tagging): 단어의 품사를 식별.
- 명명된 개체 인식(NER): 인물, 장소 등의 명명된 개체 식별.
- 단어 임베딩(Word Embedding): 단어를 벡터로 변환하여 의미를 수치적으로 표현.
04. 간단한 샘플 코드를 통한 이해¶
- 개발 환경 : jupyter notebook
- 파이썬 3.10.14
- nltk : 3.9.1
In [11]:
import nltk
print(nltk.__version__)
3.9.1
In [1]:
!pip install nltk
Requirement already satisfied: nltk in c:\users\colab\.conda\envs\textai\lib\site-packages (3.9.1) Requirement already satisfied: click in c:\users\colab\.conda\envs\textai\lib\site-packages (from nltk) (8.1.7) Requirement already satisfied: joblib in c:\users\colab\.conda\envs\textai\lib\site-packages (from nltk) (1.4.2) Requirement already satisfied: regex>=2021.8.3 in c:\users\colab\.conda\envs\textai\lib\site-packages (from nltk) (2024.7.24) Requirement already satisfied: tqdm in c:\users\colab\.conda\envs\textai\lib\site-packages (from nltk) (4.66.5) Requirement already satisfied: colorama in c:\users\colab\.conda\envs\textai\lib\site-packages (from click->nltk) (0.4.6)
파이썬 코드 작성¶
- NLTK는 무엇인가?
- NLTK (Natural Language Toolkit)는 Python 프로그래밍 언어를 위한 자연어 처리 라이브러리.
- NLTK는 다양한 자연어 처리 작업을 수행할 수 있도록 도와주는 도구와 데이터셋을 포함하고 있음.
- NLTK는 교육 및 연구 목적으로 주로 사용되고 있음.
주요기능¶
- 토큰화(Tokenization)
- 형태소 분석(Morphological Analysis)
- 품사 태깅(Part-of-Speech Tagging) : 품사 태깅
- 명명된 개체 인식(Named Entity Recognition) : 텍스트에서 인물, 장소, 조직 등 명명된 개체 인식 기능 제공
- 구문 분석(Parsing) : 문장의 구문 구조를 분석하는 기능 제공
- 텍스트 분류(Text Classification) : 텍스트 분류 기능 제공
- 코퍼스 및 사전(Corpus and Lexical Resources) : 다양한 언어 지원과 말뭉치 제공.
In [7]:
import nltk
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag
# NLTK 데이터 다운로드 (처음 한 번만 실행)
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
[nltk_data] Downloading package punkt to [nltk_data] C:\Users\colab\AppData\Roaming\nltk_data... [nltk_data] Package punkt is already up-to-date! [nltk_data] Downloading package averaged_perceptron_tagger to [nltk_data] C:\Users\colab\AppData\Roaming\nltk_data... [nltk_data] Package averaged_perceptron_tagger is already up-to- [nltk_data] date!
Out[7]:
True
In [8]:
# 예제 문장
sentence = "Natural language processing makes it possible for computers to understand human language."
# 토큰화 (Tokenization)
tokens = word_tokenize(sentence)
print("토큰화 결과:", tokens)
# 품사 태깅 (POS Tagging)
tagged_tokens = pos_tag(tokens)
print("품사 태깅 결과:", tagged_tokens)
토큰화 결과: ['Natural', 'language', 'processing', 'makes', 'it', 'possible', 'for', 'computers', 'to', 'understand', 'human', 'language', '.'] 품사 태깅 결과: [('Natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('makes', 'VBZ'), ('it', 'PRP'), ('possible', 'JJ'), ('for', 'IN'), ('computers', 'NNS'), ('to', 'TO'), ('understand', 'VB'), ('human', 'JJ'), ('language', 'NN'), ('.', '.')]
In [ ]: