Skip to content

Latest commit

 

History

History
53 lines (26 loc) · 2.45 KB

README_summarize.md

File metadata and controls

53 lines (26 loc) · 2.45 KB

Textrank_Summarize

TextRank 는 sentence graph를 구축한 뒤, Graph ranking algorithm인 PageRank를 이용하여 핵심 문장을 선택하고

이들을 이용하여 주어진 문서 집합내에서 대표할 수 있는 문장들을 선택하여 요약(summarization)한다.

자연어 처리에서 Textrank를 이용하여 요약하는 것을 extractive approaches라고 한다.

전처리  -> sent graph 생성 -> textrank 적용  => 결과(요약)

먼저 입력 입력형식은 "기사본문 + 기사제목" 으로 구성된 string이다. 이를 문장 단위로 분리하고, 명사만을 추출하며 전처리를 한다.

다음으로, Tf-idf cosine similarity를 사용하여 sent graph를 형성한다.

Tf-idf는 빈도수에 초점을 둔 것이 아닌 중요한 특징에 가중치를 부여한다.

따라서 tf-idf vectorize하여 각 문장은 아래의 그림과 같이 STM(Sentence Term Matrix)형태로 표현되며 각 문장의 단어는 tf-idf로 표현된다.

tf-idf(stm)

이때, 문장 간 유사도를 측정하기 위하여 Cosine similarity 가 이용되는데, TextRank는 아래와 같은 문장 간 유사도 척도를 제안한다.

두 문장에 공통으로 등장한 단어의 개수를 각 문장의 단어 개수의 log 값의 합으로 나눈 것이다.

cosine

Reference: https://lovit.github.io/nlp/2019/04/30/textrank/

PageRank 공식

pagerank공식

위 repository는 preprocessing, textrank_keyword, textrank_summarize 를 개발하면서 사용된 test repository이다.

Keyword => https://github.com/ossteam8/LDA-TextRank-keyword

Summary => https://github.com/ossteam8/K-news-keyword-summarizer/tree/main/summary

[standalone code]

textrank

summarizer_v2.py

preprocessing.ipynb