본문 바로가기
Data/자연어 처리

TextRank를 이용하여 핵심 문장 추출하기

by forestlim 2020. 12. 28.
728x90
반응형

기사와 같은 긴 문장을 요약하기 위해 TextRank를 이용하였다. 

textrank를 사용하기 위해 참고한 곳이다. 

github.com/lovit/textrank

 

lovit/textrank

Implementation TextRank and related utils. Contribute to lovit/textrank development by creating an account on GitHub.

github.com

TextRank는 키워드 추출 기능핵심 문장 추출 기능, 두 가지를 제공한다. TextRank에서는 명사, 동사, 형용사와 같은 단어만 단어 그래프를 만드는 데 이용. 모든 종류의 단어를 이용하면 'a','the' 와 같은 단어들이 다른 단어들과 압도적인 co-occurrence 를 지니기 때문이다. 

 

TextRank를 이용하여 코로나 관련 뉴스 기사를 요약해보았다. 

아래는 요약하기 전 원문 기사이다. 

topk=3으로 지정하여 총 3개의 문장으로 기사를 요약한다. 

여기에서 min_sim은 문장 간 최소 유사도를 말한다. min_sim=0.3 으로 지정하였기 때문에 문장 간 유사도가 0.3보다 작은 경우에는 edge를 연결하지 않는다. 

요약한 결과는 이렇게 세문장으로 출력되게 된다. 

 

KoNLPy의 Komoran을 이용하여 토크나이징과 핵심문장을 한 번에 추출 

위의 예시랑 비교해보았을 때 문장의 순서만 바뀌었지 추출된 문장은 동일한 것을 알 수 있다. 

 

마지막으로, 띄어쓰기 기준으로 나뉘어진 어절에서 3음절의 subwords를 잘라내는 토크나이저 방법이다. 

위의 두 개 예시와 비교하여 조금 달라진 것을 알 수 있다. 마지막 문장이 위의 두 개 예시와 비교해보았을 때 어색해 보인다. 여러 방법을 시도하여 매끄럽게 요약된 방법을 사용하면 괜찮을 것 같다. 객관적인 판단 지표가 없기 때문이다. 

 

이처럼, 문서 요약의 특성 상 적절한 품질 평가 척도가 없어 객관적으로 판단하기 어렵다는 단점이 있으나 뉴스 문서의 특성 상 제일 중요한 문장이 맨 앞에 나오기 때문에 앞에 문장일수록 가중치를 높게 주는 것도 한 가지 방법이 될 수 있다. 

728x90
반응형

댓글