将中文时间表达词转为相应的时间
Project description
ChineseTimeNLP
简介
这是 Time-NLP 的 Python3 版本。
相关链接:
- Python 版本 https://github.com/sunfiyes/Time-NLPY
- Python2 版本 https://github.com/ryanInf/Time-NLPY/tree/Python2%E7%89%88%E6%9C%AC
- Python3 版本 https://github.com/ryanInf/Time-NLPY
- Java 版本 https://github.com/shinyke/Time-NLP
- PHP 版本 https://github.com/crazywhalecc/Time-NLP-PHP
配置
可以传入自定义的 pattern,默认 pattern 也可以通过 from ChineseTimeNLP import pattern
导入。
TimeNormalizer(isPreferFuture=True, pattern=None):
对于下午两点、晚上十点这样的词汇,在不特别指明的情况下,默认返回明天的时间点。
安装使用
安装:
pip install ChineseTimeNLP
使用:
from ChineseTimeNLP import TimeNormalizer
tn = TimeNormalizer()
res = tn.parse(target=u"三天后") # target 为待分析语句,baseTime 为基准时间默认是当前时间
print(res)
本地开发
开发前安装依赖
pip install -r requirements.txt
在本地安装
python setup.py install
生成包:
# 按照不同系统生成
python setup.py sdist bdist_wheel
功能说明
用于句子中时间词的抽取和转换
详情请见 Test.py
tn = TimeNormalizer(isPreferFuture=False)
res = tn.parse(target=u'星期天晚上') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(target=u'晚上8点到上午10点之间') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(
target=u'2013年二月二十八日下午四点三十分二十九秒',
baseTime='2013-02-28 16:30:29') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(
target=u'我需要大概33天2分钟四秒',
baseTime='2013-02-28 16:30:29') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(target=u'今年儿童节晚上九点一刻') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(target=u'三日') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(target=u'7点4') # target为待分析语句,baseTime为基准时间默认是当前时间
print(res)
print('====')
res = tn.parse(target=u'今年春分')
print(res)
print('====')
res = tn.parse(target=u'7000万')
print(res)
print('====')
res = tn.parse(target=u'7百')
print(res)
print('====')
res = tn.parse(target=u'7千')
print(res)
print('====')
结果:
目标字符串: 星期天晚上
基础时间 2019-7-28-15-47-27
temp ['星期7晚上']
{"type": "timestamp", "timestamp": "2019-07-28 20:00:00"}
====
目标字符串: 晚上8点到上午10点之间
基础时间 2019-7-28-15-47-27
temp ['晚上8点', '上午10点']
{"type": "timespan", "timespan": ["2019-07-28 20:00:00", "2019-07-28 10:00:00"]}
====
目标字符串: 2013年二月二十八日下午四点三十分二十九秒
基础时间 2013-2-28-16-30-29
temp ['2013年2月28日下午4点30分29秒']
{"type": "timestamp", "timestamp": "2013-02-28 16:30:29"}
====
目标字符串: 我需要大概33天2分钟四秒
基础时间 2013-2-28-16-30-29
temp ['33天2分钟4秒']
timedelta: 33 days, 0:02:04
{"type": "timedelta", "timedelta": {"year": 0, "month": 1, "day": 3, "hour": 0, "minute": 2, "second": 4}}
====
目标字符串: 今年儿童节晚上九点一刻
基础时间 2019-7-28-15-47-27
temp ['今年儿童节晚上9点1刻']
{"type": "timestamp", "timestamp": "2019-06-01 21:15:00"}
====
目标字符串: 三日
基础时间 2019-7-28-15-47-27
temp ['3日']
{"type": "timestamp", "timestamp": "2019-07-03 00:00:00"}
====
目标字符串: 7点4
基础时间 2019-7-28-15-47-27
temp ['7点4']
{"type": "timestamp", "timestamp": "2019-07-28 07:04:00"}
====
目标字符串: 今年春分
基础时间 2019-7-28-15-47-27
temp ['今年春分']
{"type": "timestamp", "timestamp": "2019-03-21 00:00:00"}
====
目标字符串: 7000万
基础时间 2019-7-28-15-47-27
temp ['70000000']
{"type": "error", "error": "no time pattern could be extracted."}
====
目标字符串: 7百
基础时间 2019-7-28-15-47-27
temp []
{"type": "error", "error": "no time pattern could be extracted."}
====
目标字符串: 7千
基础时间 2019-7-28-15-47-27
temp []
{"type": "error", "error": "no time pattern could be extracted."}
====
使用方式
见 Test.py
TODO
问题 | 现在版本 | 正确 |
---|---|---|
晚上8点到上午10点之间 | ["2018-03-16 20:00:00", "2018-03-16 22:00:00"] | ["2018-03-16 20:00:00", "2018-03-17 10:00:00"]" |
声明
fork 自 zhanzecheng/Time_NLP,为了适合自己的编程习惯,删除了代码中部分文件的头部注释信息,信息格式如下,特此声明:
# -*- coding: utf-8 -*-
# @Time : xxxxxxxx
# @Author : zhm
# @File : xxxxx
# @Software: PyCharm
# @Changed : tianyuningmou
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ChineseTimeNLP-3.0.0.tar.gz
(23.2 kB
view details)
Built Distribution
File details
Details for the file ChineseTimeNLP-3.0.0.tar.gz
.
File metadata
- Download URL: ChineseTimeNLP-3.0.0.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 243141ce2f2923c4c71f2361e3363a92bffcbdfd73947cb5b9a786acae6a08e7 |
|
MD5 | fc6526e647c845c471ecbb0a8f44ebd1 |
|
BLAKE2b-256 | 7242fc1ba44c79eeabe696d42c640850d90c673cc435a54a111deb4d345c3920 |
File details
Details for the file ChineseTimeNLP-3.0.0-py3-none-any.whl
.
File metadata
- Download URL: ChineseTimeNLP-3.0.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c9c3e2886d679cde4e2672b4dad6f2c2e565f8b890209f02c0e8e712a295bce |
|
MD5 | 969c9a7ca878a1fc7f0a406c60ad5d65 |
|
BLAKE2b-256 | 3600aad9d0b8ed532d56e3ffb721dd6f127462a4f3bd5282a1212aeab4e779e2 |