728x90
반응형
다음과 같이 문장 요약 코드가 있습니다.
얼마나 요약을 하는지 단어수 Count로 측정 보겠습니다.
문장 요약 코드 입니다.
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%)보다 크게 떨어졌다
이제 단어수를 Count 해 보겠습니다.
split 함수를 사용합니다. default로 ' ' 공백을 단어를 구분합니다.
정확한 단어 Count라고 할 수 없을 수 있습니다. 하지만 간략한 Count로 간단히 사용할 수 있습니다.
word_cnt = len(your_text.split())
tot_summary = ''
summaries: List[str] = lexrank.probe()
for summary in summaries:
# print(summary)
tot_summary += summary
summary_cnt = len(tot_summary.split())
print('원본 단어 수 [',word_cnt, '] -> 요약 단어 수 [',summary_cnt,']')
원본 단어 수 [ 68 ] -> 요약 단어 수 [ 19 ]
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 함수 실행시간 측정 하기 (0) | 2022.08.12 |
---|---|
[파이썬] Decorator(@) 간단 사용 (0) | 2022.08.12 |
[파이썬] 문장 요약 하기 (lexrankr) (0) | 2022.08.12 |
[파이썬] 로또 회차별 날짜 구하기 (0) | 2022.08.12 |
[파이썬] 날짜 (구하기, 지정하기, 더하기, 요일 찾기) (0) | 2022.08.12 |
댓글