티스토리 뷰
문서 요약 필요한가?
하루에 몇 백장의 사건 서류를 읽어야하는 판사님들, 밤새가며 공부하는 학생들 뿐 아니라 항상 글을 읽으며 살아가는 사람들이 있습니다. 하지만 만약 서류나 글을 조금이라도 줄일 수 있다면 어떨까요.
만약 1000 줄 중 가장 중요한 1,2 줄만 바로 볼 수 있다면?
업무시간을 줄이는 데 보다 도움을 줄 수 있지 않을까요?
문서 요약 프로그램
자연어 처리 기술과 유사도 측정, 구글의 Page-Rank 검색 알고리즘을 사용하여 만든 문서 요약 프로그램 입니다. 수능 2018 년도 과학 지문을 예로 들어 한 단계씩 볼까요?
가장 먼저 문서에서 필요한 부분만 추출해내는 전처리 과정을 진행합니다. 일단 문서를 문장 단위로 끊어 볼까요.
일반적으로 문장의 핵심은 어미나 조사가 아닌 명사와 동사 입니다. 따라서 명사와 동사를 제외한 형태소를 모두 제거합니다.
문장의 특징을 나타내는 형태소들을 추출한 뒤에는 각 문장간의 유사도를 측정합니다. 유사도 측정 알고리즘은 자카드, TF-IDF, Levenshtein 등 여러가지가 있습니다만 이번 프로그램에서는 TF-IDF 를 사용합니다.
TF_IDF (Term Frequency - Inverse Document Frequency) 는 단어의 빈출도 (TF) 와 단어의 특수성 ( IDF ) 을 통해 문장 간 유사도를 계산합니다. TF 는 해당 단어의 빈출 정도를 나타내며, IDF 는 해당 단어가 얼마나 Unique 한지를 나타내는 지표입니다.
형태소를 추출한 문장간의 TF-IDF 를 계산해볼까요
4번과 5번의 관계가 2.46 으로 가장 유사하고 0번과 1번, 2번과 3번의 유사도가 0.1216 으로 가장 낮네요. 그럼 이 유사도와 구글의 검색 알고리즘으로 사용된 Page Rank 알고리즘을 엮어볼까요?
Page Rank 알고리즘의 핵심 가정은 여러 페이지가 참조할 경우 그 페이지는 중요한 페이지 라는 것 입니다. 그럼 이 아이디어를 그대로 문장에 적용한다면 여러 문장에서 참조할 경우 그 문장은 중요한 문장 이라는 것일 수 있겠죠?
Text Rank 알고리즘을 사용해서 수능 지문의 TF-IDF 유사도를 재해석 해보면 어떤 문장이 가장 중요하다고 나올까요?
마지막 문장이 가장 중요하다고 판단되네요. 실제로 읽어보아도 마지막 문장이 문제의 선지로 가장 나올법한 것 같습니다.
다른 글들도 과연 잘 찾아낼 수 있을까요?
기사에서도 그럴 듯하게 찾지만 가사 같은 경우는 후렴구를 찾아내는 기능을 합니다. 아무래도 후렴구는 반복되는 경우가 많아 상대적으로 유사도가 높게 측정되기 때문이겠죠?
프로그램을 진행하면서 어느정도 합리적인 결과가 도출된다는 사실을 알았고 만약 문서에서 Highlight 해주는 보조적인용도로는 사용할 수 있겠다는 생각이 들었습니다.
하지만 근본적인 문제점이 있을 수도 있습니다. 과연 중요한 단어가 많이 나오는 문장이 가장 중요한 문장일까 하는 질문은 생깁니다. 또한 이 프로그램은 진정한 의미에서 요약이 아닌 문장 선택 프로그램이라는 점이 조금 아쉽습니다.
'Python' 카테고리의 다른 글
[Python] UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence (3) | 2018.04.30 |
---|---|
[Python] 이중 for 문 break (6) | 2018.04.11 |
[Python] List, Dict 시간 복잡도 (Big O) (0) | 2018.03.21 |
[Python] matplotlib 에서 한글 출력하기 (5) | 2018.02.20 |
[Python] random - 난수 추출하기 (0) | 2018.02.19 |
- Total
- Today
- Yesterday
- 커플여행
- 캠핑초보
- 백준
- 알고리즘
- 카카오
- 영월캠핑
- 가평캠핑
- sql
- 가족여행
- 여름휴가추천
- 여름휴가
- 강원도캠핑
- 계곡캠핑
- Oracle
- 가평여행
- 글램핑
- Koreancuisine
- 강원도여행
- 캠핑장추천
- 여름캠핑
- python
- 반려견캠핑
- SeoulTravel
- 파이썬
- 영월여행
- 서울근교캠핑
- 머신러닝
- bukhansannationalpark
- 가족캠핑
- 자연힐링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |