반응형
https://knife-criminal-announce.vercel.app/(칼부림 사건 현황판 라이브 데모)
2023년 대한민국 연쇄 흉기 난동 사건은 2023년 7월 신림역 흉기 난동 사건 전후로 서현역 흉기 난동 사건을 비롯해 비슷한 강력범죄 및 범죄 예고(협박)가 잇따라 발생하는 현상이다.
이에 대해, 네이버 뉴스에 있는 칼부림 사건을 웹 크롤링과 Chatgpt API를 이용해 본문에 담겨있는 지역, 시간, 요약글 등을 제공하고자 본 프로젝트를 진행하였다.
👥팀 구성원
- 인원 2명(프론트엔드 개발자 , 데이터 분석 및 백엔드 개발자)
- 기간 : 2023 8월 5일 ~ 7일
- 프로젝트 기획 이유 : 최근 핫한 칼부림 뉴스에 대해서 빠르게 사용자들이 조회할 수 있는 웹 서비스가 있으면 좋을 것 같다고 생각함
🛠️사용한 기술 스택
- python(크롤링 및 데이터 전처리)
- Fastapi(가공한 칼부림 예고 정보를 API로 구현하여 프론트엔드에 제공)
- Chatgpt API(크롤링 한 정보를 chatgpt api를 이용하여 지역, 시간, 뉴스 링크, 뉴스 요약, 범죄자 정보만 추출하여 정형화된 형식으로 변경)
- GCP - VM 인스턴스 및 방화벽 설정(백엔드 서버를 만들기 위해 GCP의 무료크레딧을 사용하여 서버 구축 및 방화벽 생성하여 프론트엔드와 HTTP 프로토콜로 연결)
📚프로젝트 프로세스
칼부림 뉴스 조회 서비스
- 크롤링
- 검색어 기반 크롤링 + 원하는 페이지만큼 네이버 뉴스 수집
- OPENAI로 Chatgpt 사용
- api 키 발급
- 크롤링한 뉴스에 대해서 지역, 시간, 예고글, 범죄자 정보를 정형화 된 포맷으로 GPT한테 요약해달라함 → 비정형화된 데이터를 GPT로 요약해도 역시 비정형화된 데이터. 이를 정형화된 데이터로 바꾸는 게 어려움 → 지역, 시간, 예고글, 범죄자 정보라는 키워드 기준으로 문자열을 나누고 각각의 정보를 데이터프레임으로 연결 (없을 경우 None) → 데이터의 품질을 보증하기에 너무 어려움
- 중복제거(같은 지역에 대한 글은 글의 내용만 다르지 비슷한 뉴스라 제거) → 할 예정
- Fastapi로 get 요청하면 보내기
- 스케줄러로 매일 아침 생성된 최신 csv파일 불러와서 get 보내기
- python scheduler 모듈
- 스케쥴러를 사용하여 매일 아침 9시 자동으로 크롤링 및 gpt api를 돌리고 데이터프레임 csv로 저장 → 프론트에서 12시에 백엔드 서버 get 호출 → 9시에 저장된 최신 csv파일을 12시에 호출하여 보여주는 과정
- GCP의 무료크레딧으로 VM 인스턴스를 생성 후 해당 서버에서 백엔드 및 크롤링 실행
- 프론트와 연결하기 위해 방화벽 포트 생성후 VM 인스턴스에 추가: FASTAPI는 8000번 포트
반응형
'Study > 프로젝트' 카테고리의 다른 글
[국면전환 예측 프로젝트] - 빅데이터 기반의 국제거시경제 전망모형 개발 연구보고서 리뷰 (0) | 2024.07.17 |
---|---|
[국면전환 예측 프로젝트] - 경기순환시계와 경기종합지수 (1) | 2024.07.17 |
[국면전환 예측 프로젝트] - 삼(Sahm)의 법칙 (2) | 2024.07.17 |