CHAPTER 02 / SUPPLEMENT
보충. 공시 텍스트를 분석용 데이터로 만들기
공시 문서의 선택과 절 추출, 정리와 공개 시점을 보존하는 방법을 알아봅니다.
숫자에 담기지 않은 설명을 읽는다
지우는 두 기업의 매출이 모두 늘어난 것을 확인했다. 한 기업은 신규 고객이 늘었고, 다른 기업은 가격 인상으로 매출이 늘었다. 재무제표 숫자만으로는 이런 배경을 구분하기 어렵다. 기업이 공시에 적은 경영진의 설명과 위험 요인을 함께 읽으면 숫자를 해석할 실마리를 얻을 수 있다.
미국 연간보고서의 Management’s Discussion and Analysis(경영진 논의와 분석, MD&A)는 재무 상태와 영업 결과 등에 대한 설명을 담는다. Risk Factors(위험 요인)는 사업과 투자에 영향을 줄 수 있는 중요한 위험을 설명한다. 문장이 미래를 보장하지는 않지만, 새로운 위험이 추가됐는지 또는 경영진이 무엇을 강조하는지 살펴볼 수 있다.
Natural Language Processing(자연어 처리, NLP)은 문서를 컴퓨터가 다룰 수 있는 자료로 만드는 방법들을 가리킨다. 모델에 넣기 전에 먼저 올바른 문서와 절을 골라야 한다. 본문이 빠졌거나 목차만 추출됐다면 정교한 모델도 원하는 설명을 분석할 수 없다.
- 1 · 문서와 절
본문 문서를 고르고 위험 요인 절의 경계를 찾는다. - 2 · 정리
표시와 공백을 정리하면서 원문과 문단을 보존한다. - 3 · 시점 저장
공시 식별자와 공개 시각을 남긴 뒤 분석에 연결한다.
문서의 공개 시각과 추출에 사용한 규칙을 문장과 함께 보존한다.
목차의 제목과 실제 본문을 구분한다
지우는 한 기업의 연간보고서에서 위험 요인 절을 추출하려 한다. 보고서 묶음에는 본문과 첨부 문서가 함께 있을 수 있으므로 먼저 분석할 본문 문서를 고른다. 기업 식별자, 공시 접수번호, 보고서 종류와 접수 시각을 함께 저장한다. 같은 날 제출한 문서나 정정 문서를 구별하는 데 접수번호가 필요하다.
문서 안에 위험 요인 제목이 처음 나온 곳은 목차일 수 있다. 같은 제목이 본문과 다른 절의 참조에도 반복된다. 구조화된 절 정보가 있으면 이를 우선 활용하고, 그렇지 않으면 문서의 제목과 다음 절 경계를 함께 확인한다. 추출 길이가 지나치게 짧거나 비어 있는 자료는 실패 후보로 분리해 실제 문서를 확인한다.
분석 목적에 맞게 정리하고 원문을 보존한다
추출한 문장에는 HTML 표시, 표, 불필요한 공백이 섞일 수 있다. 지우는 읽기 어려운 표시를 정리하되 문단 경계를 보존한다. 표 안의 수치가 중요한 분석이라면 무조건 버리지 않고 별도로 다룬다.
여러 해에 걸쳐 반복되는 정형 문구도 있다. 새로 등장한 위험을 찾을 때는 반복 문구가 변화를 가릴 수 있다. 반면 문서 전체의 어조를 살필 때는 반복 문구도 분석 목적에 따라 의미가 있을 수 있다. 정리 규칙에 따라 원문과 결과가 어떻게 달라졌는지 확인해야 한다.
원문에서 추출한 텍스트와 정리한 텍스트를 모두 남기고, 사용한 추출 방법과 규칙 버전도 기록한다. 나중에 규칙이 바뀌면 같은 공시를 다시 처리하고 결과 차이를 추적할 수 있다.
문서도 공개된 뒤에만 사용할 수 있다
지우가 월요일 아침에 거래한다면 월요일 장 마감 후 접수된 보고서의 문장은 그 결정에 넣을 수 없다. 보고서가 지난 회계연도를 설명하더라도 그 문서를 알 수 있게 된 시각은 별도다. 정정 보고서가 나오면 원래 보고서를 덮어쓰지 않고 각각의 접수번호와 공개 시각을 보존한다.
각 기록에는 기업 식별자, 공시 접수번호, 절 이름, 대상 기간, 공개 시각과 텍스트를 함께 둔다. 장중 분석에는 날짜만이 아니라 접수 시각과 시간대를 사용한다. 이렇게 만든 문서를 이후 숫자 자료와 합칠 때도 같은 기업과 당시 사용 가능한 버전인지 확인한다.