인공지능/자연어 처리

자연어 처리 복습 2 - NLP Task, token, 데이터 전처리

이게될까 2024. 8. 27. 00:53
728x90
728x90

NLU - 자연어 이해 = 기계가 자연어의 의미를 이해하는 것으로 의도나 감정, 질문 등을 사람처럼 이해하도록 돕는 것이다.

NLG - 자연어 생성 = 자연어를 생성하도록 돕는 기술로 자연스럽고, 정확한 정보를 포함하는 문장을 생성한다.

 

NLP Task

text classification - 사전에 정의된 카테고리 할당 

정보 추출 

문장 변환 및 생성

품사 분류 및 관계

토픽, 키워드 추출

자연어 추론

information retrieval, document ranking - 두 문서나 문장 간 유사도를 결정하는 작업에서 시작 

Text Similarity Task - Query text에 대해 document DB에서 가장 유사한 문서를 반환하는 것을 목표로 하는 retrival 혹은 ranking 작업으로 확장될 수 있다.
Query text와 Document DB 내 모든 문서 쌍에 대해 유사도를 계산한 후 가장 높은 유사도를 가지는 문서를 retrieval하는 방식

Text-to-Text Generation Task - 텍스트를 입력받아 목표를 달성하는 텍스트 생성 

Machine Translation Task - 소스 언어의 텍스트 의미를 유지한 채 타겟 언어의 텍스트로 번역하는 작업

Text Summarization Task - 여러 문서들의 의미를 유지한 채 더 짧은 버전으로 요약. 추출요약과 추상 요악으로 나뉜다.

NER Task - 두 개의 의미론 적인 엔티티 간의 관계를 식별하는 작업 
ex) jun ha - 사람, AIV - 동아리, iphone - 가전제품

Relation Extraction Task - 텍스트에서 의미론적인 관계를 추출하는 작업. 주체(Subject)와 대상(Object)

Keyword Extraction Task - 키워드 식별 작업

Topic Modeling Task - 문서 모음을 추상화하는데 기본이 되는 주제를 식별하는 작업

Text Reasoning - 주어진 지식이나 상식을 활용하여 일련의 추론 작업을 수행 

Fake News Detection, Hate Speech Detection - 허위 혹은 오해의 소지가 있는 정보를 감지하고 필터링

 

NLP 진행 순서

문제 정의 > 데이터 수집 및 분석 > 데이터 전처리 > 모델링 > 모델 학습 및 평가 

정량 평가 - 수치로 평가하는 방법 : 미묘한 차이에 따라 결과가 바뀌는 경우가 많다.

정성 평가 - 사람이 기준에 따라 평가하는 방법 : 평가 비용이 비싸고, 시간이 오래 걸린다.

 

데이터 정제, 정규화

정제 - 노이즈 제거
불용어 처리 - 빈번하게 발생하여 의미를 부여하기 어려운 단어 : 단어 사전을 효율적으로 관리하며 유의미한 정보를 가지게 한다.
불필요한 태그 및 특수 문자 제거 
코퍼스 내 등장 빈도가 적은 단어 제거 - threshold를 넘기는 단어만 남기는 방식으로 정제할 수 있다.

정규화 - 표현 방법이 다른 단어들을 통합시켜 같은 단어로 만듦
ex) 대문자 -> 소문자, 이모지 통일 
어간 추출과 표제어 추출 - 표기가 다른 단어들을 하나의 단어로 일반화 시켜 단어 수를 줄이는 것 
대소문자 통함 - 조심스럽게 하여 사람 이름과, 회사 이름, 나라 등 대문자는 지켜줘야 한다.

 

tokenization

토큰 - 자연어 내에서 의미를 가지는 최소 단위!

토큰화 - 단락과 문장을 보다 쉽게 의미를 할당할 수 있는 더 작은 단위로 분할

띄어쓰기 단위로 간단하게 할 수 있지만 모델의 자연어 이해 능력 향상과, 효율적인 자연어 표현을 위해 다양하게 진행한다.

문장 토큰화 - 토큰 단위가 문장
.?!와 같은 부호를 기준으로 잘라내면 DR. Ph.D 와 같은 단어에서 걸리기 때문에 예외가 생기고, 다량의 자연어 텍스트 코퍼스를 이해하기에 적절한 분절 방식이 아니다.

단어 토큰화 - 보편적으로 생각해볼 수 있는 토큰 방식
기본적으로는 공백을 구분자로 사용하지만, 한국어는 어근과 접사에 의해 단어의 기능이 결정되는 교착어이기 때문에 성능이 좋지 않다.
그리고 OOV(단어 사전에 없는 단어), 새로운 단어 추가시마다 사전 크기의 증가가 있다.

문자 토큰화 - 한글과 같은 경우 자음 19개와 모음 21개가 토큰화 되어 총 40개의 글자에 따라 분리된다.
문장 하나 생성하는데 너무 많은 추론 필요
단어 사전은 작지만 예측 시간에 문제가 생길 수 있다.

서브 워드 토큰화 - 토큰 단위를 n-gram characters로 정의하고, 해당 기준에 따라 텍스트를 분절 ex) BPE
섬세하게 잘 진행하지 못하면 애매한 토큰화만 남는다.

 

https://yoonschallenge.tistory.com/196

 

한국어 데이터 전처리 - 서브워드 토큰화 (BPE 활용)

목표 - 자연어처리에서 많이 사용되는 서브워드 토큰화 방식 및 BPE 알고리즘에 대해 알 수 있다. 문장 토큰화 - 다양성이 너무 늘어난다. 문자 토큰화 - 하나의 짧은 문장을 만드는데도 추론이 엄

yoonschallenge.tistory.com

728x90