SOOJLE
1.0.0
1.0.0
  • SOOJLE Document
  • 프로젝트 요약
  • 프로젝트 개요
    • 프로젝트 소개
    • 추진 배경 및 필요성
    • 프로젝트 내용
      • 기능적 요구사항
      • 비기능적 요구사항
    • 개발환경 및 팀 구성
    • 워크플로우
      • 계획 수립 & 설계
      • 데이터 수집 및 정규화
      • 인공지능 개발
      • 서비스 모듈 개발
      • 성능 평가 및 보고
    • 프로젝트 예산 내역
  • 사전조사 & 의사결정
    • 사전조사
      • 재학생 대상 사전조사
      • 수집 URL 대상 목록
        • 세종대학교 직할
        • 세종대학교 학과
        • 공식 공지사항
        • 세종대 평생교육원
        • 외부 웹사이트
      • 학습 모델 사전조사
        • LSA - 잠재 의미 분석
        • LDA - 잠재 디리클레 할당
        • Word2Vec - 워드투벡터
        • FastText - 패스트텍스트
    • 의사결정
      • 사용자 인증 방식 의사결정
      • 데이터베이스 의사결정
        • MySQL vs MongoDB 성능 분석
      • 토픽별 의사결정
      • 부가 기능 의사 결정
  • 프로젝트 설계
    • 시스템 구조 설계
    • 핵심 기능 설계
      • 데이터 크롤러 설계
      • 게시물 토픽 정의 및 분류
      • 사용자 관심분야 측정
      • 뉴스피드 설계
        • 사용자-문서 유사도(Recommendation Score)
        • FaS (관심 분야 및 유사도 측정 - 추가)
        • 토픽 뉴스피드 목록
      • 검색 알고리즘 설계
        • 검색 알고리즘 1차 설계
        • 검색 알고리즘 1차 개선안
        • 검색 알고리즘 2차 설계
    • 요구사항 목록
      • DB 요구사항
      • 기능 요구사항
      • 품질 요구사항
      • 관리 요구사항
  • DB
    • 구조 설계
    • 테이블 명세
  • 데이터 크롤러
    • 데이터 크롤러 개요
    • 크롤링 URL 선정
    • 크롤러 구현을 위한 사전조사
    • 크롤러 개발 과정
      • 크롤러 프로그램 설계
      • 크롤러 규격화
      • 크롤러 정규화
      • 데이터 정제 과정
      • 에러 핸들러 구현
      • 배포 환경 이식을 위한 Porting
    • Issue & Exception
    • 결과 보고
  • 인공지능 개발
    • 인공지능 개발 개요
    • NLP 스터디
      • Bag of Words(BoW)
      • Document Term Matrix(DTM)
      • TF-IDF(Term Frequency-Inverse Document Frequency)
      • 문서 유사도(Document Similarity)
    • 데이터 전처리 과정
    • 개발 과정
      • 토크나이저 구현
      • LDA 모델 학습 및 구현
    • LDA 학습 모델링
      • 1차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 2차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 3차 파라미터 튜닝 결과 (NUM_TOPICS)
      • NUM_TOPICS 파라미터 의사결정
      • 4차 파라미터 튜닝 결과 (PASESS, ITERATION)
      • 최종 학습 모델 명세
    • Word2Vec(FastText) 학습 모델링
    • Issue & Exception
    • 성능 분석 결과
  • BackEnd
    • 서버 구축 및 배포
      • SOOJLE 서버 구조
      • 상용 서버 (UWSGI + NGINX) 구축
      • HTTPS 서버 구현
    • API 문서 개요
    • API 목록
      • Analysis
      • Auth API
      • Newsfeed API
      • Post API
      • Search API
      • Admin API
    • 세종 Auth API
    • 통계 기능 설계
    • Issue & Exception
    • 성능 분석 결과
  • FRONTEND
    • 프론트엔드 설계 개요
    • 디자인 설계 의사결정
      • 디자인 컨셉 및 기능 정의
      • 컴포넌트 디자인
      • Logo Variation
    • 화면 흐름도
    • 페이지 UI 명세
      • Main Page
      • Header
      • Footer
      • Mobile Control Bar
      • Login Page
      • Timeline Page
      • Menu Page
      • Hyperlink Icons Page
      • Search Component & Mobile Search Modal
      • Search Page
      • Post Block
      • Snackbar
  • 프로그램 배포
    • 프로그램 개요
    • 시스템 아키텍쳐
    • 주요 기능 및 명세
    • 프로그램 테스트
    • 구현 결과물 배포
  • 마무리
    • References
  • SOOJLE AI
  • SEJONG AUTH
  • IML Tokenizer
  • SOOJLE Crawler
  • SOOJLE Frontend
  • SOOJLE Backend
Powered by GitBook
On this page
  • 개요
  • 데이터 수집 목록
  • 수집 수행 과정
  • 수집 대상 데이터 및 포맷
  • 제목
  • 제목 토큰
  • 작성자
  • 내용
  • 게시물 토큰
  • 수집/작성 날짜
  • 만료 날짜
  • 관련 태그
  • 로그인 여부
  • URL
  • 이미지 URL
  • 게시물 식별 정보
  • 게시물 Hash
  • 학습 유무

Was this helpful?

  1. 프로젝트 설계
  2. 핵심 기능 설계

데이터 크롤러 설계

Previous핵심 기능 설계Next게시물 토픽 정의 및 분류

Last updated 5 years ago

Was this helpful?

개요

SOOJLE은 세종대학교 구성원이 관심을 가지는 가능한 모든 정보에 대한 수집이 필요하다. 때문에 각 대상이 되는 사이트로부터 정보를 주기적으로 수집하는 크롤러의 구현이 요구된다.

데이터 수집 목록

데이터 크롤러의 수집 대상이 되는 URL은 아래의 문서를 참고하자.

수집 수행 과정

아래와 같은 과정을 수행/반복하여 데이터 수집을 진행한다.

  • 지정된 Target URL에 대하여 아래의 과정을 수행한다.

  • 접속한 사이트의 게시판 목록에서 수집 대상을 파악한다.

  • 각 단일 게시물에 대하여 수집 대상 데이터를 수집한다.

  • 만약 이미 해당 데이터가 DB 내에 존재할 경우는 제외한다.

  • 해당 목록에 대한 데이터 수집이 완료되었을 경우, 파라미터를 수정하여 다음 페이지의 게시판으로 이동한다.

  • 해당 게시판에 더 이상 게시물이 존재하지 않거나, 지정된 수집 날짜 미만일 경우, 해당 URL에 대한 수집을 종료한다.

수집 대상 데이터 및 포맷

각각 다른 사이트에서 수집된 데이터들은 모두 각기 다른 포맷을 가지고 있기 때문에 후에 적절한 분석 및 검색 기능을 위해 해당 데이터를 다음과 같은 형태로 정규화시킬 필요가 있다.

분류

타입

제목

String

제목 토큰

Array<String>

작성자(있을 경우만 한정)

String

내용

String

게시물 토큰

Array<String>

수집/작성 날짜

DATETIME

만료 날짜(공모전/대외활동 한정)

DATETIME

관련 태그

Array<String>

로그인 여부

Int

URL

String

이미지 URL(있을 경우만 한정)

String

게시물 식별 정보

String

게시물 Hash

String

학습 유무

Int

만료 날짜, 이미지 URL, 작성자를 제외한 모든 칼럼은 각 게시물에 필수적으로 존재해야 한다. 각 칼럼에 대한 내용은 다음과 같다.

제목

게시물의 제목을 저장한다. 만약 게시판 특성상 게시물 제목이 존재하지 않을 경우, 내용에서 앞의 일정 부분을 발췌하여 제목에 등록한다.

제목 토큰

게시물의 제목을 공백 단위로 나누어 토큰화한 리스트를 저장한다.

작성자

게시물의 작성자 명을 저장한다.

내용

게시물의 내용(Contents)을 저장한다.

게시물 토큰

해당 게시물에 대한 (제목 + 내용 + 태그)을 하나의 문자열로 합친 후, 형태소 분석을 통해 명사만 추출한 토큰 리스트를 저장한다.

수집/작성 날짜

해당 게시물이 작성된 날짜를 기입한다. 만약 존재하지 않을 경우, 현재 시간을 등록한다.

만료 날짜

공모전, 대외활동의 게시물 홍보 만료일 기점이 존재하는 게시물에 대하여 해당 날짜를 수집한다.

관련 태그

수집 도중, Rule Based 방식을 도출한 관련 태그 리스트를 저장한다.

로그인 여부

해당 게시물이 로그인을 한 유저에 한해서만 확인할 수 있는 정보인지 명시하는 값을 저장한다.

URL

해당 게시물의 원본 출처를 저장한다.

이미지 URL

해당 게시물의 Contents 내에 이미지가 존재할 경우, 해당 이미지의 URL을 저장한다.

게시물 식별 정보

크롤러에서 각 타 URL을 식별하기 위해 저장한 값을 저장한다.

게시물 Hash

해당 게시물을 식별하기 위해 (제목 + 내용) 값을 MD5 해쉬 처리를 수행한 값을 저장한다.

학습 유무

해당 게시물이 모델의 학습에 기여를 했는가를 판별하는 칼럼이다. 학습을 수행한 경우 1, 아닌 경우 0을 명시한다.

수집 URL 대상 목록