Skip to content

한국어 자연어로 쓰여진 시간 표현을 파싱(parsing)하는 모듈

Notifications You must be signed in to change notification settings

greenstar1151/ko-NL-time-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ko_NL_time_parser: 한국어 자연어 시간 표현 파서

현재 미완성입니다. 일부 기능들만 규칙 기반으로 구현되어 있습니다.

About

ko_NL_time_parser 는 한국어로 쓰여진 시간 표현을 컴퓨터가 해석할 수 있는 형태(datetime)으로 번역합니다. 파이썬으로 작성되었으며, 다양한 시간 표현을 처리하는 것을 목표로 하고 있습니다.

Example

Usage

from datetime import datetime
from ko_NL_time_parser import parse_time

text = '1시간 뒤'
time_base = datetime.now()
print(parse_time(text, time_base))

Demo

  • parse_time('30초 후')
기준 시각:      2021-02-07 22:33:22.996446
[In]            30초 후
[Out]           2021-02-07 22:33:52.996446
  • parse_time('자정 1분 전', datetime(2021, 1, 1, 12, 30))
기준 시각:      2021-01-01 12:30:00
[In]            자정 1분 전
[Out]           2021-01-01 23:59:00
  • parse_time('한달 일주일 뒤 자정 1시간 30분 전', datetime(2021, 1, 1, 0, 0))
기준 시각:      2021-01-01 00:00:00
[In]            한달 일주일 뒤 자정 1시간 30분 전
[Out]           2021-02-08 22:30:00

Limitations

현재 파서의 개발 상황은 알파 버전에도 미치지 못하고, 개념 증명 수준에 머무른다고 할 수 있습니다. 현재의 구현 방식은 많은 제한 사항을 가지고 있으며, 추후 전면적 개선이 필요합니다. 지금은 규칙 기반으로 작동하는데, 따라서 데이터셋에 없거나 규칙과 다른 시간 표현을 처리할 수 없습니다. 나중에 통계적인 모델이나 언어 모델을 적용해볼 생각입니다.

절대적 시간 처리 불가

현재의 구조에서는 '2021년 1월 31일 12시 30분'과 같이 특정 시각을 가리키는 문자열을 처리할 수 없습니다. '1일 뒤'와 같이 상대적인 시간만 처리 가능합니다.

맞춤법

공백을 기준으로 단어가 분리된 것을 전제하기 때문에, '1시간30분뒤' 와 같이 띄어쓰기가 제대로 지켜지지 않았을 경우 의미를 인식할 수 없습니다.

이 부분은 추후 토크나이저를 적용하여 개선할 수 있을 것 같습니다.

데이터셋 부족

현재의 dataset.py에서는 데모를 위한 최소한의 코퍼스만 포함되어 있습니다. 규칙 기반의 파서이므로, 데이터셋에 표현이 존재하지 않는다면 처리가 불가능합니다.

추후 모델을 도입하면 좀 더 일반적인 처리를 할 수 있을 것 같습니다.

About

한국어 자연어로 쓰여진 시간 표현을 파싱(parsing)하는 모듈

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages