python 날짜 인식

3956 단어 Python
jieba 절 분 문 구 를 통 해 품사 추출 시간 에 따라 정규 표현 식 을 사용 하여 날 짜 를 일치 시 키 고 마지막 으로 날 짜 를 출력 합 니 다.
        오늘 며칠 이에 요?지난 주 1 일 시간 은?27 일부 터 30 일 까지?15 일?오늘 모레 까지 방 을 예약 하려 고 합 니 다.2019 년 4 월 28 일 오후 3 시 10 분 27 초부 터 2019 년 5 월 4 일 까지.그저께 오전 12 시 에 기 다 렸 어 요.
        식별 결 과 는 지 에 바 분사 의 영향 을 받 아 효과 가 더 좋 으 려 면 스스로 HMM 으로 단 어 를 훈련 시 키 고 양 방향 으로 단 어 를 매 칭 하 며 조건 랜 덤 필드, 신경 망 등 자신의 수요 에 따라 자신의 단 어 를 훈련 시 킬 수 있다.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author:SingWeek

import re
from datetime import datetime,timedelta
from dateutil.parser import parse
import jieba.posseg as psg

UTIL_CN_NUM={' ':0,' ':1,' ':2,' ':3,' ':4,' ':5,' ':6,' ':7,' ':8,' ':9,'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
UTIL_CN_UNIT={' ':10,' ':100,' ':1000,' ':10000}

def get_lastweek(day=1):
    d = datetime.now()
    dayscount = timedelta(days=d.isoweekday())
    dayto = d - dayscount
    sixdays = timedelta(days=7-day)
    dayfrom = dayto - sixdays
    date_from = datetime(dayfrom.year, dayfrom.month, dayfrom.day, 0, 0, 0)
    return str(date_from)[0:4]+' '+str(date_from)[5:7]+' '+str(date_from)[8:10]+' '

def get_nextweek(day=1):
    d = datetime.now()
    dayscount = timedelta(days=d.isoweekday())
    dayto = d - dayscount
    sixdays = timedelta(days=-7-day)
    dayfrom = dayto - sixdays
    date_from = datetime(dayfrom.year, dayfrom.month, dayfrom.day, 0, 0, 0)
    return str(date_from)[0:4]+' '+str(date_from)[5:7]+' '+str(date_from)[8:10]+' '

def get_week(day=1):
    d = datetime.now()
    dayscount = timedelta(days=d.isoweekday())
    dayto = d - dayscount
    sixdays = timedelta(days=-day)
    dayfrom = dayto - sixdays
    date_from = datetime(dayfrom.year, dayfrom.month, dayfrom.day, 0, 0, 0)
    return str(date_from)[0:4]+' '+str(date_from)[5:7]+' '+str(date_from)[8:10]+' '

def check_time_valid(word):
    m=re.match("\d+$",word)
    if m:
        if len(word)<=6:
            return None
    word1=re.sub('[ | ]\d+$',' ',word)
    if word1!=word:
        return check_time_valid(word)
    else:
        return word1

def cn2dig(src):
    if src=="":
        return None
    m=re.match("\d+",src)
    if m:
        return int(m.group(0))
    rsl=0
    unit=1
    for item in src[::-1]:
        if item in UTIL_CN_UNIT.keys():
            unit=UTIL_CN_UNIT[item]
        elif item in UTIL_CN_NUM.keys():
            num=UTIL_CN_NUM[item]
            rsl+=num*unit
        else:
            return None
    if rsl

좋은 웹페이지 즐겨찾기