日期(.NET)的自然语言解析器?

时间:2009-01-21 20:48:03

标签: .net datetime ironpython nlp

我希望能够让用户使用自然语言输入日期(包括重复日期)(例如“下周五”,“每个工作日”)。与http://todoist.com/Help/timeInsert

中的示例非常相似

我找到this post,但它有点陈旧,只提供one solution,我并不完全满足。我以为我会复活这个问题并看到:那里有没有其他.NET库可以进行这种日期解析吗?

6 个答案:

答案 0 :(得分:6)

我知道这不是最佳解决方案,但您也可以尝试将dateJs库移植到.net

它处理像今天这样的事情;明天; 2008年7月;下周五;去年四月; 2004年8月7日; 2005年6月4日;晚上8:15; 22时30分45秒; + 5年

答案 1 :(得分:3)

我不知道你今天可以使用哪些框架可以让你这样做,但如果你满足于玩未来的比特,你可以查看奥斯陆,并制作自己的文本DSL

本文介绍了如何完成您要执行的操作:

http://www.infoq.com/articles/natural-language-date-dsl-oslo

答案 2 :(得分:1)

DateTime.Parse()将采用字符串参数并尝试生成其DateTime相等。我对它有点生疏,但它适用于任何可以使用DateTime.ToString()生成的日期字符串。

您还可以查看DateTime.ParseExact(),它与Parse()完成相同的操作,但允许您限制输入字符串的可能格式。以下链接可以帮助您解决框架中的任何其他日期解析函数。

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

答案 3 :(得分:1)

我们在内部项目中精确地开发了您正在寻找的东西。如果有足够的需要,我们正在考虑将其公之于众。请查看此博客以获取更多详细信息:http://precisionsoftwaredesign.com/blog.php

答案 4 :(得分:0)

我已经将this library构建为工作项目的一部分。它并不完全抛光,但如果您有兴趣,我可以在其中加入更多工作和/或为您的需求安排许可证。

答案 5 :(得分:0)

我编写的非常旧的程序(使用Clipper,DBASE派生词),但代码非常易读。

<强> http://www.jbooth-consulting.com/downloads/clipper/guessdate.zip

如果你想自己动手,可能会给你一些想法......