(어제 써놓고 까먹고 업로드를 못해서 오늘올린다.)
텍스트랭크(TextRank
)가 있다. 단점은 추출적 요약은 이미 존재하는 문장이나 단어구로만 구성하므로 모델의 언어 표현 능력이 제한된다.seq2seq
를 사용한다. 단점은 지도학습이기 때문에 훈련하기 위해 원문 뿐만 아니라 실제 요약문 데이터도 있어야 한다.컨텍스트 벡터(context vector)
라고 한다. 입력문장의 정보가 context vector로 모두 압축되면 이를 디코더로 전송한다. 디코더는 컨텍스트 벡터를 받아서 순차적으로 출력한다.<sos>
가 들어간다. 가 입력되면, 다음에 등장할 확률이 높은 단어를 예측한다. 디코더는 이런 식으로 기본저그올 다으멩 올 단어를 예측하고, 그 예측한 단어를 다음 시점의 RNN셀의 입력으로 넣는 행위를 반복하는데 이것을 문장의 끝을 의미하는 <eos>
가 다음 단어로 예측 될 때까지 반복한다.컨텍스트 벡터
와 <sos> 원문문장
을 입력 받았을 때, 요약문 <eos>
가 나와야 된다고 정답을 알려주며 훈련한다.컨텍스트 벡터
와 <sos>
만을 입력으로 받은 후에 다음에 올 단어를 예측하고, 그 단어를 다음 시점의 RNN셀의 입력올 넣는 행위를 반복합니다.pandas
를 이용해 데이터프레임 형태로 저장한다. 이때 필요한건 원문과 요약이니까 2개만 남겨놓고 지우자. data = data[['Text','Summary']]
data.drop_duplicates(subset=['Text'], inplace=True)
data.dropna(axis=0, inplace=True)
출처 : 딥 러닝을 이용한 자연어 처리 입문
어느정도 정리를 해봤지만, seq2seq가 가진 한계가 존재하고, BERT가 비교적 최신기술이기 때문에 BERT를 채택했다.
SKTBrain의 KoBERT => 채택예정.