1. 텍스트 요약(Text Summarization)
- 긴 길이의 문서(Document) 원문을 핵심 주제만으로 구성된 짧은 요약(Summary) 문장들로 변환하는 것
- 요약 전후에 정보 손실 발생이 최소화되어야 함(중요) ⇨ '정보 압축 과정'과 동일
- 원문의 문장을 추출하여 요약하는 방식
- ex) 네이버 뉴스의 요약봇(TextRank 알고리즘)
2) 추상적 요약(Abstractive Summarization)
- 원문에서 내용이 요약된 새로운 문장 생성
- 자연어 생성(Natural Language Generation, NLG)의 영역
- '어느 것이 핵심문장인지'를 판별한다는 점에서 문장 분류(Text Classification) 문제로 볼 수 있음
RNN은 학습 데이터의 길이가 길어질수록 먼 과거의 정보를 현재에 전달하기 어렵다는 '장기의존성(long term dependencies)' 문제가 있음. 이 문제를 해결하기 위해 LSTM과 GRU가 등장했지만, 이 둘도 부족해서 어텐션(Attention) 메커니즘이 등장함
2. 인공신경망으로 텍스트 요약 훈련시키기
📌목표 : seq2seq으로 추상적 요약(Abstractive Summarization)방식의 텍스트 요약기 만들기
3. 실습
- NLTK의 불용어(stopwords) 사용
- NLTK(Natural Language Toolkit) : 영어 기호, 통계, 자연어 처리를 위한 라이브러리
- tf.keras.callbacks.EarlyStopping : 특정 조건시, 학습 조기 종료 함수
Summa
패키지 : summarize 모듈을 제공