자연어처리
자연어 처리란?
eadgnus
2023. 7. 24. 15:37
728x90
반응형
SMALL
# 1, 자연어
* 프로그래밍 언어와 같이 인공적으로 만든 기계 언어와 대비되는 단어로, 우리가 일상에서 주로 사용하는 언어
1-1. 자연어 처리
- 컴퓨터가 한국어나 영어와 같은 인간의 자연어를 읽고 이해할수 있도록 돕는 인공 지능의 한 분야
- 자연어에서 의미있는 정보를 추출하여 활용
- 기계가 자연어의 의미를 이해하게 함
- 기계가 사람의 언어로 소통할 수 있게 함
1-2. 자연어처리의 활용
- 문서분류, 스팸 처리와 같은 분류문제부터 검색어 추천과 같은 추천기능, 음성인식, 질의응답, 번역 등의 다양한 분야에서 사용되고 있음
- 반복 업무 자동화
- 검색 효율 향상 및 검색 엔진 최적화
- 대규모 문서 분석 및 정리
1-3. 용어 정리
- 자연어 이해(NLU)
- 자연어 처리의 하위집합
- 자연어이해 기술의 목적은 일반적으로 기계가 자연어의 실제 의미, 의도나 감정 질문등을 사람처럼 이해하도록 돕는 것
- 기계가 다양한 텍스트의 숨겨진 의미를 해석하려면 사전 처리 작업들과 추가 학습이 필요
- 텍스트에 명시적으로 나타나는 표지적인 정보 이외에 숨겨진 뜻을 파악
- 비 언어적인 신호(표정, 손짓, 몸짓)도 힌트로 사용될 수 있음
- 텍스트에서 의미있는 정보를 추출하는 기술과 상황을 통계적으로 학습시킬수 있는 다량의 데이터가 필요함
- 자연어 생성(NLG)
- 기계가 사람의 언어를 직접 생성하도록 돕는 기술
- NLG는 기계가 일련의 계산결과를 사람의 언어로 표현하도록 도와줌
2. 자연어 처리에 대한 다양한 Task
https://medium.com/nlplanet/two-minutes-nlp-33-important-nlp-tasks-explained-31e2caad2b1b
2-1. Text Classification
- 단어, 문장, 문서 단위의 텍스트에 사전 정의된 카테고리를 할당하는 작업
- Sentiment Analysis: 주어진 문장의 감정을 분류
- Abusing Detection: 주어진 문장의 어뷰징 여부를 판별
2-2. Information Retrieval and Document Ranking
- 두 문서나 문장간 유사도를 결정하는 작업
- Text Similarity Task는 document DB가 있을 때 query etxt에 대해서 가장 유사한 문서를 반환하는 것을 목표로 하는 retrieval 혹은 ranking작업으로 확장 될 수 있음
2-3. Text to Text Generation
- 텍스트를 입력으로 받아 목표를 달성하는 텍스트를 생성하는 작업
- 소스 언어의 텍스트를 의미를 유지한 채 타겟 언어의 텍스트로 번역하는 작업
- 여러 문서들의 의미를 유지한채 더짧은 버전의 텍스트로 요약하는 작업
- 포괄적인 관점에서 사람이 작성한 것 같은 텍스트를 생성하는 작업
2-4. Knowledge bases, Entities and Relations
- 지식 기반, 의미론적인 엔티티나 관계를 파악하는 자연어 처리 분야
2-5. Topics and Keywords
- 문서 혹은 문장 내의 주제나 키워드를 파악하는 자연어 처리 분야
2-6. chat bots
- 음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행 하도록 제작된 컴퓨터 프로그램
- 정해진 규칙에 맞춰서 메세지를 입력하면 발화를 출력하는 규칙 기반 챗봇부터, 문맥을 입력으로 받아 적절한 답변을 생성/검색하는 인공지능 기반 챗봇 등이 있음
2-7. Text Reasoning
- 주어진 지식이나 상식을 활용해서 일련의 추론작업을 수행하는 작업
- 간단한 수학 문제들을 푼다고 생각해보면 일련의 계산과정에 의해 답을 도출하게 되는데 그러한 일련의 계산 과정을 추런과정 이라고 함
2-8. Fake News and Hate Speech Dtection
- 허위 혹은 오해의 소지가 있는 정보가 포함된 텍스트를 감지하고 필터링 하는 작업
- 소셜 미디어 혹은 배포중인 제품에서 발생하는 어뷰징 콘텐츠들을 필터링 하기 위해 사용
2-9. Text to Data and vice-versa
- 자연어 처리 작업 단일 모달인 텍스트 관련 작업 뿐만 아니라, 입출력의 모달을 다양하게 활용할수 있음
- 음성을 텍스트(STT)로 혹은 텍스트를(TTS)로 변환하는 작업이나, 텍스트를 이미지(Text to Image)로 변환하는 작업 등이 실무 또는 학계에서 많이 논의됨
3. 자연어 처리 진행 순서
3-1. 문제정의
- 문제정의
- 문제에 대한 솔루션이 있어야 하고, 명확하고 구체적일수록 알맞는 자연어 처리 기술을 찾을
3-2. 데이터수집 및 분석
- 데이터 수집 및 분석
- 다양한 학습 데이터를 수집하기 위해 공개된 데이터셋 또는 웹 크롤링을 사용하여 수집
- https://paperswithcode.com/datasets?mod=texts&task=question-answering
- 웹 크롤링을 통해 데이터를 수집 했다면 EDA 및 분석 작업을 통해 데이터를 철저하게 검증해야 함
- 정답 레이블이 필요하다면 수집한 데이터에 레이블을 붙여야 함(M-Turk, SELECTSTART) 레이블을 자동화 시켜주는 플랫폼
3-3. 데이터 전처리
- 데이터 전처리
- 학습에 용이하게 데이터를 수정, 보완 하는작업을 전처리라고 함
- 자연어 처리 진행 과정에서 데이터가 차지하는 비중이 매우 높기 때문에 데이터를 수집하고 전처리 하는 과정이 매우 중요함
- 토큰화(Tokeniztion): 주어진 데이터셋에서 문장이나 문서들을 토큰이라 불리는 단위로 나누는 작업
- 정제(Cleaning): 갖고 있는 데이터 셋으로 부터 노이즈 데이터(이상치, 편향 등)를 제거하는 작업
- 정규화(normalization): 표현 방법이 다른 데이터들을 통합시켜서 같은 항목으로 합침
3-4. 모델링
- 모델링
- 자연어처리 작업은 대부분 단어 토큰들을 결과로 표현
- 언어 모델을 사용하며 문장 혹은 단어에 확률을 할당하여 컴퓨터가 처리할 수 있도록 함
- 자연어 처리 분야에는 많은 언어 모델들이 있음
- 어떤 언어 모델이 내가 풀고자 하는 문제에 가장 적합한지 확인
- 자연어 작업 처리에 특화된 세부적인 테크닉들이 다 다르므로 SOTA모델들을 확인해야함
- https://paperswithcode.com/area/natural-language-processing
3-5. 모델 학습 및 평가
- 모델 학습 및 평가
- 데이터가 준비되어 있고 모델 구조와 학습 방법을 결정했다면 언어 모델을 학습
- GPU 환경에서 진행
- 가용할 수 있는 인프라에 맞춰서 학습 파라미터를 설정하고 학습을 시작
- 학습 도중, 학습 종료후 평가
- 정량 평가, 정성 평가
3-6. 실무에서의 평가 진행 과정
- 준비된 데이터 셋을 Train/Valid/Test 셋으로 분할
- Train 데이터 셋으로 모델을 학습하고, 중간 중간 Valid 데이터셋으로 학습 진행상황을 체크(하이퍼 파라미터 수정, 데이터 모델 변경 등등)
- 문제없이 학습이 종료 되었다면, Test데이터 셋과 추가 정량 평가 데이터 셋들로 최종 모델에 대한 정량 성능 지표를 측정
- 정성 평가를 수행하기 위해 정성 평가 데이터셋을 만들고 평가자를 모집하여 블라인드 테스트를 진행
- 정량 평가 및 정성 평가 결과에 따라 모델 사용 여부를 결정
4. Huggingface
- 기계 학습을 사용하여 애플리케이션을 구축하기 위한 도구를 개발하는 회사
- 자연어 처리 애플리케이션용으로 구축된 Transformers 라이브러리와 사용자가 기계학습 모델 및 데이터셋을 공유할 수 있는 플랫폼으로 유명
- Huggingface에 업로드된 모델들은 기본적으로 PretrainedModel 클래스를 상속받고 있음
- https://huggingface.co/
728x90
반응형
LIST