0%

[머신러닝] 파이썬 머신러닝 #7 - 문서 요약하기(TextRank Summariser)

Summary by Nick Youngson CC BY-SA 3.0 ImageCreator

안녕하세요. @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를 업그레이드하였다.

1




스팀잇 글 가져오기


원사마님이 작성한 글 "[ 하생시 ] 18.10.23 하루를 생각하는 시간"으로 요약 테스트해보았다. 참고로 내가 작성한 글은 내용 대부분이 개발 코드라서 문서 요약이 되질 않았기 때문이다.

아래와 같이 URL에서 글 본문 내용을 가져온다. newspaper 모듈을 사용하면 블로그 또는 기사에서 제목과 본문 내용을 쉽게 가져올 수 있다.

1
2
3
4
5
6
7
8
from gensim.summarization.summarizer import summarize
from newspaper import Article

url = ' https://steemit.com/dclick/@wonsama/-181023--1540308198584'
news = Article(url, language='ko')
news.download()
news.parse()
print(news.text)

1




문서 요약하기


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))

1


그다음은 출력할 단어 수를 50개로 설정하고 요약해본다.

1
print(summarize(news.text, word_count=50))

2


마지막으로 문장 비율을 설정하고 요약해보았다.

1
print(summarize(news.text, ratio=0.1))

3


결론은, 원사마님이 작성한 글의 핵심 문장은 "요즘은 개발은 안하고 맨날 제안서만 쓴다."입니다.


여기까지 읽어주셔서 감사합니다.



참고 블로그


이전글


Sponsored ( Powered by dclick )
[데이빗 이야기 #2] 만든 사람은 있지만, 손대는 사람은 없는 완전 자동화된 암호화폐 거래소 데이빗(DAYBIT) 사용후기

안녕하세요, 디온(@donekim)입니다. 지난 번 포스팅에 이어서 오늘은 데이빗 거래소의 사…

logo

이 글은 스팀 기반 광고 플랫폼
dclick 에 의해 작성 되었습니다.


Originally posted on http://steemit.com