본문 바로가기
프로그램

[파이썬] 문장 요약 하기 (lexrankr)

by 오디세이99 2022. 8. 12.
728x90
반응형

한글 문장을 요약하는 코드입니다.

긴 문장을 짧게 요약하는 것은 많은 정보를 중요한 정보만 빠르게 인식할 수 있다는 측면에서 중요합니다.

또한 이것은 많은 데이터에서 정보를 파악한다는 측면도 있습니다.

사람은 긴 문장이나 대화 중에서 맥락을 파악하는데도 중요하죠.

lexrankr 패키지를 사용해 보겠습니다.

 

GitHub - theeluwin/lexrankr: LexRank for Korean.

 

GitHub - theeluwin/lexrankr: LexRank for Korean.

LexRank for Korean. Contribute to theeluwin/lexrankr development by creating an account on GitHub.

github.com

 

경제 기사의 일부를 얼마나 요약하는지 테스트해 봅니다.

from lexrankr import LexRank
from typing import List

class MyTokenizer:
    def __call__(self, text: str) -> List[str]:
        tokens: List[str] = text.split()
        return tokens

your_text = '시장은 인플레이션 지표에 주목하고 있다. \
            이날 나온 7월 PPI는 전월 대비 -0.5%(계절조정 기준)를 기록했다. \
            PPI의 감소는 2년 여 만의 처음이다. \
            1년 전과 비교하면 9.8%로 전월(11.3%)보다 크게 떨어졌다. \
            전날 나온 7월 CPI는 전년 대비 8.5%로 시장 예상치(8.5%)를 밑돌았고 \
            전월 대비로도 0.00%를 기록 월가 전망(0.2%)보다 낮았다. \
            모나 마하얀 에드워드 존스의 선임 투자 전략가는 \
            “시장은 어제와 오늘 나온 인플레이션 지표로 올바른 방향으로 \
            한 걸음 더 나아갔다는 것을 높이 평가하고 있다”고 전했다.'
    
    
# 1. init
mytokenizer: MyTokenizer = MyTokenizer()
lexrank: LexRank = LexRank(mytokenizer)

# 2. summarize (like, pre-computation)
lexrank.summarize(your_text)

# 3. probe (like, query-time)
summaries: List[str] = lexrank.probe()
for summary in summaries:
    print('- ' + summary)

 

- 시장은 인플레이션 지표에 주목하고 있다
- 이날 나온 7월 PPI는 전월 대비 -0.5%(계절조정 기준)를 기록했다
- 1년 전과 비교하면 9.8%로 전월(11.3%)보다 크게 떨어졌다

원문이 68 단어였는데, 19 단어로 요약했습니다. 내용을 봐도 비교적 적절하게 요약한 것으로 보입니다.

 

 

조금 더 긴 문장을 요약해 보겠습니다.

from lexrankr import LexRank
from typing import List

class MyTokenizer:
    def __call__(self, text: str) -> List[str]:
        tokens: List[str] = text.split()
        return tokens

your_text = '11일 코스피지수가 상승 마감했다. 미국의 7월 소비자물가(CPI) 상승률이 시장 예상치를 밑돌면서, 
\'인플레이션 정점’이 꺾일 것이라는 기대감이 투자 심리에 긍정적 영향을 미쳤다. \
뉴욕 3대지수가 모두 상승한 영향으로 국내에서 외국인과 기관이 쌍끌이 매수에 나서며 지수 상승을 견인했다. \
이날 코스피지수는 전 거래일보다 42.90포인트(1.73%) 오른 2523.78에 장을 마감했다. \
지수는 전장보다 26.86포인트(1.08%) 오른 2507.74로 개장해 상승 폭을 키웠다. \
유가증권시장에서 외국인과 기관은 각각 1337억원, 4578억원을 순매수했다. 개인은 6030억원을 순매도했다. \
코스피 시가총액(시총) 상위 10위권 종목은 일제히 상승 마감했다. 삼성전자(1.35%), LG에너지솔루션(3.06%), \
SK하이닉스(1.63%), 삼성바이오로직스(1.35%), LG화학(1.54%), NAVER(2.10%), 삼성SDI(1.14%), 현대차(0.26%), \
카카오(4.23%) 등은 대부분 오름세다. \
이날 지수 상승은 미국 노동부가 미국 7월 CPI가 지난해 같은 기간보다 8.5% 올랐다고 발표한 것이 영향을 준 것으로 보인다. \
상승폭이 전달(9.1%)과 시장 예상치(8.7%)를 밑돌면서 인플레이션(물가 상승)이 정점을 통과한 것이 아니냐는 분석이 나오자, \
미국 연방준비제도(Fed·연준)가 긴축 속도를 완화할 것이라는 기대감이 커졌다. \
지난밤 다우존스 30 산업평균지수는 전 거래일 대비 1.63% 상승한 3만3309.51에 마감했다. \
대형주 중심의 스탠더드앤드푸어스(S&P) 500 지수는 2.13% 오른 4210.24에 거래를 마쳤다. \
기술주 중심의 나스닥 지수는 2.89% 뛴 1만2854.81을 기록했다.  \
미국의 기술주도 올랐다. 마이크론(3.80%)과 엔비디아(5.92%), AMD(3.67%) 등 반도체 업종 상승에 필라델피아 반도체지수가 4.25% 올랐다. \
메타(5.82%), 디즈니(3.98%), 애플(2.62%), 마이크로소프트(2.43%) 등도 동반 상승 마감했다. \
한지영 키움증권 연구원은 “인플레이션이 피크아웃(정점 통과) 했을 가능성이 유력해 보인다”면서 \
“9월 자이언트스텝(75bp 인상) 가능성도 후퇴하는 등 위험 선호 심리에 우호적인 환경이 조성되고 있는 상황으로 \
당분간 주요국 증시는 주가 복원력이 이어지는 중립 이상의 흐름을 연출할 것”이라고 봤다. \
다만 미 연준이 당장 돌아서기 어렵다는 점을 감안하면 여전히 주식시장의 추세적 반등을 기대하기는 이르다는 의견도 있다. \
임혜윤 한화투자증권 연구원은 “물가 피크아웃은 주식시장에 우호적인 변화로 지표 발표 직후 시장의 반응은 합리적이라는 판단” \
이라면서도 “다만 여전히 물가 피크아웃만으로 주식시장의 추세적 반등을 기대하기는 이르다”고 판단했다. \
코스닥지수도 전날보다 11.88포인트(1.45%) 오른 832.15에 거래를 마쳤다. \
코스닥 시총 상위 종목 중에서는 셀트리온헬스케어(0.64%), HLB(0.11%), 카카오게임즈(5.28%), 셀트리온제약(0.56%), 천보(0.95%) 등은 \
상승 마감했다. 반면 에코프로비엠(-0.82%), 엘앤에프(-1.48%), 펄어비스(-1.49%), 에코프로##(-0.08%) 등은 하락 마감했다. \
서울 외환시장에서 미 달러에 대한 원화 환율은 전날보다 7.4원 내린 1303.0원으로 거래를 마쳤다.' \
    
    
# 1. init
mytokenizer: MyTokenizer = MyTokenizer()
lexrank: LexRank = LexRank(mytokenizer)

# 2. summarize (like, pre-computation)
lexrank.summarize(your_text)

# 3. probe (like, query-time)
summaries: List[str] = lexrank.probe()
for summary in summaries:
    print('- ' + summary)

 

- 11일 코스피지수가 상승 마감했다
- 미국의 7월 소비자물가(CPI) 상승률이 시장 예상치를 밑돌면서, 인플레이션 정점이 꺾일 것이라는 기대감이 투자 심리에 긍정적 영향을 미쳤다
- 이날 코스피지수는 전 거래일보다 42.90포인트(1.73%) 오른 2523.78에 장을 마감했다
- 유가증권시장에서 외국인과 기관은 각각 1337억원, 4578억원을 순매수했다
- 개인은 6030억원을 순매도했다
- 삼성전자(1.35%), LG에너지솔루션(3.06%), SK하이닉스(1.63%), 삼성바이오로직스(1.35%), LG화학(1.54%), NAVER(2.10%), 삼성SDI(1.14%), 현대차(0.26%), 카카오(4.23%) 등은 대부분 오름세다
- 이날 지수 상승은 미국 노동부가 미국 7월 CPI가 지난해 같은 기간보다 8.5% 올랐다고 발표한 것이 영향을 준 것으로 보인다
- 상승폭이 전달(9.1%)과 시장 예상치(8.7%)를 밑돌면서 인플레이션(물가 상승)이 정점을 통과한 것이 아니냐는 분석이 나오자, 미국 연방준비제도(Fed·연준)가 긴축 속도를 완화할 것이라는 기대감이 커졌다
- 대형주 중심의 스탠더드앤드푸어스(S&P) 500 지수는 2.13% 오른 4210.24에 거래를 마쳤다
- 미국의 기술주도 올랐다
- 마이크론(3.80%)과 엔비디아(5.92%), AMD(3.67%) 등 반도체 업종 상승에 필라델피아 반도체지수가 4.25% 올랐다
- 한지영 키움증권 연구원은 “인플레이션이 피크아웃(정점 통과) 했을 가능성이 유력해 보인다”면서 “9월 자이언트스텝(75bp 인상) 가능성도 후퇴하는 등 위험 선호 심리에 우호적인 환경이 조성되고 있는 상황으로 당분간 주요국 증시는 주가 복원력이 이어지는 중립 이상의 흐름을 연출할 것”이라고 봤다
- 다만 미 연준이 당장 돌아서기 어렵다는 점을 감안하면 여전히 주식시장의 추세적 반등을 기대하기는 이르다는 의견도 있다
- 임혜윤 한화투자증권 연구원은 “물가 피크아웃은 주식시장에 우호적인 변화로 지표 발표 직후 시장의 반응은 합리적이라는 판단” 이라면서도 “다만 여전히 물가 피크아웃만으로 주식시장의 추세적 반등을 기대하기는 이르다”고 판단했다
- 코스닥지수도 전날보다 11.88포인트(1.45%) 오른 832.15에 거래를 마쳤다

원문이 293 단어에서 187 단어로 요약했습니다.

많이 요약된 것은 아닌 것 같습니다. 그렇지만 원문을 보면 사람도 요약하기 어려운 내용이기는 합니다.

 

 

 

from lexrankr import LexRank
from typing import List

class MyTokenizer:
    def __call__(self, text: str) -> List[str]:
        tokens: List[str] = text.split()
        return tokens

your_text = '삼성전자가 갤럭시Z플립4 Z폴드4를 공개하자마자 통신업체들이 사전예약 분위기 띄우기에 나섰다. \
각종 경품을 내걸고 사전예약 알림을 신청하면 네이버페이, 카카오페이를 제공키로 한 점이 눈길을 끈다. \
통신 3사는 오는 16일부터 삼성전자 폴더블 스마트폰 Z플립4와 Z폴드4 사전예약을 시작한다. \
사전예약할 경우 공식 출시일인 26일보다 사흘 전인 23일부터 개통이 이뤄질 예정이다.\
사전예약은 다음주부터 진행되지만, 통신 3사는 갤럭시 폴더블 신제품 발표 이전부터 예약판매를 예고해왔다. \
사전예약 참여를 끌어내기 위해 알림을 신청하는 방식이다. \
SK텔레콤과 KT는 사전예약 알림을 신청하면 네이버페이 포인트를 지급키로 했고, LG유플러스는 카카오페이 포인트를 내걸었다. \
신제품 발표가 이뤄진 이후에는 본격적인 차별화 경쟁에 나섰다.\
우선 SK텔레콤은 사전예약 전날까지 원더래플 이벤트를 진행한다. 5일 동안 매일 명품 지갑과 미니 냉장고 등의 경품을 내걸고 \
예약판매 참여에 대한 관심을 높이는 전략이다. SK텔레콤은 또 Z플립4 산타마리아노벨라 아이리스 에디션을 내놓기로 했다. \
KT는 최근 편집숍 나이스웨더와 진행한 협업프로젝트의 한정판 상품을 사전예약 경품으로 제시했다. \
또 KT에서 갤럭시 폴더블 스마트폰을 구입한 적이 있는 소비자 대상의 전용 경품을 마련한 점도 눈길을 끈다.\
아울러 인기 드라마 ‘이상한 변호사 우영우’ IP를 활용한 우영우 에디션을 내놓기로 했다. \
LG유플러스는 샤넬과 프라다 등 명품 브랜드 제품을 사전예약 추첨 경품으로 내걸어 이목을 끌고 있다. \
또 메종키츠네 브랜드와 협업을 통한 스페셜 에디션을 사전예약 시작 당일 공개하기로 예고했다.\
사전예약 이전부터 시작된 통신 3사 간의 예약판매 구매자 모시기 경쟁은 16일부터 본격화될 전망이다.\
업계 한 관계자는 “폴더블 스마트폰 수요가 계속 커지는 만큼 상반기 플래그십 판매 때보다 가입자 유치 경쟁이 치열해질 수 있다”며\
“신규 5G 요금제가 마련된 만큼 예판 경품 외에 공시지원금 경쟁도 예의주시하는 분위기”라고 말했다.'
    
    
# 1. init
mytokenizer: MyTokenizer = MyTokenizer()
lexrank: LexRank = LexRank(mytokenizer)

# 2. summarize (like, pre-computation)
lexrank.summarize(your_text)

# 3. probe (like, query-time)
summaries: List[str] = lexrank.probe()
for summary in summaries:
    print('- ' + summary)

 

- 삼성전자가 갤럭시Z플립4 Z폴드4를 공개하자마자 통신업체들이 사전예약 분위기 띄우기에 나섰다
- 각종 경품을 내걸고 사전예약 알림을 신청하면 네이버페이, 카카오페이를 제공키로 한 점이 눈길을 끈다
- 통신 3사는 오는 16일부터 삼성전자 폴더블 스마트폰 Z플립4와 Z폴드4 사전예약을 시작한다
- 사전예약할 경우 공식 출시일인 26일보다 사흘 전인 23일부터 개통이 이뤄질 예정이다
- 5일 동안 매일 명품 지갑과 미니 냉장고 등의 경품을 내걸고 예약판매 참여에 대한 관심을 높이는 전략이다
- SK텔레콤은 또 Z플립4 산타마리아노벨라 아이리스 에디션을 내놓기로 했다
- 업계 한 관계자는 “폴더블 스마트폰 수요가 계속 커지는 만큼 상반기 플래그십 판매 때보다 가입자 유치 경쟁이 
  치열해질 수 있다”며“신규 5G 요금제가 마련된 만큼 예판 경품 외에 공시지원금 경쟁도 예의주시하는 분위기”라고 말했다

원문이 219 단어에서 93 단어로 요약했습니다. 비교적 많이 요약되었습니다.

728x90
반응형

댓글