
안녕하세요. @anpigon입니다.
파이썬을 이용하여 문서를 쉽게 요약할 수 있는 기능을 소개합니다. 이 글은 summarization.summarizer – TextRank Summariser을 참고하여 작성한 글입니다.
gensim, newspaper 모듈 설치
문서를 요약하는데 사용할 gensim와 newspaper 모듈을 설치한다. newspaper 모듈은 파이썬 버전에 따라 설치방법이 다르다. 파이썬2에서는 pip install newspaper
로 설치 한다. 그리고 파이썬3에서는 pip install newspaper3k
로 설치한다. 나는 파이썬3를 사용하고 있으므로 아래와 같이 설치하였다.
1 | $ pip install gensim newspaper3k |
추가로 모듈를 설치하는데 pip 업그레이드가 필요하다는 메시지가 나와서 아래와 같이 pip를 업그레이드하였다.
스팀잇 글 가져오기
원사마님이 작성한 글 "[ 하생시 ] 18.10.23 하루를 생각하는 시간"으로 요약 테스트해보았다. 참고로 내가 작성한 글은 내용 대부분이 개발 코드라서 문서 요약이 되질 않았기 때문이다.
아래와 같이 URL에서 글 본문 내용을 가져온다. newspaper 모듈을 사용하면 블로그 또는 기사에서 제목과 본문 내용을 쉽게 가져올 수 있다.
1 | from gensim.summarization.summarizer import summarize |
문서 요약하기
summarize
에 입력 가능한 매개 변수는 다음과 같다.
- text (str) – 요약할 테스트.
- ratio (float, optional) – 요약에 대해 선택할 원본 텍스트의 문장 수 비율을 결정하는 0~1 사이 숫자.
- word_count (int or None, optional) – 출력에 포함할 단어 수. 두 파라미터가 모두 제공되는 경우 ratio는 무시된다.
- split (bool, optional) – True면 문장 list가 반환된다. False는 조인(join)된 문자열이 반환된다.
우선 추가 옵션 없이 글 내용을 요약해보자.
1 | print(summarize(news.text)) |
그다음은 출력할 단어 수를 50개로 설정하고 요약해본다.
1 | print(summarize(news.text, word_count=50)) |
마지막으로 문장 비율을 설정하고 요약해보았다.
1 | print(summarize(news.text, ratio=0.1)) |
결론은, 원사마님이 작성한 글의 핵심 문장은 "요즘은 개발은 안하고 맨날 제안서만 쓴다."입니다.
여기까지 읽어주셔서 감사합니다.
참고 블로그
- “Textrank for summarizing text” by Jan Wijffels
- “TextRank를 이용한 문서요약” by Excelsior-JH
- “‘쉽게 설명한’ 구글의 페이지 랭크 알고리즘” by 조성문
이전글