Time-NLP的Python3版本 中文时间表达识别
ryanInf的版本有两个小问题 1、不能识别下星期下礼拜等和周相关的时间,已解决
2、在windows下使用有问题,ryanInf给出的方案不能解决这个问题。解决方案:将其中的regex.txt文件放入python的site-packages下 例如:D:\Users\Administrator\Anaconda3\Lib\site-packages\TimeConverter-1.0.0-py3.7.egg\resource\regex.txt
Time-NLP的python3版本,由于原作者sunfiyes的是python2版本,无法在python3上使用,故修改部分代码,使其可在Python3上使用(本人新手,可能有bug) 原项目地址:https://github.com/sunfiyes/Time-NLPY
PS~ : window下可能出现安装regex错误,可到 https://www.lfd.uci.edu/~gohlke/pythonlibs/#regex 下载对应版本的regex手动安装。
将中文时间描述转换为三种标准的时间格式的时间字符串:
示例:
from TimeNormalizer import TimeNormalizer # 引入包
tn = TimeNormalizer()
res = tn.parse(target='下周三下午两点30分五秒') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)
res = tn.parse(target='2013年二月二十八日下午四点三十分二十九秒', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)
res = tn.parse(target='我需要大概33天2分钟', timeBase='2013-02-28 16:30:29') # target为待分析语句,timeBase为基准时间默认是当前时间
print(res)
res = tn.parse(target='1月末') # target为待分析语句,timeBase为基准时间默认是当前时间
res = tn.parse(target='明天')
js = json.loads(res)
print(js)
print(res)
输出:
{"type": "timestamp", "timestamp": "2019-10-16 14:30:05"}
{"timestamp": "2013-02-28 16:30:29", "type": "timestamp"}
{"timedelta": "33 days, 0:02:00", "type": "timedelta"}
{'timestamp': '2019-03-27 00:00:00', 'type': 'timestamp'}
{"timestamp": "2019-03-27 00:00:00", "type": "timestamp"}
调用示例见Test.py
关于节假日的增加方法: