是否有任何python库从自然语言parsingdate和时间?

我正在寻找的是可以将“明天早上6点”或“下午中午”翻译成适当的date时间对象的东西。

parsedatetime – 能够parsing“可读的”date/时间expression式的Python模块。

#!/usr/bin/env python from datetime import datetime import parsedatetime as pdt # $ pip install parsedatetime cal = pdt.Calendar() now = datetime.now() print("now: %s" % now) for time_string in ["tomorrow at 6am", "next moday at noon", "2 min ago", "3 weeks ago", "1 month ago"]: print("%s:\t%s" % (time_string, cal.parseDT(time_string, now)[0])) 

产量

 now: 2015-10-18 13:55:29.732131 tomorrow at 6am: 2015-10-19 06:00:00 next moday at noon: 2015-10-18 12:00:00 2 min ago: 2015-10-18 13:53:29 3 weeks ago: 2015-09-27 13:55:29 1 month ago: 2015-09-18 13:55:29 

看看你对pyparsing wiki中这个例子的看法。 它处理以下testing用例:

 today tomorrow yesterday in a couple of days a couple of days from now a couple of days from today in a day 3 days ago 3 days from now a day ago now 10 minutes ago 10 minutes from now in 10 minutes in a minute in a couple of minutes 20 seconds ago in 30 seconds 20 seconds before noon 20 seconds before noon tomorrow noon midnight noon tomorrow 6am tomorrow 0800 yesterday 12:15 AM today 3pm 2 days from today a week from today a week from now 3 weeks ago noon next Sunday noon Sunday noon last Sunday