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

in #dclick6 years ago (edited)


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를 사용하고 있으므로 아래와 같이 설치하였다.

$ pip install gensim newspaper3k


추가로 모듈를 설치하는데 pip 업그레이드가 필요하다는 메시지가 나와서 아래와 같이 pip를 업그레이드하였다.

1




스팀잇 글 가져오기


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

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

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)된 문자열이 반환된다.


우선 추가 옵션 없이 글 내용을 요약해보자.

print(summarize(news.text))

1


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

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

2


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

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

3


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


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



참고 블로그


이전글


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

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

logo

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

Sort:  

너무 신기합니다! 좋은 정보 감사합니다!

저도 요약이 잘되는걸 보고 신기했습니다.
이걸 이용해서 재미난걸 만들어 볼수 있을것 같습니다.
응원 감사합니다.

텍스트 처리 모듈이 참 많이 나오죵ㅎㅎ

한국어 NPL 연구하시는 분들 덕분에 파이썬으로 한글 테스트 처리가 정말 쉬워졌습니다. tanky님도 좋은 모듈을 알고 있으면 소개 좀 해주세요.ㅋ

라즈베리파이에서 파이썬 깔고 간단히 테스트 해본 기억이 나네요.

벌써 이 모듈을 사용해보셨군요.
저는 TextRank가지고 고생하다가 이걸 발견하고 바로 해결했어요.ㅋ
파이썬에는 좋은 모듈이 많은 것 같습니다.

재밌는 기능이네요 ㅎ

이 모듈을 이용하면 자동 요약 서비스를 개발해 볼 수 있을 것 같습니다.ㅋ

Congratulations @thrufore ! you got 1.150 SBD 1st prize of holdem round 334.see more info at https://steemit.com/@steemit.holdem

JOIN HOLDEM ( needs 0.100 SBD )

개발은 안하고 제안서만쓴다..ㅋㅋ
전 일은 안하고 스팀잇만한다 ㅋㅋㅋ

뽀돌님은 스팀잇 직원 아닌가요?ㅋ

보클하고 가요~~
좋은하루 하세여~~

보클~ 보클~ 감사합니다.

유용하면서 간단하네요?!! 나중에 파이쏜 공부할때 살펴보겠습니다^^

제가 이렇게 정리한 글들이 나중에 파이썬 공부할때 도움이 되었으면 좋겠습니다.^^

잘 봤습니다.

^^ 보클하고 갑니다~

보클!, 보팅 앤 디클릭~ 감사합니다.

멋있네 멋있어...ㅜㅜ 언제 시작하나....ㅜㅜ

칭찬 감사합니다. 저는 뉴비 정착에 힘쓰시는 jisoooh님이 더 멋있습니다.ㅎ 그리고 코딩은 마음 놓고 있다가 하고 싶을 때 시작하세요~😀

파이썬으로 정말 다양한걸 할 수 있네요.
능력자십니다~
(보클 꾹~~)

머신러닝을 덕분에 파이썬의 매력에 푹 빠졌습니다. 파이썬을 공부할 생각은 별로 없었는데 파이썬에 재미난 모듈이 많아서 하나씩 사용해 보려고 합니다.ㅋ