Skip to content

sp1227/sejong-corpus-toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sejong-corpus-toolkit

Python Version License: MIT Version

A Python toolkit for processing and analyzing the 21st Century Sejong Corpus (National Institute of Korean Language)

소개

21세기 세종계획 말뭉치 분석 도구국립국어원의 21세기 세종계획 최종 성과물 말뭉치를 Python으로 쉽게 활용할 수 있도록 돕는 종합 도구입니다.

참고: 이 도구는 말뭉치 데이터를 포함하지 않습니다. 21세기 세종계획 최종성과물 말뭉치는 국립국어원에 별도로 신청하여 받으셔야 합니다.

주요 특징

  • 형식 변환: TEI XML 파일을 JSONL 형식으로 변환
  • 용례 검색: KWIC(Keyword in Context) 분석 (정규표현식 지원)
  • 메타데이터 추출: 전체 말뭉치의 메타데이터 생성
  • 형태소 분석: KoNLPy 통합 (Okt, Kkma, Komoran)

테스트 데이터

  • 21세기 세종계획 최종 성과물 (2010.12 수정판)

제한 사항

  • 말뭉치별 추출 어절 수가 공식 통계와 약간 차이가 있습니다.
    • 예: 문어 원시 말뭉치
      • 공식: 36,942,784 어절
      • 이 도구: 36,670,883 어절 (99.26% 추출)
  • 이는 오류가 있는 태그 등의 처리에서 기인한 차이로 추정되며 연구 활용에는 영향이 없습니다.

지원 말뭉치

  • 현대 문어 말뭉치 (원시, 형태분석, 형태의미분석)
  • 현대 구어 말뭉치 (원시, 형태분석)

설치

요구사항

  • Python 3.8 이상
  • 최소 4GB RAM (권장: 8GB 이상)
  • 21세기 세종계획 말뭉치 데이터 (국립국어원에 별도 신청)

필요한 패키지 설치

pip install -r requirements.txt

사용 예제

자세한 사용 예제는 notebooks/ 폴더의 Jupyter Notebook을 참고하세요:

말뭉치 변환

  • get_sejong_written_raw.ipynb - 문어 원시 말뭉치
  • get_sejong_written_tagged.ipynb - 문어 형태분석, 형태의미분석 말뭉치
  • get_sejong_spoken_raw.ipynb - 구어 원시 말뭉치
  • get_sejong_spoken_tagged.ipynb - 구어 형태분석 말뭉치

형태소 분석

pos_sejong_raw.ipynb - KoNLPy를 이용한 원시말뭉치 형태소 분석

말뭉치 활용

  • utilize_sejong_get_corpus_metadata_full.ipynb - 메타데이터 추출
  • utilize_sejong_KWIC_raw.ipynb - 원시 말뭉치 용례 검색
  • utilize_sejong_KWIC_tagged.ipynb - 형태분석 말뭉치 용례 검색

출력 형식

문어 형태분석 말뭉치 (JSONL)

{
  "block_id": "BLOCK_1002",
  "tag_type": "p",
  "eojeol_ids": ["BSHO0125-00010620", "BSHO0125-00010621"],
  "eojeols": ["아무튼", "묵자는"],
  "morphemes": [[["아무튼", "MAG"]], [["묵자", "NNP"], ["", "JX"]]],
  "title": "동양철학 에세이",
  "date": "1993",
  "main_category": "",
  "sub_category": "인문, 철학",
  "filename": "BSHO0125.txt"
}

구어 원시 말뭉치 (JSONL)

{
  "who_id": "P1",
  "s_n": "00022",
  "paragraph": "하고 싶은대로 해라::",
  "filename": "4CM00005.txt",
  "title": "일상대화_강의시작전7인#1, 전자전사자료",
  "date": "2001",
  "gender": "F",
  "age": "20s",
  "description": "대학생"
}

로드맵

v1.0.0 (계획)

  • N-gram 추출 기능
  • 연어 분석용 통계 추출 기능

말뭉치 데이터

중요 안내

이 저장소는 분석 도구만 제공하며, 말뭉치 데이터는 포함되어 있지 않습니다.

말뭉치 신청 방법

모두의 말뭉치에서 가장 마지막에 있는 21세기 세종계획 신청 게시판을 이용해 주세요.


라이선스

이 도구 (Toolkit)

MIT License - 자유롭게 사용, 수정, 배포 가능

이 저장소의 코드는 MIT 라이선스 하에 배포됩니다.

말뭉치 데이터 (Corpus Data)

이 저장소는 말뭉치 데이터를 포함하지 않습니다.

21세기 세종계획 최종 성과물은 국립국어원의 저작물로, 별도의 저작권 정책이 적용됩니다. 국립국어원의 저작권 안내를 확인해 주세요.


인용 방법

이 도구를 연구에 사용하실 경우 다음과 같이 인용해 주세요:

김미경. (2025). Sejong Corpus Toolkit: 21세기 세종계획 말뭉치 분석 도구 (Version 0.9.0) [Software]. GitHub. https://github.com/sp1227/sejong-corpus-toolkit


문의

이메일: saltpeanuts@snu.ac.kr GitHub: @sp1227


감사의 말

이 프로젝트는 국립국어원의 21세기 세종계획 최종 성과물을 기반으로 제작되었습니다.


개발 노트

  • 이 프로젝트의 코드 구현 과정에서 Google Gemini 2.5 Pro 모델의 도움을 받았습니다.
  • 이 프로젝트의 문서화 및 코드 리뷰 과정에서 Claude Sonnet 4.5 모델(Anthropic)의 도움을 받았습니다.

About

A Python toolkit for processing and analyzing the 21st Century Sejong Corpus (National Institute of Korean Language) | 21세기 세종계획 말뭉치 분석 도구

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors