파이썬 필요부분만 추출하기

stillssi·2022년 11월 21일
0
post-thumbnail

의사록에서 필요한 부분

  • 경제 상황, FX 및 국제 금융, 금융 시장 및 통화 정책에 대한 MPB 회원들의 논의를 포함하는 현재 경제 상황에 대한 토론 요약
  • 통화 정책 결정에 관한 토론은 개별 회원들의 견해 기록

이 2개만 필요하기 때문에 앞에 개요와 의결사항 등은 없애줘야한다.

과정은 이렇다.
1. 의결안건 인덱스 찾기
2. 위원 토의 내용 인덱스 찾기
3. 심의 결과 인덱스 찾기

우리가 필요한 부분은 의결안건~토의내용, 토의내용~심의결과 사이의 내용이다.

그래서 인덱스를 이용해 추출 후 다른 파일에 저장하는 코드를 짤 것이다.

  • 먼저 os 라이브러리를 이용해 경로에 있는 파일 리스트를 불러와
    하나씩 열어준다
import os
import shutil

TXT_DIR = '텍스트 파일 있는 디렉터리 경로'
    file_list = os.listdir(TXT_DIR)
    for file in file_list:
        f = open(TXT_DIR+file, 'r', encoding='utf-8') #파일 하나씩 열기
  • lines를 읽어와서 각 라인에 strip함수를 적용해준다.
    그리고 각 키워드의 인덱스를 찾아준다.
lines = f.readlines()
lines = list(map(lambda s: s.strip(), lines))
first_index = [i for i in range(len(lines)) if '의결안건' in lines[i]]
second_index = [i for i in range(len(lines)) if '위원 토의내용' in lines[i]]
last_index = [j for j in range(len(lines)) if '심의결과' in lines[j]]
  • 인덱스를 이용해서 원하는 곳의 내용을 추출한 후에 write함수를 이용해서 새 파일에 입력한다.
SAVE_FOLDER = '추출 후 저장할 디렉터리 경로'
if not os.path.isdir(SAVE_FOLDER): #만약 디렉터리 존재하지 않으면
	os.mkdir(SAVE_FOLDER) # 만들어줌
    k = open(SAVE_DIR+file, 'a', encoding='utf-8')
    try: #인덱스 존재하지 않는 것도 있어서 try~except문
        k.write(''.join(lines[first_index[0]:second_index[0]])) #의결안건~위원토의내용
 except:
       pass
for i,j in zip(second_index, last_index): #위원토의내용~심의결과 여러개
        	k.write(''.join(lines[i:j]))
k.close() #다 쓰고 파일 닫아줌
  • 만약 원래 경로의 디렉터리를 삭제하고 싶다면
    이 코드를 이용한다.
    # if os.path.exists(TXT_DIR):
    #     shutil.rmtree(TXT_DIR)

Deciphering Monetary Policy Board Minutes through Text Mining Approach: The Case of Korea
(텍스트 마이닝을 활용한 금융통화위원회 의사록 분석)

  • 박기영(연세대), 이영준(연세대), 김수현
    논문을 기반으로 배워보는 텍스트 마이닝 프로젝트 입니다.

0개의 댓글